const _library = Object.create(null);
const dart = Object.create(_library);
dart.library = _library;
var _debugger = Object.create(dart.library);
var _foreign_helper = Object.create(dart.library);
var _interceptors = Object.create(dart.library);
var _internal = Object.create(dart.library);
var _isolate_helper = Object.create(dart.library);
var _js_helper = Object.create(dart.library);
var _js_primitives = Object.create(dart.library);
var _metadata = Object.create(dart.library);
var _native_typed_data = Object.create(dart.library);
var async = Object.create(dart.library);
var collection = Object.create(dart.library);
var convert = Object.create(dart.library);
var developer = Object.create(dart.library);
var io = Object.create(dart.library);
var isolate$ = Object.create(dart.library);
var js = Object.create(dart.library);
var js_util = Object.create(dart.library);
var math = Object.create(dart.library);
var typed_data = Object.create(dart.library);
var indexed_db = Object.create(dart.library);
var html$ = Object.create(dart.library);
var html_common = Object.create(dart.library);
var svg$ = Object.create(dart.library);
var web_audio = Object.create(dart.library);
var web_gl = Object.create(dart.library);
var web_sql = Object.create(dart.library);
var core = Object.create(dart.library);
var _http = Object.create(dart.library);
var dartx = Object.create(dart.library);
export { dart, _debugger, _foreign_helper, _interceptors, _internal, _isolate_helper, _js_helper, _js_primitives, _metadata, _native_typed_data, async, collection, convert, developer, io, isolate$ as isolate, js, js_util, math, typed_data, indexed_db, html$ as html, html_common, svg$ as svg, web_audio, web_gl, web_sql, core, _http, dartx };
const _privateNames = Symbol("_privateNames");
dart.privateName = function(library, name) {
  let names = library[_privateNames];
  if (names == null) names = library[_privateNames] = new Map();
  let symbol = names.get(name);
  if (symbol == null) names.set(name, symbol = Symbol(name));
  return symbol;
};
var $hashCode = dartx.hashCode = Symbol("dartx.hashCode");
var $length = dartx.length = Symbol("dartx.length");
var $_equals = dartx._equals = Symbol("dartx._equals");
var $toString = dartx.toString = Symbol("dartx.toString");
var $noSuchMethod = dartx.noSuchMethod = Symbol("dartx.noSuchMethod");
var $cast = dartx.cast = Symbol("dartx.cast");
var $addAll = dartx.addAll = Symbol("dartx.addAll");
var $_set = dartx._set = Symbol("dartx._set");
var $_get = dartx._get = Symbol("dartx._get");
var $clear = dartx.clear = Symbol("dartx.clear");
var $indexOf = dartx.indexOf = Symbol("dartx.indexOf");
var $substring = dartx.substring = Symbol("dartx.substring");
var $split = dartx.split = Symbol("dartx.split");
var $trim = dartx.trim = Symbol("dartx.trim");
var $map = dartx.map = Symbol("dartx.map");
var $toList = dartx.toList = Symbol("dartx.toList");
var $add = dartx.add = Symbol("dartx.add");
var $isEmpty = dartx.isEmpty = Symbol("dartx.isEmpty");
var $isNotEmpty = dartx.isNotEmpty = Symbol("dartx.isNotEmpty");
var $runtimeType = dartx.runtimeType = Symbol("dartx.runtimeType");
var $containsKey = dartx.containsKey = Symbol("dartx.containsKey");
var $any = dartx.any = Symbol("dartx.any");
var $keys = dartx.keys = Symbol("dartx.keys");
var $remove = dartx.remove = Symbol("dartx.remove");
var $values = dartx.values = Symbol("dartx.values");
var $dartStack = dartx.dartStack = Symbol("dartx.dartStack");
var $truncate = dartx.truncate = Symbol("dartx.truncate");
var $skip = dartx.skip = Symbol("dartx.skip");
var $take = dartx.take = Symbol("dartx.take");
var $asMap = dartx.asMap = Symbol("dartx.asMap");
var $forEach = dartx.forEach = Symbol("dartx.forEach");
var $elementAt = dartx.elementAt = Symbol("dartx.elementAt");
var $contains = dartx.contains = Symbol("dartx.contains");
var $last = dartx.last = Symbol("dartx.last");
var $join = dartx.join = Symbol("dartx.join");
var $firstWhere = dartx.firstWhere = Symbol("dartx.firstWhere");
var $replaceFirst = dartx.replaceFirst = Symbol("dartx.replaceFirst");
var $startsWith = dartx.startsWith = Symbol("dartx.startsWith");
var $compareTo = dartx.compareTo = Symbol("dartx.compareTo");
var $sort = dartx.sort = Symbol("dartx.sort");
var $where = dartx.where = Symbol("dartx.where");
var $putIfAbsent = dartx.putIfAbsent = Symbol("dartx.putIfAbsent");
var $round = dartx.round = Symbol("dartx.round");
var $bitAnd = dartx['&'] = Symbol("dartx.&");
var $bitOr = dartx['|'] = Symbol("dartx.|");
var $bitXor = dartx['^'] = Symbol("dartx.^");
var $sublist = dartx.sublist = Symbol("dartx.sublist");
var $stackTrace = dartx.stackTrace = Symbol("dartx.stackTrace");
var $invalidValue = dartx.invalidValue = Symbol("dartx.invalidValue");
var $name = dartx.name = Symbol("dartx.name");
var $message = dartx.message = Symbol("dartx.message");
var $checkMutable = dartx.checkMutable = Symbol("dartx.checkMutable");
var $checkGrowable = dartx.checkGrowable = Symbol("dartx.checkGrowable");
var $removeAt = dartx.removeAt = Symbol("dartx.removeAt");
var $insert = dartx.insert = Symbol("dartx.insert");
var $setRange = dartx.setRange = Symbol("dartx.setRange");
var $insertAll = dartx.insertAll = Symbol("dartx.insertAll");
var $setAll = dartx.setAll = Symbol("dartx.setAll");
var $removeLast = dartx.removeLast = Symbol("dartx.removeLast");
var $removeWhere = dartx.removeWhere = Symbol("dartx.removeWhere");
var $retainWhere = dartx.retainWhere = Symbol("dartx.retainWhere");
var $expand = dartx.expand = Symbol("dartx.expand");
var $takeWhile = dartx.takeWhile = Symbol("dartx.takeWhile");
var $skipWhile = dartx.skipWhile = Symbol("dartx.skipWhile");
var $reduce = dartx.reduce = Symbol("dartx.reduce");
var $fold = dartx.fold = Symbol("dartx.fold");
var $lastWhere = dartx.lastWhere = Symbol("dartx.lastWhere");
var $singleWhere = dartx.singleWhere = Symbol("dartx.singleWhere");
var $getRange = dartx.getRange = Symbol("dartx.getRange");
var $first = dartx.first = Symbol("dartx.first");
var $single = dartx.single = Symbol("dartx.single");
var $removeRange = dartx.removeRange = Symbol("dartx.removeRange");
var $fillRange = dartx.fillRange = Symbol("dartx.fillRange");
var $replaceRange = dartx.replaceRange = Symbol("dartx.replaceRange");
var $every = dartx.every = Symbol("dartx.every");
var $reversed = dartx.reversed = Symbol("dartx.reversed");
var $shuffle = dartx.shuffle = Symbol("dartx.shuffle");
var $lastIndexOf = dartx.lastIndexOf = Symbol("dartx.lastIndexOf");
var $toSet = dartx.toSet = Symbol("dartx.toSet");
var $iterator = dartx.iterator = Symbol("dartx.iterator");
var $followedBy = dartx.followedBy = Symbol("dartx.followedBy");
var $whereType = dartx.whereType = Symbol("dartx.whereType");
var $plus = dartx['+'] = Symbol("dartx.+");
var $indexWhere = dartx.indexWhere = Symbol("dartx.indexWhere");
var $lastIndexWhere = dartx.lastIndexWhere = Symbol("dartx.lastIndexWhere");
var $isNegative = dartx.isNegative = Symbol("dartx.isNegative");
var $isNaN = dartx.isNaN = Symbol("dartx.isNaN");
var $isInfinite = dartx.isInfinite = Symbol("dartx.isInfinite");
var $isFinite = dartx.isFinite = Symbol("dartx.isFinite");
var $remainder = dartx.remainder = Symbol("dartx.remainder");
var $abs = dartx.abs = Symbol("dartx.abs");
var $sign = dartx.sign = Symbol("dartx.sign");
var $truncateToDouble = dartx.truncateToDouble = Symbol("dartx.truncateToDouble");
var $toInt = dartx.toInt = Symbol("dartx.toInt");
var $ceilToDouble = dartx.ceilToDouble = Symbol("dartx.ceilToDouble");
var $ceil = dartx.ceil = Symbol("dartx.ceil");
var $floorToDouble = dartx.floorToDouble = Symbol("dartx.floorToDouble");
var $floor = dartx.floor = Symbol("dartx.floor");
var $roundToDouble = dartx.roundToDouble = Symbol("dartx.roundToDouble");
var $clamp = dartx.clamp = Symbol("dartx.clamp");
var $toDouble = dartx.toDouble = Symbol("dartx.toDouble");
var $toStringAsFixed = dartx.toStringAsFixed = Symbol("dartx.toStringAsFixed");
var $toStringAsExponential = dartx.toStringAsExponential = Symbol("dartx.toStringAsExponential");
var $toStringAsPrecision = dartx.toStringAsPrecision = Symbol("dartx.toStringAsPrecision");
var $codeUnitAt = dartx.codeUnitAt = Symbol("dartx.codeUnitAt");
var $toRadixString = dartx.toRadixString = Symbol("dartx.toRadixString");
var $times = dartx['*'] = Symbol("dartx.*");
var $_negate = dartx._negate = Symbol("dartx._negate");
var $minus = dartx['-'] = Symbol("dartx.-");
var $divide = dartx['/'] = Symbol("dartx./");
var $modulo = dartx['%'] = Symbol("dartx.%");
var $floorDivide = dartx['~/'] = Symbol("dartx.~/");
var $leftShift = dartx['<<'] = Symbol("dartx.<<");
var $rightShift = dartx['>>'] = Symbol("dartx.>>");
var $lessThan = dartx['<'] = Symbol("dartx.<");
var $greaterThan = dartx['>'] = Symbol("dartx.>");
var $lessOrEquals = dartx['<='] = Symbol("dartx.<=");
var $greaterOrEquals = dartx['>='] = Symbol("dartx.>=");
var $isEven = dartx.isEven = Symbol("dartx.isEven");
var $isOdd = dartx.isOdd = Symbol("dartx.isOdd");
var $toUnsigned = dartx.toUnsigned = Symbol("dartx.toUnsigned");
var $toSigned = dartx.toSigned = Symbol("dartx.toSigned");
var $bitLength = dartx.bitLength = Symbol("dartx.bitLength");
var $modPow = dartx.modPow = Symbol("dartx.modPow");
var $modInverse = dartx.modInverse = Symbol("dartx.modInverse");
var $gcd = dartx.gcd = Symbol("dartx.gcd");
var $bitNot = dartx['~'] = Symbol("dartx.~");
var $allMatches = dartx.allMatches = Symbol("dartx.allMatches");
var $matchAsPrefix = dartx.matchAsPrefix = Symbol("dartx.matchAsPrefix");
var $endsWith = dartx.endsWith = Symbol("dartx.endsWith");
var $replaceAll = dartx.replaceAll = Symbol("dartx.replaceAll");
var $splitMapJoin = dartx.splitMapJoin = Symbol("dartx.splitMapJoin");
var $replaceAllMapped = dartx.replaceAllMapped = Symbol("dartx.replaceAllMapped");
var $replaceFirstMapped = dartx.replaceFirstMapped = Symbol("dartx.replaceFirstMapped");
var $toLowerCase = dartx.toLowerCase = Symbol("dartx.toLowerCase");
var $toUpperCase = dartx.toUpperCase = Symbol("dartx.toUpperCase");
var $trimLeft = dartx.trimLeft = Symbol("dartx.trimLeft");
var $trimRight = dartx.trimRight = Symbol("dartx.trimRight");
var $padLeft = dartx.padLeft = Symbol("dartx.padLeft");
var $padRight = dartx.padRight = Symbol("dartx.padRight");
var $codeUnits = dartx.codeUnits = Symbol("dartx.codeUnits");
var $runes = dartx.runes = Symbol("dartx.runes");
var $containsValue = dartx.containsValue = Symbol("dartx.containsValue");
var $update = dartx.update = Symbol("dartx.update");
var $updateAll = dartx.updateAll = Symbol("dartx.updateAll");
var $entries = dartx.entries = Symbol("dartx.entries");
var $addEntries = dartx.addEntries = Symbol("dartx.addEntries");
var $lengthInBytes = dartx.lengthInBytes = Symbol("dartx.lengthInBytes");
var $asUint8List = dartx.asUint8List = Symbol("dartx.asUint8List");
var $asInt8List = dartx.asInt8List = Symbol("dartx.asInt8List");
var $asUint8ClampedList = dartx.asUint8ClampedList = Symbol("dartx.asUint8ClampedList");
var $asUint16List = dartx.asUint16List = Symbol("dartx.asUint16List");
var $asInt16List = dartx.asInt16List = Symbol("dartx.asInt16List");
var $asUint32List = dartx.asUint32List = Symbol("dartx.asUint32List");
var $asInt32List = dartx.asInt32List = Symbol("dartx.asInt32List");
var $asUint64List = dartx.asUint64List = Symbol("dartx.asUint64List");
var $asInt64List = dartx.asInt64List = Symbol("dartx.asInt64List");
var $asInt32x4List = dartx.asInt32x4List = Symbol("dartx.asInt32x4List");
var $asFloat32List = dartx.asFloat32List = Symbol("dartx.asFloat32List");
var $asFloat64List = dartx.asFloat64List = Symbol("dartx.asFloat64List");
var $asFloat32x4List = dartx.asFloat32x4List = Symbol("dartx.asFloat32x4List");
var $asFloat64x2List = dartx.asFloat64x2List = Symbol("dartx.asFloat64x2List");
var $asByteData = dartx.asByteData = Symbol("dartx.asByteData");
var $offsetInBytes = dartx.offsetInBytes = Symbol("dartx.offsetInBytes");
var $buffer = dartx.buffer = Symbol("dartx.buffer");
var $elementSizeInBytes = dartx.elementSizeInBytes = Symbol("dartx.elementSizeInBytes");
var $getFloat32 = dartx.getFloat32 = Symbol("dartx.getFloat32");
var $getFloat64 = dartx.getFloat64 = Symbol("dartx.getFloat64");
var $getInt16 = dartx.getInt16 = Symbol("dartx.getInt16");
var $getInt32 = dartx.getInt32 = Symbol("dartx.getInt32");
var $getInt64 = dartx.getInt64 = Symbol("dartx.getInt64");
var $getInt8 = dartx.getInt8 = Symbol("dartx.getInt8");
var $getUint16 = dartx.getUint16 = Symbol("dartx.getUint16");
var $getUint32 = dartx.getUint32 = Symbol("dartx.getUint32");
var $getUint64 = dartx.getUint64 = Symbol("dartx.getUint64");
var $getUint8 = dartx.getUint8 = Symbol("dartx.getUint8");
var $setFloat32 = dartx.setFloat32 = Symbol("dartx.setFloat32");
var $setFloat64 = dartx.setFloat64 = Symbol("dartx.setFloat64");
var $setInt16 = dartx.setInt16 = Symbol("dartx.setInt16");
var $setInt32 = dartx.setInt32 = Symbol("dartx.setInt32");
var $setInt64 = dartx.setInt64 = Symbol("dartx.setInt64");
var $setInt8 = dartx.setInt8 = Symbol("dartx.setInt8");
var $setUint16 = dartx.setUint16 = Symbol("dartx.setUint16");
var $setUint32 = dartx.setUint32 = Symbol("dartx.setUint32");
var $setUint64 = dartx.setUint64 = Symbol("dartx.setUint64");
var $setUint8 = dartx.setUint8 = Symbol("dartx.setUint8");
var $left = dartx.left = Symbol("dartx.left");
var $width = dartx.width = Symbol("dartx.width");
var $top = dartx.top = Symbol("dartx.top");
var $height = dartx.height = Symbol("dartx.height");
var $right = dartx.right = Symbol("dartx.right");
var $bottom = dartx.bottom = Symbol("dartx.bottom");
var $intersection = dartx.intersection = Symbol("dartx.intersection");
var $intersects = dartx.intersects = Symbol("dartx.intersects");
var $boundingBox = dartx.boundingBox = Symbol("dartx.boundingBox");
var $containsRectangle = dartx.containsRectangle = Symbol("dartx.containsRectangle");
var $containsPoint = dartx.containsPoint = Symbol("dartx.containsPoint");
var $topLeft = dartx.topLeft = Symbol("dartx.topLeft");
var $topRight = dartx.topRight = Symbol("dartx.topRight");
var $bottomRight = dartx.bottomRight = Symbol("dartx.bottomRight");
var $bottomLeft = dartx.bottomLeft = Symbol("dartx.bottomLeft");
var $delete = dartx.delete = Symbol("dartx.delete");
var $next = dartx.next = Symbol("dartx.next");
var $direction = dartx.direction = Symbol("dartx.direction");
var $key = dartx.key = Symbol("dartx.key");
var $primaryKey = dartx.primaryKey = Symbol("dartx.primaryKey");
var $source = dartx.source = Symbol("dartx.source");
var $advance = dartx.advance = Symbol("dartx.advance");
var $continuePrimaryKey = dartx.continuePrimaryKey = Symbol("dartx.continuePrimaryKey");
var $value = dartx.value = Symbol("dartx.value");
var $createObjectStore = dartx.createObjectStore = Symbol("dartx.createObjectStore");
var $transaction = dartx.transaction = Symbol("dartx.transaction");
var $transactionStore = dartx.transactionStore = Symbol("dartx.transactionStore");
var $transactionList = dartx.transactionList = Symbol("dartx.transactionList");
var $transactionStores = dartx.transactionStores = Symbol("dartx.transactionStores");
var $objectStoreNames = dartx.objectStoreNames = Symbol("dartx.objectStoreNames");
var $version = dartx.version = Symbol("dartx.version");
var $close = dartx.close = Symbol("dartx.close");
var $deleteObjectStore = dartx.deleteObjectStore = Symbol("dartx.deleteObjectStore");
var $onAbort = dartx.onAbort = Symbol("dartx.onAbort");
var $onClose = dartx.onClose = Symbol("dartx.onClose");
var $onError = dartx.onError = Symbol("dartx.onError");
var $onVersionChange = dartx.onVersionChange = Symbol("dartx.onVersionChange");
var $on = dartx.on = Symbol("dartx.on");
var $addEventListener = dartx.addEventListener = Symbol("dartx.addEventListener");
var $removeEventListener = dartx.removeEventListener = Symbol("dartx.removeEventListener");
var $dispatchEvent = dartx.dispatchEvent = Symbol("dartx.dispatchEvent");
var $open = dartx.open = Symbol("dartx.open");
var $onBlocked = dartx.onBlocked = Symbol("dartx.onBlocked");
var $onSuccess = dartx.onSuccess = Symbol("dartx.onSuccess");
var $deleteDatabase = dartx.deleteDatabase = Symbol("dartx.deleteDatabase");
var $supportsDatabaseNames = dartx.supportsDatabaseNames = Symbol("dartx.supportsDatabaseNames");
var $cmp = dartx.cmp = Symbol("dartx.cmp");
var $count = dartx.count = Symbol("dartx.count");
var $get = dartx.get = Symbol("dartx.get");
var $getKey = dartx.getKey = Symbol("dartx.getKey");
var $openCursor = dartx.openCursor = Symbol("dartx.openCursor");
var $openKeyCursor = dartx.openKeyCursor = Symbol("dartx.openKeyCursor");
var $keyPath = dartx.keyPath = Symbol("dartx.keyPath");
var $multiEntry = dartx.multiEntry = Symbol("dartx.multiEntry");
var $objectStore = dartx.objectStore = Symbol("dartx.objectStore");
var $unique = dartx.unique = Symbol("dartx.unique");
var $getAll = dartx.getAll = Symbol("dartx.getAll");
var $getAllKeys = dartx.getAllKeys = Symbol("dartx.getAllKeys");
var $lower = dartx.lower = Symbol("dartx.lower");
var $lowerOpen = dartx.lowerOpen = Symbol("dartx.lowerOpen");
var $upper = dartx.upper = Symbol("dartx.upper");
var $upperOpen = dartx.upperOpen = Symbol("dartx.upperOpen");
var $includes = dartx.includes = Symbol("dartx.includes");
var $put = dartx.put = Symbol("dartx.put");
var $getObject = dartx.getObject = Symbol("dartx.getObject");
var $createIndex = dartx.createIndex = Symbol("dartx.createIndex");
var $autoIncrement = dartx.autoIncrement = Symbol("dartx.autoIncrement");
var $indexNames = dartx.indexNames = Symbol("dartx.indexNames");
var $deleteIndex = dartx.deleteIndex = Symbol("dartx.deleteIndex");
var $index = dartx.index = Symbol("dartx.index");
var $result = dartx.result = Symbol("dartx.result");
var $type = dartx.type = Symbol("dartx.type");
var $observe = dartx.observe = Symbol("dartx.observe");
var $unobserve = dartx.unobserve = Symbol("dartx.unobserve");
var $database = dartx.database = Symbol("dartx.database");
var $records = dartx.records = Symbol("dartx.records");
var $onUpgradeNeeded = dartx.onUpgradeNeeded = Symbol("dartx.onUpgradeNeeded");
var $error = dartx.error = Symbol("dartx.error");
var $readyState = dartx.readyState = Symbol("dartx.readyState");
var $onComplete = dartx.onComplete = Symbol("dartx.onComplete");
var $completed = dartx.completed = Symbol("dartx.completed");
var $db = dartx.db = Symbol("dartx.db");
var $mode = dartx.mode = Symbol("dartx.mode");
var $abort = dartx.abort = Symbol("dartx.abort");
var $dataLoss = dartx.dataLoss = Symbol("dartx.dataLoss");
var $dataLossMessage = dartx.dataLossMessage = Symbol("dartx.dataLossMessage");
var $newVersion = dartx.newVersion = Symbol("dartx.newVersion");
var $oldVersion = dartx.oldVersion = Symbol("dartx.oldVersion");
var $target = dartx.target = Symbol("dartx.target");
var $currentTarget = dartx.currentTarget = Symbol("dartx.currentTarget");
var $matches = dartx.matches = Symbol("dartx.matches");
var $parent = dartx.parent = Symbol("dartx.parent");
var $matchingTarget = dartx.matchingTarget = Symbol("dartx.matchingTarget");
var $path = dartx.path = Symbol("dartx.path");
var $bubbles = dartx.bubbles = Symbol("dartx.bubbles");
var $cancelable = dartx.cancelable = Symbol("dartx.cancelable");
var $composed = dartx.composed = Symbol("dartx.composed");
var $defaultPrevented = dartx.defaultPrevented = Symbol("dartx.defaultPrevented");
var $eventPhase = dartx.eventPhase = Symbol("dartx.eventPhase");
var $isTrusted = dartx.isTrusted = Symbol("dartx.isTrusted");
var $timeStamp = dartx.timeStamp = Symbol("dartx.timeStamp");
var $composedPath = dartx.composedPath = Symbol("dartx.composedPath");
var $preventDefault = dartx.preventDefault = Symbol("dartx.preventDefault");
var $stopImmediatePropagation = dartx.stopImmediatePropagation = Symbol("dartx.stopImmediatePropagation");
var $stopPropagation = dartx.stopPropagation = Symbol("dartx.stopPropagation");
var $nonce = dartx.nonce = Symbol("dartx.nonce");
var $createFragment = dartx.createFragment = Symbol("dartx.createFragment");
var $nodes = dartx.nodes = Symbol("dartx.nodes");
var $attributes = dartx.attributes = Symbol("dartx.attributes");
var $getAttribute = dartx.getAttribute = Symbol("dartx.getAttribute");
var $getAttributeNS = dartx.getAttributeNS = Symbol("dartx.getAttributeNS");
var $hasAttribute = dartx.hasAttribute = Symbol("dartx.hasAttribute");
var $hasAttributeNS = dartx.hasAttributeNS = Symbol("dartx.hasAttributeNS");
var $removeAttribute = dartx.removeAttribute = Symbol("dartx.removeAttribute");
var $removeAttributeNS = dartx.removeAttributeNS = Symbol("dartx.removeAttributeNS");
var $setAttribute = dartx.setAttribute = Symbol("dartx.setAttribute");
var $setAttributeNS = dartx.setAttributeNS = Symbol("dartx.setAttributeNS");
var $children = dartx.children = Symbol("dartx.children");
var $querySelectorAll = dartx.querySelectorAll = Symbol("dartx.querySelectorAll");
var $setApplyScroll = dartx.setApplyScroll = Symbol("dartx.setApplyScroll");
var $setDistributeScroll = dartx.setDistributeScroll = Symbol("dartx.setDistributeScroll");
var $classes = dartx.classes = Symbol("dartx.classes");
var $dataset = dartx.dataset = Symbol("dartx.dataset");
var $getNamespacedAttributes = dartx.getNamespacedAttributes = Symbol("dartx.getNamespacedAttributes");
var $getComputedStyle = dartx.getComputedStyle = Symbol("dartx.getComputedStyle");
var $client = dartx.client = Symbol("dartx.client");
var $offsetLeft = dartx.offsetLeft = Symbol("dartx.offsetLeft");
var $offsetTop = dartx.offsetTop = Symbol("dartx.offsetTop");
var $offsetWidth = dartx.offsetWidth = Symbol("dartx.offsetWidth");
var $offsetHeight = dartx.offsetHeight = Symbol("dartx.offsetHeight");
var $offset = dartx.offset = Symbol("dartx.offset");
var $append = dartx.append = Symbol("dartx.append");
var $appendText = dartx.appendText = Symbol("dartx.appendText");
var $insertAdjacentHtml = dartx.insertAdjacentHtml = Symbol("dartx.insertAdjacentHtml");
var $appendHtml = dartx.appendHtml = Symbol("dartx.appendHtml");
var $enteredView = dartx.enteredView = Symbol("dartx.enteredView");
var $attached = dartx.attached = Symbol("dartx.attached");
var $leftView = dartx.leftView = Symbol("dartx.leftView");
var $detached = dartx.detached = Symbol("dartx.detached");
var $getClientRects = dartx.getClientRects = Symbol("dartx.getClientRects");
var $animate = dartx.animate = Symbol("dartx.animate");
var $attributeChanged = dartx.attributeChanged = Symbol("dartx.attributeChanged");
var $localName = dartx.localName = Symbol("dartx.localName");
var $namespaceUri = dartx.namespaceUri = Symbol("dartx.namespaceUri");
var $scrollIntoView = dartx.scrollIntoView = Symbol("dartx.scrollIntoView");
var $insertAdjacentText = dartx.insertAdjacentText = Symbol("dartx.insertAdjacentText");
var $insertAdjacentElement = dartx.insertAdjacentElement = Symbol("dartx.insertAdjacentElement");
var $nextNode = dartx.nextNode = Symbol("dartx.nextNode");
var $matchesWithAncestors = dartx.matchesWithAncestors = Symbol("dartx.matchesWithAncestors");
var $createShadowRoot = dartx.createShadowRoot = Symbol("dartx.createShadowRoot");
var $shadowRoot = dartx.shadowRoot = Symbol("dartx.shadowRoot");
var $contentEdge = dartx.contentEdge = Symbol("dartx.contentEdge");
var $paddingEdge = dartx.paddingEdge = Symbol("dartx.paddingEdge");
var $borderEdge = dartx.borderEdge = Symbol("dartx.borderEdge");
var $marginEdge = dartx.marginEdge = Symbol("dartx.marginEdge");
var $offsetTo = dartx.offsetTo = Symbol("dartx.offsetTo");
var $documentOffset = dartx.documentOffset = Symbol("dartx.documentOffset");
var $createHtmlDocument = dartx.createHtmlDocument = Symbol("dartx.createHtmlDocument");
var $createElement = dartx.createElement = Symbol("dartx.createElement");
var $baseUri = dartx.baseUri = Symbol("dartx.baseUri");
var $head = dartx.head = Symbol("dartx.head");
var $setInnerHtml = dartx.setInnerHtml = Symbol("dartx.setInnerHtml");
var $innerHtml = dartx.innerHtml = Symbol("dartx.innerHtml");
var $text = dartx.text = Symbol("dartx.text");
var $innerText = dartx.innerText = Symbol("dartx.innerText");
var $offsetParent = dartx.offsetParent = Symbol("dartx.offsetParent");
var $scrollHeight = dartx.scrollHeight = Symbol("dartx.scrollHeight");
var $scrollLeft = dartx.scrollLeft = Symbol("dartx.scrollLeft");
var $scrollTop = dartx.scrollTop = Symbol("dartx.scrollTop");
var $scrollWidth = dartx.scrollWidth = Symbol("dartx.scrollWidth");
var $contentEditable = dartx.contentEditable = Symbol("dartx.contentEditable");
var $dir = dartx.dir = Symbol("dartx.dir");
var $draggable = dartx.draggable = Symbol("dartx.draggable");
var $hidden = dartx.hidden = Symbol("dartx.hidden");
var $inert = dartx.inert = Symbol("dartx.inert");
var $inputMode = dartx.inputMode = Symbol("dartx.inputMode");
var $isContentEditable = dartx.isContentEditable = Symbol("dartx.isContentEditable");
var $lang = dartx.lang = Symbol("dartx.lang");
var $spellcheck = dartx.spellcheck = Symbol("dartx.spellcheck");
var $style = dartx.style = Symbol("dartx.style");
var $tabIndex = dartx.tabIndex = Symbol("dartx.tabIndex");
var $title = dartx.title = Symbol("dartx.title");
var $translate = dartx.translate = Symbol("dartx.translate");
var $blur = dartx.blur = Symbol("dartx.blur");
var $click = dartx.click = Symbol("dartx.click");
var $focus = dartx.focus = Symbol("dartx.focus");
var $accessibleNode = dartx.accessibleNode = Symbol("dartx.accessibleNode");
var $assignedSlot = dartx.assignedSlot = Symbol("dartx.assignedSlot");
var $className = dartx.className = Symbol("dartx.className");
var $clientHeight = dartx.clientHeight = Symbol("dartx.clientHeight");
var $clientLeft = dartx.clientLeft = Symbol("dartx.clientLeft");
var $clientTop = dartx.clientTop = Symbol("dartx.clientTop");
var $clientWidth = dartx.clientWidth = Symbol("dartx.clientWidth");
var $computedName = dartx.computedName = Symbol("dartx.computedName");
var $computedRole = dartx.computedRole = Symbol("dartx.computedRole");
var $id = dartx.id = Symbol("dartx.id");
var $outerHtml = dartx.outerHtml = Symbol("dartx.outerHtml");
var $slot = dartx.slot = Symbol("dartx.slot");
var $styleMap = dartx.styleMap = Symbol("dartx.styleMap");
var $tagName = dartx.tagName = Symbol("dartx.tagName");
var $attachShadow = dartx.attachShadow = Symbol("dartx.attachShadow");
var $closest = dartx.closest = Symbol("dartx.closest");
var $getAnimations = dartx.getAnimations = Symbol("dartx.getAnimations");
var $getAttributeNames = dartx.getAttributeNames = Symbol("dartx.getAttributeNames");
var $getBoundingClientRect = dartx.getBoundingClientRect = Symbol("dartx.getBoundingClientRect");
var $getDestinationInsertionPoints = dartx.getDestinationInsertionPoints = Symbol("dartx.getDestinationInsertionPoints");
var $getElementsByClassName = dartx.getElementsByClassName = Symbol("dartx.getElementsByClassName");
var $hasPointerCapture = dartx.hasPointerCapture = Symbol("dartx.hasPointerCapture");
var $releasePointerCapture = dartx.releasePointerCapture = Symbol("dartx.releasePointerCapture");
var $requestPointerLock = dartx.requestPointerLock = Symbol("dartx.requestPointerLock");
var $scroll = dartx.scroll = Symbol("dartx.scroll");
var $scrollBy = dartx.scrollBy = Symbol("dartx.scrollBy");
var $scrollTo = dartx.scrollTo = Symbol("dartx.scrollTo");
var $setPointerCapture = dartx.setPointerCapture = Symbol("dartx.setPointerCapture");
var $requestFullscreen = dartx.requestFullscreen = Symbol("dartx.requestFullscreen");
var $after = dartx.after = Symbol("dartx.after");
var $before = dartx.before = Symbol("dartx.before");
var $nextElementSibling = dartx.nextElementSibling = Symbol("dartx.nextElementSibling");
var $previousElementSibling = dartx.previousElementSibling = Symbol("dartx.previousElementSibling");
var $querySelector = dartx.querySelector = Symbol("dartx.querySelector");
var $onBeforeCopy = dartx.onBeforeCopy = Symbol("dartx.onBeforeCopy");
var $onBeforeCut = dartx.onBeforeCut = Symbol("dartx.onBeforeCut");
var $onBeforePaste = dartx.onBeforePaste = Symbol("dartx.onBeforePaste");
var $onBlur = dartx.onBlur = Symbol("dartx.onBlur");
var $onCanPlay = dartx.onCanPlay = Symbol("dartx.onCanPlay");
var $onCanPlayThrough = dartx.onCanPlayThrough = Symbol("dartx.onCanPlayThrough");
var $onChange = dartx.onChange = Symbol("dartx.onChange");
var $onClick = dartx.onClick = Symbol("dartx.onClick");
var $onContextMenu = dartx.onContextMenu = Symbol("dartx.onContextMenu");
var $onCopy = dartx.onCopy = Symbol("dartx.onCopy");
var $onCut = dartx.onCut = Symbol("dartx.onCut");
var $onDoubleClick = dartx.onDoubleClick = Symbol("dartx.onDoubleClick");
var $onDrag = dartx.onDrag = Symbol("dartx.onDrag");
var $onDragEnd = dartx.onDragEnd = Symbol("dartx.onDragEnd");
var $onDragEnter = dartx.onDragEnter = Symbol("dartx.onDragEnter");
var $onDragLeave = dartx.onDragLeave = Symbol("dartx.onDragLeave");
var $onDragOver = dartx.onDragOver = Symbol("dartx.onDragOver");
var $onDragStart = dartx.onDragStart = Symbol("dartx.onDragStart");
var $onDrop = dartx.onDrop = Symbol("dartx.onDrop");
var $onDurationChange = dartx.onDurationChange = Symbol("dartx.onDurationChange");
var $onEmptied = dartx.onEmptied = Symbol("dartx.onEmptied");
var $onEnded = dartx.onEnded = Symbol("dartx.onEnded");
var $onFocus = dartx.onFocus = Symbol("dartx.onFocus");
var $onInput = dartx.onInput = Symbol("dartx.onInput");
var $onInvalid = dartx.onInvalid = Symbol("dartx.onInvalid");
var $onKeyDown = dartx.onKeyDown = Symbol("dartx.onKeyDown");
var $onKeyPress = dartx.onKeyPress = Symbol("dartx.onKeyPress");
var $onKeyUp = dartx.onKeyUp = Symbol("dartx.onKeyUp");
var $onLoad = dartx.onLoad = Symbol("dartx.onLoad");
var $onLoadedData = dartx.onLoadedData = Symbol("dartx.onLoadedData");
var $onLoadedMetadata = dartx.onLoadedMetadata = Symbol("dartx.onLoadedMetadata");
var $onMouseDown = dartx.onMouseDown = Symbol("dartx.onMouseDown");
var $onMouseEnter = dartx.onMouseEnter = Symbol("dartx.onMouseEnter");
var $onMouseLeave = dartx.onMouseLeave = Symbol("dartx.onMouseLeave");
var $onMouseMove = dartx.onMouseMove = Symbol("dartx.onMouseMove");
var $onMouseOut = dartx.onMouseOut = Symbol("dartx.onMouseOut");
var $onMouseOver = dartx.onMouseOver = Symbol("dartx.onMouseOver");
var $onMouseUp = dartx.onMouseUp = Symbol("dartx.onMouseUp");
var $onMouseWheel = dartx.onMouseWheel = Symbol("dartx.onMouseWheel");
var $onPaste = dartx.onPaste = Symbol("dartx.onPaste");
var $onPause = dartx.onPause = Symbol("dartx.onPause");
var $onPlay = dartx.onPlay = Symbol("dartx.onPlay");
var $onPlaying = dartx.onPlaying = Symbol("dartx.onPlaying");
var $onRateChange = dartx.onRateChange = Symbol("dartx.onRateChange");
var $onReset = dartx.onReset = Symbol("dartx.onReset");
var $onResize = dartx.onResize = Symbol("dartx.onResize");
var $onScroll = dartx.onScroll = Symbol("dartx.onScroll");
var $onSearch = dartx.onSearch = Symbol("dartx.onSearch");
var $onSeeked = dartx.onSeeked = Symbol("dartx.onSeeked");
var $onSeeking = dartx.onSeeking = Symbol("dartx.onSeeking");
var $onSelect = dartx.onSelect = Symbol("dartx.onSelect");
var $onSelectStart = dartx.onSelectStart = Symbol("dartx.onSelectStart");
var $onStalled = dartx.onStalled = Symbol("dartx.onStalled");
var $onSubmit = dartx.onSubmit = Symbol("dartx.onSubmit");
var $onSuspend = dartx.onSuspend = Symbol("dartx.onSuspend");
var $onTimeUpdate = dartx.onTimeUpdate = Symbol("dartx.onTimeUpdate");
var $onTouchCancel = dartx.onTouchCancel = Symbol("dartx.onTouchCancel");
var $onTouchEnd = dartx.onTouchEnd = Symbol("dartx.onTouchEnd");
var $onTouchEnter = dartx.onTouchEnter = Symbol("dartx.onTouchEnter");
var $onTouchLeave = dartx.onTouchLeave = Symbol("dartx.onTouchLeave");
var $onTouchMove = dartx.onTouchMove = Symbol("dartx.onTouchMove");
var $onTouchStart = dartx.onTouchStart = Symbol("dartx.onTouchStart");
var $onTransitionEnd = dartx.onTransitionEnd = Symbol("dartx.onTransitionEnd");
var $onVolumeChange = dartx.onVolumeChange = Symbol("dartx.onVolumeChange");
var $onWaiting = dartx.onWaiting = Symbol("dartx.onWaiting");
var $onFullscreenChange = dartx.onFullscreenChange = Symbol("dartx.onFullscreenChange");
var $onFullscreenError = dartx.onFullscreenError = Symbol("dartx.onFullscreenError");
var $onWheel = dartx.onWheel = Symbol("dartx.onWheel");
var $replaceWith = dartx.replaceWith = Symbol("dartx.replaceWith");
var $insertAllBefore = dartx.insertAllBefore = Symbol("dartx.insertAllBefore");
var $childNodes = dartx.childNodes = Symbol("dartx.childNodes");
var $firstChild = dartx.firstChild = Symbol("dartx.firstChild");
var $isConnected = dartx.isConnected = Symbol("dartx.isConnected");
var $lastChild = dartx.lastChild = Symbol("dartx.lastChild");
var $nodeName = dartx.nodeName = Symbol("dartx.nodeName");
var $nodeType = dartx.nodeType = Symbol("dartx.nodeType");
var $nodeValue = dartx.nodeValue = Symbol("dartx.nodeValue");
var $ownerDocument = dartx.ownerDocument = Symbol("dartx.ownerDocument");
var $parentNode = dartx.parentNode = Symbol("dartx.parentNode");
var $previousNode = dartx.previousNode = Symbol("dartx.previousNode");
var $clone = dartx.clone = Symbol("dartx.clone");
var $getRootNode = dartx.getRootNode = Symbol("dartx.getRootNode");
var $hasChildNodes = dartx.hasChildNodes = Symbol("dartx.hasChildNodes");
var $insertBefore = dartx.insertBefore = Symbol("dartx.insertBefore");
var $respondWith = dartx.respondWith = Symbol("dartx.respondWith");
var $waitUntil = dartx.waitUntil = Symbol("dartx.waitUntil");
var $quaternion = dartx.quaternion = Symbol("dartx.quaternion");
var $populateMatrix = dartx.populateMatrix = Symbol("dartx.populateMatrix");
var $activated = dartx.activated = Symbol("dartx.activated");
var $hasReading = dartx.hasReading = Symbol("dartx.hasReading");
var $timestamp = dartx.timestamp = Symbol("dartx.timestamp");
var $start = dartx.start = Symbol("dartx.start");
var $stop = dartx.stop = Symbol("dartx.stop");
var $x = dartx.x = Symbol("dartx.x");
var $y = dartx.y = Symbol("dartx.y");
var $z = dartx.z = Symbol("dartx.z");
var $activeDescendant = dartx.activeDescendant = Symbol("dartx.activeDescendant");
var $atomic = dartx.atomic = Symbol("dartx.atomic");
var $autocomplete = dartx.autocomplete = Symbol("dartx.autocomplete");
var $busy = dartx.busy = Symbol("dartx.busy");
var $checked = dartx.checked = Symbol("dartx.checked");
var $colCount = dartx.colCount = Symbol("dartx.colCount");
var $colIndex = dartx.colIndex = Symbol("dartx.colIndex");
var $colSpan = dartx.colSpan = Symbol("dartx.colSpan");
var $controls = dartx.controls = Symbol("dartx.controls");
var $current = dartx.current = Symbol("dartx.current");
var $describedBy = dartx.describedBy = Symbol("dartx.describedBy");
var $details = dartx.details = Symbol("dartx.details");
var $disabled = dartx.disabled = Symbol("dartx.disabled");
var $errorMessage = dartx.errorMessage = Symbol("dartx.errorMessage");
var $expanded = dartx.expanded = Symbol("dartx.expanded");
var $flowTo = dartx.flowTo = Symbol("dartx.flowTo");
var $hasPopUp = dartx.hasPopUp = Symbol("dartx.hasPopUp");
var $invalid = dartx.invalid = Symbol("dartx.invalid");
var $keyShortcuts = dartx.keyShortcuts = Symbol("dartx.keyShortcuts");
var $label = dartx.label = Symbol("dartx.label");
var $labeledBy = dartx.labeledBy = Symbol("dartx.labeledBy");
var $level = dartx.level = Symbol("dartx.level");
var $live = dartx.live = Symbol("dartx.live");
var $modal = dartx.modal = Symbol("dartx.modal");
var $multiline = dartx.multiline = Symbol("dartx.multiline");
var $multiselectable = dartx.multiselectable = Symbol("dartx.multiselectable");
var $orientation = dartx.orientation = Symbol("dartx.orientation");
var $owns = dartx.owns = Symbol("dartx.owns");
var $placeholder = dartx.placeholder = Symbol("dartx.placeholder");
var $posInSet = dartx.posInSet = Symbol("dartx.posInSet");
var $pressed = dartx.pressed = Symbol("dartx.pressed");
var $readOnly = dartx.readOnly = Symbol("dartx.readOnly");
var $relevant = dartx.relevant = Symbol("dartx.relevant");
var $required = dartx.required = Symbol("dartx.required");
var $role = dartx.role = Symbol("dartx.role");
var $roleDescription = dartx.roleDescription = Symbol("dartx.roleDescription");
var $rowCount = dartx.rowCount = Symbol("dartx.rowCount");
var $rowIndex = dartx.rowIndex = Symbol("dartx.rowIndex");
var $rowSpan = dartx.rowSpan = Symbol("dartx.rowSpan");
var $selected = dartx.selected = Symbol("dartx.selected");
var $setSize = dartx.setSize = Symbol("dartx.setSize");
var $valueMax = dartx.valueMax = Symbol("dartx.valueMax");
var $valueMin = dartx.valueMin = Symbol("dartx.valueMin");
var $valueNow = dartx.valueNow = Symbol("dartx.valueNow");
var $valueText = dartx.valueText = Symbol("dartx.valueText");
var $appendChild = dartx.appendChild = Symbol("dartx.appendChild");
var $onAccessibleClick = dartx.onAccessibleClick = Symbol("dartx.onAccessibleClick");
var $onAccessibleContextMenu = dartx.onAccessibleContextMenu = Symbol("dartx.onAccessibleContextMenu");
var $onAccessibleDecrement = dartx.onAccessibleDecrement = Symbol("dartx.onAccessibleDecrement");
var $onAccessibleFocus = dartx.onAccessibleFocus = Symbol("dartx.onAccessibleFocus");
var $onAccessibleIncrement = dartx.onAccessibleIncrement = Symbol("dartx.onAccessibleIncrement");
var $onAccessibleScrollIntoView = dartx.onAccessibleScrollIntoView = Symbol("dartx.onAccessibleScrollIntoView");
var $item = dartx.item = Symbol("dartx.item");
var $illuminance = dartx.illuminance = Symbol("dartx.illuminance");
var $download = dartx.download = Symbol("dartx.download");
var $hreflang = dartx.hreflang = Symbol("dartx.hreflang");
var $referrerPolicy = dartx.referrerPolicy = Symbol("dartx.referrerPolicy");
var $rel = dartx.rel = Symbol("dartx.rel");
var $hash = dartx.hash = Symbol("dartx.hash");
var $host = dartx.host = Symbol("dartx.host");
var $hostname = dartx.hostname = Symbol("dartx.hostname");
var $href = dartx.href = Symbol("dartx.href");
var $origin = dartx.origin = Symbol("dartx.origin");
var $password = dartx.password = Symbol("dartx.password");
var $pathname = dartx.pathname = Symbol("dartx.pathname");
var $port = dartx.port = Symbol("dartx.port");
var $protocol = dartx.protocol = Symbol("dartx.protocol");
var $search = dartx.search = Symbol("dartx.search");
var $username = dartx.username = Symbol("dartx.username");
var $currentTime = dartx.currentTime = Symbol("dartx.currentTime");
var $effect = dartx.effect = Symbol("dartx.effect");
var $finished = dartx.finished = Symbol("dartx.finished");
var $playState = dartx.playState = Symbol("dartx.playState");
var $playbackRate = dartx.playbackRate = Symbol("dartx.playbackRate");
var $ready = dartx.ready = Symbol("dartx.ready");
var $startTime = dartx.startTime = Symbol("dartx.startTime");
var $timeline = dartx.timeline = Symbol("dartx.timeline");
var $cancel = dartx.cancel = Symbol("dartx.cancel");
var $finish = dartx.finish = Symbol("dartx.finish");
var $pause = dartx.pause = Symbol("dartx.pause");
var $play = dartx.play = Symbol("dartx.play");
var $reverse = dartx.reverse = Symbol("dartx.reverse");
var $onCancel = dartx.onCancel = Symbol("dartx.onCancel");
var $onFinish = dartx.onFinish = Symbol("dartx.onFinish");
var $timing = dartx.timing = Symbol("dartx.timing");
var $getComputedTiming = dartx.getComputedTiming = Symbol("dartx.getComputedTiming");
var $delay = dartx.delay = Symbol("dartx.delay");
var $duration = dartx.duration = Symbol("dartx.duration");
var $easing = dartx.easing = Symbol("dartx.easing");
var $endDelay = dartx.endDelay = Symbol("dartx.endDelay");
var $fill = dartx.fill = Symbol("dartx.fill");
var $iterationStart = dartx.iterationStart = Symbol("dartx.iterationStart");
var $iterations = dartx.iterations = Symbol("dartx.iterations");
var $animationName = dartx.animationName = Symbol("dartx.animationName");
var $elapsedTime = dartx.elapsedTime = Symbol("dartx.elapsedTime");
var $timelineTime = dartx.timelineTime = Symbol("dartx.timelineTime");
var $registerAnimator = dartx.registerAnimator = Symbol("dartx.registerAnimator");
var $status = dartx.status = Symbol("dartx.status");
var $swapCache = dartx.swapCache = Symbol("dartx.swapCache");
var $onCached = dartx.onCached = Symbol("dartx.onCached");
var $onChecking = dartx.onChecking = Symbol("dartx.onChecking");
var $onDownloading = dartx.onDownloading = Symbol("dartx.onDownloading");
var $onNoUpdate = dartx.onNoUpdate = Symbol("dartx.onNoUpdate");
var $onObsolete = dartx.onObsolete = Symbol("dartx.onObsolete");
var $onProgress = dartx.onProgress = Symbol("dartx.onProgress");
var $onUpdateReady = dartx.onUpdateReady = Symbol("dartx.onUpdateReady");
var $reason = dartx.reason = Symbol("dartx.reason");
var $url = dartx.url = Symbol("dartx.url");
var $alt = dartx.alt = Symbol("dartx.alt");
var $coords = dartx.coords = Symbol("dartx.coords");
var $shape = dartx.shape = Symbol("dartx.shape");
var $audioTracks = dartx.audioTracks = Symbol("dartx.audioTracks");
var $autoplay = dartx.autoplay = Symbol("dartx.autoplay");
var $buffered = dartx.buffered = Symbol("dartx.buffered");
var $controlsList = dartx.controlsList = Symbol("dartx.controlsList");
var $crossOrigin = dartx.crossOrigin = Symbol("dartx.crossOrigin");
var $currentSrc = dartx.currentSrc = Symbol("dartx.currentSrc");
var $defaultMuted = dartx.defaultMuted = Symbol("dartx.defaultMuted");
var $defaultPlaybackRate = dartx.defaultPlaybackRate = Symbol("dartx.defaultPlaybackRate");
var $disableRemotePlayback = dartx.disableRemotePlayback = Symbol("dartx.disableRemotePlayback");
var $ended = dartx.ended = Symbol("dartx.ended");
var $loop = dartx.loop = Symbol("dartx.loop");
var $mediaKeys = dartx.mediaKeys = Symbol("dartx.mediaKeys");
var $muted = dartx.muted = Symbol("dartx.muted");
var $networkState = dartx.networkState = Symbol("dartx.networkState");
var $paused = dartx.paused = Symbol("dartx.paused");
var $played = dartx.played = Symbol("dartx.played");
var $preload = dartx.preload = Symbol("dartx.preload");
var $remote = dartx.remote = Symbol("dartx.remote");
var $seekable = dartx.seekable = Symbol("dartx.seekable");
var $seeking = dartx.seeking = Symbol("dartx.seeking");
var $sinkId = dartx.sinkId = Symbol("dartx.sinkId");
var $src = dartx.src = Symbol("dartx.src");
var $srcObject = dartx.srcObject = Symbol("dartx.srcObject");
var $textTracks = dartx.textTracks = Symbol("dartx.textTracks");
var $videoTracks = dartx.videoTracks = Symbol("dartx.videoTracks");
var $volume = dartx.volume = Symbol("dartx.volume");
var $audioDecodedByteCount = dartx.audioDecodedByteCount = Symbol("dartx.audioDecodedByteCount");
var $videoDecodedByteCount = dartx.videoDecodedByteCount = Symbol("dartx.videoDecodedByteCount");
var $addTextTrack = dartx.addTextTrack = Symbol("dartx.addTextTrack");
var $canPlayType = dartx.canPlayType = Symbol("dartx.canPlayType");
var $captureStream = dartx.captureStream = Symbol("dartx.captureStream");
var $load = dartx.load = Symbol("dartx.load");
var $setMediaKeys = dartx.setMediaKeys = Symbol("dartx.setMediaKeys");
var $setSinkId = dartx.setSinkId = Symbol("dartx.setSinkId");
var $authenticatorData = dartx.authenticatorData = Symbol("dartx.authenticatorData");
var $signature = dartx.signature = Symbol("dartx.signature");
var $clientDataJson = dartx.clientDataJson = Symbol("dartx.clientDataJson");
var $attestationObject = dartx.attestationObject = Symbol("dartx.attestationObject");
var $state = dartx.state = Symbol("dartx.state");
var $fetches = dartx.fetches = Symbol("dartx.fetches");
var $request = dartx.request = Symbol("dartx.request");
var $fetch = dartx.fetch = Symbol("dartx.fetch");
var $getIds = dartx.getIds = Symbol("dartx.getIds");
var $downloadTotal = dartx.downloadTotal = Symbol("dartx.downloadTotal");
var $downloaded = dartx.downloaded = Symbol("dartx.downloaded");
var $totalDownloadSize = dartx.totalDownloadSize = Symbol("dartx.totalDownloadSize");
var $uploadTotal = dartx.uploadTotal = Symbol("dartx.uploadTotal");
var $uploaded = dartx.uploaded = Symbol("dartx.uploaded");
var $response = dartx.response = Symbol("dartx.response");
var $updateUI = dartx.updateUI = Symbol("dartx.updateUI");
var $visible = dartx.visible = Symbol("dartx.visible");
var $detect = dartx.detect = Symbol("dartx.detect");
var $charging = dartx.charging = Symbol("dartx.charging");
var $chargingTime = dartx.chargingTime = Symbol("dartx.chargingTime");
var $dischargingTime = dartx.dischargingTime = Symbol("dartx.dischargingTime");
var $platforms = dartx.platforms = Symbol("dartx.platforms");
var $userChoice = dartx.userChoice = Symbol("dartx.userChoice");
var $prompt = dartx.prompt = Symbol("dartx.prompt");
var $returnValue = dartx.returnValue = Symbol("dartx.returnValue");
var $size = dartx.size = Symbol("dartx.size");
var $slice = dartx.slice = Symbol("dartx.slice");
var $data = dartx.data = Symbol("dartx.data");
var $timecode = dartx.timecode = Symbol("dartx.timecode");
var $characteristic = dartx.characteristic = Symbol("dartx.characteristic");
var $uuid = dartx.uuid = Symbol("dartx.uuid");
var $readValue = dartx.readValue = Symbol("dartx.readValue");
var $writeValue = dartx.writeValue = Symbol("dartx.writeValue");
var $bodyUsed = dartx.bodyUsed = Symbol("dartx.bodyUsed");
var $arrayBuffer = dartx.arrayBuffer = Symbol("dartx.arrayBuffer");
var $blob = dartx.blob = Symbol("dartx.blob");
var $formData = dartx.formData = Symbol("dartx.formData");
var $json = dartx.json = Symbol("dartx.json");
var $onHashChange = dartx.onHashChange = Symbol("dartx.onHashChange");
var $onMessage = dartx.onMessage = Symbol("dartx.onMessage");
var $onOffline = dartx.onOffline = Symbol("dartx.onOffline");
var $onOnline = dartx.onOnline = Symbol("dartx.onOnline");
var $onPopState = dartx.onPopState = Symbol("dartx.onPopState");
var $onStorage = dartx.onStorage = Symbol("dartx.onStorage");
var $onUnload = dartx.onUnload = Symbol("dartx.onUnload");
var $postMessage = dartx.postMessage = Symbol("dartx.postMessage");
var $budgetAt = dartx.budgetAt = Symbol("dartx.budgetAt");
var $time = dartx.time = Symbol("dartx.time");
var $autofocus = dartx.autofocus = Symbol("dartx.autofocus");
var $form = dartx.form = Symbol("dartx.form");
var $formAction = dartx.formAction = Symbol("dartx.formAction");
var $formEnctype = dartx.formEnctype = Symbol("dartx.formEnctype");
var $formMethod = dartx.formMethod = Symbol("dartx.formMethod");
var $formNoValidate = dartx.formNoValidate = Symbol("dartx.formNoValidate");
var $formTarget = dartx.formTarget = Symbol("dartx.formTarget");
var $labels = dartx.labels = Symbol("dartx.labels");
var $validationMessage = dartx.validationMessage = Symbol("dartx.validationMessage");
var $validity = dartx.validity = Symbol("dartx.validity");
var $willValidate = dartx.willValidate = Symbol("dartx.willValidate");
var $checkValidity = dartx.checkValidity = Symbol("dartx.checkValidity");
var $reportValidity = dartx.reportValidity = Symbol("dartx.reportValidity");
var $setCustomValidity = dartx.setCustomValidity = Symbol("dartx.setCustomValidity");
var $wholeText = dartx.wholeText = Symbol("dartx.wholeText");
var $splitText = dartx.splitText = Symbol("dartx.splitText");
var $appendData = dartx.appendData = Symbol("dartx.appendData");
var $deleteData = dartx.deleteData = Symbol("dartx.deleteData");
var $insertData = dartx.insertData = Symbol("dartx.insertData");
var $replaceData = dartx.replaceData = Symbol("dartx.replaceData");
var $substringData = dartx.substringData = Symbol("dartx.substringData");
var $has = dartx.has = Symbol("dartx.has");
var $match = dartx.match = Symbol("dartx.match");
var $methodData = dartx.methodData = Symbol("dartx.methodData");
var $modifiers = dartx.modifiers = Symbol("dartx.modifiers");
var $paymentRequestOrigin = dartx.paymentRequestOrigin = Symbol("dartx.paymentRequestOrigin");
var $topLevelOrigin = dartx.topLevelOrigin = Symbol("dartx.topLevelOrigin");
var $canvas = dartx.canvas = Symbol("dartx.canvas");
var $requestFrame = dartx.requestFrame = Symbol("dartx.requestFrame");
var $contentHint = dartx.contentHint = Symbol("dartx.contentHint");
var $enabled = dartx.enabled = Symbol("dartx.enabled");
var $kind = dartx.kind = Symbol("dartx.kind");
var $applyConstraints = dartx.applyConstraints = Symbol("dartx.applyConstraints");
var $getCapabilities = dartx.getCapabilities = Symbol("dartx.getCapabilities");
var $getConstraints = dartx.getConstraints = Symbol("dartx.getConstraints");
var $getSettings = dartx.getSettings = Symbol("dartx.getSettings");
var $onMute = dartx.onMute = Symbol("dartx.onMute");
var $onUnmute = dartx.onUnmute = Symbol("dartx.onUnmute");
var $getContext = dartx.getContext = Symbol("dartx.getContext");
var $transferControlToOffscreen = dartx.transferControlToOffscreen = Symbol("dartx.transferControlToOffscreen");
var $onWebGlContextLost = dartx.onWebGlContextLost = Symbol("dartx.onWebGlContextLost");
var $onWebGlContextRestored = dartx.onWebGlContextRestored = Symbol("dartx.onWebGlContextRestored");
var $context2D = dartx.context2D = Symbol("dartx.context2D");
var $getContext3d = dartx.getContext3d = Symbol("dartx.getContext3d");
var $toDataUrl = dartx.toDataUrl = Symbol("dartx.toDataUrl");
var $toBlob = dartx.toBlob = Symbol("dartx.toBlob");
var $addColorStop = dartx.addColorStop = Symbol("dartx.addColorStop");
var $setTransform = dartx.setTransform = Symbol("dartx.setTransform");
var $currentTransform = dartx.currentTransform = Symbol("dartx.currentTransform");
var $fillStyle = dartx.fillStyle = Symbol("dartx.fillStyle");
var $filter = dartx.filter = Symbol("dartx.filter");
var $font = dartx.font = Symbol("dartx.font");
var $globalAlpha = dartx.globalAlpha = Symbol("dartx.globalAlpha");
var $globalCompositeOperation = dartx.globalCompositeOperation = Symbol("dartx.globalCompositeOperation");
var $imageSmoothingEnabled = dartx.imageSmoothingEnabled = Symbol("dartx.imageSmoothingEnabled");
var $imageSmoothingQuality = dartx.imageSmoothingQuality = Symbol("dartx.imageSmoothingQuality");
var $lineCap = dartx.lineCap = Symbol("dartx.lineCap");
var $lineJoin = dartx.lineJoin = Symbol("dartx.lineJoin");
var $lineWidth = dartx.lineWidth = Symbol("dartx.lineWidth");
var $miterLimit = dartx.miterLimit = Symbol("dartx.miterLimit");
var $shadowBlur = dartx.shadowBlur = Symbol("dartx.shadowBlur");
var $shadowColor = dartx.shadowColor = Symbol("dartx.shadowColor");
var $shadowOffsetX = dartx.shadowOffsetX = Symbol("dartx.shadowOffsetX");
var $shadowOffsetY = dartx.shadowOffsetY = Symbol("dartx.shadowOffsetY");
var $strokeStyle = dartx.strokeStyle = Symbol("dartx.strokeStyle");
var $textAlign = dartx.textAlign = Symbol("dartx.textAlign");
var $textBaseline = dartx.textBaseline = Symbol("dartx.textBaseline");
var $addHitRegion = dartx.addHitRegion = Symbol("dartx.addHitRegion");
var $beginPath = dartx.beginPath = Symbol("dartx.beginPath");
var $clearHitRegions = dartx.clearHitRegions = Symbol("dartx.clearHitRegions");
var $clearRect = dartx.clearRect = Symbol("dartx.clearRect");
var $clip = dartx.clip = Symbol("dartx.clip");
var $createImageData = dartx.createImageData = Symbol("dartx.createImageData");
var $createLinearGradient = dartx.createLinearGradient = Symbol("dartx.createLinearGradient");
var $createPattern = dartx.createPattern = Symbol("dartx.createPattern");
var $createRadialGradient = dartx.createRadialGradient = Symbol("dartx.createRadialGradient");
var $drawFocusIfNeeded = dartx.drawFocusIfNeeded = Symbol("dartx.drawFocusIfNeeded");
var $fillRect = dartx.fillRect = Symbol("dartx.fillRect");
var $getContextAttributes = dartx.getContextAttributes = Symbol("dartx.getContextAttributes");
var $getImageData = dartx.getImageData = Symbol("dartx.getImageData");
var $isContextLost = dartx.isContextLost = Symbol("dartx.isContextLost");
var $isPointInPath = dartx.isPointInPath = Symbol("dartx.isPointInPath");
var $isPointInStroke = dartx.isPointInStroke = Symbol("dartx.isPointInStroke");
var $measureText = dartx.measureText = Symbol("dartx.measureText");
var $putImageData = dartx.putImageData = Symbol("dartx.putImageData");
var $removeHitRegion = dartx.removeHitRegion = Symbol("dartx.removeHitRegion");
var $resetTransform = dartx.resetTransform = Symbol("dartx.resetTransform");
var $restore = dartx.restore = Symbol("dartx.restore");
var $rotate = dartx.rotate = Symbol("dartx.rotate");
var $save = dartx.save = Symbol("dartx.save");
var $scale = dartx.scale = Symbol("dartx.scale");
var $scrollPathIntoView = dartx.scrollPathIntoView = Symbol("dartx.scrollPathIntoView");
var $stroke = dartx.stroke = Symbol("dartx.stroke");
var $strokeRect = dartx.strokeRect = Symbol("dartx.strokeRect");
var $strokeText = dartx.strokeText = Symbol("dartx.strokeText");
var $transform = dartx.transform = Symbol("dartx.transform");
var $arcTo = dartx.arcTo = Symbol("dartx.arcTo");
var $bezierCurveTo = dartx.bezierCurveTo = Symbol("dartx.bezierCurveTo");
var $closePath = dartx.closePath = Symbol("dartx.closePath");
var $ellipse = dartx.ellipse = Symbol("dartx.ellipse");
var $lineTo = dartx.lineTo = Symbol("dartx.lineTo");
var $moveTo = dartx.moveTo = Symbol("dartx.moveTo");
var $quadraticCurveTo = dartx.quadraticCurveTo = Symbol("dartx.quadraticCurveTo");
var $rect = dartx.rect = Symbol("dartx.rect");
var $createImageDataFromImageData = dartx.createImageDataFromImageData = Symbol("dartx.createImageDataFromImageData");
var $setFillColorRgb = dartx.setFillColorRgb = Symbol("dartx.setFillColorRgb");
var $setFillColorHsl = dartx.setFillColorHsl = Symbol("dartx.setFillColorHsl");
var $setStrokeColorRgb = dartx.setStrokeColorRgb = Symbol("dartx.setStrokeColorRgb");
var $setStrokeColorHsl = dartx.setStrokeColorHsl = Symbol("dartx.setStrokeColorHsl");
var $arc = dartx.arc = Symbol("dartx.arc");
var $createPatternFromImage = dartx.createPatternFromImage = Symbol("dartx.createPatternFromImage");
var $drawImageScaled = dartx.drawImageScaled = Symbol("dartx.drawImageScaled");
var $drawImageScaledFromSource = dartx.drawImageScaledFromSource = Symbol("dartx.drawImageScaledFromSource");
var $drawImageToRect = dartx.drawImageToRect = Symbol("dartx.drawImageToRect");
var $drawImage = dartx.drawImage = Symbol("dartx.drawImage");
var $lineDashOffset = dartx.lineDashOffset = Symbol("dartx.lineDashOffset");
var $getLineDash = dartx.getLineDash = Symbol("dartx.getLineDash");
var $setLineDash = dartx.setLineDash = Symbol("dartx.setLineDash");
var $fillText = dartx.fillText = Symbol("dartx.fillText");
var $backingStorePixelRatio = dartx.backingStorePixelRatio = Symbol("dartx.backingStorePixelRatio");
var $frameType = dartx.frameType = Symbol("dartx.frameType");
var $claim = dartx.claim = Symbol("dartx.claim");
var $matchAll = dartx.matchAll = Symbol("dartx.matchAll");
var $openWindow = dartx.openWindow = Symbol("dartx.openWindow");
var $clipboardData = dartx.clipboardData = Symbol("dartx.clipboardData");
var $code = dartx.code = Symbol("dartx.code");
var $wasClean = dartx.wasClean = Symbol("dartx.wasClean");
var $detail = dartx.detail = Symbol("dartx.detail");
var $sourceCapabilities = dartx.sourceCapabilities = Symbol("dartx.sourceCapabilities");
var $view = dartx.view = Symbol("dartx.view");
var $select = dartx.select = Symbol("dartx.select");
var $getDistributedNodes = dartx.getDistributedNodes = Symbol("dartx.getDistributedNodes");
var $set = dartx.set = Symbol("dartx.set");
var $accuracy = dartx.accuracy = Symbol("dartx.accuracy");
var $altitude = dartx.altitude = Symbol("dartx.altitude");
var $altitudeAccuracy = dartx.altitudeAccuracy = Symbol("dartx.altitudeAccuracy");
var $heading = dartx.heading = Symbol("dartx.heading");
var $latitude = dartx.latitude = Symbol("dartx.latitude");
var $longitude = dartx.longitude = Symbol("dartx.longitude");
var $speed = dartx.speed = Symbol("dartx.speed");
var $iconUrl = dartx.iconUrl = Symbol("dartx.iconUrl");
var $create = dartx.create = Symbol("dartx.create");
var $preventSilentAccess = dartx.preventSilentAccess = Symbol("dartx.preventSilentAccess");
var $requireUserMediation = dartx.requireUserMediation = Symbol("dartx.requireUserMediation");
var $store = dartx.store = Symbol("dartx.store");
var $getRandomValues = dartx.getRandomValues = Symbol("dartx.getRandomValues");
var $subtle = dartx.subtle = Symbol("dartx.subtle");
var $algorithm = dartx.algorithm = Symbol("dartx.algorithm");
var $extractable = dartx.extractable = Symbol("dartx.extractable");
var $usages = dartx.usages = Symbol("dartx.usages");
var $paintWorklet = dartx.paintWorklet = Symbol("dartx.paintWorklet");
var $encoding = dartx.encoding = Symbol("dartx.encoding");
var $cssText = dartx.cssText = Symbol("dartx.cssText");
var $parentRule = dartx.parentRule = Symbol("dartx.parentRule");
var $parentStyleSheet = dartx.parentStyleSheet = Symbol("dartx.parentStyleSheet");
var $conditionText = dartx.conditionText = Symbol("dartx.conditionText");
var $cssRules = dartx.cssRules = Symbol("dartx.cssRules");
var $deleteRule = dartx.deleteRule = Symbol("dartx.deleteRule");
var $insertRule = dartx.insertRule = Symbol("dartx.insertRule");
var $intrinsicHeight = dartx.intrinsicHeight = Symbol("dartx.intrinsicHeight");
var $intrinsicRatio = dartx.intrinsicRatio = Symbol("dartx.intrinsicRatio");
var $intrinsicWidth = dartx.intrinsicWidth = Symbol("dartx.intrinsicWidth");
var $media = dartx.media = Symbol("dartx.media");
var $styleSheet = dartx.styleSheet = Symbol("dartx.styleSheet");
var $keyText = dartx.keyText = Symbol("dartx.keyText");
var $appendRule = dartx.appendRule = Symbol("dartx.appendRule");
var $findRule = dartx.findRule = Symbol("dartx.findRule");
var $matrix = dartx.matrix = Symbol("dartx.matrix");
var $is2D = dartx.is2D = Symbol("dartx.is2D");
var $prefix = dartx.prefix = Symbol("dartx.prefix");
var $div = dartx.div = Symbol("dartx.div");
var $mul = dartx.mul = Symbol("dartx.mul");
var $sub = dartx.sub = Symbol("dartx.sub");
var $to = dartx.to = Symbol("dartx.to");
var $selectorText = dartx.selectorText = Symbol("dartx.selectorText");
var $angle = dartx.angle = Symbol("dartx.angle");
var $ax = dartx.ax = Symbol("dartx.ax");
var $ay = dartx.ay = Symbol("dartx.ay");
var $getPropertyValue = dartx.getPropertyValue = Symbol("dartx.getPropertyValue");
var $supportsProperty = dartx.supportsProperty = Symbol("dartx.supportsProperty");
var $setProperty = dartx.setProperty = Symbol("dartx.setProperty");
var $cssFloat = dartx.cssFloat = Symbol("dartx.cssFloat");
var $getPropertyPriority = dartx.getPropertyPriority = Symbol("dartx.getPropertyPriority");
var $removeProperty = dartx.removeProperty = Symbol("dartx.removeProperty");
var $background = dartx.background = Symbol("dartx.background");
var $backgroundAttachment = dartx.backgroundAttachment = Symbol("dartx.backgroundAttachment");
var $backgroundColor = dartx.backgroundColor = Symbol("dartx.backgroundColor");
var $backgroundImage = dartx.backgroundImage = Symbol("dartx.backgroundImage");
var $backgroundPosition = dartx.backgroundPosition = Symbol("dartx.backgroundPosition");
var $backgroundRepeat = dartx.backgroundRepeat = Symbol("dartx.backgroundRepeat");
var $border = dartx.border = Symbol("dartx.border");
var $borderBottom = dartx.borderBottom = Symbol("dartx.borderBottom");
var $borderBottomColor = dartx.borderBottomColor = Symbol("dartx.borderBottomColor");
var $borderBottomStyle = dartx.borderBottomStyle = Symbol("dartx.borderBottomStyle");
var $borderBottomWidth = dartx.borderBottomWidth = Symbol("dartx.borderBottomWidth");
var $borderCollapse = dartx.borderCollapse = Symbol("dartx.borderCollapse");
var $borderColor = dartx.borderColor = Symbol("dartx.borderColor");
var $borderLeft = dartx.borderLeft = Symbol("dartx.borderLeft");
var $borderLeftColor = dartx.borderLeftColor = Symbol("dartx.borderLeftColor");
var $borderLeftStyle = dartx.borderLeftStyle = Symbol("dartx.borderLeftStyle");
var $borderLeftWidth = dartx.borderLeftWidth = Symbol("dartx.borderLeftWidth");
var $borderRight = dartx.borderRight = Symbol("dartx.borderRight");
var $borderRightColor = dartx.borderRightColor = Symbol("dartx.borderRightColor");
var $borderRightStyle = dartx.borderRightStyle = Symbol("dartx.borderRightStyle");
var $borderRightWidth = dartx.borderRightWidth = Symbol("dartx.borderRightWidth");
var $borderSpacing = dartx.borderSpacing = Symbol("dartx.borderSpacing");
var $borderStyle = dartx.borderStyle = Symbol("dartx.borderStyle");
var $borderTop = dartx.borderTop = Symbol("dartx.borderTop");
var $borderTopColor = dartx.borderTopColor = Symbol("dartx.borderTopColor");
var $borderTopStyle = dartx.borderTopStyle = Symbol("dartx.borderTopStyle");
var $borderTopWidth = dartx.borderTopWidth = Symbol("dartx.borderTopWidth");
var $borderWidth = dartx.borderWidth = Symbol("dartx.borderWidth");
var $captionSide = dartx.captionSide = Symbol("dartx.captionSide");
var $color = dartx.color = Symbol("dartx.color");
var $content = dartx.content = Symbol("dartx.content");
var $cursor = dartx.cursor = Symbol("dartx.cursor");
var $display = dartx.display = Symbol("dartx.display");
var $emptyCells = dartx.emptyCells = Symbol("dartx.emptyCells");
var $fontFamily = dartx.fontFamily = Symbol("dartx.fontFamily");
var $fontSize = dartx.fontSize = Symbol("dartx.fontSize");
var $fontStyle = dartx.fontStyle = Symbol("dartx.fontStyle");
var $fontVariant = dartx.fontVariant = Symbol("dartx.fontVariant");
var $fontWeight = dartx.fontWeight = Symbol("dartx.fontWeight");
var $letterSpacing = dartx.letterSpacing = Symbol("dartx.letterSpacing");
var $lineHeight = dartx.lineHeight = Symbol("dartx.lineHeight");
var $listStyle = dartx.listStyle = Symbol("dartx.listStyle");
var $listStyleImage = dartx.listStyleImage = Symbol("dartx.listStyleImage");
var $listStylePosition = dartx.listStylePosition = Symbol("dartx.listStylePosition");
var $listStyleType = dartx.listStyleType = Symbol("dartx.listStyleType");
var $margin = dartx.margin = Symbol("dartx.margin");
var $marginBottom = dartx.marginBottom = Symbol("dartx.marginBottom");
var $marginLeft = dartx.marginLeft = Symbol("dartx.marginLeft");
var $marginRight = dartx.marginRight = Symbol("dartx.marginRight");
var $marginTop = dartx.marginTop = Symbol("dartx.marginTop");
var $maxHeight = dartx.maxHeight = Symbol("dartx.maxHeight");
var $maxWidth = dartx.maxWidth = Symbol("dartx.maxWidth");
var $minHeight = dartx.minHeight = Symbol("dartx.minHeight");
var $minWidth = dartx.minWidth = Symbol("dartx.minWidth");
var $outline = dartx.outline = Symbol("dartx.outline");
var $outlineColor = dartx.outlineColor = Symbol("dartx.outlineColor");
var $outlineStyle = dartx.outlineStyle = Symbol("dartx.outlineStyle");
var $outlineWidth = dartx.outlineWidth = Symbol("dartx.outlineWidth");
var $overflow = dartx.overflow = Symbol("dartx.overflow");
var $padding = dartx.padding = Symbol("dartx.padding");
var $paddingBottom = dartx.paddingBottom = Symbol("dartx.paddingBottom");
var $paddingLeft = dartx.paddingLeft = Symbol("dartx.paddingLeft");
var $paddingRight = dartx.paddingRight = Symbol("dartx.paddingRight");
var $paddingTop = dartx.paddingTop = Symbol("dartx.paddingTop");
var $pageBreakAfter = dartx.pageBreakAfter = Symbol("dartx.pageBreakAfter");
var $pageBreakBefore = dartx.pageBreakBefore = Symbol("dartx.pageBreakBefore");
var $pageBreakInside = dartx.pageBreakInside = Symbol("dartx.pageBreakInside");
var $position = dartx.position = Symbol("dartx.position");
var $quotes = dartx.quotes = Symbol("dartx.quotes");
var $tableLayout = dartx.tableLayout = Symbol("dartx.tableLayout");
var $textDecoration = dartx.textDecoration = Symbol("dartx.textDecoration");
var $textIndent = dartx.textIndent = Symbol("dartx.textIndent");
var $textTransform = dartx.textTransform = Symbol("dartx.textTransform");
var $unicodeBidi = dartx.unicodeBidi = Symbol("dartx.unicodeBidi");
var $verticalAlign = dartx.verticalAlign = Symbol("dartx.verticalAlign");
var $visibility = dartx.visibility = Symbol("dartx.visibility");
var $whiteSpace = dartx.whiteSpace = Symbol("dartx.whiteSpace");
var $wordSpacing = dartx.wordSpacing = Symbol("dartx.wordSpacing");
var $zIndex = dartx.zIndex = Symbol("dartx.zIndex");
var $alignContent = dartx.alignContent = Symbol("dartx.alignContent");
var $alignItems = dartx.alignItems = Symbol("dartx.alignItems");
var $alignSelf = dartx.alignSelf = Symbol("dartx.alignSelf");
var $animation = dartx.animation = Symbol("dartx.animation");
var $animationDelay = dartx.animationDelay = Symbol("dartx.animationDelay");
var $animationDirection = dartx.animationDirection = Symbol("dartx.animationDirection");
var $animationDuration = dartx.animationDuration = Symbol("dartx.animationDuration");
var $animationFillMode = dartx.animationFillMode = Symbol("dartx.animationFillMode");
var $animationIterationCount = dartx.animationIterationCount = Symbol("dartx.animationIterationCount");
var $animationPlayState = dartx.animationPlayState = Symbol("dartx.animationPlayState");
var $animationTimingFunction = dartx.animationTimingFunction = Symbol("dartx.animationTimingFunction");
var $appRegion = dartx.appRegion = Symbol("dartx.appRegion");
var $appearance = dartx.appearance = Symbol("dartx.appearance");
var $aspectRatio = dartx.aspectRatio = Symbol("dartx.aspectRatio");
var $backfaceVisibility = dartx.backfaceVisibility = Symbol("dartx.backfaceVisibility");
var $backgroundBlendMode = dartx.backgroundBlendMode = Symbol("dartx.backgroundBlendMode");
var $backgroundClip = dartx.backgroundClip = Symbol("dartx.backgroundClip");
var $backgroundComposite = dartx.backgroundComposite = Symbol("dartx.backgroundComposite");
var $backgroundOrigin = dartx.backgroundOrigin = Symbol("dartx.backgroundOrigin");
var $backgroundPositionX = dartx.backgroundPositionX = Symbol("dartx.backgroundPositionX");
var $backgroundPositionY = dartx.backgroundPositionY = Symbol("dartx.backgroundPositionY");
var $backgroundRepeatX = dartx.backgroundRepeatX = Symbol("dartx.backgroundRepeatX");
var $backgroundRepeatY = dartx.backgroundRepeatY = Symbol("dartx.backgroundRepeatY");
var $backgroundSize = dartx.backgroundSize = Symbol("dartx.backgroundSize");
var $borderAfter = dartx.borderAfter = Symbol("dartx.borderAfter");
var $borderAfterColor = dartx.borderAfterColor = Symbol("dartx.borderAfterColor");
var $borderAfterStyle = dartx.borderAfterStyle = Symbol("dartx.borderAfterStyle");
var $borderAfterWidth = dartx.borderAfterWidth = Symbol("dartx.borderAfterWidth");
var $borderBefore = dartx.borderBefore = Symbol("dartx.borderBefore");
var $borderBeforeColor = dartx.borderBeforeColor = Symbol("dartx.borderBeforeColor");
var $borderBeforeStyle = dartx.borderBeforeStyle = Symbol("dartx.borderBeforeStyle");
var $borderBeforeWidth = dartx.borderBeforeWidth = Symbol("dartx.borderBeforeWidth");
var $borderBottomLeftRadius = dartx.borderBottomLeftRadius = Symbol("dartx.borderBottomLeftRadius");
var $borderBottomRightRadius = dartx.borderBottomRightRadius = Symbol("dartx.borderBottomRightRadius");
var $borderEnd = dartx.borderEnd = Symbol("dartx.borderEnd");
var $borderEndColor = dartx.borderEndColor = Symbol("dartx.borderEndColor");
var $borderEndStyle = dartx.borderEndStyle = Symbol("dartx.borderEndStyle");
var $borderEndWidth = dartx.borderEndWidth = Symbol("dartx.borderEndWidth");
var $borderFit = dartx.borderFit = Symbol("dartx.borderFit");
var $borderHorizontalSpacing = dartx.borderHorizontalSpacing = Symbol("dartx.borderHorizontalSpacing");
var $borderImage = dartx.borderImage = Symbol("dartx.borderImage");
var $borderImageOutset = dartx.borderImageOutset = Symbol("dartx.borderImageOutset");
var $borderImageRepeat = dartx.borderImageRepeat = Symbol("dartx.borderImageRepeat");
var $borderImageSlice = dartx.borderImageSlice = Symbol("dartx.borderImageSlice");
var $borderImageSource = dartx.borderImageSource = Symbol("dartx.borderImageSource");
var $borderImageWidth = dartx.borderImageWidth = Symbol("dartx.borderImageWidth");
var $borderRadius = dartx.borderRadius = Symbol("dartx.borderRadius");
var $borderStart = dartx.borderStart = Symbol("dartx.borderStart");
var $borderStartColor = dartx.borderStartColor = Symbol("dartx.borderStartColor");
var $borderStartStyle = dartx.borderStartStyle = Symbol("dartx.borderStartStyle");
var $borderStartWidth = dartx.borderStartWidth = Symbol("dartx.borderStartWidth");
var $borderTopLeftRadius = dartx.borderTopLeftRadius = Symbol("dartx.borderTopLeftRadius");
var $borderTopRightRadius = dartx.borderTopRightRadius = Symbol("dartx.borderTopRightRadius");
var $borderVerticalSpacing = dartx.borderVerticalSpacing = Symbol("dartx.borderVerticalSpacing");
var $boxAlign = dartx.boxAlign = Symbol("dartx.boxAlign");
var $boxDecorationBreak = dartx.boxDecorationBreak = Symbol("dartx.boxDecorationBreak");
var $boxDirection = dartx.boxDirection = Symbol("dartx.boxDirection");
var $boxFlex = dartx.boxFlex = Symbol("dartx.boxFlex");
var $boxFlexGroup = dartx.boxFlexGroup = Symbol("dartx.boxFlexGroup");
var $boxLines = dartx.boxLines = Symbol("dartx.boxLines");
var $boxOrdinalGroup = dartx.boxOrdinalGroup = Symbol("dartx.boxOrdinalGroup");
var $boxOrient = dartx.boxOrient = Symbol("dartx.boxOrient");
var $boxPack = dartx.boxPack = Symbol("dartx.boxPack");
var $boxReflect = dartx.boxReflect = Symbol("dartx.boxReflect");
var $boxShadow = dartx.boxShadow = Symbol("dartx.boxShadow");
var $boxSizing = dartx.boxSizing = Symbol("dartx.boxSizing");
var $clipPath = dartx.clipPath = Symbol("dartx.clipPath");
var $columnBreakAfter = dartx.columnBreakAfter = Symbol("dartx.columnBreakAfter");
var $columnBreakBefore = dartx.columnBreakBefore = Symbol("dartx.columnBreakBefore");
var $columnBreakInside = dartx.columnBreakInside = Symbol("dartx.columnBreakInside");
var $columnCount = dartx.columnCount = Symbol("dartx.columnCount");
var $columnFill = dartx.columnFill = Symbol("dartx.columnFill");
var $columnGap = dartx.columnGap = Symbol("dartx.columnGap");
var $columnRule = dartx.columnRule = Symbol("dartx.columnRule");
var $columnRuleColor = dartx.columnRuleColor = Symbol("dartx.columnRuleColor");
var $columnRuleStyle = dartx.columnRuleStyle = Symbol("dartx.columnRuleStyle");
var $columnRuleWidth = dartx.columnRuleWidth = Symbol("dartx.columnRuleWidth");
var $columnSpan = dartx.columnSpan = Symbol("dartx.columnSpan");
var $columnWidth = dartx.columnWidth = Symbol("dartx.columnWidth");
var $columns = dartx.columns = Symbol("dartx.columns");
var $counterIncrement = dartx.counterIncrement = Symbol("dartx.counterIncrement");
var $counterReset = dartx.counterReset = Symbol("dartx.counterReset");
var $flex = dartx.flex = Symbol("dartx.flex");
var $flexBasis = dartx.flexBasis = Symbol("dartx.flexBasis");
var $flexDirection = dartx.flexDirection = Symbol("dartx.flexDirection");
var $flexFlow = dartx.flexFlow = Symbol("dartx.flexFlow");
var $flexGrow = dartx.flexGrow = Symbol("dartx.flexGrow");
var $flexShrink = dartx.flexShrink = Symbol("dartx.flexShrink");
var $flexWrap = dartx.flexWrap = Symbol("dartx.flexWrap");
var $float = dartx.float = Symbol("dartx.float");
var $fontFeatureSettings = dartx.fontFeatureSettings = Symbol("dartx.fontFeatureSettings");
var $fontKerning = dartx.fontKerning = Symbol("dartx.fontKerning");
var $fontSizeDelta = dartx.fontSizeDelta = Symbol("dartx.fontSizeDelta");
var $fontSmoothing = dartx.fontSmoothing = Symbol("dartx.fontSmoothing");
var $fontStretch = dartx.fontStretch = Symbol("dartx.fontStretch");
var $fontVariantLigatures = dartx.fontVariantLigatures = Symbol("dartx.fontVariantLigatures");
var $grid = dartx.grid = Symbol("dartx.grid");
var $gridArea = dartx.gridArea = Symbol("dartx.gridArea");
var $gridAutoColumns = dartx.gridAutoColumns = Symbol("dartx.gridAutoColumns");
var $gridAutoFlow = dartx.gridAutoFlow = Symbol("dartx.gridAutoFlow");
var $gridAutoRows = dartx.gridAutoRows = Symbol("dartx.gridAutoRows");
var $gridColumn = dartx.gridColumn = Symbol("dartx.gridColumn");
var $gridColumnEnd = dartx.gridColumnEnd = Symbol("dartx.gridColumnEnd");
var $gridColumnStart = dartx.gridColumnStart = Symbol("dartx.gridColumnStart");
var $gridRow = dartx.gridRow = Symbol("dartx.gridRow");
var $gridRowEnd = dartx.gridRowEnd = Symbol("dartx.gridRowEnd");
var $gridRowStart = dartx.gridRowStart = Symbol("dartx.gridRowStart");
var $gridTemplate = dartx.gridTemplate = Symbol("dartx.gridTemplate");
var $gridTemplateAreas = dartx.gridTemplateAreas = Symbol("dartx.gridTemplateAreas");
var $gridTemplateColumns = dartx.gridTemplateColumns = Symbol("dartx.gridTemplateColumns");
var $gridTemplateRows = dartx.gridTemplateRows = Symbol("dartx.gridTemplateRows");
var $highlight = dartx.highlight = Symbol("dartx.highlight");
var $hyphenateCharacter = dartx.hyphenateCharacter = Symbol("dartx.hyphenateCharacter");
var $imageRendering = dartx.imageRendering = Symbol("dartx.imageRendering");
var $isolation = dartx.isolation = Symbol("dartx.isolation");
var $justifyContent = dartx.justifyContent = Symbol("dartx.justifyContent");
var $justifySelf = dartx.justifySelf = Symbol("dartx.justifySelf");
var $lineBoxContain = dartx.lineBoxContain = Symbol("dartx.lineBoxContain");
var $lineBreak = dartx.lineBreak = Symbol("dartx.lineBreak");
var $lineClamp = dartx.lineClamp = Symbol("dartx.lineClamp");
var $locale = dartx.locale = Symbol("dartx.locale");
var $logicalHeight = dartx.logicalHeight = Symbol("dartx.logicalHeight");
var $logicalWidth = dartx.logicalWidth = Symbol("dartx.logicalWidth");
var $marginAfter = dartx.marginAfter = Symbol("dartx.marginAfter");
var $marginAfterCollapse = dartx.marginAfterCollapse = Symbol("dartx.marginAfterCollapse");
var $marginBefore = dartx.marginBefore = Symbol("dartx.marginBefore");
var $marginBeforeCollapse = dartx.marginBeforeCollapse = Symbol("dartx.marginBeforeCollapse");
var $marginBottomCollapse = dartx.marginBottomCollapse = Symbol("dartx.marginBottomCollapse");
var $marginCollapse = dartx.marginCollapse = Symbol("dartx.marginCollapse");
var $marginEnd = dartx.marginEnd = Symbol("dartx.marginEnd");
var $marginStart = dartx.marginStart = Symbol("dartx.marginStart");
var $marginTopCollapse = dartx.marginTopCollapse = Symbol("dartx.marginTopCollapse");
var $mask = dartx.mask = Symbol("dartx.mask");
var $maskBoxImage = dartx.maskBoxImage = Symbol("dartx.maskBoxImage");
var $maskBoxImageOutset = dartx.maskBoxImageOutset = Symbol("dartx.maskBoxImageOutset");
var $maskBoxImageRepeat = dartx.maskBoxImageRepeat = Symbol("dartx.maskBoxImageRepeat");
var $maskBoxImageSlice = dartx.maskBoxImageSlice = Symbol("dartx.maskBoxImageSlice");
var $maskBoxImageSource = dartx.maskBoxImageSource = Symbol("dartx.maskBoxImageSource");
var $maskBoxImageWidth = dartx.maskBoxImageWidth = Symbol("dartx.maskBoxImageWidth");
var $maskClip = dartx.maskClip = Symbol("dartx.maskClip");
var $maskComposite = dartx.maskComposite = Symbol("dartx.maskComposite");
var $maskImage = dartx.maskImage = Symbol("dartx.maskImage");
var $maskOrigin = dartx.maskOrigin = Symbol("dartx.maskOrigin");
var $maskPosition = dartx.maskPosition = Symbol("dartx.maskPosition");
var $maskPositionX = dartx.maskPositionX = Symbol("dartx.maskPositionX");
var $maskPositionY = dartx.maskPositionY = Symbol("dartx.maskPositionY");
var $maskRepeat = dartx.maskRepeat = Symbol("dartx.maskRepeat");
var $maskRepeatX = dartx.maskRepeatX = Symbol("dartx.maskRepeatX");
var $maskRepeatY = dartx.maskRepeatY = Symbol("dartx.maskRepeatY");
var $maskSize = dartx.maskSize = Symbol("dartx.maskSize");
var $maskSourceType = dartx.maskSourceType = Symbol("dartx.maskSourceType");
var $maxLogicalHeight = dartx.maxLogicalHeight = Symbol("dartx.maxLogicalHeight");
var $maxLogicalWidth = dartx.maxLogicalWidth = Symbol("dartx.maxLogicalWidth");
var $maxZoom = dartx.maxZoom = Symbol("dartx.maxZoom");
var $minLogicalHeight = dartx.minLogicalHeight = Symbol("dartx.minLogicalHeight");
var $minLogicalWidth = dartx.minLogicalWidth = Symbol("dartx.minLogicalWidth");
var $minZoom = dartx.minZoom = Symbol("dartx.minZoom");
var $mixBlendMode = dartx.mixBlendMode = Symbol("dartx.mixBlendMode");
var $objectFit = dartx.objectFit = Symbol("dartx.objectFit");
var $objectPosition = dartx.objectPosition = Symbol("dartx.objectPosition");
var $opacity = dartx.opacity = Symbol("dartx.opacity");
var $order = dartx.order = Symbol("dartx.order");
var $orphans = dartx.orphans = Symbol("dartx.orphans");
var $outlineOffset = dartx.outlineOffset = Symbol("dartx.outlineOffset");
var $overflowWrap = dartx.overflowWrap = Symbol("dartx.overflowWrap");
var $overflowX = dartx.overflowX = Symbol("dartx.overflowX");
var $overflowY = dartx.overflowY = Symbol("dartx.overflowY");
var $paddingAfter = dartx.paddingAfter = Symbol("dartx.paddingAfter");
var $paddingBefore = dartx.paddingBefore = Symbol("dartx.paddingBefore");
var $paddingEnd = dartx.paddingEnd = Symbol("dartx.paddingEnd");
var $paddingStart = dartx.paddingStart = Symbol("dartx.paddingStart");
var $page = dartx.page = Symbol("dartx.page");
var $perspective = dartx.perspective = Symbol("dartx.perspective");
var $perspectiveOrigin = dartx.perspectiveOrigin = Symbol("dartx.perspectiveOrigin");
var $perspectiveOriginX = dartx.perspectiveOriginX = Symbol("dartx.perspectiveOriginX");
var $perspectiveOriginY = dartx.perspectiveOriginY = Symbol("dartx.perspectiveOriginY");
var $pointerEvents = dartx.pointerEvents = Symbol("dartx.pointerEvents");
var $printColorAdjust = dartx.printColorAdjust = Symbol("dartx.printColorAdjust");
var $resize = dartx.resize = Symbol("dartx.resize");
var $rtlOrdering = dartx.rtlOrdering = Symbol("dartx.rtlOrdering");
var $rubyPosition = dartx.rubyPosition = Symbol("dartx.rubyPosition");
var $scrollBehavior = dartx.scrollBehavior = Symbol("dartx.scrollBehavior");
var $shapeImageThreshold = dartx.shapeImageThreshold = Symbol("dartx.shapeImageThreshold");
var $shapeMargin = dartx.shapeMargin = Symbol("dartx.shapeMargin");
var $shapeOutside = dartx.shapeOutside = Symbol("dartx.shapeOutside");
var $speak = dartx.speak = Symbol("dartx.speak");
var $tabSize = dartx.tabSize = Symbol("dartx.tabSize");
var $tapHighlightColor = dartx.tapHighlightColor = Symbol("dartx.tapHighlightColor");
var $textAlignLast = dartx.textAlignLast = Symbol("dartx.textAlignLast");
var $textCombine = dartx.textCombine = Symbol("dartx.textCombine");
var $textDecorationColor = dartx.textDecorationColor = Symbol("dartx.textDecorationColor");
var $textDecorationLine = dartx.textDecorationLine = Symbol("dartx.textDecorationLine");
var $textDecorationStyle = dartx.textDecorationStyle = Symbol("dartx.textDecorationStyle");
var $textDecorationsInEffect = dartx.textDecorationsInEffect = Symbol("dartx.textDecorationsInEffect");
var $textEmphasis = dartx.textEmphasis = Symbol("dartx.textEmphasis");
var $textEmphasisColor = dartx.textEmphasisColor = Symbol("dartx.textEmphasisColor");
var $textEmphasisPosition = dartx.textEmphasisPosition = Symbol("dartx.textEmphasisPosition");
var $textEmphasisStyle = dartx.textEmphasisStyle = Symbol("dartx.textEmphasisStyle");
var $textFillColor = dartx.textFillColor = Symbol("dartx.textFillColor");
var $textJustify = dartx.textJustify = Symbol("dartx.textJustify");
var $textLineThroughColor = dartx.textLineThroughColor = Symbol("dartx.textLineThroughColor");
var $textLineThroughMode = dartx.textLineThroughMode = Symbol("dartx.textLineThroughMode");
var $textLineThroughStyle = dartx.textLineThroughStyle = Symbol("dartx.textLineThroughStyle");
var $textLineThroughWidth = dartx.textLineThroughWidth = Symbol("dartx.textLineThroughWidth");
var $textOrientation = dartx.textOrientation = Symbol("dartx.textOrientation");
var $textOverflow = dartx.textOverflow = Symbol("dartx.textOverflow");
var $textOverlineColor = dartx.textOverlineColor = Symbol("dartx.textOverlineColor");
var $textOverlineMode = dartx.textOverlineMode = Symbol("dartx.textOverlineMode");
var $textOverlineStyle = dartx.textOverlineStyle = Symbol("dartx.textOverlineStyle");
var $textOverlineWidth = dartx.textOverlineWidth = Symbol("dartx.textOverlineWidth");
var $textRendering = dartx.textRendering = Symbol("dartx.textRendering");
var $textSecurity = dartx.textSecurity = Symbol("dartx.textSecurity");
var $textShadow = dartx.textShadow = Symbol("dartx.textShadow");
var $textStroke = dartx.textStroke = Symbol("dartx.textStroke");
var $textStrokeColor = dartx.textStrokeColor = Symbol("dartx.textStrokeColor");
var $textStrokeWidth = dartx.textStrokeWidth = Symbol("dartx.textStrokeWidth");
var $textUnderlineColor = dartx.textUnderlineColor = Symbol("dartx.textUnderlineColor");
var $textUnderlineMode = dartx.textUnderlineMode = Symbol("dartx.textUnderlineMode");
var $textUnderlinePosition = dartx.textUnderlinePosition = Symbol("dartx.textUnderlinePosition");
var $textUnderlineStyle = dartx.textUnderlineStyle = Symbol("dartx.textUnderlineStyle");
var $textUnderlineWidth = dartx.textUnderlineWidth = Symbol("dartx.textUnderlineWidth");
var $touchAction = dartx.touchAction = Symbol("dartx.touchAction");
var $touchActionDelay = dartx.touchActionDelay = Symbol("dartx.touchActionDelay");
var $transformOrigin = dartx.transformOrigin = Symbol("dartx.transformOrigin");
var $transformOriginX = dartx.transformOriginX = Symbol("dartx.transformOriginX");
var $transformOriginY = dartx.transformOriginY = Symbol("dartx.transformOriginY");
var $transformOriginZ = dartx.transformOriginZ = Symbol("dartx.transformOriginZ");
var $transformStyle = dartx.transformStyle = Symbol("dartx.transformStyle");
var $transition = dartx.transition = Symbol("dartx.transition");
var $transitionDelay = dartx.transitionDelay = Symbol("dartx.transitionDelay");
var $transitionDuration = dartx.transitionDuration = Symbol("dartx.transitionDuration");
var $transitionProperty = dartx.transitionProperty = Symbol("dartx.transitionProperty");
var $transitionTimingFunction = dartx.transitionTimingFunction = Symbol("dartx.transitionTimingFunction");
var $unicodeRange = dartx.unicodeRange = Symbol("dartx.unicodeRange");
var $userDrag = dartx.userDrag = Symbol("dartx.userDrag");
var $userModify = dartx.userModify = Symbol("dartx.userModify");
var $userSelect = dartx.userSelect = Symbol("dartx.userSelect");
var $userZoom = dartx.userZoom = Symbol("dartx.userZoom");
var $widows = dartx.widows = Symbol("dartx.widows");
var $willChange = dartx.willChange = Symbol("dartx.willChange");
var $wordBreak = dartx.wordBreak = Symbol("dartx.wordBreak");
var $wordWrap = dartx.wordWrap = Symbol("dartx.wordWrap");
var $wrapFlow = dartx.wrapFlow = Symbol("dartx.wrapFlow");
var $wrapThrough = dartx.wrapThrough = Symbol("dartx.wrapThrough");
var $writingMode = dartx.writingMode = Symbol("dartx.writingMode");
var $zoom = dartx.zoom = Symbol("dartx.zoom");
var $ownerRule = dartx.ownerRule = Symbol("dartx.ownerRule");
var $rules = dartx.rules = Symbol("dartx.rules");
var $addRule = dartx.addRule = Symbol("dartx.addRule");
var $removeRule = dartx.removeRule = Symbol("dartx.removeRule");
var $ownerNode = dartx.ownerNode = Symbol("dartx.ownerNode");
var $componentAtIndex = dartx.componentAtIndex = Symbol("dartx.componentAtIndex");
var $toMatrix = dartx.toMatrix = Symbol("dartx.toMatrix");
var $unit = dartx.unit = Symbol("dartx.unit");
var $fragmentAtIndex = dartx.fragmentAtIndex = Symbol("dartx.fragmentAtIndex");
var $fallback = dartx.fallback = Symbol("dartx.fallback");
var $variable = dartx.variable = Symbol("dartx.variable");
var $define = dartx.define = Symbol("dartx.define");
var $whenDefined = dartx.whenDefined = Symbol("dartx.whenDefined");
var $options = dartx.options = Symbol("dartx.options");
var $dropEffect = dartx.dropEffect = Symbol("dartx.dropEffect");
var $effectAllowed = dartx.effectAllowed = Symbol("dartx.effectAllowed");
var $files = dartx.files = Symbol("dartx.files");
var $items = dartx.items = Symbol("dartx.items");
var $types = dartx.types = Symbol("dartx.types");
var $clearData = dartx.clearData = Symbol("dartx.clearData");
var $getData = dartx.getData = Symbol("dartx.getData");
var $setData = dartx.setData = Symbol("dartx.setData");
var $setDragImage = dartx.setDragImage = Symbol("dartx.setDragImage");
var $getAsEntry = dartx.getAsEntry = Symbol("dartx.getAsEntry");
var $getAsFile = dartx.getAsFile = Symbol("dartx.getAsFile");
var $addData = dartx.addData = Symbol("dartx.addData");
var $addFile = dartx.addFile = Symbol("dartx.addFile");
var $requestFileSystemSync = dartx.requestFileSystemSync = Symbol("dartx.requestFileSystemSync");
var $resolveLocalFileSystemSyncUrl = dartx.resolveLocalFileSystemSyncUrl = Symbol("dartx.resolveLocalFileSystemSyncUrl");
var $addressSpace = dartx.addressSpace = Symbol("dartx.addressSpace");
var $caches = dartx.caches = Symbol("dartx.caches");
var $crypto = dartx.crypto = Symbol("dartx.crypto");
var $indexedDB = dartx.indexedDB = Symbol("dartx.indexedDB");
var $isSecureContext = dartx.isSecureContext = Symbol("dartx.isSecureContext");
var $location = dartx.location = Symbol("dartx.location");
var $navigator = dartx.navigator = Symbol("dartx.navigator");
var $performance = dartx.performance = Symbol("dartx.performance");
var $self = dartx.self = Symbol("dartx.self");
var $importScripts = dartx.importScripts = Symbol("dartx.importScripts");
var $atob = dartx.atob = Symbol("dartx.atob");
var $btoa = dartx.btoa = Symbol("dartx.btoa");
var $queryUsageAndQuota = dartx.queryUsageAndQuota = Symbol("dartx.queryUsageAndQuota");
var $requestQuota = dartx.requestQuota = Symbol("dartx.requestQuota");
var $lineNumber = dartx.lineNumber = Symbol("dartx.lineNumber");
var $sourceFile = dartx.sourceFile = Symbol("dartx.sourceFile");
var $cornerPoints = dartx.cornerPoints = Symbol("dartx.cornerPoints");
var $rawValue = dartx.rawValue = Symbol("dartx.rawValue");
var $landmarks = dartx.landmarks = Symbol("dartx.landmarks");
var $acceleration = dartx.acceleration = Symbol("dartx.acceleration");
var $accelerationIncludingGravity = dartx.accelerationIncludingGravity = Symbol("dartx.accelerationIncludingGravity");
var $interval = dartx.interval = Symbol("dartx.interval");
var $rotationRate = dartx.rotationRate = Symbol("dartx.rotationRate");
var $absolute = dartx.absolute = Symbol("dartx.absolute");
var $alpha = dartx.alpha = Symbol("dartx.alpha");
var $beta = dartx.beta = Symbol("dartx.beta");
var $gamma = dartx.gamma = Symbol("dartx.gamma");
var $show = dartx.show = Symbol("dartx.show");
var $showModal = dartx.showModal = Symbol("dartx.showModal");
var $createDirectory = dartx.createDirectory = Symbol("dartx.createDirectory");
var $createReader = dartx.createReader = Symbol("dartx.createReader");
var $getDirectory = dartx.getDirectory = Symbol("dartx.getDirectory");
var $createFile = dartx.createFile = Symbol("dartx.createFile");
var $getFile = dartx.getFile = Symbol("dartx.getFile");
var $removeRecursively = dartx.removeRecursively = Symbol("dartx.removeRecursively");
var $filesystem = dartx.filesystem = Symbol("dartx.filesystem");
var $fullPath = dartx.fullPath = Symbol("dartx.fullPath");
var $isDirectory = dartx.isDirectory = Symbol("dartx.isDirectory");
var $isFile = dartx.isFile = Symbol("dartx.isFile");
var $copyTo = dartx.copyTo = Symbol("dartx.copyTo");
var $getMetadata = dartx.getMetadata = Symbol("dartx.getMetadata");
var $getParent = dartx.getParent = Symbol("dartx.getParent");
var $toUrl = dartx.toUrl = Symbol("dartx.toUrl");
var $readEntries = dartx.readEntries = Symbol("dartx.readEntries");
var $contentType = dartx.contentType = Symbol("dartx.contentType");
var $cookie = dartx.cookie = Symbol("dartx.cookie");
var $currentScript = dartx.currentScript = Symbol("dartx.currentScript");
var $window = dartx.window = Symbol("dartx.window");
var $documentElement = dartx.documentElement = Symbol("dartx.documentElement");
var $domain = dartx.domain = Symbol("dartx.domain");
var $fullscreenEnabled = dartx.fullscreenEnabled = Symbol("dartx.fullscreenEnabled");
var $implementation = dartx.implementation = Symbol("dartx.implementation");
var $rootElement = dartx.rootElement = Symbol("dartx.rootElement");
var $rootScroller = dartx.rootScroller = Symbol("dartx.rootScroller");
var $scrollingElement = dartx.scrollingElement = Symbol("dartx.scrollingElement");
var $suborigin = dartx.suborigin = Symbol("dartx.suborigin");
var $adoptNode = dartx.adoptNode = Symbol("dartx.adoptNode");
var $createDocumentFragment = dartx.createDocumentFragment = Symbol("dartx.createDocumentFragment");
var $createRange = dartx.createRange = Symbol("dartx.createRange");
var $execCommand = dartx.execCommand = Symbol("dartx.execCommand");
var $exitFullscreen = dartx.exitFullscreen = Symbol("dartx.exitFullscreen");
var $exitPointerLock = dartx.exitPointerLock = Symbol("dartx.exitPointerLock");
var $getElementsByName = dartx.getElementsByName = Symbol("dartx.getElementsByName");
var $getElementsByTagName = dartx.getElementsByTagName = Symbol("dartx.getElementsByTagName");
var $importNode = dartx.importNode = Symbol("dartx.importNode");
var $queryCommandEnabled = dartx.queryCommandEnabled = Symbol("dartx.queryCommandEnabled");
var $queryCommandIndeterm = dartx.queryCommandIndeterm = Symbol("dartx.queryCommandIndeterm");
var $queryCommandState = dartx.queryCommandState = Symbol("dartx.queryCommandState");
var $queryCommandSupported = dartx.queryCommandSupported = Symbol("dartx.queryCommandSupported");
var $queryCommandValue = dartx.queryCommandValue = Symbol("dartx.queryCommandValue");
var $registerElement2 = dartx.registerElement2 = Symbol("dartx.registerElement2");
var $getElementById = dartx.getElementById = Symbol("dartx.getElementById");
var $activeElement = dartx.activeElement = Symbol("dartx.activeElement");
var $fullscreenElement = dartx.fullscreenElement = Symbol("dartx.fullscreenElement");
var $pointerLockElement = dartx.pointerLockElement = Symbol("dartx.pointerLockElement");
var $elementsFromPoint = dartx.elementsFromPoint = Symbol("dartx.elementsFromPoint");
var $fonts = dartx.fonts = Symbol("dartx.fonts");
var $onPointerLockChange = dartx.onPointerLockChange = Symbol("dartx.onPointerLockChange");
var $onPointerLockError = dartx.onPointerLockError = Symbol("dartx.onPointerLockError");
var $onReadyStateChange = dartx.onReadyStateChange = Symbol("dartx.onReadyStateChange");
var $onSecurityPolicyViolation = dartx.onSecurityPolicyViolation = Symbol("dartx.onSecurityPolicyViolation");
var $onSelectionChange = dartx.onSelectionChange = Symbol("dartx.onSelectionChange");
var $supportsRegisterElement = dartx.supportsRegisterElement = Symbol("dartx.supportsRegisterElement");
var $supportsRegister = dartx.supportsRegister = Symbol("dartx.supportsRegister");
var $registerElement = dartx.registerElement = Symbol("dartx.registerElement");
var $createElementNS = dartx.createElementNS = Symbol("dartx.createElementNS");
var $visibilityState = dartx.visibilityState = Symbol("dartx.visibilityState");
var $styleSheets = dartx.styleSheets = Symbol("dartx.styleSheets");
var $elementFromPoint = dartx.elementFromPoint = Symbol("dartx.elementFromPoint");
var $getSelection = dartx.getSelection = Symbol("dartx.getSelection");
var $createDocument = dartx.createDocument = Symbol("dartx.createDocument");
var $createDocumentType = dartx.createDocumentType = Symbol("dartx.createDocumentType");
var $hasFeature = dartx.hasFeature = Symbol("dartx.hasFeature");
var $a = dartx.a = Symbol("dartx.a");
var $b = dartx.b = Symbol("dartx.b");
var $c = dartx.c = Symbol("dartx.c");
var $d = dartx.d = Symbol("dartx.d");
var $e = dartx.e = Symbol("dartx.e");
var $f = dartx.f = Symbol("dartx.f");
var $m11 = dartx.m11 = Symbol("dartx.m11");
var $m12 = dartx.m12 = Symbol("dartx.m12");
var $m13 = dartx.m13 = Symbol("dartx.m13");
var $m14 = dartx.m14 = Symbol("dartx.m14");
var $m21 = dartx.m21 = Symbol("dartx.m21");
var $m22 = dartx.m22 = Symbol("dartx.m22");
var $m23 = dartx.m23 = Symbol("dartx.m23");
var $m24 = dartx.m24 = Symbol("dartx.m24");
var $m31 = dartx.m31 = Symbol("dartx.m31");
var $m32 = dartx.m32 = Symbol("dartx.m32");
var $m33 = dartx.m33 = Symbol("dartx.m33");
var $m34 = dartx.m34 = Symbol("dartx.m34");
var $m41 = dartx.m41 = Symbol("dartx.m41");
var $m42 = dartx.m42 = Symbol("dartx.m42");
var $m43 = dartx.m43 = Symbol("dartx.m43");
var $m44 = dartx.m44 = Symbol("dartx.m44");
var $invertSelf = dartx.invertSelf = Symbol("dartx.invertSelf");
var $multiplySelf = dartx.multiplySelf = Symbol("dartx.multiplySelf");
var $preMultiplySelf = dartx.preMultiplySelf = Symbol("dartx.preMultiplySelf");
var $rotateAxisAngleSelf = dartx.rotateAxisAngleSelf = Symbol("dartx.rotateAxisAngleSelf");
var $rotateFromVectorSelf = dartx.rotateFromVectorSelf = Symbol("dartx.rotateFromVectorSelf");
var $rotateSelf = dartx.rotateSelf = Symbol("dartx.rotateSelf");
var $scale3dSelf = dartx.scale3dSelf = Symbol("dartx.scale3dSelf");
var $scaleSelf = dartx.scaleSelf = Symbol("dartx.scaleSelf");
var $setMatrixValue = dartx.setMatrixValue = Symbol("dartx.setMatrixValue");
var $skewXSelf = dartx.skewXSelf = Symbol("dartx.skewXSelf");
var $skewYSelf = dartx.skewYSelf = Symbol("dartx.skewYSelf");
var $translateSelf = dartx.translateSelf = Symbol("dartx.translateSelf");
var $isIdentity = dartx.isIdentity = Symbol("dartx.isIdentity");
var $flipX = dartx.flipX = Symbol("dartx.flipX");
var $flipY = dartx.flipY = Symbol("dartx.flipY");
var $inverse = dartx.inverse = Symbol("dartx.inverse");
var $multiply = dartx.multiply = Symbol("dartx.multiply");
var $rotateAxisAngle = dartx.rotateAxisAngle = Symbol("dartx.rotateAxisAngle");
var $rotateFromVector = dartx.rotateFromVector = Symbol("dartx.rotateFromVector");
var $scale3d = dartx.scale3d = Symbol("dartx.scale3d");
var $skewX = dartx.skewX = Symbol("dartx.skewX");
var $skewY = dartx.skewY = Symbol("dartx.skewY");
var $toFloat32Array = dartx.toFloat32Array = Symbol("dartx.toFloat32Array");
var $toFloat64Array = dartx.toFloat64Array = Symbol("dartx.toFloat64Array");
var $transformPoint = dartx.transformPoint = Symbol("dartx.transformPoint");
var $parseFromString = dartx.parseFromString = Symbol("dartx.parseFromString");
var $w = dartx.w = Symbol("dartx.w");
var $matrixTransform = dartx.matrixTransform = Symbol("dartx.matrixTransform");
var $p1 = dartx.p1 = Symbol("dartx.p1");
var $p2 = dartx.p2 = Symbol("dartx.p2");
var $p3 = dartx.p3 = Symbol("dartx.p3");
var $p4 = dartx.p4 = Symbol("dartx.p4");
var $getBounds = dartx.getBounds = Symbol("dartx.getBounds");
var $replace = dartx.replace = Symbol("dartx.replace");
var $supports = dartx.supports = Symbol("dartx.supports");
var $toggle = dartx.toggle = Symbol("dartx.toggle");
var $colno = dartx.colno = Symbol("dartx.colno");
var $filename = dartx.filename = Symbol("dartx.filename");
var $lineno = dartx.lineno = Symbol("dartx.lineno");
var $withCredentials = dartx.withCredentials = Symbol("dartx.withCredentials");
var $onOpen = dartx.onOpen = Symbol("dartx.onOpen");
var $lastEventId = dartx.lastEventId = Symbol("dartx.lastEventId");
var $ports = dartx.ports = Symbol("dartx.ports");
var $AddSearchProvider = dartx.AddSearchProvider = Symbol("dartx.AddSearchProvider");
var $IsSearchProviderInstalled = dartx.IsSearchProviderInstalled = Symbol("dartx.IsSearchProviderInstalled");
var $provider = dartx.provider = Symbol("dartx.provider");
var $clientId = dartx.clientId = Symbol("dartx.clientId");
var $isReload = dartx.isReload = Symbol("dartx.isReload");
var $preloadResponse = dartx.preloadResponse = Symbol("dartx.preloadResponse");
var $elements = dartx.elements = Symbol("dartx.elements");
var $lastModified = dartx.lastModified = Symbol("dartx.lastModified");
var $lastModifiedDate = dartx.lastModifiedDate = Symbol("dartx.lastModifiedDate");
var $relativePath = dartx.relativePath = Symbol("dartx.relativePath");
var $createWriter = dartx.createWriter = Symbol("dartx.createWriter");
var $file = dartx.file = Symbol("dartx.file");
var $readAsArrayBuffer = dartx.readAsArrayBuffer = Symbol("dartx.readAsArrayBuffer");
var $readAsDataUrl = dartx.readAsDataUrl = Symbol("dartx.readAsDataUrl");
var $readAsText = dartx.readAsText = Symbol("dartx.readAsText");
var $onLoadEnd = dartx.onLoadEnd = Symbol("dartx.onLoadEnd");
var $onLoadStart = dartx.onLoadStart = Symbol("dartx.onLoadStart");
var $root = dartx.root = Symbol("dartx.root");
var $seek = dartx.seek = Symbol("dartx.seek");
var $write = dartx.write = Symbol("dartx.write");
var $onWrite = dartx.onWrite = Symbol("dartx.onWrite");
var $onWriteEnd = dartx.onWriteEnd = Symbol("dartx.onWriteEnd");
var $onWriteStart = dartx.onWriteStart = Symbol("dartx.onWriteStart");
var $relatedTarget = dartx.relatedTarget = Symbol("dartx.relatedTarget");
var $family = dartx.family = Symbol("dartx.family");
var $featureSettings = dartx.featureSettings = Symbol("dartx.featureSettings");
var $loaded = dartx.loaded = Symbol("dartx.loaded");
var $stretch = dartx.stretch = Symbol("dartx.stretch");
var $variant = dartx.variant = Symbol("dartx.variant");
var $weight = dartx.weight = Symbol("dartx.weight");
var $check = dartx.check = Symbol("dartx.check");
var $onLoading = dartx.onLoading = Symbol("dartx.onLoading");
var $onLoadingDone = dartx.onLoadingDone = Symbol("dartx.onLoadingDone");
var $onLoadingError = dartx.onLoadingError = Symbol("dartx.onLoadingError");
var $fontfaces = dartx.fontfaces = Symbol("dartx.fontfaces");
var $appendBlob = dartx.appendBlob = Symbol("dartx.appendBlob");
var $acceptCharset = dartx.acceptCharset = Symbol("dartx.acceptCharset");
var $action = dartx.action = Symbol("dartx.action");
var $enctype = dartx.enctype = Symbol("dartx.enctype");
var $method = dartx.method = Symbol("dartx.method");
var $noValidate = dartx.noValidate = Symbol("dartx.noValidate");
var $requestAutocomplete = dartx.requestAutocomplete = Symbol("dartx.requestAutocomplete");
var $reset = dartx.reset = Symbol("dartx.reset");
var $submit = dartx.submit = Symbol("dartx.submit");
var $axes = dartx.axes = Symbol("dartx.axes");
var $buttons = dartx.buttons = Symbol("dartx.buttons");
var $connected = dartx.connected = Symbol("dartx.connected");
var $displayId = dartx.displayId = Symbol("dartx.displayId");
var $hand = dartx.hand = Symbol("dartx.hand");
var $mapping = dartx.mapping = Symbol("dartx.mapping");
var $pose = dartx.pose = Symbol("dartx.pose");
var $touched = dartx.touched = Symbol("dartx.touched");
var $gamepad = dartx.gamepad = Symbol("dartx.gamepad");
var $angularAcceleration = dartx.angularAcceleration = Symbol("dartx.angularAcceleration");
var $angularVelocity = dartx.angularVelocity = Symbol("dartx.angularVelocity");
var $hasOrientation = dartx.hasOrientation = Symbol("dartx.hasOrientation");
var $hasPosition = dartx.hasPosition = Symbol("dartx.hasPosition");
var $linearAcceleration = dartx.linearAcceleration = Symbol("dartx.linearAcceleration");
var $linearVelocity = dartx.linearVelocity = Symbol("dartx.linearVelocity");
var $getCurrentPosition = dartx.getCurrentPosition = Symbol("dartx.getCurrentPosition");
var $watchPosition = dartx.watchPosition = Symbol("dartx.watchPosition");
var $newUrl = dartx.newUrl = Symbol("dartx.newUrl");
var $oldUrl = dartx.oldUrl = Symbol("dartx.oldUrl");
var $scrollRestoration = dartx.scrollRestoration = Symbol("dartx.scrollRestoration");
var $back = dartx.back = Symbol("dartx.back");
var $forward = dartx.forward = Symbol("dartx.forward");
var $go = dartx.go = Symbol("dartx.go");
var $pushState = dartx.pushState = Symbol("dartx.pushState");
var $replaceState = dartx.replaceState = Symbol("dartx.replaceState");
var $namedItem = dartx.namedItem = Symbol("dartx.namedItem");
var $body = dartx.body = Symbol("dartx.body");
var $caretRangeFromPoint = dartx.caretRangeFromPoint = Symbol("dartx.caretRangeFromPoint");
var $preferredStylesheetSet = dartx.preferredStylesheetSet = Symbol("dartx.preferredStylesheetSet");
var $referrer = dartx.referrer = Symbol("dartx.referrer");
var $selectedStylesheetSet = dartx.selectedStylesheetSet = Symbol("dartx.selectedStylesheetSet");
var $register = dartx.register = Symbol("dartx.register");
var $onVisibilityChange = dartx.onVisibilityChange = Symbol("dartx.onVisibilityChange");
var $createElementUpgrader = dartx.createElementUpgrader = Symbol("dartx.createElementUpgrader");
var $responseHeaders = dartx.responseHeaders = Symbol("dartx.responseHeaders");
var $responseText = dartx.responseText = Symbol("dartx.responseText");
var $responseType = dartx.responseType = Symbol("dartx.responseType");
var $responseUrl = dartx.responseUrl = Symbol("dartx.responseUrl");
var $responseXml = dartx.responseXml = Symbol("dartx.responseXml");
var $statusText = dartx.statusText = Symbol("dartx.statusText");
var $timeout = dartx.timeout = Symbol("dartx.timeout");
var $upload = dartx.upload = Symbol("dartx.upload");
var $getAllResponseHeaders = dartx.getAllResponseHeaders = Symbol("dartx.getAllResponseHeaders");
var $getResponseHeader = dartx.getResponseHeader = Symbol("dartx.getResponseHeader");
var $overrideMimeType = dartx.overrideMimeType = Symbol("dartx.overrideMimeType");
var $send = dartx.send = Symbol("dartx.send");
var $setRequestHeader = dartx.setRequestHeader = Symbol("dartx.setRequestHeader");
var $onTimeout = dartx.onTimeout = Symbol("dartx.onTimeout");
var $allow = dartx.allow = Symbol("dartx.allow");
var $allowFullscreen = dartx.allowFullscreen = Symbol("dartx.allowFullscreen");
var $allowPaymentRequest = dartx.allowPaymentRequest = Symbol("dartx.allowPaymentRequest");
var $contentWindow = dartx.contentWindow = Symbol("dartx.contentWindow");
var $csp = dartx.csp = Symbol("dartx.csp");
var $sandbox = dartx.sandbox = Symbol("dartx.sandbox");
var $srcdoc = dartx.srcdoc = Symbol("dartx.srcdoc");
var $didTimeout = dartx.didTimeout = Symbol("dartx.didTimeout");
var $timeRemaining = dartx.timeRemaining = Symbol("dartx.timeRemaining");
var $transferFromImageBitmap = dartx.transferFromImageBitmap = Symbol("dartx.transferFromImageBitmap");
var $track = dartx.track = Symbol("dartx.track");
var $getPhotoCapabilities = dartx.getPhotoCapabilities = Symbol("dartx.getPhotoCapabilities");
var $getPhotoSettings = dartx.getPhotoSettings = Symbol("dartx.getPhotoSettings");
var $grabFrame = dartx.grabFrame = Symbol("dartx.grabFrame");
var $setOptions = dartx.setOptions = Symbol("dartx.setOptions");
var $takePhoto = dartx.takePhoto = Symbol("dartx.takePhoto");
var $async = dartx.async = Symbol("dartx.async");
var $complete = dartx.complete = Symbol("dartx.complete");
var $isMap = dartx.isMap = Symbol("dartx.isMap");
var $naturalHeight = dartx.naturalHeight = Symbol("dartx.naturalHeight");
var $naturalWidth = dartx.naturalWidth = Symbol("dartx.naturalWidth");
var $sizes = dartx.sizes = Symbol("dartx.sizes");
var $srcset = dartx.srcset = Symbol("dartx.srcset");
var $useMap = dartx.useMap = Symbol("dartx.useMap");
var $decode = dartx.decode = Symbol("dartx.decode");
var $firesTouchEvents = dartx.firesTouchEvents = Symbol("dartx.firesTouchEvents");
var $accept = dartx.accept = Symbol("dartx.accept");
var $autocapitalize = dartx.autocapitalize = Symbol("dartx.autocapitalize");
var $capture = dartx.capture = Symbol("dartx.capture");
var $defaultChecked = dartx.defaultChecked = Symbol("dartx.defaultChecked");
var $defaultValue = dartx.defaultValue = Symbol("dartx.defaultValue");
var $dirName = dartx.dirName = Symbol("dartx.dirName");
var $incremental = dartx.incremental = Symbol("dartx.incremental");
var $indeterminate = dartx.indeterminate = Symbol("dartx.indeterminate");
var $list = dartx.list = Symbol("dartx.list");
var $max = dartx.max = Symbol("dartx.max");
var $maxLength = dartx.maxLength = Symbol("dartx.maxLength");
var $min = dartx.min = Symbol("dartx.min");
var $minLength = dartx.minLength = Symbol("dartx.minLength");
var $multiple = dartx.multiple = Symbol("dartx.multiple");
var $pattern = dartx.pattern = Symbol("dartx.pattern");
var $selectionDirection = dartx.selectionDirection = Symbol("dartx.selectionDirection");
var $selectionEnd = dartx.selectionEnd = Symbol("dartx.selectionEnd");
var $selectionStart = dartx.selectionStart = Symbol("dartx.selectionStart");
var $step = dartx.step = Symbol("dartx.step");
var $valueAsDate = dartx.valueAsDate = Symbol("dartx.valueAsDate");
var $valueAsNumber = dartx.valueAsNumber = Symbol("dartx.valueAsNumber");
var $directory = dartx.directory = Symbol("dartx.directory");
var $setRangeText = dartx.setRangeText = Symbol("dartx.setRangeText");
var $setSelectionRange = dartx.setSelectionRange = Symbol("dartx.setSelectionRange");
var $stepDown = dartx.stepDown = Symbol("dartx.stepDown");
var $stepUp = dartx.stepUp = Symbol("dartx.stepUp");
var $registerForeignFetch = dartx.registerForeignFetch = Symbol("dartx.registerForeignFetch");
var $rootMargin = dartx.rootMargin = Symbol("dartx.rootMargin");
var $thresholds = dartx.thresholds = Symbol("dartx.thresholds");
var $disconnect = dartx.disconnect = Symbol("dartx.disconnect");
var $takeRecords = dartx.takeRecords = Symbol("dartx.takeRecords");
var $boundingClientRect = dartx.boundingClientRect = Symbol("dartx.boundingClientRect");
var $intersectionRatio = dartx.intersectionRatio = Symbol("dartx.intersectionRatio");
var $intersectionRect = dartx.intersectionRect = Symbol("dartx.intersectionRect");
var $isIntersecting = dartx.isIntersecting = Symbol("dartx.isIntersecting");
var $rootBounds = dartx.rootBounds = Symbol("dartx.rootBounds");
var $keyCode = dartx.keyCode = Symbol("dartx.keyCode");
var $charCode = dartx.charCode = Symbol("dartx.charCode");
var $which = dartx.which = Symbol("dartx.which");
var $altKey = dartx.altKey = Symbol("dartx.altKey");
var $ctrlKey = dartx.ctrlKey = Symbol("dartx.ctrlKey");
var $isComposing = dartx.isComposing = Symbol("dartx.isComposing");
var $metaKey = dartx.metaKey = Symbol("dartx.metaKey");
var $repeat = dartx.repeat = Symbol("dartx.repeat");
var $shiftKey = dartx.shiftKey = Symbol("dartx.shiftKey");
var $getModifierState = dartx.getModifierState = Symbol("dartx.getModifierState");
var $control = dartx.control = Symbol("dartx.control");
var $htmlFor = dartx.htmlFor = Symbol("dartx.htmlFor");
var $as = dartx.as = Symbol("dartx.as");
var $import = dartx.import = Symbol("dartx.import");
var $integrity = dartx.integrity = Symbol("dartx.integrity");
var $relList = dartx.relList = Symbol("dartx.relList");
var $scope = dartx.scope = Symbol("dartx.scope");
var $sheet = dartx.sheet = Symbol("dartx.sheet");
var $supportsImport = dartx.supportsImport = Symbol("dartx.supportsImport");
var $ancestorOrigins = dartx.ancestorOrigins = Symbol("dartx.ancestorOrigins");
var $trustedHref = dartx.trustedHref = Symbol("dartx.trustedHref");
var $assign = dartx.assign = Symbol("dartx.assign");
var $reload = dartx.reload = Symbol("dartx.reload");
var $areas = dartx.areas = Symbol("dartx.areas");
var $decodingInfo = dartx.decodingInfo = Symbol("dartx.decodingInfo");
var $encodingInfo = dartx.encodingInfo = Symbol("dartx.encodingInfo");
var $powerEfficient = dartx.powerEfficient = Symbol("dartx.powerEfficient");
var $smooth = dartx.smooth = Symbol("dartx.smooth");
var $supported = dartx.supported = Symbol("dartx.supported");
var $deviceId = dartx.deviceId = Symbol("dartx.deviceId");
var $groupId = dartx.groupId = Symbol("dartx.groupId");
var $enumerateDevices = dartx.enumerateDevices = Symbol("dartx.enumerateDevices");
var $getSupportedConstraints = dartx.getSupportedConstraints = Symbol("dartx.getSupportedConstraints");
var $initData = dartx.initData = Symbol("dartx.initData");
var $initDataType = dartx.initDataType = Symbol("dartx.initDataType");
var $messageType = dartx.messageType = Symbol("dartx.messageType");
var $closed = dartx.closed = Symbol("dartx.closed");
var $expiration = dartx.expiration = Symbol("dartx.expiration");
var $keyStatuses = dartx.keyStatuses = Symbol("dartx.keyStatuses");
var $sessionId = dartx.sessionId = Symbol("dartx.sessionId");
var $generateRequest = dartx.generateRequest = Symbol("dartx.generateRequest");
var $keySystem = dartx.keySystem = Symbol("dartx.keySystem");
var $createMediaKeys = dartx.createMediaKeys = Symbol("dartx.createMediaKeys");
var $getConfiguration = dartx.getConfiguration = Symbol("dartx.getConfiguration");
var $getStatusForPolicy = dartx.getStatusForPolicy = Symbol("dartx.getStatusForPolicy");
var $setServerCertificate = dartx.setServerCertificate = Symbol("dartx.setServerCertificate");
var $minHdcpVersion = dartx.minHdcpVersion = Symbol("dartx.minHdcpVersion");
var $mediaText = dartx.mediaText = Symbol("dartx.mediaText");
var $appendMedium = dartx.appendMedium = Symbol("dartx.appendMedium");
var $deleteMedium = dartx.deleteMedium = Symbol("dartx.deleteMedium");
var $album = dartx.album = Symbol("dartx.album");
var $artist = dartx.artist = Symbol("dartx.artist");
var $artwork = dartx.artwork = Symbol("dartx.artwork");
var $addListener = dartx.addListener = Symbol("dartx.addListener");
var $removeListener = dartx.removeListener = Symbol("dartx.removeListener");
var $audioBitsPerSecond = dartx.audioBitsPerSecond = Symbol("dartx.audioBitsPerSecond");
var $mimeType = dartx.mimeType = Symbol("dartx.mimeType");
var $stream = dartx.stream = Symbol("dartx.stream");
var $videoBitsPerSecond = dartx.videoBitsPerSecond = Symbol("dartx.videoBitsPerSecond");
var $requestData = dartx.requestData = Symbol("dartx.requestData");
var $resume = dartx.resume = Symbol("dartx.resume");
var $metadata = dartx.metadata = Symbol("dartx.metadata");
var $playbackState = dartx.playbackState = Symbol("dartx.playbackState");
var $setActionHandler = dartx.setActionHandler = Symbol("dartx.setActionHandler");
var $activeSourceBuffers = dartx.activeSourceBuffers = Symbol("dartx.activeSourceBuffers");
var $sourceBuffers = dartx.sourceBuffers = Symbol("dartx.sourceBuffers");
var $addSourceBuffer = dartx.addSourceBuffer = Symbol("dartx.addSourceBuffer");
var $clearLiveSeekableRange = dartx.clearLiveSeekableRange = Symbol("dartx.clearLiveSeekableRange");
var $endOfStream = dartx.endOfStream = Symbol("dartx.endOfStream");
var $removeSourceBuffer = dartx.removeSourceBuffer = Symbol("dartx.removeSourceBuffer");
var $setLiveSeekableRange = dartx.setLiveSeekableRange = Symbol("dartx.setLiveSeekableRange");
var $active = dartx.active = Symbol("dartx.active");
var $addTrack = dartx.addTrack = Symbol("dartx.addTrack");
var $getAudioTracks = dartx.getAudioTracks = Symbol("dartx.getAudioTracks");
var $getTrackById = dartx.getTrackById = Symbol("dartx.getTrackById");
var $getTracks = dartx.getTracks = Symbol("dartx.getTracks");
var $getVideoTracks = dartx.getVideoTracks = Symbol("dartx.getVideoTracks");
var $removeTrack = dartx.removeTrack = Symbol("dartx.removeTrack");
var $onAddTrack = dartx.onAddTrack = Symbol("dartx.onAddTrack");
var $onRemoveTrack = dartx.onRemoveTrack = Symbol("dartx.onRemoveTrack");
var $jsHeapSizeLimit = dartx.jsHeapSizeLimit = Symbol("dartx.jsHeapSizeLimit");
var $totalJSHeapSize = dartx.totalJSHeapSize = Symbol("dartx.totalJSHeapSize");
var $usedJSHeapSize = dartx.usedJSHeapSize = Symbol("dartx.usedJSHeapSize");
var $port1 = dartx.port1 = Symbol("dartx.port1");
var $port2 = dartx.port2 = Symbol("dartx.port2");
var $httpEquiv = dartx.httpEquiv = Symbol("dartx.httpEquiv");
var $modificationTime = dartx.modificationTime = Symbol("dartx.modificationTime");
var $high = dartx.high = Symbol("dartx.high");
var $low = dartx.low = Symbol("dartx.low");
var $optimum = dartx.optimum = Symbol("dartx.optimum");
var $inputs = dartx.inputs = Symbol("dartx.inputs");
var $outputs = dartx.outputs = Symbol("dartx.outputs");
var $sysexEnabled = dartx.sysexEnabled = Symbol("dartx.sysexEnabled");
var $onMidiMessage = dartx.onMidiMessage = Symbol("dartx.onMidiMessage");
var $connection = dartx.connection = Symbol("dartx.connection");
var $manufacturer = dartx.manufacturer = Symbol("dartx.manufacturer");
var $description = dartx.description = Symbol("dartx.description");
var $enabledPlugin = dartx.enabledPlugin = Symbol("dartx.enabledPlugin");
var $suffixes = dartx.suffixes = Symbol("dartx.suffixes");
var $cite = dartx.cite = Symbol("dartx.cite");
var $dateTime = dartx.dateTime = Symbol("dartx.dateTime");
var $button = dartx.button = Symbol("dartx.button");
var $fromElement = dartx.fromElement = Symbol("dartx.fromElement");
var $region = dartx.region = Symbol("dartx.region");
var $toElement = dartx.toElement = Symbol("dartx.toElement");
var $movement = dartx.movement = Symbol("dartx.movement");
var $screen = dartx.screen = Symbol("dartx.screen");
var $layer = dartx.layer = Symbol("dartx.layer");
var $dataTransfer = dartx.dataTransfer = Symbol("dartx.dataTransfer");
var $attrChange = dartx.attrChange = Symbol("dartx.attrChange");
var $attrName = dartx.attrName = Symbol("dartx.attrName");
var $newValue = dartx.newValue = Symbol("dartx.newValue");
var $prevValue = dartx.prevValue = Symbol("dartx.prevValue");
var $relatedNode = dartx.relatedNode = Symbol("dartx.relatedNode");
var $initMutationEvent = dartx.initMutationEvent = Symbol("dartx.initMutationEvent");
var $addedNodes = dartx.addedNodes = Symbol("dartx.addedNodes");
var $attributeName = dartx.attributeName = Symbol("dartx.attributeName");
var $attributeNamespace = dartx.attributeNamespace = Symbol("dartx.attributeNamespace");
var $nextSibling = dartx.nextSibling = Symbol("dartx.nextSibling");
var $oldValue = dartx.oldValue = Symbol("dartx.oldValue");
var $previousSibling = dartx.previousSibling = Symbol("dartx.previousSibling");
var $removedNodes = dartx.removedNodes = Symbol("dartx.removedNodes");
var $disable = dartx.disable = Symbol("dartx.disable");
var $enable = dartx.enable = Symbol("dartx.enable");
var $getState = dartx.getState = Symbol("dartx.getState");
var $getGamepads = dartx.getGamepads = Symbol("dartx.getGamepads");
var $language = dartx.language = Symbol("dartx.language");
var $getUserMedia = dartx.getUserMedia = Symbol("dartx.getUserMedia");
var $budget = dartx.budget = Symbol("dartx.budget");
var $clipboard = dartx.clipboard = Symbol("dartx.clipboard");
var $credentials = dartx.credentials = Symbol("dartx.credentials");
var $deviceMemory = dartx.deviceMemory = Symbol("dartx.deviceMemory");
var $doNotTrack = dartx.doNotTrack = Symbol("dartx.doNotTrack");
var $geolocation = dartx.geolocation = Symbol("dartx.geolocation");
var $maxTouchPoints = dartx.maxTouchPoints = Symbol("dartx.maxTouchPoints");
var $mediaCapabilities = dartx.mediaCapabilities = Symbol("dartx.mediaCapabilities");
var $mediaDevices = dartx.mediaDevices = Symbol("dartx.mediaDevices");
var $mediaSession = dartx.mediaSession = Symbol("dartx.mediaSession");
var $mimeTypes = dartx.mimeTypes = Symbol("dartx.mimeTypes");
var $nfc = dartx.nfc = Symbol("dartx.nfc");
var $permissions = dartx.permissions = Symbol("dartx.permissions");
var $presentation = dartx.presentation = Symbol("dartx.presentation");
var $productSub = dartx.productSub = Symbol("dartx.productSub");
var $serviceWorker = dartx.serviceWorker = Symbol("dartx.serviceWorker");
var $storage = dartx.storage = Symbol("dartx.storage");
var $vendor = dartx.vendor = Symbol("dartx.vendor");
var $vendorSub = dartx.vendorSub = Symbol("dartx.vendorSub");
var $vr = dartx.vr = Symbol("dartx.vr");
var $persistentStorage = dartx.persistentStorage = Symbol("dartx.persistentStorage");
var $temporaryStorage = dartx.temporaryStorage = Symbol("dartx.temporaryStorage");
var $cancelKeyboardLock = dartx.cancelKeyboardLock = Symbol("dartx.cancelKeyboardLock");
var $getBattery = dartx.getBattery = Symbol("dartx.getBattery");
var $getInstalledRelatedApps = dartx.getInstalledRelatedApps = Symbol("dartx.getInstalledRelatedApps");
var $getVRDisplays = dartx.getVRDisplays = Symbol("dartx.getVRDisplays");
var $registerProtocolHandler = dartx.registerProtocolHandler = Symbol("dartx.registerProtocolHandler");
var $requestKeyboardLock = dartx.requestKeyboardLock = Symbol("dartx.requestKeyboardLock");
var $requestMidiAccess = dartx.requestMidiAccess = Symbol("dartx.requestMidiAccess");
var $requestMediaKeySystemAccess = dartx.requestMediaKeySystemAccess = Symbol("dartx.requestMediaKeySystemAccess");
var $sendBeacon = dartx.sendBeacon = Symbol("dartx.sendBeacon");
var $share = dartx.share = Symbol("dartx.share");
var $webdriver = dartx.webdriver = Symbol("dartx.webdriver");
var $cookieEnabled = dartx.cookieEnabled = Symbol("dartx.cookieEnabled");
var $appCodeName = dartx.appCodeName = Symbol("dartx.appCodeName");
var $appName = dartx.appName = Symbol("dartx.appName");
var $appVersion = dartx.appVersion = Symbol("dartx.appVersion");
var $dartEnabled = dartx.dartEnabled = Symbol("dartx.dartEnabled");
var $platform = dartx.platform = Symbol("dartx.platform");
var $product = dartx.product = Symbol("dartx.product");
var $userAgent = dartx.userAgent = Symbol("dartx.userAgent");
var $languages = dartx.languages = Symbol("dartx.languages");
var $onLine = dartx.onLine = Symbol("dartx.onLine");
var $hardwareConcurrency = dartx.hardwareConcurrency = Symbol("dartx.hardwareConcurrency");
var $constraintName = dartx.constraintName = Symbol("dartx.constraintName");
var $downlink = dartx.downlink = Symbol("dartx.downlink");
var $downlinkMax = dartx.downlinkMax = Symbol("dartx.downlinkMax");
var $effectiveType = dartx.effectiveType = Symbol("dartx.effectiveType");
var $rtt = dartx.rtt = Symbol("dartx.rtt");
var $pointerBeforeReferenceNode = dartx.pointerBeforeReferenceNode = Symbol("dartx.pointerBeforeReferenceNode");
var $referenceNode = dartx.referenceNode = Symbol("dartx.referenceNode");
var $whatToShow = dartx.whatToShow = Symbol("dartx.whatToShow");
var $detach = dartx.detach = Symbol("dartx.detach");
var $actions = dartx.actions = Symbol("dartx.actions");
var $badge = dartx.badge = Symbol("dartx.badge");
var $icon = dartx.icon = Symbol("dartx.icon");
var $image = dartx.image = Symbol("dartx.image");
var $maxActions = dartx.maxActions = Symbol("dartx.maxActions");
var $permission = dartx.permission = Symbol("dartx.permission");
var $renotify = dartx.renotify = Symbol("dartx.renotify");
var $requireInteraction = dartx.requireInteraction = Symbol("dartx.requireInteraction");
var $silent = dartx.silent = Symbol("dartx.silent");
var $tag = dartx.tag = Symbol("dartx.tag");
var $vibrate = dartx.vibrate = Symbol("dartx.vibrate");
var $onShow = dartx.onShow = Symbol("dartx.onShow");
var $notification = dartx.notification = Symbol("dartx.notification");
var $reply = dartx.reply = Symbol("dartx.reply");
var $convertToBlob = dartx.convertToBlob = Symbol("dartx.convertToBlob");
var $transferToImageBitmap = dartx.transferToImageBitmap = Symbol("dartx.transferToImageBitmap");
var $commit = dartx.commit = Symbol("dartx.commit");
var $defaultSelected = dartx.defaultSelected = Symbol("dartx.defaultSelected");
var $constraint = dartx.constraint = Symbol("dartx.constraint");
var $persisted = dartx.persisted = Symbol("dartx.persisted");
var $devicePixelRatio = dartx.devicePixelRatio = Symbol("dartx.devicePixelRatio");
var $registerPaint = dartx.registerPaint = Symbol("dartx.registerPaint");
var $additionalData = dartx.additionalData = Symbol("dartx.additionalData");
var $idName = dartx.idName = Symbol("dartx.idName");
var $passwordName = dartx.passwordName = Symbol("dartx.passwordName");
var $addPath = dartx.addPath = Symbol("dartx.addPath");
var $addressLine = dartx.addressLine = Symbol("dartx.addressLine");
var $city = dartx.city = Symbol("dartx.city");
var $country = dartx.country = Symbol("dartx.country");
var $dependentLocality = dartx.dependentLocality = Symbol("dartx.dependentLocality");
var $languageCode = dartx.languageCode = Symbol("dartx.languageCode");
var $organization = dartx.organization = Symbol("dartx.organization");
var $phone = dartx.phone = Symbol("dartx.phone");
var $postalCode = dartx.postalCode = Symbol("dartx.postalCode");
var $recipient = dartx.recipient = Symbol("dartx.recipient");
var $sortingCode = dartx.sortingCode = Symbol("dartx.sortingCode");
var $instruments = dartx.instruments = Symbol("dartx.instruments");
var $userHint = dartx.userHint = Symbol("dartx.userHint");
var $shippingAddress = dartx.shippingAddress = Symbol("dartx.shippingAddress");
var $shippingOption = dartx.shippingOption = Symbol("dartx.shippingOption");
var $shippingType = dartx.shippingType = Symbol("dartx.shippingType");
var $canMakePayment = dartx.canMakePayment = Symbol("dartx.canMakePayment");
var $instrumentKey = dartx.instrumentKey = Symbol("dartx.instrumentKey");
var $paymentRequestId = dartx.paymentRequestId = Symbol("dartx.paymentRequestId");
var $total = dartx.total = Symbol("dartx.total");
var $updateWith = dartx.updateWith = Symbol("dartx.updateWith");
var $methodName = dartx.methodName = Symbol("dartx.methodName");
var $payerEmail = dartx.payerEmail = Symbol("dartx.payerEmail");
var $payerName = dartx.payerName = Symbol("dartx.payerName");
var $payerPhone = dartx.payerPhone = Symbol("dartx.payerPhone");
var $requestId = dartx.requestId = Symbol("dartx.requestId");
var $memory = dartx.memory = Symbol("dartx.memory");
var $navigation = dartx.navigation = Symbol("dartx.navigation");
var $timeOrigin = dartx.timeOrigin = Symbol("dartx.timeOrigin");
var $clearMarks = dartx.clearMarks = Symbol("dartx.clearMarks");
var $clearMeasures = dartx.clearMeasures = Symbol("dartx.clearMeasures");
var $clearResourceTimings = dartx.clearResourceTimings = Symbol("dartx.clearResourceTimings");
var $getEntries = dartx.getEntries = Symbol("dartx.getEntries");
var $getEntriesByName = dartx.getEntriesByName = Symbol("dartx.getEntriesByName");
var $getEntriesByType = dartx.getEntriesByType = Symbol("dartx.getEntriesByType");
var $mark = dartx.mark = Symbol("dartx.mark");
var $measure = dartx.measure = Symbol("dartx.measure");
var $now = dartx.now = Symbol("dartx.now");
var $setResourceTimingBufferSize = dartx.setResourceTimingBufferSize = Symbol("dartx.setResourceTimingBufferSize");
var $entryType = dartx.entryType = Symbol("dartx.entryType");
var $attribution = dartx.attribution = Symbol("dartx.attribution");
var $redirectCount = dartx.redirectCount = Symbol("dartx.redirectCount");
var $domComplete = dartx.domComplete = Symbol("dartx.domComplete");
var $domContentLoadedEventEnd = dartx.domContentLoadedEventEnd = Symbol("dartx.domContentLoadedEventEnd");
var $domContentLoadedEventStart = dartx.domContentLoadedEventStart = Symbol("dartx.domContentLoadedEventStart");
var $domInteractive = dartx.domInteractive = Symbol("dartx.domInteractive");
var $loadEventEnd = dartx.loadEventEnd = Symbol("dartx.loadEventEnd");
var $loadEventStart = dartx.loadEventStart = Symbol("dartx.loadEventStart");
var $unloadEventEnd = dartx.unloadEventEnd = Symbol("dartx.unloadEventEnd");
var $unloadEventStart = dartx.unloadEventStart = Symbol("dartx.unloadEventStart");
var $connectEnd = dartx.connectEnd = Symbol("dartx.connectEnd");
var $connectStart = dartx.connectStart = Symbol("dartx.connectStart");
var $decodedBodySize = dartx.decodedBodySize = Symbol("dartx.decodedBodySize");
var $domainLookupEnd = dartx.domainLookupEnd = Symbol("dartx.domainLookupEnd");
var $domainLookupStart = dartx.domainLookupStart = Symbol("dartx.domainLookupStart");
var $encodedBodySize = dartx.encodedBodySize = Symbol("dartx.encodedBodySize");
var $fetchStart = dartx.fetchStart = Symbol("dartx.fetchStart");
var $initiatorType = dartx.initiatorType = Symbol("dartx.initiatorType");
var $nextHopProtocol = dartx.nextHopProtocol = Symbol("dartx.nextHopProtocol");
var $redirectEnd = dartx.redirectEnd = Symbol("dartx.redirectEnd");
var $redirectStart = dartx.redirectStart = Symbol("dartx.redirectStart");
var $requestStart = dartx.requestStart = Symbol("dartx.requestStart");
var $responseEnd = dartx.responseEnd = Symbol("dartx.responseEnd");
var $responseStart = dartx.responseStart = Symbol("dartx.responseStart");
var $secureConnectionStart = dartx.secureConnectionStart = Symbol("dartx.secureConnectionStart");
var $serverTiming = dartx.serverTiming = Symbol("dartx.serverTiming");
var $transferSize = dartx.transferSize = Symbol("dartx.transferSize");
var $workerStart = dartx.workerStart = Symbol("dartx.workerStart");
var $domLoading = dartx.domLoading = Symbol("dartx.domLoading");
var $navigationStart = dartx.navigationStart = Symbol("dartx.navigationStart");
var $query = dartx.query = Symbol("dartx.query");
var $requestAll = dartx.requestAll = Symbol("dartx.requestAll");
var $revoke = dartx.revoke = Symbol("dartx.revoke");
var $fillLightMode = dartx.fillLightMode = Symbol("dartx.fillLightMode");
var $imageHeight = dartx.imageHeight = Symbol("dartx.imageHeight");
var $imageWidth = dartx.imageWidth = Symbol("dartx.imageWidth");
var $redEyeReduction = dartx.redEyeReduction = Symbol("dartx.redEyeReduction");
var $refresh = dartx.refresh = Symbol("dartx.refresh");
var $isPrimary = dartx.isPrimary = Symbol("dartx.isPrimary");
var $pointerId = dartx.pointerId = Symbol("dartx.pointerId");
var $pointerType = dartx.pointerType = Symbol("dartx.pointerType");
var $pressure = dartx.pressure = Symbol("dartx.pressure");
var $tangentialPressure = dartx.tangentialPressure = Symbol("dartx.tangentialPressure");
var $tiltX = dartx.tiltX = Symbol("dartx.tiltX");
var $tiltY = dartx.tiltY = Symbol("dartx.tiltY");
var $twist = dartx.twist = Symbol("dartx.twist");
var $getCoalescedEvents = dartx.getCoalescedEvents = Symbol("dartx.getCoalescedEvents");
var $defaultRequest = dartx.defaultRequest = Symbol("dartx.defaultRequest");
var $receiver = dartx.receiver = Symbol("dartx.receiver");
var $binaryType = dartx.binaryType = Symbol("dartx.binaryType");
var $terminate = dartx.terminate = Symbol("dartx.terminate");
var $connections = dartx.connections = Symbol("dartx.connections");
var $connectionList = dartx.connectionList = Symbol("dartx.connectionList");
var $getAvailability = dartx.getAvailability = Symbol("dartx.getAvailability");
var $reconnect = dartx.reconnect = Symbol("dartx.reconnect");
var $lengthComputable = dartx.lengthComputable = Symbol("dartx.lengthComputable");
var $promise = dartx.promise = Symbol("dartx.promise");
var $rawId = dartx.rawId = Symbol("dartx.rawId");
var $supportedContentEncodings = dartx.supportedContentEncodings = Symbol("dartx.supportedContentEncodings");
var $getSubscription = dartx.getSubscription = Symbol("dartx.getSubscription");
var $permissionState = dartx.permissionState = Symbol("dartx.permissionState");
var $subscribe = dartx.subscribe = Symbol("dartx.subscribe");
var $endpoint = dartx.endpoint = Symbol("dartx.endpoint");
var $expirationTime = dartx.expirationTime = Symbol("dartx.expirationTime");
var $unsubscribe = dartx.unsubscribe = Symbol("dartx.unsubscribe");
var $applicationServerKey = dartx.applicationServerKey = Symbol("dartx.applicationServerKey");
var $userVisibleOnly = dartx.userVisibleOnly = Symbol("dartx.userVisibleOnly");
var $collapsed = dartx.collapsed = Symbol("dartx.collapsed");
var $commonAncestorContainer = dartx.commonAncestorContainer = Symbol("dartx.commonAncestorContainer");
var $endContainer = dartx.endContainer = Symbol("dartx.endContainer");
var $endOffset = dartx.endOffset = Symbol("dartx.endOffset");
var $startContainer = dartx.startContainer = Symbol("dartx.startContainer");
var $startOffset = dartx.startOffset = Symbol("dartx.startOffset");
var $cloneContents = dartx.cloneContents = Symbol("dartx.cloneContents");
var $cloneRange = dartx.cloneRange = Symbol("dartx.cloneRange");
var $collapse = dartx.collapse = Symbol("dartx.collapse");
var $compareBoundaryPoints = dartx.compareBoundaryPoints = Symbol("dartx.compareBoundaryPoints");
var $comparePoint = dartx.comparePoint = Symbol("dartx.comparePoint");
var $createContextualFragment = dartx.createContextualFragment = Symbol("dartx.createContextualFragment");
var $deleteContents = dartx.deleteContents = Symbol("dartx.deleteContents");
var $extractContents = dartx.extractContents = Symbol("dartx.extractContents");
var $insertNode = dartx.insertNode = Symbol("dartx.insertNode");
var $isPointInRange = dartx.isPointInRange = Symbol("dartx.isPointInRange");
var $selectNode = dartx.selectNode = Symbol("dartx.selectNode");
var $selectNodeContents = dartx.selectNodeContents = Symbol("dartx.selectNodeContents");
var $setEnd = dartx.setEnd = Symbol("dartx.setEnd");
var $setEndAfter = dartx.setEndAfter = Symbol("dartx.setEndAfter");
var $setEndBefore = dartx.setEndBefore = Symbol("dartx.setEndBefore");
var $setStart = dartx.setStart = Symbol("dartx.setStart");
var $setStartAfter = dartx.setStartAfter = Symbol("dartx.setStartAfter");
var $setStartBefore = dartx.setStartBefore = Symbol("dartx.setStartBefore");
var $surroundContents = dartx.surroundContents = Symbol("dartx.surroundContents");
var $cancelWatchAvailability = dartx.cancelWatchAvailability = Symbol("dartx.cancelWatchAvailability");
var $watchAvailability = dartx.watchAvailability = Symbol("dartx.watchAvailability");
var $contentRect = dartx.contentRect = Symbol("dartx.contentRect");
var $expires = dartx.expires = Symbol("dartx.expires");
var $getFingerprints = dartx.getFingerprints = Symbol("dartx.getFingerprints");
var $bufferedAmount = dartx.bufferedAmount = Symbol("dartx.bufferedAmount");
var $bufferedAmountLowThreshold = dartx.bufferedAmountLowThreshold = Symbol("dartx.bufferedAmountLowThreshold");
var $maxRetransmitTime = dartx.maxRetransmitTime = Symbol("dartx.maxRetransmitTime");
var $maxRetransmits = dartx.maxRetransmits = Symbol("dartx.maxRetransmits");
var $negotiated = dartx.negotiated = Symbol("dartx.negotiated");
var $ordered = dartx.ordered = Symbol("dartx.ordered");
var $reliable = dartx.reliable = Symbol("dartx.reliable");
var $sendBlob = dartx.sendBlob = Symbol("dartx.sendBlob");
var $sendByteBuffer = dartx.sendByteBuffer = Symbol("dartx.sendByteBuffer");
var $sendString = dartx.sendString = Symbol("dartx.sendString");
var $sendTypedData = dartx.sendTypedData = Symbol("dartx.sendTypedData");
var $channel = dartx.channel = Symbol("dartx.channel");
var $canInsertDtmf = dartx.canInsertDtmf = Symbol("dartx.canInsertDtmf");
var $interToneGap = dartx.interToneGap = Symbol("dartx.interToneGap");
var $toneBuffer = dartx.toneBuffer = Symbol("dartx.toneBuffer");
var $insertDtmf = dartx.insertDtmf = Symbol("dartx.insertDtmf");
var $onToneChange = dartx.onToneChange = Symbol("dartx.onToneChange");
var $tone = dartx.tone = Symbol("dartx.tone");
var $candidate = dartx.candidate = Symbol("dartx.candidate");
var $sdpMLineIndex = dartx.sdpMLineIndex = Symbol("dartx.sdpMLineIndex");
var $sdpMid = dartx.sdpMid = Symbol("dartx.sdpMid");
var $names = dartx.names = Symbol("dartx.names");
var $stat = dartx.stat = Symbol("dartx.stat");
var $getLegacyStats = dartx.getLegacyStats = Symbol("dartx.getLegacyStats");
var $iceConnectionState = dartx.iceConnectionState = Symbol("dartx.iceConnectionState");
var $iceGatheringState = dartx.iceGatheringState = Symbol("dartx.iceGatheringState");
var $localDescription = dartx.localDescription = Symbol("dartx.localDescription");
var $remoteDescription = dartx.remoteDescription = Symbol("dartx.remoteDescription");
var $signalingState = dartx.signalingState = Symbol("dartx.signalingState");
var $addIceCandidate = dartx.addIceCandidate = Symbol("dartx.addIceCandidate");
var $addStream = dartx.addStream = Symbol("dartx.addStream");
var $createAnswer = dartx.createAnswer = Symbol("dartx.createAnswer");
var $createDtmfSender = dartx.createDtmfSender = Symbol("dartx.createDtmfSender");
var $createDataChannel = dartx.createDataChannel = Symbol("dartx.createDataChannel");
var $createOffer = dartx.createOffer = Symbol("dartx.createOffer");
var $getLocalStreams = dartx.getLocalStreams = Symbol("dartx.getLocalStreams");
var $getReceivers = dartx.getReceivers = Symbol("dartx.getReceivers");
var $getRemoteStreams = dartx.getRemoteStreams = Symbol("dartx.getRemoteStreams");
var $getSenders = dartx.getSenders = Symbol("dartx.getSenders");
var $getStats = dartx.getStats = Symbol("dartx.getStats");
var $removeStream = dartx.removeStream = Symbol("dartx.removeStream");
var $setConfiguration = dartx.setConfiguration = Symbol("dartx.setConfiguration");
var $setLocalDescription = dartx.setLocalDescription = Symbol("dartx.setLocalDescription");
var $setRemoteDescription = dartx.setRemoteDescription = Symbol("dartx.setRemoteDescription");
var $onAddStream = dartx.onAddStream = Symbol("dartx.onAddStream");
var $onDataChannel = dartx.onDataChannel = Symbol("dartx.onDataChannel");
var $onIceCandidate = dartx.onIceCandidate = Symbol("dartx.onIceCandidate");
var $onIceConnectionStateChange = dartx.onIceConnectionStateChange = Symbol("dartx.onIceConnectionStateChange");
var $onNegotiationNeeded = dartx.onNegotiationNeeded = Symbol("dartx.onNegotiationNeeded");
var $onRemoveStream = dartx.onRemoveStream = Symbol("dartx.onRemoveStream");
var $onSignalingStateChange = dartx.onSignalingStateChange = Symbol("dartx.onSignalingStateChange");
var $getContributingSources = dartx.getContributingSources = Symbol("dartx.getContributingSources");
var $sdp = dartx.sdp = Symbol("dartx.sdp");
var $streams = dartx.streams = Symbol("dartx.streams");
var $available = dartx.available = Symbol("dartx.available");
var $colorDepth = dartx.colorDepth = Symbol("dartx.colorDepth");
var $keepAwake = dartx.keepAwake = Symbol("dartx.keepAwake");
var $pixelDepth = dartx.pixelDepth = Symbol("dartx.pixelDepth");
var $lock = dartx.lock = Symbol("dartx.lock");
var $unlock = dartx.unlock = Symbol("dartx.unlock");
var $charset = dartx.charset = Symbol("dartx.charset");
var $defer = dartx.defer = Symbol("dartx.defer");
var $noModule = dartx.noModule = Symbol("dartx.noModule");
var $deltaGranularity = dartx.deltaGranularity = Symbol("dartx.deltaGranularity");
var $deltaX = dartx.deltaX = Symbol("dartx.deltaX");
var $deltaY = dartx.deltaY = Symbol("dartx.deltaY");
var $fromUserInput = dartx.fromUserInput = Symbol("dartx.fromUserInput");
var $inInertialPhase = dartx.inInertialPhase = Symbol("dartx.inInertialPhase");
var $isBeginning = dartx.isBeginning = Symbol("dartx.isBeginning");
var $isDirectManipulation = dartx.isDirectManipulation = Symbol("dartx.isDirectManipulation");
var $isEnding = dartx.isEnding = Symbol("dartx.isEnding");
var $positionX = dartx.positionX = Symbol("dartx.positionX");
var $positionY = dartx.positionY = Symbol("dartx.positionY");
var $velocityX = dartx.velocityX = Symbol("dartx.velocityX");
var $velocityY = dartx.velocityY = Symbol("dartx.velocityY");
var $consumeDelta = dartx.consumeDelta = Symbol("dartx.consumeDelta");
var $distributeToScrollChainDescendant = dartx.distributeToScrollChainDescendant = Symbol("dartx.distributeToScrollChainDescendant");
var $scrollSource = dartx.scrollSource = Symbol("dartx.scrollSource");
var $timeRange = dartx.timeRange = Symbol("dartx.timeRange");
var $blockedUri = dartx.blockedUri = Symbol("dartx.blockedUri");
var $columnNumber = dartx.columnNumber = Symbol("dartx.columnNumber");
var $disposition = dartx.disposition = Symbol("dartx.disposition");
var $documentUri = dartx.documentUri = Symbol("dartx.documentUri");
var $effectiveDirective = dartx.effectiveDirective = Symbol("dartx.effectiveDirective");
var $originalPolicy = dartx.originalPolicy = Symbol("dartx.originalPolicy");
var $sample = dartx.sample = Symbol("dartx.sample");
var $statusCode = dartx.statusCode = Symbol("dartx.statusCode");
var $violatedDirective = dartx.violatedDirective = Symbol("dartx.violatedDirective");
var $selectedIndex = dartx.selectedIndex = Symbol("dartx.selectedIndex");
var $selectedOptions = dartx.selectedOptions = Symbol("dartx.selectedOptions");
var $anchorNode = dartx.anchorNode = Symbol("dartx.anchorNode");
var $anchorOffset = dartx.anchorOffset = Symbol("dartx.anchorOffset");
var $baseNode = dartx.baseNode = Symbol("dartx.baseNode");
var $baseOffset = dartx.baseOffset = Symbol("dartx.baseOffset");
var $extentNode = dartx.extentNode = Symbol("dartx.extentNode");
var $extentOffset = dartx.extentOffset = Symbol("dartx.extentOffset");
var $focusNode = dartx.focusNode = Symbol("dartx.focusNode");
var $focusOffset = dartx.focusOffset = Symbol("dartx.focusOffset");
var $isCollapsed = dartx.isCollapsed = Symbol("dartx.isCollapsed");
var $rangeCount = dartx.rangeCount = Symbol("dartx.rangeCount");
var $addRange = dartx.addRange = Symbol("dartx.addRange");
var $collapseToEnd = dartx.collapseToEnd = Symbol("dartx.collapseToEnd");
var $collapseToStart = dartx.collapseToStart = Symbol("dartx.collapseToStart");
var $containsNode = dartx.containsNode = Symbol("dartx.containsNode");
var $deleteFromDocument = dartx.deleteFromDocument = Symbol("dartx.deleteFromDocument");
var $empty = dartx.empty = Symbol("dartx.empty");
var $extend = dartx.extend = Symbol("dartx.extend");
var $getRangeAt = dartx.getRangeAt = Symbol("dartx.getRangeAt");
var $modify = dartx.modify = Symbol("dartx.modify");
var $removeAllRanges = dartx.removeAllRanges = Symbol("dartx.removeAllRanges");
var $selectAllChildren = dartx.selectAllChildren = Symbol("dartx.selectAllChildren");
var $setBaseAndExtent = dartx.setBaseAndExtent = Symbol("dartx.setBaseAndExtent");
var $setPosition = dartx.setPosition = Symbol("dartx.setPosition");
var $scriptUrl = dartx.scriptUrl = Symbol("dartx.scriptUrl");
var $controller = dartx.controller = Symbol("dartx.controller");
var $getRegistration = dartx.getRegistration = Symbol("dartx.getRegistration");
var $getRegistrations = dartx.getRegistrations = Symbol("dartx.getRegistrations");
var $clients = dartx.clients = Symbol("dartx.clients");
var $registration = dartx.registration = Symbol("dartx.registration");
var $skipWaiting = dartx.skipWaiting = Symbol("dartx.skipWaiting");
var $onActivate = dartx.onActivate = Symbol("dartx.onActivate");
var $onFetch = dartx.onFetch = Symbol("dartx.onFetch");
var $onForeignfetch = dartx.onForeignfetch = Symbol("dartx.onForeignfetch");
var $onInstall = dartx.onInstall = Symbol("dartx.onInstall");
var $backgroundFetch = dartx.backgroundFetch = Symbol("dartx.backgroundFetch");
var $installing = dartx.installing = Symbol("dartx.installing");
var $navigationPreload = dartx.navigationPreload = Symbol("dartx.navigationPreload");
var $paymentManager = dartx.paymentManager = Symbol("dartx.paymentManager");
var $pushManager = dartx.pushManager = Symbol("dartx.pushManager");
var $sync = dartx.sync = Symbol("dartx.sync");
var $waiting = dartx.waiting = Symbol("dartx.waiting");
var $getNotifications = dartx.getNotifications = Symbol("dartx.getNotifications");
var $showNotification = dartx.showNotification = Symbol("dartx.showNotification");
var $unregister = dartx.unregister = Symbol("dartx.unregister");
var $delegatesFocus = dartx.delegatesFocus = Symbol("dartx.delegatesFocus");
var $olderShadowRoot = dartx.olderShadowRoot = Symbol("dartx.olderShadowRoot");
var $console = dartx.console = Symbol("dartx.console");
var $resetStyleInheritance = dartx.resetStyleInheritance = Symbol("dartx.resetStyleInheritance");
var $applyAuthorStyles = dartx.applyAuthorStyles = Symbol("dartx.applyAuthorStyles");
var $byteLength = dartx.byteLength = Symbol("dartx.byteLength");
var $onConnect = dartx.onConnect = Symbol("dartx.onConnect");
var $assignedNodes = dartx.assignedNodes = Symbol("dartx.assignedNodes");
var $appendWindowEnd = dartx.appendWindowEnd = Symbol("dartx.appendWindowEnd");
var $appendWindowStart = dartx.appendWindowStart = Symbol("dartx.appendWindowStart");
var $timestampOffset = dartx.timestampOffset = Symbol("dartx.timestampOffset");
var $trackDefaults = dartx.trackDefaults = Symbol("dartx.trackDefaults");
var $updating = dartx.updating = Symbol("dartx.updating");
var $appendBuffer = dartx.appendBuffer = Symbol("dartx.appendBuffer");
var $appendTypedData = dartx.appendTypedData = Symbol("dartx.appendTypedData");
var $addFromString = dartx.addFromString = Symbol("dartx.addFromString");
var $addFromUri = dartx.addFromUri = Symbol("dartx.addFromUri");
var $audioTrack = dartx.audioTrack = Symbol("dartx.audioTrack");
var $continuous = dartx.continuous = Symbol("dartx.continuous");
var $grammars = dartx.grammars = Symbol("dartx.grammars");
var $interimResults = dartx.interimResults = Symbol("dartx.interimResults");
var $maxAlternatives = dartx.maxAlternatives = Symbol("dartx.maxAlternatives");
var $onAudioEnd = dartx.onAudioEnd = Symbol("dartx.onAudioEnd");
var $onAudioStart = dartx.onAudioStart = Symbol("dartx.onAudioStart");
var $onEnd = dartx.onEnd = Symbol("dartx.onEnd");
var $onNoMatch = dartx.onNoMatch = Symbol("dartx.onNoMatch");
var $onResult = dartx.onResult = Symbol("dartx.onResult");
var $onSoundEnd = dartx.onSoundEnd = Symbol("dartx.onSoundEnd");
var $onSoundStart = dartx.onSoundStart = Symbol("dartx.onSoundStart");
var $onSpeechEnd = dartx.onSpeechEnd = Symbol("dartx.onSpeechEnd");
var $onSpeechStart = dartx.onSpeechStart = Symbol("dartx.onSpeechStart");
var $onStart = dartx.onStart = Symbol("dartx.onStart");
var $confidence = dartx.confidence = Symbol("dartx.confidence");
var $transcript = dartx.transcript = Symbol("dartx.transcript");
var $emma = dartx.emma = Symbol("dartx.emma");
var $interpretation = dartx.interpretation = Symbol("dartx.interpretation");
var $resultIndex = dartx.resultIndex = Symbol("dartx.resultIndex");
var $results = dartx.results = Symbol("dartx.results");
var $isFinal = dartx.isFinal = Symbol("dartx.isFinal");
var $getVoices = dartx.getVoices = Symbol("dartx.getVoices");
var $pending = dartx.pending = Symbol("dartx.pending");
var $speaking = dartx.speaking = Symbol("dartx.speaking");
var $charIndex = dartx.charIndex = Symbol("dartx.charIndex");
var $utterance = dartx.utterance = Symbol("dartx.utterance");
var $pitch = dartx.pitch = Symbol("dartx.pitch");
var $rate = dartx.rate = Symbol("dartx.rate");
var $voice = dartx.voice = Symbol("dartx.voice");
var $onBoundary = dartx.onBoundary = Symbol("dartx.onBoundary");
var $onMark = dartx.onMark = Symbol("dartx.onMark");
var $onResume = dartx.onResume = Symbol("dartx.onResume");
var $localService = dartx.localService = Symbol("dartx.localService");
var $voiceUri = dartx.voiceUri = Symbol("dartx.voiceUri");
var $storageArea = dartx.storageArea = Symbol("dartx.storageArea");
var $estimate = dartx.estimate = Symbol("dartx.estimate");
var $persist = dartx.persist = Symbol("dartx.persist");
var $matchMedium = dartx.matchMedium = Symbol("dartx.matchMedium");
var $getProperties = dartx.getProperties = Symbol("dartx.getProperties");
var $lastChance = dartx.lastChance = Symbol("dartx.lastChance");
var $getTags = dartx.getTags = Symbol("dartx.getTags");
var $cellIndex = dartx.cellIndex = Symbol("dartx.cellIndex");
var $headers = dartx.headers = Symbol("dartx.headers");
var $span = dartx.span = Symbol("dartx.span");
var $tBodies = dartx.tBodies = Symbol("dartx.tBodies");
var $rows = dartx.rows = Symbol("dartx.rows");
var $insertRow = dartx.insertRow = Symbol("dartx.insertRow");
var $addRow = dartx.addRow = Symbol("dartx.addRow");
var $createCaption = dartx.createCaption = Symbol("dartx.createCaption");
var $createTBody = dartx.createTBody = Symbol("dartx.createTBody");
var $createTFoot = dartx.createTFoot = Symbol("dartx.createTFoot");
var $createTHead = dartx.createTHead = Symbol("dartx.createTHead");
var $caption = dartx.caption = Symbol("dartx.caption");
var $tFoot = dartx.tFoot = Symbol("dartx.tFoot");
var $tHead = dartx.tHead = Symbol("dartx.tHead");
var $deleteCaption = dartx.deleteCaption = Symbol("dartx.deleteCaption");
var $deleteRow = dartx.deleteRow = Symbol("dartx.deleteRow");
var $deleteTFoot = dartx.deleteTFoot = Symbol("dartx.deleteTFoot");
var $deleteTHead = dartx.deleteTHead = Symbol("dartx.deleteTHead");
var $cells = dartx.cells = Symbol("dartx.cells");
var $insertCell = dartx.insertCell = Symbol("dartx.insertCell");
var $addCell = dartx.addCell = Symbol("dartx.addCell");
var $sectionRowIndex = dartx.sectionRowIndex = Symbol("dartx.sectionRowIndex");
var $deleteCell = dartx.deleteCell = Symbol("dartx.deleteCell");
var $containerId = dartx.containerId = Symbol("dartx.containerId");
var $containerName = dartx.containerName = Symbol("dartx.containerName");
var $containerSrc = dartx.containerSrc = Symbol("dartx.containerSrc");
var $containerType = dartx.containerType = Symbol("dartx.containerType");
var $cols = dartx.cols = Symbol("dartx.cols");
var $textLength = dartx.textLength = Symbol("dartx.textLength");
var $wrap = dartx.wrap = Symbol("dartx.wrap");
var $actualBoundingBoxAscent = dartx.actualBoundingBoxAscent = Symbol("dartx.actualBoundingBoxAscent");
var $actualBoundingBoxDescent = dartx.actualBoundingBoxDescent = Symbol("dartx.actualBoundingBoxDescent");
var $actualBoundingBoxLeft = dartx.actualBoundingBoxLeft = Symbol("dartx.actualBoundingBoxLeft");
var $actualBoundingBoxRight = dartx.actualBoundingBoxRight = Symbol("dartx.actualBoundingBoxRight");
var $alphabeticBaseline = dartx.alphabeticBaseline = Symbol("dartx.alphabeticBaseline");
var $emHeightAscent = dartx.emHeightAscent = Symbol("dartx.emHeightAscent");
var $emHeightDescent = dartx.emHeightDescent = Symbol("dartx.emHeightDescent");
var $fontBoundingBoxAscent = dartx.fontBoundingBoxAscent = Symbol("dartx.fontBoundingBoxAscent");
var $fontBoundingBoxDescent = dartx.fontBoundingBoxDescent = Symbol("dartx.fontBoundingBoxDescent");
var $hangingBaseline = dartx.hangingBaseline = Symbol("dartx.hangingBaseline");
var $ideographicBaseline = dartx.ideographicBaseline = Symbol("dartx.ideographicBaseline");
var $activeCues = dartx.activeCues = Symbol("dartx.activeCues");
var $cues = dartx.cues = Symbol("dartx.cues");
var $addCue = dartx.addCue = Symbol("dartx.addCue");
var $removeCue = dartx.removeCue = Symbol("dartx.removeCue");
var $onCueChange = dartx.onCueChange = Symbol("dartx.onCueChange");
var $endTime = dartx.endTime = Symbol("dartx.endTime");
var $pauseOnExit = dartx.pauseOnExit = Symbol("dartx.pauseOnExit");
var $onEnter = dartx.onEnter = Symbol("dartx.onEnter");
var $onExit = dartx.onExit = Symbol("dartx.onExit");
var $getCueById = dartx.getCueById = Symbol("dartx.getCueById");
var $end = dartx.end = Symbol("dartx.end");
var $force = dartx.force = Symbol("dartx.force");
var $identifier = dartx.identifier = Symbol("dartx.identifier");
var $rotationAngle = dartx.rotationAngle = Symbol("dartx.rotationAngle");
var $radiusX = dartx.radiusX = Symbol("dartx.radiusX");
var $radiusY = dartx.radiusY = Symbol("dartx.radiusY");
var $changedTouches = dartx.changedTouches = Symbol("dartx.changedTouches");
var $targetTouches = dartx.targetTouches = Symbol("dartx.targetTouches");
var $touches = dartx.touches = Symbol("dartx.touches");
var $byteStreamTrackID = dartx.byteStreamTrackID = Symbol("dartx.byteStreamTrackID");
var $kinds = dartx.kinds = Symbol("dartx.kinds");
var $srclang = dartx.srclang = Symbol("dartx.srclang");
var $propertyName = dartx.propertyName = Symbol("dartx.propertyName");
var $pseudoElement = dartx.pseudoElement = Symbol("dartx.pseudoElement");
var $currentNode = dartx.currentNode = Symbol("dartx.currentNode");
var $notifyLockAcquired = dartx.notifyLockAcquired = Symbol("dartx.notifyLockAcquired");
var $notifyLockReleased = dartx.notifyLockReleased = Symbol("dartx.notifyLockReleased");
var $pull = dartx.pull = Symbol("dartx.pull");
var $searchParams = dartx.searchParams = Symbol("dartx.searchParams");
var $getDevices = dartx.getDevices = Symbol("dartx.getDevices");
var $getTransformTo = dartx.getTransformTo = Symbol("dartx.getTransformTo");
var $deviceName = dartx.deviceName = Symbol("dartx.deviceName");
var $isExternal = dartx.isExternal = Symbol("dartx.isExternal");
var $requestSession = dartx.requestSession = Symbol("dartx.requestSession");
var $supportsSession = dartx.supportsSession = Symbol("dartx.supportsSession");
var $device = dartx.device = Symbol("dartx.device");
var $capabilities = dartx.capabilities = Symbol("dartx.capabilities");
var $depthFar = dartx.depthFar = Symbol("dartx.depthFar");
var $depthNear = dartx.depthNear = Symbol("dartx.depthNear");
var $displayName = dartx.displayName = Symbol("dartx.displayName");
var $isPresenting = dartx.isPresenting = Symbol("dartx.isPresenting");
var $stageParameters = dartx.stageParameters = Symbol("dartx.stageParameters");
var $cancelAnimationFrame = dartx.cancelAnimationFrame = Symbol("dartx.cancelAnimationFrame");
var $exitPresent = dartx.exitPresent = Symbol("dartx.exitPresent");
var $getEyeParameters = dartx.getEyeParameters = Symbol("dartx.getEyeParameters");
var $getFrameData = dartx.getFrameData = Symbol("dartx.getFrameData");
var $getLayers = dartx.getLayers = Symbol("dartx.getLayers");
var $requestAnimationFrame = dartx.requestAnimationFrame = Symbol("dartx.requestAnimationFrame");
var $requestPresent = dartx.requestPresent = Symbol("dartx.requestPresent");
var $submitFrame = dartx.submitFrame = Symbol("dartx.submitFrame");
var $canPresent = dartx.canPresent = Symbol("dartx.canPresent");
var $hasExternalDisplay = dartx.hasExternalDisplay = Symbol("dartx.hasExternalDisplay");
var $maxLayers = dartx.maxLayers = Symbol("dartx.maxLayers");
var $renderHeight = dartx.renderHeight = Symbol("dartx.renderHeight");
var $renderWidth = dartx.renderWidth = Symbol("dartx.renderWidth");
var $leftProjectionMatrix = dartx.leftProjectionMatrix = Symbol("dartx.leftProjectionMatrix");
var $leftViewMatrix = dartx.leftViewMatrix = Symbol("dartx.leftViewMatrix");
var $rightProjectionMatrix = dartx.rightProjectionMatrix = Symbol("dartx.rightProjectionMatrix");
var $rightViewMatrix = dartx.rightViewMatrix = Symbol("dartx.rightViewMatrix");
var $bounds = dartx.bounds = Symbol("dartx.bounds");
var $emulatedHeight = dartx.emulatedHeight = Symbol("dartx.emulatedHeight");
var $exclusive = dartx.exclusive = Symbol("dartx.exclusive");
var $requestFrameOfReference = dartx.requestFrameOfReference = Symbol("dartx.requestFrameOfReference");
var $session = dartx.session = Symbol("dartx.session");
var $geometry = dartx.geometry = Symbol("dartx.geometry");
var $sittingToStandingTransform = dartx.sittingToStandingTransform = Symbol("dartx.sittingToStandingTransform");
var $sizeX = dartx.sizeX = Symbol("dartx.sizeX");
var $sizeZ = dartx.sizeZ = Symbol("dartx.sizeZ");
var $badInput = dartx.badInput = Symbol("dartx.badInput");
var $customError = dartx.customError = Symbol("dartx.customError");
var $patternMismatch = dartx.patternMismatch = Symbol("dartx.patternMismatch");
var $rangeOverflow = dartx.rangeOverflow = Symbol("dartx.rangeOverflow");
var $rangeUnderflow = dartx.rangeUnderflow = Symbol("dartx.rangeUnderflow");
var $stepMismatch = dartx.stepMismatch = Symbol("dartx.stepMismatch");
var $tooLong = dartx.tooLong = Symbol("dartx.tooLong");
var $tooShort = dartx.tooShort = Symbol("dartx.tooShort");
var $typeMismatch = dartx.typeMismatch = Symbol("dartx.typeMismatch");
var $valid = dartx.valid = Symbol("dartx.valid");
var $valueMissing = dartx.valueMissing = Symbol("dartx.valueMissing");
var $poster = dartx.poster = Symbol("dartx.poster");
var $videoHeight = dartx.videoHeight = Symbol("dartx.videoHeight");
var $videoWidth = dartx.videoWidth = Symbol("dartx.videoWidth");
var $decodedFrameCount = dartx.decodedFrameCount = Symbol("dartx.decodedFrameCount");
var $droppedFrameCount = dartx.droppedFrameCount = Symbol("dartx.droppedFrameCount");
var $getVideoPlaybackQuality = dartx.getVideoPlaybackQuality = Symbol("dartx.getVideoPlaybackQuality");
var $enterFullscreen = dartx.enterFullscreen = Symbol("dartx.enterFullscreen");
var $corruptedVideoFrames = dartx.corruptedVideoFrames = Symbol("dartx.corruptedVideoFrames");
var $creationTime = dartx.creationTime = Symbol("dartx.creationTime");
var $droppedVideoFrames = dartx.droppedVideoFrames = Symbol("dartx.droppedVideoFrames");
var $totalVideoFrames = dartx.totalVideoFrames = Symbol("dartx.totalVideoFrames");
var $sourceBuffer = dartx.sourceBuffer = Symbol("dartx.sourceBuffer");
var $pageLeft = dartx.pageLeft = Symbol("dartx.pageLeft");
var $pageTop = dartx.pageTop = Symbol("dartx.pageTop");
var $align = dartx.align = Symbol("dartx.align");
var $line = dartx.line = Symbol("dartx.line");
var $snapToLines = dartx.snapToLines = Symbol("dartx.snapToLines");
var $vertical = dartx.vertical = Symbol("dartx.vertical");
var $getCueAsHtml = dartx.getCueAsHtml = Symbol("dartx.getCueAsHtml");
var $lines = dartx.lines = Symbol("dartx.lines");
var $regionAnchorX = dartx.regionAnchorX = Symbol("dartx.regionAnchorX");
var $regionAnchorY = dartx.regionAnchorY = Symbol("dartx.regionAnchorY");
var $viewportAnchorX = dartx.viewportAnchorX = Symbol("dartx.viewportAnchorX");
var $viewportAnchorY = dartx.viewportAnchorY = Symbol("dartx.viewportAnchorY");
var $extensions = dartx.extensions = Symbol("dartx.extensions");
var $deltaZ = dartx.deltaZ = Symbol("dartx.deltaZ");
var $deltaMode = dartx.deltaMode = Symbol("dartx.deltaMode");
var $animationFrame = dartx.animationFrame = Symbol("dartx.animationFrame");
var $document = dartx.document = Symbol("dartx.document");
var $requestFileSystem = dartx.requestFileSystem = Symbol("dartx.requestFileSystem");
var $animationWorklet = dartx.animationWorklet = Symbol("dartx.animationWorklet");
var $applicationCache = dartx.applicationCache = Symbol("dartx.applicationCache");
var $audioWorklet = dartx.audioWorklet = Symbol("dartx.audioWorklet");
var $cookieStore = dartx.cookieStore = Symbol("dartx.cookieStore");
var $customElements = dartx.customElements = Symbol("dartx.customElements");
var $defaultStatus = dartx.defaultStatus = Symbol("dartx.defaultStatus");
var $defaultstatus = dartx.defaultstatus = Symbol("dartx.defaultstatus");
var $external = dartx.external = Symbol("dartx.external");
var $history = dartx.history = Symbol("dartx.history");
var $innerHeight = dartx.innerHeight = Symbol("dartx.innerHeight");
var $innerWidth = dartx.innerWidth = Symbol("dartx.innerWidth");
var $localStorage = dartx.localStorage = Symbol("dartx.localStorage");
var $locationbar = dartx.locationbar = Symbol("dartx.locationbar");
var $menubar = dartx.menubar = Symbol("dartx.menubar");
var $offscreenBuffering = dartx.offscreenBuffering = Symbol("dartx.offscreenBuffering");
var $opener = dartx.opener = Symbol("dartx.opener");
var $outerHeight = dartx.outerHeight = Symbol("dartx.outerHeight");
var $outerWidth = dartx.outerWidth = Symbol("dartx.outerWidth");
var $screenLeft = dartx.screenLeft = Symbol("dartx.screenLeft");
var $screenTop = dartx.screenTop = Symbol("dartx.screenTop");
var $screenX = dartx.screenX = Symbol("dartx.screenX");
var $screenY = dartx.screenY = Symbol("dartx.screenY");
var $scrollbars = dartx.scrollbars = Symbol("dartx.scrollbars");
var $sessionStorage = dartx.sessionStorage = Symbol("dartx.sessionStorage");
var $speechSynthesis = dartx.speechSynthesis = Symbol("dartx.speechSynthesis");
var $statusbar = dartx.statusbar = Symbol("dartx.statusbar");
var $styleMedia = dartx.styleMedia = Symbol("dartx.styleMedia");
var $toolbar = dartx.toolbar = Symbol("dartx.toolbar");
var $visualViewport = dartx.visualViewport = Symbol("dartx.visualViewport");
var $alert = dartx.alert = Symbol("dartx.alert");
var $cancelIdleCallback = dartx.cancelIdleCallback = Symbol("dartx.cancelIdleCallback");
var $confirm = dartx.confirm = Symbol("dartx.confirm");
var $find = dartx.find = Symbol("dartx.find");
var $getComputedStyleMap = dartx.getComputedStyleMap = Symbol("dartx.getComputedStyleMap");
var $getMatchedCssRules = dartx.getMatchedCssRules = Symbol("dartx.getMatchedCssRules");
var $matchMedia = dartx.matchMedia = Symbol("dartx.matchMedia");
var $moveBy = dartx.moveBy = Symbol("dartx.moveBy");
var $print = dartx.print = Symbol("dartx.print");
var $requestIdleCallback = dartx.requestIdleCallback = Symbol("dartx.requestIdleCallback");
var $resizeBy = dartx.resizeBy = Symbol("dartx.resizeBy");
var $resizeTo = dartx.resizeTo = Symbol("dartx.resizeTo");
var $resolveLocalFileSystemUrl = dartx.resolveLocalFileSystemUrl = Symbol("dartx.resolveLocalFileSystemUrl");
var $onContentLoaded = dartx.onContentLoaded = Symbol("dartx.onContentLoaded");
var $onDeviceMotion = dartx.onDeviceMotion = Symbol("dartx.onDeviceMotion");
var $onDeviceOrientation = dartx.onDeviceOrientation = Symbol("dartx.onDeviceOrientation");
var $onPageHide = dartx.onPageHide = Symbol("dartx.onPageHide");
var $onPageShow = dartx.onPageShow = Symbol("dartx.onPageShow");
var $onAnimationEnd = dartx.onAnimationEnd = Symbol("dartx.onAnimationEnd");
var $onAnimationIteration = dartx.onAnimationIteration = Symbol("dartx.onAnimationIteration");
var $onAnimationStart = dartx.onAnimationStart = Symbol("dartx.onAnimationStart");
var $onBeforeUnload = dartx.onBeforeUnload = Symbol("dartx.onBeforeUnload");
var $openDatabase = dartx.openDatabase = Symbol("dartx.openDatabase");
var $pageXOffset = dartx.pageXOffset = Symbol("dartx.pageXOffset");
var $pageYOffset = dartx.pageYOffset = Symbol("dartx.pageYOffset");
var $scrollX = dartx.scrollX = Symbol("dartx.scrollX");
var $scrollY = dartx.scrollY = Symbol("dartx.scrollY");
var $focused = dartx.focused = Symbol("dartx.focused");
var $navigate = dartx.navigate = Symbol("dartx.navigate");
var $createExpression = dartx.createExpression = Symbol("dartx.createExpression");
var $createNSResolver = dartx.createNSResolver = Symbol("dartx.createNSResolver");
var $evaluate = dartx.evaluate = Symbol("dartx.evaluate");
var $lookupNamespaceUri = dartx.lookupNamespaceUri = Symbol("dartx.lookupNamespaceUri");
var $booleanValue = dartx.booleanValue = Symbol("dartx.booleanValue");
var $invalidIteratorState = dartx.invalidIteratorState = Symbol("dartx.invalidIteratorState");
var $numberValue = dartx.numberValue = Symbol("dartx.numberValue");
var $resultType = dartx.resultType = Symbol("dartx.resultType");
var $singleNodeValue = dartx.singleNodeValue = Symbol("dartx.singleNodeValue");
var $snapshotLength = dartx.snapshotLength = Symbol("dartx.snapshotLength");
var $stringValue = dartx.stringValue = Symbol("dartx.stringValue");
var $iterateNext = dartx.iterateNext = Symbol("dartx.iterateNext");
var $snapshotItem = dartx.snapshotItem = Symbol("dartx.snapshotItem");
var $serializeToString = dartx.serializeToString = Symbol("dartx.serializeToString");
var $clearParameters = dartx.clearParameters = Symbol("dartx.clearParameters");
var $getParameter = dartx.getParameter = Symbol("dartx.getParameter");
var $importStylesheet = dartx.importStylesheet = Symbol("dartx.importStylesheet");
var $removeParameter = dartx.removeParameter = Symbol("dartx.removeParameter");
var $setParameter = dartx.setParameter = Symbol("dartx.setParameter");
var $transformToDocument = dartx.transformToDocument = Symbol("dartx.transformToDocument");
var $transformToFragment = dartx.transformToFragment = Symbol("dartx.transformToFragment");
var $getBudget = dartx.getBudget = Symbol("dartx.getBudget");
var $getCost = dartx.getCost = Symbol("dartx.getCost");
var $reserve = dartx.reserve = Symbol("dartx.reserve");
var $read = dartx.read = Symbol("dartx.read");
var $readText = dartx.readText = Symbol("dartx.readText");
var $writeText = dartx.writeText = Symbol("dartx.writeText");
var $getNamedItem = dartx.getNamedItem = Symbol("dartx.getNamedItem");
var $getNamedItemNS = dartx.getNamedItemNS = Symbol("dartx.getNamedItemNS");
var $removeNamedItem = dartx.removeNamedItem = Symbol("dartx.removeNamedItem");
var $removeNamedItemNS = dartx.removeNamedItemNS = Symbol("dartx.removeNamedItemNS");
var $setNamedItem = dartx.setNamedItem = Symbol("dartx.setNamedItem");
var $setNamedItemNS = dartx.setNamedItemNS = Symbol("dartx.setNamedItemNS");
var $cache = dartx.cache = Symbol("dartx.cache");
var $redirect = dartx.redirect = Symbol("dartx.redirect");
var $farthestViewportElement = dartx.farthestViewportElement = Symbol("dartx.farthestViewportElement");
var $nearestViewportElement = dartx.nearestViewportElement = Symbol("dartx.nearestViewportElement");
var $getBBox = dartx.getBBox = Symbol("dartx.getBBox");
var $getCtm = dartx.getCtm = Symbol("dartx.getCtm");
var $getScreenCtm = dartx.getScreenCtm = Symbol("dartx.getScreenCtm");
var $requiredExtensions = dartx.requiredExtensions = Symbol("dartx.requiredExtensions");
var $systemLanguage = dartx.systemLanguage = Symbol("dartx.systemLanguage");
var $ownerSvgElement = dartx.ownerSvgElement = Symbol("dartx.ownerSvgElement");
var $viewportElement = dartx.viewportElement = Symbol("dartx.viewportElement");
var $unitType = dartx.unitType = Symbol("dartx.unitType");
var $valueAsString = dartx.valueAsString = Symbol("dartx.valueAsString");
var $valueInSpecifiedUnits = dartx.valueInSpecifiedUnits = Symbol("dartx.valueInSpecifiedUnits");
var $convertToSpecifiedUnits = dartx.convertToSpecifiedUnits = Symbol("dartx.convertToSpecifiedUnits");
var $newValueSpecifiedUnits = dartx.newValueSpecifiedUnits = Symbol("dartx.newValueSpecifiedUnits");
var $targetElement = dartx.targetElement = Symbol("dartx.targetElement");
var $beginElement = dartx.beginElement = Symbol("dartx.beginElement");
var $beginElementAt = dartx.beginElementAt = Symbol("dartx.beginElementAt");
var $endElement = dartx.endElement = Symbol("dartx.endElement");
var $endElementAt = dartx.endElementAt = Symbol("dartx.endElementAt");
var $getCurrentTime = dartx.getCurrentTime = Symbol("dartx.getCurrentTime");
var $getSimpleDuration = dartx.getSimpleDuration = Symbol("dartx.getSimpleDuration");
var $getStartTime = dartx.getStartTime = Symbol("dartx.getStartTime");
var $animVal = dartx.animVal = Symbol("dartx.animVal");
var $baseVal = dartx.baseVal = Symbol("dartx.baseVal");
var $cx = dartx.cx = Symbol("dartx.cx");
var $cy = dartx.cy = Symbol("dartx.cy");
var $r = dartx.r = Symbol("dartx.r");
var $pathLength = dartx.pathLength = Symbol("dartx.pathLength");
var $getPointAtLength = dartx.getPointAtLength = Symbol("dartx.getPointAtLength");
var $getTotalLength = dartx.getTotalLength = Symbol("dartx.getTotalLength");
var $isPointInFill = dartx.isPointInFill = Symbol("dartx.isPointInFill");
var $clipPathUnits = dartx.clipPathUnits = Symbol("dartx.clipPathUnits");
var $rx = dartx.rx = Symbol("dartx.rx");
var $ry = dartx.ry = Symbol("dartx.ry");
var $in1 = dartx.in1 = Symbol("dartx.in1");
var $in2 = dartx.in2 = Symbol("dartx.in2");
var $k1 = dartx.k1 = Symbol("dartx.k1");
var $k2 = dartx.k2 = Symbol("dartx.k2");
var $k3 = dartx.k3 = Symbol("dartx.k3");
var $k4 = dartx.k4 = Symbol("dartx.k4");
var $operator = dartx.operator = Symbol("dartx.operator");
var $bias = dartx.bias = Symbol("dartx.bias");
var $divisor = dartx.divisor = Symbol("dartx.divisor");
var $edgeMode = dartx.edgeMode = Symbol("dartx.edgeMode");
var $kernelMatrix = dartx.kernelMatrix = Symbol("dartx.kernelMatrix");
var $kernelUnitLengthX = dartx.kernelUnitLengthX = Symbol("dartx.kernelUnitLengthX");
var $kernelUnitLengthY = dartx.kernelUnitLengthY = Symbol("dartx.kernelUnitLengthY");
var $orderX = dartx.orderX = Symbol("dartx.orderX");
var $orderY = dartx.orderY = Symbol("dartx.orderY");
var $preserveAlpha = dartx.preserveAlpha = Symbol("dartx.preserveAlpha");
var $targetX = dartx.targetX = Symbol("dartx.targetX");
var $targetY = dartx.targetY = Symbol("dartx.targetY");
var $diffuseConstant = dartx.diffuseConstant = Symbol("dartx.diffuseConstant");
var $surfaceScale = dartx.surfaceScale = Symbol("dartx.surfaceScale");
var $xChannelSelector = dartx.xChannelSelector = Symbol("dartx.xChannelSelector");
var $yChannelSelector = dartx.yChannelSelector = Symbol("dartx.yChannelSelector");
var $azimuth = dartx.azimuth = Symbol("dartx.azimuth");
var $elevation = dartx.elevation = Symbol("dartx.elevation");
var $stdDeviationX = dartx.stdDeviationX = Symbol("dartx.stdDeviationX");
var $stdDeviationY = dartx.stdDeviationY = Symbol("dartx.stdDeviationY");
var $setStdDeviation = dartx.setStdDeviation = Symbol("dartx.setStdDeviation");
var $preserveAspectRatio = dartx.preserveAspectRatio = Symbol("dartx.preserveAspectRatio");
var $dx = dartx.dx = Symbol("dartx.dx");
var $dy = dartx.dy = Symbol("dartx.dy");
var $specularConstant = dartx.specularConstant = Symbol("dartx.specularConstant");
var $specularExponent = dartx.specularExponent = Symbol("dartx.specularExponent");
var $limitingConeAngle = dartx.limitingConeAngle = Symbol("dartx.limitingConeAngle");
var $pointsAtX = dartx.pointsAtX = Symbol("dartx.pointsAtX");
var $pointsAtY = dartx.pointsAtY = Symbol("dartx.pointsAtY");
var $pointsAtZ = dartx.pointsAtZ = Symbol("dartx.pointsAtZ");
var $baseFrequencyX = dartx.baseFrequencyX = Symbol("dartx.baseFrequencyX");
var $baseFrequencyY = dartx.baseFrequencyY = Symbol("dartx.baseFrequencyY");
var $numOctaves = dartx.numOctaves = Symbol("dartx.numOctaves");
var $seed = dartx.seed = Symbol("dartx.seed");
var $stitchTiles = dartx.stitchTiles = Symbol("dartx.stitchTiles");
var $filterUnits = dartx.filterUnits = Symbol("dartx.filterUnits");
var $primitiveUnits = dartx.primitiveUnits = Symbol("dartx.primitiveUnits");
var $viewBox = dartx.viewBox = Symbol("dartx.viewBox");
var $numberOfItems = dartx.numberOfItems = Symbol("dartx.numberOfItems");
var $appendItem = dartx.appendItem = Symbol("dartx.appendItem");
var $getItem = dartx.getItem = Symbol("dartx.getItem");
var $initialize = dartx.initialize = Symbol("dartx.initialize");
var $insertItemBefore = dartx.insertItemBefore = Symbol("dartx.insertItemBefore");
var $removeItem = dartx.removeItem = Symbol("dartx.removeItem");
var $replaceItem = dartx.replaceItem = Symbol("dartx.replaceItem");
var $x1 = dartx.x1 = Symbol("dartx.x1");
var $x2 = dartx.x2 = Symbol("dartx.x2");
var $y1 = dartx.y1 = Symbol("dartx.y1");
var $y2 = dartx.y2 = Symbol("dartx.y2");
var $gradientTransform = dartx.gradientTransform = Symbol("dartx.gradientTransform");
var $gradientUnits = dartx.gradientUnits = Symbol("dartx.gradientUnits");
var $spreadMethod = dartx.spreadMethod = Symbol("dartx.spreadMethod");
var $markerHeight = dartx.markerHeight = Symbol("dartx.markerHeight");
var $markerUnits = dartx.markerUnits = Symbol("dartx.markerUnits");
var $markerWidth = dartx.markerWidth = Symbol("dartx.markerWidth");
var $orientAngle = dartx.orientAngle = Symbol("dartx.orientAngle");
var $orientType = dartx.orientType = Symbol("dartx.orientType");
var $refX = dartx.refX = Symbol("dartx.refX");
var $refY = dartx.refY = Symbol("dartx.refY");
var $setOrientToAngle = dartx.setOrientToAngle = Symbol("dartx.setOrientToAngle");
var $setOrientToAuto = dartx.setOrientToAuto = Symbol("dartx.setOrientToAuto");
var $maskContentUnits = dartx.maskContentUnits = Symbol("dartx.maskContentUnits");
var $maskUnits = dartx.maskUnits = Symbol("dartx.maskUnits");
var $scaleNonUniform = dartx.scaleNonUniform = Symbol("dartx.scaleNonUniform");
var $patternContentUnits = dartx.patternContentUnits = Symbol("dartx.patternContentUnits");
var $patternTransform = dartx.patternTransform = Symbol("dartx.patternTransform");
var $patternUnits = dartx.patternUnits = Symbol("dartx.patternUnits");
var $animatedPoints = dartx.animatedPoints = Symbol("dartx.animatedPoints");
var $points = dartx.points = Symbol("dartx.points");
var $meetOrSlice = dartx.meetOrSlice = Symbol("dartx.meetOrSlice");
var $fr = dartx.fr = Symbol("dartx.fr");
var $fx = dartx.fx = Symbol("dartx.fx");
var $fy = dartx.fy = Symbol("dartx.fy");
var $gradientOffset = dartx.gradientOffset = Symbol("dartx.gradientOffset");
var $currentScale = dartx.currentScale = Symbol("dartx.currentScale");
var $currentTranslate = dartx.currentTranslate = Symbol("dartx.currentTranslate");
var $animationsPaused = dartx.animationsPaused = Symbol("dartx.animationsPaused");
var $checkEnclosure = dartx.checkEnclosure = Symbol("dartx.checkEnclosure");
var $checkIntersection = dartx.checkIntersection = Symbol("dartx.checkIntersection");
var $createSvgAngle = dartx.createSvgAngle = Symbol("dartx.createSvgAngle");
var $createSvgLength = dartx.createSvgLength = Symbol("dartx.createSvgLength");
var $createSvgMatrix = dartx.createSvgMatrix = Symbol("dartx.createSvgMatrix");
var $createSvgNumber = dartx.createSvgNumber = Symbol("dartx.createSvgNumber");
var $createSvgPoint = dartx.createSvgPoint = Symbol("dartx.createSvgPoint");
var $createSvgRect = dartx.createSvgRect = Symbol("dartx.createSvgRect");
var $createSvgTransform = dartx.createSvgTransform = Symbol("dartx.createSvgTransform");
var $createSvgTransformFromMatrix = dartx.createSvgTransformFromMatrix = Symbol("dartx.createSvgTransformFromMatrix");
var $deselectAll = dartx.deselectAll = Symbol("dartx.deselectAll");
var $forceRedraw = dartx.forceRedraw = Symbol("dartx.forceRedraw");
var $getEnclosureList = dartx.getEnclosureList = Symbol("dartx.getEnclosureList");
var $getIntersectionList = dartx.getIntersectionList = Symbol("dartx.getIntersectionList");
var $pauseAnimations = dartx.pauseAnimations = Symbol("dartx.pauseAnimations");
var $setCurrentTime = dartx.setCurrentTime = Symbol("dartx.setCurrentTime");
var $suspendRedraw = dartx.suspendRedraw = Symbol("dartx.suspendRedraw");
var $unpauseAnimations = dartx.unpauseAnimations = Symbol("dartx.unpauseAnimations");
var $unsuspendRedraw = dartx.unsuspendRedraw = Symbol("dartx.unsuspendRedraw");
var $unsuspendRedrawAll = dartx.unsuspendRedrawAll = Symbol("dartx.unsuspendRedrawAll");
var $zoomAndPan = dartx.zoomAndPan = Symbol("dartx.zoomAndPan");
var $lengthAdjust = dartx.lengthAdjust = Symbol("dartx.lengthAdjust");
var $getCharNumAtPosition = dartx.getCharNumAtPosition = Symbol("dartx.getCharNumAtPosition");
var $getComputedTextLength = dartx.getComputedTextLength = Symbol("dartx.getComputedTextLength");
var $getEndPositionOfChar = dartx.getEndPositionOfChar = Symbol("dartx.getEndPositionOfChar");
var $getExtentOfChar = dartx.getExtentOfChar = Symbol("dartx.getExtentOfChar");
var $getNumberOfChars = dartx.getNumberOfChars = Symbol("dartx.getNumberOfChars");
var $getRotationOfChar = dartx.getRotationOfChar = Symbol("dartx.getRotationOfChar");
var $getStartPositionOfChar = dartx.getStartPositionOfChar = Symbol("dartx.getStartPositionOfChar");
var $getSubStringLength = dartx.getSubStringLength = Symbol("dartx.getSubStringLength");
var $selectSubString = dartx.selectSubString = Symbol("dartx.selectSubString");
var $spacing = dartx.spacing = Symbol("dartx.spacing");
var $setMatrix = dartx.setMatrix = Symbol("dartx.setMatrix");
var $setRotate = dartx.setRotate = Symbol("dartx.setRotate");
var $setScale = dartx.setScale = Symbol("dartx.setScale");
var $setSkewX = dartx.setSkewX = Symbol("dartx.setSkewX");
var $setSkewY = dartx.setSkewY = Symbol("dartx.setSkewY");
var $setTranslate = dartx.setTranslate = Symbol("dartx.setTranslate");
var $consolidate = dartx.consolidate = Symbol("dartx.consolidate");
var $fftSize = dartx.fftSize = Symbol("dartx.fftSize");
var $frequencyBinCount = dartx.frequencyBinCount = Symbol("dartx.frequencyBinCount");
var $maxDecibels = dartx.maxDecibels = Symbol("dartx.maxDecibels");
var $minDecibels = dartx.minDecibels = Symbol("dartx.minDecibels");
var $smoothingTimeConstant = dartx.smoothingTimeConstant = Symbol("dartx.smoothingTimeConstant");
var $getByteFrequencyData = dartx.getByteFrequencyData = Symbol("dartx.getByteFrequencyData");
var $getByteTimeDomainData = dartx.getByteTimeDomainData = Symbol("dartx.getByteTimeDomainData");
var $getFloatFrequencyData = dartx.getFloatFrequencyData = Symbol("dartx.getFloatFrequencyData");
var $getFloatTimeDomainData = dartx.getFloatTimeDomainData = Symbol("dartx.getFloatTimeDomainData");
var $channelCount = dartx.channelCount = Symbol("dartx.channelCount");
var $channelCountMode = dartx.channelCountMode = Symbol("dartx.channelCountMode");
var $channelInterpretation = dartx.channelInterpretation = Symbol("dartx.channelInterpretation");
var $context = dartx.context = Symbol("dartx.context");
var $numberOfInputs = dartx.numberOfInputs = Symbol("dartx.numberOfInputs");
var $numberOfOutputs = dartx.numberOfOutputs = Symbol("dartx.numberOfOutputs");
var $connectNode = dartx.connectNode = Symbol("dartx.connectNode");
var $connectParam = dartx.connectParam = Symbol("dartx.connectParam");
var $numberOfChannels = dartx.numberOfChannels = Symbol("dartx.numberOfChannels");
var $sampleRate = dartx.sampleRate = Symbol("dartx.sampleRate");
var $copyFromChannel = dartx.copyFromChannel = Symbol("dartx.copyFromChannel");
var $copyToChannel = dartx.copyToChannel = Symbol("dartx.copyToChannel");
var $getChannelData = dartx.getChannelData = Symbol("dartx.getChannelData");
var $detune = dartx.detune = Symbol("dartx.detune");
var $loopEnd = dartx.loopEnd = Symbol("dartx.loopEnd");
var $loopStart = dartx.loopStart = Symbol("dartx.loopStart");
var $start2 = dartx.start2 = Symbol("dartx.start2");
var $baseLatency = dartx.baseLatency = Symbol("dartx.baseLatency");
var $getOutputTimestamp = dartx.getOutputTimestamp = Symbol("dartx.getOutputTimestamp");
var $suspend = dartx.suspend = Symbol("dartx.suspend");
var $createGain = dartx.createGain = Symbol("dartx.createGain");
var $createScriptProcessor = dartx.createScriptProcessor = Symbol("dartx.createScriptProcessor");
var $decodeAudioData = dartx.decodeAudioData = Symbol("dartx.decodeAudioData");
var $destination = dartx.destination = Symbol("dartx.destination");
var $listener = dartx.listener = Symbol("dartx.listener");
var $createAnalyser = dartx.createAnalyser = Symbol("dartx.createAnalyser");
var $createBiquadFilter = dartx.createBiquadFilter = Symbol("dartx.createBiquadFilter");
var $createBuffer = dartx.createBuffer = Symbol("dartx.createBuffer");
var $createBufferSource = dartx.createBufferSource = Symbol("dartx.createBufferSource");
var $createChannelMerger = dartx.createChannelMerger = Symbol("dartx.createChannelMerger");
var $createChannelSplitter = dartx.createChannelSplitter = Symbol("dartx.createChannelSplitter");
var $createConstantSource = dartx.createConstantSource = Symbol("dartx.createConstantSource");
var $createConvolver = dartx.createConvolver = Symbol("dartx.createConvolver");
var $createDelay = dartx.createDelay = Symbol("dartx.createDelay");
var $createDynamicsCompressor = dartx.createDynamicsCompressor = Symbol("dartx.createDynamicsCompressor");
var $createIirFilter = dartx.createIirFilter = Symbol("dartx.createIirFilter");
var $createMediaElementSource = dartx.createMediaElementSource = Symbol("dartx.createMediaElementSource");
var $createMediaStreamDestination = dartx.createMediaStreamDestination = Symbol("dartx.createMediaStreamDestination");
var $createMediaStreamSource = dartx.createMediaStreamSource = Symbol("dartx.createMediaStreamSource");
var $createOscillator = dartx.createOscillator = Symbol("dartx.createOscillator");
var $createPanner = dartx.createPanner = Symbol("dartx.createPanner");
var $createPeriodicWave = dartx.createPeriodicWave = Symbol("dartx.createPeriodicWave");
var $createStereoPanner = dartx.createStereoPanner = Symbol("dartx.createStereoPanner");
var $createWaveShaper = dartx.createWaveShaper = Symbol("dartx.createWaveShaper");
var $maxChannelCount = dartx.maxChannelCount = Symbol("dartx.maxChannelCount");
var $forwardX = dartx.forwardX = Symbol("dartx.forwardX");
var $forwardY = dartx.forwardY = Symbol("dartx.forwardY");
var $forwardZ = dartx.forwardZ = Symbol("dartx.forwardZ");
var $positionZ = dartx.positionZ = Symbol("dartx.positionZ");
var $upX = dartx.upX = Symbol("dartx.upX");
var $upY = dartx.upY = Symbol("dartx.upY");
var $upZ = dartx.upZ = Symbol("dartx.upZ");
var $setOrientation = dartx.setOrientation = Symbol("dartx.setOrientation");
var $maxValue = dartx.maxValue = Symbol("dartx.maxValue");
var $minValue = dartx.minValue = Symbol("dartx.minValue");
var $cancelAndHoldAtTime = dartx.cancelAndHoldAtTime = Symbol("dartx.cancelAndHoldAtTime");
var $cancelScheduledValues = dartx.cancelScheduledValues = Symbol("dartx.cancelScheduledValues");
var $exponentialRampToValueAtTime = dartx.exponentialRampToValueAtTime = Symbol("dartx.exponentialRampToValueAtTime");
var $linearRampToValueAtTime = dartx.linearRampToValueAtTime = Symbol("dartx.linearRampToValueAtTime");
var $setTargetAtTime = dartx.setTargetAtTime = Symbol("dartx.setTargetAtTime");
var $setValueAtTime = dartx.setValueAtTime = Symbol("dartx.setValueAtTime");
var $setValueCurveAtTime = dartx.setValueCurveAtTime = Symbol("dartx.setValueCurveAtTime");
var $inputBuffer = dartx.inputBuffer = Symbol("dartx.inputBuffer");
var $outputBuffer = dartx.outputBuffer = Symbol("dartx.outputBuffer");
var $playbackTime = dartx.playbackTime = Symbol("dartx.playbackTime");
var $registerProcessor = dartx.registerProcessor = Symbol("dartx.registerProcessor");
var $parameters = dartx.parameters = Symbol("dartx.parameters");
var $Q = dartx.Q = Symbol("dartx.Q");
var $frequency = dartx.frequency = Symbol("dartx.frequency");
var $gain = dartx.gain = Symbol("dartx.gain");
var $getFrequencyResponse = dartx.getFrequencyResponse = Symbol("dartx.getFrequencyResponse");
var $normalize = dartx.normalize = Symbol("dartx.normalize");
var $delayTime = dartx.delayTime = Symbol("dartx.delayTime");
var $attack = dartx.attack = Symbol("dartx.attack");
var $knee = dartx.knee = Symbol("dartx.knee");
var $ratio = dartx.ratio = Symbol("dartx.ratio");
var $reduction = dartx.reduction = Symbol("dartx.reduction");
var $release = dartx.release = Symbol("dartx.release");
var $threshold = dartx.threshold = Symbol("dartx.threshold");
var $mediaElement = dartx.mediaElement = Symbol("dartx.mediaElement");
var $mediaStream = dartx.mediaStream = Symbol("dartx.mediaStream");
var $renderedBuffer = dartx.renderedBuffer = Symbol("dartx.renderedBuffer");
var $startRendering = dartx.startRendering = Symbol("dartx.startRendering");
var $suspendFor = dartx.suspendFor = Symbol("dartx.suspendFor");
var $setPeriodicWave = dartx.setPeriodicWave = Symbol("dartx.setPeriodicWave");
var $coneInnerAngle = dartx.coneInnerAngle = Symbol("dartx.coneInnerAngle");
var $coneOuterAngle = dartx.coneOuterAngle = Symbol("dartx.coneOuterAngle");
var $coneOuterGain = dartx.coneOuterGain = Symbol("dartx.coneOuterGain");
var $distanceModel = dartx.distanceModel = Symbol("dartx.distanceModel");
var $maxDistance = dartx.maxDistance = Symbol("dartx.maxDistance");
var $orientationX = dartx.orientationX = Symbol("dartx.orientationX");
var $orientationY = dartx.orientationY = Symbol("dartx.orientationY");
var $orientationZ = dartx.orientationZ = Symbol("dartx.orientationZ");
var $panningModel = dartx.panningModel = Symbol("dartx.panningModel");
var $refDistance = dartx.refDistance = Symbol("dartx.refDistance");
var $rolloffFactor = dartx.rolloffFactor = Symbol("dartx.rolloffFactor");
var $bufferSize = dartx.bufferSize = Symbol("dartx.bufferSize");
var $setEventListener = dartx.setEventListener = Symbol("dartx.setEventListener");
var $onAudioProcess = dartx.onAudioProcess = Symbol("dartx.onAudioProcess");
var $pan = dartx.pan = Symbol("dartx.pan");
var $curve = dartx.curve = Symbol("dartx.curve");
var $oversample = dartx.oversample = Symbol("dartx.oversample");
var $drawArraysInstancedAngle = dartx.drawArraysInstancedAngle = Symbol("dartx.drawArraysInstancedAngle");
var $drawElementsInstancedAngle = dartx.drawElementsInstancedAngle = Symbol("dartx.drawElementsInstancedAngle");
var $vertexAttribDivisorAngle = dartx.vertexAttribDivisorAngle = Symbol("dartx.vertexAttribDivisorAngle");
var $offscreenCanvas = dartx.offscreenCanvas = Symbol("dartx.offscreenCanvas");
var $statusMessage = dartx.statusMessage = Symbol("dartx.statusMessage");
var $getTranslatedShaderSource = dartx.getTranslatedShaderSource = Symbol("dartx.getTranslatedShaderSource");
var $drawBuffersWebgl = dartx.drawBuffersWebgl = Symbol("dartx.drawBuffersWebgl");
var $beginQueryExt = dartx.beginQueryExt = Symbol("dartx.beginQueryExt");
var $createQueryExt = dartx.createQueryExt = Symbol("dartx.createQueryExt");
var $deleteQueryExt = dartx.deleteQueryExt = Symbol("dartx.deleteQueryExt");
var $endQueryExt = dartx.endQueryExt = Symbol("dartx.endQueryExt");
var $getQueryExt = dartx.getQueryExt = Symbol("dartx.getQueryExt");
var $getQueryObjectExt = dartx.getQueryObjectExt = Symbol("dartx.getQueryObjectExt");
var $isQueryExt = dartx.isQueryExt = Symbol("dartx.isQueryExt");
var $queryCounterExt = dartx.queryCounterExt = Symbol("dartx.queryCounterExt");
var $getBufferSubDataAsync = dartx.getBufferSubDataAsync = Symbol("dartx.getBufferSubDataAsync");
var $loseContext = dartx.loseContext = Symbol("dartx.loseContext");
var $restoreContext = dartx.restoreContext = Symbol("dartx.restoreContext");
var $bindVertexArray = dartx.bindVertexArray = Symbol("dartx.bindVertexArray");
var $createVertexArray = dartx.createVertexArray = Symbol("dartx.createVertexArray");
var $deleteVertexArray = dartx.deleteVertexArray = Symbol("dartx.deleteVertexArray");
var $isVertexArray = dartx.isVertexArray = Symbol("dartx.isVertexArray");
var $drawingBufferHeight = dartx.drawingBufferHeight = Symbol("dartx.drawingBufferHeight");
var $drawingBufferWidth = dartx.drawingBufferWidth = Symbol("dartx.drawingBufferWidth");
var $activeTexture = dartx.activeTexture = Symbol("dartx.activeTexture");
var $attachShader = dartx.attachShader = Symbol("dartx.attachShader");
var $bindAttribLocation = dartx.bindAttribLocation = Symbol("dartx.bindAttribLocation");
var $bindBuffer = dartx.bindBuffer = Symbol("dartx.bindBuffer");
var $bindFramebuffer = dartx.bindFramebuffer = Symbol("dartx.bindFramebuffer");
var $bindRenderbuffer = dartx.bindRenderbuffer = Symbol("dartx.bindRenderbuffer");
var $bindTexture = dartx.bindTexture = Symbol("dartx.bindTexture");
var $blendColor = dartx.blendColor = Symbol("dartx.blendColor");
var $blendEquation = dartx.blendEquation = Symbol("dartx.blendEquation");
var $blendEquationSeparate = dartx.blendEquationSeparate = Symbol("dartx.blendEquationSeparate");
var $blendFunc = dartx.blendFunc = Symbol("dartx.blendFunc");
var $blendFuncSeparate = dartx.blendFuncSeparate = Symbol("dartx.blendFuncSeparate");
var $bufferData = dartx.bufferData = Symbol("dartx.bufferData");
var $bufferSubData = dartx.bufferSubData = Symbol("dartx.bufferSubData");
var $checkFramebufferStatus = dartx.checkFramebufferStatus = Symbol("dartx.checkFramebufferStatus");
var $clearColor = dartx.clearColor = Symbol("dartx.clearColor");
var $clearDepth = dartx.clearDepth = Symbol("dartx.clearDepth");
var $clearStencil = dartx.clearStencil = Symbol("dartx.clearStencil");
var $colorMask = dartx.colorMask = Symbol("dartx.colorMask");
var $compileShader = dartx.compileShader = Symbol("dartx.compileShader");
var $compressedTexImage2D = dartx.compressedTexImage2D = Symbol("dartx.compressedTexImage2D");
var $compressedTexSubImage2D = dartx.compressedTexSubImage2D = Symbol("dartx.compressedTexSubImage2D");
var $copyTexImage2D = dartx.copyTexImage2D = Symbol("dartx.copyTexImage2D");
var $copyTexSubImage2D = dartx.copyTexSubImage2D = Symbol("dartx.copyTexSubImage2D");
var $createFramebuffer = dartx.createFramebuffer = Symbol("dartx.createFramebuffer");
var $createProgram = dartx.createProgram = Symbol("dartx.createProgram");
var $createRenderbuffer = dartx.createRenderbuffer = Symbol("dartx.createRenderbuffer");
var $createShader = dartx.createShader = Symbol("dartx.createShader");
var $createTexture = dartx.createTexture = Symbol("dartx.createTexture");
var $cullFace = dartx.cullFace = Symbol("dartx.cullFace");
var $deleteBuffer = dartx.deleteBuffer = Symbol("dartx.deleteBuffer");
var $deleteFramebuffer = dartx.deleteFramebuffer = Symbol("dartx.deleteFramebuffer");
var $deleteProgram = dartx.deleteProgram = Symbol("dartx.deleteProgram");
var $deleteRenderbuffer = dartx.deleteRenderbuffer = Symbol("dartx.deleteRenderbuffer");
var $deleteShader = dartx.deleteShader = Symbol("dartx.deleteShader");
var $deleteTexture = dartx.deleteTexture = Symbol("dartx.deleteTexture");
var $depthFunc = dartx.depthFunc = Symbol("dartx.depthFunc");
var $depthMask = dartx.depthMask = Symbol("dartx.depthMask");
var $depthRange = dartx.depthRange = Symbol("dartx.depthRange");
var $detachShader = dartx.detachShader = Symbol("dartx.detachShader");
var $disableVertexAttribArray = dartx.disableVertexAttribArray = Symbol("dartx.disableVertexAttribArray");
var $drawArrays = dartx.drawArrays = Symbol("dartx.drawArrays");
var $drawElements = dartx.drawElements = Symbol("dartx.drawElements");
var $enableVertexAttribArray = dartx.enableVertexAttribArray = Symbol("dartx.enableVertexAttribArray");
var $flush = dartx.flush = Symbol("dartx.flush");
var $framebufferRenderbuffer = dartx.framebufferRenderbuffer = Symbol("dartx.framebufferRenderbuffer");
var $framebufferTexture2D = dartx.framebufferTexture2D = Symbol("dartx.framebufferTexture2D");
var $frontFace = dartx.frontFace = Symbol("dartx.frontFace");
var $generateMipmap = dartx.generateMipmap = Symbol("dartx.generateMipmap");
var $getActiveAttrib = dartx.getActiveAttrib = Symbol("dartx.getActiveAttrib");
var $getActiveUniform = dartx.getActiveUniform = Symbol("dartx.getActiveUniform");
var $getAttachedShaders = dartx.getAttachedShaders = Symbol("dartx.getAttachedShaders");
var $getAttribLocation = dartx.getAttribLocation = Symbol("dartx.getAttribLocation");
var $getBufferParameter = dartx.getBufferParameter = Symbol("dartx.getBufferParameter");
var $getError = dartx.getError = Symbol("dartx.getError");
var $getExtension = dartx.getExtension = Symbol("dartx.getExtension");
var $getFramebufferAttachmentParameter = dartx.getFramebufferAttachmentParameter = Symbol("dartx.getFramebufferAttachmentParameter");
var $getProgramInfoLog = dartx.getProgramInfoLog = Symbol("dartx.getProgramInfoLog");
var $getProgramParameter = dartx.getProgramParameter = Symbol("dartx.getProgramParameter");
var $getRenderbufferParameter = dartx.getRenderbufferParameter = Symbol("dartx.getRenderbufferParameter");
var $getShaderInfoLog = dartx.getShaderInfoLog = Symbol("dartx.getShaderInfoLog");
var $getShaderParameter = dartx.getShaderParameter = Symbol("dartx.getShaderParameter");
var $getShaderPrecisionFormat = dartx.getShaderPrecisionFormat = Symbol("dartx.getShaderPrecisionFormat");
var $getShaderSource = dartx.getShaderSource = Symbol("dartx.getShaderSource");
var $getSupportedExtensions = dartx.getSupportedExtensions = Symbol("dartx.getSupportedExtensions");
var $getTexParameter = dartx.getTexParameter = Symbol("dartx.getTexParameter");
var $getUniform = dartx.getUniform = Symbol("dartx.getUniform");
var $getUniformLocation = dartx.getUniformLocation = Symbol("dartx.getUniformLocation");
var $getVertexAttrib = dartx.getVertexAttrib = Symbol("dartx.getVertexAttrib");
var $getVertexAttribOffset = dartx.getVertexAttribOffset = Symbol("dartx.getVertexAttribOffset");
var $hint = dartx.hint = Symbol("dartx.hint");
var $isBuffer = dartx.isBuffer = Symbol("dartx.isBuffer");
var $isEnabled = dartx.isEnabled = Symbol("dartx.isEnabled");
var $isFramebuffer = dartx.isFramebuffer = Symbol("dartx.isFramebuffer");
var $isProgram = dartx.isProgram = Symbol("dartx.isProgram");
var $isRenderbuffer = dartx.isRenderbuffer = Symbol("dartx.isRenderbuffer");
var $isShader = dartx.isShader = Symbol("dartx.isShader");
var $isTexture = dartx.isTexture = Symbol("dartx.isTexture");
var $linkProgram = dartx.linkProgram = Symbol("dartx.linkProgram");
var $pixelStorei = dartx.pixelStorei = Symbol("dartx.pixelStorei");
var $polygonOffset = dartx.polygonOffset = Symbol("dartx.polygonOffset");
var $renderbufferStorage = dartx.renderbufferStorage = Symbol("dartx.renderbufferStorage");
var $sampleCoverage = dartx.sampleCoverage = Symbol("dartx.sampleCoverage");
var $scissor = dartx.scissor = Symbol("dartx.scissor");
var $shaderSource = dartx.shaderSource = Symbol("dartx.shaderSource");
var $stencilFunc = dartx.stencilFunc = Symbol("dartx.stencilFunc");
var $stencilFuncSeparate = dartx.stencilFuncSeparate = Symbol("dartx.stencilFuncSeparate");
var $stencilMask = dartx.stencilMask = Symbol("dartx.stencilMask");
var $stencilMaskSeparate = dartx.stencilMaskSeparate = Symbol("dartx.stencilMaskSeparate");
var $stencilOp = dartx.stencilOp = Symbol("dartx.stencilOp");
var $stencilOpSeparate = dartx.stencilOpSeparate = Symbol("dartx.stencilOpSeparate");
var $texImage2D = dartx.texImage2D = Symbol("dartx.texImage2D");
var $texParameterf = dartx.texParameterf = Symbol("dartx.texParameterf");
var $texParameteri = dartx.texParameteri = Symbol("dartx.texParameteri");
var $texSubImage2D = dartx.texSubImage2D = Symbol("dartx.texSubImage2D");
var $uniform1f = dartx.uniform1f = Symbol("dartx.uniform1f");
var $uniform1fv = dartx.uniform1fv = Symbol("dartx.uniform1fv");
var $uniform1i = dartx.uniform1i = Symbol("dartx.uniform1i");
var $uniform1iv = dartx.uniform1iv = Symbol("dartx.uniform1iv");
var $uniform2f = dartx.uniform2f = Symbol("dartx.uniform2f");
var $uniform2fv = dartx.uniform2fv = Symbol("dartx.uniform2fv");
var $uniform2i = dartx.uniform2i = Symbol("dartx.uniform2i");
var $uniform2iv = dartx.uniform2iv = Symbol("dartx.uniform2iv");
var $uniform3f = dartx.uniform3f = Symbol("dartx.uniform3f");
var $uniform3fv = dartx.uniform3fv = Symbol("dartx.uniform3fv");
var $uniform3i = dartx.uniform3i = Symbol("dartx.uniform3i");
var $uniform3iv = dartx.uniform3iv = Symbol("dartx.uniform3iv");
var $uniform4f = dartx.uniform4f = Symbol("dartx.uniform4f");
var $uniform4fv = dartx.uniform4fv = Symbol("dartx.uniform4fv");
var $uniform4i = dartx.uniform4i = Symbol("dartx.uniform4i");
var $uniform4iv = dartx.uniform4iv = Symbol("dartx.uniform4iv");
var $uniformMatrix2fv = dartx.uniformMatrix2fv = Symbol("dartx.uniformMatrix2fv");
var $uniformMatrix3fv = dartx.uniformMatrix3fv = Symbol("dartx.uniformMatrix3fv");
var $uniformMatrix4fv = dartx.uniformMatrix4fv = Symbol("dartx.uniformMatrix4fv");
var $useProgram = dartx.useProgram = Symbol("dartx.useProgram");
var $validateProgram = dartx.validateProgram = Symbol("dartx.validateProgram");
var $vertexAttrib1f = dartx.vertexAttrib1f = Symbol("dartx.vertexAttrib1f");
var $vertexAttrib1fv = dartx.vertexAttrib1fv = Symbol("dartx.vertexAttrib1fv");
var $vertexAttrib2f = dartx.vertexAttrib2f = Symbol("dartx.vertexAttrib2f");
var $vertexAttrib2fv = dartx.vertexAttrib2fv = Symbol("dartx.vertexAttrib2fv");
var $vertexAttrib3f = dartx.vertexAttrib3f = Symbol("dartx.vertexAttrib3f");
var $vertexAttrib3fv = dartx.vertexAttrib3fv = Symbol("dartx.vertexAttrib3fv");
var $vertexAttrib4f = dartx.vertexAttrib4f = Symbol("dartx.vertexAttrib4f");
var $vertexAttrib4fv = dartx.vertexAttrib4fv = Symbol("dartx.vertexAttrib4fv");
var $vertexAttribPointer = dartx.vertexAttribPointer = Symbol("dartx.vertexAttribPointer");
var $viewport = dartx.viewport = Symbol("dartx.viewport");
var $readPixels = dartx.readPixels = Symbol("dartx.readPixels");
var $texImage2DUntyped = dartx.texImage2DUntyped = Symbol("dartx.texImage2DUntyped");
var $texImage2DTyped = dartx.texImage2DTyped = Symbol("dartx.texImage2DTyped");
var $texSubImage2DUntyped = dartx.texSubImage2DUntyped = Symbol("dartx.texSubImage2DUntyped");
var $texSubImage2DTyped = dartx.texSubImage2DTyped = Symbol("dartx.texSubImage2DTyped");
var $bufferDataTyped = dartx.bufferDataTyped = Symbol("dartx.bufferDataTyped");
var $bufferSubDataTyped = dartx.bufferSubDataTyped = Symbol("dartx.bufferSubDataTyped");
var $beginQuery = dartx.beginQuery = Symbol("dartx.beginQuery");
var $beginTransformFeedback = dartx.beginTransformFeedback = Symbol("dartx.beginTransformFeedback");
var $bindBufferBase = dartx.bindBufferBase = Symbol("dartx.bindBufferBase");
var $bindBufferRange = dartx.bindBufferRange = Symbol("dartx.bindBufferRange");
var $bindSampler = dartx.bindSampler = Symbol("dartx.bindSampler");
var $bindTransformFeedback = dartx.bindTransformFeedback = Symbol("dartx.bindTransformFeedback");
var $blitFramebuffer = dartx.blitFramebuffer = Symbol("dartx.blitFramebuffer");
var $bufferData2 = dartx.bufferData2 = Symbol("dartx.bufferData2");
var $bufferSubData2 = dartx.bufferSubData2 = Symbol("dartx.bufferSubData2");
var $clearBufferfi = dartx.clearBufferfi = Symbol("dartx.clearBufferfi");
var $clearBufferfv = dartx.clearBufferfv = Symbol("dartx.clearBufferfv");
var $clearBufferiv = dartx.clearBufferiv = Symbol("dartx.clearBufferiv");
var $clearBufferuiv = dartx.clearBufferuiv = Symbol("dartx.clearBufferuiv");
var $clientWaitSync = dartx.clientWaitSync = Symbol("dartx.clientWaitSync");
var $compressedTexImage2D2 = dartx.compressedTexImage2D2 = Symbol("dartx.compressedTexImage2D2");
var $compressedTexImage2D3 = dartx.compressedTexImage2D3 = Symbol("dartx.compressedTexImage2D3");
var $compressedTexImage3D = dartx.compressedTexImage3D = Symbol("dartx.compressedTexImage3D");
var $compressedTexImage3D2 = dartx.compressedTexImage3D2 = Symbol("dartx.compressedTexImage3D2");
var $compressedTexSubImage2D2 = dartx.compressedTexSubImage2D2 = Symbol("dartx.compressedTexSubImage2D2");
var $compressedTexSubImage2D3 = dartx.compressedTexSubImage2D3 = Symbol("dartx.compressedTexSubImage2D3");
var $compressedTexSubImage3D = dartx.compressedTexSubImage3D = Symbol("dartx.compressedTexSubImage3D");
var $compressedTexSubImage3D2 = dartx.compressedTexSubImage3D2 = Symbol("dartx.compressedTexSubImage3D2");
var $copyBufferSubData = dartx.copyBufferSubData = Symbol("dartx.copyBufferSubData");
var $copyTexSubImage3D = dartx.copyTexSubImage3D = Symbol("dartx.copyTexSubImage3D");
var $createQuery = dartx.createQuery = Symbol("dartx.createQuery");
var $createSampler = dartx.createSampler = Symbol("dartx.createSampler");
var $createTransformFeedback = dartx.createTransformFeedback = Symbol("dartx.createTransformFeedback");
var $deleteQuery = dartx.deleteQuery = Symbol("dartx.deleteQuery");
var $deleteSampler = dartx.deleteSampler = Symbol("dartx.deleteSampler");
var $deleteSync = dartx.deleteSync = Symbol("dartx.deleteSync");
var $deleteTransformFeedback = dartx.deleteTransformFeedback = Symbol("dartx.deleteTransformFeedback");
var $drawArraysInstanced = dartx.drawArraysInstanced = Symbol("dartx.drawArraysInstanced");
var $drawBuffers = dartx.drawBuffers = Symbol("dartx.drawBuffers");
var $drawElementsInstanced = dartx.drawElementsInstanced = Symbol("dartx.drawElementsInstanced");
var $drawRangeElements = dartx.drawRangeElements = Symbol("dartx.drawRangeElements");
var $endQuery = dartx.endQuery = Symbol("dartx.endQuery");
var $endTransformFeedback = dartx.endTransformFeedback = Symbol("dartx.endTransformFeedback");
var $fenceSync = dartx.fenceSync = Symbol("dartx.fenceSync");
var $framebufferTextureLayer = dartx.framebufferTextureLayer = Symbol("dartx.framebufferTextureLayer");
var $getActiveUniformBlockName = dartx.getActiveUniformBlockName = Symbol("dartx.getActiveUniformBlockName");
var $getActiveUniformBlockParameter = dartx.getActiveUniformBlockParameter = Symbol("dartx.getActiveUniformBlockParameter");
var $getActiveUniforms = dartx.getActiveUniforms = Symbol("dartx.getActiveUniforms");
var $getBufferSubData = dartx.getBufferSubData = Symbol("dartx.getBufferSubData");
var $getFragDataLocation = dartx.getFragDataLocation = Symbol("dartx.getFragDataLocation");
var $getIndexedParameter = dartx.getIndexedParameter = Symbol("dartx.getIndexedParameter");
var $getInternalformatParameter = dartx.getInternalformatParameter = Symbol("dartx.getInternalformatParameter");
var $getQuery = dartx.getQuery = Symbol("dartx.getQuery");
var $getQueryParameter = dartx.getQueryParameter = Symbol("dartx.getQueryParameter");
var $getSamplerParameter = dartx.getSamplerParameter = Symbol("dartx.getSamplerParameter");
var $getSyncParameter = dartx.getSyncParameter = Symbol("dartx.getSyncParameter");
var $getTransformFeedbackVarying = dartx.getTransformFeedbackVarying = Symbol("dartx.getTransformFeedbackVarying");
var $getUniformBlockIndex = dartx.getUniformBlockIndex = Symbol("dartx.getUniformBlockIndex");
var $getUniformIndices = dartx.getUniformIndices = Symbol("dartx.getUniformIndices");
var $invalidateFramebuffer = dartx.invalidateFramebuffer = Symbol("dartx.invalidateFramebuffer");
var $invalidateSubFramebuffer = dartx.invalidateSubFramebuffer = Symbol("dartx.invalidateSubFramebuffer");
var $isQuery = dartx.isQuery = Symbol("dartx.isQuery");
var $isSampler = dartx.isSampler = Symbol("dartx.isSampler");
var $isSync = dartx.isSync = Symbol("dartx.isSync");
var $isTransformFeedback = dartx.isTransformFeedback = Symbol("dartx.isTransformFeedback");
var $pauseTransformFeedback = dartx.pauseTransformFeedback = Symbol("dartx.pauseTransformFeedback");
var $readBuffer = dartx.readBuffer = Symbol("dartx.readBuffer");
var $readPixels2 = dartx.readPixels2 = Symbol("dartx.readPixels2");
var $renderbufferStorageMultisample = dartx.renderbufferStorageMultisample = Symbol("dartx.renderbufferStorageMultisample");
var $resumeTransformFeedback = dartx.resumeTransformFeedback = Symbol("dartx.resumeTransformFeedback");
var $samplerParameterf = dartx.samplerParameterf = Symbol("dartx.samplerParameterf");
var $samplerParameteri = dartx.samplerParameteri = Symbol("dartx.samplerParameteri");
var $texImage2D2 = dartx.texImage2D2 = Symbol("dartx.texImage2D2");
var $texImage3D = dartx.texImage3D = Symbol("dartx.texImage3D");
var $texStorage2D = dartx.texStorage2D = Symbol("dartx.texStorage2D");
var $texStorage3D = dartx.texStorage3D = Symbol("dartx.texStorage3D");
var $texSubImage2D2 = dartx.texSubImage2D2 = Symbol("dartx.texSubImage2D2");
var $texSubImage3D = dartx.texSubImage3D = Symbol("dartx.texSubImage3D");
var $transformFeedbackVaryings = dartx.transformFeedbackVaryings = Symbol("dartx.transformFeedbackVaryings");
var $uniform1fv2 = dartx.uniform1fv2 = Symbol("dartx.uniform1fv2");
var $uniform1iv2 = dartx.uniform1iv2 = Symbol("dartx.uniform1iv2");
var $uniform1ui = dartx.uniform1ui = Symbol("dartx.uniform1ui");
var $uniform1uiv = dartx.uniform1uiv = Symbol("dartx.uniform1uiv");
var $uniform2fv2 = dartx.uniform2fv2 = Symbol("dartx.uniform2fv2");
var $uniform2iv2 = dartx.uniform2iv2 = Symbol("dartx.uniform2iv2");
var $uniform2ui = dartx.uniform2ui = Symbol("dartx.uniform2ui");
var $uniform2uiv = dartx.uniform2uiv = Symbol("dartx.uniform2uiv");
var $uniform3fv2 = dartx.uniform3fv2 = Symbol("dartx.uniform3fv2");
var $uniform3iv2 = dartx.uniform3iv2 = Symbol("dartx.uniform3iv2");
var $uniform3ui = dartx.uniform3ui = Symbol("dartx.uniform3ui");
var $uniform3uiv = dartx.uniform3uiv = Symbol("dartx.uniform3uiv");
var $uniform4fv2 = dartx.uniform4fv2 = Symbol("dartx.uniform4fv2");
var $uniform4iv2 = dartx.uniform4iv2 = Symbol("dartx.uniform4iv2");
var $uniform4ui = dartx.uniform4ui = Symbol("dartx.uniform4ui");
var $uniform4uiv = dartx.uniform4uiv = Symbol("dartx.uniform4uiv");
var $uniformBlockBinding = dartx.uniformBlockBinding = Symbol("dartx.uniformBlockBinding");
var $uniformMatrix2fv2 = dartx.uniformMatrix2fv2 = Symbol("dartx.uniformMatrix2fv2");
var $uniformMatrix2x3fv = dartx.uniformMatrix2x3fv = Symbol("dartx.uniformMatrix2x3fv");
var $uniformMatrix2x4fv = dartx.uniformMatrix2x4fv = Symbol("dartx.uniformMatrix2x4fv");
var $uniformMatrix3fv2 = dartx.uniformMatrix3fv2 = Symbol("dartx.uniformMatrix3fv2");
var $uniformMatrix3x2fv = dartx.uniformMatrix3x2fv = Symbol("dartx.uniformMatrix3x2fv");
var $uniformMatrix3x4fv = dartx.uniformMatrix3x4fv = Symbol("dartx.uniformMatrix3x4fv");
var $uniformMatrix4fv2 = dartx.uniformMatrix4fv2 = Symbol("dartx.uniformMatrix4fv2");
var $uniformMatrix4x2fv = dartx.uniformMatrix4x2fv = Symbol("dartx.uniformMatrix4x2fv");
var $uniformMatrix4x3fv = dartx.uniformMatrix4x3fv = Symbol("dartx.uniformMatrix4x3fv");
var $vertexAttribDivisor = dartx.vertexAttribDivisor = Symbol("dartx.vertexAttribDivisor");
var $vertexAttribI4i = dartx.vertexAttribI4i = Symbol("dartx.vertexAttribI4i");
var $vertexAttribI4iv = dartx.vertexAttribI4iv = Symbol("dartx.vertexAttribI4iv");
var $vertexAttribI4ui = dartx.vertexAttribI4ui = Symbol("dartx.vertexAttribI4ui");
var $vertexAttribI4uiv = dartx.vertexAttribI4uiv = Symbol("dartx.vertexAttribI4uiv");
var $vertexAttribIPointer = dartx.vertexAttribIPointer = Symbol("dartx.vertexAttribIPointer");
var $waitSync = dartx.waitSync = Symbol("dartx.waitSync");
var $precision = dartx.precision = Symbol("dartx.precision");
var $rangeMax = dartx.rangeMax = Symbol("dartx.rangeMax");
var $rangeMin = dartx.rangeMin = Symbol("dartx.rangeMin");
var $lastUploadedVideoFrameWasSkipped = dartx.lastUploadedVideoFrameWasSkipped = Symbol("dartx.lastUploadedVideoFrameWasSkipped");
var $lastUploadedVideoHeight = dartx.lastUploadedVideoHeight = Symbol("dartx.lastUploadedVideoHeight");
var $lastUploadedVideoTimestamp = dartx.lastUploadedVideoTimestamp = Symbol("dartx.lastUploadedVideoTimestamp");
var $lastUploadedVideoWidth = dartx.lastUploadedVideoWidth = Symbol("dartx.lastUploadedVideoWidth");
var $changeVersion = dartx.changeVersion = Symbol("dartx.changeVersion");
var $readTransaction = dartx.readTransaction = Symbol("dartx.readTransaction");
var $transaction_future = dartx.transaction_future = Symbol("dartx.transaction_future");
var $insertId = dartx.insertId = Symbol("dartx.insertId");
var $rowsAffected = dartx.rowsAffected = Symbol("dartx.rowsAffected");
var $executeSql = dartx.executeSql = Symbol("dartx.executeSql");
var ListOfObjectL = () => (ListOfObjectL = dart.constFn(core.List$(core.Object)))();
var JSArrayOfStringL = () => (JSArrayOfStringL = dart.constFn(_interceptors.JSArray$(core.String)))();
var IdentityMapOfStringL$ObjectL = () => (IdentityMapOfStringL$ObjectL = dart.constFn(_js_helper.IdentityMap$(core.String, core.Object)))();
var ListOfStringL = () => (ListOfStringL = dart.constFn(core.List$(core.String)))();
var IdentityMapOfStringL$ListLOfStringL = () => (IdentityMapOfStringL$ListLOfStringL = dart.constFn(_js_helper.IdentityMap$(core.String, ListOfStringL())))();
var JSArrayOfTypeVariableL = () => (JSArrayOfTypeVariableL = dart.constFn(_interceptors.JSArray$(dart.TypeVariable)))();
var ExpandoOfFunctionL = () => (ExpandoOfFunctionL = dart.constFn(core.Expando$(core.Function)))();
var IdentityMapOfObjectL$intL = () => (IdentityMapOfObjectL$intL = dart.constFn(_js_helper.IdentityMap$(core.Object, core.int)))();
var IdentityMapOfTypeVariableL$ObjectL = () => (IdentityMapOfTypeVariableL$ObjectL = dart.constFn(_js_helper.IdentityMap$(dart.TypeVariable, core.Object)))();
var LinkedHashMapOfTypeVariableL$TypeConstraintL = () => (LinkedHashMapOfTypeVariableL$TypeConstraintL = dart.constFn(collection.LinkedHashMap$(dart.TypeVariable, dart.TypeConstraint)))();
var JSArrayOfObjectL = () => (JSArrayOfObjectL = dart.constFn(_interceptors.JSArray$(core.Object)))();
var ListOfTypeL = () => (ListOfTypeL = dart.constFn(core.List$(core.Type)))();
var MapOfSymbolL$dynamic = () => (MapOfSymbolL$dynamic = dart.constFn(core.Map$(core.Symbol, dart.dynamic)))();
var JSArrayOfNameValuePairL = () => (JSArrayOfNameValuePairL = dart.constFn(_interceptors.JSArray$(_debugger.NameValuePair)))();
var intLAnddynamicToNullN = () => (intLAnddynamicToNullN = dart.constFn(dart.fnType(core.Null, [core.int, dart.dynamic])))();
var JSArrayOfFormatterL = () => (JSArrayOfFormatterL = dart.constFn(_interceptors.JSArray$(_debugger.Formatter)))();
var _HashSetOfNameValuePairL = () => (_HashSetOfNameValuePairL = dart.constFn(collection._HashSet$(_debugger.NameValuePair)))();
var IdentityMapOfStringL$StringL = () => (IdentityMapOfStringL$StringL = dart.constFn(_js_helper.IdentityMap$(core.String, core.String)))();
var dynamicAnddynamicToNullN = () => (dynamicAnddynamicToNullN = dart.constFn(dart.fnType(core.Null, [dart.dynamic, dart.dynamic])))();
var dynamicToStringL = () => (dynamicToStringL = dart.constFn(dart.fnType(core.String, [dart.dynamic])))();
var ListOfNameValuePairL = () => (ListOfNameValuePairL = dart.constFn(core.List$(_debugger.NameValuePair)))();
var StringLToboolL = () => (StringLToboolL = dart.constFn(dart.fnType(core.bool, [core.String])))();
var VoidToNullN = () => (VoidToNullN = dart.constFn(dart.fnType(core.Null, [])))();
var StringLToNameValuePairL = () => (StringLToNameValuePairL = dart.constFn(dart.fnType(_debugger.NameValuePair, [core.String])))();
var NameValuePairLAndNameValuePairLTointL = () => (NameValuePairLAndNameValuePairLTointL = dart.constFn(dart.fnType(core.int, [_debugger.NameValuePair, _debugger.NameValuePair])))();
var LinkedHashMapOfdynamic$ObjectL = () => (LinkedHashMapOfdynamic$ObjectL = dart.constFn(collection.LinkedHashMap$(dart.dynamic, core.Object)))();
var dynamicTodynamic = () => (dynamicTodynamic = dart.constFn(dart.fnType(dart.dynamic, [dart.dynamic])))();
var dynamicToObjectL = () => (dynamicToObjectL = dart.constFn(dart.fnType(core.Object, [dart.dynamic])))();
var LinkedMapOfStringL$_MethodStatsL = () => (LinkedMapOfStringL$_MethodStatsL = dart.constFn(_js_helper.LinkedMap$(core.String, _debugger._MethodStats)))();
var VoidToStringL = () => (VoidToStringL = dart.constFn(dart.fnType(core.String, [])))();
var StringLToStringL = () => (StringLToStringL = dart.constFn(dart.fnType(core.String, [core.String])))();
var VoidTo_MethodStatsL = () => (VoidTo_MethodStatsL = dart.constFn(dart.fnType(_debugger._MethodStats, [])))();
var StringLAndStringLTointL = () => (StringLAndStringLTointL = dart.constFn(dart.fnType(core.int, [core.String, core.String])))();
var JSArrayOfListLOfObjectL = () => (JSArrayOfListLOfObjectL = dart.constFn(_interceptors.JSArray$(ListOfObjectL())))();
var JSArrayOf_CallMethodRecordL = () => (JSArrayOf_CallMethodRecordL = dart.constFn(_interceptors.JSArray$(_debugger._CallMethodRecord)))();
var LinkedMapOfStringL$StringL = () => (LinkedMapOfStringL$StringL = dart.constFn(_js_helper.LinkedMap$(core.String, core.String)))();
var dynamicAnddynamicTointL = () => (dynamicAnddynamicTointL = dart.constFn(dart.fnType(core.int, [dart.dynamic, dart.dynamic])))();
var dynamicToNullN = () => (dynamicToNullN = dart.constFn(dart.fnType(core.Null, [dart.dynamic])))();
var dynamicAndStackTraceLToNullN = () => (dynamicAndStackTraceLToNullN = dart.constFn(dart.fnType(core.Null, [dart.dynamic, core.StackTrace])))();
var VoidTovoid = () => (VoidTovoid = dart.constFn(dart.fnType(dart.void, [])))();
var TimerLToNullN = () => (TimerLToNullN = dart.constFn(dart.fnType(core.Null, [async.Timer])))();
var _FutureOfNullN = () => (_FutureOfNullN = dart.constFn(async._Future$(core.Null)))();
var VoidTo_FutureLOfNullN = () => (VoidTo_FutureLOfNullN = dart.constFn(dart.fnType(_FutureOfNullN(), [])))();
var FutureOfvoid = () => (FutureOfvoid = dart.constFn(async.Future$(dart.void)))();
var VoidToFutureLOfvoid = () => (VoidToFutureLOfvoid = dart.constFn(dart.fnType(FutureOfvoid(), [])))();
var dynamicToFutureL = () => (dynamicToFutureL = dart.constFn(dart.fnType(async.Future, [dart.dynamic])))();
var _FutureOfStringL = () => (_FutureOfStringL = dart.constFn(async._Future$(core.String)))();
var _FutureOfboolL = () => (_FutureOfboolL = dart.constFn(async._Future$(core.bool)))();
var VoidToboolL = () => (VoidToboolL = dart.constFn(dart.fnType(core.bool, [])))();
var boolLToNullN = () => (boolLToNullN = dart.constFn(dart.fnType(core.Null, [core.bool])))();
var _FutureOfintL = () => (_FutureOfintL = dart.constFn(async._Future$(core.int)))();
var dynamicAndStackTraceLTovoid = () => (dynamicAndStackTraceLTovoid = dart.constFn(dart.fnType(dart.void, [dart.dynamic, core.StackTrace])))();
var VoidToFutureL = () => (VoidToFutureL = dart.constFn(dart.fnType(async.Future, [])))();
var NullNAndNullNToLdynamic = () => (NullNAndNullNToLdynamic = dart.constFn(dart.fnType(dart.dynamic, [core.Null, core.Null])))();
var ObjectLAndStackTraceLToLdynamic = () => (ObjectLAndStackTraceLToLdynamic = dart.constFn(dart.fnType(dart.dynamic, [core.Object, core.StackTrace])))();
var ObjectLToLdynamic = () => (ObjectLToLdynamic = dart.constFn(dart.fnType(dart.dynamic, [core.Object])))();
var dynamicAndStackTraceLToLvoid = () => (dynamicAndStackTraceLToLvoid = dart.constFn(dart.fnType(dart.void, [dart.dynamic, core.StackTrace])))();
var dynamicToLvoid = () => (dynamicToLvoid = dart.constFn(dart.fnType(dart.void, [dart.dynamic])))();
var EventSinkLTo_ConverterStreamEventSinkL = () => (EventSinkLTo_ConverterStreamEventSinkL = dart.constFn(dart.fnType(convert._ConverterStreamEventSink, [async.EventSink])))();
var EmptyIteratorOfNullN = () => (EmptyIteratorOfNullN = dart.constFn(_internal.EmptyIterator$(core.Null)))();
var VoidTointL = () => (VoidTointL = dart.constFn(dart.fnType(core.int, [])))();
var JSArrayOfintL = () => (JSArrayOfintL = dart.constFn(_interceptors.JSArray$(core.int)))();
var VoidToLObjectL = () => (VoidToLObjectL = dart.constFn(dart.fnType(core.Object, [])))();
var SubListIterableOfStringL = () => (SubListIterableOfStringL = dart.constFn(_internal.SubListIterable$(core.String)))();
var EmptyIterableOfStringL = () => (EmptyIterableOfStringL = dart.constFn(_internal.EmptyIterable$(core.String)))();
var MatchLToStringL = () => (MatchLToStringL = dart.constFn(dart.fnType(core.String, [core.Match])))();
var IterableOfdoubleL = () => (IterableOfdoubleL = dart.constFn(core.Iterable$(core.double)))();
var IterableOfintL = () => (IterableOfintL = dart.constFn(core.Iterable$(core.int)))();
var ObjectLAndStackTraceLToNullN = () => (ObjectLAndStackTraceLToNullN = dart.constFn(dart.fnType(core.Null, [core.Object, core.StackTrace])))();
var ObjectLTovoid = () => (ObjectLTovoid = dart.constFn(dart.fnType(dart.void, [], [core.Object])))();
var ObjectLTovoid$ = () => (ObjectLTovoid$ = dart.constFn(dart.fnType(dart.void, [core.Object])))();
var ObjectLAndStackTraceLTovoid = () => (ObjectLAndStackTraceLTovoid = dart.constFn(dart.fnType(dart.void, [core.Object], [core.StackTrace])))();
var ObjectLAndStackTraceLToLvoid = () => (ObjectLAndStackTraceLToLvoid = dart.constFn(dart.fnType(dart.void, [core.Object, core.StackTrace])))();
var ObjectLToLvoid = () => (ObjectLToLvoid = dart.constFn(dart.fnType(dart.void, [core.Object])))();
var FutureOfNullN = () => (FutureOfNullN = dart.constFn(async.Future$(core.Null)))();
var dynamicToboolL = () => (dynamicToboolL = dart.constFn(dart.fnType(core.bool, [dart.dynamic])))();
var FutureOrOfboolL = () => (FutureOrOfboolL = dart.constFn(async.FutureOr$(core.bool)))();
var VoidToFutureOrLOfboolL = () => (VoidToFutureOrLOfboolL = dart.constFn(dart.fnType(FutureOrOfboolL(), [])))();
var FutureOfboolL = () => (FutureOfboolL = dart.constFn(async.Future$(core.bool)))();
var ObjectLToLboolL = () => (ObjectLToLboolL = dart.constFn(dart.fnType(core.bool, [core.Object])))();
var VoidToLdynamic = () => (VoidToLdynamic = dart.constFn(dart.fnType(dart.dynamic, [])))();
var _FutureListenerOfObjectL$ObjectL = () => (_FutureListenerOfObjectL$ObjectL = dart.constFn(async._FutureListener$(core.Object, core.Object)))();
var JSArrayOfFunctionL = () => (JSArrayOfFunctionL = dart.constFn(_interceptors.JSArray$(core.Function)))();
var dynamicAndStackTraceLToNullN$ = () => (dynamicAndStackTraceLToNullN$ = dart.constFn(dart.fnType(core.Null, [dart.dynamic], [core.StackTrace])))();
var dynamicTo_FutureL = () => (dynamicTo_FutureL = dart.constFn(dart.fnType(async._Future, [dart.dynamic])))();
var ZoneLAndZoneDelegateLAndZoneL__ToLAsyncErrorL = () => (ZoneLAndZoneDelegateLAndZoneL__ToLAsyncErrorL = dart.constFn(dart.fnType(async.AsyncError, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace])))();
var _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLAsyncErrorL = () => (_ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLAsyncErrorL = dart.constFn(async._ZoneFunction$(ZoneLAndZoneDelegateLAndZoneL__ToLAsyncErrorL())))();
var VoidToLvoid = () => (VoidToLvoid = dart.constFn(dart.fnType(dart.void, [])))();
var ZoneLAndZoneDelegateLAndZoneL__ToLvoid = () => (ZoneLAndZoneDelegateLAndZoneL__ToLvoid = dart.constFn(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, VoidToLvoid()])))();
var _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid = () => (_ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid = dart.constFn(async._ZoneFunction$(ZoneLAndZoneDelegateLAndZoneL__ToLvoid())))();
var ZoneLAndZoneDelegateLAndZoneL__ToLTimerL = () => (ZoneLAndZoneDelegateLAndZoneL__ToLTimerL = dart.constFn(dart.fnType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, VoidToLvoid()])))();
var _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLTimerL = () => (_ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLTimerL = dart.constFn(async._ZoneFunction$(ZoneLAndZoneDelegateLAndZoneL__ToLTimerL())))();
var TimerLToLvoid = () => (TimerLToLvoid = dart.constFn(dart.fnType(dart.void, [async.Timer])))();
var ZoneLAndZoneDelegateLAndZoneL__ToLTimerL$ = () => (ZoneLAndZoneDelegateLAndZoneL__ToLTimerL$ = dart.constFn(dart.fnType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, TimerLToLvoid()])))();
var _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLTimerL$ = () => (_ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLTimerL$ = dart.constFn(async._ZoneFunction$(ZoneLAndZoneDelegateLAndZoneL__ToLTimerL$())))();
var ZoneLAndZoneDelegateLAndZoneL__ToLvoid$ = () => (ZoneLAndZoneDelegateLAndZoneL__ToLvoid$ = dart.constFn(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.String])))();
var _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid$ = () => (_ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid$ = dart.constFn(async._ZoneFunction$(ZoneLAndZoneDelegateLAndZoneL__ToLvoid$())))();
var ZoneLAndZoneDelegateLAndZoneL__ToLZoneL = () => (ZoneLAndZoneDelegateLAndZoneL__ToLZoneL = dart.constFn(dart.fnType(async.Zone, [async.Zone, async.ZoneDelegate, async.Zone, async.ZoneSpecification, core.Map])))();
var _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLZoneL = () => (_ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLZoneL = dart.constFn(async._ZoneFunction$(ZoneLAndZoneDelegateLAndZoneL__ToLZoneL())))();
var ZoneLAndZoneDelegateLAndZoneL__ToLvoid$0 = () => (ZoneLAndZoneDelegateLAndZoneL__ToLvoid$0 = dart.constFn(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace])))();
var _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid$0 = () => (_ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid$0 = dart.constFn(async._ZoneFunction$(ZoneLAndZoneDelegateLAndZoneL__ToLvoid$0())))();
var ZoneLAndZoneDelegateLAndZoneL__ToRL = () => (ZoneLAndZoneDelegateLAndZoneL__ToRL = dart.constFn(dart.gFnType(R => {
  var VoidToLRL = () => (VoidToLRL = dart.constFn(dart.fnType(R, [])))();
  return [R, [async.Zone, async.ZoneDelegate, async.Zone, VoidToLRL()]];
})))();
var ZoneLAndZoneDelegateLAndZoneL__ToRL$ = () => (ZoneLAndZoneDelegateLAndZoneL__ToRL$ = dart.constFn(dart.gFnType((R, T) => {
  var TLToLRL = () => (TLToLRL = dart.constFn(dart.fnType(R, [T])))();
  return [R, [async.Zone, async.ZoneDelegate, async.Zone, TLToLRL(), T]];
})))();
var ZoneLAndZoneDelegateLAndZoneL__ToRL$0 = () => (ZoneLAndZoneDelegateLAndZoneL__ToRL$0 = dart.constFn(dart.gFnType((R, T1, T2) => {
  var T1LAndT2LToLRL = () => (T1LAndT2LToLRL = dart.constFn(dart.fnType(R, [T1, T2])))();
  return [R, [async.Zone, async.ZoneDelegate, async.Zone, T1LAndT2LToLRL(), T1, T2]];
})))();
var ZoneLAndZoneDelegateLAndZoneL__ToFn = () => (ZoneLAndZoneDelegateLAndZoneL__ToFn = dart.constFn(dart.gFnType(R => {
  var VoidToLRL = () => (VoidToLRL = dart.constFn(dart.fnType(R, [])))();
  return [VoidToLRL(), [async.Zone, async.ZoneDelegate, async.Zone, VoidToLRL()]];
})))();
var ZoneLAndZoneDelegateLAndZoneL__ToFn$ = () => (ZoneLAndZoneDelegateLAndZoneL__ToFn$ = dart.constFn(dart.gFnType((R, T) => {
  var TLToLRL = () => (TLToLRL = dart.constFn(dart.fnType(R, [T])))();
  return [TLToLRL(), [async.Zone, async.ZoneDelegate, async.Zone, TLToLRL()]];
})))();
var ZoneLAndZoneDelegateLAndZoneL__ToFn$0 = () => (ZoneLAndZoneDelegateLAndZoneL__ToFn$0 = dart.constFn(dart.gFnType((R, T1, T2) => {
  var T1LAndT2LToLRL = () => (T1LAndT2LToLRL = dart.constFn(dart.fnType(R, [T1, T2])))();
  return [T1LAndT2LToLRL(), [async.Zone, async.ZoneDelegate, async.Zone, T1LAndT2LToLRL()]];
})))();
var ZoneLAndZoneDelegateLAndZoneL__ToAsyncErrorL = () => (ZoneLAndZoneDelegateLAndZoneL__ToAsyncErrorL = dart.constFn(dart.fnType(async.AsyncError, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace])))();
var ZoneLAndZoneDelegateLAndZoneL__Tovoid = () => (ZoneLAndZoneDelegateLAndZoneL__Tovoid = dart.constFn(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, VoidToLvoid()])))();
var ZoneLAndZoneDelegateLAndZoneL__ToTimerL = () => (ZoneLAndZoneDelegateLAndZoneL__ToTimerL = dart.constFn(dart.fnType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, VoidToLvoid()])))();
var ZoneLAndZoneDelegateLAndZoneL__ToTimerL$ = () => (ZoneLAndZoneDelegateLAndZoneL__ToTimerL$ = dart.constFn(dart.fnType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, TimerLToLvoid()])))();
var ZoneLAndZoneDelegateLAndZoneL__Tovoid$ = () => (ZoneLAndZoneDelegateLAndZoneL__Tovoid$ = dart.constFn(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.String])))();
var ZoneLAndZoneDelegateLAndZoneL__ToZoneL = () => (ZoneLAndZoneDelegateLAndZoneL__ToZoneL = dart.constFn(dart.fnType(async.Zone, [async.Zone, async.ZoneDelegate, async.Zone, async.ZoneSpecification, core.Map])))();
var ZoneLAndZoneDelegateLAndZoneL__Tovoid$0 = () => (ZoneLAndZoneDelegateLAndZoneL__Tovoid$0 = dart.constFn(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, dart.dynamic, core.StackTrace])))();
var dynamicToLdynamic = () => (dynamicToLdynamic = dart.constFn(dart.fnType(dart.dynamic, [dart.dynamic])))();
var StringLTovoid = () => (StringLTovoid = dart.constFn(dart.fnType(dart.void, [core.String])))();
var ObjectLAndStackTraceLTovoid$ = () => (ObjectLAndStackTraceLTovoid$ = dart.constFn(dart.fnType(dart.void, [core.Object, core.StackTrace])))();
var ZoneLAndZoneDelegateLAndZoneL__ToNullN = () => (ZoneLAndZoneDelegateLAndZoneL__ToNullN = dart.constFn(dart.fnType(core.Null, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace])))();
var ObjectLTointL = () => (ObjectLTointL = dart.constFn(dart.fnType(core.int, [core.Object])))();
var ObjectLAndObjectLToboolL = () => (ObjectLAndObjectLToboolL = dart.constFn(dart.fnType(core.bool, [core.Object, core.Object])))();
var _SplayTreeMapNodeLToboolL = () => (_SplayTreeMapNodeLToboolL = dart.constFn(dart.fnType(core.bool, [collection._SplayTreeMapNode])))();
var ComparableLAndComparableLTointL = () => (ComparableLAndComparableLTointL = dart.constFn(dart.fnType(core.int, [core.Comparable, core.Comparable])))();
var MappedIterableOfStringL$dynamic = () => (MappedIterableOfStringL$dynamic = dart.constFn(_internal.MappedIterable$(core.String, dart.dynamic)))();
var MapOfStringL$dynamic = () => (MapOfStringL$dynamic = dart.constFn(core.Map$(core.String, dart.dynamic)))();
var StringLAnddynamicToNullN = () => (StringLAnddynamicToNullN = dart.constFn(dart.fnType(core.Null, [core.String, dart.dynamic])))();
var IdentityMapOfStringL$dynamic = () => (IdentityMapOfStringL$dynamic = dart.constFn(_js_helper.IdentityMap$(core.String, dart.dynamic)))();
var ListOfintL = () => (ListOfintL = dart.constFn(core.List$(core.int)))();
var StringBufferLAndStringLToStringBufferL = () => (StringBufferLAndStringLToStringBufferL = dart.constFn(dart.fnType(core.StringBuffer, [core.StringBuffer, core.String])))();
var StringBufferLToStringL = () => (StringBufferLToStringL = dart.constFn(dart.fnType(core.String, [core.StringBuffer])))();
var IdentityMapOfStringL$EncodingL = () => (IdentityMapOfStringL$EncodingL = dart.constFn(_js_helper.IdentityMap$(core.String, convert.Encoding)))();
var SinkOfListLOfintL = () => (SinkOfListLOfintL = dart.constFn(core.Sink$(ListOfintL())))();
var StreamOfStringL = () => (StreamOfStringL = dart.constFn(async.Stream$(core.String)))();
var StreamOfListLOfintL = () => (StreamOfListLOfintL = dart.constFn(async.Stream$(ListOfintL())))();
var SinkOfStringL = () => (SinkOfStringL = dart.constFn(core.Sink$(core.String)))();
var StreamOfObjectL = () => (StreamOfObjectL = dart.constFn(async.Stream$(core.Object)))();
var JSArrayOfListLOfintL = () => (JSArrayOfListLOfintL = dart.constFn(_interceptors.JSArray$(ListOfintL())))();
var Uint8ListLAndintLAndintLTovoid = () => (Uint8ListLAndintLAndintLTovoid = dart.constFn(dart.fnType(dart.void, [typed_data.Uint8List, core.int, core.int])))();
var SyncIterableOfStringL = () => (SyncIterableOfStringL = dart.constFn(_js_helper.SyncIterable$(core.String)))();
var EventSinkOfStringL = () => (EventSinkOfStringL = dart.constFn(async.EventSink$(core.String)))();
var EventSinkLOfStringLTo_LineSplitterEventSinkL = () => (EventSinkLOfStringLTo_LineSplitterEventSinkL = dart.constFn(dart.fnType(convert._LineSplitterEventSink, [EventSinkOfStringL()])))();
var VoidToObjectL = () => (VoidToObjectL = dart.constFn(dart.fnType(core.Object, [])))();
var LinkedMapOfStringL$MetricL = () => (LinkedMapOfStringL$MetricL = dart.constFn(_js_helper.LinkedMap$(core.String, developer.Metric)))();
var CompleterOfUriL = () => (CompleterOfUriL = dart.constFn(async.Completer$(core.Uri)))();
var UriLTovoid = () => (UriLTovoid = dart.constFn(dart.fnType(dart.void, [core.Uri])))();
var JSArrayOf_SyncBlockL = () => (JSArrayOf_SyncBlockL = dart.constFn(_interceptors.JSArray$(developer._SyncBlock)))();
var JSArrayOf_AsyncBlockL = () => (JSArrayOf_AsyncBlockL = dart.constFn(_interceptors.JSArray$(developer._AsyncBlock)))();
var FutureOfServiceExtensionResponseL = () => (FutureOfServiceExtensionResponseL = dart.constFn(async.Future$(developer.ServiceExtensionResponse)))();
var MapOfStringL$StringL = () => (MapOfStringL$StringL = dart.constFn(core.Map$(core.String, core.String)))();
var StringLAndMapLOfStringL$StringLToLFutureLOfServiceExtensionResponseL = () => (StringLAndMapLOfStringL$StringLToLFutureLOfServiceExtensionResponseL = dart.constFn(dart.fnType(FutureOfServiceExtensionResponseL(), [core.String, MapOfStringL$StringL()])))();
var LinkedMapOfStringL$StringLAndMapLOfStringL$StringLToLFutureLOfServiceExtensionResponseL = () => (LinkedMapOfStringL$StringLAndMapLOfStringL$StringLToLFutureLOfServiceExtensionResponseL = dart.constFn(_js_helper.LinkedMap$(core.String, StringLAndMapLOfStringL$StringLToLFutureLOfServiceExtensionResponseL())))();
var JSArrayOfUint8ListL = () => (JSArrayOfUint8ListL = dart.constFn(_interceptors.JSArray$(typed_data.Uint8List)))();
var FutureOfDirectoryL = () => (FutureOfDirectoryL = dart.constFn(async.Future$(io.Directory)))();
var DirectoryLToFutureLOfDirectoryL = () => (DirectoryLToFutureLOfDirectoryL = dart.constFn(dart.fnType(FutureOfDirectoryL(), [io.Directory])))();
var FutureOrOfDirectoryL = () => (FutureOrOfDirectoryL = dart.constFn(async.FutureOr$(io.Directory)))();
var boolLToFutureOrLOfDirectoryL = () => (boolLToFutureOrLOfDirectoryL = dart.constFn(dart.fnType(FutureOrOfDirectoryL(), [core.bool])))();
var dynamicTo_DirectoryL = () => (dynamicTo_DirectoryL = dart.constFn(dart.fnType(io._Directory, [dart.dynamic])))();
var dynamicToDirectoryL = () => (dynamicToDirectoryL = dart.constFn(dart.fnType(io.Directory, [dart.dynamic])))();
var JSArrayOfFileSystemEntityL = () => (JSArrayOfFileSystemEntityL = dart.constFn(_interceptors.JSArray$(io.FileSystemEntity)))();
var FutureOrOfStringL = () => (FutureOrOfStringL = dart.constFn(async.FutureOr$(core.String)))();
var dynamicToFutureOrLOfStringL = () => (dynamicToFutureOrLOfStringL = dart.constFn(dart.fnType(FutureOrOfStringL(), [dart.dynamic])))();
var dynamicToFutureOrLOfboolL = () => (dynamicToFutureOrLOfboolL = dart.constFn(dart.fnType(FutureOrOfboolL(), [dart.dynamic])))();
var FileSystemEntityTypeLToboolL = () => (FileSystemEntityTypeLToboolL = dart.constFn(dart.fnType(core.bool, [io.FileSystemEntityType])))();
var dynamicToFileSystemEntityTypeL = () => (dynamicToFileSystemEntityTypeL = dart.constFn(dart.fnType(io.FileSystemEntityType, [dart.dynamic])))();
var StreamControllerOfFileSystemEntityL = () => (StreamControllerOfFileSystemEntityL = dart.constFn(async.StreamController$(io.FileSystemEntity)))();
var StreamControllerOfUint8ListL = () => (StreamControllerOfUint8ListL = dart.constFn(async.StreamController$(typed_data.Uint8List)))();
var Uint8ListLToNullN = () => (Uint8ListLToNullN = dart.constFn(dart.fnType(core.Null, [typed_data.Uint8List])))();
var RandomAccessFileLTovoid = () => (RandomAccessFileLTovoid = dart.constFn(dart.fnType(dart.void, [io.RandomAccessFile])))();
var dynamicAnddynamicTovoid = () => (dynamicAnddynamicTovoid = dart.constFn(dart.fnType(dart.void, [dart.dynamic, dart.dynamic])))();
var FutureOfRandomAccessFileL = () => (FutureOfRandomAccessFileL = dart.constFn(async.Future$(io.RandomAccessFile)))();
var CompleterOfFileL = () => (CompleterOfFileL = dart.constFn(async.Completer$(io.File)))();
var dynamicAndStackTraceLTovoid$ = () => (dynamicAndStackTraceLTovoid$ = dart.constFn(dart.fnType(dart.void, [dart.dynamic], [core.StackTrace])))();
var RandomAccessFileLTodynamic = () => (RandomAccessFileLTodynamic = dart.constFn(dart.fnType(dart.dynamic, [io.RandomAccessFile])))();
var ListLOfintLToNullN = () => (ListLOfintLToNullN = dart.constFn(dart.fnType(core.Null, [ListOfintL()])))();
var RandomAccessFileLToNullN = () => (RandomAccessFileLToNullN = dart.constFn(dart.fnType(core.Null, [io.RandomAccessFile])))();
var RandomAccessFileLToFutureLOfvoid = () => (RandomAccessFileLToFutureLOfvoid = dart.constFn(dart.fnType(FutureOfvoid(), [io.RandomAccessFile])))();
var voidToFileL = () => (voidToFileL = dart.constFn(dart.fnType(io.File, [dart.void])))();
var DirectoryLToFutureL = () => (DirectoryLToFutureL = dart.constFn(dart.fnType(async.Future, [io.Directory])))();
var dynamicTo_FileL = () => (dynamicTo_FileL = dart.constFn(dart.fnType(io._File, [dart.dynamic])))();
var FileSystemEntityLTo_FileL = () => (FileSystemEntityLTo_FileL = dart.constFn(dart.fnType(io._File, [io.FileSystemEntity])))();
var dynamicToFileL = () => (dynamicToFileL = dart.constFn(dart.fnType(io.File, [dart.dynamic])))();
var dynamicTo_RandomAccessFileL = () => (dynamicTo_RandomAccessFileL = dart.constFn(dart.fnType(io._RandomAccessFile, [dart.dynamic])))();
var FutureOrOfintL = () => (FutureOrOfintL = dart.constFn(async.FutureOr$(core.int)))();
var dynamicToFutureOrLOfintL = () => (dynamicToFutureOrLOfintL = dart.constFn(dart.fnType(FutureOrOfintL(), [dart.dynamic])))();
var dynamicToDateTimeL = () => (dynamicToDateTimeL = dart.constFn(dart.fnType(core.DateTime, [dart.dynamic])))();
var CompleterOfUint8ListL = () => (CompleterOfUint8ListL = dart.constFn(async.Completer$(typed_data.Uint8List)))();
var FutureOfUint8ListL = () => (FutureOfUint8ListL = dart.constFn(async.Future$(typed_data.Uint8List)))();
var RandomAccessFileLToFutureLOfUint8ListL = () => (RandomAccessFileLToFutureLOfUint8ListL = dart.constFn(dart.fnType(FutureOfUint8ListL(), [io.RandomAccessFile])))();
var intLToFutureLOfUint8ListL = () => (intLToFutureLOfUint8ListL = dart.constFn(dart.fnType(FutureOfUint8ListL(), [core.int])))();
var FutureOfStringL = () => (FutureOfStringL = dart.constFn(async.Future$(core.String)))();
var Uint8ListLToFutureOrLOfStringL = () => (Uint8ListLToFutureOrLOfStringL = dart.constFn(dart.fnType(FutureOrOfStringL(), [typed_data.Uint8List])))();
var RandomAccessFileLTo_FileL = () => (RandomAccessFileLTo_FileL = dart.constFn(dart.fnType(io._File, [io.RandomAccessFile])))();
var FutureOrOfFileL = () => (FutureOrOfFileL = dart.constFn(async.FutureOr$(io.File)))();
var RandomAccessFileLToFutureOrLOfFileL = () => (RandomAccessFileLToFutureOrLOfFileL = dart.constFn(dart.fnType(FutureOrOfFileL(), [io.RandomAccessFile])))();
var FutureOfFileL = () => (FutureOfFileL = dart.constFn(async.Future$(io.File)))();
var RandomAccessFileLToFutureLOfFileL = () => (RandomAccessFileLToFutureLOfFileL = dart.constFn(dart.fnType(FutureOfFileL(), [io.RandomAccessFile])))();
var dynamicAnddynamicToFutureLOfServiceExtensionResponseL = () => (dynamicAnddynamicToFutureLOfServiceExtensionResponseL = dart.constFn(dart.fnType(FutureOfServiceExtensionResponseL(), [dart.dynamic, dart.dynamic])))();
var dynamicToUint8ListL = () => (dynamicToUint8ListL = dart.constFn(dart.fnType(typed_data.Uint8List, [dart.dynamic])))();
var FutureOfintL = () => (FutureOfintL = dart.constFn(async.Future$(core.int)))();
var dynamicTointL = () => (dynamicTointL = dart.constFn(dart.fnType(core.int, [dart.dynamic])))();
var dynamicToFileStatL = () => (dynamicToFileStatL = dart.constFn(dart.fnType(io.FileStat, [dart.dynamic])))();
var ListOfMapLOfStringL$dynamic = () => (ListOfMapLOfStringL$dynamic = dart.constFn(core.List$(MapOfStringL$dynamic())))();
var _FileResourceInfoLToMapLOfStringL$dynamic = () => (_FileResourceInfoLToMapLOfStringL$dynamic = dart.constFn(dart.fnType(MapOfStringL$dynamic(), [io._FileResourceInfo])))();
var LinkedMapOfintL$_FileResourceInfoL = () => (LinkedMapOfintL$_FileResourceInfoL = dart.constFn(_js_helper.LinkedMap$(core.int, io._FileResourceInfo)))();
var _ProcessResourceInfoLToMapLOfStringL$dynamic = () => (_ProcessResourceInfoLToMapLOfStringL$dynamic = dart.constFn(dart.fnType(MapOfStringL$dynamic(), [io._ProcessResourceInfo])))();
var LinkedMapOfintL$_ProcessResourceInfoL = () => (LinkedMapOfintL$_ProcessResourceInfoL = dart.constFn(_js_helper.LinkedMap$(core.int, io._ProcessResourceInfo)))();
var _SocketResourceInfoLToMapLOfStringL$dynamic = () => (_SocketResourceInfoLToMapLOfStringL$dynamic = dart.constFn(dart.fnType(MapOfStringL$dynamic(), [io._SocketResourceInfo])))();
var LinkedMapOfintL$_SocketResourceInfoL = () => (LinkedMapOfintL$_SocketResourceInfoL = dart.constFn(_js_helper.LinkedMap$(core.int, io._SocketResourceInfo)))();
var dynamicTo_LinkL = () => (dynamicTo_LinkL = dart.constFn(dart.fnType(io._Link, [dart.dynamic])))();
var FutureOfLinkL = () => (FutureOfLinkL = dart.constFn(async.Future$(io.Link)))();
var FileSystemEntityLToFutureLOfLinkL = () => (FileSystemEntityLToFutureLOfLinkL = dart.constFn(dart.fnType(FutureOfLinkL(), [io.FileSystemEntity])))();
var FileSystemEntityLTo_LinkL = () => (FileSystemEntityLTo_LinkL = dart.constFn(dart.fnType(io._Link, [io.FileSystemEntity])))();
var dynamicToLinkL = () => (dynamicToLinkL = dart.constFn(dart.fnType(io.Link, [dart.dynamic])))();
var StringLAndMapLOfStringL$StringLToFutureLOfServiceExtensionResponseL = () => (StringLAndMapLOfStringL$StringLToFutureLOfServiceExtensionResponseL = dart.constFn(dart.fnType(FutureOfServiceExtensionResponseL(), [core.String, MapOfStringL$StringL()])))();
var _SocketStatisticLToMapLOfStringL$dynamic = () => (_SocketStatisticLToMapLOfStringL$dynamic = dart.constFn(dart.fnType(MapOfStringL$dynamic(), [io._SocketStatistic])))();
var IdentityMapOfintL$_SocketStatisticL = () => (IdentityMapOfintL$_SocketStatisticL = dart.constFn(_js_helper.IdentityMap$(core.int, io._SocketStatistic)))();
var _CaseInsensitiveStringMapOfStringL = () => (_CaseInsensitiveStringMapOfStringL = dart.constFn(io._CaseInsensitiveStringMap$(core.String)))();
var UnmodifiableMapViewOfStringL$StringL = () => (UnmodifiableMapViewOfStringL$StringL = dart.constFn(collection.UnmodifiableMapView$(core.String, core.String)))();
var RawSecureServerSocketLToSecureServerSocketL = () => (RawSecureServerSocketLToSecureServerSocketL = dart.constFn(dart.fnType(io.SecureServerSocket, [io.RawSecureServerSocket])))();
var RawSecureSocketLToSecureSocketL = () => (RawSecureSocketLToSecureSocketL = dart.constFn(dart.fnType(io.SecureSocket, [io.RawSecureSocket])))();
var ConnectionTaskOfSecureSocketL = () => (ConnectionTaskOfSecureSocketL = dart.constFn(io.ConnectionTask$(io.SecureSocket)))();
var ConnectionTaskOfRawSecureSocketL = () => (ConnectionTaskOfRawSecureSocketL = dart.constFn(io.ConnectionTask$(io.RawSecureSocket)))();
var ConnectionTaskLOfRawSecureSocketLToConnectionTaskLOfSecureSocketL = () => (ConnectionTaskLOfRawSecureSocketLToConnectionTaskLOfSecureSocketL = dart.constFn(dart.fnType(ConnectionTaskOfSecureSocketL(), [ConnectionTaskOfRawSecureSocketL()])))();
var StreamSubscriptionOfRawSocketEventL = () => (StreamSubscriptionOfRawSocketEventL = dart.constFn(async.StreamSubscription$(io.RawSocketEvent)))();
var FutureOfRawSecureSocketL = () => (FutureOfRawSecureSocketL = dart.constFn(async.Future$(io.RawSecureSocket)))();
var dynamicToFutureLOfRawSecureSocketL = () => (dynamicToFutureLOfRawSecureSocketL = dart.constFn(dart.fnType(FutureOfRawSecureSocketL(), [dart.dynamic])))();
var StreamControllerOfRawSecureSocketL = () => (StreamControllerOfRawSecureSocketL = dart.constFn(async.StreamController$(io.RawSecureSocket)))();
var RawServerSocketLToRawSecureServerSocketL = () => (RawServerSocketLToRawSecureServerSocketL = dart.constFn(dart.fnType(io.RawSecureServerSocket, [io.RawServerSocket])))();
var RawSecureSocketLToNullN = () => (RawSecureSocketLToNullN = dart.constFn(dart.fnType(core.Null, [io.RawSecureSocket])))();
var RawSocketLToFutureLOfRawSecureSocketL = () => (RawSocketLToFutureLOfRawSecureSocketL = dart.constFn(dart.fnType(FutureOfRawSecureSocketL(), [io.RawSocket])))();
var ConnectionTaskOfRawSocketL = () => (ConnectionTaskOfRawSocketL = dart.constFn(io.ConnectionTask$(io.RawSocket)))();
var ConnectionTaskLOfRawSocketLToConnectionTaskLOfRawSecureSocketL = () => (ConnectionTaskLOfRawSocketLToConnectionTaskLOfRawSecureSocketL = dart.constFn(dart.fnType(ConnectionTaskOfRawSecureSocketL(), [ConnectionTaskOfRawSocketL()])))();
var CompleterOf_RawSecureSocketL = () => (CompleterOf_RawSecureSocketL = dart.constFn(async.Completer$(io._RawSecureSocket)))();
var CompleterOfRawSecureSocketL = () => (CompleterOfRawSecureSocketL = dart.constFn(async.Completer$(io.RawSecureSocket)))();
var StreamControllerOfRawSocketEventL = () => (StreamControllerOfRawSocketEventL = dart.constFn(async.StreamController$(io.RawSocketEvent)))();
var VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.fnType(dart.dynamic, [])))();
var _FilterStatusLToNullN = () => (_FilterStatusLToNullN = dart.constFn(dart.fnType(core.Null, [io._FilterStatus])))();
var intLTointL = () => (intLTointL = dart.constFn(dart.fnType(core.int, [core.int])))();
var dynamicTo_FilterStatusL = () => (dynamicTo_FilterStatusL = dart.constFn(dart.fnType(io._FilterStatus, [dart.dynamic])))();
var ListLOfintLAndStringLTovoid = () => (ListLOfintLAndStringLTovoid = dart.constFn(dart.fnType(dart.void, [ListOfintL(), core.String])))();
var Fn__ToRL = () => (Fn__ToRL = dart.constFn(dart.gFnType(R => {
  var VoidToLRL = () => (VoidToLRL = dart.constFn(dart.fnType(R, [])))();
  return [R, [VoidToLRL()], {onError: core.Function, zoneSpecification: async.ZoneSpecification, zoneValues: core.Map}, {}];
})))();
var dynamicTovoid = () => (dynamicTovoid = dart.constFn(dart.fnType(dart.void, [dart.dynamic])))();
var LinkedMapOfSymbolL$dynamic = () => (LinkedMapOfSymbolL$dynamic = dart.constFn(_js_helper.LinkedMap$(core.Symbol, dart.dynamic)))();
var dynamicTo_DartObjectL = () => (dynamicTo_DartObjectL = dart.constFn(dart.fnType(js._DartObject, [dart.dynamic])))();
var PointOfnumL = () => (PointOfnumL = dart.constFn(math.Point$(core.num)))();
var RectangleOfnumL = () => (RectangleOfnumL = dart.constFn(math.Rectangle$(core.num)))();
var EventStreamProviderOfEventL = () => (EventStreamProviderOfEventL = dart.constFn(html$.EventStreamProvider$(html$.Event)))();
var EventStreamProviderOfVersionChangeEventL = () => (EventStreamProviderOfVersionChangeEventL = dart.constFn(html$.EventStreamProvider$(indexed_db.VersionChangeEvent)))();
var FutureOfDatabaseL = () => (FutureOfDatabaseL = dart.constFn(async.Future$(indexed_db.Database)))();
var CompleterOfIdbFactoryL = () => (CompleterOfIdbFactoryL = dart.constFn(async.Completer$(indexed_db.IdbFactory)))();
var EventLToNullN = () => (EventLToNullN = dart.constFn(dart.fnType(core.Null, [html$.Event])))();
var FutureOfIdbFactoryL = () => (FutureOfIdbFactoryL = dart.constFn(async.Future$(indexed_db.IdbFactory)))();
var ObserverChangesLToLvoid = () => (ObserverChangesLToLvoid = dart.constFn(dart.fnType(dart.void, [indexed_db.ObserverChanges])))();
var CompleterOfDatabaseL = () => (CompleterOfDatabaseL = dart.constFn(async.Completer$(indexed_db.Database)))();
var JSArrayOfEventTargetL = () => (JSArrayOfEventTargetL = dart.constFn(_interceptors.JSArray$(html$.EventTarget)))();
var NodeLToboolL = () => (NodeLToboolL = dart.constFn(dart.fnType(core.bool, [html$.Node])))();
var CompleterOfScrollStateL = () => (CompleterOfScrollStateL = dart.constFn(async.Completer$(html$.ScrollState)))();
var ScrollStateLToNullN = () => (ScrollStateLToNullN = dart.constFn(dart.fnType(core.Null, [html$.ScrollState])))();
var MapLOfStringL$dynamicToboolL = () => (MapLOfStringL$dynamicToboolL = dart.constFn(dart.fnType(core.bool, [MapOfStringL$dynamic()])))();
var MapLAndFnTodynamic = () => (MapLAndFnTodynamic = dart.constFn(dart.fnType(dart.dynamic, [core.Map], [ObjectLToLvoid()])))();
var _CustomEventStreamProviderOfWheelEventL = () => (_CustomEventStreamProviderOfWheelEventL = dart.constFn(html$._CustomEventStreamProvider$(html$.WheelEvent)))();
var EventTargetLToStringL = () => (EventTargetLToStringL = dart.constFn(dart.fnType(core.String, [html$.EventTarget])))();
var _CustomEventStreamProviderOfTransitionEventL = () => (_CustomEventStreamProviderOfTransitionEventL = dart.constFn(html$._CustomEventStreamProvider$(html$.TransitionEvent)))();
var EventStreamProviderOfMouseEventL = () => (EventStreamProviderOfMouseEventL = dart.constFn(html$.EventStreamProvider$(html$.MouseEvent)))();
var EventStreamProviderOfClipboardEventL = () => (EventStreamProviderOfClipboardEventL = dart.constFn(html$.EventStreamProvider$(html$.ClipboardEvent)))();
var EventStreamProviderOfKeyboardEventL = () => (EventStreamProviderOfKeyboardEventL = dart.constFn(html$.EventStreamProvider$(html$.KeyboardEvent)))();
var EventStreamProviderOfTouchEventL = () => (EventStreamProviderOfTouchEventL = dart.constFn(html$.EventStreamProvider$(html$.TouchEvent)))();
var EventStreamProviderOfWheelEventL = () => (EventStreamProviderOfWheelEventL = dart.constFn(html$.EventStreamProvider$(html$.WheelEvent)))();
var EventStreamProviderOfProgressEventL = () => (EventStreamProviderOfProgressEventL = dart.constFn(html$.EventStreamProvider$(html$.ProgressEvent)))();
var EventStreamProviderOfMessageEventL = () => (EventStreamProviderOfMessageEventL = dart.constFn(html$.EventStreamProvider$(html$.MessageEvent)))();
var EventStreamProviderOfPopStateEventL = () => (EventStreamProviderOfPopStateEventL = dart.constFn(html$.EventStreamProvider$(html$.PopStateEvent)))();
var EventStreamProviderOfStorageEventL = () => (EventStreamProviderOfStorageEventL = dart.constFn(html$.EventStreamProvider$(html$.StorageEvent)))();
var CompleterOfBlobL = () => (CompleterOfBlobL = dart.constFn(async.Completer$(html$.Blob)))();
var BlobLToNullN = () => (BlobLToNullN = dart.constFn(dart.fnType(core.Null, [html$.Blob])))();
var EventStreamProviderOfContextEventL = () => (EventStreamProviderOfContextEventL = dart.constFn(html$.EventStreamProvider$(web_gl.ContextEvent)))();
var JSArrayOfnumL = () => (JSArrayOfnumL = dart.constFn(_interceptors.JSArray$(core.num)))();
var dynamicToCssStyleDeclarationL = () => (dynamicToCssStyleDeclarationL = dart.constFn(dart.fnType(html$.CssStyleDeclaration, [dart.dynamic])))();
var CssStyleDeclarationLTovoid = () => (CssStyleDeclarationLTovoid = dart.constFn(dart.fnType(dart.void, [html$.CssStyleDeclaration])))();
var ListOfCssTransformComponentL = () => (ListOfCssTransformComponentL = dart.constFn(core.List$(html$.CssTransformComponent)))();
var CompleterOfEntryL = () => (CompleterOfEntryL = dart.constFn(async.Completer$(html$.Entry)))();
var EntryLToNullN = () => (EntryLToNullN = dart.constFn(dart.fnType(core.Null, [html$.Entry])))();
var DomExceptionLToNullN = () => (DomExceptionLToNullN = dart.constFn(dart.fnType(core.Null, [html$.DomException])))();
var CompleterOfMetadataL = () => (CompleterOfMetadataL = dart.constFn(async.Completer$(html$.Metadata)))();
var MetadataLToNullN = () => (MetadataLToNullN = dart.constFn(dart.fnType(core.Null, [html$.Metadata])))();
var ListOfEntryL = () => (ListOfEntryL = dart.constFn(core.List$(html$.Entry)))();
var CompleterOfListLOfEntryL = () => (CompleterOfListLOfEntryL = dart.constFn(async.Completer$(ListOfEntryL())))();
var ListLToNullN = () => (ListLToNullN = dart.constFn(dart.fnType(core.Null, [core.List])))();
var EventStreamProviderOfSecurityPolicyViolationEventL = () => (EventStreamProviderOfSecurityPolicyViolationEventL = dart.constFn(html$.EventStreamProvider$(html$.SecurityPolicyViolationEvent)))();
var IterableOfElementL = () => (IterableOfElementL = dart.constFn(core.Iterable$(html$.Element)))();
var ListOfElementL = () => (ListOfElementL = dart.constFn(core.List$(html$.Element)))();
var ElementLToboolL = () => (ElementLToboolL = dart.constFn(dart.fnType(core.bool, [html$.Element])))();
var IterableOfStringL = () => (IterableOfStringL = dart.constFn(core.Iterable$(core.String)))();
var _EventStreamOfEventL = () => (_EventStreamOfEventL = dart.constFn(html$._EventStream$(html$.Event)))();
var _ElementEventStreamImplOfEventL = () => (_ElementEventStreamImplOfEventL = dart.constFn(html$._ElementEventStreamImpl$(html$.Event)))();
var CompleterOfFileWriterL = () => (CompleterOfFileWriterL = dart.constFn(async.Completer$(html$.FileWriter)))();
var FileWriterLToNullN = () => (FileWriterLToNullN = dart.constFn(dart.fnType(core.Null, [html$.FileWriter])))();
var CompleterOfFileL$ = () => (CompleterOfFileL$ = dart.constFn(async.Completer$(html$.File)))();
var FileLToNullN = () => (FileLToNullN = dart.constFn(dart.fnType(core.Null, [html$.File])))();
var EventStreamProviderOfFontFaceSetLoadEventL = () => (EventStreamProviderOfFontFaceSetLoadEventL = dart.constFn(html$.EventStreamProvider$(html$.FontFaceSetLoadEvent)))();
var CompleterOfGeopositionL = () => (CompleterOfGeopositionL = dart.constFn(async.Completer$(html$.Geoposition)))();
var GeopositionLToNullN = () => (GeopositionLToNullN = dart.constFn(dart.fnType(core.Null, [html$.Geoposition])))();
var PositionErrorLToNullN = () => (PositionErrorLToNullN = dart.constFn(dart.fnType(core.Null, [html$.PositionError])))();
var StreamControllerOfGeopositionL = () => (StreamControllerOfGeopositionL = dart.constFn(async.StreamController$(html$.Geoposition)))();
var GeopositionLToLvoid = () => (GeopositionLToLvoid = dart.constFn(dart.fnType(dart.void, [html$.Geoposition])))();
var _CustomEventStreamProviderOfEventL = () => (_CustomEventStreamProviderOfEventL = dart.constFn(html$._CustomEventStreamProvider$(html$.Event)))();
var HttpRequestLToStringL = () => (HttpRequestLToStringL = dart.constFn(dart.fnType(core.String, [html$.HttpRequest])))();
var StringLAndStringLToNullN = () => (StringLAndStringLToNullN = dart.constFn(dart.fnType(core.Null, [core.String, core.String])))();
var CompleterOfHttpRequestL = () => (CompleterOfHttpRequestL = dart.constFn(async.Completer$(html$.HttpRequest)))();
var ProgressEventLToNullN = () => (ProgressEventLToNullN = dart.constFn(dart.fnType(core.Null, [html$.ProgressEvent])))();
var CompleterOfStringL = () => (CompleterOfStringL = dart.constFn(async.Completer$(core.String)))();
var dynamicToLNullN = () => (dynamicToLNullN = dart.constFn(dart.fnType(core.Null, [dart.dynamic])))();
var ListLAndIntersectionObserverLToLvoid = () => (ListLAndIntersectionObserverLToLvoid = dart.constFn(dart.fnType(dart.void, [core.List, html$.IntersectionObserver])))();
var ListOfMediaStreamTrackL = () => (ListOfMediaStreamTrackL = dart.constFn(core.List$(html$.MediaStreamTrack)))();
var EventStreamProviderOfMidiMessageEventL = () => (EventStreamProviderOfMidiMessageEventL = dart.constFn(html$.EventStreamProvider$(html$.MidiMessageEvent)))();
var MapLToboolL = () => (MapLToboolL = dart.constFn(dart.fnType(core.bool, [core.Map])))();
var StringLAnddynamicTovoid = () => (StringLAnddynamicTovoid = dart.constFn(dart.fnType(dart.void, [core.String, dart.dynamic])))();
var JSArrayOfMapL = () => (JSArrayOfMapL = dart.constFn(_interceptors.JSArray$(core.Map)))();
var ListLAndMutationObserverLToLvoid = () => (ListLAndMutationObserverLToLvoid = dart.constFn(dart.fnType(dart.void, [core.List, html$.MutationObserver])))();
var CompleterOfMediaStreamL = () => (CompleterOfMediaStreamL = dart.constFn(async.Completer$(html$.MediaStream)))();
var MediaStreamLToNullN = () => (MediaStreamLToNullN = dart.constFn(dart.fnType(core.Null, [html$.MediaStream])))();
var NavigatorUserMediaErrorLToNullN = () => (NavigatorUserMediaErrorLToNullN = dart.constFn(dart.fnType(core.Null, [html$.NavigatorUserMediaError])))();
var IterableOfNodeL = () => (IterableOfNodeL = dart.constFn(core.Iterable$(html$.Node)))();
var StringLToNullN = () => (StringLToNullN = dart.constFn(dart.fnType(core.Null, [core.String])))();
var PerformanceObserverEntryListLAndPerformanceObserverLToLvoid = () => (PerformanceObserverEntryListLAndPerformanceObserverLToLvoid = dart.constFn(dart.fnType(dart.void, [html$.PerformanceObserverEntryList, html$.PerformanceObserver])))();
var ListLAndReportingObserverLToLvoid = () => (ListLAndReportingObserverLToLvoid = dart.constFn(dart.fnType(dart.void, [core.List, html$.ReportingObserver])))();
var ListLAndResizeObserverLToLvoid = () => (ListLAndResizeObserverLToLvoid = dart.constFn(dart.fnType(dart.void, [core.List, html$.ResizeObserver])))();
var EventStreamProviderOfRtcDtmfToneChangeEventL = () => (EventStreamProviderOfRtcDtmfToneChangeEventL = dart.constFn(html$.EventStreamProvider$(html$.RtcDtmfToneChangeEvent)))();
var JSArrayOfMapLOfStringL$StringL = () => (JSArrayOfMapLOfStringL$StringL = dart.constFn(_interceptors.JSArray$(MapOfStringL$StringL())))();
var CompleterOfRtcStatsResponseL = () => (CompleterOfRtcStatsResponseL = dart.constFn(async.Completer$(html$.RtcStatsResponse)))();
var RtcStatsResponseLToNullN = () => (RtcStatsResponseLToNullN = dart.constFn(dart.fnType(core.Null, [html$.RtcStatsResponse])))();
var EventStreamProviderOfMediaStreamEventL = () => (EventStreamProviderOfMediaStreamEventL = dart.constFn(html$.EventStreamProvider$(html$.MediaStreamEvent)))();
var EventStreamProviderOfRtcDataChannelEventL = () => (EventStreamProviderOfRtcDataChannelEventL = dart.constFn(html$.EventStreamProvider$(html$.RtcDataChannelEvent)))();
var EventStreamProviderOfRtcPeerConnectionIceEventL = () => (EventStreamProviderOfRtcPeerConnectionIceEventL = dart.constFn(html$.EventStreamProvider$(html$.RtcPeerConnectionIceEvent)))();
var UnmodifiableListViewOfOptionElementL = () => (UnmodifiableListViewOfOptionElementL = dart.constFn(collection.UnmodifiableListView$(html$.OptionElement)))();
var IterableOfOptionElementL = () => (IterableOfOptionElementL = dart.constFn(core.Iterable$(html$.OptionElement)))();
var OptionElementLToboolL = () => (OptionElementLToboolL = dart.constFn(dart.fnType(core.bool, [html$.OptionElement])))();
var JSArrayOfOptionElementL = () => (JSArrayOfOptionElementL = dart.constFn(_interceptors.JSArray$(html$.OptionElement)))();
var EventStreamProviderOfForeignFetchEventL = () => (EventStreamProviderOfForeignFetchEventL = dart.constFn(html$.EventStreamProvider$(html$.ForeignFetchEvent)))();
var EventStreamProviderOfSpeechRecognitionErrorL = () => (EventStreamProviderOfSpeechRecognitionErrorL = dart.constFn(html$.EventStreamProvider$(html$.SpeechRecognitionError)))();
var EventStreamProviderOfSpeechRecognitionEventL = () => (EventStreamProviderOfSpeechRecognitionEventL = dart.constFn(html$.EventStreamProvider$(html$.SpeechRecognitionEvent)))();
var EventStreamProviderOfSpeechSynthesisEventL = () => (EventStreamProviderOfSpeechSynthesisEventL = dart.constFn(html$.EventStreamProvider$(html$.SpeechSynthesisEvent)))();
var VoidToLStringL = () => (VoidToLStringL = dart.constFn(dart.fnType(core.String, [])))();
var StringLAndStringLTovoid = () => (StringLAndStringLTovoid = dart.constFn(dart.fnType(dart.void, [core.String, core.String])))();
var _WrappedListOfTableSectionElementL = () => (_WrappedListOfTableSectionElementL = dart.constFn(html$._WrappedList$(html$.TableSectionElement)))();
var _WrappedListOfTableRowElementL = () => (_WrappedListOfTableRowElementL = dart.constFn(html$._WrappedList$(html$.TableRowElement)))();
var _WrappedListOfTableCellElementL = () => (_WrappedListOfTableCellElementL = dart.constFn(html$._WrappedList$(html$.TableCellElement)))();
var EventStreamProviderOfTrackEventL = () => (EventStreamProviderOfTrackEventL = dart.constFn(html$.EventStreamProvider$(html$.TrackEvent)))();
var EventStreamProviderOfCloseEventL = () => (EventStreamProviderOfCloseEventL = dart.constFn(html$.EventStreamProvider$(html$.CloseEvent)))();
var CompleterOfnumL = () => (CompleterOfnumL = dart.constFn(async.Completer$(core.num)))();
var numLToNullN = () => (numLToNullN = dart.constFn(dart.fnType(core.Null, [core.num])))();
var IdleDeadlineLToLvoid = () => (IdleDeadlineLToLvoid = dart.constFn(dart.fnType(dart.void, [html$.IdleDeadline])))();
var CompleterOfFileSystemL = () => (CompleterOfFileSystemL = dart.constFn(async.Completer$(html$.FileSystem)))();
var FileSystemLToNullN = () => (FileSystemLToNullN = dart.constFn(dart.fnType(core.Null, [html$.FileSystem])))();
var EventStreamProviderOfDeviceMotionEventL = () => (EventStreamProviderOfDeviceMotionEventL = dart.constFn(html$.EventStreamProvider$(html$.DeviceMotionEvent)))();
var EventStreamProviderOfDeviceOrientationEventL = () => (EventStreamProviderOfDeviceOrientationEventL = dart.constFn(html$.EventStreamProvider$(html$.DeviceOrientationEvent)))();
var EventStreamProviderOfAnimationEventL = () => (EventStreamProviderOfAnimationEventL = dart.constFn(html$.EventStreamProvider$(html$.AnimationEvent)))();
var ListOfNodeL = () => (ListOfNodeL = dart.constFn(core.List$(html$.Node)))();
var _EventStreamOfBeforeUnloadEventL = () => (_EventStreamOfBeforeUnloadEventL = dart.constFn(html$._EventStream$(html$.BeforeUnloadEvent)))();
var StreamControllerOfBeforeUnloadEventL = () => (StreamControllerOfBeforeUnloadEventL = dart.constFn(async.StreamController$(html$.BeforeUnloadEvent)))();
var BeforeUnloadEventLToNullN = () => (BeforeUnloadEventLToNullN = dart.constFn(dart.fnType(core.Null, [html$.BeforeUnloadEvent])))();
var _ElementEventStreamImplOfBeforeUnloadEventL = () => (_ElementEventStreamImplOfBeforeUnloadEventL = dart.constFn(html$._ElementEventStreamImpl$(html$.BeforeUnloadEvent)))();
var _ElementListEventStreamImplOfBeforeUnloadEventL = () => (_ElementListEventStreamImplOfBeforeUnloadEventL = dart.constFn(html$._ElementListEventStreamImpl$(html$.BeforeUnloadEvent)))();
var ElementLTodynamic = () => (ElementLTodynamic = dart.constFn(dart.fnType(dart.dynamic, [html$.Element])))();
var ListOfCssClassSetImplL = () => (ListOfCssClassSetImplL = dart.constFn(core.List$(html_common.CssClassSetImpl)))();
var ElementLToCssClassSetL = () => (ElementLToCssClassSetL = dart.constFn(dart.fnType(html$.CssClassSet, [html$.Element])))();
var _IdentityHashSetOfStringL = () => (_IdentityHashSetOfStringL = dart.constFn(collection._IdentityHashSet$(core.String)))();
var CssClassSetImplLTovoid = () => (CssClassSetImplLTovoid = dart.constFn(dart.fnType(dart.void, [html_common.CssClassSetImpl])))();
var CssClassSetImplLTodynamic = () => (CssClassSetImplLTodynamic = dart.constFn(dart.fnType(dart.dynamic, [html_common.CssClassSetImpl])))();
var boolLAndCssClassSetImplLToboolL = () => (boolLAndCssClassSetImplLToboolL = dart.constFn(dart.fnType(core.bool, [core.bool, html_common.CssClassSetImpl])))();
var StringLAndStringLToLStringL = () => (StringLAndStringLToLStringL = dart.constFn(dart.fnType(core.String, [core.String, core.String])))();
var SetOfStringL = () => (SetOfStringL = dart.constFn(core.Set$(core.String)))();
var SetLOfStringLToboolL = () => (SetLOfStringLToboolL = dart.constFn(dart.fnType(core.bool, [SetOfStringL()])))();
var SetLOfStringLTovoid = () => (SetLOfStringLTovoid = dart.constFn(dart.fnType(dart.void, [SetOfStringL()])))();
var EventLTodynamic = () => (EventLTodynamic = dart.constFn(dart.fnType(dart.dynamic, [html$.Event])))();
var ElementLAndStringLAndStringL__ToboolL = () => (ElementLAndStringLAndStringL__ToboolL = dart.constFn(dart.fnType(core.bool, [html$.Element, core.String, core.String, html$._Html5NodeValidator])))();
var LinkedHashSetOfStringL = () => (LinkedHashSetOfStringL = dart.constFn(collection.LinkedHashSet$(core.String)))();
var IdentityMapOfStringL$FunctionL = () => (IdentityMapOfStringL$FunctionL = dart.constFn(_js_helper.IdentityMap$(core.String, core.Function)))();
var JSArrayOfKeyEventL = () => (JSArrayOfKeyEventL = dart.constFn(_interceptors.JSArray$(html$.KeyEvent)))();
var KeyEventLToboolL = () => (KeyEventLToboolL = dart.constFn(dart.fnType(core.bool, [html$.KeyEvent])))();
var JSArrayOfNodeValidatorL = () => (JSArrayOfNodeValidatorL = dart.constFn(_interceptors.JSArray$(html$.NodeValidator)))();
var NodeValidatorLToboolL = () => (NodeValidatorLToboolL = dart.constFn(dart.fnType(core.bool, [html$.NodeValidator])))();
var NodeLAndNodeLTointL = () => (NodeLAndNodeLTointL = dart.constFn(dart.fnType(core.int, [html$.Node, html$.Node])))();
var NodeLAndNodeLTovoid = () => (NodeLAndNodeLTovoid = dart.constFn(dart.fnType(dart.void, [html$.Node, html$.Node])))();
var dynamicToMapLOfStringL$dynamic = () => (dynamicToMapLOfStringL$dynamic = dart.constFn(dart.fnType(MapOfStringL$dynamic(), [dart.dynamic])))();
var dynamicAnddynamicTodynamic = () => (dynamicAnddynamicTodynamic = dart.constFn(dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic])))();
var NodeLToElementL = () => (NodeLToElementL = dart.constFn(dart.fnType(html$.Element, [html$.Node])))();
var FutureOfAudioBufferL = () => (FutureOfAudioBufferL = dart.constFn(async.Future$(web_audio.AudioBuffer)))();
var CompleterOfAudioBufferL = () => (CompleterOfAudioBufferL = dart.constFn(async.Completer$(web_audio.AudioBuffer)))();
var AudioBufferLToNullN = () => (AudioBufferLToNullN = dart.constFn(dart.fnType(core.Null, [web_audio.AudioBuffer])))();
var EventStreamProviderOfAudioProcessingEventL = () => (EventStreamProviderOfAudioProcessingEventL = dart.constFn(html$.EventStreamProvider$(web_audio.AudioProcessingEvent)))();
var CompleterOfSqlTransactionL = () => (CompleterOfSqlTransactionL = dart.constFn(async.Completer$(web_sql.SqlTransaction)))();
var SqlTransactionLToNullN = () => (SqlTransactionLToNullN = dart.constFn(dart.fnType(core.Null, [web_sql.SqlTransaction])))();
var SqlErrorLToNullN = () => (SqlErrorLToNullN = dart.constFn(dart.fnType(core.Null, [web_sql.SqlError])))();
var CompleterOfSqlResultSetL = () => (CompleterOfSqlResultSetL = dart.constFn(async.Completer$(web_sql.SqlResultSet)))();
var SqlTransactionLAndSqlResultSetLToNullN = () => (SqlTransactionLAndSqlResultSetLToNullN = dart.constFn(dart.fnType(core.Null, [web_sql.SqlTransaction, web_sql.SqlResultSet])))();
var SqlTransactionLAndSqlErrorLToNullN = () => (SqlTransactionLAndSqlErrorLToNullN = dart.constFn(dart.fnType(core.Null, [web_sql.SqlTransaction, web_sql.SqlError])))();
var intLAndintLTointL = () => (intLAndintLTointL = dart.constFn(dart.fnType(core.int, [core.int, core.int])))();
var StringLTointL = () => (StringLTointL = dart.constFn(dart.fnType(core.int, [core.String])))();
var intLToStringL = () => (intLToStringL = dart.constFn(dart.fnType(core.String, [core.int])))();
var SymbolLAnddynamicToNullN = () => (SymbolLAnddynamicToNullN = dart.constFn(dart.fnType(core.Null, [core.Symbol, dart.dynamic])))();
var MapOfSymbolL$ObjectL = () => (MapOfSymbolL$ObjectL = dart.constFn(core.Map$(core.Symbol, core.Object)))();
var MapLOfStringL$StringLAndStringLToMapLOfStringL$StringL = () => (MapLOfStringL$StringLAndStringLToMapLOfStringL$StringL = dart.constFn(dart.fnType(MapOfStringL$StringL(), [MapOfStringL$StringL(), core.String])))();
var StringLAndintLTovoid = () => (StringLAndintLTovoid = dart.constFn(dart.fnType(dart.void, [core.String, core.int])))();
var StringLAnddynamicTovoid$ = () => (StringLAnddynamicTovoid$ = dart.constFn(dart.fnType(dart.void, [core.String], [dart.dynamic])))();
var MapOfStringL$ListLOfStringL = () => (MapOfStringL$ListLOfStringL = dart.constFn(core.Map$(core.String, ListOfStringL())))();
var VoidToListLOfStringL = () => (VoidToListLOfStringL = dart.constFn(dart.fnType(ListOfStringL(), [])))();
var intLAndintLAndintLTovoid = () => (intLAndintLAndintLTovoid = dart.constFn(dart.fnType(dart.void, [core.int, core.int, core.int])))();
var _StringSinkConversionSinkOfStringSinkL = () => (_StringSinkConversionSinkOfStringSinkL = dart.constFn(convert._StringSinkConversionSink$(core.StringSink)))();
var ListOfUint8ListL = () => (ListOfUint8ListL = dart.constFn(core.List$(typed_data.Uint8List)))();
var intLToUint8ListL = () => (intLToUint8ListL = dart.constFn(dart.fnType(typed_data.Uint8List, [core.int])))();
var dynamicAnddynamicToUint8ListL = () => (dynamicAnddynamicToUint8ListL = dart.constFn(dart.fnType(typed_data.Uint8List, [dart.dynamic, dart.dynamic])))();
var Uint8ListLAndStringLAndintLTovoid = () => (Uint8ListLAndStringLAndintLTovoid = dart.constFn(dart.fnType(dart.void, [typed_data.Uint8List, core.String, core.int])))();
var StringLAndListLOfStringLToListLOfStringL = () => (StringLAndListLOfStringLToListLOfStringL = dart.constFn(dart.fnType(ListOfStringL(), [core.String, ListOfStringL()])))();
var StringLAndListLOfStringLToNullN = () => (StringLAndListLOfStringLToNullN = dart.constFn(dart.fnType(core.Null, [core.String, ListOfStringL()])))();
var JSArrayOfCookieL = () => (JSArrayOfCookieL = dart.constFn(_interceptors.JSArray$(_http.Cookie)))();
var HashMapOfStringL$StringL = () => (HashMapOfStringL$StringL = dart.constFn(collection.HashMap$(core.String, core.String)))();
var CookieLToboolL = () => (CookieLToboolL = dart.constFn(dart.fnType(core.bool, [_http.Cookie])))();
var CookieLToStringL = () => (CookieLToStringL = dart.constFn(dart.fnType(core.String, [_http.Cookie])))();
var FutureOfHttpClientResponseL = () => (FutureOfHttpClientResponseL = dart.constFn(async.Future$(_http.HttpClientResponse)))();
var _HttpClientRequestLToFutureLOfHttpClientResponseL = () => (_HttpClientRequestLToFutureLOfHttpClientResponseL = dart.constFn(dart.fnType(FutureOfHttpClientResponseL(), [_http._HttpClientRequest])))();
var _EmptyStreamOfUint8ListL = () => (_EmptyStreamOfUint8ListL = dart.constFn(async._EmptyStream$(typed_data.Uint8List)))();
var dynamicToFutureLOfHttpClientResponseL = () => (dynamicToFutureLOfHttpClientResponseL = dart.constFn(dart.fnType(FutureOfHttpClientResponseL(), [dart.dynamic])))();
var VoidToFutureLOfHttpClientResponseL = () => (VoidToFutureLOfHttpClientResponseL = dart.constFn(dart.fnType(FutureOfHttpClientResponseL(), [])))();
var _AuthenticationSchemeLTo_CredentialsL = () => (_AuthenticationSchemeLTo_CredentialsL = dart.constFn(dart.fnType(_http._Credentials, [_http._AuthenticationScheme])))();
var _CredentialsLTovoid = () => (_CredentialsLTovoid = dart.constFn(dart.fnType(dart.void, [_http._Credentials])))();
var _AuthenticationSchemeLAndStringLToFutureL = () => (_AuthenticationSchemeLAndStringLToFutureL = dart.constFn(dart.fnType(async.Future, [_http._AuthenticationScheme, core.String])))();
var FutureOrOfHttpClientResponseL = () => (FutureOrOfHttpClientResponseL = dart.constFn(async.FutureOr$(_http.HttpClientResponse)))();
var dynamicToFutureOrLOfHttpClientResponseL = () => (dynamicToFutureOrLOfHttpClientResponseL = dart.constFn(dart.fnType(FutureOrOfHttpClientResponseL(), [dart.dynamic])))();
var SinkOfUint8ListL = () => (SinkOfUint8ListL = dart.constFn(core.Sink$(typed_data.Uint8List)))();
var CookieLToNullN = () => (CookieLToNullN = dart.constFn(dart.fnType(core.Null, [_http.Cookie])))();
var CompleterOfHttpClientResponseL = () => (CompleterOfHttpClientResponseL = dart.constFn(async.Completer$(_http.HttpClientResponse)))();
var JSArrayOfRedirectInfoL = () => (JSArrayOfRedirectInfoL = dart.constFn(_interceptors.JSArray$(_http.RedirectInfo)))();
var VoidToMapL = () => (VoidToMapL = dart.constFn(dart.fnType(core.Map, [])))();
var JSArrayOfMapLOfStringL$dynamic = () => (JSArrayOfMapLOfStringL$dynamic = dart.constFn(_interceptors.JSArray$(MapOfStringL$dynamic())))();
var VoidToListLOfMapLOfStringL$dynamic = () => (VoidToListLOfMapLOfStringL$dynamic = dart.constFn(dart.fnType(ListOfMapLOfStringL$dynamic(), [])))();
var HttpClientResponseLToNullN = () => (HttpClientResponseLToNullN = dart.constFn(dart.fnType(core.Null, [_http.HttpClientResponse])))();
var JSArrayOfFutureL = () => (JSArrayOfFutureL = dart.constFn(_interceptors.JSArray$(async.Future)))();
var ListLToFutureOrLOfHttpClientResponseL = () => (ListLToFutureOrLOfHttpClientResponseL = dart.constFn(dart.fnType(FutureOrOfHttpClientResponseL(), [core.List])))();
var HttpClientResponseLTovoid = () => (HttpClientResponseLTovoid = dart.constFn(dart.fnType(dart.void, [_http.HttpClientResponse])))();
var CompleterOfSocketL = () => (CompleterOfSocketL = dart.constFn(async.Completer$(io.Socket)))();
var dynamicToIterableL = () => (dynamicToIterableL = dart.constFn(dart.fnType(core.Iterable, [dart.dynamic])))();
var StreamControllerOfListLOfintL = () => (StreamControllerOfListLOfintL = dart.constFn(async.StreamController$(ListOfintL())))();
var ListLOfintLTovoid = () => (ListLOfintLTovoid = dart.constFn(dart.fnType(dart.void, [ListOfintL()])))();
var dynamicTo_HttpOutboundMessageL = () => (dynamicTo_HttpOutboundMessageL = dart.constFn(dart.fnType(_http._HttpOutboundMessage, [dart.dynamic])))();
var dynamicAnddynamicTo_HttpOutboundMessageL = () => (dynamicAnddynamicTo_HttpOutboundMessageL = dart.constFn(dart.fnType(_http._HttpOutboundMessage, [dart.dynamic, dart.dynamic])))();
var _HttpIncomingLToNullN = () => (_HttpIncomingLToNullN = dart.constFn(dart.fnType(core.Null, [_http._HttpIncoming])))();
var CompleterOf_HttpIncomingL = () => (CompleterOf_HttpIncomingL = dart.constFn(async.Completer$(_http._HttpIncoming)))();
var ObjectLToboolL = () => (ObjectLToboolL = dart.constFn(dart.fnType(core.bool, [core.Object])))();
var SocketLToSocketL = () => (SocketLToSocketL = dart.constFn(dart.fnType(io.Socket, [io.Socket])))();
var SocketLTo_DetachedSocketL = () => (SocketLTo_DetachedSocketL = dart.constFn(dart.fnType(_http._DetachedSocket, [io.Socket])))();
var SocketLTovoid = () => (SocketLTovoid = dart.constFn(dart.fnType(dart.void, [io.Socket])))();
var FutureOfSecureSocketL = () => (FutureOfSecureSocketL = dart.constFn(async.Future$(io.SecureSocket)))();
var HttpClientResponseLToFutureLOfSecureSocketL = () => (HttpClientResponseLToFutureLOfSecureSocketL = dart.constFn(dart.fnType(FutureOfSecureSocketL(), [_http.HttpClientResponse])))();
var SecureSocketLTo_HttpClientConnectionL = () => (SecureSocketLTo_HttpClientConnectionL = dart.constFn(dart.fnType(_http._HttpClientConnection, [io.SecureSocket])))();
var _HashSetOf_HttpClientConnectionL = () => (_HashSetOf_HttpClientConnectionL = dart.constFn(collection._HashSet$(_http._HttpClientConnection)))();
var _HashSetOfConnectionTaskL = () => (_HashSetOfConnectionTaskL = dart.constFn(collection._HashSet$(io.ConnectionTask)))();
var FutureOf_ConnectionInfoL = () => (FutureOf_ConnectionInfoL = dart.constFn(async.Future$(_http._ConnectionInfo)))();
var CompleterOf_ConnectionInfoL = () => (CompleterOf_ConnectionInfoL = dart.constFn(async.Completer$(_http._ConnectionInfo)))();
var X509CertificateLToboolL = () => (X509CertificateLToboolL = dart.constFn(dart.fnType(core.bool, [io.X509Certificate])))();
var _HttpClientConnectionLTo_ConnectionInfoL = () => (_HttpClientConnectionLTo_ConnectionInfoL = dart.constFn(dart.fnType(_http._ConnectionInfo, [_http._HttpClientConnection])))();
var FutureOrOf_ConnectionInfoL = () => (FutureOrOf_ConnectionInfoL = dart.constFn(async.FutureOr$(_http._ConnectionInfo)))();
var dynamicToFutureOrLOf_ConnectionInfoL = () => (dynamicToFutureOrLOf_ConnectionInfoL = dart.constFn(dart.fnType(FutureOrOf_ConnectionInfoL(), [dart.dynamic])))();
var ConnectionTaskLToFutureLOf_ConnectionInfoL = () => (ConnectionTaskLToFutureLOf_ConnectionInfoL = dart.constFn(dart.fnType(FutureOf_ConnectionInfoL(), [io.ConnectionTask])))();
var IdentityMapOfStringL$_ConnectionTargetL = () => (IdentityMapOfStringL$_ConnectionTargetL = dart.constFn(_js_helper.IdentityMap$(core.String, _http._ConnectionTarget)))();
var JSArrayOf_CredentialsL = () => (JSArrayOf_CredentialsL = dart.constFn(_interceptors.JSArray$(_http._Credentials)))();
var JSArrayOf_ProxyCredentialsL = () => (JSArrayOf_ProxyCredentialsL = dart.constFn(_interceptors.JSArray$(_http._ProxyCredentials)))();
var UriL__ToStringL = () => (UriL__ToStringL = dart.constFn(dart.fnType(core.String, [core.Uri], {environment: MapOfStringL$StringL()}, {})))();
var _ConnectionTargetLToboolL = () => (_ConnectionTargetLToboolL = dart.constFn(dart.fnType(core.bool, [_http._ConnectionTarget])))();
var FutureOf_HttpClientRequestL = () => (FutureOf_HttpClientRequestL = dart.constFn(async.Future$(_http._HttpClientRequest)))();
var _ConnectionInfoLTo_HttpClientRequestL = () => (_ConnectionInfoLTo_HttpClientRequestL = dart.constFn(dart.fnType(_http._HttpClientRequest, [_http._ConnectionInfo])))();
var FutureOrOf_HttpClientRequestL = () => (FutureOrOf_HttpClientRequestL = dart.constFn(async.FutureOr$(_http._HttpClientRequest)))();
var _ConnectionInfoLToFutureOrLOf_HttpClientRequestL = () => (_ConnectionInfoLToFutureOrLOf_HttpClientRequestL = dart.constFn(dart.fnType(FutureOrOf_HttpClientRequestL(), [_http._ConnectionInfo])))();
var _HttpClientRequestLTo_HttpClientRequestL = () => (_HttpClientRequestLTo_HttpClientRequestL = dart.constFn(dart.fnType(_http._HttpClientRequest, [_http._HttpClientRequest])))();
var VoidTo_ConnectionTargetL = () => (VoidTo_ConnectionTargetL = dart.constFn(dart.fnType(_http._ConnectionTarget, [])))();
var dynamicToFutureLOf_ConnectionInfoL = () => (dynamicToFutureLOf_ConnectionInfoL = dart.constFn(dart.fnType(FutureOf_ConnectionInfoL(), [dart.dynamic])))();
var _SiteCredentialsLAnd_CredentialsLTo_SiteCredentialsL = () => (_SiteCredentialsLAnd_CredentialsLTo_SiteCredentialsL = dart.constFn(dart.fnType(_http._SiteCredentials, [_http._SiteCredentials, _http._Credentials])))();
var StreamOfUint8ListL = () => (StreamOfUint8ListL = dart.constFn(async.Stream$(typed_data.Uint8List)))();
var SocketLToNullN = () => (SocketLToNullN = dart.constFn(dart.fnType(core.Null, [io.Socket])))();
var dynamicTo_DetachedSocketL = () => (dynamicTo_DetachedSocketL = dart.constFn(dart.fnType(_http._DetachedSocket, [dart.dynamic])))();
var IdentityMapOfintL$_HttpConnectionL = () => (IdentityMapOfintL$_HttpConnectionL = dart.constFn(_js_helper.IdentityMap$(core.int, _http._HttpConnection)))();
var LinkedListOf_HttpConnectionL = () => (LinkedListOf_HttpConnectionL = dart.constFn(collection.LinkedList$(_http._HttpConnection)))();
var StreamControllerOfHttpRequestL = () => (StreamControllerOfHttpRequestL = dart.constFn(async.StreamController$(_http.HttpRequest)))();
var ServerSocketLTo_HttpServerL = () => (ServerSocketLTo_HttpServerL = dart.constFn(dart.fnType(_http._HttpServer, [io.ServerSocket])))();
var SecureServerSocketLTo_HttpServerL = () => (SecureServerSocketLTo_HttpServerL = dart.constFn(dart.fnType(_http._HttpServer, [io.SecureServerSocket])))();
var _HttpConnectionLToNullN = () => (_HttpConnectionLToNullN = dart.constFn(dart.fnType(core.Null, [_http._HttpConnection])))();
var _HttpConnectionLToMapL = () => (_HttpConnectionLToMapL = dart.constFn(dart.fnType(core.Map, [_http._HttpConnection])))();
var LinkedMapOfintL$_HttpServerL = () => (LinkedMapOfintL$_HttpServerL = dart.constFn(_js_helper.LinkedMap$(core.int, _http._HttpServer)))();
var JSArrayOf_ProxyL = () => (JSArrayOf_ProxyL = dart.constFn(_interceptors.JSArray$(_http._Proxy)))();
var StreamControllerOf_HttpIncomingL = () => (StreamControllerOf_HttpIncomingL = dart.constFn(async.StreamController$(_http._HttpIncoming)))();
var IterableOfMapEntryL = () => (IterableOfMapEntryL = dart.constFn(core.Iterable$(core.MapEntry)))();
var dynamicAnddynamicToLdynamic = () => (dynamicAnddynamicToLdynamic = dart.constFn(dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic])))();
var IdentityMapOfStringL$_HttpSessionL = () => (IdentityMapOfStringL$_HttpSessionL = dart.constFn(_js_helper.IdentityMap$(core.String, _http._HttpSession)))();
var EventSinkLTo_WebSocketProtocolTransformerL = () => (EventSinkLTo_WebSocketProtocolTransformerL = dart.constFn(dart.fnType(_http._WebSocketProtocolTransformer, [async.EventSink])))();
var StreamControllerOfWebSocketL = () => (StreamControllerOfWebSocketL = dart.constFn(async.StreamController$(_http.WebSocket)))();
var StreamOfHttpRequestL = () => (StreamOfHttpRequestL = dart.constFn(async.Stream$(_http.HttpRequest)))();
var WebSocketLTovoid = () => (WebSocketLTovoid = dart.constFn(dart.fnType(dart.void, [_http.WebSocket])))();
var HttpRequestLToNullN = () => (HttpRequestLToNullN = dart.constFn(dart.fnType(core.Null, [_http.HttpRequest])))();
var FutureOfWebSocketL = () => (FutureOfWebSocketL = dart.constFn(async.Future$(_http.WebSocket)))();
var SocketLTo_WebSocketImplL = () => (SocketLTo_WebSocketImplL = dart.constFn(dart.fnType(_http._WebSocketImpl, [io.Socket])))();
var StringLToFutureLOfWebSocketL = () => (StringLToFutureLOfWebSocketL = dart.constFn(dart.fnType(FutureOfWebSocketL(), [core.String])))();
var VoidToFutureOrLOfStringL = () => (VoidToFutureOrLOfStringL = dart.constFn(dart.fnType(FutureOrOfStringL(), [])))();
var EventSinkOfListLOfintL = () => (EventSinkOfListLOfintL = dart.constFn(async.EventSink$(ListOfintL())))();
var EventSinkLOfListLOfintLTo_WebSocketOutgoingTransformerL = () => (EventSinkLOfListLOfintLTo_WebSocketOutgoingTransformerL = dart.constFn(dart.fnType(_http._WebSocketOutgoingTransformer, [EventSinkOfListLOfintL()])))();
var CompleterOfWebSocketL = () => (CompleterOfWebSocketL = dart.constFn(async.Completer$(_http.WebSocket)))();
var dynamicTo_WebSocketImplL = () => (dynamicTo_WebSocketImplL = dart.constFn(dart.fnType(_http._WebSocketImpl, [dart.dynamic])))();
var HttpClientRequestLToFutureLOfHttpClientResponseL = () => (HttpClientRequestLToFutureLOfHttpClientResponseL = dart.constFn(dart.fnType(FutureOfHttpClientResponseL(), [_http.HttpClientRequest])))();
var HttpClientResponseLToFutureLOfWebSocketL = () => (HttpClientResponseLToFutureLOfWebSocketL = dart.constFn(dart.fnType(FutureOfWebSocketL(), [_http.HttpClientResponse])))();
var dynamicToMapL = () => (dynamicToMapL = dart.constFn(dart.fnType(core.Map, [dart.dynamic])))();
var LinkedMapOfintL$_WebSocketImplL = () => (LinkedMapOfintL$_WebSocketImplL = dart.constFn(_js_helper.LinkedMap$(core.int, _http._WebSocketImpl)))();
const CT = Object.create(null);
var _jsError$ = dart.privateName(dart, "_jsError");
var _type$ = dart.privateName(dart, "_type");
dart.applyMixin = function applyMixin(to, from) {
  to[dart._mixin] = from;
  let toProto = to.prototype;
  let fromProto = from.prototype;
  dart._copyMembers(toProto, fromProto);
  dart._mixinSignature(to, from, dart._methodSig);
  dart._mixinSignature(to, from, dart._fieldSig);
  dart._mixinSignature(to, from, dart._getterSig);
  dart._mixinSignature(to, from, dart._setterSig);
  let mixinOnFn = from[dart.mixinOn];
  if (mixinOnFn != null) {
    let proto = mixinOnFn(to.__proto__).prototype;
    dart._copyMembers(toProto, proto);
  }
};
dart._copyMembers = function _copyMembers(to, from) {
  let names = dart.getOwnNamesAndSymbols(from);
  for (let i = 0, n = names.length; i < n; i = i + 1) {
    let name = names[i];
    if (name === "constructor") continue;
    dart._copyMember(to, from, name);
  }
  return to;
};
dart._copyMember = function _copyMember(to, from, name) {
  let desc = dart.getOwnPropertyDescriptor(from, name);
  if (name == Symbol.iterator) {
    let existing = dart.getOwnPropertyDescriptor(to, name);
    if (existing != null) {
      if (existing.writable) {
        to[name] = desc.value;
      }
      return;
    }
  }
  let getter = desc.get;
  let setter = desc.set;
  if (getter != null) {
    if (setter == null) {
      let obj = desc.set = {
        __proto__: to.__proto__,
        set [name](x) {
          return super[name] = x;
        }
      };
      desc.set = dart.getOwnPropertyDescriptor(obj, name).set;
    }
  } else if (setter != null) {
    if (getter == null) {
      let obj = desc.get = {
        __proto__: to.__proto__,
        get [name]() {
          return super[name];
        }
      };
      desc.get = dart.getOwnPropertyDescriptor(obj, name).get;
    }
  }
  dart.defineProperty(to, name, desc);
};
dart._mixinSignature = function _mixinSignature(to, from, kind) {
  to[kind] = () => {
    let baseMembers = dart._getMembers(to.__proto__, kind);
    let fromMembers = dart._getMembers(from, kind);
    if (fromMembers == null) return baseMembers;
    let toSignature = {__proto__: baseMembers};
    dart.copyProperties(toSignature, fromMembers);
    return toSignature;
  };
};
dart.getMixin = function getMixin(clazz) {
  return Object.hasOwnProperty.call(clazz, dart._mixin) ? clazz[dart._mixin] : null;
};
dart.getImplements = function getImplements(clazz) {
  return Object.hasOwnProperty.call(clazz, dart.implements) ? clazz[dart.implements] : null;
};
dart.normalizeFutureOr = function normalizeFutureOr(typeConstructor, setBaseClass) {
  let genericFutureOrType = dart.generic(typeConstructor, setBaseClass);
  function normalize(typeArg) {
    if (typeArg == void 0) return dart.dynamic;
    if (dart._isTop(typeArg)) return typeArg;
    if (dart.equals(typeArg, core.Null)) {
      return async.Future$(typeArg);
    }
    let genericType = genericFutureOrType(typeArg);
    genericType[dart._originalDeclaration] = normalize;
    return genericType;
  }
  return normalize;
};
dart.generic = function generic(typeConstructor, setBaseClass) {
  let length = typeConstructor.length;
  if (length < 1) {
    dart.throwInternalError('must have at least one generic type argument');
  }
  let resultMap = new Map();
  function makeGenericType(...args) {
    if (args.length != length && args.length != 0) {
      dart.throwInternalError('requires ' + length + ' or 0 type arguments');
    }
    while (args.length < length)
      args.push(dart.dynamic);
    let value = resultMap;
    for (let i = 0; i < length; i++) {
      let arg = args[i];
      if (arg == null) {
        dart.throwInternalError('type arguments should not be null: ' + typeConstructor);
      }
      let map = value;
      value = map.get(arg);
      if (value === void 0) {
        if (i + 1 == length) {
          value = typeConstructor.apply(null, args);
          if (value) {
            value[dart._typeArguments] = args;
            value[dart._originalDeclaration] = makeGenericType;
          }
          map.set(arg, value);
          if (setBaseClass != null) setBaseClass.apply(null, args);
        } else {
          value = new Map();
          map.set(arg, value);
        }
      }
    }
    return value;
  }
  makeGenericType[dart._genericTypeCtor] = typeConstructor;
  return makeGenericType;
};
dart.getGenericClass = function getGenericClass(type) {
  return dart.safeGetOwnProperty(type, dart._originalDeclaration);
};
dart.getGenericArgs = function getGenericArgs(type) {
  return dart.safeGetOwnProperty(type, dart._typeArguments);
};
dart.getGenericArgVariances = function getGenericArgVariances(type) {
  return dart.safeGetOwnProperty(type, dart._variances);
};
dart.setGenericArgVariances = function setGenericArgVariances(f, variances) {
  return f[dart._variances] = variances;
};
dart.getGenericTypeFormals = function getGenericTypeFormals(genericClass) {
  return dart._typeFormalsFromFunction(dart.getGenericTypeCtor(genericClass));
};
dart.instantiateClass = function instantiateClass(genericClass, typeArgs) {
  return genericClass.apply(null, typeArgs);
};
dart.getConstructors = function getConstructors(value) {
  return dart._getMembers(value, dart._constructorSig);
};
dart.getMethods = function getMethods(value) {
  return dart._getMembers(value, dart._methodSig);
};
dart.getFields = function getFields(value) {
  return dart._getMembers(value, dart._fieldSig);
};
dart.getGetters = function getGetters(value) {
  return dart._getMembers(value, dart._getterSig);
};
dart.getSetters = function getSetters(value) {
  return dart._getMembers(value, dart._setterSig);
};
dart.getStaticMethods = function getStaticMethods(value) {
  return dart._getMembers(value, dart._staticMethodSig);
};
dart.getStaticFields = function getStaticFields(value) {
  return dart._getMembers(value, dart._staticFieldSig);
};
dart.getStaticGetters = function getStaticGetters(value) {
  return dart._getMembers(value, dart._staticGetterSig);
};
dart.getStaticSetters = function getStaticSetters(value) {
  return dart._getMembers(value, dart._staticSetterSig);
};
dart.getGenericTypeCtor = function getGenericTypeCtor(value) {
  return value[dart._genericTypeCtor];
};
dart.getType = function getType(obj) {
  return obj == null ? core.Object : obj.__proto__.constructor;
};
dart.getLibraryUri = function getLibraryUri(value) {
  return value[dart._libraryUri];
};
dart.setLibraryUri = function setLibraryUri(f, uri) {
  return f[dart._libraryUri] = uri;
};
dart.isJsInterop = function isJsInterop(obj) {
  if (obj == null) return false;
  if (typeof obj === "function") {
    return obj[dart._runtimeType] == null;
  }
  if (typeof obj !== "object") return false;
  if (obj[dart._extensionType] != null) return false;
  return !(obj instanceof core.Object);
};
dart.getMethodType = function getMethodType(type, name) {
  let m = dart.getMethods(type);
  return m != null ? m[name] : null;
};
dart.getSetterType = function getSetterType(type, name) {
  let setters = dart.getSetters(type);
  if (setters != null) {
    let type = setters[name];
    if (type != null) {
      return type;
    }
  }
  let fields = dart.getFields(type);
  if (fields != null) {
    let fieldInfo = fields[name];
    if (fieldInfo != null && !fieldInfo.isFinal) {
      return fieldInfo.type;
    }
  }
  return null;
};
dart.finalFieldType = function finalFieldType(type, metadata) {
  return {type: type, isFinal: true, metadata: metadata};
};
dart.fieldType = function fieldType(type, metadata) {
  return {type: type, isFinal: false, metadata: metadata};
};
dart.classGetConstructorType = function classGetConstructorType(cls, name) {
  if (cls == null) return null;
  if (name == null) name = "new";
  let ctors = dart.getConstructors(cls);
  return ctors != null ? ctors[name] : null;
};
dart.setMethodSignature = function setMethodSignature(f, sigF) {
  return f[dart._methodSig] = sigF;
};
dart.setFieldSignature = function setFieldSignature(f, sigF) {
  return f[dart._fieldSig] = sigF;
};
dart.setGetterSignature = function setGetterSignature(f, sigF) {
  return f[dart._getterSig] = sigF;
};
dart.setSetterSignature = function setSetterSignature(f, sigF) {
  return f[dart._setterSig] = sigF;
};
dart.setConstructorSignature = function setConstructorSignature(f, sigF) {
  return f[dart._constructorSig] = sigF;
};
dart.setStaticMethodSignature = function setStaticMethodSignature(f, sigF) {
  return f[dart._staticMethodSig] = sigF;
};
dart.setStaticFieldSignature = function setStaticFieldSignature(f, sigF) {
  return f[dart._staticFieldSig] = sigF;
};
dart.setStaticGetterSignature = function setStaticGetterSignature(f, sigF) {
  return f[dart._staticGetterSig] = sigF;
};
dart.setStaticSetterSignature = function setStaticSetterSignature(f, sigF) {
  return f[dart._staticSetterSig] = sigF;
};
dart._getMembers = function _getMembers(type, kind) {
  let sig = type[kind];
  return typeof sig == "function" ? type[kind] = sig() : sig;
};
dart._hasMember = function _hasMember(type, kind, name) {
  let sig = dart._getMembers(type, kind);
  return sig != null && name in sig;
};
dart.hasMethod = function hasMethod(type, name) {
  return dart._hasMember(type, dart._methodSig, name);
};
dart.hasGetter = function hasGetter(type, name) {
  return dart._hasMember(type, dart._getterSig, name);
};
dart.hasSetter = function hasSetter(type, name) {
  return dart._hasMember(type, dart._setterSig, name);
};
dart.hasField = function hasField(type, name) {
  return dart._hasMember(type, dart._fieldSig, name);
};
dart._installProperties = function _installProperties(jsProto, dartType, installedParent) {
  if (dartType === core.Object) {
    dart._installPropertiesForObject(jsProto);
    return;
  }
  let dartSupertype = dartType.__proto__;
  if (dartSupertype !== installedParent) {
    dart._installProperties(jsProto, dartSupertype, installedParent);
  }
  let dartProto = dartType.prototype;
  dart.copyTheseProperties(jsProto, dartProto, dart.getOwnPropertySymbols(dartProto));
};
dart._installPropertiesForObject = function _installPropertiesForObject(jsProto) {
  let coreObjProto = core.Object.prototype;
  let names = dart.getOwnPropertyNames(coreObjProto);
  for (let i = 0, n = names.length; i < n; i = i + 1) {
    let name = names[i];
    if (name === "constructor") continue;
    let desc = dart.getOwnPropertyDescriptor(coreObjProto, name);
    dart.defineProperty(jsProto, dart.dartx[name], desc);
  }
};
dart._installPropertiesForGlobalObject = function _installPropertiesForGlobalObject(jsProto) {
  dart._installPropertiesForObject(jsProto);
  jsProto[dartx.toString] = function() {
    return this.toString();
  };
  dart.identityEquals == null ? dart.identityEquals = jsProto[dartx._equals] : null;
};
dart._applyExtension = function _applyExtension(jsType, dartExtType) {
  if (jsType == null) return;
  let jsProto = jsType.prototype;
  if (jsProto == null) return;
  if (dartExtType === core.Object) {
    dart._installPropertiesForGlobalObject(jsProto);
    return;
  }
  dart._installProperties(jsProto, dartExtType, jsProto[dart._extensionType]);
  if (dartExtType !== _interceptors.JSFunction) {
    jsProto[dart._extensionType] = dartExtType;
  }
  jsType[dart._methodSig] = dartExtType[dart._methodSig];
  jsType[dart._fieldSig] = dartExtType[dart._fieldSig];
  jsType[dart._getterSig] = dartExtType[dart._getterSig];
  jsType[dart._setterSig] = dartExtType[dart._setterSig];
};
dart.applyExtension = function applyExtension(name, nativeObject) {
  let dartExtType = dart._extensionMap.get(name);
  let jsType = nativeObject.constructor;
  dart._applyExtension(jsType, dartExtType);
};
dart.applyAllExtensions = function applyAllExtensions(global) {
  dart._extensionMap.forEach((dartExtType, name) => dart._applyExtension(global[name], dartExtType));
};
dart.registerExtension = function registerExtension(name, dartExtType) {
  dart._extensionMap.set(name, dartExtType);
  let jsType = dart.global[name];
  dart._applyExtension(jsType, dartExtType);
};
dart.defineExtensionMethods = function defineExtensionMethods(type, memberNames) {
  let proto = type.prototype;
  for (let name of memberNames) {
    proto[dartx[name]] = proto[name];
  }
};
dart.defineExtensionAccessors = function defineExtensionAccessors(type, memberNames) {
  let proto = type.prototype;
  for (let name of memberNames) {
    let member = null;
    let p = proto;
    for (;; p = p.__proto__) {
      member = dart.getOwnPropertyDescriptor(p, name);
      if (member != null) break;
    }
    dart.defineProperty(proto, dartx[name], member);
  }
};
dart.definePrimitiveHashCode = function definePrimitiveHashCode(proto) {
  dart.defineProperty(proto, dart.identityHashCode_, dart.getOwnPropertyDescriptor(proto, $hashCode));
};
dart.setBaseClass = function setBaseClass(derived, base) {
  derived.prototype.__proto__ = base.prototype;
  derived.__proto__ = base;
};
dart.setExtensionBaseClass = function setExtensionBaseClass(dartType, jsType) {
  let dartProto = dartType.prototype;
  dartProto[dart._extensionType] = dartType;
  dartProto.__proto__ = jsType.prototype;
};
dart.addTypeTests = function addTypeTests(ctor, isClass) {
  if (isClass == null) isClass = Symbol("_is_" + ctor.name);
  ctor.prototype[isClass] = true;
  ctor.is = function is_C(obj) {
    return obj != null && (obj[isClass] || dart.is(obj, this));
  };
  ctor.as = function as_C(obj) {
    if (obj == null || obj[isClass]) return obj;
    return dart.as(obj, this);
  };
};
dart.addTypeCaches = function addTypeCaches(type) {
  return null;
};
dart.argumentError = function argumentError(value) {
  dart.throw(new core.ArgumentError.value(value));
};
dart.throwUnimplementedError = function throwUnimplementedError(message) {
  dart.throw(new core.UnimplementedError.new(message));
};
dart.assertFailed = function assertFailed(message, fileUri = null, line = null, column = null, conditionSource = null) {
  dart.throw(new _js_helper.AssertionErrorImpl.new(message, fileUri, line, column, conditionSource));
};
dart.throwCyclicInitializationError = function throwCyclicInitializationError(field = null) {
  dart.throw(new core.CyclicInitializationError.new(core.String.as(field)));
};
dart.throwNullValueError = function throwNullValueError() {
  dart.throw(new core.NoSuchMethodError.new(null, new _internal.Symbol.new("<Unexpected Null Value>"), null, null, null));
};
dart.castError = function castError(obj, expectedType) {
  let actualType = dart.getReifiedType(obj);
  let message = dart._castErrorMessage(actualType, expectedType);
  dart.throw(new _js_helper.TypeErrorImpl.new(message));
};
dart._castErrorMessage = function _castErrorMessage(from, to) {
  let fromClass = dart.getGenericClass(from);
  if (fromClass != null) {
    let fromTypeFormals = dart.getGenericTypeFormals(fromClass);
    let fromType = dart.instantiateClass(fromClass, fromTypeFormals);
    let inferrer = new dart._TypeInferrer.new(fromTypeFormals);
    if (dart.test(inferrer.trySubtypeMatch(fromType, to))) {
      let inferredTypes = inferrer.getInferredTypes();
      if (inferredTypes != null) {
        let inferred = dart.instantiateClass(fromClass, inferredTypes);
        return "Type '" + dart.typeName(from) + "' should be '" + dart.typeName(inferred) + "' " + "to implement expected type '" + dart.typeName(to) + "'.";
      }
    }
  }
  return "Expected a value of type '" + dart.typeName(to) + "', " + "but got one of type '" + dart.typeName(from) + "'";
};
dart.getThrown = function getThrown(error) {
  if (error != null) {
    let value = error[dart._thrownValue];
    if (value != null) return value;
  }
  return error;
};
dart.stackTrace = function stackTrace(error) {
  if (!(error instanceof Error)) {
    return new dart._StackTrace.missing(error);
  }
  let trace = error[dart._stackTrace];
  if (trace != null) return trace;
  return error[dart._stackTrace] = new dart._StackTrace.new(error);
};
dart.stackTraceForError = function stackTraceForError(error) {
  return dart.stackTrace(error[dart._jsError]);
};
dart.rethrow = function rethrow_(error) {
  throw error;
};
dart.throw = function throw_(exception) {
  throw new dart.DartError(exception);
};
dart.createErrorWithStack = function createErrorWithStack(exception, trace) {
  if (trace == null) {
    let error = exception[dart._jsError];
    return error != null ? error : new dart.DartError(exception);
  }
  if (dart._StackTrace.is(trace)) {
    let originalError = trace[_jsError$];
    if (core.identical(exception, dart.getThrown(originalError))) {
      return originalError;
    }
  }
  return new dart.RethrownDartError(exception, trace);
};
dart.stackPrint = function stackPrint(error) {
  console.log(error.stack ? error.stack : "No stack trace for: " + error);
};
dart.bind = function bind(obj, name, method) {
  if (obj == null) obj = _interceptors.jsNull;
  if (method == null) method = obj[name];
  let f = method.bind(obj);
  f._boundObject = obj;
  f._boundMethod = method;
  f[dart._runtimeType] = dart.getMethodType(dart.getType(obj), name);
  return f;
};
dart.bindCall = function bindCall(obj, name) {
  if (obj == null) return null;
  let ftype = dart.getMethodType(dart.getType(obj), name);
  if (ftype == null) return null;
  let method = obj[name];
  let f = method.bind(obj);
  f._boundObject = obj;
  f._boundMethod = method;
  f[dart._runtimeType] = ftype;
  return f;
};
dart.gbind = function gbind(f, ...typeArgs) {
  let type = f[dart._runtimeType];
  type.checkBounds(typeArgs);
  let result = (...args) => f.apply(null, typeArgs.concat(args));
  return dart.fn(result, type.instantiate(typeArgs));
};
dart.dloadRepl = function dloadRepl(obj, field) {
  return dart.dload(obj, dart.replNameLookup(obj, field));
};
dart.dload = function dload(obj, field) {
  if (typeof obj == "function" && field == "call") {
    return obj;
  }
  let f = dart._canonicalMember(obj, field);
  _debugger.trackCall(obj);
  if (f != null) {
    let type = dart.getType(obj);
    if (dart.test(dart.hasField(type, f)) || dart.test(dart.hasGetter(type, f))) return obj[f];
    if (dart.test(dart.hasMethod(type, f))) return dart.bind(obj, f, null);
    if (dart.test(dart.isJsInterop(obj))) return obj[f];
  }
  return dart.noSuchMethod(obj, new dart.InvocationImpl.new(field, [], {isGetter: true}));
};
dart._stripGenericArguments = function _stripGenericArguments(type) {
  let genericClass = dart.getGenericClass(type);
  if (genericClass != null) return genericClass();
  return type;
};
dart.dputRepl = function dputRepl(obj, field, value) {
  return dart.dput(obj, dart.replNameLookup(obj, field), value);
};
dart.dput = function dput(obj, field, value) {
  let f = dart._canonicalMember(obj, field);
  _debugger.trackCall(obj);
  if (f != null) {
    let setterType = dart.getSetterType(dart.getType(obj), f);
    if (setterType != null) {
      return obj[f] = setterType.as(value);
    }
    if (dart.test(dart.isJsInterop(obj))) return obj[f] = value;
  }
  dart.noSuchMethod(obj, new dart.InvocationImpl.new(field, [value], {isSetter: true}));
  return value;
};
dart._argumentErrors = function _argumentErrors(type, actuals, namedActuals) {
  let actualsCount = actuals.length;
  let required = type.args;
  let requiredCount = required.length;
  if (actualsCount < requiredCount) {
    return "Dynamic call with too few arguments. " + "Expected: " + dart.str(requiredCount) + " Actual: " + dart.str(actualsCount);
  }
  let extras = actualsCount - requiredCount;
  let optionals = type.optionals;
  if (extras > optionals.length) {
    return "Dynamic call with too many arguments. " + "Expected: " + dart.str(requiredCount) + " Actual: " + dart.str(actualsCount);
  }
  let names = null;
  let named = type.named;
  if (namedActuals != null) {
    names = dart.getOwnPropertyNames(namedActuals);
    for (let name of names) {
      if (!named.hasOwnProperty(name)) {
        return "Dynamic call with unexpected named argument '" + dart.str(name) + "'.";
      }
    }
  }
  for (let i = 0; i < requiredCount; i = i + 1) {
    required[i].as(actuals[i]);
  }
  for (let i = 0; i < extras; i = i + 1) {
    optionals[i].as(actuals[i + requiredCount]);
  }
  if (names != null) {
    for (let name of names) {
      named[name].as(namedActuals[name]);
    }
  }
  return null;
};
dart._toSymbolName = function _toSymbolName(symbol) {
  let str = symbol.toString();
  return str.substring(7, str.length - 1);
};
dart._toDisplayName = function _toDisplayName(name) {
  if (name[0] === '_') {
    switch (name) {
      case '_get':
      {
        return '[]';
      }
      case '_set':
      {
        return '[]=';
      }
      case '_negate':
      {
        return 'unary-';
      }
      case '_constructor':
      case '_prototype':
      {
        return name.substring(1);
      }
    }
  }
  return name;
};
dart._dartSymbol = function _dartSymbol(name) {
  return typeof name === "symbol" ? dart.const(new _js_helper.PrivateSymbol.new(dart._toSymbolName(name), name)) : dart.const(new _internal.Symbol.new(dart._toDisplayName(name)));
};
dart._setterSymbol = function _setterSymbol(name) {
  return typeof name === "symbol" ? dart.const(new _js_helper.PrivateSymbol.new(dart._toSymbolName(name) + "=", name)) : dart.const(new _internal.Symbol.new(dart._toDisplayName(name) + "="));
};
dart._checkAndCall = function _checkAndCall(f, ftype, obj, typeArgs, args, named, displayName) {
  _debugger.trackCall(obj);
  let originalTarget = obj === void 0 ? f : obj;
  function callNSM(errorMessage) {
    return dart.noSuchMethod(originalTarget, new dart.InvocationImpl.new(displayName, args, {namedArguments: named, typeArguments: typeArgs, isMethod: true, failureMessage: errorMessage}));
  }
  if (f == null) return callNSM('Dynamic call of null.');
  if (!(f instanceof Function)) {
    if (f != null) {
      originalTarget = f;
      f = dart.bindCall(f, dart._canonicalMember(f, "call"));
      ftype = null;
      displayName = "call";
    }
    if (f == null) return callNSM("Dynamic call of object has no instance method 'call'.");
  }
  if (ftype == null) ftype = f[dart._runtimeType];
  if (ftype == null) {
    if (typeArgs != null) {
      dart.throwTypeError('call to JS object `' + obj + '` with type arguments <' + typeArgs + '> is not supported.');
    }
    if (named != null) args.push(named);
    return f.apply(obj, args);
  }
  if (ftype instanceof dart.GenericFunctionType) {
    let formalCount = ftype.formalCount;
    if (typeArgs == null) {
      typeArgs = ftype.instantiateDefaultBounds();
    } else if (typeArgs.length != formalCount) {
      return callNSM('Dynamic call with incorrect number of type arguments. ' + 'Expected: ' + formalCount + ' Actual: ' + typeArgs.length);
    } else {
      ftype.checkBounds(typeArgs);
    }
    ftype = ftype.instantiate(typeArgs);
  } else if (typeArgs != null) {
    return callNSM('Dynamic call with unexpected type arguments. ' + 'Expected: 0 Actual: ' + typeArgs.length);
  }
  let errorMessage = dart._argumentErrors(ftype, args, named);
  if (errorMessage == null) {
    if (typeArgs != null) args = typeArgs.concat(args);
    if (named != null) args.push(named);
    return f.apply(obj, args);
  }
  return callNSM(errorMessage);
};
dart.dcall = function dcall(f, args, named = null) {
  return dart._checkAndCall(f, null, void 0, null, args, named, f.name);
};
dart.dgcall = function dgcall(f, typeArgs, args, named = null) {
  return dart._checkAndCall(f, null, void 0, typeArgs, args, named, "call");
};
dart.replNameLookup = function replNameLookup(object, field) {
  let rawField = field;
  if (typeof field == 'symbol') {
    if (field in object) return field;
    field = field.toString();
    field = field.substring('Symbol('.length, field.length - 1);
  } else if (field.charAt(0) != '_') {
    return field;
  }
  if (field in object) return field;
  let proto = object;
  while (proto !== null) {
    let symbols = Object.getOwnPropertySymbols(proto);
    let target = 'Symbol(' + field + ')';
    for (let s = 0; s < symbols.length; s++) {
      let sym = symbols[s];
      if (target == sym.toString()) return sym;
    }
    proto = proto.__proto__;
  }
  return rawField;
};
dart.callMethod = function callMethod(obj, name, typeArgs, args, named, displayName) {
  if (typeof obj == "function" && name == "call") {
    return dart.dgcall(obj, typeArgs, args, named);
  }
  let symbol = dart._canonicalMember(obj, name);
  if (symbol == null) {
    return dart.noSuchMethod(obj, new dart.InvocationImpl.new(displayName, ListOfObjectL().as(args), {isMethod: true}));
  }
  let f = obj != null ? obj[symbol] : null;
  let type = dart.getType(obj);
  let ftype = dart.getMethodType(type, symbol);
  return dart._checkAndCall(f, ftype, obj, typeArgs, args, named, displayName);
};
dart.dsend = function dsend(obj, method, args, named = null) {
  return dart.callMethod(obj, method, null, args, named, method);
};
dart.dgsend = function dgsend(obj, typeArgs, method, args, named = null) {
  return dart.callMethod(obj, method, typeArgs, args, named, method);
};
dart.dsendRepl = function dsendRepl(obj, method, args, named = null) {
  return dart.callMethod(obj, dart.replNameLookup(obj, method), null, args, named, method);
};
dart.dgsendRepl = function dgsendRepl(obj, typeArgs, method, args, named = null) {
  return dart.callMethod(obj, dart.replNameLookup(obj, method), typeArgs, args, named, method);
};
dart.dindex = function dindex(obj, index) {
  return dart.callMethod(obj, "_get", null, [index], null, "[]");
};
dart.dsetindex = function dsetindex(obj, index, value) {
  return dart.callMethod(obj, "_set", null, [index, value], null, "[]=");
};
dart.is = function instanceOf(obj, type) {
  if (obj == null) {
    return core.identical(type, core.Null) || dart._isTop(type);
  }
  return dart.isSubtypeOf(dart.getReifiedType(obj), type);
};
dart.as = function cast(obj, type) {
  if (obj == null) return obj;
  let actual = dart.getReifiedType(obj);
  if (dart.isSubtypeOf(actual, type)) {
    return obj;
  }
  return dart.castError(obj, type);
};
dart.test = function test(obj) {
  if (obj == null) dart._throwBooleanConversionError();
  return obj;
};
dart.dtest = function dtest(obj) {
  if (!(typeof obj == 'boolean')) dart.booleanConversionFailed(obj);
  return core.bool.as(obj);
};
dart._throwBooleanConversionError = function _throwBooleanConversionError() {
  return dart.throw(new _js_helper.BooleanConversionAssertionError.new());
};
dart.booleanConversionFailed = function booleanConversionFailed(obj) {
  let actual = dart.typeName(dart.getReifiedType(obj));
  dart.throw(new _js_helper.TypeErrorImpl.new("type '" + actual + "' is not a 'bool' in boolean expression"));
};
dart.asInt = function asInt(obj) {
  if (obj == null) return null;
  if (Math.floor(obj) != obj) {
    dart.castError(obj, core.int);
  }
  return obj;
};
dart.asNullableInt = function asNullableInt(obj) {
  return dart.asInt(obj);
};
dart.notNull = function _notNull(x) {
  if (x == null) dart.throwNullValueError();
  return x;
};
dart.nullCast = function nullCast(x, type) {
  return x;
};
dart._lookupNonTerminal = function _lookupNonTerminal(map, key) {
  let result = map.get(key);
  if (result != null) return result;
  map.set(key, result = new Map());
  return result;
};
dart.constMap = function constMap(K, V, elements) {
  let count = elements[$length];
  let map = dart._lookupNonTerminal(dart.constantMaps, count);
  for (let i = 0; i < count; i = i + 1) {
    map = dart._lookupNonTerminal(map, elements[i]);
  }
  map = dart._lookupNonTerminal(map, dart.wrapType(K));
  let result = map.get(V);
  if (result != null) return core.Map$(K, V).as(result);
  result = new (_js_helper.ImmutableMap$(K, V)).from(elements);
  map.set(V, result);
  return core.Map$(K, V).as(result);
};
dart._createImmutableSet = function _createImmutableSet(E, elements) {
  dart._immutableSetConstructor == null ? dart._immutableSetConstructor = dart.getLibrary("dart:collection")._ImmutableSet$ : null;
  return new (dart._immutableSetConstructor(E)).from(elements);
};
dart.constSet = function constSet(E, elements) {
  let count = elements[$length];
  let map = dart._lookupNonTerminal(dart.constantSets, count);
  for (let i = 0; i < count; i = i + 1) {
    map = dart._lookupNonTerminal(map, elements[i]);
  }
  let result = map.get(E);
  if (result != null) return core.Set$(E).as(result);
  result = dart._createImmutableSet(E, elements);
  map.set(E, result);
  return core.Set$(E).as(result);
};
dart.multiKeyPutIfAbsent = function multiKeyPutIfAbsent(map, keys, valueFn) {
  for (let k of keys) {
    let value = map.get(k);
    if (!value) {
      map.set(k, value = new Map());
    }
    map = value;
  }
  if (map.has(dart._value)) return map.get(dart._value);
  let value = valueFn();
  map.set(dart._value, value);
  return value;
};
dart.const = function const_(obj) {
  let names = dart.getOwnNamesAndSymbols(obj);
  let count = names.length;
  let map = dart._lookupNonTerminal(dart.constants, count);
  for (let i = 0; i < count; i++) {
    let name = names[i];
    map = dart._lookupNonTerminal(map, name);
    map = dart._lookupNonTerminal(map, obj[name]);
  }
  let type = dart.getReifiedType(obj);
  let value = map.get(type);
  if (value) return value;
  map.set(type, obj);
  return obj;
};
dart.constList = function constList(elements, elementType) {
  let count = elements.length;
  let map = dart._lookupNonTerminal(dart.constantLists, count);
  for (let i = 0; i < count; i++) {
    map = dart._lookupNonTerminal(map, elements[i]);
  }
  let value = map.get(elementType);
  if (value) return value;
  _interceptors.JSArray$(elementType).unmodifiable(elements);
  map.set(elementType, elements);
  return elements;
};
dart.constFn = function constFn(x) {
  return () => x;
};
dart.extensionSymbol = function extensionSymbol(name) {
  return dartx[name];
};
dart.equals = function equals(x, y) {
  return x == null ? y == null : x[$_equals](y);
};
dart.hashCode = function hashCode(obj) {
  return obj == null ? 0 : obj[$hashCode];
};
dart.toString = function _toString(obj) {
  if (obj == null) return "null";
  if (typeof obj == 'string') return obj;
  return obj[$toString]();
};
dart.str = function str(obj) {
  if (obj == null) return "null";
  if (typeof obj == 'string') return obj;
  return core.String.as(dart.notNull(obj[$toString]()));
};
dart.noSuchMethod = function noSuchMethod(obj, invocation) {
  if (obj == null) dart.defaultNoSuchMethod(obj, invocation);
  return obj[$noSuchMethod](invocation);
};
dart.defaultNoSuchMethod = function defaultNoSuchMethod(obj, i) {
  dart.throw(new core.NoSuchMethodError.withInvocation(obj, i));
};
dart.runtimeType = function runtimeType(obj) {
  return obj == null ? dart.wrapType(core.Null) : obj[dartx.runtimeType];
};
dart._canonicalMember = function _canonicalMember(obj, name) {
  if (typeof name === "symbol") return name;
  if (obj != null && obj[dart._extensionType] != null) {
    return dartx[name];
  }
  if (name == "constructor" || name == "prototype") {
    name = "+" + name;
  }
  return name;
};
dart.loadLibrary = function loadLibrary() {
  return async.Future.value();
};
dart.defineLazy = function defineLazy(to, from, checkCycles) {
  for (let name of dart.getOwnNamesAndSymbols(from)) {
    dart.defineLazyField(to, name, dart.getOwnPropertyDescriptor(from, name));
  }
};
dart.fn = function fn(closure, type) {
  closure[dart._runtimeType] = type;
  return closure;
};
dart.lazyFn = function lazyFn(closure, computeType) {
  dart.defineAccessor(closure, dart._runtimeType, {
    get: () => dart.defineValue(closure, dart._runtimeType, computeType()),
    set: value => dart.defineValue(closure, dart._runtimeType, value),
    configurable: true
  });
  return closure;
};
dart.getFunctionType = function getFunctionType(obj) {
  let args = Array(obj.length).fill(dart.dynamic);
  return dart.fnType(dart.bottom, args, void 0);
};
dart.getReifiedType = function getReifiedType(obj) {
  switch (typeof obj) {
    case "object":
    {
      if (obj == null) return core.Null;
      if (obj instanceof core.Object) {
        return obj.constructor;
      }
      let result = obj[dart._extensionType];
      if (result == null) return dart.jsobject;
      return result;
    }
    case "function":
    {
      let result = obj[dart._runtimeType];
      if (result != null) return result;
      return dart.jsobject;
    }
    case "undefined":
    {
      return core.Null;
    }
    case "number":
    {
      return Math.floor(obj) == obj ? core.int : core.double;
    }
    case "boolean":
    {
      return core.bool;
    }
    case "string":
    {
      return core.String;
    }
    case "symbol":
    default:
    {
      return dart.jsobject;
    }
  }
};
dart.getModuleName = function getModuleName(module) {
  return module[dart._moduleName];
};
dart.getModuleNames = function getModuleNames() {
  return JSArrayOfStringL().of(Array.from(dart._loadedModules.keys()));
};
dart.getSourceMap = function getSourceMap(moduleName) {
  return dart._loadedSourceMaps.get(moduleName);
};
dart.getModuleLibraries = function getModuleLibraries(name) {
  let module = dart._loadedModules.get(name);
  if (module == null) return null;
  module[dart._moduleName] = name;
  return module;
};
dart.getModulePartMap = function getModulePartMap(name) {
  return dart._loadedPartMaps.get(name);
};
dart.trackLibraries = function trackLibraries(moduleName, libraries, parts, sourceMap) {
  if (typeof parts == 'string') {
    sourceMap = core.String.as(parts);
    parts = {};
  }
  dart._loadedSourceMaps.set(moduleName, sourceMap);
  dart._loadedModules.set(moduleName, libraries);
  dart._loadedPartMaps.set(moduleName, parts);
  dart._libraries = null;
  dart._libraryObjects = null;
  dart._parts = null;
};
dart._computeLibraryMetadata = function _computeLibraryMetadata() {
  dart._libraries = JSArrayOfStringL().of([]);
  dart._libraryObjects = new (IdentityMapOfStringL$ObjectL()).new();
  dart._parts = new (IdentityMapOfStringL$ListLOfStringL()).new();
  let modules = dart.getModuleNames();
  for (let name of modules) {
    let module = dart.getModuleLibraries(name);
    let libraries = dart.getOwnPropertyNames(module)[$cast](core.String);
    dart._libraries[$addAll](libraries);
    for (let library of libraries) {
      dart._libraryObjects[$_set](library, module[library]);
    }
    let partMap = dart.getModulePartMap(name);
    libraries = dart.getOwnPropertyNames(partMap)[$cast](core.String);
    for (let library of libraries) {
      dart._parts[$_set](library, ListOfStringL().from(partMap[library]));
    }
  }
};
dart.getLibrary = function getLibrary(uri) {
  if (dart._libraryObjects == null) {
    dart._computeLibraryMetadata();
  }
  return dart._libraryObjects[$_get](uri);
};
dart.getLibraries = function getLibraries() {
  if (dart._libraries == null) {
    dart._computeLibraryMetadata();
  }
  return dart._libraries;
};
dart.getParts = function getParts(libraryUri) {
  let t0;
  if (dart._parts == null) {
    dart._computeLibraryMetadata();
  }
  t0 = dart._parts[$_get](libraryUri);
  return t0 == null ? JSArrayOfStringL().of([]) : t0;
};
dart.polyfill = function polyfill(window) {
  if (window[dart._polyfilled]) return false;
  window[dart._polyfilled] = true;
  if (typeof window.NodeList !== "undefined") {
    window.NodeList.prototype.get = function(i) {
      return this[i];
    };
    window.NamedNodeMap.prototype.get = function(i) {
      return this[i];
    };
    window.DOMTokenList.prototype.get = function(i) {
      return this[i];
    };
    window.HTMLCollection.prototype.get = function(i) {
      return this[i];
    };
    if (typeof window.PannerNode == "undefined") {
      let audioContext;
      if (typeof window.AudioContext == "undefined" && typeof window.webkitAudioContext != "undefined") {
        audioContext = new window.webkitAudioContext();
      } else {
        audioContext = new window.AudioContext();
        window.StereoPannerNode = audioContext.createStereoPanner().constructor;
      }
      window.PannerNode = audioContext.createPanner().constructor;
    }
    if (typeof window.AudioSourceNode == "undefined") {
      window.AudioSourceNode = MediaElementAudioSourceNode.__proto__;
    }
    if (typeof window.FontFaceSet == "undefined") {
      if (typeof window.document.fonts != "undefined") {
        window.FontFaceSet = window.document.fonts.__proto__.constructor;
      }
    }
    if (typeof window.MemoryInfo == "undefined") {
      if (typeof window.performance.memory != "undefined") {
        window.MemoryInfo = window.performance.memory.constructor;
      }
    }
    if (typeof window.Geolocation == "undefined") {
      window.Geolocation == window.navigator.geolocation.constructor;
    }
    if (typeof window.Animation == "undefined") {
      let d = window.document.createElement('div');
      if (typeof d.animate != "undefined") {
        window.Animation = d.animate(d).constructor;
      }
    }
    if (typeof window.SourceBufferList == "undefined") {
      if ('MediaSource' in window) {
        window.SourceBufferList = new window.MediaSource().sourceBuffers.constructor;
      }
    }
    if (typeof window.SpeechRecognition == "undefined") {
      window.SpeechRecognition = window.webkitSpeechRecognition;
      window.SpeechRecognitionError = window.webkitSpeechRecognitionError;
      window.SpeechRecognitionEvent = window.webkitSpeechRecognitionEvent;
    }
  }
  return true;
};
dart.trackProfile = function trackProfile(flag) {
  dart.__trackProfile = flag;
};
dart.setStartAsyncSynchronously = function setStartAsyncSynchronously(value = true) {
  dart.startAsyncSynchronously = value;
};
dart.hotRestart = function hotRestart() {
  dart.hotRestartIteration = dart.notNull(dart.hotRestartIteration) + 1;
  for (let f of dart._resetFields)
    f();
  dart._resetFields[$clear]();
  for (let m of dart._cacheMaps)
    m.clear();
  dart._cacheMaps[$clear]();
  dart.constantMaps.clear();
};
dart._isJsObject = function _isJsObject(obj) {
  return dart.getReifiedType(obj) === dart.jsobject;
};
dart.assertInterop = function assertInterop(f) {
  if (!(dart._isJsObject(f) || !(f instanceof dart.global.Function))) dart.assertFailed("Dart function requires `allowInterop` to be passed to JavaScript.", L0, 87, 10, "_isJsObject(f) || !JS('bool', '# instanceof #.Function', f, global_)");
  return f;
};
dart.isDartFunction = function isDartFunction(obj) {
  return obj instanceof Function && obj[dart._runtimeType] != null;
};
dart.tearoffInterop = function tearoffInterop(f) {
  if (!dart._isJsObject(f)) return f;
  let ret = dart._assertInteropExpando._get(f);
  if (ret == null) {
    ret = function(...arguments$) {
      var args = arguments$.map(dart.assertInterop);
      return f.apply(this, args);
    };
    dart._assertInteropExpando._set(f, ret);
  }
  return ret;
};
dart._warn = function _warn(arg) {
  console.warn(arg);
};
dart.lazyJSType = function lazyJSType(getJSTypeCallback, name) {
  let ret = dart._lazyJSTypes.get(name);
  if (ret == null) {
    ret = new dart.LazyJSType.new(getJSTypeCallback, name);
    dart._lazyJSTypes.set(name, ret);
  }
  return ret;
};
dart.anonymousJSType = function anonymousJSType(name) {
  let ret = dart._anonymousJSTypes.get(name);
  if (ret == null) {
    ret = new dart.AnonymousJSType.new(name);
    dart._anonymousJSTypes.set(name, ret);
  }
  return ret;
};
dart.wrapType = function wrapType(type) {
  if (type.hasOwnProperty(dart._typeObject)) {
    return type[dart._typeObject];
  }
  let result = new dart._Type.new(type);
  type[dart._typeObject] = result;
  return result;
};
dart.unwrapType = function unwrapType(obj) {
  return obj[_type$];
};
dart._memoizeArray = function _memoizeArray(map, arr, create) {
  let len = arr.length;
  map = dart._lookupNonTerminal(map, len);
  for (var i = 0; i < len - 1; ++i) {
    map = dart._lookupNonTerminal(map, arr[i]);
  }
  let result = map.get(arr[len - 1]);
  if (result !== void 0) return result;
  map.set(arr[len - 1], result = create());
  return result;
};
dart._canonicalizeArray = function _canonicalizeArray(array, map) {
  return dart._memoizeArray(map, array, () => array);
};
dart._canonicalizeNamed = function _canonicalizeNamed(named, map) {
  let key = [];
  let names = dart.getOwnPropertyNames(named);
  for (var i = 0; i < names.length; ++i) {
    let name = names[i];
    let type = named[name];
    key.push(name);
    key.push(type);
  }
  return dart._memoizeArray(map, key, () => named);
};
dart._createSmall = function _createSmall(returnType, required) {
  let count = required.length;
  let map = dart._fnTypeSmallMap[count];
  for (var i = 0; i < count; ++i) {
    map = dart._lookupNonTerminal(map, required[i]);
  }
  let result = map.get(returnType);
  if (result !== void 0) return result;
  result = new dart.FunctionType.new(core.Type.as(returnType), required, [], {});
  map.set(returnType, result);
  return result;
};
dart._typeFormalsFromFunction = function _typeFormalsFromFunction(typeConstructor) {
  let str = typeConstructor.toString();
  let hasParens = str[$_get](0) === "(";
  let end = str[$indexOf](hasParens ? ")" : "=>");
  if (hasParens) {
    return str[$substring](1, end)[$split](",")[$map](dart.TypeVariable, n => new dart.TypeVariable.new(n[$trim]()))[$toList]();
  } else {
    return JSArrayOfTypeVariableL().of([new dart.TypeVariable.new(str[$substring](0, end)[$trim]())]);
  }
};
dart.fnType = function fnType(returnType, args, extra = null) {
  return dart.FunctionType.create(returnType, args, extra);
};
dart.gFnType = function gFnType(instantiateFn, typeBounds) {
  return new dart.GenericFunctionType.new(instantiateFn, typeBounds);
};
dart.isType = function isType(obj) {
  return obj[dart._runtimeType] === core.Type;
};
dart.checkTypeBound = function checkTypeBound(type, bound, name) {
  if (!dart.isSubtypeOf(type, bound)) {
    dart.throwTypeError("type `" + dart.str(type) + "` does not extend `" + dart.str(bound) + "` of `" + name + "`.");
  }
};
dart.typeName = function typeName(type) {
  if (type === void 0) return "undefined type";
  if (type === null) return "null type";
  if (type instanceof dart.DartType) {
    return type.toString();
  }
  let tag = type[dart._runtimeType];
  if (tag === core.Type) {
    let name = type.name;
    let args = dart.getGenericArgs(type);
    if (args == null) return name;
    if (dart.getGenericClass(type) == _interceptors.JSArray$) name = 'List';
    let result = name;
    result += '<';
    for (let i = 0; i < args.length; ++i) {
      if (i > 0) result += ', ';
      result += dart.typeName(args[i]);
    }
    result += '>';
    return result;
  }
  if (tag) return "Not a type: " + tag.name;
  return "JSObject<" + type.name + ">";
};
dart._isFunctionSubtype = function _isFunctionSubtype(ft1, ft2) {
  let ret1 = ft1.returnType;
  let ret2 = ft2.returnType;
  let args1 = ft1.args;
  let args2 = ft2.args;
  if (args1.length > args2.length) {
    return false;
  }
  for (let i = 0; i < args1.length; ++i) {
    if (!dart._isSubtype(args2[i], args1[i])) {
      return false;
    }
  }
  let optionals1 = ft1.optionals;
  let optionals2 = ft2.optionals;
  if (args1.length + optionals1.length < args2.length + optionals2.length) {
    return false;
  }
  let j = 0;
  for (let i = args1.length; i < args2.length; ++i, ++j) {
    if (!dart._isSubtype(args2[i], optionals1[j])) {
      return false;
    }
  }
  for (let i = 0; i < optionals2.length; ++i, ++j) {
    if (!dart._isSubtype(optionals2[i], optionals1[j])) {
      return false;
    }
  }
  let named1 = ft1.named;
  let named2 = ft2.named;
  let names = dart.getOwnPropertyNames(named2);
  for (let i = 0; i < names.length; ++i) {
    let name = names[i];
    let n1 = named1[name];
    let n2 = named2[name];
    if (n1 === void 0) {
      return false;
    }
    if (!dart._isSubtype(n2, n1)) {
      return false;
    }
  }
  return dart._isSubtype(ret1, ret2);
};
dart.isSubtypeOf = function isSubtypeOf(t1, t2) {
  let map = null;
  if (!t1.hasOwnProperty(dart._subtypeCache)) {
    t1[dart._subtypeCache] = map = new Map();
    dart._cacheMaps[$add](map);
  } else {
    map = t1[dart._subtypeCache];
    let result = map.get(t2);
    if (result !== void 0) return result;
  }
  let result = dart._isSubtype(t1, t2);
  map.set(t2, result);
  return result;
};
dart._isBottom = function _isBottom(type) {
  return type == dart.bottom || type == core.Null;
};
dart._isTop = function _isTop(type) {
  return type == core.Object || type == dart.dynamic || type == dart.void;
};
dart._isFutureOr = function _isFutureOr(type) {
  return core.identical(dart.getGenericClass(type), async.FutureOr$);
};
dart._isSubtype = function _isSubtype(t1, t2) {
  if (t1 === t2) {
    return true;
  }
  if (dart._isTop(t2) || dart._isBottom(t1)) {
    return true;
  }
  if (dart._isTop(t1) || dart._isBottom(t2)) {
    return false;
  }
  if (dart._isFutureOr(t1)) {
    let t1TypeArg = dart.getGenericArgs(t1)[0];
    if (dart._isFutureOr(t2)) {
      let t2TypeArg = dart.getGenericArgs(t2)[0];
      return dart._isSubtype(t1TypeArg, t2TypeArg);
    }
    let t1Future = async.Future$(t1TypeArg);
    return dart._isSubtype(t1Future, t2) && dart._isSubtype(t1TypeArg, t2);
  }
  if (dart._isFutureOr(t2)) {
    let t2TypeArg = dart.getGenericArgs(t2)[0];
    let t2Future = async.Future$(t2TypeArg);
    return dart._isSubtype(t1, t2Future) || dart._isSubtype(t1, t2TypeArg);
  }
  if (!(t2 instanceof dart.AbstractFunctionType)) {
    if (t1 instanceof dart.AbstractFunctionType) {
      return t2 === core.Function;
    }
    if (t1 === dart.jsobject && t2 instanceof dart.AnonymousJSType) {
      return true;
    }
    return dart._isInterfaceSubtype(t1, t2);
  }
  if (!(t1 instanceof dart.AbstractFunctionType)) {
    return false;
  }
  if (t1 instanceof dart.GenericFunctionType) {
    if (!(t2 instanceof dart.GenericFunctionType)) {
      return false;
    }
    let formalCount = t1.formalCount;
    if (formalCount !== t2.formalCount) {
      return false;
    }
    let fresh = t2.typeFormals;
    if (t1.hasTypeBounds || t2.hasTypeBounds) {
      let t1Bounds = t1.instantiateTypeBounds(fresh);
      let t2Bounds = t2.instantiateTypeBounds(fresh);
      for (let i = 0; i < formalCount; i++) {
        if (t1Bounds[i] != t2Bounds[i]) {
          if (!(dart._isSubtype(t1Bounds[i], t2Bounds[i]) && dart._isSubtype(t2Bounds[i], t1Bounds[i]))) {
            return false;
          }
        }
      }
    }
    t1 = t1.instantiate(fresh);
    t2 = t2.instantiate(fresh);
  } else if (t2 instanceof dart.GenericFunctionType) {
    return false;
  }
  return dart._isFunctionSubtype(t1, t2);
};
dart._isInterfaceSubtype = function _isInterfaceSubtype(t1, t2) {
  if (t1 instanceof dart.LazyJSType) t1 = t1.rawJSTypeForCheck();
  if (t2 instanceof dart.LazyJSType) t2 = t2.rawJSTypeForCheck();
  if (t1 === t2) {
    return true;
  }
  if (t1 === core.Object) {
    return false;
  }
  if (t1 === core.Function || t2 === core.Function) {
    return false;
  }
  if (t1 == null) {
    return t2 == core.Object || t2 == dart.dynamic;
  }
  let raw1 = dart.getGenericClass(t1);
  let raw2 = dart.getGenericClass(t2);
  if (raw1 != null && raw1 == raw2) {
    let typeArguments1 = dart.getGenericArgs(t1);
    let typeArguments2 = dart.getGenericArgs(t2);
    if (typeArguments1.length != typeArguments2.length) {
      dart.assertFailed();
    }
    let variances = dart.getGenericArgVariances(t1);
    for (let i = 0; i < typeArguments1.length; ++i) {
      if (variances === void 0 || variances[i] == 1) {
        if (!dart._isSubtype(typeArguments1[i], typeArguments2[i])) {
          return false;
        }
      } else if (variances[i] == 2) {
        if (!dart._isSubtype(typeArguments2[i], typeArguments1[i])) {
          return false;
        }
      } else if (variances[i] == 3) {
        if (!dart._isSubtype(typeArguments1[i], typeArguments2[i]) || !dart._isSubtype(typeArguments2[i], typeArguments1[i])) {
          return false;
        }
      }
    }
    return true;
  }
  if (dart._isInterfaceSubtype(t1.__proto__, t2)) {
    return true;
  }
  let m1 = dart.getMixin(t1);
  if (m1 != null && dart._isInterfaceSubtype(m1, t2)) {
    return true;
  }
  let getInterfaces = dart.getImplements(t1);
  if (getInterfaces) {
    for (let i1 of getInterfaces()) {
      if (dart._isInterfaceSubtype(i1, t2)) {
        return true;
      }
    }
  }
  return false;
};
dart.extractTypeArguments = function extractTypeArguments(T, instance, f) {
  if (instance == null) {
    dart.throw(new core.ArgumentError.new("Cannot extract type of null instance."));
  }
  let type = T;
  if (dart.AbstractFunctionType.is(type) || dart._isFutureOr(type)) {
    dart.throw(new core.ArgumentError.new("Cannot extract from non-class type (" + dart.str(type) + ")."));
  }
  let typeArguments = dart.getGenericArgs(type);
  if (dart.test(typeArguments[$isEmpty])) {
    dart.throw(new core.ArgumentError.new("Cannot extract from non-generic type (" + dart.str(type) + ")."));
  }
  let supertype = dart._getMatchingSupertype(dart.getReifiedType(instance), type);
  if (!(supertype != null)) dart.assertFailed(null, L0, 1060, 10, "supertype != null");
  let typeArgs = dart.getGenericArgs(supertype);
  if (!(typeArgs != null && dart.test(typeArgs[$isNotEmpty]))) dart.assertFailed(null, L0, 1062, 10, "typeArgs != null && typeArgs.isNotEmpty");
  return dart.dgcall(f, typeArgs, []);
};
dart._getMatchingSupertype = function _getMatchingSupertype(subtype, supertype) {
  if (core.identical(subtype, supertype)) return supertype;
  if (subtype == null || dart.equals(subtype, core.Object)) return null;
  let subclass = dart.getGenericClass(subtype);
  let superclass = dart.getGenericClass(supertype);
  if (subclass != null && core.identical(subclass, superclass)) {
    return subtype;
  }
  let result = dart._getMatchingSupertype(subtype.__proto__, supertype);
  if (result != null) return result;
  let mixin = dart.getMixin(subtype);
  if (mixin != null) {
    result = dart._getMatchingSupertype(mixin, supertype);
    if (result != null) return result;
  }
  let getInterfaces = dart.getImplements(subtype);
  if (getInterfaces != null) {
    for (let iface of getInterfaces()) {
      result = dart._getMatchingSupertype(iface, supertype);
      if (result != null) return result;
    }
  }
  return null;
};
dart.defineValue = function defineValue(obj, name, value) {
  dart.defineAccessor(obj, name, {value: value, configurable: true, writable: true});
  return value;
};
dart.throwTypeError = function throwTypeError(message) {
  dart.throw(new _js_helper.TypeErrorImpl.new(message));
};
dart.throwInternalError = function throwInternalError(message) {
  throw Error(message);
};
dart.getOwnNamesAndSymbols = function getOwnNamesAndSymbols(obj) {
  let names = dart.getOwnPropertyNames(obj);
  let symbols = dart.getOwnPropertySymbols(obj);
  return names.concat(symbols);
};
dart.safeGetOwnProperty = function safeGetOwnProperty(obj, name) {
  if (obj.hasOwnProperty(name)) return obj[name];
};
dart.defineLazyField = function defineLazyField(to, name, desc) {
  const initializer = desc.get;
  let init = initializer;
  let value = null;
  desc.get = function() {
    if (init == null) return value;
    let f = init;
    init = dart.throwCyclicInitializationError;
    if (f === init) f(name);
    dart._resetFields.push(() => {
      init = initializer;
      value = null;
    });
    try {
      value = f();
      init = null;
      return value;
    } catch (e) {
      init = null;
      value = null;
      throw e;
    }
  };
  desc.configurable = true;
  if (desc.set != null) {
    desc.set = function(x) {
      init = null;
      value = x;
    };
  }
  return dart.defineProperty(to, name, desc);
};
dart.copyTheseProperties = function copyTheseProperties(to, from, names) {
  for (let i = 0, n = names.length; i < n; i = i + 1) {
    let name = names[i];
    if (dart.equals(name, "constructor")) continue;
    dart.copyProperty(to, from, name);
  }
  return to;
};
dart.copyProperty = function copyProperty(to, from, name) {
  let desc = dart.getOwnPropertyDescriptor(from, name);
  if (name == Symbol.iterator) {
    let existing = dart.getOwnPropertyDescriptor(to, name);
    if (existing != null) {
      if (existing.writable) {
        to[name] = desc.value;
      }
      return;
    }
  }
  dart.defineProperty(to, name, desc);
};
dart.export = function exportProperty(to, from, name) {
  return dart.copyProperty(to, from, name);
};
dart.copyProperties = function copyProperties(to, from) {
  return dart.copyTheseProperties(to, from, dart.getOwnNamesAndSymbols(from));
};
dart._polyfilled = Symbol("_polyfilled");
dart.global = (function() {
  var globalState = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : null;
  if (!globalState) {
    globalState = new Function('return this;')();
  }
  dart.polyfill(globalState);
  if (globalState.Error) {
    globalState.Error.stackTraceLimit = Infinity;
  }
  let settings = 'ddcSettings' in globalState ? globalState.ddcSettings : {};
  dart.trackProfile('trackProfile' in settings ? settings.trackProfile : false);
  return globalState;
})();
dart.JsSymbol = Symbol;
dart.libraryPrototype = dart.library;
dart.startAsyncSynchronously = true;
dart._cacheMaps = [];
dart._resetFields = [];
dart.hotRestartIteration = 0;
dart.addAsyncCallback = function() {
};
dart.removeAsyncCallback = function() {
};
dart.defineProperty = Object.defineProperty;
dart.defineAccessor = Object.defineProperty;
dart.getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
dart.getOwnPropertyNames = Object.getOwnPropertyNames;
dart.getOwnPropertySymbols = Object.getOwnPropertySymbols;
dart.getPrototypeOf = Object.getPrototypeOf;
dart._mixin = Symbol("mixin");
dart.mixinOn = Symbol("mixinOn");
dart.implements = Symbol("implements");
dart._typeArguments = Symbol("typeArguments");
dart._variances = Symbol("variances");
dart._originalDeclaration = Symbol("originalDeclaration");
dart.mixinNew = Symbol("dart.mixinNew");
dart._constructorSig = Symbol("sigCtor");
dart._methodSig = Symbol("sigMethod");
dart._fieldSig = Symbol("sigField");
dart._getterSig = Symbol("sigGetter");
dart._setterSig = Symbol("sigSetter");
dart._staticMethodSig = Symbol("sigStaticMethod");
dart._staticFieldSig = Symbol("sigStaticField");
dart._staticGetterSig = Symbol("sigStaticGetter");
dart._staticSetterSig = Symbol("sigStaticSetter");
dart._genericTypeCtor = Symbol("genericType");
dart._libraryUri = Symbol("libraryUri");
dart._extensionType = Symbol("extensionType");
dart.dartx = dartx;
dart._extensionMap = new Map();
dart.isFuture = Symbol("_is_Future");
dart.isIterable = Symbol("_is_Iterable");
dart.isList = Symbol("_is_List");
dart.isMap = Symbol("_is_Map");
dart.isStream = Symbol("_is_Stream");
dart.isStreamSubscription = Symbol("_is_StreamSubscription");
dart.identityEquals = null;
dart._runtimeType = Symbol("_runtimeType");
dart._moduleName = Symbol("_moduleName");
dart._loadedModules = new Map();
dart._loadedPartMaps = new Map();
dart._loadedSourceMaps = new Map();
dart._libraries = null;
dart._libraryObjects = null;
dart._parts = null;
dart.metadata = Symbol("metadata");
dart._lazyJSTypes = new Map();
dart._anonymousJSTypes = new Map();
core.Object = class Object {
  constructor() {
    throw Error("use `new " + dart.typeName(dart.getReifiedType(this)) + ".new(...)` to create a Dart object");
  }
  static is(o) {
    return true;
  }
  static as(o) {
    return o;
  }
  _equals(other) {
    if (other == null) return false;
    return this === other;
  }
  get hashCode() {
    return core.identityHashCode(this);
  }
  toString() {
    return "Instance of '" + dart.typeName(dart.getReifiedType(this)) + "'";
  }
  noSuchMethod(invocation) {
    return dart.defaultNoSuchMethod(this, invocation);
  }
  get runtimeType() {
    return dart.wrapType(dart.getReifiedType(this));
  }
};
(core.Object.new = function() {
  ;
}).prototype = core.Object.prototype;
dart.addTypeCaches(core.Object);
dart.setMethodSignature(core.Object, () => ({
  __proto__: Object.create(null),
  _equals: dart.fnType(core.bool, [dart.dynamic]),
  [$_equals]: dart.fnType(core.bool, [dart.dynamic]),
  toString: dart.fnType(core.String, []),
  [$toString]: dart.fnType(core.String, []),
  noSuchMethod: dart.fnType(dart.dynamic, [core.Invocation]),
  [$noSuchMethod]: dart.fnType(dart.dynamic, [core.Invocation])
}));
dart.setGetterSignature(core.Object, () => ({
  __proto__: Object.create(null),
  hashCode: core.int,
  [$hashCode]: core.int,
  runtimeType: core.Type,
  [$runtimeType]: core.Type
}));
dart.setLibraryUri(core.Object, L1$);
dart.lazyFn(core.Object, () => core.Type);
dart.defineExtensionMethods(core.Object, ['_equals', 'toString', 'noSuchMethod']);
dart.defineExtensionAccessors(core.Object, ['hashCode', 'runtimeType']);
dart.registerExtension("Object", core.Object);
dart.DartType = class DartType extends core.Object {
  get name() {
    return this[$toString]();
  }
  is(object) {
    return dart.is(object, this);
  }
  as(object) {
    return dart.as(object, this);
  }
};
(dart.DartType.new = function() {
  ;
}).prototype = dart.DartType.prototype;
dart.addTypeTests(dart.DartType);
dart.DartType[dart.implements] = () => [core.Type];
dart.setMethodSignature(dart.DartType, () => ({
  __proto__: dart.getMethods(dart.DartType.__proto__),
  is: dart.fnType(core.bool, [dart.dynamic]),
  as: dart.fnType(dart.dynamic, [dart.dynamic])
}));
dart.setGetterSignature(dart.DartType, () => ({
  __proto__: dart.getGetters(dart.DartType.__proto__),
  name: core.String
}));
dart.setLibraryUri(dart.DartType, L2$);
dart.DynamicType = class DynamicType extends dart.DartType {
  toString() {
    return "dynamic";
  }
  is(object) {
    return true;
  }
  as(object) {
    return object;
  }
};
(dart.DynamicType.new = function() {
  ;
}).prototype = dart.DynamicType.prototype;
dart.addTypeTests(dart.DynamicType);
dart.setLibraryUri(dart.DynamicType, L2$);
dart.defineExtensionMethods(dart.DynamicType, ['toString']);
dart.dynamic = new dart.DynamicType.new();
dart.VoidType = class VoidType extends dart.DartType {
  toString() {
    return "void";
  }
};
(dart.VoidType.new = function() {
  ;
}).prototype = dart.VoidType.prototype;
dart.addTypeTests(dart.VoidType);
dart.setLibraryUri(dart.VoidType, L2$);
dart.defineExtensionMethods(dart.VoidType, ['toString']);
dart.void = new dart.VoidType.new();
dart.JSObjectType = class JSObjectType extends dart.DartType {
  toString() {
    return "NativeJavaScriptObject";
  }
};
(dart.JSObjectType.new = function() {
  ;
}).prototype = dart.JSObjectType.prototype;
dart.addTypeTests(dart.JSObjectType);
dart.setLibraryUri(dart.JSObjectType, L2$);
dart.defineExtensionMethods(dart.JSObjectType, ['toString']);
dart.jsobject = new dart.JSObjectType.new();
dart._typeObject = Symbol("typeObject");
dart._fnTypeNamedArgMap = new Map();
dart._fnTypeArrayArgMap = new Map();
dart._fnTypeTypeMap = new Map();
dart._fnTypeSmallMap = [new Map(), new Map(), new Map()];
dart._subtypeCache = Symbol("_subtypeCache");
dart._thrownValue = Symbol("_thrownValue");
dart._jsError = Symbol("_jsError");
dart._stackTrace = Symbol("_stackTrace");
dart.DartError = class DartError extends Error {
  constructor(error) {
    super();
    if (error == null) error = new core.NullThrownError.new();
    this[dart._thrownValue] = error;
    if (error != null && typeof error == "object" && error[dart._jsError] == null) {
      error[dart._jsError] = this;
    }
  }
  get message() {
    return dart.toString(this[dart._thrownValue]);
  }
};
dart.RethrownDartError = class RethrownDartError extends dart.DartError {
  constructor(error, stackTrace) {
    super(error);
    this[dart._stackTrace] = stackTrace;
  }
  get message() {
    return super.message + "\n    " + dart.toString(this[dart._stackTrace]) + "\n";
  }
};
dart.constantMaps = new Map();
dart.constantSets = new Map();
dart._immutableSetConstructor = null;
dart._value = Symbol("_value");
dart.constants = new Map();
dart.constantLists = new Map();
dart.identityHashCode_ = Symbol("_identityHashCode");
dart.JsIterator = class JsIterator {
  constructor(dartIterator) {
    this.dartIterator = dartIterator;
  }
  next() {
    let i = this.dartIterator;
    let done = !i.moveNext();
    return {done: done, value: done ? void 0 : i.current};
  }
};
dart.defineLazy(dart, {
  /*dart._assertInteropExpando*/get _assertInteropExpando() {
    return new (ExpandoOfFunctionL()).new();
  },
  set _assertInteropExpando(_) {},
  /*dart.bottom*/get bottom() {
    return core.Null;
  }
}, true);
var _rawJSType = dart.privateName(dart, "_rawJSType");
var _getRawJSTypeFn$ = dart.privateName(dart, "_getRawJSTypeFn");
var _dartName$ = dart.privateName(dart, "_dartName");
var _getRawJSType = dart.privateName(dart, "_getRawJSType");
dart.LazyJSType = class LazyJSType extends dart.DartType {
  toString() {
    let raw = this[_getRawJSType]();
    return raw != null ? dart.typeName(raw) : "JSObject<" + this[_dartName$] + ">";
  }
  [_getRawJSType]() {
    let raw = this[_rawJSType];
    if (raw != null) return raw;
    try {
      raw = this[_getRawJSTypeFn$]();
    } catch (e$) {
      let e = dart.getThrown(e$);
    }
    if (raw == null) {
      dart._warn("Cannot find native JavaScript type (" + this[_dartName$] + ") for type check");
    } else {
      this[_rawJSType] = raw;
      this[_getRawJSTypeFn$] = null;
    }
    return raw;
  }
  rawJSTypeForCheck() {
    let t1;
    t1 = this[_getRawJSType]();
    return t1 == null ? dart.jsobject : t1;
  }
  isRawJSType(obj) {
    let raw = this[_getRawJSType]();
    if (raw != null) return obj instanceof raw;
    return dart._isJsObject(obj);
  }
  is(obj) {
    return this.isRawJSType(obj) || dart.is(obj, this);
  }
  as(obj) {
    return obj == null || this.is(obj) ? obj : dart.castError(obj, this);
  }
};
(dart.LazyJSType.new = function(_getRawJSTypeFn, _dartName) {
  this[_rawJSType] = null;
  this[_getRawJSTypeFn$] = _getRawJSTypeFn;
  this[_dartName$] = _dartName;
  ;
}).prototype = dart.LazyJSType.prototype;
dart.addTypeTests(dart.LazyJSType);
dart.setMethodSignature(dart.LazyJSType, () => ({
  __proto__: dart.getMethods(dart.LazyJSType.__proto__),
  [_getRawJSType]: dart.fnType(core.Object, []),
  rawJSTypeForCheck: dart.fnType(core.Object, []),
  isRawJSType: dart.fnType(core.bool, [dart.dynamic])
}));
dart.setLibraryUri(dart.LazyJSType, L2$);
dart.setFieldSignature(dart.LazyJSType, () => ({
  __proto__: dart.getFields(dart.LazyJSType.__proto__),
  [_getRawJSTypeFn$]: dart.fieldType(dart.fnType(dart.dynamic, [])),
  [_dartName$]: dart.finalFieldType(core.String),
  [_rawJSType]: dart.fieldType(core.Object)
}));
dart.defineExtensionMethods(dart.LazyJSType, ['toString']);
dart.AnonymousJSType = class AnonymousJSType extends dart.DartType {
  toString() {
    return this[_dartName$];
  }
  is(obj) {
    return dart._isJsObject(obj) || dart.is(obj, this);
  }
  as(obj) {
    return obj == null || dart._isJsObject(obj) ? obj : dart.as(obj, this);
  }
};
(dart.AnonymousJSType.new = function(_dartName) {
  this[_dartName$] = _dartName;
  ;
}).prototype = dart.AnonymousJSType.prototype;
dart.addTypeTests(dart.AnonymousJSType);
dart.setLibraryUri(dart.AnonymousJSType, L2$);
dart.setFieldSignature(dart.AnonymousJSType, () => ({
  __proto__: dart.getFields(dart.AnonymousJSType.__proto__),
  [_dartName$]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(dart.AnonymousJSType, ['toString']);
dart.BottomType = class BottomType extends dart.DartType {
  toString() {
    return "bottom";
  }
};
(dart.BottomType.new = function() {
  ;
}).prototype = dart.BottomType.prototype;
dart.addTypeTests(dart.BottomType);
dart.setLibraryUri(dart.BottomType, L2$);
dart.defineExtensionMethods(dart.BottomType, ['toString']);
core.Type = class Type extends core.Object {};
(core.Type.new = function() {
  ;
}).prototype = core.Type.prototype;
dart.addTypeTests(core.Type);
dart.addTypeCaches(core.Type);
dart.setLibraryUri(core.Type, L1$);
dart._Type = class _Type extends core.Type {
  toString() {
    return dart.typeName(this[_type$]);
  }
  get runtimeType() {
    return dart.wrapType(core.Type);
  }
};
(dart._Type.new = function(_type) {
  this[_type$] = _type;
  ;
}).prototype = dart._Type.prototype;
dart.addTypeTests(dart._Type);
dart.setLibraryUri(dart._Type, L2$);
dart.setFieldSignature(dart._Type, () => ({
  __proto__: dart.getFields(dart._Type.__proto__),
  [_type$]: dart.finalFieldType(core.Object)
}));
dart.defineExtensionMethods(dart._Type, ['toString']);
dart.defineExtensionAccessors(dart._Type, ['runtimeType']);
dart.AbstractFunctionType = class AbstractFunctionType extends dart.DartType {};
(dart.AbstractFunctionType.new = function() {
  ;
}).prototype = dart.AbstractFunctionType.prototype;
dart.addTypeTests(dart.AbstractFunctionType);
dart.setLibraryUri(dart.AbstractFunctionType, L2$);
var _stringValue = dart.privateName(dart, "_stringValue");
var returnType$ = dart.privateName(dart, "FunctionType.returnType");
var args$ = dart.privateName(dart, "FunctionType.args");
var optionals$ = dart.privateName(dart, "FunctionType.optionals");
var named$ = dart.privateName(dart, "FunctionType.named");
dart.FunctionType = class FunctionType extends dart.AbstractFunctionType {
  get returnType() {
    return this[returnType$];
  }
  set returnType(value) {
    super.returnType = value;
  }
  get args() {
    return this[args$];
  }
  set args(value) {
    super.args = value;
  }
  get optionals() {
    return this[optionals$];
  }
  set optionals(value) {
    super.optionals = value;
  }
  get named() {
    return this[named$];
  }
  set named(value) {
    super.named = value;
  }
  static create(returnType, args, extra) {
    if (extra == null && args.length < 3) {
      return dart._createSmall(returnType, args);
    }
    args = dart._canonicalizeArray(args, dart._fnTypeArrayArgMap);
    let keys = null;
    let create = null;
    if (extra == null) {
      keys = [returnType, args];
      create = () => new dart.FunctionType.new(core.Type.as(returnType), args, [], {});
    } else if (extra instanceof Array) {
      let optionals = dart._canonicalizeArray(extra, dart._fnTypeArrayArgMap);
      keys = [returnType, args, optionals];
      create = () => new dart.FunctionType.new(core.Type.as(returnType), args, optionals, {});
    } else {
      let named = dart._canonicalizeNamed(extra, dart._fnTypeNamedArgMap);
      keys = [returnType, args, named];
      create = () => new dart.FunctionType.new(core.Type.as(returnType), args, [], named);
    }
    return dart._memoizeArray(dart._fnTypeTypeMap, keys, create);
  }
  toString() {
    return this.name;
  }
  get requiredParameterCount() {
    return this.args[$length];
  }
  get positionalParameterCount() {
    return dart.notNull(this.args[$length]) + dart.notNull(this.optionals[$length]);
  }
  getPositionalParameter(i) {
    let n = this.args[$length];
    return dart.notNull(i) < dart.notNull(n) ? this.args[$_get](i) : this.optionals[$_get](dart.notNull(i) + dart.notNull(n));
  }
  getNamedParameters() {
    let result = new (IdentityMapOfStringL$ObjectL()).new();
    let names = dart.getOwnPropertyNames(this.named);
    names.sort();
    for (let i = 0; i < names.length; i = i + 1) {
      let name = names[i];
      result[$_set](name, this.named[name]);
    }
    return result;
  }
  get name() {
    if (this[_stringValue] != null) return this[_stringValue];
    let buffer = "(";
    for (let i = 0; i < this.args.length; i = i + 1) {
      if (i > 0) {
        buffer = buffer + ", ";
      }
      buffer = buffer + dart.typeName(this.args[i]);
    }
    if (this.optionals.length > 0) {
      if (this.args.length > 0) buffer = buffer + ", ";
      buffer = buffer + "[";
      for (let i = 0; i < this.optionals.length; i = i + 1) {
        if (i > 0) {
          buffer = buffer + ", ";
        }
        buffer = buffer + dart.typeName(this.optionals[i]);
      }
      buffer = buffer + "]";
    } else if (Object.keys(this.named).length > 0) {
      if (this.args.length > 0) buffer = buffer + ", ";
      buffer = buffer + "{";
      let names = dart.getOwnPropertyNames(this.named);
      names.sort();
      for (let i = 0; i < names.length; i = i + 1) {
        if (i > 0) {
          buffer = buffer + ", ";
        }
        let typeNameString = dart.typeName(this.named[names[i]]);
        buffer = buffer + (typeNameString + " " + dart.str(names[i]));
      }
      buffer = buffer + "}";
    }
    let returnTypeName = dart.typeName(this.returnType);
    buffer = buffer + (") => " + returnTypeName);
    this[_stringValue] = buffer;
    return buffer;
  }
  is(obj) {
    if (typeof obj == "function") {
      let actual = obj[dart._runtimeType];
      return actual == null || dart.isSubtypeOf(actual, this);
    }
    return false;
  }
  as(obj) {
    if (obj == null) return obj;
    if (typeof obj == "function") {
      let actual = obj[dart._runtimeType];
      if (actual == null || dart.isSubtypeOf(actual, this)) {
        return obj;
      }
    }
    return dart.castError(obj, this);
  }
};
(dart.FunctionType.new = function(returnType, args, optionals, named) {
  this[_stringValue] = null;
  this[returnType$] = returnType;
  this[args$] = args;
  this[optionals$] = optionals;
  this[named$] = named;
  ;
}).prototype = dart.FunctionType.prototype;
dart.addTypeTests(dart.FunctionType);
dart.setMethodSignature(dart.FunctionType, () => ({
  __proto__: dart.getMethods(dart.FunctionType.__proto__),
  getPositionalParameter: dart.fnType(dart.dynamic, [core.int]),
  getNamedParameters: dart.fnType(core.Map$(core.String, core.Object), [])
}));
dart.setGetterSignature(dart.FunctionType, () => ({
  __proto__: dart.getGetters(dart.FunctionType.__proto__),
  requiredParameterCount: core.int,
  positionalParameterCount: core.int
}));
dart.setLibraryUri(dart.FunctionType, L2$);
dart.setFieldSignature(dart.FunctionType, () => ({
  __proto__: dart.getFields(dart.FunctionType.__proto__),
  returnType: dart.finalFieldType(core.Type),
  args: dart.finalFieldType(core.List),
  optionals: dart.finalFieldType(core.List),
  named: dart.finalFieldType(dart.dynamic),
  [_stringValue]: dart.fieldType(core.String)
}));
dart.defineExtensionMethods(dart.FunctionType, ['toString']);
var name$ = dart.privateName(dart, "TypeVariable.name");
dart.TypeVariable = class TypeVariable extends dart.DartType {
  get name() {
    return this[name$];
  }
  set name(value) {
    super.name = value;
  }
  toString() {
    return this.name;
  }
};
(dart.TypeVariable.new = function(name) {
  this[name$] = name;
  ;
}).prototype = dart.TypeVariable.prototype;
dart.addTypeTests(dart.TypeVariable);
dart.setLibraryUri(dart.TypeVariable, L2$);
dart.setFieldSignature(dart.TypeVariable, () => ({
  __proto__: dart.getFields(dart.TypeVariable.__proto__),
  name: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(dart.TypeVariable, ['toString']);
dart.Variance = class Variance extends core.Object {};
(dart.Variance.new = function() {
  ;
}).prototype = dart.Variance.prototype;
dart.addTypeTests(dart.Variance);
dart.setLibraryUri(dart.Variance, L2$);
dart.defineLazy(dart.Variance, {
  /*dart.Variance.unrelated*/get unrelated() {
    return 0;
  },
  /*dart.Variance.covariant*/get covariant() {
    return 1;
  },
  /*dart.Variance.contravariant*/get contravariant() {
    return 2;
  },
  /*dart.Variance.invariant*/get invariant() {
    return 3;
  }
}, true);
var _typeFormals = dart.privateName(dart, "_typeFormals");
var _instantiateTypeBounds$ = dart.privateName(dart, "_instantiateTypeBounds");
var _instantiateTypeParts = dart.privateName(dart, "_instantiateTypeParts");
var formalCount = dart.privateName(dart, "GenericFunctionType.formalCount");
dart.GenericFunctionType = class GenericFunctionType extends dart.AbstractFunctionType {
  get formalCount() {
    return this[formalCount];
  }
  set formalCount(value) {
    super.formalCount = value;
  }
  get typeFormals() {
    if (this[_typeFormals] != null) return this[_typeFormals];
    return this[_typeFormals] = dart._typeFormalsFromFunction(this[_instantiateTypeParts]);
  }
  get hasTypeBounds() {
    return this[_instantiateTypeBounds$] != null;
  }
  checkBounds(typeArgs) {
    if (!dart.dtest(this.hasTypeBounds)) return;
    let bounds = this.instantiateTypeBounds(typeArgs);
    let typeFormals = this.typeFormals;
    for (let i = 0; i < dart.notNull(typeArgs[$length]); i = i + 1) {
      dart.checkTypeBound(typeArgs[$_get](i), bounds[$_get](i), typeFormals[$_get](i).name);
    }
  }
  instantiate(typeArgs) {
    let parts = this[_instantiateTypeParts].apply(null, typeArgs);
    return dart.FunctionType.create(parts[0], parts[1], parts[2]);
  }
  instantiateTypeBounds(typeArgs) {
    if (!dart.dtest(this.hasTypeBounds)) {
      return core.List.filled(this.formalCount, dart.dynamic);
    }
    return this[_instantiateTypeBounds$].apply(null, typeArgs);
  }
  toString() {
    let s = "<";
    let typeFormals = this.typeFormals;
    let typeBounds = this.instantiateTypeBounds(typeFormals);
    for (let i = 0, n = typeFormals[$length]; i < dart.notNull(n); i = i + 1) {
      if (i !== 0) s = s + ", ";
      s = s + typeFormals[i].name;
      let bound = typeBounds[$_get](i);
      if (bound !== dart.dynamic && bound !== core.Object) {
        s = s + (" extends " + dart.str(bound));
      }
    }
    s = s + (">" + dart.notNull(dart.toString(this.instantiate(typeFormals))));
    return s;
  }
  instantiateDefaultBounds() {
    let typeFormals = this.typeFormals;
    let all = new (IdentityMapOfObjectL$intL()).new();
    let defaults = ListOfObjectL().new(typeFormals[$length]);
    let partials = new (IdentityMapOfTypeVariableL$ObjectL()).new();
    let typeBounds = this.instantiateTypeBounds(typeFormals);
    for (let i = 0; i < dart.notNull(typeFormals[$length]); i = i + 1) {
      let typeFormal = typeFormals[$_get](i);
      let bound = typeBounds[$_get](i);
      all[$_set](typeFormal, i);
      if (core.identical(bound, dart.dynamic)) {
        defaults[$_set](i, bound);
      } else {
        defaults[$_set](i, typeFormal);
        partials[$_set](typeFormal, bound);
      }
    }
    function hasFreeFormal(t) {
      if (dart.test(partials[$containsKey](t))) return true;
      let typeArgs = dart.getGenericArgs(t);
      if (typeArgs != null) return typeArgs[$any](hasFreeFormal);
      if (dart.GenericFunctionType.is(t)) {
        return hasFreeFormal(t.instantiate(t.typeFormals));
      }
      if (dart.FunctionType.is(t)) {
        return dart.test(hasFreeFormal(t.returnType)) || dart.test(t.args[$any](hasFreeFormal));
      }
      return false;
    }
    let hasProgress = true;
    while (hasProgress) {
      hasProgress = false;
      for (let typeFormal of partials[$keys]) {
        let partialBound = partials[$_get](typeFormal);
        if (!dart.test(hasFreeFormal(partialBound))) {
          let index = all[$_get](typeFormal);
          defaults[$_set](index, this.instantiateTypeBounds(defaults)[$_get](index));
          partials[$remove](typeFormal);
          hasProgress = true;
          break;
        }
      }
    }
    if (dart.test(partials[$isNotEmpty])) {
      dart.throwTypeError("Instantiate to bounds failed for type with " + "recursive generic bounds: " + dart.typeName(this) + ". " + "Try passing explicit type arguments.");
    }
    return defaults;
  }
  is(obj) {
    if (typeof obj == "function") {
      let actual = obj[dart._runtimeType];
      return actual != null && dart.isSubtypeOf(actual, this);
    }
    return false;
  }
  as(obj) {
    if (obj == null || this.is(obj)) return obj;
    return dart.castError(obj, this);
  }
};
(dart.GenericFunctionType.new = function(instantiateTypeParts, _instantiateTypeBounds) {
  this[_typeFormals] = null;
  this[_instantiateTypeBounds$] = _instantiateTypeBounds;
  this[_instantiateTypeParts] = instantiateTypeParts;
  this[formalCount] = instantiateTypeParts.length;
  ;
}).prototype = dart.GenericFunctionType.prototype;
dart.addTypeTests(dart.GenericFunctionType);
dart.setMethodSignature(dart.GenericFunctionType, () => ({
  __proto__: dart.getMethods(dart.GenericFunctionType.__proto__),
  checkBounds: dart.fnType(dart.void, [core.List]),
  instantiate: dart.fnType(dart.FunctionType, [dart.dynamic]),
  instantiateTypeBounds: dart.fnType(core.List, [core.List]),
  instantiateDefaultBounds: dart.fnType(core.List, [])
}));
dart.setGetterSignature(dart.GenericFunctionType, () => ({
  __proto__: dart.getGetters(dart.GenericFunctionType.__proto__),
  typeFormals: core.List$(dart.TypeVariable),
  hasTypeBounds: dart.dynamic
}));
dart.setLibraryUri(dart.GenericFunctionType, L2$);
dart.setFieldSignature(dart.GenericFunctionType, () => ({
  __proto__: dart.getFields(dart.GenericFunctionType.__proto__),
  [_instantiateTypeParts]: dart.finalFieldType(dart.dynamic),
  formalCount: dart.finalFieldType(core.int),
  [_instantiateTypeBounds$]: dart.finalFieldType(dart.dynamic),
  [_typeFormals]: dart.fieldType(core.List$(dart.TypeVariable))
}));
dart.defineExtensionMethods(dart.GenericFunctionType, ['toString']);
var _typeVariables = dart.privateName(dart, "_typeVariables");
var _isSubtypeMatch = dart.privateName(dart, "_isSubtypeMatch");
var _constrainLower = dart.privateName(dart, "_constrainLower");
var _constrainUpper = dart.privateName(dart, "_constrainUpper");
var _isFunctionSubtypeMatch = dart.privateName(dart, "_isFunctionSubtypeMatch");
var _isInterfaceSubtypeMatch = dart.privateName(dart, "_isInterfaceSubtypeMatch");
var _isNull = dart.privateName(dart, "_isNull");
var _isTop$ = dart.privateName(dart, "_isTop");
dart._TypeInferrer = class _TypeInferrer extends core.Object {
  getInferredTypes() {
    let result = JSArrayOfObjectL().of([]);
    for (let constraint of this[_typeVariables][$values]) {
      if (constraint.lower != null) {
        result[$add](constraint.lower);
      } else if (constraint.upper != null) {
        result[$add](constraint.upper);
      } else {
        return null;
      }
    }
    return result;
  }
  trySubtypeMatch(subtype, supertype) {
    return this[_isSubtypeMatch](subtype, supertype);
  }
  [_constrainLower](parameter, lower) {
    this[_typeVariables][$_get](parameter)[_constrainLower](lower);
  }
  [_constrainUpper](parameter, upper) {
    this[_typeVariables][$_get](parameter)[_constrainUpper](upper);
  }
  [_isFunctionSubtypeMatch](subtype, supertype) {
    if (dart.notNull(subtype.requiredParameterCount) > dart.notNull(supertype.requiredParameterCount)) {
      return false;
    }
    if (dart.notNull(subtype.positionalParameterCount) < dart.notNull(supertype.positionalParameterCount)) {
      return false;
    }
    if (!dart.VoidType.is(supertype.returnType) && !dart.test(this[_isSubtypeMatch](subtype.returnType, supertype.returnType))) {
      return false;
    }
    for (let i = 0, n = supertype.positionalParameterCount; i < dart.notNull(n); i = i + 1) {
      if (!dart.test(this[_isSubtypeMatch](supertype.getPositionalParameter(i), subtype.getPositionalParameter(i)))) {
        return false;
      }
    }
    let supertypeNamed = supertype.getNamedParameters();
    let subtypeNamed = supertype.getNamedParameters();
    for (let name of supertypeNamed[$keys]) {
      let subtypeParamType = subtypeNamed[$_get](name);
      if (subtypeParamType == null) return false;
      if (!dart.test(this[_isSubtypeMatch](supertypeNamed[$_get](name), subtypeParamType))) {
        return false;
      }
    }
    return true;
  }
  [_isInterfaceSubtypeMatch](subtype, supertype) {
    let matchingSupertype = dart._getMatchingSupertype(subtype, supertype);
    if (matchingSupertype == null) return false;
    let matchingTypeArgs = dart.getGenericArgs(matchingSupertype);
    let supertypeTypeArgs = dart.getGenericArgs(supertype);
    for (let i = 0; i < dart.notNull(supertypeTypeArgs[$length]); i = i + 1) {
      if (!dart.test(this[_isSubtypeMatch](matchingTypeArgs[$_get](i), supertypeTypeArgs[$_get](i)))) {
        return false;
      }
    }
    return true;
  }
  [_isNull](type) {
    return core.identical(type, core.Null);
  }
  [_isSubtypeMatch](subtype, supertype) {
    if (dart.TypeVariable.is(subtype) && dart.test(this[_typeVariables][$containsKey](subtype))) {
      this[_constrainUpper](subtype, supertype);
      return true;
    }
    if (dart.TypeVariable.is(supertype) && dart.test(this[_typeVariables][$containsKey](supertype))) {
      this[_constrainLower](supertype, subtype);
      return true;
    }
    if (core.identical(subtype, supertype)) return true;
    if (dart.test(this[_isTop$](supertype))) return true;
    if (dart.test(this[_isNull](subtype))) return true;
    if (dart._isFutureOr(subtype)) {
      let subtypeArg = dart.getGenericArgs(subtype)[$_get](0);
      if (dart._isFutureOr(supertype)) {
        let supertypeArg = dart.getGenericArgs(supertype)[$_get](0);
        return this[_isSubtypeMatch](subtypeArg, supertypeArg);
      }
      let subtypeFuture = async.Future$(subtypeArg);
      return dart.test(this[_isSubtypeMatch](subtypeFuture, supertype)) && dart.test(this[_isSubtypeMatch](subtypeArg, supertype));
    }
    if (dart._isFutureOr(supertype)) {
      let supertypeArg = dart.getGenericArgs(supertype)[$_get](0);
      let supertypeFuture = async.Future$(supertypeArg);
      return dart.test(this[_isSubtypeMatch](subtype, supertypeFuture)) || dart.test(this[_isSubtypeMatch](subtype, supertypeArg));
    }
    if (dart.TypeVariable.is(subtype)) {
      return dart.TypeVariable.is(supertype) && subtype == supertype;
    }
    if (dart.GenericFunctionType.is(subtype)) {
      if (dart.GenericFunctionType.is(supertype)) {
        let formalCount = subtype.formalCount;
        if (formalCount != supertype.formalCount) return false;
        let fresh = supertype.typeFormals;
        let t1Bounds = subtype.instantiateTypeBounds(fresh);
        let t2Bounds = supertype.instantiateTypeBounds(fresh);
        for (let i = 0; i < dart.notNull(formalCount); i = i + 1) {
          if (!dart.test(this[_isSubtypeMatch](t2Bounds[$_get](i), t1Bounds[$_get](i)))) {
            return false;
          }
        }
        return this[_isFunctionSubtypeMatch](subtype.instantiate(fresh), supertype.instantiate(fresh));
      } else {
        return false;
      }
    } else if (dart.GenericFunctionType.is(supertype)) {
      return false;
    }
    if (dart.FunctionType.is(subtype)) {
      if (!dart.FunctionType.is(supertype)) {
        if (core.identical(supertype, core.Function) || core.identical(supertype, core.Object)) {
          return true;
        } else {
          return false;
        }
      }
      if (dart.FunctionType.is(supertype)) {
        return this[_isFunctionSubtypeMatch](subtype, supertype);
      }
    }
    return this[_isInterfaceSubtypeMatch](subtype, supertype);
  }
  [_isTop$](type) {
    return core.identical(type, dart.dynamic) || core.identical(type, dart.void) || core.identical(type, core.Object);
  }
};
(dart._TypeInferrer.new = function(typeVariables) {
  this[_typeVariables] = LinkedHashMapOfTypeVariableL$TypeConstraintL().fromIterables(typeVariables, typeVariables[$map](dart.TypeConstraint, _ => new dart.TypeConstraint.new()));
  ;
}).prototype = dart._TypeInferrer.prototype;
dart.addTypeTests(dart._TypeInferrer);
dart.setMethodSignature(dart._TypeInferrer, () => ({
  __proto__: dart.getMethods(dart._TypeInferrer.__proto__),
  getInferredTypes: dart.fnType(core.List$(core.Object), []),
  trySubtypeMatch: dart.fnType(core.bool, [core.Object, core.Object]),
  [_constrainLower]: dart.fnType(dart.void, [dart.TypeVariable, core.Object]),
  [_constrainUpper]: dart.fnType(dart.void, [dart.TypeVariable, core.Object]),
  [_isFunctionSubtypeMatch]: dart.fnType(core.bool, [dart.FunctionType, dart.FunctionType]),
  [_isInterfaceSubtypeMatch]: dart.fnType(core.bool, [core.Object, core.Object]),
  [_isNull]: dart.fnType(core.bool, [core.Object]),
  [_isSubtypeMatch]: dart.fnType(core.bool, [core.Object, core.Object]),
  [_isTop$]: dart.fnType(core.bool, [core.Object])
}));
dart.setLibraryUri(dart._TypeInferrer, L2$);
dart.setFieldSignature(dart._TypeInferrer, () => ({
  __proto__: dart.getFields(dart._TypeInferrer.__proto__),
  [_typeVariables]: dart.finalFieldType(core.Map$(dart.TypeVariable, dart.TypeConstraint))
}));
var lower = dart.privateName(dart, "TypeConstraint.lower");
var upper = dart.privateName(dart, "TypeConstraint.upper");
dart.TypeConstraint = class TypeConstraint extends core.Object {
  get lower() {
    return this[lower];
  }
  set lower(value) {
    this[lower] = value;
  }
  get upper() {
    return this[upper];
  }
  set upper(value) {
    this[upper] = value;
  }
  [_constrainLower](type) {
    if (this.lower != null) {
      if (dart.isSubtypeOf(this.lower, type)) {
        return;
      }
      if (!dart.isSubtypeOf(type, this.lower)) {
        type = core.Null;
      }
    }
    this.lower = type;
  }
  [_constrainUpper](type) {
    if (this.upper != null) {
      if (dart.isSubtypeOf(type, this.upper)) {
        return;
      }
      if (!dart.isSubtypeOf(this.upper, type)) {
        type = core.Object;
      }
    }
    this.upper = type;
  }
  toString() {
    return dart.typeName(this.lower) + " <: <type> <: " + dart.typeName(this.upper);
  }
};
(dart.TypeConstraint.new = function() {
  this[lower] = null;
  this[upper] = null;
  ;
}).prototype = dart.TypeConstraint.prototype;
dart.addTypeTests(dart.TypeConstraint);
dart.setMethodSignature(dart.TypeConstraint, () => ({
  __proto__: dart.getMethods(dart.TypeConstraint.__proto__),
  [_constrainLower]: dart.fnType(dart.void, [core.Object]),
  [_constrainUpper]: dart.fnType(dart.void, [core.Object])
}));
dart.setLibraryUri(dart.TypeConstraint, L2$);
dart.setFieldSignature(dart.TypeConstraint, () => ({
  __proto__: dart.getFields(dart.TypeConstraint.__proto__),
  lower: dart.fieldType(core.Object),
  upper: dart.fieldType(core.Object)
}));
dart.defineExtensionMethods(dart.TypeConstraint, ['toString']);
var _trace = dart.privateName(dart, "_trace");
var _jsObjectMissingTrace = dart.privateName(dart, "_jsObjectMissingTrace");
dart._StackTrace = class _StackTrace extends core.Object {
  toString() {
    if (this[_trace] != null) return this[_trace];
    let e = this[_jsError$];
    let trace = "";
    if (e != null && typeof e === "object") {
      trace = _interceptors.NativeError.is(e) ? e[$dartStack]() : e.stack;
      if (trace != null && _debugger.stackTraceMapper != null) {
        trace = _debugger.stackTraceMapper(trace);
      }
    }
    if (trace[$isEmpty] || this[_jsObjectMissingTrace] != null) {
      let jsToString = null;
      try {
        jsToString = "" + this[_jsObjectMissingTrace];
      } catch (e$) {
        let _ = dart.getThrown(e$);
        jsToString = "<error converting JS object to string>";
      }
      trace = "Non-error `" + dart.str(jsToString) + "` thrown by JS does not have stack trace." + "\nCaught in Dart at:\n\n" + dart.str(trace);
    }
    return this[_trace] = trace;
  }
};
(dart._StackTrace.new = function(_jsError) {
  this[_trace] = null;
  this[_jsError$] = _jsError;
  this[_jsObjectMissingTrace] = null;
  ;
}).prototype = dart._StackTrace.prototype;
(dart._StackTrace.missing = function(caughtObj) {
  this[_trace] = null;
  this[_jsObjectMissingTrace] = caughtObj != null ? caughtObj : "null";
  this[_jsError$] = Error();
  ;
}).prototype = dart._StackTrace.prototype;
dart.addTypeTests(dart._StackTrace);
dart._StackTrace[dart.implements] = () => [core.StackTrace];
dart.setLibraryUri(dart._StackTrace, L2$);
dart.setFieldSignature(dart._StackTrace, () => ({
  __proto__: dart.getFields(dart._StackTrace.__proto__),
  [_jsError$]: dart.finalFieldType(core.Object),
  [_jsObjectMissingTrace]: dart.finalFieldType(core.Object),
  [_trace]: dart.fieldType(core.String)
}));
dart.defineExtensionMethods(dart._StackTrace, ['toString']);
let const$;
let const$0;
var C0;
core.Invocation = class Invocation extends core.Object {
  static method(memberName, positionalArguments, namedArguments = null) {
    return new core._Invocation.method(memberName, null, positionalArguments, namedArguments);
  }
  static genericMethod(memberName, typeArguments, positionalArguments, namedArguments = null) {
    return new core._Invocation.method(memberName, typeArguments, positionalArguments, namedArguments);
  }
  get typeArguments() {
    return C0 || CT.C0;
  }
  get isAccessor() {
    return dart.test(this.isGetter) || dart.test(this.isSetter);
  }
};
(core.Invocation.new = function() {
  ;
}).prototype = core.Invocation.prototype;
dart.addTypeTests(core.Invocation);
dart.addTypeCaches(core.Invocation);
dart.setGetterSignature(core.Invocation, () => ({
  __proto__: dart.getGetters(core.Invocation.__proto__),
  typeArguments: core.List$(core.Type),
  isAccessor: core.bool
}));
dart.setLibraryUri(core.Invocation, L1$);
var memberName$ = dart.privateName(dart, "InvocationImpl.memberName");
var positionalArguments$ = dart.privateName(dart, "InvocationImpl.positionalArguments");
var namedArguments$ = dart.privateName(dart, "InvocationImpl.namedArguments");
var typeArguments$ = dart.privateName(dart, "InvocationImpl.typeArguments");
var isMethod$ = dart.privateName(dart, "InvocationImpl.isMethod");
var isGetter$ = dart.privateName(dart, "InvocationImpl.isGetter");
var isSetter$ = dart.privateName(dart, "InvocationImpl.isSetter");
var failureMessage$ = dart.privateName(dart, "InvocationImpl.failureMessage");
dart.InvocationImpl = class InvocationImpl extends core.Invocation {
  get memberName() {
    return this[memberName$];
  }
  set memberName(value) {
    super.memberName = value;
  }
  get positionalArguments() {
    return this[positionalArguments$];
  }
  set positionalArguments(value) {
    super.positionalArguments = value;
  }
  get namedArguments() {
    return this[namedArguments$];
  }
  set namedArguments(value) {
    super.namedArguments = value;
  }
  get typeArguments() {
    return this[typeArguments$];
  }
  set typeArguments(value) {
    super.typeArguments = value;
  }
  get isMethod() {
    return this[isMethod$];
  }
  set isMethod(value) {
    super.isMethod = value;
  }
  get isGetter() {
    return this[isGetter$];
  }
  set isGetter(value) {
    super.isGetter = value;
  }
  get isSetter() {
    return this[isSetter$];
  }
  set isSetter(value) {
    super.isSetter = value;
  }
  get failureMessage() {
    return this[failureMessage$];
  }
  set failureMessage(value) {
    super.failureMessage = value;
  }
  static _namedArgsToSymbols(namedArgs) {
    if (namedArgs == null) return const$0 || (const$0 = dart.constMap(core.Symbol, dart.dynamic, []));
    return MapOfSymbolL$dynamic().unmodifiable(collection.LinkedHashMap.fromIterable(dart.getOwnPropertyNames(namedArgs), {
      key: dart._dartSymbol,
      value: k => namedArgs[k]
    }));
  }
};
(dart.InvocationImpl.new = function(memberName, positionalArguments, opts) {
  let namedArguments = opts && 'namedArguments' in opts ? opts.namedArguments : null;
  let typeArguments = opts && 'typeArguments' in opts ? opts.typeArguments : null;
  let isMethod = opts && 'isMethod' in opts ? opts.isMethod : false;
  let isGetter = opts && 'isGetter' in opts ? opts.isGetter : false;
  let isSetter = opts && 'isSetter' in opts ? opts.isSetter : false;
  let failureMessage = opts && 'failureMessage' in opts ? opts.failureMessage : "method not found";
  this[isMethod$] = isMethod;
  this[isGetter$] = isGetter;
  this[isSetter$] = isSetter;
  this[failureMessage$] = failureMessage;
  this[memberName$] = dart.test(isSetter) ? dart._setterSymbol(memberName) : dart._dartSymbol(memberName);
  this[positionalArguments$] = core.List.unmodifiable(positionalArguments);
  this[namedArguments$] = dart.InvocationImpl._namedArgsToSymbols(namedArguments);
  this[typeArguments$] = typeArguments == null ? const$ || (const$ = dart.constList([], core.Type)) : ListOfTypeL().unmodifiable(typeArguments[$map](dart.dynamic, dart.wrapType));
  dart.InvocationImpl.__proto__.new.call(this);
  ;
}).prototype = dart.InvocationImpl.prototype;
dart.addTypeTests(dart.InvocationImpl);
dart.setLibraryUri(dart.InvocationImpl, L2$);
dart.setFieldSignature(dart.InvocationImpl, () => ({
  __proto__: dart.getFields(dart.InvocationImpl.__proto__),
  memberName: dart.finalFieldType(core.Symbol),
  positionalArguments: dart.finalFieldType(core.List),
  namedArguments: dart.finalFieldType(core.Map$(core.Symbol, dart.dynamic)),
  typeArguments: dart.finalFieldType(core.List$(core.Type)),
  isMethod: dart.finalFieldType(core.bool),
  isGetter: dart.finalFieldType(core.bool),
  isSetter: dart.finalFieldType(core.bool),
  failureMessage: dart.finalFieldType(core.String)
}));
var L47 = "org-dartlang-sdk:///sdk/lib/developer/extension.dart";
var L38 = "org-dartlang-sdk:///sdk/lib/collection/splay_tree.dart";
var L37 = "org-dartlang-sdk:///sdk/lib/collection/queue.dart";
var L77 = "org-dartlang-sdk:///sdk/lib/_http/crypto.dart";
var L69 = "dart:web_audio";
var L35 = "org-dartlang-sdk:///sdk/lib/collection/iterator.dart";
var L30 = "org-dartlang-sdk:///sdk/lib/async/broadcast_stream_controller.dart";
var L41 = "org-dartlang-sdk:///sdk/lib/convert/byte_conversion.dart";
var L56 = "org-dartlang-sdk:///sdk/lib/io/socket.dart";
var L67 = "dart:html_common";
var L44 = "org-dartlang-sdk:///sdk/lib/convert/line_splitter.dart";
var L64 = "dart:indexed_db";
var L76 = "dart:_http";
var L1$ = "dart:core";
var L62 = "org-dartlang-sdk:///sdk/lib/_internal/js_dev_runtime/patch/math_patch.dart";
var L21 = "dart:_isolate_helper";
var L22 = "dart:_js_helper";
var L57 = "org-dartlang-sdk:///sdk/lib/io/common.dart";
var L11 = "org-dartlang-sdk:///sdk/lib/async/stream.dart";
var L23 = "org-dartlang-sdk:///sdk/lib/_internal/js_dev_runtime/private/js_helper.dart";
var L55 = "org-dartlang-sdk:///sdk/lib/io/secure_socket.dart";
var L52 = "org-dartlang-sdk:///sdk/lib/io/io_resource_info.dart";
var L46 = "dart:developer";
var L45 = "org-dartlang-sdk:///sdk/lib/convert/utf.dart";
var L36 = "org-dartlang-sdk:///sdk/lib/collection/linked_list.dart";
var L82 = "org-dartlang-sdk:///sdk/lib/_http/websocket_impl.dart";
var L27 = "dart:_native_typed_data";
var L54 = "org-dartlang-sdk:///sdk/lib/io/network_profiling.dart";
var L14 = "org-dartlang-sdk:///sdk/lib/core/iterable.dart";
var L0 = "org-dartlang-sdk:///sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/types.dart";
var L12 = "dart:async";
var L26 = "dart:_metadata";
var L24 = "org-dartlang-sdk:///sdk/lib/_internal/js_dev_runtime/private/regexp_helper.dart";
var L48 = "dart:io";
var L51 = "org-dartlang-sdk:///sdk/lib/io/file_system_entity.dart";
var L75 = "org-dartlang-sdk:///sdk/lib/core/uri.dart";
var L74 = "org-dartlang-sdk:///sdk/lib/core/errors.dart";
var L78 = "org-dartlang-sdk:///sdk/lib/_http/http_headers.dart";
var L18 = "org-dartlang-sdk:///sdk/lib/internal/linked_list.dart";
var L60 = "org-dartlang-sdk:///sdk/lib/_internal/js_dev_runtime/patch/js_patch.dart";
var L40 = "org-dartlang-sdk:///sdk/lib/convert/base64.dart";
var L50 = "org-dartlang-sdk:///sdk/lib/io/directory_impl.dart";
var L4 = "org-dartlang-sdk:///sdk/lib/_internal/js_dev_runtime/private/debugger.dart";
var L29 = "org-dartlang-sdk:///sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart";
var L2$ = "dart:_runtime";
var L25 = "org-dartlang-sdk:///sdk/lib/_internal/js_dev_runtime/private/js_rti.dart";
var L61 = "dart:math";
var L3 = "dart:_debugger";
var L65 = "dart:html";
var L34 = "org-dartlang-sdk:///sdk/lib/async/zone.dart";
var L72 = "org-dartlang-sdk:///sdk/lib/_internal/js_dev_runtime/patch/core_patch.dart";
var L80 = "org-dartlang-sdk:///sdk/lib/_http/http_parser.dart";
var L68 = "dart:svg";
var L79 = "org-dartlang-sdk:///sdk/lib/_http/http_impl.dart";
var L33 = "org-dartlang-sdk:///sdk/lib/async/stream_controller.dart";
var L32 = "org-dartlang-sdk:///sdk/lib/async/future_impl.dart";
var L49 = "org-dartlang-sdk:///sdk/lib/io/bytes_builder.dart";
var L81 = "org-dartlang-sdk:///sdk/lib/_http/http_session.dart";
var L10 = "dart:_internal";
var L5 = "dart:_foreign_helper";
var L39 = "org-dartlang-sdk:///sdk/lib/_internal/js_dev_runtime/patch/convert_patch.dart";
var L9 = "dart:collection";
var L63 = "org-dartlang-sdk:///sdk/lib/math/rectangle.dart";
var L31 = "org-dartlang-sdk:///sdk/lib/async/stream_impl.dart";
var L66 = "org-dartlang-sdk:///sdk/lib/html/dart2js/html_dart2js.dart";
var L42 = "org-dartlang-sdk:///sdk/lib/convert/json.dart";
var L8 = "org-dartlang-sdk:///sdk/lib/collection/list.dart";
var L73 = "org-dartlang-sdk:///sdk/lib/core/date_time.dart";
var L19 = "org-dartlang-sdk:///sdk/lib/collection/iterable.dart";
var L59 = "dart:js";
var L43 = "org-dartlang-sdk:///sdk/lib/convert/latin1.dart";
var L70 = "dart:web_gl";
var L28 = "dart:typed_data";
var L13 = "dart:convert";
var L15 = "org-dartlang-sdk:///sdk/lib/collection/maps.dart";
var L17 = "org-dartlang-sdk:///sdk/lib/internal/sort.dart";
var L58 = "dart:isolate";
var L7 = "org-dartlang-sdk:///sdk/lib/_internal/js_dev_runtime/private/js_array.dart";
var L6 = "dart:_interceptors";
var L71 = "dart:web_sql";
var L16 = "org-dartlang-sdk:///sdk/lib/internal/iterable.dart";
var L20 = "org-dartlang-sdk:///sdk/lib/internal/internal.dart";
var L53 = "org-dartlang-sdk:///sdk/lib/io/link.dart";
dart.defineLazy(CT, {
  get C0() {
    return C0 = const$ || (const$ = dart.constList([], core.Type));
  },
  get C1() {
    return C1 = dart.const({
      __proto__: _debugger.JsonMLConfig.prototype,
      [name$0]: "none"
    });
  },
  get C2() {
    return C2 = dart.const({
      __proto__: _debugger.JsonMLConfig.prototype,
      [name$0]: "skipDart"
    });
  },
  get C3() {
    return C3 = dart.const({
      __proto__: _debugger.JsonMLConfig.prototype,
      [name$0]: "keyToString"
    });
  },
  get C4() {
    return C4 = dart.const({
      __proto__: _debugger.JsonMLConfig.prototype,
      [name$0]: "asClass"
    });
  },
  get C5() {
    return C5 = dart.const({
      __proto__: _debugger.JsonMLConfig.prototype,
      [name$0]: "asObject"
    });
  },
  get C6() {
    return C6 = dart.const({
      __proto__: _debugger.JsonMLConfig.prototype,
      [name$0]: "asMap"
    });
  },
  get C7() {
    return C7 = dart.fn(_debugger.getTypeName, dynamicToStringL());
  },
  get C8() {
    return C8 = dart.const({
      __proto__: _foreign_helper._Rest.prototype
    });
  },
  get C9() {
    return C9 = dart.const(new _js_helper.PrivateSymbol.new('_receiver', _receiver));
  },
  get C10() {
    return C10 = dart.const(new _js_helper.PrivateSymbol.new('_existingArgumentNames', _existingArgumentNames));
  },
  get C11() {
    return C11 = dart.const(new _js_helper.PrivateSymbol.new('_arguments', _arguments));
  },
  get C12() {
    return C12 = dart.const(new _js_helper.PrivateSymbol.new('_memberName', _memberName));
  },
  get C13() {
    return C13 = dart.const(new _js_helper.PrivateSymbol.new('_invocation', _invocation));
  },
  get C14() {
    return C14 = dart.const(new _js_helper.PrivateSymbol.new('_namedArguments', _namedArguments));
  },
  get C15() {
    return C15 = dart.const(new _js_helper.PrivateSymbol.new('_hasValue', _hasValue));
  },
  get C16() {
    return C16 = dart.const(new _js_helper.PrivateSymbol.new('_errorExplanation', _errorExplanation));
  },
  get C17() {
    return C17 = dart.const(new _js_helper.PrivateSymbol.new('_errorName', _errorName));
  },
  get C18() {
    return C18 = dart.const({
      __proto__: core.OutOfMemoryError.prototype
    });
  },
  get C19() {
    return C19 = dart.fn(collection.ListMixin._compareAny, dynamicAnddynamicTointL());
  },
  get C20() {
    return C20 = dart.fn(core._kNull, dynamicToNullN());
  },
  get C21() {
    return C21 = dart.fn(collection.MapBase._id, dynamicTodynamic());
  },
  get C22() {
    return C22 = dart.const({
      __proto__: EmptyIteratorOfNullN().prototype
    });
  },
  get C23() {
    return C23 = dart.constList([1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000, 10000000000.0, 100000000000.0, 1000000000000.0, 10000000000000.0, 100000000000000.0, 1000000000000000.0, 10000000000000000.0, 100000000000000000.0, 1000000000000000000.0, 10000000000000000000.0, 100000000000000000000.0, 1e+21, 1e+22], core.double);
  },
  get C24() {
    return C24 = dart.fn(_js_helper.Primitives.dateNow, VoidTointL());
  },
  get C25() {
    return C25 = dart.const(new _js_helper.PrivateSymbol.new('_receiver', _receiver$0));
  },
  get C26() {
    return C26 = dart.const(new _js_helper.PrivateSymbol.new('_existingArgumentNames', _existingArgumentNames$0));
  },
  get C27() {
    return C27 = dart.const(new _js_helper.PrivateSymbol.new('_arguments', _arguments$0));
  },
  get C28() {
    return C28 = dart.const(new _js_helper.PrivateSymbol.new('_memberName', _memberName$0));
  },
  get C29() {
    return C29 = dart.const(new _js_helper.PrivateSymbol.new('_invocation', _invocation$0));
  },
  get C30() {
    return C30 = dart.const(new _js_helper.PrivateSymbol.new('_namedArguments', _namedArguments$0));
  },
  get C31() {
    return C31 = dart.fn(_js_helper._matchString, MatchLToStringL());
  },
  get C32() {
    return C32 = dart.fn(_js_helper._stringIdentity, StringLToStringL());
  },
  get C33() {
    return C33 = dart.const({
      __proto__: _js_helper._Patch.prototype
    });
  },
  get C34() {
    return C34 = dart.const({
      __proto__: _js_helper._NotNull.prototype
    });
  },
  get C35() {
    return C35 = dart.const({
      __proto__: _js_helper._Undefined.prototype
    });
  },
  get C36() {
    return C36 = dart.const({
      __proto__: _js_helper._NullCheck.prototype
    });
  },
  get C37() {
    return C37 = dart.const({
      __proto__: typed_data.Endian.prototype,
      [Endian__littleEndian]: false
    });
  },
  get C38() {
    return C38 = dart.fn(async._nullDataHandler, ObjectLTovoid$());
  },
  get C39() {
    return C39 = dart.fn(async._nullErrorHandler, ObjectLAndStackTraceLTovoid());
  },
  get C40() {
    return C40 = dart.fn(async._nullDoneHandler, VoidTovoid());
  },
  get C41() {
    return C41 = dart.const({
      __proto__: async._DelayedDone.prototype
    });
  },
  get C42() {
    return C42 = dart.constList([], core.Null);
  },
  get C43() {
    return C43 = dart.fn(async.Future._kTrue, dynamicToboolL());
  },
  get C44() {
    return C44 = async._AsyncRun._scheduleImmediateJSOverride;
  },
  get C45() {
    return C45 = async._AsyncRun._scheduleImmediateWithPromise;
  },
  get C46() {
    return C46 = dart.const({
      __proto__: async._RootZone.prototype
    });
  },
  get C48() {
    return C48 = dart.fn(async._rootRun, ZoneLAndZoneDelegateLAndZoneL__ToRL());
  },
  get C47() {
    return C47 = dart.const({
      __proto__: async._RunNullaryZoneFunction.prototype,
      [function$0]: C48 || CT.C48,
      [zone$0]: C46 || CT.C46
    });
  },
  get C50() {
    return C50 = dart.fn(async._rootRunUnary, ZoneLAndZoneDelegateLAndZoneL__ToRL$());
  },
  get C49() {
    return C49 = dart.const({
      __proto__: async._RunUnaryZoneFunction.prototype,
      [function$1]: C50 || CT.C50,
      [zone$1]: C46 || CT.C46
    });
  },
  get C52() {
    return C52 = dart.fn(async._rootRunBinary, ZoneLAndZoneDelegateLAndZoneL__ToRL$0());
  },
  get C51() {
    return C51 = dart.const({
      __proto__: async._RunBinaryZoneFunction.prototype,
      [function$2]: C52 || CT.C52,
      [zone$2]: C46 || CT.C46
    });
  },
  get C54() {
    return C54 = dart.fn(async._rootRegisterCallback, ZoneLAndZoneDelegateLAndZoneL__ToFn());
  },
  get C53() {
    return C53 = dart.const({
      __proto__: async._RegisterNullaryZoneFunction.prototype,
      [function$3]: C54 || CT.C54,
      [zone$3]: C46 || CT.C46
    });
  },
  get C56() {
    return C56 = dart.fn(async._rootRegisterUnaryCallback, ZoneLAndZoneDelegateLAndZoneL__ToFn$());
  },
  get C55() {
    return C55 = dart.const({
      __proto__: async._RegisterUnaryZoneFunction.prototype,
      [function$4]: C56 || CT.C56,
      [zone$4]: C46 || CT.C46
    });
  },
  get C58() {
    return C58 = dart.fn(async._rootRegisterBinaryCallback, ZoneLAndZoneDelegateLAndZoneL__ToFn$0());
  },
  get C57() {
    return C57 = dart.const({
      __proto__: async._RegisterBinaryZoneFunction.prototype,
      [function$5]: C58 || CT.C58,
      [zone$5]: C46 || CT.C46
    });
  },
  get C60() {
    return C60 = dart.fn(async._rootErrorCallback, ZoneLAndZoneDelegateLAndZoneL__ToAsyncErrorL());
  },
  get C59() {
    return C59 = dart.const({
      __proto__: _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLAsyncErrorL().prototype,
      [func]: C60 || CT.C60,
      [zone$]: C46 || CT.C46
    });
  },
  get C62() {
    return C62 = dart.fn(async._rootScheduleMicrotask, ZoneLAndZoneDelegateLAndZoneL__Tovoid());
  },
  get C61() {
    return C61 = dart.const({
      __proto__: _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid().prototype,
      [func]: C62 || CT.C62,
      [zone$]: C46 || CT.C46
    });
  },
  get C64() {
    return C64 = dart.fn(async._rootCreateTimer, ZoneLAndZoneDelegateLAndZoneL__ToTimerL());
  },
  get C63() {
    return C63 = dart.const({
      __proto__: _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLTimerL().prototype,
      [func]: C64 || CT.C64,
      [zone$]: C46 || CT.C46
    });
  },
  get C66() {
    return C66 = dart.fn(async._rootCreatePeriodicTimer, ZoneLAndZoneDelegateLAndZoneL__ToTimerL$());
  },
  get C65() {
    return C65 = dart.const({
      __proto__: _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLTimerL$().prototype,
      [func]: C66 || CT.C66,
      [zone$]: C46 || CT.C46
    });
  },
  get C68() {
    return C68 = dart.fn(async._rootPrint, ZoneLAndZoneDelegateLAndZoneL__Tovoid$());
  },
  get C67() {
    return C67 = dart.const({
      __proto__: _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid$().prototype,
      [func]: C68 || CT.C68,
      [zone$]: C46 || CT.C46
    });
  },
  get C70() {
    return C70 = dart.fn(async._rootFork, ZoneLAndZoneDelegateLAndZoneL__ToZoneL());
  },
  get C69() {
    return C69 = dart.const({
      __proto__: _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLZoneL().prototype,
      [func]: C70 || CT.C70,
      [zone$]: C46 || CT.C46
    });
  },
  get C72() {
    return C72 = dart.fn(async._rootHandleUncaughtError, ZoneLAndZoneDelegateLAndZoneL__Tovoid$0());
  },
  get C71() {
    return C71 = dart.const({
      __proto__: _ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid$0().prototype,
      [func]: C72 || CT.C72,
      [zone$]: C46 || CT.C46
    });
  },
  get C73() {
    return C73 = dart.fn(async._startMicrotaskLoop, VoidTovoid());
  },
  get C74() {
    return C74 = dart.fn(async._printToZone, StringLTovoid());
  },
  get C75() {
    return C75 = dart.const({
      __proto__: async._ZoneSpecification.prototype,
      [fork$]: null,
      [print$]: null,
      [createPeriodicTimer$]: null,
      [createTimer$]: null,
      [scheduleMicrotask$]: null,
      [errorCallback$]: null,
      [registerBinaryCallback$]: null,
      [registerUnaryCallback$]: null,
      [registerCallback$]: null,
      [runBinary$]: null,
      [runUnary$]: null,
      [run$]: null,
      [handleUncaughtError$]: null
    });
  },
  get C76() {
    return C76 = dart.hashCode;
  },
  get C77() {
    return C77 = dart.fn(core.identityHashCode, ObjectLTointL());
  },
  get C78() {
    return C78 = dart.fn(core.identical, ObjectLAndObjectLToboolL());
  },
  get C79() {
    return C79 = dart.equals;
  },
  get C80() {
    return C80 = dart.fn(core.Comparable.compare, ComparableLAndComparableLTointL());
  },
  get C81() {
    return C81 = dart.fn(collection._dynamicCompare, dynamicAnddynamicTointL());
  },
  get C82() {
    return C82 = dart.const({
      __proto__: convert.AsciiDecoder.prototype,
      [_UnicodeSubsetDecoder__subsetMask]: 127,
      [_UnicodeSubsetDecoder__allowInvalid]: true
    });
  },
  get C83() {
    return C83 = dart.const({
      __proto__: convert.AsciiDecoder.prototype,
      [_UnicodeSubsetDecoder__subsetMask]: 127,
      [_UnicodeSubsetDecoder__allowInvalid]: false
    });
  },
  get C84() {
    return C84 = dart.const({
      __proto__: convert.AsciiEncoder.prototype,
      [_UnicodeSubsetEncoder__subsetMask]: 127
    });
  },
  get C85() {
    return C85 = dart.constList([239, 191, 189], core.int);
  },
  get C86() {
    return C86 = dart.const({
      __proto__: convert.Base64Encoder.prototype,
      [Base64Encoder__urlSafe]: false
    });
  },
  get C87() {
    return C87 = dart.const({
      __proto__: convert.Base64Encoder.prototype,
      [Base64Encoder__urlSafe]: true
    });
  },
  get C88() {
    return C88 = dart.const({
      __proto__: convert.Base64Decoder.prototype
    });
  },
  get C89() {
    return C89 = dart.const({
      __proto__: convert.HtmlEscapeMode.prototype,
      [escapeSlash$]: true,
      [escapeApos$]: true,
      [escapeQuot$]: true,
      [escapeLtGt$]: true,
      [_name$3]: "unknown"
    });
  },
  get C90() {
    return C90 = dart.const({
      __proto__: convert.HtmlEscapeMode.prototype,
      [escapeSlash$]: false,
      [escapeApos$]: false,
      [escapeQuot$]: true,
      [escapeLtGt$]: true,
      [_name$3]: "attribute"
    });
  },
  get C91() {
    return C91 = dart.const({
      __proto__: convert.HtmlEscapeMode.prototype,
      [escapeSlash$]: false,
      [escapeApos$]: true,
      [escapeQuot$]: false,
      [escapeLtGt$]: true,
      [_name$3]: "attribute"
    });
  },
  get C92() {
    return C92 = dart.const({
      __proto__: convert.HtmlEscapeMode.prototype,
      [escapeSlash$]: false,
      [escapeApos$]: false,
      [escapeQuot$]: false,
      [escapeLtGt$]: true,
      [_name$3]: "element"
    });
  },
  get C93() {
    return C93 = dart.const({
      __proto__: convert.JsonEncoder.prototype,
      [JsonEncoder__toEncodable]: null,
      [JsonEncoder_indent]: null
    });
  },
  get C94() {
    return C94 = dart.const({
      __proto__: convert.JsonDecoder.prototype,
      [JsonDecoder__reviver]: null
    });
  },
  get C95() {
    return C95 = dart.fn(convert._defaultToEncodable, dynamicTodynamic());
  },
  get C96() {
    return C96 = dart.const({
      __proto__: convert.Latin1Decoder.prototype,
      [_UnicodeSubsetDecoder__subsetMask]: 255,
      [_UnicodeSubsetDecoder__allowInvalid]: true
    });
  },
  get C97() {
    return C97 = dart.const({
      __proto__: convert.Latin1Decoder.prototype,
      [_UnicodeSubsetDecoder__subsetMask]: 255,
      [_UnicodeSubsetDecoder__allowInvalid]: false
    });
  },
  get C98() {
    return C98 = dart.const({
      __proto__: convert.Latin1Encoder.prototype,
      [_UnicodeSubsetEncoder__subsetMask]: 255
    });
  },
  get C99() {
    return C99 = dart.constList([65533], core.int);
  },
  get C100() {
    return C100 = dart.const({
      __proto__: convert.Utf8Encoder.prototype
    });
  },
  get C101() {
    return C101 = dart.constList([127, 2047, 65535, 1114111], core.int);
  },
  get C102() {
    return C102 = dart.const({
      __proto__: convert.AsciiCodec.prototype,
      [_allowInvalid$]: false
    });
  },
  get C103() {
    return C103 = dart.const({
      __proto__: convert.Base64Codec.prototype,
      [_encoder$]: C86 || CT.C86
    });
  },
  get C104() {
    return C104 = dart.const({
      __proto__: convert.Base64Codec.prototype,
      [_encoder$]: C87 || CT.C87
    });
  },
  get C105() {
    return C105 = dart.const({
      __proto__: convert.HtmlEscape.prototype,
      [mode$]: C89 || CT.C89
    });
  },
  get C106() {
    return C106 = dart.const({
      __proto__: convert.JsonCodec.prototype,
      [_toEncodable]: null,
      [_reviver]: null
    });
  },
  get C107() {
    return C107 = dart.const({
      __proto__: convert.Latin1Codec.prototype,
      [_allowInvalid$1]: false
    });
  },
  get C108() {
    return C108 = dart.const({
      __proto__: convert.Utf8Codec.prototype,
      [_allowMalformed]: false
    });
  },
  get C109() {
    return C109 = dart.constList([], core.int);
  },
  get C110() {
    return C110 = dart.const({
      __proto__: io.FileMode.prototype,
      [_mode$]: 0
    });
  },
  get C111() {
    return C111 = dart.const({
      __proto__: io.FileMode.prototype,
      [_mode$]: 1
    });
  },
  get C112() {
    return C112 = dart.const({
      __proto__: io.FileMode.prototype,
      [_mode$]: 2
    });
  },
  get C113() {
    return C113 = dart.const({
      __proto__: io.FileMode.prototype,
      [_mode$]: 3
    });
  },
  get C114() {
    return C114 = dart.const({
      __proto__: io.FileMode.prototype,
      [_mode$]: 4
    });
  },
  get C115() {
    return C115 = dart.const({
      __proto__: io.FileLock.prototype,
      [_type$1]: 1
    });
  },
  get C116() {
    return C116 = dart.const({
      __proto__: io.FileLock.prototype,
      [_type$1]: 2
    });
  },
  get C117() {
    return C117 = dart.const({
      __proto__: io.FileLock.prototype,
      [_type$1]: 3
    });
  },
  get C118() {
    return C118 = dart.const({
      __proto__: io.FileLock.prototype,
      [_type$1]: 4
    });
  },
  get C119() {
    return C119 = dart.const({
      __proto__: convert.LineSplitter.prototype
    });
  },
  get C120() {
    return C120 = dart.fn(io._FileResourceInfo.getOpenFiles, dynamicAnddynamicToFutureLOfServiceExtensionResponseL());
  },
  get C121() {
    return C121 = dart.fn(io._FileResourceInfo.getFileInfoMapByID, dynamicAnddynamicToFutureLOfServiceExtensionResponseL());
  },
  get C122() {
    return C122 = dart.constList(["file", "directory", "link", "notFound"], core.String);
  },
  get C123() {
    return C123 = dart.const({
      __proto__: io.FileSystemEntityType.prototype,
      [_type$2]: 0
    });
  },
  get C124() {
    return C124 = dart.const({
      __proto__: io.FileSystemEntityType.prototype,
      [_type$2]: 1
    });
  },
  get C125() {
    return C125 = dart.const({
      __proto__: io.FileSystemEntityType.prototype,
      [_type$2]: 2
    });
  },
  get C126() {
    return C126 = dart.const({
      __proto__: io.FileSystemEntityType.prototype,
      [_type$2]: 3
    });
  },
  get C127() {
    return C127 = dart.constList([C123 || CT.C123, C124 || CT.C124, C125 || CT.C125, C126 || CT.C126], io.FileSystemEntityType);
  },
  get C128() {
    return C128 = dart.constList(["---", "--x", "-w-", "-wx", "r--", "r-x", "rw-", "rwx"], core.String);
  },
  get C129() {
    return C129 = dart.fn(io._NetworkProfiling._serviceExtensionHandler, StringLAndMapLOfStringL$StringLToFutureLOfServiceExtensionResponseL());
  },
  get C130() {
    return C130 = dart.const({
      __proto__: io._SocketProfileType.prototype,
      [_name$4]: "_SocketProfileType.startTime",
      index: 0
    });
  },
  get C131() {
    return C131 = dart.const({
      __proto__: io._SocketProfileType.prototype,
      [_name$4]: "_SocketProfileType.endTime",
      index: 1
    });
  },
  get C132() {
    return C132 = dart.const({
      __proto__: io._SocketProfileType.prototype,
      [_name$4]: "_SocketProfileType.address",
      index: 2
    });
  },
  get C133() {
    return C133 = dart.const({
      __proto__: io._SocketProfileType.prototype,
      [_name$4]: "_SocketProfileType.port",
      index: 3
    });
  },
  get C134() {
    return C134 = dart.const({
      __proto__: io._SocketProfileType.prototype,
      [_name$4]: "_SocketProfileType.socketType",
      index: 4
    });
  },
  get C135() {
    return C135 = dart.const({
      __proto__: io._SocketProfileType.prototype,
      [_name$4]: "_SocketProfileType.readBytes",
      index: 5
    });
  },
  get C136() {
    return C136 = dart.const({
      __proto__: io._SocketProfileType.prototype,
      [_name$4]: "_SocketProfileType.writeBytes",
      index: 6
    });
  },
  get C137() {
    return C137 = dart.constList([C130 || CT.C130, C131 || CT.C131, C132 || CT.C132, C133 || CT.C133, C134 || CT.C134, C135 || CT.C135, C136 || CT.C136], io._SocketProfileType);
  },
  get C139() {
    return C139 = dart.const({
      __proto__: io.ProcessStartMode.prototype,
      [ProcessStartMode__mode]: 0
    });
  },
  get C140() {
    return C140 = dart.const({
      __proto__: io.ProcessStartMode.prototype,
      [ProcessStartMode__mode]: 1
    });
  },
  get C141() {
    return C141 = dart.const({
      __proto__: io.ProcessStartMode.prototype,
      [ProcessStartMode__mode]: 2
    });
  },
  get C142() {
    return C142 = dart.const({
      __proto__: io.ProcessStartMode.prototype,
      [ProcessStartMode__mode]: 3
    });
  },
  get C138() {
    return C138 = dart.constList([C139 || CT.C139, C140 || CT.C140, C141 || CT.C141, C142 || CT.C142], io.ProcessStartMode);
  },
  get C143() {
    return C143 = dart.constList(["normal", "inheritStdio", "detached", "detachedWithStdio"], core.String);
  },
  get C144() {
    return C144 = dart.const({
      __proto__: io.SystemEncoding.prototype
    });
  },
  get C145() {
    return C145 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGTERM",
      [ProcessSignal__signalNumber]: 15
    });
  },
  get C146() {
    return C146 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGHUP",
      [ProcessSignal__signalNumber]: 1
    });
  },
  get C147() {
    return C147 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGINT",
      [ProcessSignal__signalNumber]: 2
    });
  },
  get C148() {
    return C148 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGQUIT",
      [ProcessSignal__signalNumber]: 3
    });
  },
  get C149() {
    return C149 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGILL",
      [ProcessSignal__signalNumber]: 4
    });
  },
  get C150() {
    return C150 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGTRAP",
      [ProcessSignal__signalNumber]: 5
    });
  },
  get C151() {
    return C151 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGABRT",
      [ProcessSignal__signalNumber]: 6
    });
  },
  get C152() {
    return C152 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGBUS",
      [ProcessSignal__signalNumber]: 7
    });
  },
  get C153() {
    return C153 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGFPE",
      [ProcessSignal__signalNumber]: 8
    });
  },
  get C154() {
    return C154 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGKILL",
      [ProcessSignal__signalNumber]: 9
    });
  },
  get C155() {
    return C155 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGUSR1",
      [ProcessSignal__signalNumber]: 10
    });
  },
  get C156() {
    return C156 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGSEGV",
      [ProcessSignal__signalNumber]: 11
    });
  },
  get C157() {
    return C157 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGUSR2",
      [ProcessSignal__signalNumber]: 12
    });
  },
  get C158() {
    return C158 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGPIPE",
      [ProcessSignal__signalNumber]: 13
    });
  },
  get C159() {
    return C159 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGALRM",
      [ProcessSignal__signalNumber]: 14
    });
  },
  get C160() {
    return C160 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGCHLD",
      [ProcessSignal__signalNumber]: 17
    });
  },
  get C161() {
    return C161 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGCONT",
      [ProcessSignal__signalNumber]: 18
    });
  },
  get C162() {
    return C162 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGSTOP",
      [ProcessSignal__signalNumber]: 19
    });
  },
  get C163() {
    return C163 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGTSTP",
      [ProcessSignal__signalNumber]: 20
    });
  },
  get C164() {
    return C164 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGTTIN",
      [ProcessSignal__signalNumber]: 21
    });
  },
  get C165() {
    return C165 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGTTOU",
      [ProcessSignal__signalNumber]: 22
    });
  },
  get C166() {
    return C166 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGURG",
      [ProcessSignal__signalNumber]: 23
    });
  },
  get C167() {
    return C167 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGXCPU",
      [ProcessSignal__signalNumber]: 24
    });
  },
  get C168() {
    return C168 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGXFSZ",
      [ProcessSignal__signalNumber]: 25
    });
  },
  get C169() {
    return C169 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGVTALRM",
      [ProcessSignal__signalNumber]: 26
    });
  },
  get C170() {
    return C170 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGPROF",
      [ProcessSignal__signalNumber]: 27
    });
  },
  get C171() {
    return C171 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGWINCH",
      [ProcessSignal__signalNumber]: 28
    });
  },
  get C172() {
    return C172 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGPOLL",
      [ProcessSignal__signalNumber]: 29
    });
  },
  get C173() {
    return C173 = dart.const({
      __proto__: io.ProcessSignal.prototype,
      [ProcessSignal__name]: "SIGSYS",
      [ProcessSignal__signalNumber]: 31
    });
  },
  get C174() {
    return C174 = dart.constList(["RawSocketEvent.read", "RawSocketEvent.write", "RawSocketEvent.readClosed", "RawSocketEvent.closed"], core.String);
  },
  get C175() {
    return C175 = dart.const({
      __proto__: io.RawSocketEvent.prototype,
      [_value$2]: 0
    });
  },
  get C176() {
    return C176 = dart.const({
      __proto__: io.RawSocketEvent.prototype,
      [_value$2]: 1
    });
  },
  get C177() {
    return C177 = dart.const({
      __proto__: io.RawSocketEvent.prototype,
      [_value$2]: 2
    });
  },
  get C178() {
    return C178 = dart.const({
      __proto__: io.RawSocketEvent.prototype,
      [_value$2]: 3
    });
  },
  get C179() {
    return C179 = dart.const({
      __proto__: io.InternetAddressType.prototype,
      [_value$3]: 0
    });
  },
  get C180() {
    return C180 = dart.const({
      __proto__: io.InternetAddressType.prototype,
      [_value$3]: 1
    });
  },
  get C181() {
    return C181 = dart.const({
      __proto__: io.InternetAddressType.prototype,
      [_value$3]: 2
    });
  },
  get C182() {
    return C182 = dart.const({
      __proto__: io.InternetAddressType.prototype,
      [_value$3]: -1
    });
  },
  get C183() {
    return C183 = dart.const({
      __proto__: io.SocketDirection.prototype,
      [_value$4]: 0
    });
  },
  get C184() {
    return C184 = dart.const({
      __proto__: io.SocketDirection.prototype,
      [_value$4]: 1
    });
  },
  get C185() {
    return C185 = dart.const({
      __proto__: io.SocketDirection.prototype,
      [_value$4]: 2
    });
  },
  get C186() {
    return C186 = dart.const({
      __proto__: io.SocketOption.prototype,
      [_value$5]: 0
    });
  },
  get C187() {
    return C187 = dart.const({
      __proto__: io.SocketOption.prototype,
      [_value$5]: 1
    });
  },
  get C188() {
    return C188 = dart.const({
      __proto__: io.SocketOption.prototype,
      [_value$5]: 2
    });
  },
  get C189() {
    return C189 = dart.const({
      __proto__: io.SocketOption.prototype,
      [_value$5]: 3
    });
  },
  get C190() {
    return C190 = dart.const({
      __proto__: io.SocketOption.prototype,
      [_value$5]: 4
    });
  },
  get C191() {
    return C191 = dart.const({
      __proto__: io._RawSocketOptions.prototype,
      [_name$4]: "_RawSocketOptions.SOL_SOCKET",
      index: 0
    });
  },
  get C192() {
    return C192 = dart.const({
      __proto__: io._RawSocketOptions.prototype,
      [_name$4]: "_RawSocketOptions.IPPROTO_IP",
      index: 1
    });
  },
  get C193() {
    return C193 = dart.const({
      __proto__: io._RawSocketOptions.prototype,
      [_name$4]: "_RawSocketOptions.IP_MULTICAST_IF",
      index: 2
    });
  },
  get C194() {
    return C194 = dart.const({
      __proto__: io._RawSocketOptions.prototype,
      [_name$4]: "_RawSocketOptions.IPPROTO_IPV6",
      index: 3
    });
  },
  get C195() {
    return C195 = dart.const({
      __proto__: io._RawSocketOptions.prototype,
      [_name$4]: "_RawSocketOptions.IPV6_MULTICAST_IF",
      index: 4
    });
  },
  get C196() {
    return C196 = dart.const({
      __proto__: io._RawSocketOptions.prototype,
      [_name$4]: "_RawSocketOptions.IPPROTO_TCP",
      index: 5
    });
  },
  get C197() {
    return C197 = dart.const({
      __proto__: io._RawSocketOptions.prototype,
      [_name$4]: "_RawSocketOptions.IPPROTO_UDP",
      index: 6
    });
  },
  get C198() {
    return C198 = dart.constList([C191 || CT.C191, C192 || CT.C192, C193 || CT.C193, C194 || CT.C194, C195 || CT.C195, C196 || CT.C196, C197 || CT.C197], io._RawSocketOptions);
  },
  get C199() {
    return C199 = dart.const({
      __proto__: io.StdioType.prototype,
      [name$11]: "terminal"
    });
  },
  get C200() {
    return C200 = dart.const({
      __proto__: io.StdioType.prototype,
      [name$11]: "pipe"
    });
  },
  get C201() {
    return C201 = dart.const({
      __proto__: io.StdioType.prototype,
      [name$11]: "file"
    });
  },
  get C202() {
    return C202 = dart.const({
      __proto__: io.StdioType.prototype,
      [name$11]: "other"
    });
  },
  get C203() {
    return C203 = dart.const({
      __proto__: io._WindowsCodePageEncoder.prototype
    });
  },
  get C204() {
    return C204 = dart.const({
      __proto__: io._WindowsCodePageDecoder.prototype
    });
  },
  get C205() {
    return C205 = dart.const({
      __proto__: convert.Utf8Decoder.prototype,
      [_allowMalformed$0]: false
    });
  },
  get C206() {
    return C206 = dart.constList([1, 2, 3, 4, 0], core.int);
  },
  get C207() {
    return C207 = dart.const({
      __proto__: io.ZLibCodec.prototype,
      [dictionary$]: null,
      [raw$]: false,
      [windowBits$]: 15,
      [strategy$]: 0,
      [memLevel$]: 8,
      [level$]: 6,
      [gzip$]: false
    });
  },
  get C208() {
    return C208 = dart.const({
      __proto__: io.GZipCodec.prototype,
      [raw$0]: false,
      [dictionary$0]: null,
      [windowBits$0]: 15,
      [strategy$0]: 0,
      [memLevel$0]: 8,
      [level$0]: 6,
      [gzip$0]: true
    });
  },
  get C209() {
    return C209 = dart.fn(async.runZoned, Fn__ToRL());
  },
  get C210() {
    return C210 = dart.fn(js._convertToJS, dynamicTodynamic());
  },
  get C211() {
    return C211 = dart.fn(js._wrapDartFunction, dynamicTodynamic());
  },
  get C212() {
    return C212 = dart.fn(js._wrapToDartHelper, dynamicToObjectL());
  },
  get C213() {
    return C213 = dart.const({
      __proto__: math._JSRandom.prototype
    });
  },
  get C214() {
    return C214 = dart.const({
      __proto__: typed_data.Endian.prototype,
      [Endian__littleEndian]: true
    });
  },
  get C215() {
    return C215 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "abort"
    });
  },
  get C216() {
    return C216 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "close"
    });
  },
  get C217() {
    return C217 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "error"
    });
  },
  get C218() {
    return C218 = dart.const({
      __proto__: EventStreamProviderOfVersionChangeEventL().prototype,
      [EventStreamProvider__eventType]: "versionchange"
    });
  },
  get C219() {
    return C219 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "success"
    });
  },
  get C220() {
    return C220 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "blocked"
    });
  },
  get C221() {
    return C221 = dart.const({
      __proto__: EventStreamProviderOfVersionChangeEventL().prototype,
      [EventStreamProvider__eventType]: "upgradeneeded"
    });
  },
  get C222() {
    return C222 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "complete"
    });
  },
  get C223() {
    return C223 = dart.const({
      __proto__: _js_helper.Creates.prototype,
      [types$0]: "JSExtendableArray|=Object|num|String"
    });
  },
  get C224() {
    return C224 = dart.const({
      __proto__: _js_helper.Returns.prototype,
      [types$1]: "JSExtendableArray|=Object|num|String"
    });
  },
  get C225() {
    return C225 = dart.fn(html_common.convertDartToNative_Dictionary, MapLAndFnTodynamic());
  },
  get C227() {
    return C227 = dart.fn(html$.Element._determineMouseWheelEventType, EventTargetLToStringL());
  },
  get C226() {
    return C226 = dart.const({
      __proto__: _CustomEventStreamProviderOfWheelEventL().prototype,
      [_CustomEventStreamProvider__eventTypeGetter]: C227 || CT.C227
    });
  },
  get C229() {
    return C229 = dart.fn(html$.Element._determineTransitionEventType, EventTargetLToStringL());
  },
  get C228() {
    return C228 = dart.const({
      __proto__: _CustomEventStreamProviderOfTransitionEventL().prototype,
      [_CustomEventStreamProvider__eventTypeGetter]: C229 || CT.C229
    });
  },
  get C230() {
    return C230 = dart.constList(["HEAD", "AREA", "BASE", "BASEFONT", "BR", "COL", "COLGROUP", "EMBED", "FRAME", "FRAMESET", "HR", "IMAGE", "IMG", "INPUT", "ISINDEX", "LINK", "META", "PARAM", "SOURCE", "STYLE", "TITLE", "WBR"], core.String);
  },
  get C231() {
    return C231 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "beforecopy"
    });
  },
  get C232() {
    return C232 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "beforecut"
    });
  },
  get C233() {
    return C233 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "beforepaste"
    });
  },
  get C234() {
    return C234 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "blur"
    });
  },
  get C235() {
    return C235 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "canplay"
    });
  },
  get C236() {
    return C236 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "canplaythrough"
    });
  },
  get C237() {
    return C237 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "change"
    });
  },
  get C238() {
    return C238 = dart.const({
      __proto__: EventStreamProviderOfMouseEventL().prototype,
      [EventStreamProvider__eventType]: "click"
    });
  },
  get C239() {
    return C239 = dart.const({
      __proto__: EventStreamProviderOfMouseEventL().prototype,
      [EventStreamProvider__eventType]: "contextmenu"
    });
  },
  get C240() {
    return C240 = dart.const({
      __proto__: EventStreamProviderOfClipboardEventL().prototype,
      [EventStreamProvider__eventType]: "copy"
    });
  },
  get C241() {
    return C241 = dart.const({
      __proto__: EventStreamProviderOfClipboardEventL().prototype,
      [EventStreamProvider__eventType]: "cut"
    });
  },
  get C242() {
    return C242 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "dblclick"
    });
  },
  get C243() {
    return C243 = dart.const({
      __proto__: EventStreamProviderOfMouseEventL().prototype,
      [EventStreamProvider__eventType]: "drag"
    });
  },
  get C244() {
    return C244 = dart.const({
      __proto__: EventStreamProviderOfMouseEventL().prototype,
      [EventStreamProvider__eventType]: "dragend"
    });
  },
  get C245() {
    return C245 = dart.const({
      __proto__: EventStreamProviderOfMouseEventL().prototype,
      [EventStreamProvider__eventType]: "dragenter"
    });
  },
  get C246() {
    return C246 = dart.const({
      __proto__: EventStreamProviderOfMouseEventL().prototype,
      [EventStreamProvider__eventType]: "dragleave"
    });
  },
  get C247() {
    return C247 = dart.const({
      __proto__: EventStreamProviderOfMouseEventL().prototype,
      [EventStreamProvider__eventType]: "dragover"
    });
  },
  get C248() {
    return C248 = dart.const({
      __proto__: EventStreamProviderOfMouseEventL().prototype,
      [EventStreamProvider__eventType]: "dragstart"
    });
  },
  get C249() {
    return C249 = dart.const({
      __proto__: EventStreamProviderOfMouseEventL().prototype,
      [EventStreamProvider__eventType]: "drop"
    });
  },
  get C250() {
    return C250 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "durationchange"
    });
  },
  get C251() {
    return C251 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "emptied"
    });
  },
  get C252() {
    return C252 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "ended"
    });
  },
  get C253() {
    return C253 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "focus"
    });
  },
  get C254() {
    return C254 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "input"
    });
  },
  get C255() {
    return C255 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "invalid"
    });
  },
  get C256() {
    return C256 = dart.const({
      __proto__: EventStreamProviderOfKeyboardEventL().prototype,
      [EventStreamProvider__eventType]: "keydown"
    });
  },
  get C257() {
    return C257 = dart.const({
      __proto__: EventStreamProviderOfKeyboardEventL().prototype,
      [EventStreamProvider__eventType]: "keypress"
    });
  },
  get C258() {
    return C258 = dart.const({
      __proto__: EventStreamProviderOfKeyboardEventL().prototype,
      [EventStreamProvider__eventType]: "keyup"
    });
  },
  get C259() {
    return C259 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "load"
    });
  },
  get C260() {
    return C260 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "loadeddata"
    });
  },
  get C261() {
    return C261 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "loadedmetadata"
    });
  },
  get C262() {
    return C262 = dart.const({
      __proto__: EventStreamProviderOfMouseEventL().prototype,
      [EventStreamProvider__eventType]: "mousedown"
    });
  },
  get C263() {
    return C263 = dart.const({
      __proto__: EventStreamProviderOfMouseEventL().prototype,
      [EventStreamProvider__eventType]: "mouseenter"
    });
  },
  get C264() {
    return C264 = dart.const({
      __proto__: EventStreamProviderOfMouseEventL().prototype,
      [EventStreamProvider__eventType]: "mouseleave"
    });
  },
  get C265() {
    return C265 = dart.const({
      __proto__: EventStreamProviderOfMouseEventL().prototype,
      [EventStreamProvider__eventType]: "mousemove"
    });
  },
  get C266() {
    return C266 = dart.const({
      __proto__: EventStreamProviderOfMouseEventL().prototype,
      [EventStreamProvider__eventType]: "mouseout"
    });
  },
  get C267() {
    return C267 = dart.const({
      __proto__: EventStreamProviderOfMouseEventL().prototype,
      [EventStreamProvider__eventType]: "mouseover"
    });
  },
  get C268() {
    return C268 = dart.const({
      __proto__: EventStreamProviderOfMouseEventL().prototype,
      [EventStreamProvider__eventType]: "mouseup"
    });
  },
  get C269() {
    return C269 = dart.const({
      __proto__: EventStreamProviderOfClipboardEventL().prototype,
      [EventStreamProvider__eventType]: "paste"
    });
  },
  get C270() {
    return C270 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "pause"
    });
  },
  get C271() {
    return C271 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "play"
    });
  },
  get C272() {
    return C272 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "playing"
    });
  },
  get C273() {
    return C273 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "ratechange"
    });
  },
  get C274() {
    return C274 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "reset"
    });
  },
  get C275() {
    return C275 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "resize"
    });
  },
  get C276() {
    return C276 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "scroll"
    });
  },
  get C277() {
    return C277 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "search"
    });
  },
  get C278() {
    return C278 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "seeked"
    });
  },
  get C279() {
    return C279 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "seeking"
    });
  },
  get C280() {
    return C280 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "select"
    });
  },
  get C281() {
    return C281 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "selectstart"
    });
  },
  get C282() {
    return C282 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "stalled"
    });
  },
  get C283() {
    return C283 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "submit"
    });
  },
  get C284() {
    return C284 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "suspend"
    });
  },
  get C285() {
    return C285 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "timeupdate"
    });
  },
  get C286() {
    return C286 = dart.const({
      __proto__: EventStreamProviderOfTouchEventL().prototype,
      [EventStreamProvider__eventType]: "touchcancel"
    });
  },
  get C287() {
    return C287 = dart.const({
      __proto__: EventStreamProviderOfTouchEventL().prototype,
      [EventStreamProvider__eventType]: "touchend"
    });
  },
  get C288() {
    return C288 = dart.const({
      __proto__: EventStreamProviderOfTouchEventL().prototype,
      [EventStreamProvider__eventType]: "touchenter"
    });
  },
  get C289() {
    return C289 = dart.const({
      __proto__: EventStreamProviderOfTouchEventL().prototype,
      [EventStreamProvider__eventType]: "touchleave"
    });
  },
  get C290() {
    return C290 = dart.const({
      __proto__: EventStreamProviderOfTouchEventL().prototype,
      [EventStreamProvider__eventType]: "touchmove"
    });
  },
  get C291() {
    return C291 = dart.const({
      __proto__: EventStreamProviderOfTouchEventL().prototype,
      [EventStreamProvider__eventType]: "touchstart"
    });
  },
  get C292() {
    return C292 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "volumechange"
    });
  },
  get C293() {
    return C293 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "waiting"
    });
  },
  get C294() {
    return C294 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "webkitfullscreenchange"
    });
  },
  get C295() {
    return C295 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "webkitfullscreenerror"
    });
  },
  get C296() {
    return C296 = dart.const({
      __proto__: EventStreamProviderOfWheelEventL().prototype,
      [EventStreamProvider__eventType]: "wheel"
    });
  },
  get C297() {
    return C297 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "accessibleclick"
    });
  },
  get C298() {
    return C298 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "accessiblecontextmenu"
    });
  },
  get C299() {
    return C299 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "accessibledecrement"
    });
  },
  get C300() {
    return C300 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "accessiblefocus"
    });
  },
  get C301() {
    return C301 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "accessibleincrement"
    });
  },
  get C302() {
    return C302 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "accessiblescrollintoview"
    });
  },
  get C303() {
    return C303 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "cancel"
    });
  },
  get C304() {
    return C304 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "finish"
    });
  },
  get C305() {
    return C305 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "cached"
    });
  },
  get C306() {
    return C306 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "checking"
    });
  },
  get C307() {
    return C307 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "downloading"
    });
  },
  get C308() {
    return C308 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "noupdate"
    });
  },
  get C309() {
    return C309 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "obsolete"
    });
  },
  get C310() {
    return C310 = dart.const({
      __proto__: EventStreamProviderOfProgressEventL().prototype,
      [EventStreamProvider__eventType]: "progress"
    });
  },
  get C311() {
    return C311 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "updateready"
    });
  },
  get C312() {
    return C312 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "hashchange"
    });
  },
  get C313() {
    return C313 = dart.const({
      __proto__: EventStreamProviderOfMessageEventL().prototype,
      [EventStreamProvider__eventType]: "message"
    });
  },
  get C314() {
    return C314 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "offline"
    });
  },
  get C315() {
    return C315 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "online"
    });
  },
  get C316() {
    return C316 = dart.const({
      __proto__: EventStreamProviderOfPopStateEventL().prototype,
      [EventStreamProvider__eventType]: "popstate"
    });
  },
  get C317() {
    return C317 = dart.const({
      __proto__: EventStreamProviderOfStorageEventL().prototype,
      [EventStreamProvider__eventType]: "storage"
    });
  },
  get C318() {
    return C318 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "unload"
    });
  },
  get C319() {
    return C319 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "mute"
    });
  },
  get C320() {
    return C320 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "unmute"
    });
  },
  get C321() {
    return C321 = dart.const({
      __proto__: EventStreamProviderOfContextEventL().prototype,
      [EventStreamProvider__eventType]: "webglcontextlost"
    });
  },
  get C322() {
    return C322 = dart.const({
      __proto__: EventStreamProviderOfContextEventL().prototype,
      [EventStreamProvider__eventType]: "webglcontextrestored"
    });
  },
  get C323() {
    return C323 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "pointerlockchange"
    });
  },
  get C324() {
    return C324 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "pointerlockerror"
    });
  },
  get C325() {
    return C325 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "readystatechange"
    });
  },
  get C326() {
    return C326 = dart.const({
      __proto__: EventStreamProviderOfSecurityPolicyViolationEventL().prototype,
      [EventStreamProvider__eventType]: "securitypolicyviolation"
    });
  },
  get C327() {
    return C327 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "selectionchange"
    });
  },
  get C328() {
    return C328 = dart.const({
      __proto__: html$.ScrollAlignment.prototype,
      [_value$7]: "TOP"
    });
  },
  get C329() {
    return C329 = dart.const({
      __proto__: html$.ScrollAlignment.prototype,
      [_value$7]: "CENTER"
    });
  },
  get C330() {
    return C330 = dart.const({
      __proto__: html$.ScrollAlignment.prototype,
      [_value$7]: "BOTTOM"
    });
  },
  get C331() {
    return C331 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "open"
    });
  },
  get C332() {
    return C332 = dart.const({
      __proto__: EventStreamProviderOfProgressEventL().prototype,
      [EventStreamProvider__eventType]: "abort"
    });
  },
  get C333() {
    return C333 = dart.const({
      __proto__: EventStreamProviderOfProgressEventL().prototype,
      [EventStreamProvider__eventType]: "error"
    });
  },
  get C334() {
    return C334 = dart.const({
      __proto__: EventStreamProviderOfProgressEventL().prototype,
      [EventStreamProvider__eventType]: "load"
    });
  },
  get C335() {
    return C335 = dart.const({
      __proto__: EventStreamProviderOfProgressEventL().prototype,
      [EventStreamProvider__eventType]: "loadend"
    });
  },
  get C336() {
    return C336 = dart.const({
      __proto__: EventStreamProviderOfProgressEventL().prototype,
      [EventStreamProvider__eventType]: "loadstart"
    });
  },
  get C337() {
    return C337 = dart.const({
      __proto__: EventStreamProviderOfProgressEventL().prototype,
      [EventStreamProvider__eventType]: "write"
    });
  },
  get C338() {
    return C338 = dart.const({
      __proto__: EventStreamProviderOfProgressEventL().prototype,
      [EventStreamProvider__eventType]: "writeend"
    });
  },
  get C339() {
    return C339 = dart.const({
      __proto__: EventStreamProviderOfProgressEventL().prototype,
      [EventStreamProvider__eventType]: "writestart"
    });
  },
  get C340() {
    return C340 = dart.const({
      __proto__: EventStreamProviderOfFontFaceSetLoadEventL().prototype,
      [EventStreamProvider__eventType]: "loading"
    });
  },
  get C341() {
    return C341 = dart.const({
      __proto__: EventStreamProviderOfFontFaceSetLoadEventL().prototype,
      [EventStreamProvider__eventType]: "loadingdone"
    });
  },
  get C342() {
    return C342 = dart.const({
      __proto__: EventStreamProviderOfFontFaceSetLoadEventL().prototype,
      [EventStreamProvider__eventType]: "loadingerror"
    });
  },
  get C343() {
    return C343 = dart.const({
      __proto__: EventStreamProviderOfWheelEventL().prototype,
      [EventStreamProvider__eventType]: "mousewheel"
    });
  },
  get C345() {
    return C345 = dart.fn(html$.HtmlDocument._determineVisibilityChangeEventType, EventTargetLToStringL());
  },
  get C344() {
    return C344 = dart.const({
      __proto__: _CustomEventStreamProviderOfEventL().prototype,
      [_CustomEventStreamProvider__eventTypeGetter]: C345 || CT.C345
    });
  },
  get C346() {
    return C346 = dart.const({
      __proto__: EventStreamProviderOfProgressEventL().prototype,
      [EventStreamProvider__eventType]: "timeout"
    });
  },
  get C347() {
    return C347 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "addtrack"
    });
  },
  get C348() {
    return C348 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "removetrack"
    });
  },
  get C349() {
    return C349 = dart.constList([], html$.MessagePort);
  },
  get C350() {
    return C350 = dart.const({
      __proto__: EventStreamProviderOfMidiMessageEventL().prototype,
      [EventStreamProvider__eventType]: "midimessage"
    });
  },
  get C351() {
    return C351 = dart.constMap(core.String, core.bool, ["childList", true, "attributes", true, "characterData", true, "subtree", true, "attributeOldValue", true, "characterDataOldValue", true]);
  },
  get C352() {
    return C352 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "click"
    });
  },
  get C353() {
    return C353 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "show"
    });
  },
  get C354() {
    return C354 = dart.const({
      __proto__: EventStreamProviderOfRtcDtmfToneChangeEventL().prototype,
      [EventStreamProvider__eventType]: "tonechange"
    });
  },
  get C355() {
    return C355 = dart.const({
      __proto__: EventStreamProviderOfMediaStreamEventL().prototype,
      [EventStreamProvider__eventType]: "addstream"
    });
  },
  get C356() {
    return C356 = dart.const({
      __proto__: EventStreamProviderOfRtcDataChannelEventL().prototype,
      [EventStreamProvider__eventType]: "datachannel"
    });
  },
  get C357() {
    return C357 = dart.const({
      __proto__: EventStreamProviderOfRtcPeerConnectionIceEventL().prototype,
      [EventStreamProvider__eventType]: "icecandidate"
    });
  },
  get C358() {
    return C358 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "iceconnectionstatechange"
    });
  },
  get C359() {
    return C359 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "negotiationneeded"
    });
  },
  get C360() {
    return C360 = dart.const({
      __proto__: EventStreamProviderOfMediaStreamEventL().prototype,
      [EventStreamProvider__eventType]: "removestream"
    });
  },
  get C361() {
    return C361 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "signalingstatechange"
    });
  },
  get C362() {
    return C362 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "activate"
    });
  },
  get C363() {
    return C363 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "fetch"
    });
  },
  get C364() {
    return C364 = dart.const({
      __proto__: EventStreamProviderOfForeignFetchEventL().prototype,
      [EventStreamProvider__eventType]: "foreignfetch"
    });
  },
  get C365() {
    return C365 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "install"
    });
  },
  get C366() {
    return C366 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "connect"
    });
  },
  get C367() {
    return C367 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "audioend"
    });
  },
  get C368() {
    return C368 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "audiostart"
    });
  },
  get C369() {
    return C369 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "end"
    });
  },
  get C370() {
    return C370 = dart.const({
      __proto__: EventStreamProviderOfSpeechRecognitionErrorL().prototype,
      [EventStreamProvider__eventType]: "error"
    });
  },
  get C371() {
    return C371 = dart.const({
      __proto__: EventStreamProviderOfSpeechRecognitionEventL().prototype,
      [EventStreamProvider__eventType]: "nomatch"
    });
  },
  get C372() {
    return C372 = dart.const({
      __proto__: EventStreamProviderOfSpeechRecognitionEventL().prototype,
      [EventStreamProvider__eventType]: "result"
    });
  },
  get C373() {
    return C373 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "soundend"
    });
  },
  get C374() {
    return C374 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "soundstart"
    });
  },
  get C375() {
    return C375 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "speechend"
    });
  },
  get C376() {
    return C376 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "speechstart"
    });
  },
  get C377() {
    return C377 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "start"
    });
  },
  get C378() {
    return C378 = dart.const({
      __proto__: EventStreamProviderOfSpeechSynthesisEventL().prototype,
      [EventStreamProvider__eventType]: "boundary"
    });
  },
  get C379() {
    return C379 = dart.const({
      __proto__: EventStreamProviderOfSpeechSynthesisEventL().prototype,
      [EventStreamProvider__eventType]: "end"
    });
  },
  get C380() {
    return C380 = dart.const({
      __proto__: EventStreamProviderOfSpeechSynthesisEventL().prototype,
      [EventStreamProvider__eventType]: "mark"
    });
  },
  get C381() {
    return C381 = dart.const({
      __proto__: EventStreamProviderOfSpeechSynthesisEventL().prototype,
      [EventStreamProvider__eventType]: "resume"
    });
  },
  get C382() {
    return C382 = dart.const({
      __proto__: EventStreamProviderOfSpeechSynthesisEventL().prototype,
      [EventStreamProvider__eventType]: "start"
    });
  },
  get C383() {
    return C383 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "cuechange"
    });
  },
  get C384() {
    return C384 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "enter"
    });
  },
  get C385() {
    return C385 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "exit"
    });
  },
  get C386() {
    return C386 = dart.const({
      __proto__: EventStreamProviderOfTrackEventL().prototype,
      [EventStreamProvider__eventType]: "addtrack"
    });
  },
  get C387() {
    return C387 = dart.const({
      __proto__: EventStreamProviderOfCloseEventL().prototype,
      [EventStreamProvider__eventType]: "close"
    });
  },
  get C388() {
    return C388 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "DOMContentLoaded"
    });
  },
  get C389() {
    return C389 = dart.const({
      __proto__: EventStreamProviderOfDeviceMotionEventL().prototype,
      [EventStreamProvider__eventType]: "devicemotion"
    });
  },
  get C390() {
    return C390 = dart.const({
      __proto__: EventStreamProviderOfDeviceOrientationEventL().prototype,
      [EventStreamProvider__eventType]: "deviceorientation"
    });
  },
  get C391() {
    return C391 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "loadstart"
    });
  },
  get C392() {
    return C392 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "pagehide"
    });
  },
  get C393() {
    return C393 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "pageshow"
    });
  },
  get C394() {
    return C394 = dart.const({
      __proto__: EventStreamProviderOfEventL().prototype,
      [EventStreamProvider__eventType]: "progress"
    });
  },
  get C395() {
    return C395 = dart.const({
      __proto__: EventStreamProviderOfAnimationEventL().prototype,
      [EventStreamProvider__eventType]: "webkitAnimationEnd"
    });
  },
  get C396() {
    return C396 = dart.const({
      __proto__: EventStreamProviderOfAnimationEventL().prototype,
      [EventStreamProvider__eventType]: "webkitAnimationIteration"
    });
  },
  get C397() {
    return C397 = dart.const({
      __proto__: EventStreamProviderOfAnimationEventL().prototype,
      [EventStreamProvider__eventType]: "webkitAnimationStart"
    });
  },
  get C398() {
    return C398 = dart.const({
      __proto__: html$._BeforeUnloadEventStreamProvider.prototype,
      [_BeforeUnloadEventStreamProvider__eventType]: "beforeunload"
    });
  },
  get C399() {
    return C399 = dart.fn(html$._Html5NodeValidator._standardAttributeValidator, ElementLAndStringLAndStringL__ToboolL());
  },
  get C400() {
    return C400 = dart.fn(html$._Html5NodeValidator._uriAttributeValidator, ElementLAndStringLAndStringL__ToboolL());
  },
  get C401() {
    return C401 = dart.constList(["*::class", "*::dir", "*::draggable", "*::hidden", "*::id", "*::inert", "*::itemprop", "*::itemref", "*::itemscope", "*::lang", "*::spellcheck", "*::title", "*::translate", "A::accesskey", "A::coords", "A::hreflang", "A::name", "A::shape", "A::tabindex", "A::target", "A::type", "AREA::accesskey", "AREA::alt", "AREA::coords", "AREA::nohref", "AREA::shape", "AREA::tabindex", "AREA::target", "AUDIO::controls", "AUDIO::loop", "AUDIO::mediagroup", "AUDIO::muted", "AUDIO::preload", "BDO::dir", "BODY::alink", "BODY::bgcolor", "BODY::link", "BODY::text", "BODY::vlink", "BR::clear", "BUTTON::accesskey", "BUTTON::disabled", "BUTTON::name", "BUTTON::tabindex", "BUTTON::type", "BUTTON::value", "CANVAS::height", "CANVAS::width", "CAPTION::align", "COL::align", "COL::char", "COL::charoff", "COL::span", "COL::valign", "COL::width", "COLGROUP::align", "COLGROUP::char", "COLGROUP::charoff", "COLGROUP::span", "COLGROUP::valign", "COLGROUP::width", "COMMAND::checked", "COMMAND::command", "COMMAND::disabled", "COMMAND::label", "COMMAND::radiogroup", "COMMAND::type", "DATA::value", "DEL::datetime", "DETAILS::open", "DIR::compact", "DIV::align", "DL::compact", "FIELDSET::disabled", "FONT::color", "FONT::face", "FONT::size", "FORM::accept", "FORM::autocomplete", "FORM::enctype", "FORM::method", "FORM::name", "FORM::novalidate", "FORM::target", "FRAME::name", "H1::align", "H2::align", "H3::align", "H4::align", "H5::align", "H6::align", "HR::align", "HR::noshade", "HR::size", "HR::width", "HTML::version", "IFRAME::align", "IFRAME::frameborder", "IFRAME::height", "IFRAME::marginheight", "IFRAME::marginwidth", "IFRAME::width", "IMG::align", "IMG::alt", "IMG::border", "IMG::height", "IMG::hspace", "IMG::ismap", "IMG::name", "IMG::usemap", "IMG::vspace", "IMG::width", "INPUT::accept", "INPUT::accesskey", "INPUT::align", "INPUT::alt", "INPUT::autocomplete", "INPUT::autofocus", "INPUT::checked", "INPUT::disabled", "INPUT::inputmode", "INPUT::ismap", "INPUT::list", "INPUT::max", "INPUT::maxlength", "INPUT::min", "INPUT::multiple", "INPUT::name", "INPUT::placeholder", "INPUT::readonly", "INPUT::required", "INPUT::size", "INPUT::step", "INPUT::tabindex", "INPUT::type", "INPUT::usemap", "INPUT::value", "INS::datetime", "KEYGEN::disabled", "KEYGEN::keytype", "KEYGEN::name", "LABEL::accesskey", "LABEL::for", "LEGEND::accesskey", "LEGEND::align", "LI::type", "LI::value", "LINK::sizes", "MAP::name", "MENU::compact", "MENU::label", "MENU::type", "METER::high", "METER::low", "METER::max", "METER::min", "METER::value", "OBJECT::typemustmatch", "OL::compact", "OL::reversed", "OL::start", "OL::type", "OPTGROUP::disabled", "OPTGROUP::label", "OPTION::disabled", "OPTION::label", "OPTION::selected", "OPTION::value", "OUTPUT::for", "OUTPUT::name", "P::align", "PRE::width", "PROGRESS::max", "PROGRESS::min", "PROGRESS::value", "SELECT::autocomplete", "SELECT::disabled", "SELECT::multiple", "SELECT::name", "SELECT::required", "SELECT::size", "SELECT::tabindex", "SOURCE::type", "TABLE::align", "TABLE::bgcolor", "TABLE::border", "TABLE::cellpadding", "TABLE::cellspacing", "TABLE::frame", "TABLE::rules", "TABLE::summary", "TABLE::width", "TBODY::align", "TBODY::char", "TBODY::charoff", "TBODY::valign", "TD::abbr", "TD::align", "TD::axis", "TD::bgcolor", "TD::char", "TD::charoff", "TD::colspan", "TD::headers", "TD::height", "TD::nowrap", "TD::rowspan", "TD::scope", "TD::valign", "TD::width", "TEXTAREA::accesskey", "TEXTAREA::autocomplete", "TEXTAREA::cols", "TEXTAREA::disabled", "TEXTAREA::inputmode", "TEXTAREA::name", "TEXTAREA::placeholder", "TEXTAREA::readonly", "TEXTAREA::required", "TEXTAREA::rows", "TEXTAREA::tabindex", "TEXTAREA::wrap", "TFOOT::align", "TFOOT::char", "TFOOT::charoff", "TFOOT::valign", "TH::abbr", "TH::align", "TH::axis", "TH::bgcolor", "TH::char", "TH::charoff", "TH::colspan", "TH::headers", "TH::height", "TH::nowrap", "TH::rowspan", "TH::scope", "TH::valign", "TH::width", "THEAD::align", "THEAD::char", "THEAD::charoff", "THEAD::valign", "TR::align", "TR::bgcolor", "TR::char", "TR::charoff", "TR::valign", "TRACK::default", "TRACK::kind", "TRACK::label", "TRACK::srclang", "UL::compact", "UL::type", "VIDEO::controls", "VIDEO::height", "VIDEO::loop", "VIDEO::mediagroup", "VIDEO::muted", "VIDEO::preload", "VIDEO::width"], core.String);
  },
  get C402() {
    return C402 = dart.constList(["A::href", "AREA::href", "BLOCKQUOTE::cite", "BODY::background", "COMMAND::icon", "DEL::cite", "FORM::action", "IMG::src", "INPUT::src", "INS::cite", "Q::cite", "VIDEO::poster"], core.String);
  },
  get C403() {
    return C403 = dart.constMap(core.String, core.int, ["Up", 38, "Down", 40, "Left", 37, "Right", 39, "Enter", 13, "F1", 112, "F2", 113, "F3", 114, "F4", 115, "F5", 116, "F6", 117, "F7", 118, "F8", 119, "F9", 120, "F10", 121, "F11", 122, "F12", 123, "U+007F", 46, "Home", 36, "End", 35, "PageUp", 33, "PageDown", 34, "Insert", 45]);
  },
  get C404() {
    return C404 = dart.constList([], core.String);
  },
  get C405() {
    return C405 = dart.constList(["A", "FORM"], core.String);
  },
  get C406() {
    return C406 = dart.constList(["A::accesskey", "A::coords", "A::hreflang", "A::name", "A::shape", "A::tabindex", "A::target", "A::type", "FORM::accept", "FORM::autocomplete", "FORM::enctype", "FORM::method", "FORM::name", "FORM::novalidate", "FORM::target"], core.String);
  },
  get C407() {
    return C407 = dart.constList(["A::href", "FORM::action"], core.String);
  },
  get C408() {
    return C408 = dart.constList(["IMG"], core.String);
  },
  get C409() {
    return C409 = dart.constList(["IMG::align", "IMG::alt", "IMG::border", "IMG::height", "IMG::hspace", "IMG::ismap", "IMG::name", "IMG::usemap", "IMG::vspace", "IMG::width"], core.String);
  },
  get C410() {
    return C410 = dart.constList(["IMG::src"], core.String);
  },
  get C411() {
    return C411 = dart.constList(["B", "BLOCKQUOTE", "BR", "EM", "H1", "H2", "H3", "H4", "H5", "H6", "HR", "I", "LI", "OL", "P", "SPAN", "UL"], core.String);
  },
  get C412() {
    return C412 = dart.constList(["bind", "if", "ref", "repeat", "syntax"], core.String);
  },
  get C413() {
    return C413 = dart.const({
      __proto__: html$.Console.prototype
    });
  },
  get C414() {
    return C414 = dart.const({
      __proto__: html$._TrustedHtmlTreeSanitizer.prototype
    });
  },
  get C415() {
    return C415 = dart.fn(html_common.convertNativeToDart_Dictionary, dynamicToMapLOfStringL$dynamic());
  },
  get C416() {
    return C416 = dart.const({
      __proto__: _js_helper.Creates.prototype,
      [types$0]: "num|String|bool|JSExtendableArray|=Object|Blob|File|NativeByteBuffer|NativeTypedData|MessagePort"
    });
  },
  get C417() {
    return C417 = dart.const({
      __proto__: _js_helper.Returns.prototype,
      [types$1]: "num|String|bool|JSExtendableArray|=Object|Blob|File|NativeByteBuffer|NativeTypedData|MessagePort"
    });
  },
  get C418() {
    return C418 = dart.const({
      __proto__: EventStreamProviderOfAudioProcessingEventL().prototype,
      [EventStreamProvider__eventType]: "audioprocess"
    });
  },
  get C419() {
    return C419 = dart.const({
      __proto__: core.IntegerDivisionByZeroException.prototype
    });
  },
  get C420() {
    return C420 = dart.const({
      __proto__: core.Duration.prototype,
      [_duration$]: 0
    });
  },
  get C421() {
    return C421 = dart.constList([], core.Object);
  },
  get C422() {
    return C422 = dart.constMap(core.Symbol, core.Object, []);
  },
  get C423() {
    return C423 = dart.fn(core._GeneratorIterable._id, intLTointL());
  },
  get C424() {
    return C424 = dart.const({
      __proto__: core._StringStackTrace.prototype,
      [_StringStackTrace__stackTrace]: ""
    });
  },
  get C425() {
    return C425 = dart.const(new _internal.Symbol.new('unary-'));
  },
  get C426() {
    return C426 = dart.const(new _internal.Symbol.new(''));
  },
  get C427() {
    return C427 = dart.fn(core.Uri.decodeComponent, StringLToStringL());
  },
  get C428() {
    return C428 = dart.fn(core._Uri._createList, VoidToListLOfStringL());
  },
  get C429() {
    return C429 = dart.constList([0, 0, 24576, 1023, 65534, 34815, 65534, 18431], core.int);
  },
  get C430() {
    return C430 = dart.constList([0, 0, 26498, 1023, 65534, 34815, 65534, 18431], core.int);
  },
  get C431() {
    return C431 = dart.constList([0, 0, 65498, 45055, 65535, 34815, 65534, 18431], core.int);
  },
  get C432() {
    return C432 = dart.constList([0, 0, 26624, 1023, 65534, 2047, 65534, 2047], core.int);
  },
  get C433() {
    return C433 = dart.constList([0, 0, 26624, 1023, 0, 0, 65534, 2047], core.int);
  },
  get C434() {
    return C434 = dart.constList([0, 0, 32722, 11263, 65534, 34815, 65534, 18431], core.int);
  },
  get C435() {
    return C435 = dart.constList([0, 0, 32776, 33792, 1, 10240, 0, 0], core.int);
  },
  get C436() {
    return C436 = dart.constList([0, 0, 32722, 12287, 65534, 34815, 65534, 18431], core.int);
  },
  get C437() {
    return C437 = dart.constList([0, 0, 32754, 11263, 65534, 34815, 65534, 18431], core.int);
  },
  get C438() {
    return C438 = dart.constList([0, 0, 32722, 12287, 65535, 34815, 65534, 18431], core.int);
  },
  get C439() {
    return C439 = dart.constList([0, 0, 65490, 12287, 65535, 34815, 65534, 18431], core.int);
  },
  get C440() {
    return C440 = dart.constList([0, 0, 65490, 45055, 65535, 34815, 65534, 18431], core.int);
  },
  get C441() {
    return C441 = dart.constList([0, 0, 27858, 1023, 65534, 51199, 65535, 32767], core.int);
  },
  get C442() {
    return C442 = dart.constList([0, 0, 34816, 1023, 65534, 2047, 65534, 2047], core.int);
  },
  get C443() {
    return C443 = dart.constMap(core.String, core.String, []);
  },
  get C444() {
    return C444 = dart.constMap(core.String, ListOfStringL(), []);
  },
  get C445() {
    return C445 = dart.const({
      __proto__: core.Deprecated.prototype,
      [message$11]: "next release"
    });
  },
  get C446() {
    return C446 = dart.const({
      __proto__: core._Override.prototype
    });
  },
  get C447() {
    return C447 = dart.const({
      __proto__: core._Proxy.prototype
    });
  },
  get C448() {
    return C448 = dart.constList(["cache-control", "connection", "date", "pragma", "trailer", "transfer-encoding", "upgrade", "via", "warning"], core.String);
  },
  get C449() {
    return C449 = dart.constList(["allow", "content-encoding", "content-language", "content-length", "content-location", "content-md5", "content-range", "content-type", "expires", "last-modified"], core.String);
  },
  get C450() {
    return C450 = dart.constList(["accept-ranges", "age", "etag", "location", "proxy-authenticate", "retry-after", "server", "vary", "www-authenticate"], core.String);
  },
  get C451() {
    return C451 = dart.constList(["accept", "accept-charset", "accept-encoding", "accept-language", "authorization", "expect", "from", "host", "if-match", "if-modified-since", "if-none-match", "if-range", "if-unmodified-since", "max-forwards", "proxy-authorization", "range", "referer", "te", "user-agent"], core.String);
  },
  get C452() {
    return C452 = dart.const({
      __proto__: _http.HttpClientResponseCompressionState.prototype,
      [_name$7]: "HttpClientResponseCompressionState.notCompressed",
      index: 0
    });
  },
  get C453() {
    return C453 = dart.const({
      __proto__: _http.HttpClientResponseCompressionState.prototype,
      [_name$7]: "HttpClientResponseCompressionState.decompressed",
      index: 1
    });
  },
  get C454() {
    return C454 = dart.const({
      __proto__: _http.HttpClientResponseCompressionState.prototype,
      [_name$7]: "HttpClientResponseCompressionState.compressed",
      index: 2
    });
  },
  get C455() {
    return C455 = dart.constList([C452 || CT.C452, C453 || CT.C453, C454 || CT.C454], _http.HttpClientResponseCompressionState);
  },
  get C456() {
    return C456 = dart.constList([-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -2, -2, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, 62, -2, 62, -2, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -2, -2, -2, 0, -2, -2, -2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -2, -2, -2, -2, 63, -2, 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, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2], core.int);
  },
  get C457() {
    return C457 = dart.constList([3614090360.0, 3905402710.0, 606105819, 3250441966.0, 4118548399.0, 1200080426, 2821735955.0, 4249261313.0, 1770035416, 2336552879.0, 4294925233.0, 2304563134.0, 1804603682, 4254626195.0, 2792965006.0, 1236535329, 4129170786.0, 3225465664.0, 643717713, 3921069994.0, 3593408605.0, 38016083, 3634488961.0, 3889429448.0, 568446438, 3275163606.0, 4107603335.0, 1163531501, 2850285829.0, 4243563512.0, 1735328473, 2368359562.0, 4294588738.0, 2272392833.0, 1839030562, 4259657740.0, 2763975236.0, 1272893353, 4139469664.0, 3200236656.0, 681279174, 3936430074.0, 3572445317.0, 76029189, 3654602809.0, 3873151461.0, 530742520, 3299628645.0, 4096336452.0, 1126891415, 2878612391.0, 4237533241.0, 1700485571, 2399980690.0, 4293915773.0, 2240044497.0, 1873313359, 4264355552.0, 2734768916.0, 1309151649, 4149444226.0, 3174756917.0, 718787259, 3951481745.0], core.int);
  },
  get C458() {
    return C458 = dart.constList([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21], core.int);
  },
  get C459() {
    return C459 = dart.constList(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], dart.dynamic);
  },
  get C460() {
    return C460 = dart.constList(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], dart.dynamic);
  },
  get C461() {
    return C461 = dart.constList(["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"], dart.dynamic);
  },
  get C462() {
    return C462 = dart.constList(["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"], dart.dynamic);
  },
  get C463() {
    return C463 = dart.constList(["(", ")", "<", ">", "@", ",", ";", ":", "\\", "\"", "/", "[", "]", "?", "=", "{", "}"], core.String);
  },
  get C464() {
    return C464 = dart.const({
      __proto__: _http._ToUint8List.prototype
    });
  },
  get C465() {
    return C465 = dart.constList([48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70], core.int);
  },
  get C466() {
    return C466 = dart.constList([13, 10, 48, 13, 10, 13, 10], core.int);
  },
  get C467() {
    return C467 = dart.constList([48, 13, 10, 13, 10], core.int);
  },
  get C468() {
    return C468 = dart.fn(_http.HttpClient.findProxyFromEnvironment, UriL__ToStringL());
  },
  get C469() {
    return C469 = dart.const({
      __proto__: core.Duration.prototype,
      [_duration$]: 15000000
    });
  },
  get C472() {
    return C472 = dart.const({
      __proto__: _http._Proxy.prototype,
      [_Proxy_isDirect]: true,
      [_Proxy_password]: null,
      [_Proxy_username]: null,
      [_Proxy_port]: null,
      [_Proxy_host]: null
    });
  },
  get C471() {
    return C471 = dart.constList([C472 || CT.C472], _http._Proxy);
  },
  get C470() {
    return C470 = dart.const({
      __proto__: _http._ProxyConfiguration.prototype,
      [_ProxyConfiguration_proxies]: C471 || CT.C471
    });
  },
  get C473() {
    return C473 = dart.const({
      __proto__: core.Duration.prototype,
      [_duration$]: 120000000
    });
  },
  get C474() {
    return C474 = dart.const({
      __proto__: _http._AuthenticationScheme.prototype,
      [_scheme$]: -1
    });
  },
  get C475() {
    return C475 = dart.const({
      __proto__: _http._AuthenticationScheme.prototype,
      [_scheme$]: 0
    });
  },
  get C476() {
    return C476 = dart.const({
      __proto__: _http._AuthenticationScheme.prototype,
      [_scheme$]: 1
    });
  },
  get C477() {
    return C477 = dart.constList([72, 84, 84, 80], core.int);
  },
  get C478() {
    return C478 = dart.constList([72, 84, 84, 80, 47, 49, 46], core.int);
  },
  get C479() {
    return C479 = dart.constList([72, 84, 84, 80, 47, 49, 46, 48], core.int);
  },
  get C480() {
    return C480 = dart.constList([72, 84, 84, 80, 47, 49, 46, 49], core.int);
  },
  get C481() {
    return C481 = dart.constList([false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, true, false, false, false, false, false, true, true, false, false, true, false, false, true, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false], core.bool);
  },
  get C482() {
    return C482 = dart.const({
      __proto__: _http.CompressionOptions.prototype,
      [enabled$]: true,
      [serverMaxWindowBits$]: null,
      [clientMaxWindowBits$]: null,
      [serverNoContextTakeover$]: false,
      [clientNoContextTakeover$]: false
    });
  },
  get C483() {
    return C483 = dart.const({
      __proto__: _http.CompressionOptions.prototype,
      [enabled$]: false,
      [serverMaxWindowBits$]: null,
      [clientMaxWindowBits$]: null,
      [serverNoContextTakeover$]: false,
      [clientNoContextTakeover$]: false
    });
  },
  get C484() {
    return C484 = dart.constList([0, 0, 255, 255], core.int);
  },
  get C485() {
    return C485 = dart.const({
      __proto__: core.Duration.prototype,
      [_duration$]: 5000000
    });
  }
}, false);
var name$0 = dart.privateName(_debugger, "JsonMLConfig.name");
var C1;
var C2;
var C3;
var C4;
var C5;
var C6;
_debugger.JsonMLConfig = class JsonMLConfig extends core.Object {
  get name() {
    return this[name$0];
  }
  set name(value) {
    super.name = value;
  }
  toString() {
    return "JsonMLConfig(" + dart.str(this.name) + ")";
  }
};
(_debugger.JsonMLConfig.new = function(name) {
  this[name$0] = name;
  ;
}).prototype = _debugger.JsonMLConfig.prototype;
dart.addTypeTests(_debugger.JsonMLConfig);
dart.addTypeCaches(_debugger.JsonMLConfig);
dart.setLibraryUri(_debugger.JsonMLConfig, L3);
dart.setFieldSignature(_debugger.JsonMLConfig, () => ({
  __proto__: dart.getFields(_debugger.JsonMLConfig.__proto__),
  name: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(_debugger.JsonMLConfig, ['toString']);
dart.defineLazy(_debugger.JsonMLConfig, {
  /*_debugger.JsonMLConfig.none*/get none() {
    return C1 || CT.C1;
  },
  /*_debugger.JsonMLConfig.skipDart*/get skipDart() {
    return C2 || CT.C2;
  },
  /*_debugger.JsonMLConfig.keyToString*/get keyToString() {
    return C3 || CT.C3;
  },
  /*_debugger.JsonMLConfig.asClass*/get asClass() {
    return C4 || CT.C4;
  },
  /*_debugger.JsonMLConfig.asObject*/get asObject() {
    return C5 || CT.C5;
  },
  /*_debugger.JsonMLConfig.asMap*/get asMap() {
    return C6 || CT.C6;
  }
}, true);
_debugger.JSNative = class JSNative extends core.Object {
  static getProperty(object, name) {
    return object[name];
  }
  static setProperty(object, name, value) {
    return object[name] = value;
  }
};
(_debugger.JSNative.new = function() {
  ;
}).prototype = _debugger.JSNative.prototype;
dart.addTypeTests(_debugger.JSNative);
dart.addTypeCaches(_debugger.JSNative);
dart.setLibraryUri(_debugger.JSNative, L3);
var name$1 = dart.privateName(_debugger, "NameValuePair.name");
var value$ = dart.privateName(_debugger, "NameValuePair.value");
var config$ = dart.privateName(_debugger, "NameValuePair.config");
var hideName$ = dart.privateName(_debugger, "NameValuePair.hideName");
_debugger.NameValuePair = class NameValuePair extends core.Object {
  get name() {
    return this[name$1];
  }
  set name(value) {
    super.name = value;
  }
  get value() {
    return this[value$];
  }
  set value(value) {
    super.value = value;
  }
  get config() {
    return this[config$];
  }
  set config(value) {
    super.config = value;
  }
  get hideName() {
    return this[hideName$];
  }
  set hideName(value) {
    super.hideName = value;
  }
  _equals(other) {
    if (other == null) return false;
    if (!_debugger.NameValuePair.is(other)) return false;
    if (dart.test(this.hideName) || dart.dtest(dart.dload(other, 'hideName'))) return this === other;
    return dart.equals(dart.dload(other, 'name'), this.name);
  }
  get hashCode() {
    return dart.hashCode(this.name);
  }
  get displayName() {
    return dart.test(this.hideName) ? "" : this.name;
  }
};
(_debugger.NameValuePair.new = function(opts) {
  let name = opts && 'name' in opts ? opts.name : null;
  let value = opts && 'value' in opts ? opts.value : null;
  let config = opts && 'config' in opts ? opts.config : C1 || CT.C1;
  let hideName = opts && 'hideName' in opts ? opts.hideName : false;
  this[name$1] = name;
  this[value$] = value;
  this[config$] = config;
  this[hideName$] = hideName;
  ;
}).prototype = _debugger.NameValuePair.prototype;
dart.addTypeTests(_debugger.NameValuePair);
dart.addTypeCaches(_debugger.NameValuePair);
dart.setGetterSignature(_debugger.NameValuePair, () => ({
  __proto__: dart.getGetters(_debugger.NameValuePair.__proto__),
  displayName: core.String
}));
dart.setLibraryUri(_debugger.NameValuePair, L3);
dart.setFieldSignature(_debugger.NameValuePair, () => ({
  __proto__: dart.getFields(_debugger.NameValuePair.__proto__),
  name: dart.finalFieldType(core.String),
  value: dart.finalFieldType(core.Object),
  config: dart.finalFieldType(_debugger.JsonMLConfig),
  hideName: dart.finalFieldType(core.bool)
}));
dart.defineExtensionMethods(_debugger.NameValuePair, ['_equals']);
dart.defineExtensionAccessors(_debugger.NameValuePair, ['hashCode']);
var key$ = dart.privateName(_debugger, "MapEntry.key");
var value$0 = dart.privateName(_debugger, "MapEntry.value");
_debugger.MapEntry = class MapEntry extends core.Object {
  get key() {
    return this[key$];
  }
  set key(value) {
    super.key = value;
  }
  get value() {
    return this[value$0];
  }
  set value(value) {
    super.value = value;
  }
};
(_debugger.MapEntry.new = function(opts) {
  let key = opts && 'key' in opts ? opts.key : null;
  let value = opts && 'value' in opts ? opts.value : null;
  this[key$] = key;
  this[value$0] = value;
  ;
}).prototype = _debugger.MapEntry.prototype;
dart.addTypeTests(_debugger.MapEntry);
dart.addTypeCaches(_debugger.MapEntry);
dart.setLibraryUri(_debugger.MapEntry, L3);
dart.setFieldSignature(_debugger.MapEntry, () => ({
  __proto__: dart.getFields(_debugger.MapEntry.__proto__),
  key: dart.finalFieldType(core.Object),
  value: dart.finalFieldType(core.Object)
}));
var start$ = dart.privateName(_debugger, "IterableSpan.start");
var end$ = dart.privateName(_debugger, "IterableSpan.end");
var iterable$ = dart.privateName(_debugger, "IterableSpan.iterable");
_debugger.IterableSpan = class IterableSpan extends core.Object {
  get start() {
    return this[start$];
  }
  set start(value) {
    super.start = value;
  }
  get end() {
    return this[end$];
  }
  set end(value) {
    super.end = value;
  }
  get iterable() {
    return this[iterable$];
  }
  set iterable(value) {
    super.iterable = value;
  }
  get length() {
    return dart.notNull(this.end) - dart.notNull(this.start);
  }
  get maxPowerOfSubsetSize() {
    return (math.log(dart.notNull(this.length) - 0.5) / math.log(_debugger._maxSpanLength))[$truncate]();
  }
  get subsetSize() {
    return dart.asNullableInt(math.pow(_debugger._maxSpanLength, this.maxPowerOfSubsetSize));
  }
  asMap() {
    return this.iterable[$skip](this.start)[$take](this.length)[$toList]()[$asMap]();
  }
  children() {
    let children = JSArrayOfNameValuePairL().of([]);
    if (dart.notNull(this.length) <= dart.notNull(_debugger._maxSpanLength)) {
      this.asMap()[$forEach](dart.fn((i, element) => {
        children[$add](new _debugger.NameValuePair.new({name: (dart.notNull(i) + dart.notNull(this.start))[$toString](), value: element}));
      }, intLAnddynamicToNullN()));
    } else {
      for (let i = this.start; dart.notNull(i) < dart.notNull(this.end); i = dart.notNull(i) + dart.notNull(this.subsetSize)) {
        let subSpan = new _debugger.IterableSpan.new(i, math.min(core.int, this.end, dart.notNull(this.subsetSize) + dart.notNull(i)), this.iterable);
        if (subSpan.length === 1) {
          children[$add](new _debugger.NameValuePair.new({name: dart.toString(i), value: this.iterable[$elementAt](i)}));
        } else {
          children[$add](new _debugger.NameValuePair.new({name: "[" + dart.str(i) + "..." + dart.str(dart.notNull(subSpan.end) - 1) + "]", value: subSpan, hideName: true}));
        }
      }
    }
    return children;
  }
};
(_debugger.IterableSpan.new = function(start, end, iterable) {
  this[start$] = start;
  this[end$] = end;
  this[iterable$] = iterable;
  ;
}).prototype = _debugger.IterableSpan.prototype;
dart.addTypeTests(_debugger.IterableSpan);
dart.addTypeCaches(_debugger.IterableSpan);
dart.setMethodSignature(_debugger.IterableSpan, () => ({
  __proto__: dart.getMethods(_debugger.IterableSpan.__proto__),
  asMap: dart.fnType(core.Map$(core.int, dart.dynamic), []),
  children: dart.fnType(core.List$(_debugger.NameValuePair), [])
}));
dart.setGetterSignature(_debugger.IterableSpan, () => ({
  __proto__: dart.getGetters(_debugger.IterableSpan.__proto__),
  length: core.int,
  maxPowerOfSubsetSize: core.int,
  subsetSize: core.int
}));
dart.setLibraryUri(_debugger.IterableSpan, L3);
dart.setFieldSignature(_debugger.IterableSpan, () => ({
  __proto__: dart.getFields(_debugger.IterableSpan.__proto__),
  start: dart.finalFieldType(core.int),
  end: dart.finalFieldType(core.int),
  iterable: dart.finalFieldType(core.Iterable)
}));
var name$2 = dart.privateName(_debugger, "Library.name");
var object$ = dart.privateName(_debugger, "Library.object");
_debugger.Library = class Library extends core.Object {
  get name() {
    return this[name$2];
  }
  set name(value) {
    super.name = value;
  }
  get object() {
    return this[object$];
  }
  set object(value) {
    super.object = value;
  }
};
(_debugger.Library.new = function(name, object) {
  this[name$2] = name;
  this[object$] = object;
  ;
}).prototype = _debugger.Library.prototype;
dart.addTypeTests(_debugger.Library);
dart.addTypeCaches(_debugger.Library);
dart.setLibraryUri(_debugger.Library, L3);
dart.setFieldSignature(_debugger.Library, () => ({
  __proto__: dart.getFields(_debugger.Library.__proto__),
  name: dart.finalFieldType(core.String),
  object: dart.finalFieldType(core.Object)
}));
var object$0 = dart.privateName(_debugger, "NamedConstructor.object");
_debugger.NamedConstructor = class NamedConstructor extends core.Object {
  get object() {
    return this[object$0];
  }
  set object(value) {
    super.object = value;
  }
};
(_debugger.NamedConstructor.new = function(object) {
  this[object$0] = object;
  ;
}).prototype = _debugger.NamedConstructor.prototype;
dart.addTypeTests(_debugger.NamedConstructor);
dart.addTypeCaches(_debugger.NamedConstructor);
dart.setLibraryUri(_debugger.NamedConstructor, L3);
dart.setFieldSignature(_debugger.NamedConstructor, () => ({
  __proto__: dart.getFields(_debugger.NamedConstructor.__proto__),
  object: dart.finalFieldType(core.Object)
}));
var name$3 = dart.privateName(_debugger, "HeritageClause.name");
var types$ = dart.privateName(_debugger, "HeritageClause.types");
_debugger.HeritageClause = class HeritageClause extends core.Object {
  get name() {
    return this[name$3];
  }
  set name(value) {
    super.name = value;
  }
  get types() {
    return this[types$];
  }
  set types(value) {
    super.types = value;
  }
};
(_debugger.HeritageClause.new = function(name, types) {
  this[name$3] = name;
  this[types$] = types;
  ;
}).prototype = _debugger.HeritageClause.prototype;
dart.addTypeTests(_debugger.HeritageClause);
dart.addTypeCaches(_debugger.HeritageClause);
dart.setLibraryUri(_debugger.HeritageClause, L3);
dart.setFieldSignature(_debugger.HeritageClause, () => ({
  __proto__: dart.getFields(_debugger.HeritageClause.__proto__),
  name: dart.finalFieldType(core.String),
  types: dart.finalFieldType(core.List)
}));
var _attributes = dart.privateName(_debugger, "_attributes");
var _jsonML = dart.privateName(_debugger, "_jsonML");
_debugger.JsonMLElement = class JsonMLElement extends core.Object {
  appendChild(element) {
    this[_jsonML][$add](dart.dsend(element, 'toJsonML', []));
  }
  createChild(tagName) {
    let c = new _debugger.JsonMLElement.new(tagName);
    this[_jsonML][$add](c.toJsonML());
    return c;
  }
  createObjectTag(object) {
    let t2;
    t2 = this.createChild("object");
    t2.addAttribute("object", object);
    return t2;
  }
  setStyle(style) {
    dart.dput(this[_attributes], 'style', style);
  }
  addStyle(style) {
    let t2;
    if (dart.dload(this[_attributes], 'style') == null) {
      dart.dput(this[_attributes], 'style', style);
    } else {
      t2 = this[_attributes];
      dart.dput(t2, 'style', dart.dsend(dart.dload(t2, 'style'), '+', [style]));
    }
  }
  addAttribute(key, value) {
    _debugger.JSNative.setProperty(this[_attributes], key, value);
  }
  createTextChild(text) {
    this[_jsonML][$add](text);
  }
  toJsonML() {
    return this[_jsonML];
  }
};
(_debugger.JsonMLElement.new = function(tagName) {
  this[_attributes] = null;
  this[_jsonML] = null;
  this[_attributes] = {};
  this[_jsonML] = [tagName, this[_attributes]];
}).prototype = _debugger.JsonMLElement.prototype;
dart.addTypeTests(_debugger.JsonMLElement);
dart.addTypeCaches(_debugger.JsonMLElement);
dart.setMethodSignature(_debugger.JsonMLElement, () => ({
  __proto__: dart.getMethods(_debugger.JsonMLElement.__proto__),
  appendChild: dart.fnType(dart.dynamic, [dart.dynamic]),
  createChild: dart.fnType(_debugger.JsonMLElement, [core.String]),
  createObjectTag: dart.fnType(_debugger.JsonMLElement, [dart.dynamic]),
  setStyle: dart.fnType(dart.void, [core.String]),
  addStyle: dart.fnType(dart.dynamic, [core.String]),
  addAttribute: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic]),
  createTextChild: dart.fnType(dart.dynamic, [core.String]),
  toJsonML: dart.fnType(dart.dynamic, [])
}));
dart.setLibraryUri(_debugger.JsonMLElement, L3);
dart.setFieldSignature(_debugger.JsonMLElement, () => ({
  __proto__: dart.getFields(_debugger.JsonMLElement.__proto__),
  [_attributes]: dart.fieldType(dart.dynamic),
  [_jsonML]: dart.fieldType(core.List)
}));
var _simpleFormatter$ = dart.privateName(_debugger, "_simpleFormatter");
var customFormattersOn = dart.privateName(_debugger, "JsonMLFormatter.customFormattersOn");
_debugger.JsonMLFormatter = class JsonMLFormatter extends core.Object {
  get customFormattersOn() {
    return this[customFormattersOn];
  }
  set customFormattersOn(value) {
    this[customFormattersOn] = value;
  }
  setMaxSpanLengthForTestingOnly(spanLength) {
    _debugger._maxSpanLength = spanLength;
  }
  header(object, config) {
    let t2;
    this.customFormattersOn = true;
    if (dart.equals(config, _debugger.JsonMLConfig.skipDart) || dart.test(_debugger.isNativeJavaScriptObject(object))) {
      return null;
    }
    let c = this[_simpleFormatter$].preview(object, config);
    if (c == null) return null;
    if (dart.equals(config, _debugger.JsonMLConfig.keyToString)) {
      c = dart.toString(object);
    }
    let element = (t2 = new _debugger.JsonMLElement.new("span"), t2.setStyle("background-color: #d9edf7;color: black"), t2.createTextChild(c), t2);
    return element.toJsonML();
  }
  hasBody(object, config) {
    return this[_simpleFormatter$].hasChildren(object, config);
  }
  body(object, config) {
    let t2, t2$, t2$0, t2$1, t2$2;
    let body = (t2 = new _debugger.JsonMLElement.new("ol"), t2.setStyle("list-style-type: none;" + "padding-left: 0px;" + "margin-top: 0px;" + "margin-bottom: 0px;" + "margin-left: 12px;"), t2);
    if (core.StackTrace.is(object)) {
      body.addStyle("background-color: thistle;color: rgb(196, 26, 22);");
    }
    let children = this[_simpleFormatter$].children(object, config);
    if (children == null) return body.toJsonML();
    for (let child of children) {
      let li = body.createChild("li");
      li.setStyle("padding-left: 13px;");
      let nameSpan = null;
      let valueStyle = "";
      if (!dart.test(child.hideName)) {
        nameSpan = (t2$ = new _debugger.JsonMLElement.new("span"), t2$.createTextChild(child.displayName[$isNotEmpty] ? dart.str(child.displayName) + ": " : ""), t2$.setStyle("background-color: thistle; color: rgb(136, 19, 145); margin-right: -13px"), t2$);
        valueStyle = "margin-left: 13px";
      }
      if (_debugger._typeof(child.value) === "object" || _debugger._typeof(child.value) === "function") {
        let valueSpan = (t2$0 = new _debugger.JsonMLElement.new("span"), t2$0.setStyle(valueStyle), t2$0);
        t2$1 = valueSpan.createObjectTag(child.value);
        t2$1.addAttribute("config", child.config);
        t2$1;
        if (nameSpan != null) {
          li.appendChild(nameSpan);
        }
        li.appendChild(valueSpan);
      } else {
        let line = li.createChild("span");
        if (nameSpan != null) {
          line.appendChild(nameSpan);
        }
        line.appendChild((t2$2 = new _debugger.JsonMLElement.new("span"), t2$2.createTextChild(_debugger.safePreview(child.value, child.config)), t2$2.setStyle(valueStyle), t2$2));
      }
    }
    return body.toJsonML();
  }
};
(_debugger.JsonMLFormatter.new = function(_simpleFormatter) {
  this[customFormattersOn] = false;
  this[_simpleFormatter$] = _simpleFormatter;
  ;
}).prototype = _debugger.JsonMLFormatter.prototype;
dart.addTypeTests(_debugger.JsonMLFormatter);
dart.addTypeCaches(_debugger.JsonMLFormatter);
dart.setMethodSignature(_debugger.JsonMLFormatter, () => ({
  __proto__: dart.getMethods(_debugger.JsonMLFormatter.__proto__),
  setMaxSpanLengthForTestingOnly: dart.fnType(dart.void, [core.int]),
  header: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic]),
  hasBody: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
  body: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic])
}));
dart.setLibraryUri(_debugger.JsonMLFormatter, L3);
dart.setFieldSignature(_debugger.JsonMLFormatter, () => ({
  __proto__: dart.getFields(_debugger.JsonMLFormatter.__proto__),
  [_simpleFormatter$]: dart.fieldType(_debugger.DartFormatter),
  customFormattersOn: dart.fieldType(core.bool)
}));
_debugger.Formatter = class Formatter extends core.Object {};
(_debugger.Formatter.new = function() {
  ;
}).prototype = _debugger.Formatter.prototype;
dart.addTypeTests(_debugger.Formatter);
dart.addTypeCaches(_debugger.Formatter);
dart.setLibraryUri(_debugger.Formatter, L3);
var _formatters = dart.privateName(_debugger, "_formatters");
var _printConsoleError = dart.privateName(_debugger, "_printConsoleError");
_debugger.DartFormatter = class DartFormatter extends core.Object {
  preview(object, config) {
    try {
      if (object == null || typeof object == 'number' || typeof object == 'string' || dart.test(_debugger.isNativeJavaScriptObject(object))) {
        return dart.toString(object);
      }
      for (let formatter of this[_formatters]) {
        if (dart.test(formatter.accept(object, config))) return formatter.preview(object);
      }
    } catch (e$) {
      let e = dart.getThrown(e$);
      let trace = dart.stackTrace(e$);
      this[_printConsoleError]("Caught exception " + dart.str(e) + "\n trace:\n" + dart.str(trace));
    }
    return null;
  }
  hasChildren(object, config) {
    if (object == null) return false;
    try {
      for (let formatter of this[_formatters]) {
        if (dart.test(formatter.accept(object, config))) return formatter.hasChildren(object);
      }
    } catch (e$) {
      let e = dart.getThrown(e$);
      let trace = dart.stackTrace(e$);
      this[_printConsoleError]("[hasChildren] Caught exception " + dart.str(e) + "\n trace:\n" + dart.str(trace));
    }
    return false;
  }
  children(object, config) {
    try {
      if (object != null) {
        for (let formatter of this[_formatters]) {
          if (dart.test(formatter.accept(object, config))) return formatter.children(object);
        }
      }
    } catch (e$) {
      let e = dart.getThrown(e$);
      let trace = dart.stackTrace(e$);
      this[_printConsoleError]("Caught exception " + dart.str(e) + "\n trace:\n" + dart.str(trace));
    }
    return JSArrayOfNameValuePairL().of([]);
  }
  [_printConsoleError](message) {
    return window.console.error(message);
  }
};
(_debugger.DartFormatter.new = function() {
  this[_formatters] = null;
  this[_formatters] = JSArrayOfFormatterL().of([new _debugger.ObjectInternalsFormatter.new(), new _debugger.ClassFormatter.new(), new _debugger.TypeFormatter.new(), new _debugger.NamedConstructorFormatter.new(), new _debugger.MapFormatter.new(), new _debugger.MapOverviewFormatter.new(), new _debugger.IterableFormatter.new(), new _debugger.IterableSpanFormatter.new(), new _debugger.MapEntryFormatter.new(), new _debugger.StackTraceFormatter.new(), new _debugger.ErrorAndExceptionFormatter.new(), new _debugger.FunctionFormatter.new(), new _debugger.HeritageClauseFormatter.new(), new _debugger.LibraryModuleFormatter.new(), new _debugger.LibraryFormatter.new(), new _debugger.ObjectFormatter.new()]);
}).prototype = _debugger.DartFormatter.prototype;
dart.addTypeTests(_debugger.DartFormatter);
dart.addTypeCaches(_debugger.DartFormatter);
dart.setMethodSignature(_debugger.DartFormatter, () => ({
  __proto__: dart.getMethods(_debugger.DartFormatter.__proto__),
  preview: dart.fnType(core.String, [dart.dynamic, dart.dynamic]),
  hasChildren: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
  children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic, dart.dynamic]),
  [_printConsoleError]: dart.fnType(dart.void, [core.String])
}));
dart.setLibraryUri(_debugger.DartFormatter, L3);
dart.setFieldSignature(_debugger.DartFormatter, () => ({
  __proto__: dart.getFields(_debugger.DartFormatter.__proto__),
  [_formatters]: dart.fieldType(core.List$(_debugger.Formatter))
}));
_debugger.ObjectFormatter = class ObjectFormatter extends _debugger.Formatter {
  accept(object, config) {
    return !dart.test(_debugger.isNativeJavaScriptObject(object));
  }
  preview(object) {
    let typeName = _debugger.getObjectTypeName(object);
    try {
      let toString = dart.str(object);
      if (toString.length > dart.notNull(_debugger.maxFormatterStringLength)) {
        toString = toString[$substring](0, dart.notNull(_debugger.maxFormatterStringLength) - 3) + "...";
      }
      if (toString[$contains](typeName)) {
        return toString;
      } else {
        return toString + " (" + dart.str(typeName) + ")";
      }
    } catch (e$) {
      let e = dart.getThrown(e$);
    }
    return typeName;
  }
  hasChildren(object) {
    return true;
  }
  children(object) {
    let type = dart.getType(object);
    let ret = new (_HashSetOfNameValuePairL()).new();
    let fields = new (_HashSetOfNameValuePairL()).new();
    _debugger.addPropertiesFromSignature(dart.getFields(type), fields, object, true);
    let getters = new (_HashSetOfNameValuePairL()).new();
    _debugger.addPropertiesFromSignature(dart.getGetters(type), getters, object, true);
    ret.addAll(_debugger.sortProperties(fields));
    ret.addAll(_debugger.sortProperties(getters));
    _debugger.addMetadataChildren(object, ret);
    return ret[$toList]();
  }
};
(_debugger.ObjectFormatter.new = function() {
  ;
}).prototype = _debugger.ObjectFormatter.prototype;
dart.addTypeTests(_debugger.ObjectFormatter);
dart.addTypeCaches(_debugger.ObjectFormatter);
dart.setMethodSignature(_debugger.ObjectFormatter, () => ({
  __proto__: dart.getMethods(_debugger.ObjectFormatter.__proto__),
  accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
  preview: dart.fnType(core.String, [dart.dynamic]),
  hasChildren: dart.fnType(core.bool, [dart.dynamic]),
  children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
}));
dart.setLibraryUri(_debugger.ObjectFormatter, L3);
_debugger.ObjectInternalsFormatter = class ObjectInternalsFormatter extends _debugger.ObjectFormatter {
  accept(object, config) {
    return dart.test(super.accept(object, config)) && dart.equals(config, _debugger.JsonMLConfig.asObject);
  }
  preview(object) {
    return _debugger.getObjectTypeName(object);
  }
};
(_debugger.ObjectInternalsFormatter.new = function() {
  ;
}).prototype = _debugger.ObjectInternalsFormatter.prototype;
dart.addTypeTests(_debugger.ObjectInternalsFormatter);
dart.addTypeCaches(_debugger.ObjectInternalsFormatter);
dart.setLibraryUri(_debugger.ObjectInternalsFormatter, L3);
_debugger.LibraryModuleFormatter = class LibraryModuleFormatter extends core.Object {
  accept(object, config) {
    return dart.getModuleName(object) != null;
  }
  hasChildren(object) {
    return true;
  }
  preview(object) {
    let libraryNames = dart.getModuleName(object)[$split]("/");
    if (dart.notNull(libraryNames[$length]) > 1 && libraryNames[$last] == libraryNames[$_get](dart.notNull(libraryNames[$length]) - 2)) {
      libraryNames[$_set](dart.notNull(libraryNames[$length]) - 1, "");
    }
    return "Library Module: " + dart.str(libraryNames[$join]("/"));
  }
  children(object) {
    let children = new (_HashSetOfNameValuePairL()).new();
    for (let name of _debugger.getOwnPropertyNames(object)) {
      let value = _debugger.safeGetProperty(object, name);
      children.add(new _debugger.NameValuePair.new({name: name, value: new _debugger.Library.new(name, value), hideName: true}));
    }
    return children[$toList]();
  }
};
(_debugger.LibraryModuleFormatter.new = function() {
  ;
}).prototype = _debugger.LibraryModuleFormatter.prototype;
dart.addTypeTests(_debugger.LibraryModuleFormatter);
dart.addTypeCaches(_debugger.LibraryModuleFormatter);
_debugger.LibraryModuleFormatter[dart.implements] = () => [_debugger.Formatter];
dart.setMethodSignature(_debugger.LibraryModuleFormatter, () => ({
  __proto__: dart.getMethods(_debugger.LibraryModuleFormatter.__proto__),
  accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
  hasChildren: dart.fnType(core.bool, [dart.dynamic]),
  preview: dart.fnType(core.String, [dart.dynamic]),
  children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
}));
dart.setLibraryUri(_debugger.LibraryModuleFormatter, L3);
var genericParameters = dart.privateName(_debugger, "LibraryFormatter.genericParameters");
_debugger.LibraryFormatter = class LibraryFormatter extends core.Object {
  get genericParameters() {
    return this[genericParameters];
  }
  set genericParameters(value) {
    this[genericParameters] = value;
  }
  accept(object, config) {
    return _debugger.Library.is(object);
  }
  hasChildren(object) {
    return true;
  }
  preview(object) {
    return core.String.as(dart.dload(object, 'name'));
  }
  children(object) {
    let children = new (_HashSetOfNameValuePairL()).new();
    let objectProperties = _debugger.safeProperties(dart.dload(object, 'object'));
    dart.dsend(objectProperties, 'forEach', [dart.fn((name, value) => {
        if (dart.getGenericTypeCtor(value) != null) return;
        children.add(_debugger.NameValuePair.as(dart.isType(value) ? this.classChild(core.String.as(name), value) : new _debugger.NameValuePair.new({name: core.String.as(name), value: value})));
      }, dynamicAnddynamicToNullN())]);
    return children[$toList]();
  }
  classChild(name, child) {
    let typeName = _debugger.getTypeName(child);
    return new _debugger.NameValuePair.new({name: typeName, value: child, config: _debugger.JsonMLConfig.asClass});
  }
};
(_debugger.LibraryFormatter.new = function() {
  this[genericParameters] = new (IdentityMapOfStringL$StringL()).new();
  ;
}).prototype = _debugger.LibraryFormatter.prototype;
dart.addTypeTests(_debugger.LibraryFormatter);
dart.addTypeCaches(_debugger.LibraryFormatter);
_debugger.LibraryFormatter[dart.implements] = () => [_debugger.Formatter];
dart.setMethodSignature(_debugger.LibraryFormatter, () => ({
  __proto__: dart.getMethods(_debugger.LibraryFormatter.__proto__),
  accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
  hasChildren: dart.fnType(core.bool, [dart.dynamic]),
  preview: dart.fnType(core.String, [dart.dynamic]),
  children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic]),
  classChild: dart.fnType(dart.dynamic, [core.String, core.Object])
}));
dart.setLibraryUri(_debugger.LibraryFormatter, L3);
dart.setFieldSignature(_debugger.LibraryFormatter, () => ({
  __proto__: dart.getFields(_debugger.LibraryFormatter.__proto__),
  genericParameters: dart.fieldType(collection.HashMap$(core.String, core.String))
}));
_debugger.FunctionFormatter = class FunctionFormatter extends core.Object {
  accept(object, config) {
    if (_debugger._typeof(object) !== "function") return false;
    return dart.getReifiedType(object) != null;
  }
  hasChildren(object) {
    return true;
  }
  preview(object) {
    try {
      return dart.typeName(dart.getReifiedType(object));
    } catch (e$) {
      let e = dart.getThrown(e$);
      return _debugger.safePreview(object, _debugger.JsonMLConfig.none);
    }
  }
  children(object) {
    return JSArrayOfNameValuePairL().of([new _debugger.NameValuePair.new({name: "signature", value: this.preview(object)}), new _debugger.NameValuePair.new({name: "JavaScript Function", value: object, config: _debugger.JsonMLConfig.skipDart})]);
  }
};
(_debugger.FunctionFormatter.new = function() {
  ;
}).prototype = _debugger.FunctionFormatter.prototype;
dart.addTypeTests(_debugger.FunctionFormatter);
dart.addTypeCaches(_debugger.FunctionFormatter);
_debugger.FunctionFormatter[dart.implements] = () => [_debugger.Formatter];
dart.setMethodSignature(_debugger.FunctionFormatter, () => ({
  __proto__: dart.getMethods(_debugger.FunctionFormatter.__proto__),
  accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
  hasChildren: dart.fnType(core.bool, [dart.dynamic]),
  preview: dart.fnType(core.String, [dart.dynamic]),
  children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
}));
dart.setLibraryUri(_debugger.FunctionFormatter, L3);
_debugger.MapOverviewFormatter = class MapOverviewFormatter extends core.Object {
  accept(object, config) {
    return core.Map.is(object);
  }
  hasChildren(object) {
    return true;
  }
  preview(object) {
    let map = core.Map.as(object);
    try {
      return dart.str(_debugger.getObjectTypeName(map));
    } catch (e$) {
      let e = dart.getThrown(e$);
      return _debugger.safePreview(object, _debugger.JsonMLConfig.none);
    }
  }
  children(object) {
    return JSArrayOfNameValuePairL().of([new _debugger.NameValuePair.new({name: "[[instance view]]", value: object, config: _debugger.JsonMLConfig.asObject}), new _debugger.NameValuePair.new({name: "[[entries]]", value: object, config: _debugger.JsonMLConfig.asMap})]);
  }
};
(_debugger.MapOverviewFormatter.new = function() {
  ;
}).prototype = _debugger.MapOverviewFormatter.prototype;
dart.addTypeTests(_debugger.MapOverviewFormatter);
dart.addTypeCaches(_debugger.MapOverviewFormatter);
_debugger.MapOverviewFormatter[dart.implements] = () => [_debugger.Formatter];
dart.setMethodSignature(_debugger.MapOverviewFormatter, () => ({
  __proto__: dart.getMethods(_debugger.MapOverviewFormatter.__proto__),
  accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
  hasChildren: dart.fnType(core.bool, [dart.dynamic]),
  preview: dart.fnType(core.String, [dart.dynamic]),
  children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
}));
dart.setLibraryUri(_debugger.MapOverviewFormatter, L3);
_debugger.MapFormatter = class MapFormatter extends core.Object {
  accept(object, config) {
    return _js_helper.InternalMap.is(object) || dart.equals(config, _debugger.JsonMLConfig.asMap);
  }
  hasChildren(object) {
    return true;
  }
  preview(object) {
    let map = core.Map.as(object);
    try {
      return dart.str(_debugger.getObjectTypeName(map)) + " length " + dart.str(map[$length]);
    } catch (e$) {
      let e = dart.getThrown(e$);
      return _debugger.safePreview(object, _debugger.JsonMLConfig.none);
    }
  }
  children(object) {
    let map = core.Map.as(object);
    let entries = new (_HashSetOfNameValuePairL()).new();
    map[$forEach](dart.fn((key, value) => {
      let entryWrapper = new _debugger.MapEntry.new({key: key, value: value});
      entries.add(new _debugger.NameValuePair.new({name: dart.toString(entries[$length]), value: entryWrapper}));
    }, dynamicAnddynamicToNullN()));
    _debugger.addMetadataChildren(object, entries);
    return entries[$toList]();
  }
};
(_debugger.MapFormatter.new = function() {
  ;
}).prototype = _debugger.MapFormatter.prototype;
dart.addTypeTests(_debugger.MapFormatter);
dart.addTypeCaches(_debugger.MapFormatter);
_debugger.MapFormatter[dart.implements] = () => [_debugger.Formatter];
dart.setMethodSignature(_debugger.MapFormatter, () => ({
  __proto__: dart.getMethods(_debugger.MapFormatter.__proto__),
  accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
  hasChildren: dart.fnType(core.bool, [dart.dynamic]),
  preview: dart.fnType(core.String, [dart.dynamic]),
  children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
}));
dart.setLibraryUri(_debugger.MapFormatter, L3);
_debugger.IterableFormatter = class IterableFormatter extends core.Object {
  accept(object, config) {
    return core.Iterable.is(object);
  }
  preview(object) {
    let iterable = core.Iterable.as(object);
    try {
      let length = iterable[$length];
      return dart.str(_debugger.getObjectTypeName(iterable)) + " length " + dart.str(length);
    } catch (e) {
      let _ = dart.getThrown(e);
      return dart.str(_debugger.getObjectTypeName(iterable));
    }
  }
  hasChildren(object) {
    return true;
  }
  children(object) {
    let children = new (_HashSetOfNameValuePairL()).new();
    children.addAll(new _debugger.IterableSpan.new(0, core.int.as(dart.dload(object, 'length')), core.Iterable.as(object)).children());
    _debugger.addMetadataChildren(object, children);
    return children[$toList]();
  }
};
(_debugger.IterableFormatter.new = function() {
  ;
}).prototype = _debugger.IterableFormatter.prototype;
dart.addTypeTests(_debugger.IterableFormatter);
dart.addTypeCaches(_debugger.IterableFormatter);
_debugger.IterableFormatter[dart.implements] = () => [_debugger.Formatter];
dart.setMethodSignature(_debugger.IterableFormatter, () => ({
  __proto__: dart.getMethods(_debugger.IterableFormatter.__proto__),
  accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
  preview: dart.fnType(core.String, [dart.dynamic]),
  hasChildren: dart.fnType(core.bool, [dart.dynamic]),
  children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
}));
dart.setLibraryUri(_debugger.IterableFormatter, L3);
_debugger.NamedConstructorFormatter = class NamedConstructorFormatter extends core.Object {
  accept(object, config) {
    return _debugger.NamedConstructor.is(object);
  }
  preview(object) {
    return "Named Constructor";
  }
  hasChildren(object) {
    return true;
  }
  children(object) {
    return JSArrayOfNameValuePairL().of([new _debugger.NameValuePair.new({name: "JavaScript Function", value: object, config: _debugger.JsonMLConfig.skipDart})]);
  }
};
(_debugger.NamedConstructorFormatter.new = function() {
  ;
}).prototype = _debugger.NamedConstructorFormatter.prototype;
dart.addTypeTests(_debugger.NamedConstructorFormatter);
dart.addTypeCaches(_debugger.NamedConstructorFormatter);
_debugger.NamedConstructorFormatter[dart.implements] = () => [_debugger.Formatter];
dart.setMethodSignature(_debugger.NamedConstructorFormatter, () => ({
  __proto__: dart.getMethods(_debugger.NamedConstructorFormatter.__proto__),
  accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
  preview: dart.fnType(core.String, [dart.dynamic]),
  hasChildren: dart.fnType(core.bool, [dart.dynamic]),
  children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
}));
dart.setLibraryUri(_debugger.NamedConstructorFormatter, L3);
_debugger.MapEntryFormatter = class MapEntryFormatter extends core.Object {
  accept(object, config) {
    return _debugger.MapEntry.is(object);
  }
  preview(object) {
    let entry = _debugger.MapEntry.as(object);
    return dart.str(_debugger.safePreview(entry.key, _debugger.JsonMLConfig.none)) + " => " + dart.str(_debugger.safePreview(entry.value, _debugger.JsonMLConfig.none));
  }
  hasChildren(object) {
    return true;
  }
  children(object) {
    return JSArrayOfNameValuePairL().of([new _debugger.NameValuePair.new({name: "key", value: dart.dload(object, 'key'), config: _debugger.JsonMLConfig.keyToString}), new _debugger.NameValuePair.new({name: "value", value: dart.dload(object, 'value')})]);
  }
};
(_debugger.MapEntryFormatter.new = function() {
  ;
}).prototype = _debugger.MapEntryFormatter.prototype;
dart.addTypeTests(_debugger.MapEntryFormatter);
dart.addTypeCaches(_debugger.MapEntryFormatter);
_debugger.MapEntryFormatter[dart.implements] = () => [_debugger.Formatter];
dart.setMethodSignature(_debugger.MapEntryFormatter, () => ({
  __proto__: dart.getMethods(_debugger.MapEntryFormatter.__proto__),
  accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
  preview: dart.fnType(core.String, [dart.dynamic]),
  hasChildren: dart.fnType(core.bool, [dart.dynamic]),
  children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
}));
dart.setLibraryUri(_debugger.MapEntryFormatter, L3);
var C7;
_debugger.HeritageClauseFormatter = class HeritageClauseFormatter extends core.Object {
  accept(object, config) {
    return _debugger.HeritageClause.is(object);
  }
  preview(object) {
    let clause = _debugger.HeritageClause.as(object);
    let typeNames = clause.types[$map](core.String, C7 || CT.C7);
    return dart.str(clause.name) + " " + dart.str(typeNames[$join](", "));
  }
  hasChildren(object) {
    return true;
  }
  children(object) {
    let clause = _debugger.HeritageClause.as(object);
    let children = JSArrayOfNameValuePairL().of([]);
    for (let type of clause.types) {
      children[$add](new _debugger.NameValuePair.new({value: type, config: _debugger.JsonMLConfig.asClass}));
    }
    return children;
  }
};
(_debugger.HeritageClauseFormatter.new = function() {
  ;
}).prototype = _debugger.HeritageClauseFormatter.prototype;
dart.addTypeTests(_debugger.HeritageClauseFormatter);
dart.addTypeCaches(_debugger.HeritageClauseFormatter);
_debugger.HeritageClauseFormatter[dart.implements] = () => [_debugger.Formatter];
dart.setMethodSignature(_debugger.HeritageClauseFormatter, () => ({
  __proto__: dart.getMethods(_debugger.HeritageClauseFormatter.__proto__),
  accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
  preview: dart.fnType(core.String, [dart.dynamic]),
  hasChildren: dart.fnType(core.bool, [dart.dynamic]),
  children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
}));
dart.setLibraryUri(_debugger.HeritageClauseFormatter, L3);
_debugger.IterableSpanFormatter = class IterableSpanFormatter extends core.Object {
  accept(object, config) {
    return _debugger.IterableSpan.is(object);
  }
  preview(object) {
    return "[" + dart.str(dart.dload(object, 'start')) + "..." + dart.str(dart.dsend(dart.dload(object, 'end'), '-', [1])) + "]";
  }
  hasChildren(object) {
    return true;
  }
  children(object) {
    return ListOfNameValuePairL().as(dart.dsend(object, 'children', []));
  }
};
(_debugger.IterableSpanFormatter.new = function() {
  ;
}).prototype = _debugger.IterableSpanFormatter.prototype;
dart.addTypeTests(_debugger.IterableSpanFormatter);
dart.addTypeCaches(_debugger.IterableSpanFormatter);
_debugger.IterableSpanFormatter[dart.implements] = () => [_debugger.Formatter];
dart.setMethodSignature(_debugger.IterableSpanFormatter, () => ({
  __proto__: dart.getMethods(_debugger.IterableSpanFormatter.__proto__),
  accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
  preview: dart.fnType(core.String, [dart.dynamic]),
  hasChildren: dart.fnType(core.bool, [dart.dynamic]),
  children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
}));
dart.setLibraryUri(_debugger.IterableSpanFormatter, L3);
_debugger.ErrorAndExceptionFormatter = class ErrorAndExceptionFormatter extends _debugger.ObjectFormatter {
  accept(object, config) {
    return core.Error.is(object) || core.Exception.is(object);
  }
  hasChildren(object) {
    return true;
  }
  preview(object) {
    let trace = dart.stackTrace(object);
    let line = dart.str(trace)[$split]("\n")[$firstWhere](dart.fn(l => l[$contains](_debugger.ErrorAndExceptionFormatter._pattern) && !l[$contains]("dart:sdk") && !l[$contains]("dart_sdk"), StringLToboolL()), {orElse: dart.fn(() => null, VoidToNullN())});
    return line != null ? dart.str(object) + " at " + dart.str(line) : dart.str(object);
  }
  children(object) {
    let trace = dart.stackTrace(object);
    let entries = new (_HashSetOfNameValuePairL()).new();
    entries.add(new _debugger.NameValuePair.new({name: "stackTrace", value: trace}));
    this.addInstanceMembers(object, entries);
    _debugger.addMetadataChildren(object, entries);
    return entries[$toList]();
  }
  addInstanceMembers(object, ret) {
    ret.add(new _debugger.NameValuePair.new({name: "[[instance members]]", value: object, config: _debugger.JsonMLConfig.asObject}));
  }
};
(_debugger.ErrorAndExceptionFormatter.new = function() {
  ;
}).prototype = _debugger.ErrorAndExceptionFormatter.prototype;
dart.addTypeTests(_debugger.ErrorAndExceptionFormatter);
dart.addTypeCaches(_debugger.ErrorAndExceptionFormatter);
dart.setMethodSignature(_debugger.ErrorAndExceptionFormatter, () => ({
  __proto__: dart.getMethods(_debugger.ErrorAndExceptionFormatter.__proto__),
  addInstanceMembers: dart.fnType(dart.void, [dart.dynamic, core.Set$(_debugger.NameValuePair)])
}));
dart.setLibraryUri(_debugger.ErrorAndExceptionFormatter, L3);
dart.defineLazy(_debugger.ErrorAndExceptionFormatter, {
  /*_debugger.ErrorAndExceptionFormatter._pattern*/get _pattern() {
    return core.RegExp.new("\\d+\\:\\d+");
  }
}, true);
_debugger.StackTraceFormatter = class StackTraceFormatter extends core.Object {
  accept(object, config) {
    return core.StackTrace.is(object);
  }
  preview(object) {
    return "StackTrace";
  }
  hasChildren(object) {
    return true;
  }
  children(object) {
    return dart.toString(object)[$split]("\n")[$map](_debugger.NameValuePair, dart.fn(line => new _debugger.NameValuePair.new({value: line[$replaceFirst](core.RegExp.new("^\\s+at\\s"), ""), hideName: true}), StringLToNameValuePairL()))[$toList]();
  }
};
(_debugger.StackTraceFormatter.new = function() {
  ;
}).prototype = _debugger.StackTraceFormatter.prototype;
dart.addTypeTests(_debugger.StackTraceFormatter);
dart.addTypeCaches(_debugger.StackTraceFormatter);
_debugger.StackTraceFormatter[dart.implements] = () => [_debugger.Formatter];
dart.setMethodSignature(_debugger.StackTraceFormatter, () => ({
  __proto__: dart.getMethods(_debugger.StackTraceFormatter.__proto__),
  accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
  preview: dart.fnType(core.String, [dart.dynamic]),
  hasChildren: dart.fnType(core.bool, [dart.dynamic]),
  children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
}));
dart.setLibraryUri(_debugger.StackTraceFormatter, L3);
_debugger.ClassFormatter = class ClassFormatter extends core.Object {
  accept(object, config) {
    return dart.equals(config, _debugger.JsonMLConfig.asClass);
  }
  preview(type) {
    let $implements = dart.getImplements(type);
    let typeName = _debugger.getTypeName(type);
    if ($implements != null) {
      let typeNames = $implements()[$map](core.String, C7 || CT.C7);
      return dart.str(typeName) + " implements " + dart.str(typeNames[$join](", "));
    } else {
      return typeName;
    }
  }
  hasChildren(object) {
    return true;
  }
  children(type) {
    let t10, t10$;
    let ret = new (_HashSetOfNameValuePairL()).new();
    let staticProperties = new (_HashSetOfNameValuePairL()).new();
    let staticMethods = new (_HashSetOfNameValuePairL()).new();
    _debugger.addPropertiesFromSignature(dart.getStaticFields(type), staticProperties, type, false);
    _debugger.addPropertiesFromSignature(dart.getStaticGetters(type), staticProperties, type, false);
    _debugger.addPropertiesFromSignature(dart.getStaticMethods(type), staticMethods, type, false);
    if (dart.test(staticProperties[$isNotEmpty]) || dart.test(staticMethods[$isNotEmpty])) {
      t10 = ret;
      t10.add(new _debugger.NameValuePair.new({value: "[[Static members]]", hideName: true}));
      t10.addAll(_debugger.sortProperties(staticProperties));
      t10.addAll(_debugger.sortProperties(staticMethods));
      t10;
    }
    let instanceMethods = new (_HashSetOfNameValuePairL()).new();
    _debugger.addPropertiesFromSignature(dart.getMethods(type), instanceMethods, type.prototype, false, {tagTypes: true});
    if (dart.test(instanceMethods[$isNotEmpty])) {
      t10$ = ret;
      t10$.add(new _debugger.NameValuePair.new({value: "[[Instance Methods]]", hideName: true}));
      t10$.addAll(_debugger.sortProperties(instanceMethods));
      t10$;
    }
    let mixin = dart.getMixin(type);
    if (mixin != null) {
      ret.add(new _debugger.NameValuePair.new({name: "[[Mixins]]", value: new _debugger.HeritageClause.new("mixins", [mixin])}));
    }
    let baseProto = type.__proto__;
    if (baseProto != null && !dart.test(dart.isJsInterop(baseProto))) {
      ret.add(new _debugger.NameValuePair.new({name: "[[base class]]", value: baseProto, config: _debugger.JsonMLConfig.asClass}));
    }
    return ret[$toList]();
  }
};
(_debugger.ClassFormatter.new = function() {
  ;
}).prototype = _debugger.ClassFormatter.prototype;
dart.addTypeTests(_debugger.ClassFormatter);
dart.addTypeCaches(_debugger.ClassFormatter);
_debugger.ClassFormatter[dart.implements] = () => [_debugger.Formatter];
dart.setMethodSignature(_debugger.ClassFormatter, () => ({
  __proto__: dart.getMethods(_debugger.ClassFormatter.__proto__),
  accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
  preview: dart.fnType(core.String, [dart.dynamic]),
  hasChildren: dart.fnType(core.bool, [dart.dynamic]),
  children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
}));
dart.setLibraryUri(_debugger.ClassFormatter, L3);
_debugger.TypeFormatter = class TypeFormatter extends core.Object {
  accept(object, config) {
    return core.Type.is(object);
  }
  preview(object) {
    return dart.toString(object);
  }
  hasChildren(object) {
    return false;
  }
  children(object) {
    return JSArrayOfNameValuePairL().of([]);
  }
};
(_debugger.TypeFormatter.new = function() {
  ;
}).prototype = _debugger.TypeFormatter.prototype;
dart.addTypeTests(_debugger.TypeFormatter);
dart.addTypeCaches(_debugger.TypeFormatter);
_debugger.TypeFormatter[dart.implements] = () => [_debugger.Formatter];
dart.setMethodSignature(_debugger.TypeFormatter, () => ({
  __proto__: dart.getMethods(_debugger.TypeFormatter.__proto__),
  accept: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
  preview: dart.fnType(core.String, [dart.dynamic]),
  hasChildren: dart.fnType(core.bool, [dart.dynamic]),
  children: dart.fnType(core.List$(_debugger.NameValuePair), [dart.dynamic])
}));
dart.setLibraryUri(_debugger.TypeFormatter, L3);
_debugger._MethodStats = class _MethodStats extends core.Object {};
(_debugger._MethodStats.new = function(typeName, frame) {
  this.count = null;
  this.typeName = typeName;
  this.frame = frame;
  this.count = 0.0;
}).prototype = _debugger._MethodStats.prototype;
dart.addTypeTests(_debugger._MethodStats);
dart.addTypeCaches(_debugger._MethodStats);
dart.setLibraryUri(_debugger._MethodStats, L3);
dart.setFieldSignature(_debugger._MethodStats, () => ({
  __proto__: dart.getFields(_debugger._MethodStats.__proto__),
  typeName: dart.finalFieldType(core.String),
  frame: dart.finalFieldType(core.String),
  count: dart.fieldType(core.double)
}));
_debugger._CallMethodRecord = class _CallMethodRecord extends core.Object {};
(_debugger._CallMethodRecord.new = function(jsError, type) {
  this.jsError = jsError;
  this.type = type;
  ;
}).prototype = _debugger._CallMethodRecord.prototype;
dart.addTypeTests(_debugger._CallMethodRecord);
dart.addTypeCaches(_debugger._CallMethodRecord);
dart.setLibraryUri(_debugger._CallMethodRecord, L3);
dart.setFieldSignature(_debugger._CallMethodRecord, () => ({
  __proto__: dart.getFields(_debugger._CallMethodRecord.__proto__),
  jsError: dart.fieldType(dart.dynamic),
  type: dart.fieldType(dart.dynamic)
}));
_debugger._typeof = function _typeof(object) {
  return typeof object;
};
_debugger.getOwnPropertyNames = function getOwnPropertyNames(object) {
  return JSArrayOfStringL().of(dart.getOwnPropertyNames(object));
};
_debugger.getOwnPropertySymbols = function getOwnPropertySymbols(object) {
  return Object.getOwnPropertySymbols(object);
};
_debugger.addMetadataChildren = function addMetadataChildren(object, ret) {
  ret.add(new _debugger.NameValuePair.new({name: "[[class]]", value: dart.getReifiedType(object), config: _debugger.JsonMLConfig.asClass}));
};
_debugger.addPropertiesFromSignature = function addPropertiesFromSignature(sig, properties, object, walkPrototypeChain, opts) {
  let t10;
  let tagTypes = opts && 'tagTypes' in opts ? opts.tagTypes : false;
  let skippedNames = (t10 = new collection._HashSet.new(), t10.add("hashCode"), t10);
  let objectPrototype = Object.prototype;
  while (sig != null && !core.identical(sig, objectPrototype)) {
    for (let symbol of _debugger.getOwnPropertySymbols(sig)) {
      let dartName = _debugger.symbolName(symbol);
      let dartXPrefix = "dartx.";
      if (dartName[$startsWith](dartXPrefix)) {
        dartName = dartName[$substring](dartXPrefix.length);
      }
      if (dart.test(skippedNames.contains(dartName))) continue;
      let value = _debugger.safeGetProperty(object, symbol);
      if (dart.dtest(tagTypes) && _debugger._typeof(value) === "function") {
        dart.fn(value, sig[symbol]);
      }
      properties.add(new _debugger.NameValuePair.new({name: dartName, value: value}));
    }
    for (let name of _debugger.getOwnPropertyNames(sig)) {
      let value = _debugger.safeGetProperty(object, name);
      if (dart.test(skippedNames.contains(name))) continue;
      if (dart.dtest(tagTypes) && _debugger._typeof(value) === "function") {
        dart.fn(value, sig[name]);
      }
      properties.add(new _debugger.NameValuePair.new({name: name, value: value}));
    }
    if (!dart.test(walkPrototypeChain)) break;
    sig = dart.getPrototypeOf(sig);
  }
};
_debugger.sortProperties = function sortProperties(properties) {
  let sortedProperties = properties[$toList]();
  sortedProperties[$sort](dart.fn((a, b) => {
    let aPrivate = a.name[$startsWith]("_");
    let bPrivate = b.name[$startsWith]("_");
    if (!aPrivate[$_equals](bPrivate)) return aPrivate ? 1 : -1;
    return a.name[$compareTo](b.name);
  }, NameValuePairLAndNameValuePairLTointL()));
  return sortedProperties;
};
_debugger.getObjectTypeName = function getObjectTypeName(object) {
  let reifiedType = dart.getReifiedType(object);
  if (reifiedType == null) {
    if (_debugger._typeof(object) === "function") {
      return "[[Raw JavaScript Function]]";
    }
    return "<Error getting type name>";
  }
  return _debugger.getTypeName(reifiedType);
};
_debugger.getTypeName = function getTypeName(type) {
  return dart.typeName(type);
};
_debugger.safePreview = function safePreview(object, config) {
  try {
    let preview = _debugger._devtoolsFormatter[_simpleFormatter$].preview(object, config);
    if (preview != null) return preview;
    return dart.toString(object);
  } catch (e$) {
    let e = dart.getThrown(e$);
    return "<Exception thrown> " + dart.str(e);
  }
};
_debugger.symbolName = function symbolName(symbol) {
  let name = dart.toString(symbol);
  if (!name[$startsWith]("Symbol(")) dart.assertFailed(null, L4, 159, 10, "name.startsWith('Symbol(')");
  return name[$substring]("Symbol(".length, name.length - 1);
};
_debugger.hasMethod = function hasMethod$(object, name) {
  try {
    return dart.hasMethod(object, name);
  } catch (e$) {
    let e = dart.getThrown(e$);
    return false;
  }
};
_debugger.safeGetProperty = function safeGetProperty(protoChain, name) {
  try {
    return _debugger.JSNative.getProperty(protoChain, name);
  } catch (e$) {
    let e = dart.getThrown(e$);
    return "<Exception thrown> " + dart.str(e);
  }
};
_debugger.safeProperties = function safeProperties(object) {
  return LinkedHashMapOfdynamic$ObjectL().fromIterable(_debugger.getOwnPropertyNames(object)[$where](dart.fn(each => _debugger.safeGetProperty(object, each) != null, StringLToboolL())), {key: dart.fn(name => name, dynamicTodynamic()), value: dart.fn(name => _debugger.safeGetProperty(object, name), dynamicToObjectL())});
};
_debugger.isNativeJavaScriptObject = function isNativeJavaScriptObject(object) {
  let type = _debugger._typeof(object);
  if (type !== "object" && type !== "function") return true;
  if (dart.test(dart.isJsInterop(object)) && dart.getModuleName(object) == null) {
    return true;
  }
  return object instanceof Node;
};
_debugger.registerDevtoolsFormatter = function registerDevtoolsFormatter() {
  dart.global.devtoolsFormatters = [_debugger._devtoolsFormatter];
};
_debugger.getModuleNames = function getModuleNames$() {
  return dart.getModuleNames();
};
_debugger.getModuleLibraries = function getModuleLibraries$(name) {
  return dart.getModuleLibraries(name);
};
_debugger.getDynamicStats = function getDynamicStats() {
  let t13;
  let callMethodStats = new (LinkedMapOfStringL$_MethodStatsL()).new();
  if (dart.notNull(_debugger._callMethodRecords[$length]) > 0) {
    let recordRatio = dart.notNull(_debugger._totalCallRecords) / dart.notNull(_debugger._callMethodRecords[$length]);
    for (let record of _debugger._callMethodRecords) {
      let stackStr = record.jsError.stack;
      let frames = stackStr[$split]("\n");
      let src = frames[$skip](2)[$map](core.String, dart.fn(f => _debugger._frameMappingCache[$putIfAbsent](f, dart.fn(() => _debugger.stackTraceMapper("\n" + dart.str(f)), VoidToStringL())), StringLToStringL()))[$firstWhere](dart.fn(f => !f[$startsWith]("dart:"), StringLToboolL()), {orElse: dart.fn(() => "", VoidToStringL())});
      let actualTypeName = dart.typeName(record.type);
      t13 = callMethodStats[$putIfAbsent](actualTypeName + " <" + dart.str(src) + ">", dart.fn(() => new _debugger._MethodStats.new(actualTypeName, src), VoidTo_MethodStatsL()));
      t13.count = dart.notNull(t13.count) + recordRatio;
    }
    if (_debugger._totalCallRecords != _debugger._callMethodRecords[$length]) {
      for (let k of callMethodStats[$keys][$toList]()) {
        let stats = callMethodStats[$_get](k);
        let threshold = dart.notNull(_debugger._minCount) * recordRatio;
        if (dart.notNull(stats.count) + 0.001 < threshold) {
          callMethodStats[$remove](k);
        }
      }
    }
  }
  _debugger._callMethodRecords[$clear]();
  _debugger._totalCallRecords = 0;
  let keys = callMethodStats[$keys][$toList]();
  keys[$sort](dart.fn((a, b) => callMethodStats[$_get](b).count[$compareTo](callMethodStats[$_get](a).count), StringLAndStringLTointL()));
  let ret = JSArrayOfListLOfObjectL().of([]);
  for (let key of keys) {
    let stats = callMethodStats[$_get](key);
    ret[$add](JSArrayOfObjectL().of([stats.typeName, stats.frame, stats.count[$round]()]));
  }
  return ret;
};
_debugger.clearDynamicStats = function clearDynamicStats() {
  _debugger._callMethodRecords[$clear]();
};
_debugger.trackCall = function trackCall(obj) {
  if (!_debugger._trackProfile) return;
  let index = -1;
  _debugger._totalCallRecords = dart.notNull(_debugger._totalCallRecords) + 1;
  if (_debugger._callMethodRecords[$length] == _debugger._callRecordSampleSize) {
    index = Math.floor(Math.random() * _debugger._totalCallRecords);
    if (index >= dart.notNull(_debugger._callMethodRecords[$length])) return;
  }
  let record = new _debugger._CallMethodRecord.new(new Error(), dart.getReifiedType(obj));
  if (index === -1) {
    _debugger._callMethodRecords[$add](record);
  } else {
    _debugger._callMethodRecords[$_set](index, record);
  }
};
dart.copyProperties(_debugger, {
  get stackTraceMapper() {
    let _util = dart.global.$dartStackTraceUtility;
    return _util != null ? _util.mapper : null;
  },
  get _trackProfile() {
    return dart.__trackProfile;
  }
});
dart.defineLazy(_debugger, {
  /*_debugger._maxSpanLength*/get _maxSpanLength() {
    return 100;
  },
  set _maxSpanLength(_) {},
  /*_debugger._devtoolsFormatter*/get _devtoolsFormatter() {
    return new _debugger.JsonMLFormatter.new(new _debugger.DartFormatter.new());
  },
  set _devtoolsFormatter(_) {},
  /*_debugger.maxFormatterStringLength*/get maxFormatterStringLength() {
    return 100;
  },
  set maxFormatterStringLength(_) {},
  /*_debugger._callRecordSampleSize*/get _callRecordSampleSize() {
    return 5000;
  },
  set _callRecordSampleSize(_) {},
  /*_debugger._callMethodRecords*/get _callMethodRecords() {
    return JSArrayOf_CallMethodRecordL().of([]);
  },
  set _callMethodRecords(_) {},
  /*_debugger._totalCallRecords*/get _totalCallRecords() {
    return 0;
  },
  set _totalCallRecords(_) {},
  /*_debugger._minCount*/get _minCount() {
    return 2;
  },
  set _minCount(_) {},
  /*_debugger._frameMappingCache*/get _frameMappingCache() {
    return new (LinkedMapOfStringL$StringL()).new();
  },
  set _frameMappingCache(_) {}
}, true);
var name$4 = dart.privateName(_foreign_helper, "JSExportName.name");
_foreign_helper.JSExportName = class JSExportName extends core.Object {
  get name() {
    return this[name$4];
  }
  set name(value) {
    super.name = value;
  }
};
(_foreign_helper.JSExportName.new = function(name) {
  this[name$4] = name;
  ;
}).prototype = _foreign_helper.JSExportName.prototype;
dart.addTypeTests(_foreign_helper.JSExportName);
dart.addTypeCaches(_foreign_helper.JSExportName);
dart.setLibraryUri(_foreign_helper.JSExportName, L5);
dart.setFieldSignature(_foreign_helper.JSExportName, () => ({
  __proto__: dart.getFields(_foreign_helper.JSExportName.__proto__),
  name: dart.finalFieldType(core.String)
}));
var code$ = dart.privateName(_foreign_helper, "JS_CONST.code");
_foreign_helper.JS_CONST = class JS_CONST extends core.Object {
  get code() {
    return this[code$];
  }
  set code(value) {
    super.code = value;
  }
};
(_foreign_helper.JS_CONST.new = function(code) {
  this[code$] = code;
  ;
}).prototype = _foreign_helper.JS_CONST.prototype;
dart.addTypeTests(_foreign_helper.JS_CONST);
dart.addTypeCaches(_foreign_helper.JS_CONST);
dart.setLibraryUri(_foreign_helper.JS_CONST, L5);
dart.setFieldSignature(_foreign_helper.JS_CONST, () => ({
  __proto__: dart.getFields(_foreign_helper.JS_CONST.__proto__),
  code: dart.finalFieldType(core.String)
}));
_foreign_helper._Rest = class _Rest extends core.Object {};
(_foreign_helper._Rest.new = function() {
  ;
}).prototype = _foreign_helper._Rest.prototype;
dart.addTypeTests(_foreign_helper._Rest);
dart.addTypeCaches(_foreign_helper._Rest);
dart.setLibraryUri(_foreign_helper._Rest, L5);
_foreign_helper.JS = function JS(T, typeDescription, codeTemplate, arg0 = null, arg1 = null, arg2 = null, arg3 = null, arg4 = null, arg5 = null, arg6 = null, arg7 = null, arg8 = null, arg9 = null, arg10 = null, arg11 = null, arg12 = null, arg13 = null, arg14 = null, arg15 = null, arg16 = null, arg17 = null, arg18 = null, arg19 = null) {
};
_foreign_helper.JS_DART_OBJECT_CONSTRUCTOR = function JS_DART_OBJECT_CONSTRUCTOR() {
};
_foreign_helper.JS_INTERCEPTOR_CONSTANT = function JS_INTERCEPTOR_CONSTANT(type) {
};
_foreign_helper.JS_OPERATOR_IS_PREFIX = function JS_OPERATOR_IS_PREFIX() {
};
_foreign_helper.JS_OPERATOR_AS_PREFIX = function JS_OPERATOR_AS_PREFIX() {
};
_foreign_helper.JS_OBJECT_CLASS_NAME = function JS_OBJECT_CLASS_NAME() {
};
_foreign_helper.JS_NULL_CLASS_NAME = function JS_NULL_CLASS_NAME() {
};
_foreign_helper.JS_FUNCTION_CLASS_NAME = function JS_FUNCTION_CLASS_NAME() {
};
_foreign_helper.JS_IS_INDEXABLE_FIELD_NAME = function JS_IS_INDEXABLE_FIELD_NAME() {
};
_foreign_helper.JS_SIGNATURE_NAME = function JS_SIGNATURE_NAME() {
};
_foreign_helper.JS_TYPEDEF_TAG = function JS_TYPEDEF_TAG() {
};
_foreign_helper.JS_FUNCTION_TYPE_TAG = function JS_FUNCTION_TYPE_TAG() {
};
_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG = function JS_FUNCTION_TYPE_VOID_RETURN_TAG() {
};
_foreign_helper.JS_FUNCTION_TYPE_RETURN_TYPE_TAG = function JS_FUNCTION_TYPE_RETURN_TYPE_TAG() {
};
_foreign_helper.JS_FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG = function JS_FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG() {
};
_foreign_helper.JS_FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG = function JS_FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG() {
};
_foreign_helper.JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG = function JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG() {
};
_foreign_helper.JS_GET_NAME = function JS_GET_NAME(name) {
};
_foreign_helper.JS_GET_FLAG = function JS_GET_FLAG(name) {
};
_foreign_helper.JS_EFFECT = function JS_EFFECT(code) {
  dart.dcall(code, [null]);
};
_foreign_helper.JS_STRING_CONCAT = function JS_STRING_CONCAT(a, b) {
  return a + b;
};
_foreign_helper.spread = function spread(args) {
  dart.throw(new core.StateError.new("The spread function cannot be called, " + "it should be compiled away."));
};
var C8;
dart.defineLazy(_foreign_helper, {
  /*_foreign_helper.rest*/get rest() {
    return C8 || CT.C8;
  }
}, true);
_interceptors.Interceptor = class Interceptor extends core.Object {
  toString() {
    return this.toString();
  }
};
(_interceptors.Interceptor.new = function() {
  ;
}).prototype = _interceptors.Interceptor.prototype;
dart.addTypeTests(_interceptors.Interceptor);
dart.addTypeCaches(_interceptors.Interceptor);
dart.setLibraryUri(_interceptors.Interceptor, L6);
dart.defineExtensionMethods(_interceptors.Interceptor, ['toString']);
_interceptors.JSBool = class JSBool extends _interceptors.Interceptor {
  [$toString]() {
    return String(this);
  }
  get [$hashCode]() {
    return this ? 2 * 3 * 23 * 3761 : 269 * 811;
  }
  [$bitAnd](other) {
    if (other == null) dart.argumentError(other);
    return other && this;
  }
  [$bitOr](other) {
    if (other == null) dart.argumentError(other);
    return other || this;
  }
  [$bitXor](other) {
    if (other == null) dart.argumentError(other);
    return this !== other;
  }
  get [$runtimeType]() {
    return dart.wrapType(core.bool);
  }
};
(_interceptors.JSBool.new = function() {
  _interceptors.JSBool.__proto__.new.call(this);
  ;
}).prototype = _interceptors.JSBool.prototype;
dart.addTypeTests(_interceptors.JSBool);
dart.addTypeCaches(_interceptors.JSBool);
_interceptors.JSBool[dart.implements] = () => [core.bool];
dart.setMethodSignature(_interceptors.JSBool, () => ({
  __proto__: dart.getMethods(_interceptors.JSBool.__proto__),
  [$bitAnd]: dart.fnType(core.bool, [core.bool]),
  [$bitOr]: dart.fnType(core.bool, [core.bool]),
  [$bitXor]: dart.fnType(core.bool, [core.bool])
}));
dart.setLibraryUri(_interceptors.JSBool, L6);
dart.definePrimitiveHashCode(_interceptors.JSBool.prototype);
dart.registerExtension("Boolean", _interceptors.JSBool);
const _is_JSIndexable_default = Symbol('_is_JSIndexable_default');
_interceptors.JSIndexable$ = dart.generic(E => {
  class JSIndexable extends core.Object {}
  (JSIndexable.new = function() {
    ;
  }).prototype = JSIndexable.prototype;
  dart.addTypeTests(JSIndexable);
  JSIndexable.prototype[_is_JSIndexable_default] = true;
  dart.addTypeCaches(JSIndexable);
  dart.setLibraryUri(JSIndexable, L6);
  return JSIndexable;
});
_interceptors.JSIndexable = _interceptors.JSIndexable$();
dart.addTypeTests(_interceptors.JSIndexable, _is_JSIndexable_default);
_interceptors.JSObject = class JSObject extends core.Object {};
(_interceptors.JSObject.new = function() {
  ;
}).prototype = _interceptors.JSObject.prototype;
dart.addTypeTests(_interceptors.JSObject);
dart.addTypeCaches(_interceptors.JSObject);
dart.setLibraryUri(_interceptors.JSObject, L6);
_interceptors.JavaScriptObject = class JavaScriptObject extends _interceptors.Interceptor {
  get hashCode() {
    return 0;
  }
  get runtimeType() {
    return dart.wrapType(_interceptors.JSObject);
  }
};
(_interceptors.JavaScriptObject.new = function() {
  _interceptors.JavaScriptObject.__proto__.new.call(this);
  ;
}).prototype = _interceptors.JavaScriptObject.prototype;
dart.addTypeTests(_interceptors.JavaScriptObject);
dart.addTypeCaches(_interceptors.JavaScriptObject);
_interceptors.JavaScriptObject[dart.implements] = () => [_interceptors.JSObject];
dart.setLibraryUri(_interceptors.JavaScriptObject, L6);
dart.defineExtensionAccessors(_interceptors.JavaScriptObject, ['hashCode', 'runtimeType']);
_interceptors.PlainJavaScriptObject = class PlainJavaScriptObject extends _interceptors.JavaScriptObject {};
(_interceptors.PlainJavaScriptObject.new = function() {
  _interceptors.PlainJavaScriptObject.__proto__.new.call(this);
  ;
}).prototype = _interceptors.PlainJavaScriptObject.prototype;
dart.addTypeTests(_interceptors.PlainJavaScriptObject);
dart.addTypeCaches(_interceptors.PlainJavaScriptObject);
dart.setLibraryUri(_interceptors.PlainJavaScriptObject, L6);
_interceptors.UnknownJavaScriptObject = class UnknownJavaScriptObject extends _interceptors.JavaScriptObject {
  toString() {
    return String(this);
  }
};
(_interceptors.UnknownJavaScriptObject.new = function() {
  _interceptors.UnknownJavaScriptObject.__proto__.new.call(this);
  ;
}).prototype = _interceptors.UnknownJavaScriptObject.prototype;
dart.addTypeTests(_interceptors.UnknownJavaScriptObject);
dart.addTypeCaches(_interceptors.UnknownJavaScriptObject);
dart.setLibraryUri(_interceptors.UnknownJavaScriptObject, L6);
dart.defineExtensionMethods(_interceptors.UnknownJavaScriptObject, ['toString']);
_interceptors.NativeError = class NativeError extends _interceptors.Interceptor {
  dartStack() {
    return this.stack;
  }
};
(_interceptors.NativeError.new = function() {
  _interceptors.NativeError.__proto__.new.call(this);
  ;
}).prototype = _interceptors.NativeError.prototype;
dart.addTypeTests(_interceptors.NativeError);
dart.addTypeCaches(_interceptors.NativeError);
dart.setMethodSignature(_interceptors.NativeError, () => ({
  __proto__: dart.getMethods(_interceptors.NativeError.__proto__),
  dartStack: dart.fnType(core.String, []),
  [$dartStack]: dart.fnType(core.String, [])
}));
dart.setLibraryUri(_interceptors.NativeError, L6);
dart.defineExtensionMethods(_interceptors.NativeError, ['dartStack']);
var _fieldName = dart.privateName(_interceptors, "_fieldName");
var _functionCallTarget = dart.privateName(_interceptors, "_functionCallTarget");
var _receiver = dart.privateName(_interceptors, "_receiver");
var C9;
var _receiver$ = dart.privateName(core, "_receiver");
var _existingArgumentNames = dart.privateName(_interceptors, "_existingArgumentNames");
var C10;
var _existingArgumentNames$ = dart.privateName(core, "_existingArgumentNames");
var _arguments = dart.privateName(_interceptors, "_arguments");
var C11;
var _arguments$ = dart.privateName(core, "_arguments");
var _memberName = dart.privateName(_interceptors, "_memberName");
var C12;
var _memberName$ = dart.privateName(core, "_memberName");
var _invocation = dart.privateName(_interceptors, "_invocation");
var C13;
var _invocation$ = dart.privateName(core, "_invocation");
var _namedArguments = dart.privateName(_interceptors, "_namedArguments");
var C14;
var _namedArguments$ = dart.privateName(core, "_namedArguments");
_interceptors.JSNoSuchMethodError = class JSNoSuchMethodError extends _interceptors.NativeError {
  [_fieldName](message) {
    let t13;
    let match = _interceptors.JSNoSuchMethodError._nullError.firstMatch(message);
    if (match == null) return null;
    let name = match._get(1);
    match = (t13 = _interceptors.JSNoSuchMethodError._extensionName.firstMatch(name), t13 == null ? _interceptors.JSNoSuchMethodError._privateName.firstMatch(name) : t13);
    return match != null ? match._get(1) : name;
  }
  [_functionCallTarget](message) {
    let match = _interceptors.JSNoSuchMethodError._notAFunction.firstMatch(message);
    return match != null ? match._get(1) : null;
  }
  [$dartStack]() {
    let stack = super[$dartStack]();
    stack = dart.notNull(this[$toString]()) + "\n" + dart.notNull(stack[$split]("\n")[$sublist](1)[$join]("\n"));
    return stack;
  }
  get [$stackTrace]() {
    return dart.stackTrace(this);
  }
  [$toString]() {
    let message = this.message;
    let callTarget = this[_functionCallTarget](message);
    if (callTarget != null) {
      return "NoSuchMethodError: tried to call a non-function, such as null: " + "'" + dart.str(callTarget) + "'";
    }
    let name = this[_fieldName](message);
    if (name == null) {
      return this.toString();
    }
    return "NoSuchMethodError: invalid member on null: '" + dart.str(name) + "'";
  }
  get [_receiver$]() {
    return this[$noSuchMethod](new core._Invocation.getter(C9 || CT.C9));
  }
  get [_existingArgumentNames$]() {
    return core.List.as(this[$noSuchMethod](new core._Invocation.getter(C10 || CT.C10)));
  }
  get [_arguments$]() {
    return core.List.as(this[$noSuchMethod](new core._Invocation.getter(C11 || CT.C11)));
  }
  get [_memberName$]() {
    return core.Symbol.as(this[$noSuchMethod](new core._Invocation.getter(C12 || CT.C12)));
  }
  get [_invocation$]() {
    return core.Invocation.as(this[$noSuchMethod](new core._Invocation.getter(C13 || CT.C13)));
  }
  get [_namedArguments$]() {
    return MapOfSymbolL$dynamic().as(this[$noSuchMethod](new core._Invocation.getter(C14 || CT.C14)));
  }
};
(_interceptors.JSNoSuchMethodError.new = function() {
  _interceptors.JSNoSuchMethodError.__proto__.new.call(this);
  ;
}).prototype = _interceptors.JSNoSuchMethodError.prototype;
dart.addTypeTests(_interceptors.JSNoSuchMethodError);
dart.addTypeCaches(_interceptors.JSNoSuchMethodError);
_interceptors.JSNoSuchMethodError[dart.implements] = () => [core.NoSuchMethodError];
dart.setMethodSignature(_interceptors.JSNoSuchMethodError, () => ({
  __proto__: dart.getMethods(_interceptors.JSNoSuchMethodError.__proto__),
  [_fieldName]: dart.fnType(core.String, [core.String]),
  [_functionCallTarget]: dart.fnType(core.String, [core.String])
}));
dart.setGetterSignature(_interceptors.JSNoSuchMethodError, () => ({
  __proto__: dart.getGetters(_interceptors.JSNoSuchMethodError.__proto__),
  [$stackTrace]: core.StackTrace,
  [_receiver$]: core.Object,
  [_existingArgumentNames$]: core.List,
  [_arguments$]: core.List,
  [_memberName$]: core.Symbol,
  [_invocation$]: core.Invocation,
  [_namedArguments$]: core.Map$(core.Symbol, dart.dynamic)
}));
dart.setLibraryUri(_interceptors.JSNoSuchMethodError, L6);
dart.defineLazy(_interceptors.JSNoSuchMethodError, {
  /*_interceptors.JSNoSuchMethodError._nullError*/get _nullError() {
    return core.RegExp.new("^Cannot read property '(.+)' of null$");
  },
  /*_interceptors.JSNoSuchMethodError._notAFunction*/get _notAFunction() {
    return core.RegExp.new("^(.+) is not a function$");
  },
  /*_interceptors.JSNoSuchMethodError._extensionName*/get _extensionName() {
    return core.RegExp.new("^Symbol\\(dartx\\.(.+)\\)$");
  },
  /*_interceptors.JSNoSuchMethodError._privateName*/get _privateName() {
    return core.RegExp.new("^Symbol\\((_.+)\\)$");
  }
}, true);
dart.registerExtension("TypeError", _interceptors.JSNoSuchMethodError);
_interceptors.JSFunction = class JSFunction extends _interceptors.Interceptor {
  [$toString]() {
    if (dart.isType(this)) return dart.typeName(this);
    return "Closure: " + dart.typeName(dart.getReifiedType(this)) + " from: " + this;
  }
  [$_equals](other) {
    if (other == null) return false;
    if (other == null) return false;
    let boundObj = this._boundObject;
    if (boundObj == null) return this === other;
    return boundObj === other._boundObject && this._boundMethod === other._boundMethod;
  }
  get [$hashCode]() {
    let boundObj = this._boundObject;
    if (boundObj == null) return core.identityHashCode(this);
    let boundMethod = this._boundMethod;
    let hash = 17 * 31 + dart.notNull(dart.hashCode(boundObj)) & 536870911;
    return hash * 31 + dart.notNull(core.identityHashCode(boundMethod)) & 536870911;
  }
  get [$runtimeType]() {
    return dart.wrapType(dart.getReifiedType(this));
  }
};
(_interceptors.JSFunction.new = function() {
  _interceptors.JSFunction.__proto__.new.call(this);
  ;
}).prototype = _interceptors.JSFunction.prototype;
dart.addTypeTests(_interceptors.JSFunction);
dart.addTypeCaches(_interceptors.JSFunction);
dart.setLibraryUri(_interceptors.JSFunction, L6);
dart.registerExtension("Function", _interceptors.JSFunction);
_interceptors.JSNull = class JSNull extends core.Object {
  toString() {
    return "null";
  }
  noSuchMethod(i) {
    return dart.defaultNoSuchMethod(null, i);
  }
};
(_interceptors.JSNull.new = function() {
  ;
}).prototype = _interceptors.JSNull.prototype;
dart.addTypeTests(_interceptors.JSNull);
dart.addTypeCaches(_interceptors.JSNull);
dart.setLibraryUri(_interceptors.JSNull, L6);
dart.defineExtensionMethods(_interceptors.JSNull, ['toString', 'noSuchMethod']);
var _hasValue = dart.privateName(_interceptors, "_hasValue");
var C15;
var _hasValue$ = dart.privateName(core, "_hasValue");
var _errorExplanation = dart.privateName(_interceptors, "_errorExplanation");
var C16;
var _errorExplanation$ = dart.privateName(core, "_errorExplanation");
var _errorName = dart.privateName(_interceptors, "_errorName");
var C17;
var _errorName$ = dart.privateName(core, "_errorName");
_interceptors.JSRangeError = class JSRangeError extends _interceptors.Interceptor {
  get [$stackTrace]() {
    return dart.stackTrace(this);
  }
  get [$invalidValue]() {
    return null;
  }
  get [$name]() {
    return null;
  }
  get [$message]() {
    return this.message;
  }
  [$toString]() {
    return "Invalid argument: " + dart.str(this[$message]);
  }
  get [_hasValue$]() {
    return core.bool.as(this[$noSuchMethod](new core._Invocation.getter(C15 || CT.C15)));
  }
  get [_errorExplanation$]() {
    return core.String.as(this[$noSuchMethod](new core._Invocation.getter(C16 || CT.C16)));
  }
  get [_errorName$]() {
    return core.String.as(this[$noSuchMethod](new core._Invocation.getter(C17 || CT.C17)));
  }
};
(_interceptors.JSRangeError.new = function() {
  _interceptors.JSRangeError.__proto__.new.call(this);
  ;
}).prototype = _interceptors.JSRangeError.prototype;
dart.addTypeTests(_interceptors.JSRangeError);
dart.addTypeCaches(_interceptors.JSRangeError);
_interceptors.JSRangeError[dart.implements] = () => [core.ArgumentError];
dart.setGetterSignature(_interceptors.JSRangeError, () => ({
  __proto__: dart.getGetters(_interceptors.JSRangeError.__proto__),
  [$stackTrace]: core.StackTrace,
  [$invalidValue]: dart.dynamic,
  [$name]: core.String,
  [$message]: dart.dynamic,
  [_hasValue$]: core.bool,
  [_errorExplanation$]: core.String,
  [_errorName$]: core.String
}));
dart.setLibraryUri(_interceptors.JSRangeError, L6);
dart.registerExtension("RangeError", _interceptors.JSRangeError);
var _removeWhere = dart.privateName(_interceptors, "_removeWhere");
const _is_JSArray_default = Symbol('_is_JSArray_default');
_interceptors.JSArray$ = dart.generic(E => {
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  var WhereIterableOfEL = () => (WhereIterableOfEL = dart.constFn(_internal.WhereIterable$(E)))();
  var SubListIterableOfEL = () => (SubListIterableOfEL = dart.constFn(_internal.SubListIterable$(E)))();
  var TakeWhileIterableOfEL = () => (TakeWhileIterableOfEL = dart.constFn(_internal.TakeWhileIterable$(E)))();
  var SkipWhileIterableOfEL = () => (SkipWhileIterableOfEL = dart.constFn(_internal.SkipWhileIterable$(E)))();
  var ELAndELToLEL = () => (ELAndELToLEL = dart.constFn(dart.fnType(E, [E, E])))();
  var VoidToLEL = () => (VoidToLEL = dart.constFn(dart.fnType(E, [])))();
  var JSArrayOfEL = () => (JSArrayOfEL = dart.constFn(_interceptors.JSArray$(E)))();
  var ListOfEL = () => (ListOfEL = dart.constFn(core.List$(E)))();
  var ReversedListIterableOfEL = () => (ReversedListIterableOfEL = dart.constFn(_internal.ReversedListIterable$(E)))();
  var LinkedHashSetOfEL = () => (LinkedHashSetOfEL = dart.constFn(collection.LinkedHashSet$(E)))();
  var ArrayIteratorOfEL = () => (ArrayIteratorOfEL = dart.constFn(_interceptors.ArrayIterator$(E)))();
  var ListMapViewOfEL = () => (ListMapViewOfEL = dart.constFn(_internal.ListMapView$(E)))();
  var FollowedByIterableOfEL = () => (FollowedByIterableOfEL = dart.constFn(_internal.FollowedByIterable$(E)))();
  class JSArray extends core.Object {
    constructor() {
      return [];
    }
    static of(list) {
      list.__proto__ = JSArray.prototype;
      return list;
    }
    static fixed(list) {
      list.__proto__ = JSArray.prototype;
      list.fixed$length = Array;
      return list;
    }
    static unmodifiable(list) {
      list.__proto__ = JSArray.prototype;
      list.fixed$length = Array;
      list.immutable$list = Array;
      return list;
    }
    static markFixedList(list) {
      list.fixed$length = Array;
    }
    static markUnmodifiableList(list) {
      list.fixed$length = Array;
      list.immutable$list = Array;
    }
    [$checkMutable](reason) {
      if (this.immutable$list) {
        dart.throw(new core.UnsupportedError.new(core.String.as(reason)));
      }
    }
    [$checkGrowable](reason) {
      if (this.fixed$length) {
        dart.throw(new core.UnsupportedError.new(core.String.as(reason)));
      }
    }
    [$cast](R) {
      return core.List.castFrom(E, R, this);
    }
    [$add](value) {
      E.as(value);
      this[$checkGrowable]("add");
      this.push(value);
    }
    [$removeAt](index) {
      if (index == null) dart.argumentError(index);
      this[$checkGrowable]("removeAt");
      if (index < 0 || index >= this[$length]) {
        dart.throw(new core.RangeError.value(index));
      }
      return this.splice(index, 1)[0];
    }
    [$insert](index, value) {
      if (index == null) dart.argumentError(index);
      E.as(value);
      this[$checkGrowable]("insert");
      if (index < 0 || index > this[$length]) {
        dart.throw(new core.RangeError.value(index));
      }
      this.splice(index, 0, value);
    }
    [$insertAll](index, iterable) {
      if (index == null) dart.argumentError(index);
      IterableOfEL().as(iterable);
      this[$checkGrowable]("insertAll");
      core.RangeError.checkValueInInterval(index, 0, this[$length], "index");
      if (!_internal.EfficientLengthIterable.is(iterable)) {
        iterable = iterable[$toList]();
      }
      let insertionLength = dart.notNull(iterable[$length]);
      this[$length] = this[$length] + insertionLength;
      let end = index + insertionLength;
      this[$setRange](end, this[$length], this, index);
      this[$setRange](index, end, iterable);
    }
    [$setAll](index, iterable) {
      let t13;
      if (index == null) dart.argumentError(index);
      IterableOfEL().as(iterable);
      this[$checkMutable]("setAll");
      core.RangeError.checkValueInInterval(index, 0, this[$length], "index");
      for (let element of iterable) {
        this[$_set]((t13 = index, index = t13 + 1, t13), element);
      }
    }
    [$removeLast]() {
      this[$checkGrowable]("removeLast");
      if (this[$length] === 0) dart.throw(_js_helper.diagnoseIndexError(this, -1));
      return this.pop();
    }
    [$remove](element) {
      this[$checkGrowable]("remove");
      let length = this[$length];
      for (let i = 0; i < length; i = i + 1) {
        if (dart.equals(this[$_get](i), element)) {
          this.splice(i, 1);
          return true;
        }
      }
      return false;
    }
    [$removeWhere](test) {
      this[$checkGrowable]("removeWhere");
      this[_removeWhere](test, true);
    }
    [$retainWhere](test) {
      this[$checkGrowable]("retainWhere");
      this[_removeWhere](test, false);
    }
    [_removeWhere](test, removeMatching) {
      let retained = [];
      let end = this[$length];
      for (let i = 0; i < end; i = i + 1) {
        let element = this[i];
        if ((!dart.test(test(element)))[$_equals](removeMatching)) {
          retained[$add](element);
        }
        if (this[$length] !== end) dart.throw(new core.ConcurrentModificationError.new(this));
      }
      if (retained[$length] === end) return;
      this[$length] = retained[$length];
      let length = dart.notNull(retained[$length]);
      for (let i = 0; i < length; i = i + 1) {
        this[i] = retained[i];
      }
    }
    [$where](f) {
      return new (WhereIterableOfEL()).new(this, f);
    }
    [$expand](T, f) {
      return new (_internal.ExpandIterable$(E, T)).new(this, f);
    }
    [$addAll](collection) {
      IterableOfEL().as(collection);
      let i = this[$length];
      this[$checkGrowable]("addAll");
      for (let e of collection) {
        if (!(i === this[$length] || dart.throw(new core.ConcurrentModificationError.new(this)))) dart.assertFailed(null, L7, 189, 14, "i == this.length || (throw ConcurrentModificationError(this))");
        i = i + 1;
        this.push(e);
      }
    }
    [$clear]() {
      this[$length] = 0;
    }
    [$forEach](f) {
      let end = this[$length];
      for (let i = 0; i < end; i = i + 1) {
        let element = this[i];
        f(element);
        if (this[$length] !== end) dart.throw(new core.ConcurrentModificationError.new(this));
      }
    }
    [$map](T, f) {
      return new (_internal.MappedListIterable$(E, T)).new(this, f);
    }
    [$join](separator = "") {
      let length = this[$length];
      let list = core.List.new(length);
      for (let i = 0; i < length; i = i + 1) {
        list[$_set](i, dart.str(this[$_get](i)));
      }
      return list.join(separator);
    }
    [$take](n) {
      return new (SubListIterableOfEL()).new(this, 0, n);
    }
    [$takeWhile](test) {
      return new (TakeWhileIterableOfEL()).new(this, test);
    }
    [$skip](n) {
      return new (SubListIterableOfEL()).new(this, n, null);
    }
    [$skipWhile](test) {
      return new (SkipWhileIterableOfEL()).new(this, test);
    }
    [$reduce](combine) {
      ELAndELToLEL().as(combine);
      let length = this[$length];
      if (length === 0) dart.throw(_internal.IterableElementError.noElement());
      let value = this[$_get](0);
      for (let i = 1; i < length; i = i + 1) {
        let element = this[i];
        value = combine(value, element);
        if (length !== this[$length]) dart.throw(new core.ConcurrentModificationError.new(this));
      }
      return value;
    }
    [$fold](T, initialValue, combine) {
      let value = initialValue;
      let length = this[$length];
      for (let i = 0; i < length; i = i + 1) {
        let element = this[i];
        value = combine(value, element);
        if (this[$length] !== length) dart.throw(new core.ConcurrentModificationError.new(this));
      }
      return value;
    }
    [$firstWhere](test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      let end = this[$length];
      for (let i = 0; i < end; i = i + 1) {
        let element = this[i];
        if (dart.test(test(element))) return element;
        if (this[$length] !== end) dart.throw(new core.ConcurrentModificationError.new(this));
      }
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    [$lastWhere](test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      let length = this[$length];
      for (let i = length - 1; i >= 0; i = i - 1) {
        let element = this[i];
        if (dart.test(test(element))) return element;
        if (length !== this[$length]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    [$singleWhere](test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      let length = this[$length];
      let match = null;
      let matchFound = false;
      for (let i = 0; i < length; i = i + 1) {
        let element = this[i];
        if (dart.test(test(element))) {
          if (matchFound) {
            dart.throw(_internal.IterableElementError.tooMany());
          }
          matchFound = true;
          match = element;
        }
        if (length !== this[$length]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      if (matchFound) return match;
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    [$elementAt](index) {
      return this[$_get](index);
    }
    [$sublist](start, end = null) {
      if (start == null) dart.argumentError(start);
      if (start < 0 || start > this[$length]) {
        dart.throw(new core.RangeError.range(start, 0, this[$length], "start"));
      }
      if (end == null) {
        end = this[$length];
      } else {
        let _end = end;
        if (_end < start || _end > this[$length]) {
          dart.throw(new core.RangeError.range(end, start, this[$length], "end"));
        }
      }
      if (start === end) return JSArrayOfEL().of([]);
      return JSArrayOfEL().of(this.slice(start, end));
    }
    [$getRange](start, end) {
      core.RangeError.checkValidRange(start, end, this[$length]);
      return new (SubListIterableOfEL()).new(this, start, end);
    }
    get [$first]() {
      if (this[$length] > 0) return this[$_get](0);
      dart.throw(_internal.IterableElementError.noElement());
    }
    get [$last]() {
      if (this[$length] > 0) return this[$_get](this[$length] - 1);
      dart.throw(_internal.IterableElementError.noElement());
    }
    get [$single]() {
      if (this[$length] === 1) return this[$_get](0);
      if (this[$length] === 0) dart.throw(_internal.IterableElementError.noElement());
      dart.throw(_internal.IterableElementError.tooMany());
    }
    [$removeRange](start, end) {
      if (start == null) dart.argumentError(start);
      if (end == null) dart.argumentError(end);
      this[$checkGrowable]("removeRange");
      core.RangeError.checkValidRange(start, end, this[$length]);
      let deleteCount = end - start;
      this.splice(start, deleteCount);
    }
    [$setRange](start, end, iterable, skipCount = 0) {
      if (start == null) dart.argumentError(start);
      if (end == null) dart.argumentError(end);
      IterableOfEL().as(iterable);
      if (skipCount == null) dart.argumentError(skipCount);
      this[$checkMutable]("set range");
      core.RangeError.checkValidRange(start, end, this[$length]);
      let length = end - start;
      if (length === 0) return;
      core.RangeError.checkNotNegative(skipCount, "skipCount");
      let otherList = null;
      let otherStart = 0;
      if (ListOfEL().is(iterable)) {
        otherList = iterable;
        otherStart = skipCount;
      } else {
        otherList = iterable[$skip](skipCount)[$toList]({growable: false});
        otherStart = 0;
      }
      if (otherStart + length > dart.notNull(otherList[$length])) {
        dart.throw(_internal.IterableElementError.tooFew());
      }
      if (otherStart < start) {
        for (let i = length - 1; i >= 0; i = i - 1) {
          let element = otherList[$_get](otherStart + i);
          this[start + i] = element;
        }
      } else {
        for (let i = 0; i < length; i = i + 1) {
          let element = otherList[$_get](otherStart + i);
          this[start + i] = element;
        }
      }
    }
    [$fillRange](start, end, fillValue = null) {
      if (start == null) dart.argumentError(start);
      if (end == null) dart.argumentError(end);
      E.as(fillValue);
      this[$checkMutable]("fill range");
      core.RangeError.checkValidRange(start, end, this[$length]);
      for (let i = start; i < end; i = i + 1) {
        this[i] = fillValue;
      }
    }
    [$replaceRange](start, end, replacement) {
      if (start == null) dart.argumentError(start);
      if (end == null) dart.argumentError(end);
      IterableOfEL().as(replacement);
      this[$checkGrowable]("replace range");
      core.RangeError.checkValidRange(start, end, this[$length]);
      if (!_internal.EfficientLengthIterable.is(replacement)) {
        replacement = replacement[$toList]();
      }
      let removeLength = end - start;
      let insertLength = dart.notNull(replacement[$length]);
      if (removeLength >= insertLength) {
        let delta = removeLength - insertLength;
        let insertEnd = start + insertLength;
        let newLength = this[$length] - delta;
        this[$setRange](start, insertEnd, replacement);
        if (delta !== 0) {
          this[$setRange](insertEnd, newLength, this, end);
          this[$length] = newLength;
        }
      } else {
        let delta = insertLength - removeLength;
        let newLength = this[$length] + delta;
        let insertEnd = start + insertLength;
        this[$length] = newLength;
        this[$setRange](insertEnd, newLength, this, end);
        this[$setRange](start, insertEnd, replacement);
      }
    }
    [$any](test) {
      let end = this[$length];
      for (let i = 0; i < end; i = i + 1) {
        let element = this[i];
        if (dart.test(test(element))) return true;
        if (this[$length] !== end) dart.throw(new core.ConcurrentModificationError.new(this));
      }
      return false;
    }
    [$every](test) {
      let end = this[$length];
      for (let i = 0; i < end; i = i + 1) {
        let element = this[i];
        if (!dart.test(test(element))) return false;
        if (this[$length] !== end) dart.throw(new core.ConcurrentModificationError.new(this));
      }
      return true;
    }
    get [$reversed]() {
      return new (ReversedListIterableOfEL()).new(this);
    }
    [$sort](compare = null) {
      this[$checkMutable]("sort");
      if (compare == null) {
        _internal.Sort.sort(E, this, dart.fn((a, b) => core.Comparable.compare(core.Comparable.as(a), core.Comparable.as(b)), dynamicAnddynamicTointL()));
      } else {
        _internal.Sort.sort(E, this, compare);
      }
    }
    [$shuffle](random = null) {
      this[$checkMutable]("shuffle");
      if (random == null) random = math.Random.new();
      let length = this[$length];
      while (length > 1) {
        let pos = random.nextInt(length);
        length = length - 1;
        let tmp = this[$_get](length);
        this[$_set](length, this[$_get](pos));
        this[$_set](pos, tmp);
      }
    }
    [$indexOf](element, start = 0) {
      if (start == null) dart.argumentError(start);
      let length = this[$length];
      if (start >= length) {
        return -1;
      }
      if (start < 0) {
        start = 0;
      }
      for (let i = start; i < length; i = i + 1) {
        if (dart.equals(this[$_get](i), element)) {
          return i;
        }
      }
      return -1;
    }
    [$lastIndexOf](element, _startIndex = null) {
      let t13;
      let startIndex = (t13 = _startIndex, t13 == null ? this[$length] - 1 : t13);
      if (startIndex >= this[$length]) {
        startIndex = this[$length] - 1;
      } else if (startIndex < 0) {
        return -1;
      }
      for (let i = startIndex; i >= 0; i = i - 1) {
        if (dart.equals(this[$_get](i), element)) {
          return i;
        }
      }
      return -1;
    }
    [$contains](other) {
      let length = this[$length];
      for (let i = 0; i < length; i = i + 1) {
        let element = this[i];
        if (dart.equals(element, other)) return true;
      }
      return false;
    }
    get [$isEmpty]() {
      return this[$length] === 0;
    }
    get [$isNotEmpty]() {
      return !this[$isEmpty];
    }
    [$toString]() {
      return collection.ListBase.listToString(this);
    }
    [$toList](opts) {
      let growable = opts && 'growable' in opts ? opts.growable : true;
      if (growable == null) dart.argumentError(growable);
      let list = this.slice();
      if (!growable) _interceptors.JSArray.markFixedList(list);
      return JSArrayOfEL().of(list);
    }
    [$toSet]() {
      return LinkedHashSetOfEL().from(this);
    }
    get [$iterator]() {
      return new (ArrayIteratorOfEL()).new(this);
    }
    get [$hashCode]() {
      return core.identityHashCode(this);
    }
    [$_equals](other) {
      if (other == null) return false;
      return this === other;
    }
    get [$length]() {
      return this.length;
    }
    set [$length](newLength) {
      if (newLength == null) dart.argumentError(newLength);
      this[$checkGrowable]("set length");
      if (newLength < 0) {
        dart.throw(new core.RangeError.range(newLength, 0, null, "newLength"));
      }
      this.length = newLength;
    }
    [$_get](index) {
      if (index == null || index >= this.length || index < 0) {
        dart.throw(_js_helper.diagnoseIndexError(this, index));
      }
      return this[index];
    }
    [$_set](index, value$) {
      let value = value$;
      E.as(value);
      this[$checkMutable]("indexed set");
      if (index == null || index >= this.length || index < 0) {
        dart.throw(_js_helper.diagnoseIndexError(this, index));
      }
      this[index] = value;
      return value$;
    }
    [$asMap]() {
      return new (ListMapViewOfEL()).new(this);
    }
    get [$runtimeType]() {
      return dart.wrapType(core.List$(E));
    }
    [$followedBy](other) {
      IterableOfEL().as(other);
      return FollowedByIterableOfEL().firstEfficient(this, other);
    }
    [$whereType](T) {
      return new (_internal.WhereTypeIterable$(T)).new(this);
    }
    [$plus](other) {
      let t13;
      ListOfEL().as(other);
      let totalLength = this[$length] + dart.notNull(other[$length]);
      t13 = JSArrayOfEL().of([]);
      t13[$length] = totalLength;
      t13[$setRange](0, this[$length], this);
      t13[$setRange](this[$length], totalLength, other);
      return t13;
    }
    [$indexWhere](test, start = 0) {
      if (dart.notNull(start) >= this[$length]) return -1;
      if (dart.notNull(start) < 0) start = 0;
      for (let i = start; dart.notNull(i) < this[$length]; i = dart.notNull(i) + 1) {
        if (dart.test(test(this[$_get](i)))) return i;
      }
      return -1;
    }
    [$lastIndexWhere](test, start = null) {
      if (start == null) start = this[$length] - 1;
      if (dart.notNull(start) < 0) return -1;
      for (let i = start; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
        if (dart.test(test(this[$_get](i)))) return i;
      }
      return -1;
    }
    set [$first](element) {
      E.as(element);
      if (this[$isEmpty]) dart.throw(new core.IndexError.new(0, this));
      this[$_set](0, element);
    }
    set [$last](element) {
      E.as(element);
      if (this[$isEmpty]) dart.throw(new core.IndexError.new(0, this));
      this[$_set](this[$length] - 1, element);
    }
  }
  (JSArray.new = function() {
    ;
  }).prototype = JSArray.prototype;
  dart.setExtensionBaseClass(JSArray, dart.global.Array);
  JSArray.prototype[dart.isList] = true;
  dart.addTypeTests(JSArray);
  JSArray.prototype[_is_JSArray_default] = true;
  dart.addTypeCaches(JSArray);
  JSArray[dart.implements] = () => [core.List$(E), _interceptors.JSIndexable$(E)];
  dart.setMethodSignature(JSArray, () => ({
    __proto__: dart.getMethods(JSArray.__proto__),
    [$checkMutable]: dart.fnType(dart.dynamic, [dart.dynamic]),
    [$checkGrowable]: dart.fnType(dart.dynamic, [dart.dynamic]),
    [$cast]: dart.gFnType(R => [core.List$(R), []]),
    [$add]: dart.fnType(dart.void, [core.Object]),
    [$removeAt]: dart.fnType(E, [core.int]),
    [$insert]: dart.fnType(dart.void, [core.int, core.Object]),
    [$insertAll]: dart.fnType(dart.void, [core.int, core.Object]),
    [$setAll]: dart.fnType(dart.void, [core.int, core.Object]),
    [$removeLast]: dart.fnType(E, []),
    [$remove]: dart.fnType(core.bool, [core.Object]),
    [$removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    [$retainWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    [_removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E]), core.bool]),
    [$where]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    [$expand]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]]),
    [$addAll]: dart.fnType(dart.void, [core.Object]),
    [$clear]: dart.fnType(dart.void, []),
    [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
    [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]]),
    [$join]: dart.fnType(core.String, [], [core.String]),
    [$take]: dart.fnType(core.Iterable$(E), [core.int]),
    [$takeWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    [$skip]: dart.fnType(core.Iterable$(E), [core.int]),
    [$skipWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    [$reduce]: dart.fnType(E, [core.Object]),
    [$fold]: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]]),
    [$firstWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    [$lastWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    [$singleWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    [$elementAt]: dart.fnType(E, [core.int]),
    [$sublist]: dart.fnType(core.List$(E), [core.int], [core.int]),
    [$getRange]: dart.fnType(core.Iterable$(E), [core.int, core.int]),
    [$removeRange]: dart.fnType(dart.void, [core.int, core.int]),
    [$setRange]: dart.fnType(dart.void, [core.int, core.int, core.Object], [core.int]),
    [$fillRange]: dart.fnType(dart.void, [core.int, core.int], [core.Object]),
    [$replaceRange]: dart.fnType(dart.void, [core.int, core.int, core.Object]),
    [$any]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    [$every]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    [$sort]: dart.fnType(dart.void, [], [dart.fnType(core.int, [E, E])]),
    [$shuffle]: dart.fnType(dart.void, [], [math.Random]),
    [$indexOf]: dart.fnType(core.int, [core.Object], [core.int]),
    [$lastIndexOf]: dart.fnType(core.int, [core.Object], [core.int]),
    [$contains]: dart.fnType(core.bool, [core.Object]),
    [$toList]: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
    [$toSet]: dart.fnType(core.Set$(E), []),
    [$_get]: dart.fnType(E, [core.int]),
    [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
    [$asMap]: dart.fnType(core.Map$(core.int, E), []),
    [$followedBy]: dart.fnType(core.Iterable$(E), [core.Object]),
    [$whereType]: dart.gFnType(T => [core.Iterable$(T), []]),
    [$plus]: dart.fnType(core.List$(E), [core.Object]),
    [$indexWhere]: dart.fnType(core.int, [dart.fnType(core.bool, [E])], [core.int]),
    [$lastIndexWhere]: dart.fnType(core.int, [dart.fnType(core.bool, [E])], [core.int])
  }));
  dart.setGetterSignature(JSArray, () => ({
    __proto__: dart.getGetters(JSArray.__proto__),
    [$first]: E,
    [$last]: E,
    [$single]: E,
    [$reversed]: core.Iterable$(E),
    [$isEmpty]: core.bool,
    [$isNotEmpty]: core.bool,
    [$iterator]: core.Iterator$(E),
    [$length]: core.int
  }));
  dart.setSetterSignature(JSArray, () => ({
    __proto__: dart.getSetters(JSArray.__proto__),
    [$length]: core.int,
    [$first]: core.Object,
    [$last]: core.Object
  }));
  dart.setLibraryUri(JSArray, L6);
  return JSArray;
});
_interceptors.JSArray = _interceptors.JSArray$();
dart.addTypeTests(_interceptors.JSArray, _is_JSArray_default);
dart.registerExtension("Array", _interceptors.JSArray);
const _is_JSMutableArray_default = Symbol('_is_JSMutableArray_default');
_interceptors.JSMutableArray$ = dart.generic(E => {
  class JSMutableArray extends _interceptors.JSArray$(E) {}
  (JSMutableArray.new = function() {
    JSMutableArray.__proto__.new.call(this);
    ;
  }).prototype = JSMutableArray.prototype;
  dart.addTypeTests(JSMutableArray);
  JSMutableArray.prototype[_is_JSMutableArray_default] = true;
  dart.addTypeCaches(JSMutableArray);
  dart.setLibraryUri(JSMutableArray, L6);
  return JSMutableArray;
});
_interceptors.JSMutableArray = _interceptors.JSMutableArray$();
dart.addTypeTests(_interceptors.JSMutableArray, _is_JSMutableArray_default);
const _is_JSFixedArray_default = Symbol('_is_JSFixedArray_default');
_interceptors.JSFixedArray$ = dart.generic(E => {
  class JSFixedArray extends _interceptors.JSMutableArray$(E) {}
  (JSFixedArray.new = function() {
    JSFixedArray.__proto__.new.call(this);
    ;
  }).prototype = JSFixedArray.prototype;
  dart.addTypeTests(JSFixedArray);
  JSFixedArray.prototype[_is_JSFixedArray_default] = true;
  dart.addTypeCaches(JSFixedArray);
  dart.setLibraryUri(JSFixedArray, L6);
  return JSFixedArray;
});
_interceptors.JSFixedArray = _interceptors.JSFixedArray$();
dart.addTypeTests(_interceptors.JSFixedArray, _is_JSFixedArray_default);
const _is_JSExtendableArray_default = Symbol('_is_JSExtendableArray_default');
_interceptors.JSExtendableArray$ = dart.generic(E => {
  class JSExtendableArray extends _interceptors.JSMutableArray$(E) {}
  (JSExtendableArray.new = function() {
    JSExtendableArray.__proto__.new.call(this);
    ;
  }).prototype = JSExtendableArray.prototype;
  dart.addTypeTests(JSExtendableArray);
  JSExtendableArray.prototype[_is_JSExtendableArray_default] = true;
  dart.addTypeCaches(JSExtendableArray);
  dart.setLibraryUri(JSExtendableArray, L6);
  return JSExtendableArray;
});
_interceptors.JSExtendableArray = _interceptors.JSExtendableArray$();
dart.addTypeTests(_interceptors.JSExtendableArray, _is_JSExtendableArray_default);
const _is_JSUnmodifiableArray_default = Symbol('_is_JSUnmodifiableArray_default');
_interceptors.JSUnmodifiableArray$ = dart.generic(E => {
  class JSUnmodifiableArray extends _interceptors.JSArray$(E) {}
  (JSUnmodifiableArray.new = function() {
    JSUnmodifiableArray.__proto__.new.call(this);
    ;
  }).prototype = JSUnmodifiableArray.prototype;
  dart.addTypeTests(JSUnmodifiableArray);
  JSUnmodifiableArray.prototype[_is_JSUnmodifiableArray_default] = true;
  dart.addTypeCaches(JSUnmodifiableArray);
  dart.setLibraryUri(JSUnmodifiableArray, L6);
  return JSUnmodifiableArray;
});
_interceptors.JSUnmodifiableArray = _interceptors.JSUnmodifiableArray$();
dart.addTypeTests(_interceptors.JSUnmodifiableArray, _is_JSUnmodifiableArray_default);
var _current = dart.privateName(_interceptors, "_current");
var _iterable = dart.privateName(_interceptors, "_iterable");
var _length = dart.privateName(_interceptors, "_length");
var _index = dart.privateName(_interceptors, "_index");
const _is_ArrayIterator_default = Symbol('_is_ArrayIterator_default');
_interceptors.ArrayIterator$ = dart.generic(E => {
  class ArrayIterator extends core.Object {
    get current() {
      return this[_current];
    }
    moveNext() {
      let length = this[_iterable][$length];
      if (this[_length] !== length) {
        dart.throw(_js_helper.throwConcurrentModificationError(this[_iterable]));
      }
      if (this[_index] >= length) {
        this[_current] = null;
        return false;
      }
      this[_current] = this[_iterable][$_get](this[_index]);
      this[_index] = this[_index] + 1;
      return true;
    }
  }
  (ArrayIterator.new = function(iterable) {
    this[_current] = null;
    this[_iterable] = iterable;
    this[_length] = iterable[$length];
    this[_index] = 0;
    ;
  }).prototype = ArrayIterator.prototype;
  dart.addTypeTests(ArrayIterator);
  ArrayIterator.prototype[_is_ArrayIterator_default] = true;
  dart.addTypeCaches(ArrayIterator);
  ArrayIterator[dart.implements] = () => [core.Iterator$(E)];
  dart.setMethodSignature(ArrayIterator, () => ({
    __proto__: dart.getMethods(ArrayIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(ArrayIterator, () => ({
    __proto__: dart.getGetters(ArrayIterator.__proto__),
    current: E
  }));
  dart.setLibraryUri(ArrayIterator, L6);
  dart.setFieldSignature(ArrayIterator, () => ({
    __proto__: dart.getFields(ArrayIterator.__proto__),
    [_iterable]: dart.finalFieldType(_interceptors.JSArray$(E)),
    [_length]: dart.finalFieldType(core.int),
    [_index]: dart.fieldType(core.int),
    [_current]: dart.fieldType(E)
  }));
  return ArrayIterator;
});
_interceptors.ArrayIterator = _interceptors.ArrayIterator$();
dart.addTypeTests(_interceptors.ArrayIterator, _is_ArrayIterator_default);
var _isInt32 = dart.privateName(_interceptors, "_isInt32");
var _tdivSlow = dart.privateName(_interceptors, "_tdivSlow");
var _shlPositive = dart.privateName(_interceptors, "_shlPositive");
var _shrOtherPositive = dart.privateName(_interceptors, "_shrOtherPositive");
var _shrBothPositive = dart.privateName(_interceptors, "_shrBothPositive");
_interceptors.JSNumber = class JSNumber extends _interceptors.Interceptor {
  [$compareTo](b) {
    core.num.as(b);
    if (b == null) dart.argumentError(b);
    if (this < b) {
      return -1;
    } else if (this > b) {
      return 1;
    } else if (this[$_equals](b)) {
      if (this[$_equals](0)) {
        let bIsNegative = b[$isNegative];
        if (this[$isNegative][$_equals](bIsNegative)) return 0;
        if (this[$isNegative]) return -1;
        return 1;
      }
      return 0;
    } else if (this[$isNaN]) {
      if (b[$isNaN]) {
        return 0;
      }
      return 1;
    } else {
      return -1;
    }
  }
  get [$isNegative]() {
    return this[$_equals](0) ? 1 / this < 0 : this < 0;
  }
  get [$isNaN]() {
    return isNaN(this);
  }
  get [$isInfinite]() {
    return this == 1 / 0 || this == -1 / 0;
  }
  get [$isFinite]() {
    return isFinite(this);
  }
  [$remainder](b) {
    if (b == null) dart.argumentError(b);
    return _interceptors.JSNumber.as(this % b);
  }
  [$abs]() {
    return _interceptors.JSNumber.as(Math.abs(this));
  }
  get [$sign]() {
    return _interceptors.JSNumber.as(this > 0 ? 1 : this < 0 ? -1 : this);
  }
  [$toInt]() {
    if (this >= -2147483648 && this <= 2147483647) {
      return this | 0;
    }
    if (isFinite(this)) {
      return this[$truncateToDouble]() + 0;
    }
    dart.throw(new core.UnsupportedError.new("" + this));
  }
  [$truncate]() {
    return this[$toInt]();
  }
  [$ceil]() {
    return this[$ceilToDouble]()[$toInt]();
  }
  [$floor]() {
    return this[$floorToDouble]()[$toInt]();
  }
  [$round]() {
    if (this > 0) {
      if (this !== 1 / 0) {
        return Math.round(this);
      }
    } else if (this > -1 / 0) {
      return 0 - Math.round(0 - this);
    }
    dart.throw(new core.UnsupportedError.new("" + this));
  }
  [$ceilToDouble]() {
    return Math.ceil(this);
  }
  [$floorToDouble]() {
    return Math.floor(this);
  }
  [$roundToDouble]() {
    if (this < 0) {
      return -Math.round(-this);
    } else {
      return Math.round(this);
    }
  }
  [$truncateToDouble]() {
    return this < 0 ? this[$ceilToDouble]() : this[$floorToDouble]();
  }
  [$clamp](lowerLimit, upperLimit) {
    if (lowerLimit == null) dart.argumentError(lowerLimit);
    if (upperLimit == null) dart.argumentError(upperLimit);
    if (lowerLimit[$compareTo](upperLimit) > 0) {
      dart.throw(_js_helper.argumentErrorValue(lowerLimit));
    }
    if (this[$compareTo](lowerLimit) < 0) return lowerLimit;
    if (this[$compareTo](upperLimit) > 0) return upperLimit;
    return this;
  }
  [$toDouble]() {
    return this;
  }
  [$toStringAsFixed](fractionDigits) {
    if (fractionDigits < 0 || fractionDigits > 20) {
      dart.throw(new core.RangeError.range(fractionDigits, 0, 20, "fractionDigits"));
    }
    let result = this.toFixed(fractionDigits);
    if (this[$_equals](0) && this[$isNegative]) return "-" + result;
    return result;
  }
  [$toStringAsExponential](fractionDigits = null) {
    let result = null;
    if (fractionDigits != null) {
      let _fractionDigits = fractionDigits;
      if (_fractionDigits < 0 || _fractionDigits > 20) {
        dart.throw(new core.RangeError.range(_fractionDigits, 0, 20, "fractionDigits"));
      }
      result = this.toExponential(_fractionDigits);
    } else {
      result = this.toExponential();
    }
    if (this[$_equals](0) && this[$isNegative]) return "-" + dart.str(result);
    return result;
  }
  [$toStringAsPrecision](precision) {
    if (precision == null) dart.argumentError(precision);
    if (precision < 1 || precision > 21) {
      dart.throw(new core.RangeError.range(precision, 1, 21, "precision"));
    }
    let result = this.toPrecision(precision);
    if (this[$_equals](0) && this[$isNegative]) return "-" + result;
    return result;
  }
  [$toRadixString](radix) {
    if (radix == null) dart.argumentError(radix);
    if (radix < 2 || radix > 36) {
      dart.throw(new core.RangeError.range(radix, 2, 36, "radix"));
    }
    let result = this.toString(radix);
    if (result[$codeUnitAt](result.length - 1) !== 41) {
      return result;
    }
    return _interceptors.JSNumber._handleIEtoString(result);
  }
  static _handleIEtoString(result) {
    let match = /^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(result);
    if (match == null) {
      dart.throw(new core.UnsupportedError.new("Unexpected toString result: " + dart.str(result)));
    }
    result = match[$_get](1);
    let exponent = +match[$_get](3);
    if (match[$_get](2) != null) {
      result = result + match[$_get](2);
      exponent = exponent - match[$_get](2).length;
    }
    return dart.notNull(result) + "0"[$times](exponent);
  }
  [$toString]() {
    if (this[$_equals](0) && 1 / this < 0) {
      return "-0.0";
    } else {
      return "" + this;
    }
  }
  get [$hashCode]() {
    let intValue = this | 0;
    if (this[$_equals](intValue)) return 536870911 & intValue;
    let absolute = Math.abs(this);
    let lnAbsolute = Math.log(absolute);
    let log2 = lnAbsolute / 0.6931471805599453;
    let floorLog2 = log2 | 0;
    let factor = Math.pow(2, floorLog2);
    let scaled = absolute < 1 ? absolute / factor : factor / absolute;
    let rescaled1 = scaled * 9007199254740992;
    let rescaled2 = scaled * 3542243181176521;
    let d1 = rescaled1 | 0;
    let d2 = rescaled2 | 0;
    let d3 = floorLog2;
    let h = 536870911 & (d1 + d2) * (601 * 997) + d3 * 1259;
    return h;
  }
  [$_negate]() {
    return _interceptors.JSNumber.as(-this);
  }
  [$plus](other) {
    if (other == null) dart.argumentError(other);
    return _interceptors.JSNumber.as(this + other);
  }
  [$minus](other) {
    if (other == null) dart.argumentError(other);
    return _interceptors.JSNumber.as(this - other);
  }
  [$divide](other) {
    if (other == null) dart.argumentError(other);
    return this / other;
  }
  [$times](other) {
    if (other == null) dart.argumentError(other);
    return _interceptors.JSNumber.as(this * other);
  }
  [$modulo](other) {
    if (other == null) dart.argumentError(other);
    let result = this % other;
    if (result === 0) return _interceptors.JSNumber.as(0);
    if (result > 0) return _interceptors.JSNumber.as(result);
    if (other < 0) {
      return _interceptors.JSNumber.as(result - other);
    } else {
      return _interceptors.JSNumber.as(result + other);
    }
  }
  [_isInt32](value) {
    return (value | 0) === value;
  }
  [$floorDivide](other) {
    if (other == null) dart.argumentError(other);
    if (this[_isInt32](this) && this[_isInt32](other) && 0 !== other && -1 !== other) {
      return this / other | 0;
    } else {
      return this[_tdivSlow](other);
    }
  }
  [_tdivSlow](other) {
    return (this / other)[$toInt]();
  }
  [$leftShift](other) {
    if (other == null) dart.argumentError(other);
    if (other < 0) _js_helper.throwArgumentErrorValue(other);
    return this[_shlPositive](other);
  }
  [_shlPositive](other) {
    return other > 31 ? 0 : this << other >>> 0;
  }
  [$rightShift](other) {
    if (other == null) dart.argumentError(other);
    if (other < 0) _js_helper.throwArgumentErrorValue(other);
    return this[_shrOtherPositive](other);
  }
  [_shrOtherPositive](other) {
    return this > 0 ? this[_shrBothPositive](other) : this >> (other > 31 ? 31 : other) >>> 0;
  }
  [_shrBothPositive](other) {
    return other > 31 ? 0 : this >>> other;
  }
  [$bitAnd](other) {
    if (other == null) dart.argumentError(other);
    return (this & other) >>> 0;
  }
  [$bitOr](other) {
    if (other == null) dart.argumentError(other);
    return (this | other) >>> 0;
  }
  [$bitXor](other) {
    if (other == null) dart.argumentError(other);
    return (this ^ other) >>> 0;
  }
  [$lessThan](other) {
    if (other == null) dart.argumentError(other);
    return this < other;
  }
  [$greaterThan](other) {
    if (other == null) dart.argumentError(other);
    return this > other;
  }
  [$lessOrEquals](other) {
    if (other == null) dart.argumentError(other);
    return this <= other;
  }
  [$greaterOrEquals](other) {
    if (other == null) dart.argumentError(other);
    return this >= other;
  }
  get [$isEven]() {
    return (this & 1) === 0;
  }
  get [$isOdd]() {
    return (this & 1) === 1;
  }
  [$toUnsigned](width) {
    if (width == null) dart.argumentError(width);
    return (this & (1)[$leftShift](width) - 1) >>> 0;
  }
  [$toSigned](width) {
    if (width == null) dart.argumentError(width);
    let signMask = (1)[$leftShift](width - 1);
    return ((this & signMask - 1) >>> 0) - ((this & signMask) >>> 0);
  }
  get [$bitLength]() {
    let nonneg = this < 0 ? -this - 1 : this;
    let wordBits = 32;
    while (nonneg >= 4294967296) {
      nonneg = (nonneg / 4294967296)[$truncate]();
      wordBits = wordBits + 32;
    }
    return wordBits - _interceptors.JSNumber._clz32(nonneg);
  }
  static _clz32(uint32) {
    return 32 - _interceptors.JSNumber._bitCount(_interceptors.JSNumber._spread(uint32));
  }
  [$modPow](e, m) {
    if (e == null) dart.argumentError(e);
    if (m == null) dart.argumentError(m);
    if (e < 0) dart.throw(new core.RangeError.range(e, 0, null, "exponent"));
    if (m <= 0) dart.throw(new core.RangeError.range(m, 1, null, "modulus"));
    if (e === 0) return 1;
    if (this < -9007199254740991.0 || this > 9007199254740991.0) {
      dart.throw(new core.RangeError.range(this, -9007199254740991.0, 9007199254740991.0, "receiver"));
    }
    if (e > 9007199254740991.0) {
      dart.throw(new core.RangeError.range(e, 0, 9007199254740991.0, "exponent"));
    }
    if (m > 9007199254740991.0) {
      dart.throw(new core.RangeError.range(e, 1, 9007199254740991.0, "modulus"));
    }
    if (m > 94906265) {
      return core._BigIntImpl.from(this).modPow(core._BigIntImpl.from(e), core._BigIntImpl.from(m)).toInt();
    }
    let b = this;
    if (b < 0 || b > m) {
      b = b[$modulo](m);
    }
    let r = 1;
    while (e > 0) {
      if (e[$isOdd]) {
        r = (r * b)[$modulo](m);
      }
      e = (e / 2)[$truncate]();
      b = (b * b)[$modulo](m);
    }
    return r;
  }
  static _binaryGcd(x, y, inv) {
    let s = 1;
    if (!inv) {
      while (x[$isEven] && y[$isEven]) {
        x = (x / 2)[$truncate]();
        y = (y / 2)[$truncate]();
        s = s * 2;
      }
      if (y[$isOdd]) {
        let t = x;
        x = y;
        y = t;
      }
    }
    let ac = x[$isEven];
    let u = x;
    let v = y;
    let a = 1;
    let b = 0;
    let c = 0;
    let d = 1;
    do {
      while (u[$isEven]) {
        u = (u / 2)[$truncate]();
        if (ac) {
          if (!a[$isEven] || !b[$isEven]) {
            a = a + y;
            b = b - x;
          }
          a = (a / 2)[$truncate]();
        } else if (!b[$isEven]) {
          b = b - x;
        }
        b = (b / 2)[$truncate]();
      }
      while (v[$isEven]) {
        v = (v / 2)[$truncate]();
        if (ac) {
          if (!c[$isEven] || !d[$isEven]) {
            c = c + y;
            d = d - x;
          }
          c = (c / 2)[$truncate]();
        } else if (!d[$isEven]) {
          d = d - x;
        }
        d = (d / 2)[$truncate]();
      }
      if (u >= v) {
        u = u - v;
        if (ac) a = a - c;
        b = b - d;
      } else {
        v = v - u;
        if (ac) c = c - a;
        d = d - b;
      }
    } while (u !== 0);
    if (!inv) return s * v;
    if (v !== 1) dart.throw(core.Exception.new("Not coprime"));
    if (d < 0) {
      d = d + x;
      if (d < 0) d = d + x;
    } else if (d > x) {
      d = d - x;
      if (d > x) d = d - x;
    }
    return d;
  }
  [$modInverse](m) {
    if (m == null) dart.argumentError(m);
    if (m <= 0) dart.throw(new core.RangeError.range(m, 1, null, "modulus"));
    if (m === 1) return 0;
    let t = this;
    if (t < 0 || t >= m) t = t[$modulo](m);
    if (t === 1) return 1;
    if (t === 0 || t[$isEven] && m[$isEven]) {
      dart.throw(core.Exception.new("Not coprime"));
    }
    return _interceptors.JSNumber._binaryGcd(m, t, true);
  }
  [$gcd](other) {
    if (other == null) dart.argumentError(other);
    let x = this[$abs]();
    let y = other[$abs]();
    if (x === 0) return y;
    if (y === 0) return x;
    if (x === 1 || y === 1) return 1;
    return _interceptors.JSNumber._binaryGcd(x, y, false);
  }
  static _bitCount(i) {
    i = _interceptors.JSNumber._shru(i, 0) - (_interceptors.JSNumber._shru(i, 1) & 1431655765);
    i = (i & 858993459) + (_interceptors.JSNumber._shru(i, 2) & 858993459);
    i = 252645135 & i + _interceptors.JSNumber._shru(i, 4);
    i = i + _interceptors.JSNumber._shru(i, 8);
    i = i + _interceptors.JSNumber._shru(i, 16);
    return i & 63;
  }
  static _shru(value, shift) {
    return value >>> shift;
  }
  static _shrs(value, shift) {
    return value >> shift;
  }
  static _ors(a, b) {
    return a | b;
  }
  static _spread(i) {
    i = _interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 1));
    i = _interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 2));
    i = _interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 4));
    i = _interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 8));
    i = _interceptors.JSNumber._shru(_interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 16)), 0);
    return i;
  }
  [$bitNot]() {
    return ~this >>> 0;
  }
};
(_interceptors.JSNumber.new = function() {
  _interceptors.JSNumber.__proto__.new.call(this);
  ;
}).prototype = _interceptors.JSNumber.prototype;
dart.addTypeTests(_interceptors.JSNumber);
dart.addTypeCaches(_interceptors.JSNumber);
_interceptors.JSNumber[dart.implements] = () => [core.int, core.double];
dart.setMethodSignature(_interceptors.JSNumber, () => ({
  __proto__: dart.getMethods(_interceptors.JSNumber.__proto__),
  [$compareTo]: dart.fnType(core.int, [core.Object]),
  [$remainder]: dart.fnType(_interceptors.JSNumber, [core.num]),
  [$abs]: dart.fnType(_interceptors.JSNumber, []),
  [$toInt]: dart.fnType(core.int, []),
  [$truncate]: dart.fnType(core.int, []),
  [$ceil]: dart.fnType(core.int, []),
  [$floor]: dart.fnType(core.int, []),
  [$round]: dart.fnType(core.int, []),
  [$ceilToDouble]: dart.fnType(core.double, []),
  [$floorToDouble]: dart.fnType(core.double, []),
  [$roundToDouble]: dart.fnType(core.double, []),
  [$truncateToDouble]: dart.fnType(core.double, []),
  [$clamp]: dart.fnType(core.num, [core.num, core.num]),
  [$toDouble]: dart.fnType(core.double, []),
  [$toStringAsFixed]: dart.fnType(core.String, [core.int]),
  [$toStringAsExponential]: dart.fnType(core.String, [], [core.int]),
  [$toStringAsPrecision]: dart.fnType(core.String, [core.int]),
  [$toRadixString]: dart.fnType(core.String, [core.int]),
  [$_negate]: dart.fnType(_interceptors.JSNumber, []),
  [$plus]: dart.fnType(_interceptors.JSNumber, [core.num]),
  [$minus]: dart.fnType(_interceptors.JSNumber, [core.num]),
  [$divide]: dart.fnType(core.double, [core.num]),
  [$times]: dart.fnType(_interceptors.JSNumber, [core.num]),
  [$modulo]: dart.fnType(_interceptors.JSNumber, [core.num]),
  [_isInt32]: dart.fnType(core.bool, [core.num]),
  [$floorDivide]: dart.fnType(core.int, [core.num]),
  [_tdivSlow]: dart.fnType(core.int, [core.num]),
  [$leftShift]: dart.fnType(core.int, [core.num]),
  [_shlPositive]: dart.fnType(core.int, [core.num]),
  [$rightShift]: dart.fnType(core.int, [core.num]),
  [_shrOtherPositive]: dart.fnType(core.int, [core.num]),
  [_shrBothPositive]: dart.fnType(core.int, [core.num]),
  [$bitAnd]: dart.fnType(core.int, [core.num]),
  [$bitOr]: dart.fnType(core.int, [core.num]),
  [$bitXor]: dart.fnType(core.int, [core.num]),
  [$lessThan]: dart.fnType(core.bool, [core.num]),
  [$greaterThan]: dart.fnType(core.bool, [core.num]),
  [$lessOrEquals]: dart.fnType(core.bool, [core.num]),
  [$greaterOrEquals]: dart.fnType(core.bool, [core.num]),
  [$toUnsigned]: dart.fnType(core.int, [core.int]),
  [$toSigned]: dart.fnType(core.int, [core.int]),
  [$modPow]: dart.fnType(core.int, [core.int, core.int]),
  [$modInverse]: dart.fnType(core.int, [core.int]),
  [$gcd]: dart.fnType(core.int, [core.int]),
  [$bitNot]: dart.fnType(core.int, [])
}));
dart.setGetterSignature(_interceptors.JSNumber, () => ({
  __proto__: dart.getGetters(_interceptors.JSNumber.__proto__),
  [$isNegative]: core.bool,
  [$isNaN]: core.bool,
  [$isInfinite]: core.bool,
  [$isFinite]: core.bool,
  [$sign]: _interceptors.JSNumber,
  [$isEven]: core.bool,
  [$isOdd]: core.bool,
  [$bitLength]: core.int
}));
dart.setLibraryUri(_interceptors.JSNumber, L6);
dart.defineLazy(_interceptors.JSNumber, {
  /*_interceptors.JSNumber._MIN_INT32*/get _MIN_INT32() {
    return -2147483648;
  },
  /*_interceptors.JSNumber._MAX_INT32*/get _MAX_INT32() {
    return 2147483647;
  }
}, true);
dart.definePrimitiveHashCode(_interceptors.JSNumber.prototype);
dart.registerExtension("Number", _interceptors.JSNumber);
var _defaultSplit = dart.privateName(_interceptors, "_defaultSplit");
var C18;
var length = dart.privateName(_interceptors, "JSString.length");
_interceptors.JSString = class JSString extends _interceptors.Interceptor {
  get [$length]() {
    return this.length;
  }
  [$codeUnitAt](index) {
    if (index == null) dart.argumentError(index);
    let len = this.length;
    if (index < 0 || index >= len) {
      dart.throw(new core.IndexError.new(index, this, "index", null, len));
    }
    return this.charCodeAt(index);
  }
  [$allMatches](string, start = 0) {
    if (string == null) dart.argumentError(string);
    if (start == null) dart.argumentError(start);
    let len = string.length;
    if (0 > start || start > len) {
      dart.throw(new core.RangeError.range(start, 0, len));
    }
    return _js_helper.allMatchesInStringUnchecked(this, string, start);
  }
  [$matchAsPrefix](string, start = 0) {
    if (string == null) dart.argumentError(string);
    if (start == null) dart.argumentError(start);
    let stringLength = string.length;
    if (start < 0 || start > stringLength) {
      dart.throw(new core.RangeError.range(start, 0, stringLength));
    }
    let thisLength = this.length;
    if (start + thisLength > stringLength) return null;
    for (let i = 0; i < thisLength; i = i + 1) {
      if (string[$codeUnitAt](start + i) !== this[$codeUnitAt](i)) {
        return null;
      }
    }
    return new _js_helper.StringMatch.new(start, string, this);
  }
  [$plus](other) {
    if (other == null) dart.argumentError(other);
    return this + other;
  }
  [$endsWith](other) {
    if (other == null) dart.argumentError(other);
    let otherLength = other.length;
    let thisLength = this.length;
    if (otherLength > thisLength) return false;
    return other === this[$substring](thisLength - otherLength);
  }
  [$replaceAll](from, to) {
    if (to == null) dart.argumentError(to);
    return _js_helper.stringReplaceAllUnchecked(this, from, to);
  }
  [$replaceAllMapped](from, convert) {
    return this[$splitMapJoin](from, {onMatch: convert});
  }
  [$splitMapJoin](from, opts) {
    let onMatch = opts && 'onMatch' in opts ? opts.onMatch : null;
    let onNonMatch = opts && 'onNonMatch' in opts ? opts.onNonMatch : null;
    return _js_helper.stringReplaceAllFuncUnchecked(this, from, onMatch, onNonMatch);
  }
  [$replaceFirst](from, to, startIndex = 0) {
    if (to == null) dart.argumentError(to);
    if (startIndex == null) dart.argumentError(startIndex);
    core.RangeError.checkValueInInterval(startIndex, 0, this.length, "startIndex");
    return _js_helper.stringReplaceFirstUnchecked(this, from, to, startIndex);
  }
  [$replaceFirstMapped](from, replace, startIndex = 0) {
    if (replace == null) dart.argumentError(replace);
    if (startIndex == null) dart.argumentError(startIndex);
    core.RangeError.checkValueInInterval(startIndex, 0, this.length, "startIndex");
    return _js_helper.stringReplaceFirstMappedUnchecked(this, from, replace, startIndex);
  }
  [$split](pattern) {
    if (pattern == null) dart.argumentError(pattern);
    if (typeof pattern == 'string') {
      return JSArrayOfStringL().of(this.split(pattern));
    } else if (_js_helper.JSSyntaxRegExp.is(pattern) && _js_helper.regExpCaptureCount(pattern) === 0) {
      let re = _js_helper.regExpGetNative(pattern);
      return JSArrayOfStringL().of(this.split(re));
    } else {
      return this[_defaultSplit](pattern);
    }
  }
  [$replaceRange](start, end, replacement) {
    if (start == null) dart.argumentError(start);
    if (replacement == null) dart.argumentError(replacement);
    end = core.RangeError.checkValidRange(start, end, this.length);
    return _js_helper.stringReplaceRangeUnchecked(this, start, end, replacement);
  }
  [_defaultSplit](pattern) {
    let result = JSArrayOfStringL().of([]);
    let start = 0;
    let length = 1;
    for (let match of pattern[$allMatches](this)) {
      let matchStart = match.start;
      let matchEnd = match.end;
      length = matchEnd - matchStart;
      if (length === 0 && start === matchStart) {
        continue;
      }
      let end = matchStart;
      result[$add](this[$substring](start, end));
      start = matchEnd;
    }
    if (start < this.length || length > 0) {
      result[$add](this[$substring](start));
    }
    return result;
  }
  [$startsWith](pattern, index = 0) {
    if (index == null) dart.argumentError(index);
    let length = this.length;
    if (index < 0 || index > length) {
      dart.throw(new core.RangeError.range(index, 0, this.length));
    }
    if (typeof pattern == 'string') {
      let other = pattern;
      let otherLength = other.length;
      let endIndex = index + otherLength;
      if (endIndex > length) return false;
      return other === this.substring(index, endIndex);
    }
    return pattern[$matchAsPrefix](this, index) != null;
  }
  [$substring](startIndex, _endIndex = null) {
    let t13;
    if (startIndex == null) dart.argumentError(startIndex);
    let length = this.length;
    let endIndex = (t13 = _endIndex, t13 == null ? length : t13);
    if (startIndex < 0) dart.throw(new core.RangeError.value(startIndex));
    if (startIndex > dart.notNull(endIndex)) dart.throw(new core.RangeError.value(startIndex));
    if (dart.notNull(endIndex) > length) dart.throw(new core.RangeError.value(endIndex));
    return this.substring(startIndex, endIndex);
  }
  [$toLowerCase]() {
    return this.toLowerCase();
  }
  [$toUpperCase]() {
    return this.toUpperCase();
  }
  static _isWhitespace(codeUnit) {
    if (codeUnit < 256) {
      switch (codeUnit) {
        case 9:
        case 10:
        case 11:
        case 12:
        case 13:
        case 32:
        case 133:
        case 160:
        {
          return true;
        }
        default:
        {
          return false;
        }
      }
    }
    switch (codeUnit) {
      case 5760:
      case 8192:
      case 8193:
      case 8194:
      case 8195:
      case 8196:
      case 8197:
      case 8198:
      case 8199:
      case 8200:
      case 8201:
      case 8202:
      case 8232:
      case 8233:
      case 8239:
      case 8287:
      case 12288:
      case 65279:
      {
        return true;
      }
      default:
      {
        return false;
      }
    }
  }
  static _skipLeadingWhitespace(string, index) {
    if (index == null) dart.argumentError(index);
    let stringLength = string.length;
    while (index < stringLength) {
      let codeUnit = string[$codeUnitAt](index);
      if (codeUnit !== 32 && codeUnit !== 13 && !_interceptors.JSString._isWhitespace(codeUnit)) {
        break;
      }
      index = index + 1;
    }
    return index;
  }
  static _skipTrailingWhitespace(string, index) {
    if (index == null) dart.argumentError(index);
    while (index > 0) {
      let codeUnit = string[$codeUnitAt](index - 1);
      if (codeUnit !== 32 && codeUnit !== 13 && !_interceptors.JSString._isWhitespace(codeUnit)) {
        break;
      }
      index = index - 1;
    }
    return index;
  }
  [$trim]() {
    let result = this.trim();
    let length = result.length;
    if (length === 0) return result;
    let firstCode = result[$codeUnitAt](0);
    let startIndex = 0;
    if (firstCode === 133) {
      startIndex = _interceptors.JSString._skipLeadingWhitespace(result, 1);
      if (startIndex === length) return "";
    }
    let endIndex = length;
    let lastCode = result[$codeUnitAt](endIndex - 1);
    if (lastCode === 133) {
      endIndex = _interceptors.JSString._skipTrailingWhitespace(result, endIndex - 1);
    }
    if (startIndex === 0 && endIndex === length) return result;
    return result.substring(startIndex, endIndex);
  }
  [$trimLeft]() {
    let result = null;
    let startIndex = 0;
    if (typeof this.trimLeft != "undefined") {
      result = this.trimLeft();
      if (result.length === 0) return result;
      let firstCode = result[$codeUnitAt](0);
      if (firstCode === 133) {
        startIndex = _interceptors.JSString._skipLeadingWhitespace(result, 1);
      }
    } else {
      result = this;
      startIndex = _interceptors.JSString._skipLeadingWhitespace(this, 0);
    }
    if (startIndex === 0) return result;
    if (startIndex === result.length) return "";
    return result.substring(startIndex);
  }
  [$trimRight]() {
    let result = null;
    let endIndex = 0;
    if (typeof this.trimRight != "undefined") {
      result = this.trimRight();
      endIndex = result.length;
      if (endIndex === 0) return result;
      let lastCode = result[$codeUnitAt](endIndex - 1);
      if (lastCode === 133) {
        endIndex = _interceptors.JSString._skipTrailingWhitespace(result, endIndex - 1);
      }
    } else {
      result = this;
      endIndex = _interceptors.JSString._skipTrailingWhitespace(this, this.length);
    }
    if (endIndex === result.length) return result;
    if (endIndex === 0) return "";
    return result.substring(0, endIndex);
  }
  [$times](times) {
    if (times == null) dart.argumentError(times);
    if (0 >= times) return "";
    if (times === 1 || this.length === 0) return this;
    if (times !== times >>> 0) {
      dart.throw(C18 || CT.C18);
    }
    let result = "";
    let s = this;
    while (true) {
      if ((times & 1) === 1) result = s + result;
      times = times >>> 1;
      if (times === 0) break;
      s = s + s;
    }
    return result;
  }
  [$padLeft](width, padding = " ") {
    if (width == null) dart.argumentError(width);
    let delta = width - this.length;
    if (delta <= 0) return this;
    return padding[$times](delta) + this;
  }
  [$padRight](width, padding = " ") {
    if (width == null) dart.argumentError(width);
    let delta = width - this.length;
    if (delta <= 0) return this;
    return this[$plus](padding[$times](delta));
  }
  get [$codeUnits]() {
    return new _internal.CodeUnits.new(this);
  }
  get [$runes]() {
    return new core.Runes.new(this);
  }
  [$indexOf](pattern, start = 0) {
    if (pattern == null) dart.argumentError(pattern);
    if (start == null) dart.argumentError(start);
    if (start < 0 || start > this.length) {
      dart.throw(new core.RangeError.range(start, 0, this.length));
    }
    if (typeof pattern == 'string') {
      return _js_helper.stringIndexOfStringUnchecked(this, pattern, start);
    }
    if (_js_helper.JSSyntaxRegExp.is(pattern)) {
      let re = pattern;
      let match = _js_helper.firstMatchAfter(re, this, start);
      return match == null ? -1 : match.start;
    }
    let length = this.length;
    for (let i = start; i <= length; i = i + 1) {
      if (pattern[$matchAsPrefix](this, i) != null) return i;
    }
    return -1;
  }
  [$lastIndexOf](pattern, _start = null) {
    let t13;
    if (pattern == null) dart.argumentError(pattern);
    let length = this.length;
    let start = (t13 = _start, t13 == null ? length : t13);
    if (dart.notNull(start) < 0 || dart.notNull(start) > length) {
      dart.throw(new core.RangeError.range(start, 0, length));
    }
    if (typeof pattern == 'string') {
      let other = pattern;
      if (dart.notNull(start) + other.length > length) {
        start = length - other.length;
      }
      return _js_helper.stringLastIndexOfUnchecked(this, other, start);
    }
    for (let i = start; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
      if (pattern[$matchAsPrefix](this, i) != null) return i;
    }
    return -1;
  }
  [$contains](other, startIndex = 0) {
    if (other == null) dart.argumentError(other);
    if (startIndex == null) dart.argumentError(startIndex);
    if (startIndex < 0 || startIndex > this.length) {
      dart.throw(new core.RangeError.range(startIndex, 0, this.length));
    }
    return _js_helper.stringContainsUnchecked(this, other, startIndex);
  }
  get [$isEmpty]() {
    return this.length === 0;
  }
  get [$isNotEmpty]() {
    return !this[$isEmpty];
  }
  [$compareTo](other) {
    core.String.as(other);
    if (other == null) dart.argumentError(other);
    return this[$_equals](other) ? 0 : this < other ? -1 : 1;
  }
  [$toString]() {
    return this;
  }
  get [$hashCode]() {
    let hash = 0;
    let length = this.length;
    for (let i = 0; i < length; i = i + 1) {
      hash = 536870911 & hash + this.charCodeAt(i);
      hash = 536870911 & hash + ((524287 & hash) << 10);
      hash = hash ^ hash >> 6;
    }
    hash = 536870911 & hash + ((67108863 & hash) << 3);
    hash = hash ^ hash >> 11;
    return 536870911 & hash + ((16383 & hash) << 15);
  }
  get [$runtimeType]() {
    return dart.wrapType(core.String);
  }
  [$_get](index) {
    if (index == null) dart.argumentError(index);
    if (index >= this.length || index < 0) {
      dart.throw(_js_helper.diagnoseIndexError(this, index));
    }
    return this[index];
  }
};
(_interceptors.JSString.new = function() {
  this[length] = null;
  _interceptors.JSString.__proto__.new.call(this);
  ;
}).prototype = _interceptors.JSString.prototype;
dart.addTypeTests(_interceptors.JSString);
dart.addTypeCaches(_interceptors.JSString);
_interceptors.JSString[dart.implements] = () => [core.String, _interceptors.JSIndexable$(core.String)];
dart.setMethodSignature(_interceptors.JSString, () => ({
  __proto__: dart.getMethods(_interceptors.JSString.__proto__),
  [$codeUnitAt]: dart.fnType(core.int, [core.int]),
  [$allMatches]: dart.fnType(core.Iterable$(core.Match), [core.String], [core.int]),
  [$matchAsPrefix]: dart.fnType(core.Match, [core.String], [core.int]),
  [$plus]: dart.fnType(core.String, [core.String]),
  [$endsWith]: dart.fnType(core.bool, [core.String]),
  [$replaceAll]: dart.fnType(core.String, [core.Pattern, core.String]),
  [$replaceAllMapped]: dart.fnType(core.String, [core.Pattern, dart.fnType(core.String, [core.Match])]),
  [$splitMapJoin]: dart.fnType(core.String, [core.Pattern], {onMatch: dart.fnType(core.String, [core.Match]), onNonMatch: dart.fnType(core.String, [core.String])}, {}),
  [$replaceFirst]: dart.fnType(core.String, [core.Pattern, core.String], [core.int]),
  [$replaceFirstMapped]: dart.fnType(core.String, [core.Pattern, dart.fnType(core.String, [core.Match])], [core.int]),
  [$split]: dart.fnType(core.List$(core.String), [core.Pattern]),
  [$replaceRange]: dart.fnType(core.String, [core.int, core.int, core.String]),
  [_defaultSplit]: dart.fnType(core.List$(core.String), [core.Pattern]),
  [$startsWith]: dart.fnType(core.bool, [core.Pattern], [core.int]),
  [$substring]: dart.fnType(core.String, [core.int], [core.int]),
  [$toLowerCase]: dart.fnType(core.String, []),
  [$toUpperCase]: dart.fnType(core.String, []),
  [$trim]: dart.fnType(core.String, []),
  [$trimLeft]: dart.fnType(core.String, []),
  [$trimRight]: dart.fnType(core.String, []),
  [$times]: dart.fnType(core.String, [core.int]),
  [$padLeft]: dart.fnType(core.String, [core.int], [core.String]),
  [$padRight]: dart.fnType(core.String, [core.int], [core.String]),
  [$indexOf]: dart.fnType(core.int, [core.Pattern], [core.int]),
  [$lastIndexOf]: dart.fnType(core.int, [core.Pattern], [core.int]),
  [$contains]: dart.fnType(core.bool, [core.Pattern], [core.int]),
  [$compareTo]: dart.fnType(core.int, [core.Object]),
  [$_get]: dart.fnType(core.String, [core.int])
}));
dart.setGetterSignature(_interceptors.JSString, () => ({
  __proto__: dart.getGetters(_interceptors.JSString.__proto__),
  [$codeUnits]: core.List$(core.int),
  [$runes]: core.Runes,
  [$isEmpty]: core.bool,
  [$isNotEmpty]: core.bool
}));
dart.setLibraryUri(_interceptors.JSString, L6);
dart.setFieldSignature(_interceptors.JSString, () => ({
  __proto__: dart.getFields(_interceptors.JSString.__proto__),
  [$length]: dart.finalFieldType(core.int)
}));
dart.definePrimitiveHashCode(_interceptors.JSString.prototype);
dart.registerExtension("String", _interceptors.JSString);
_interceptors.getInterceptor = function getInterceptor(obj) {
  return obj;
};
_interceptors.findInterceptorConstructorForType = function findInterceptorConstructorForType(type) {
};
_interceptors.findConstructorForNativeSubclassType = function findConstructorForNativeSubclassType(type, name) {
};
_interceptors.getNativeInterceptor = function getNativeInterceptor(object) {
};
_interceptors.setDispatchProperty = function setDispatchProperty(object, value) {
};
dart.defineLazy(_interceptors, {
  /*_interceptors.jsNull*/get jsNull() {
    return new _interceptors.JSNull.new();
  }
}, true);
var _string$ = dart.privateName(_internal, "_string");
var _closeGap = dart.privateName(collection, "_closeGap");
var _filter = dart.privateName(collection, "_filter");
var C19;
const _is_ListMixin_default = Symbol('_is_ListMixin_default');
collection.ListMixin$ = dart.generic(E => {
  var ListIteratorOfEL = () => (ListIteratorOfEL = dart.constFn(_internal.ListIterator$(E)))();
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  var FollowedByIterableOfEL = () => (FollowedByIterableOfEL = dart.constFn(_internal.FollowedByIterable$(E)))();
  var VoidToLEL = () => (VoidToLEL = dart.constFn(dart.fnType(E, [])))();
  var WhereIterableOfEL = () => (WhereIterableOfEL = dart.constFn(_internal.WhereIterable$(E)))();
  var ELAndELToLEL = () => (ELAndELToLEL = dart.constFn(dart.fnType(E, [E, E])))();
  var SubListIterableOfEL = () => (SubListIterableOfEL = dart.constFn(_internal.SubListIterable$(E)))();
  var SkipWhileIterableOfEL = () => (SkipWhileIterableOfEL = dart.constFn(_internal.SkipWhileIterable$(E)))();
  var TakeWhileIterableOfEL = () => (TakeWhileIterableOfEL = dart.constFn(_internal.TakeWhileIterable$(E)))();
  var JSArrayOfEL = () => (JSArrayOfEL = dart.constFn(_interceptors.JSArray$(E)))();
  var ListOfEL = () => (ListOfEL = dart.constFn(core.List$(E)))();
  var _HashSetOfEL = () => (_HashSetOfEL = dart.constFn(collection._HashSet$(E)))();
  var ListMapViewOfEL = () => (ListMapViewOfEL = dart.constFn(_internal.ListMapView$(E)))();
  var ReversedListIterableOfEL = () => (ReversedListIterableOfEL = dart.constFn(_internal.ReversedListIterable$(E)))();
  class ListMixin extends core.Object {
    get iterator() {
      return new (ListIteratorOfEL()).new(this);
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
    elementAt(index) {
      return this[$_get](index);
    }
    followedBy(other) {
      IterableOfEL().as(other);
      return FollowedByIterableOfEL().firstEfficient(this, other);
    }
    forEach(action) {
      let length = this[$length];
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        action(this[$_get](i));
        if (length != this[$length]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
    }
    get isEmpty() {
      return this[$length] === 0;
    }
    get isNotEmpty() {
      return !dart.test(this[$isEmpty]);
    }
    get first() {
      if (this[$length] === 0) dart.throw(_internal.IterableElementError.noElement());
      return this[$_get](0);
    }
    set first(value) {
      E.as(value);
      if (this[$length] === 0) dart.throw(_internal.IterableElementError.noElement());
      this[$_set](0, value);
    }
    get last() {
      if (this[$length] === 0) dart.throw(_internal.IterableElementError.noElement());
      return this[$_get](dart.notNull(this[$length]) - 1);
    }
    set last(value) {
      E.as(value);
      if (this[$length] === 0) dart.throw(_internal.IterableElementError.noElement());
      this[$_set](dart.notNull(this[$length]) - 1, value);
    }
    get single() {
      if (this[$length] === 0) dart.throw(_internal.IterableElementError.noElement());
      if (dart.notNull(this[$length]) > 1) dart.throw(_internal.IterableElementError.tooMany());
      return this[$_get](0);
    }
    contains(element) {
      let length = this[$length];
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        if (dart.equals(this[$_get](i), element)) return true;
        if (length != this[$length]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      return false;
    }
    every(test) {
      let length = this[$length];
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        if (!dart.test(test(this[$_get](i)))) return false;
        if (length != this[$length]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      return true;
    }
    any(test) {
      let length = this[$length];
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        if (dart.test(test(this[$_get](i)))) return true;
        if (length != this[$length]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      return false;
    }
    firstWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      let length = this[$length];
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        let element = this[$_get](i);
        if (dart.test(test(element))) return element;
        if (length != this[$length]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    lastWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      let length = this[$length];
      for (let i = dart.notNull(length) - 1; i >= 0; i = i - 1) {
        let element = this[$_get](i);
        if (dart.test(test(element))) return element;
        if (length != this[$length]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    singleWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      let length = this[$length];
      let match = null;
      let matchFound = false;
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        let element = this[$_get](i);
        if (dart.test(test(element))) {
          if (matchFound) {
            dart.throw(_internal.IterableElementError.tooMany());
          }
          matchFound = true;
          match = element;
        }
        if (length != this[$length]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      if (matchFound) return match;
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    join(separator = "") {
      let t13;
      if (this[$length] === 0) return "";
      let buffer = (t13 = new core.StringBuffer.new(), t13.writeAll(this, separator), t13);
      return dart.toString(buffer);
    }
    where(test) {
      return new (WhereIterableOfEL()).new(this, test);
    }
    whereType(T) {
      return new (_internal.WhereTypeIterable$(T)).new(this);
    }
    map(T, f) {
      return new (_internal.MappedListIterable$(E, T)).new(this, f);
    }
    expand(T, f) {
      return new (_internal.ExpandIterable$(E, T)).new(this, f);
    }
    reduce(combine) {
      ELAndELToLEL().as(combine);
      let length = this[$length];
      if (length === 0) dart.throw(_internal.IterableElementError.noElement());
      let value = this[$_get](0);
      for (let i = 1; i < dart.notNull(length); i = i + 1) {
        value = combine(value, this[$_get](i));
        if (length != this[$length]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      return value;
    }
    fold(T, initialValue, combine) {
      let value = initialValue;
      let length = this[$length];
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        value = combine(value, this[$_get](i));
        if (length != this[$length]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      return value;
    }
    skip(count) {
      return new (SubListIterableOfEL()).new(this, count, null);
    }
    skipWhile(test) {
      return new (SkipWhileIterableOfEL()).new(this, test);
    }
    take(count) {
      return new (SubListIterableOfEL()).new(this, 0, count);
    }
    takeWhile(test) {
      return new (TakeWhileIterableOfEL()).new(this, test);
    }
    toList(opts) {
      let t13;
      let growable = opts && 'growable' in opts ? opts.growable : true;
      let result = null;
      if (dart.test(growable)) {
        result = (t13 = JSArrayOfEL().of([]), t13[$length] = this[$length], t13);
      } else {
        result = ListOfEL().new(this[$length]);
      }
      for (let i = 0; i < dart.notNull(this[$length]); i = i + 1) {
        result[$_set](i, this[$_get](i));
      }
      return result;
    }
    toSet() {
      let result = new (_HashSetOfEL()).new();
      for (let i = 0; i < dart.notNull(this[$length]); i = i + 1) {
        result.add(this[$_get](i));
      }
      return result;
    }
    add(element) {
      let t13;
      E.as(element);
      this[$_set]((t13 = this[$length], this[$length] = dart.notNull(t13) + 1, t13), element);
    }
    addAll(iterable) {
      IterableOfEL().as(iterable);
      let i = this[$length];
      for (let element of iterable) {
        if (!(this[$length] == i || dart.throw(new core.ConcurrentModificationError.new(this)))) dart.assertFailed(null, L8, 269, 14, "this.length == i || (throw ConcurrentModificationError(this))");
        this[$length] = dart.notNull(i) + 1;
        this[$_set](i, element);
        i = dart.notNull(i) + 1;
      }
    }
    remove(element) {
      for (let i = 0; i < dart.notNull(this[$length]); i = i + 1) {
        if (dart.equals(this[$_get](i), element)) {
          this[_closeGap](i, i + 1);
          return true;
        }
      }
      return false;
    }
    [_closeGap](start, end) {
      let length = this[$length];
      if (!(0 <= dart.notNull(start))) dart.assertFailed(null, L8, 290, 12, "0 <= start");
      if (!(dart.notNull(start) < dart.notNull(end))) dart.assertFailed(null, L8, 291, 12, "start < end");
      if (!(dart.notNull(end) <= dart.notNull(length))) dart.assertFailed(null, L8, 292, 12, "end <= length");
      let size = dart.notNull(end) - dart.notNull(start);
      for (let i = end; dart.notNull(i) < dart.notNull(length); i = dart.notNull(i) + 1) {
        this[$_set](dart.notNull(i) - size, this[$_get](i));
      }
      this[$length] = dart.notNull(length) - size;
    }
    removeWhere(test) {
      this[_filter](test, false);
    }
    retainWhere(test) {
      this[_filter](test, true);
    }
    [_filter](test, retainMatching) {
      let retained = JSArrayOfEL().of([]);
      let length = this[$length];
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        let element = this[$_get](i);
        if (dart.equals(test(element), retainMatching)) {
          retained[$add](element);
        }
        if (length != this[$length]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      if (retained[$length] != this[$length]) {
        this[$setRange](0, retained[$length], retained);
        this[$length] = retained[$length];
      }
    }
    clear() {
      this[$length] = 0;
    }
    cast(R) {
      return core.List.castFrom(E, R, this);
    }
    removeLast() {
      if (this[$length] === 0) {
        dart.throw(_internal.IterableElementError.noElement());
      }
      let result = this[$_get](dart.notNull(this[$length]) - 1);
      this[$length] = dart.notNull(this[$length]) - 1;
      return result;
    }
    sort(compare = null) {
      let t13;
      _internal.Sort.sort(E, this, (t13 = compare, t13 == null ? C19 || CT.C19 : t13));
    }
    static _compareAny(a, b) {
      return core.Comparable.compare(core.Comparable.as(a), core.Comparable.as(b));
    }
    shuffle(random = null) {
      random == null ? random = math.Random.new() : null;
      let length = this[$length];
      while (dart.notNull(length) > 1) {
        let pos = random.nextInt(length);
        length = dart.notNull(length) - 1;
        let tmp = this[$_get](length);
        this[$_set](length, this[$_get](pos));
        this[$_set](pos, tmp);
      }
    }
    asMap() {
      return new (ListMapViewOfEL()).new(this);
    }
    ['+'](other) {
      let t13;
      ListOfEL().as(other);
      let result = (t13 = JSArrayOfEL().of([]), t13[$length] = dart.notNull(this[$length]) + dart.notNull(other[$length]), t13);
      result[$setRange](0, this[$length], this);
      result[$setRange](this[$length], result[$length], other);
      return result;
    }
    sublist(start, end = null) {
      let t13;
      let listLength = this[$length];
      end == null ? end = listLength : null;
      core.RangeError.checkValidRange(start, end, listLength);
      let length = dart.notNull(end) - dart.notNull(start);
      let result = (t13 = JSArrayOfEL().of([]), t13[$length] = length, t13);
      for (let i = 0; i < length; i = i + 1) {
        result[$_set](i, this[$_get](dart.notNull(start) + i));
      }
      return result;
    }
    getRange(start, end) {
      core.RangeError.checkValidRange(start, end, this[$length]);
      return new (SubListIterableOfEL()).new(this, start, end);
    }
    removeRange(start, end) {
      core.RangeError.checkValidRange(start, end, this[$length]);
      if (dart.notNull(end) > dart.notNull(start)) {
        this[_closeGap](start, end);
      }
    }
    fillRange(start, end, fill = null) {
      E.as(fill);
      core.RangeError.checkValidRange(start, end, this[$length]);
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        this[$_set](i, fill);
      }
    }
    setRange(start, end, iterable, skipCount = 0) {
      IterableOfEL().as(iterable);
      core.RangeError.checkValidRange(start, end, this[$length]);
      let length = dart.notNull(end) - dart.notNull(start);
      if (length === 0) return;
      core.RangeError.checkNotNegative(skipCount, "skipCount");
      let otherList = null;
      let otherStart = null;
      if (ListOfEL().is(iterable)) {
        otherList = iterable;
        otherStart = skipCount;
      } else {
        otherList = iterable[$skip](skipCount)[$toList]({growable: false});
        otherStart = 0;
      }
      if (dart.notNull(otherStart) + length > dart.notNull(otherList[$length])) {
        dart.throw(_internal.IterableElementError.tooFew());
      }
      if (dart.notNull(otherStart) < dart.notNull(start)) {
        for (let i = length - 1; i >= 0; i = i - 1) {
          this[$_set](dart.notNull(start) + i, otherList[$_get](dart.notNull(otherStart) + i));
        }
      } else {
        for (let i = 0; i < length; i = i + 1) {
          this[$_set](dart.notNull(start) + i, otherList[$_get](dart.notNull(otherStart) + i));
        }
      }
    }
    replaceRange(start, end, newContents) {
      IterableOfEL().as(newContents);
      core.RangeError.checkValidRange(start, end, this[$length]);
      if (!_internal.EfficientLengthIterable.is(newContents)) {
        newContents = newContents[$toList]();
      }
      let removeLength = dart.notNull(end) - dart.notNull(start);
      let insertLength = newContents[$length];
      if (removeLength >= dart.notNull(insertLength)) {
        let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
        this[$setRange](start, insertEnd, newContents);
        if (removeLength > dart.notNull(insertLength)) {
          this[_closeGap](insertEnd, end);
        }
      } else {
        let delta = dart.notNull(insertLength) - removeLength;
        let newLength = dart.notNull(this[$length]) + delta;
        let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
        this[$length] = newLength;
        this[$setRange](insertEnd, newLength, this, end);
        this[$setRange](start, insertEnd, newContents);
      }
    }
    indexOf(element, start = 0) {
      if (dart.notNull(start) < 0) start = 0;
      for (let i = start; dart.notNull(i) < dart.notNull(this[$length]); i = dart.notNull(i) + 1) {
        if (dart.equals(this[$_get](i), element)) return i;
      }
      return -1;
    }
    indexWhere(test, start = 0) {
      if (dart.notNull(start) < 0) start = 0;
      for (let i = start; dart.notNull(i) < dart.notNull(this[$length]); i = dart.notNull(i) + 1) {
        if (dart.test(test(this[$_get](i)))) return i;
      }
      return -1;
    }
    lastIndexOf(element, start = null) {
      if (start == null || dart.notNull(start) >= dart.notNull(this[$length])) start = dart.notNull(this[$length]) - 1;
      for (let i = start; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
        if (dart.equals(this[$_get](i), element)) return i;
      }
      return -1;
    }
    lastIndexWhere(test, start = null) {
      if (start == null || dart.notNull(start) >= dart.notNull(this[$length])) start = dart.notNull(this[$length]) - 1;
      for (let i = start; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
        if (dart.test(test(this[$_get](i)))) return i;
      }
      return -1;
    }
    insert(index, element) {
      E.as(element);
      core.ArgumentError.checkNotNull(core.int, index, "index");
      core.RangeError.checkValueInInterval(index, 0, this[$length], "index");
      if (index == this[$length]) {
        this[$add](element);
        return;
      }
      this[$length] = dart.notNull(this[$length]) + 1;
      this[$setRange](dart.notNull(index) + 1, this[$length], this, index);
      this[$_set](index, element);
    }
    removeAt(index) {
      let result = this[$_get](index);
      this[_closeGap](index, dart.notNull(index) + 1);
      return result;
    }
    insertAll(index, iterable) {
      IterableOfEL().as(iterable);
      core.RangeError.checkValueInInterval(index, 0, this[$length], "index");
      if (!_internal.EfficientLengthIterable.is(iterable) || iterable === this) {
        iterable = iterable[$toList]();
      }
      let insertionLength = iterable[$length];
      this[$length] = dart.notNull(this[$length]) + dart.notNull(insertionLength);
      if (iterable[$length] != insertionLength) {
        this[$length] = dart.notNull(this[$length]) - dart.notNull(insertionLength);
        dart.throw(new core.ConcurrentModificationError.new(iterable));
      }
      this[$setRange](dart.notNull(index) + dart.notNull(insertionLength), this[$length], this, index);
      this[$setAll](index, iterable);
    }
    setAll(index, iterable) {
      let t13;
      IterableOfEL().as(iterable);
      if (core.List.is(iterable)) {
        this[$setRange](index, dart.notNull(index) + dart.notNull(iterable[$length]), iterable);
      } else {
        for (let element of iterable) {
          this[$_set]((t13 = index, index = dart.notNull(t13) + 1, t13), element);
        }
      }
    }
    get reversed() {
      return new (ReversedListIterableOfEL()).new(this);
    }
    toString() {
      return collection.IterableBase.iterableToFullString(this, "[", "]");
    }
  }
  (ListMixin.new = function() {
    ;
  }).prototype = ListMixin.prototype;
  ListMixin.prototype[dart.isList] = true;
  dart.addTypeTests(ListMixin);
  ListMixin.prototype[_is_ListMixin_default] = true;
  dart.addTypeCaches(ListMixin);
  ListMixin[dart.implements] = () => [core.List$(E)];
  dart.setMethodSignature(ListMixin, () => ({
    __proto__: dart.getMethods(ListMixin.__proto__),
    elementAt: dart.fnType(E, [core.int]),
    [$elementAt]: dart.fnType(E, [core.int]),
    followedBy: dart.fnType(core.Iterable$(E), [core.Object]),
    [$followedBy]: dart.fnType(core.Iterable$(E), [core.Object]),
    forEach: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
    [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
    contains: dart.fnType(core.bool, [core.Object]),
    [$contains]: dart.fnType(core.bool, [core.Object]),
    every: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    [$every]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    any: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    [$any]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    firstWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    [$firstWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    lastWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    [$lastWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    singleWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    [$singleWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    join: dart.fnType(core.String, [], [core.String]),
    [$join]: dart.fnType(core.String, [], [core.String]),
    where: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    [$where]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    whereType: dart.gFnType(T => [core.Iterable$(T), []]),
    [$whereType]: dart.gFnType(T => [core.Iterable$(T), []]),
    map: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]]),
    [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]]),
    expand: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]]),
    [$expand]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]]),
    reduce: dart.fnType(E, [core.Object]),
    [$reduce]: dart.fnType(E, [core.Object]),
    fold: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]]),
    [$fold]: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]]),
    skip: dart.fnType(core.Iterable$(E), [core.int]),
    [$skip]: dart.fnType(core.Iterable$(E), [core.int]),
    skipWhile: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    [$skipWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    take: dart.fnType(core.Iterable$(E), [core.int]),
    [$take]: dart.fnType(core.Iterable$(E), [core.int]),
    takeWhile: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    [$takeWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    toList: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
    [$toList]: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
    toSet: dart.fnType(core.Set$(E), []),
    [$toSet]: dart.fnType(core.Set$(E), []),
    add: dart.fnType(dart.void, [core.Object]),
    [$add]: dart.fnType(dart.void, [core.Object]),
    addAll: dart.fnType(dart.void, [core.Object]),
    [$addAll]: dart.fnType(dart.void, [core.Object]),
    remove: dart.fnType(core.bool, [core.Object]),
    [$remove]: dart.fnType(core.bool, [core.Object]),
    [_closeGap]: dart.fnType(dart.void, [core.int, core.int]),
    removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    [$removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    [$retainWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    [_filter]: dart.fnType(dart.void, [dart.fnType(core.bool, [E]), core.bool]),
    clear: dart.fnType(dart.void, []),
    [$clear]: dart.fnType(dart.void, []),
    cast: dart.gFnType(R => [core.List$(R), []]),
    [$cast]: dart.gFnType(R => [core.List$(R), []]),
    removeLast: dart.fnType(E, []),
    [$removeLast]: dart.fnType(E, []),
    sort: dart.fnType(dart.void, [], [dart.fnType(core.int, [E, E])]),
    [$sort]: dart.fnType(dart.void, [], [dart.fnType(core.int, [E, E])]),
    shuffle: dart.fnType(dart.void, [], [math.Random]),
    [$shuffle]: dart.fnType(dart.void, [], [math.Random]),
    asMap: dart.fnType(core.Map$(core.int, E), []),
    [$asMap]: dart.fnType(core.Map$(core.int, E), []),
    '+': dart.fnType(core.List$(E), [core.Object]),
    [$plus]: dart.fnType(core.List$(E), [core.Object]),
    sublist: dart.fnType(core.List$(E), [core.int], [core.int]),
    [$sublist]: dart.fnType(core.List$(E), [core.int], [core.int]),
    getRange: dart.fnType(core.Iterable$(E), [core.int, core.int]),
    [$getRange]: dart.fnType(core.Iterable$(E), [core.int, core.int]),
    removeRange: dart.fnType(dart.void, [core.int, core.int]),
    [$removeRange]: dart.fnType(dart.void, [core.int, core.int]),
    fillRange: dart.fnType(dart.void, [core.int, core.int], [core.Object]),
    [$fillRange]: dart.fnType(dart.void, [core.int, core.int], [core.Object]),
    setRange: dart.fnType(dart.void, [core.int, core.int, core.Object], [core.int]),
    [$setRange]: dart.fnType(dart.void, [core.int, core.int, core.Object], [core.int]),
    replaceRange: dart.fnType(dart.void, [core.int, core.int, core.Object]),
    [$replaceRange]: dart.fnType(dart.void, [core.int, core.int, core.Object]),
    indexOf: dart.fnType(core.int, [core.Object], [core.int]),
    [$indexOf]: dart.fnType(core.int, [core.Object], [core.int]),
    indexWhere: dart.fnType(core.int, [dart.fnType(core.bool, [E])], [core.int]),
    [$indexWhere]: dart.fnType(core.int, [dart.fnType(core.bool, [E])], [core.int]),
    lastIndexOf: dart.fnType(core.int, [core.Object], [core.int]),
    [$lastIndexOf]: dart.fnType(core.int, [core.Object], [core.int]),
    lastIndexWhere: dart.fnType(core.int, [dart.fnType(core.bool, [E])], [core.int]),
    [$lastIndexWhere]: dart.fnType(core.int, [dart.fnType(core.bool, [E])], [core.int]),
    insert: dart.fnType(dart.void, [core.int, core.Object]),
    [$insert]: dart.fnType(dart.void, [core.int, core.Object]),
    removeAt: dart.fnType(E, [core.int]),
    [$removeAt]: dart.fnType(E, [core.int]),
    insertAll: dart.fnType(dart.void, [core.int, core.Object]),
    [$insertAll]: dart.fnType(dart.void, [core.int, core.Object]),
    setAll: dart.fnType(dart.void, [core.int, core.Object]),
    [$setAll]: dart.fnType(dart.void, [core.int, core.Object])
  }));
  dart.setGetterSignature(ListMixin, () => ({
    __proto__: dart.getGetters(ListMixin.__proto__),
    iterator: core.Iterator$(E),
    [$iterator]: core.Iterator$(E),
    isEmpty: core.bool,
    [$isEmpty]: core.bool,
    isNotEmpty: core.bool,
    [$isNotEmpty]: core.bool,
    first: E,
    [$first]: E,
    last: E,
    [$last]: E,
    single: E,
    [$single]: E,
    reversed: core.Iterable$(E),
    [$reversed]: core.Iterable$(E)
  }));
  dart.setSetterSignature(ListMixin, () => ({
    __proto__: dart.getSetters(ListMixin.__proto__),
    first: core.Object,
    [$first]: core.Object,
    last: core.Object,
    [$last]: core.Object
  }));
  dart.setLibraryUri(ListMixin, L9);
  dart.defineExtensionMethods(ListMixin, [
    'elementAt',
    'followedBy',
    'forEach',
    'contains',
    'every',
    'any',
    'firstWhere',
    'lastWhere',
    'singleWhere',
    'join',
    'where',
    'whereType',
    'map',
    'expand',
    'reduce',
    'fold',
    'skip',
    'skipWhile',
    'take',
    'takeWhile',
    'toList',
    'toSet',
    'add',
    'addAll',
    'remove',
    'removeWhere',
    'retainWhere',
    'clear',
    'cast',
    'removeLast',
    'sort',
    'shuffle',
    'asMap',
    '+',
    'sublist',
    'getRange',
    'removeRange',
    'fillRange',
    'setRange',
    'replaceRange',
    'indexOf',
    'indexWhere',
    'lastIndexOf',
    'lastIndexWhere',
    'insert',
    'removeAt',
    'insertAll',
    'setAll',
    'toString'
  ]);
  dart.defineExtensionAccessors(ListMixin, [
    'iterator',
    'isEmpty',
    'isNotEmpty',
    'first',
    'last',
    'single',
    'reversed'
  ]);
  return ListMixin;
});
collection.ListMixin = collection.ListMixin$();
dart.addTypeTests(collection.ListMixin, _is_ListMixin_default);
const _is_ListBase_default = Symbol('_is_ListBase_default');
collection.ListBase$ = dart.generic(E => {
  const Object_ListMixin$36 = class Object_ListMixin extends core.Object {};
  (Object_ListMixin$36.new = function() {
  }).prototype = Object_ListMixin$36.prototype;
  dart.applyMixin(Object_ListMixin$36, collection.ListMixin$(E));
  class ListBase extends Object_ListMixin$36 {
    static listToString(list) {
      return collection.IterableBase.iterableToFullString(list, "[", "]");
    }
  }
  (ListBase.new = function() {
    ;
  }).prototype = ListBase.prototype;
  dart.addTypeTests(ListBase);
  ListBase.prototype[_is_ListBase_default] = true;
  dart.addTypeCaches(ListBase);
  dart.setLibraryUri(ListBase, L9);
  return ListBase;
});
collection.ListBase = collection.ListBase$();
dart.addTypeTests(collection.ListBase, _is_ListBase_default);
const _is_UnmodifiableListMixin_default = Symbol('_is_UnmodifiableListMixin_default');
_internal.UnmodifiableListMixin$ = dart.generic(E => {
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  class UnmodifiableListMixin extends core.Object {
    _set(index, value$) {
      let value = value$;
      E.as(value);
      dart.throw(new core.UnsupportedError.new("Cannot modify an unmodifiable list"));
      return value$;
    }
    set length(newLength) {
      dart.throw(new core.UnsupportedError.new("Cannot change the length of an unmodifiable list"));
    }
    set first(element) {
      E.as(element);
      dart.throw(new core.UnsupportedError.new("Cannot modify an unmodifiable list"));
    }
    set last(element) {
      E.as(element);
      dart.throw(new core.UnsupportedError.new("Cannot modify an unmodifiable list"));
    }
    setAll(at, iterable) {
      IterableOfEL().as(iterable);
      dart.throw(new core.UnsupportedError.new("Cannot modify an unmodifiable list"));
    }
    add(value) {
      E.as(value);
      dart.throw(new core.UnsupportedError.new("Cannot add to an unmodifiable list"));
    }
    insert(index, element) {
      E.as(element);
      dart.throw(new core.UnsupportedError.new("Cannot add to an unmodifiable list"));
    }
    insertAll(at, iterable) {
      IterableOfEL().as(iterable);
      dart.throw(new core.UnsupportedError.new("Cannot add to an unmodifiable list"));
    }
    addAll(iterable) {
      IterableOfEL().as(iterable);
      dart.throw(new core.UnsupportedError.new("Cannot add to an unmodifiable list"));
    }
    remove(element) {
      dart.throw(new core.UnsupportedError.new("Cannot remove from an unmodifiable list"));
    }
    removeWhere(test) {
      dart.throw(new core.UnsupportedError.new("Cannot remove from an unmodifiable list"));
    }
    retainWhere(test) {
      dart.throw(new core.UnsupportedError.new("Cannot remove from an unmodifiable list"));
    }
    sort(compare = null) {
      dart.throw(new core.UnsupportedError.new("Cannot modify an unmodifiable list"));
    }
    shuffle(random = null) {
      dart.throw(new core.UnsupportedError.new("Cannot modify an unmodifiable list"));
    }
    clear() {
      dart.throw(new core.UnsupportedError.new("Cannot clear an unmodifiable list"));
    }
    removeAt(index) {
      dart.throw(new core.UnsupportedError.new("Cannot remove from an unmodifiable list"));
    }
    removeLast() {
      dart.throw(new core.UnsupportedError.new("Cannot remove from an unmodifiable list"));
    }
    setRange(start, end, iterable, skipCount = 0) {
      IterableOfEL().as(iterable);
      dart.throw(new core.UnsupportedError.new("Cannot modify an unmodifiable list"));
    }
    removeRange(start, end) {
      dart.throw(new core.UnsupportedError.new("Cannot remove from an unmodifiable list"));
    }
    replaceRange(start, end, iterable) {
      IterableOfEL().as(iterable);
      dart.throw(new core.UnsupportedError.new("Cannot remove from an unmodifiable list"));
    }
    fillRange(start, end, fillValue = null) {
      E.as(fillValue);
      dart.throw(new core.UnsupportedError.new("Cannot modify an unmodifiable list"));
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  }
  (UnmodifiableListMixin.new = function() {
    ;
  }).prototype = UnmodifiableListMixin.prototype;
  UnmodifiableListMixin.prototype[dart.isList] = true;
  dart.addTypeTests(UnmodifiableListMixin);
  UnmodifiableListMixin.prototype[_is_UnmodifiableListMixin_default] = true;
  dart.addTypeCaches(UnmodifiableListMixin);
  UnmodifiableListMixin[dart.implements] = () => [core.List$(E)];
  dart.setMethodSignature(UnmodifiableListMixin, () => ({
    __proto__: dart.getMethods(UnmodifiableListMixin.__proto__),
    _set: dart.fnType(dart.void, [core.int, core.Object]),
    [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
    setAll: dart.fnType(dart.void, [core.int, core.Object]),
    [$setAll]: dart.fnType(dart.void, [core.int, core.Object]),
    add: dart.fnType(dart.void, [core.Object]),
    [$add]: dart.fnType(dart.void, [core.Object]),
    insert: dart.fnType(dart.void, [core.int, core.Object]),
    [$insert]: dart.fnType(dart.void, [core.int, core.Object]),
    insertAll: dart.fnType(dart.void, [core.int, core.Object]),
    [$insertAll]: dart.fnType(dart.void, [core.int, core.Object]),
    addAll: dart.fnType(dart.void, [core.Object]),
    [$addAll]: dart.fnType(dart.void, [core.Object]),
    remove: dart.fnType(core.bool, [core.Object]),
    [$remove]: dart.fnType(core.bool, [core.Object]),
    removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    [$removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    [$retainWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    sort: dart.fnType(dart.void, [], [dart.fnType(core.int, [E, E])]),
    [$sort]: dart.fnType(dart.void, [], [dart.fnType(core.int, [E, E])]),
    shuffle: dart.fnType(dart.void, [], [math.Random]),
    [$shuffle]: dart.fnType(dart.void, [], [math.Random]),
    clear: dart.fnType(dart.void, []),
    [$clear]: dart.fnType(dart.void, []),
    removeAt: dart.fnType(E, [core.int]),
    [$removeAt]: dart.fnType(E, [core.int]),
    removeLast: dart.fnType(E, []),
    [$removeLast]: dart.fnType(E, []),
    setRange: dart.fnType(dart.void, [core.int, core.int, core.Object], [core.int]),
    [$setRange]: dart.fnType(dart.void, [core.int, core.int, core.Object], [core.int]),
    removeRange: dart.fnType(dart.void, [core.int, core.int]),
    [$removeRange]: dart.fnType(dart.void, [core.int, core.int]),
    replaceRange: dart.fnType(dart.void, [core.int, core.int, core.Object]),
    [$replaceRange]: dart.fnType(dart.void, [core.int, core.int, core.Object]),
    fillRange: dart.fnType(dart.void, [core.int, core.int], [core.Object]),
    [$fillRange]: dart.fnType(dart.void, [core.int, core.int], [core.Object])
  }));
  dart.setSetterSignature(UnmodifiableListMixin, () => ({
    __proto__: dart.getSetters(UnmodifiableListMixin.__proto__),
    length: core.int,
    [$length]: core.int,
    first: core.Object,
    [$first]: core.Object,
    last: core.Object,
    [$last]: core.Object
  }));
  dart.setLibraryUri(UnmodifiableListMixin, L10);
  dart.defineExtensionMethods(UnmodifiableListMixin, [
    '_set',
    'setAll',
    'add',
    'insert',
    'insertAll',
    'addAll',
    'remove',
    'removeWhere',
    'retainWhere',
    'sort',
    'shuffle',
    'clear',
    'removeAt',
    'removeLast',
    'setRange',
    'removeRange',
    'replaceRange',
    'fillRange'
  ]);
  dart.defineExtensionAccessors(UnmodifiableListMixin, ['length', 'first', 'last']);
  return UnmodifiableListMixin;
});
_internal.UnmodifiableListMixin = _internal.UnmodifiableListMixin$();
dart.addTypeTests(_internal.UnmodifiableListMixin, _is_UnmodifiableListMixin_default);
const _is_UnmodifiableListBase_default = Symbol('_is_UnmodifiableListBase_default');
_internal.UnmodifiableListBase$ = dart.generic(E => {
  const ListBase_UnmodifiableListMixin$36 = class ListBase_UnmodifiableListMixin extends collection.ListBase$(E) {};
  (ListBase_UnmodifiableListMixin$36.new = function() {
  }).prototype = ListBase_UnmodifiableListMixin$36.prototype;
  dart.applyMixin(ListBase_UnmodifiableListMixin$36, _internal.UnmodifiableListMixin$(E));
  class UnmodifiableListBase extends ListBase_UnmodifiableListMixin$36 {}
  (UnmodifiableListBase.new = function() {
    ;
  }).prototype = UnmodifiableListBase.prototype;
  dart.addTypeTests(UnmodifiableListBase);
  UnmodifiableListBase.prototype[_is_UnmodifiableListBase_default] = true;
  dart.addTypeCaches(UnmodifiableListBase);
  dart.setLibraryUri(UnmodifiableListBase, L10);
  return UnmodifiableListBase;
});
_internal.UnmodifiableListBase = _internal.UnmodifiableListBase$();
dart.addTypeTests(_internal.UnmodifiableListBase, _is_UnmodifiableListBase_default);
var C20;
core.num = class num extends core.Object {
  static is(o) {
    return typeof o == "number";
  }
  static as(o) {
    if (typeof o == "number" || o == null) return o;
    return dart.as(o, core.num);
  }
  static parse(input, onError = null) {
    let result = core.num.tryParse(input);
    if (result != null) return result;
    if (onError == null) dart.throw(new core.FormatException.new(input));
    return onError(input);
  }
  static tryParse(input) {
    let t13;
    let source = input[$trim]();
    t13 = core.int.tryParse(source);
    return t13 == null ? core.double.tryParse(source) : t13;
  }
  static _returnIntNull(_) {
    return null;
  }
  static _returnDoubleNull(_) {
    return null;
  }
};
(core.num.new = function() {
  ;
}).prototype = core.num.prototype;
dart.addTypeCaches(core.num);
core.num[dart.implements] = () => [core.Comparable$(core.num)];
dart.setLibraryUri(core.num, L1$);
core.int = class int extends core.num {
  static is(o) {
    return typeof o == "number" && Math.floor(o) == o;
  }
  static as(o) {
    if (typeof o == "number" && Math.floor(o) == o || o == null) {
      return o;
    }
    return dart.as(o, core.int);
  }
  static fromEnvironment(name, opts) {
    let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : 0;
    dart.throw(new core.UnsupportedError.new("int.fromEnvironment can only be used as a const constructor"));
  }
  static parse(source, opts) {
    let radix = opts && 'radix' in opts ? opts.radix : null;
    let onError = opts && 'onError' in opts ? opts.onError : null;
    return _js_helper.Primitives.parseInt(source, radix, onError);
  }
  static tryParse(source, opts) {
    let radix = opts && 'radix' in opts ? opts.radix : null;
    return _js_helper.Primitives.parseInt(source, radix, C20 || CT.C20);
  }
};
dart.addTypeCaches(core.int);
dart.setLibraryUri(core.int, L1$);
_internal.CodeUnits = class CodeUnits extends _internal.UnmodifiableListBase$(core.int) {
  get length() {
    return this[_string$].length;
  }
  set length(value) {
    super.length = value;
  }
  _get(i) {
    return this[_string$][$codeUnitAt](i);
  }
  static stringOf(u) {
    return u[_string$];
  }
};
(_internal.CodeUnits.new = function(_string) {
  this[_string$] = _string;
  ;
}).prototype = _internal.CodeUnits.prototype;
dart.addTypeTests(_internal.CodeUnits);
dart.addTypeCaches(_internal.CodeUnits);
dart.setMethodSignature(_internal.CodeUnits, () => ({
  __proto__: dart.getMethods(_internal.CodeUnits.__proto__),
  _get: dart.fnType(core.int, [core.int]),
  [$_get]: dart.fnType(core.int, [core.int])
}));
dart.setGetterSignature(_internal.CodeUnits, () => ({
  __proto__: dart.getGetters(_internal.CodeUnits.__proto__),
  length: core.int,
  [$length]: core.int
}));
dart.setLibraryUri(_internal.CodeUnits, L10);
dart.setFieldSignature(_internal.CodeUnits, () => ({
  __proto__: dart.getFields(_internal.CodeUnits.__proto__),
  [_string$]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(_internal.CodeUnits, ['_get']);
dart.defineExtensionAccessors(_internal.CodeUnits, ['length']);
var name$5 = dart.privateName(_internal, "ExternalName.name");
_internal.ExternalName = class ExternalName extends core.Object {
  get name() {
    return this[name$5];
  }
  set name(value) {
    super.name = value;
  }
};
(_internal.ExternalName.new = function(name) {
  this[name$5] = name;
  ;
}).prototype = _internal.ExternalName.prototype;
dart.addTypeTests(_internal.ExternalName);
dart.addTypeCaches(_internal.ExternalName);
dart.setLibraryUri(_internal.ExternalName, L10);
dart.setFieldSignature(_internal.ExternalName, () => ({
  __proto__: dart.getFields(_internal.ExternalName.__proto__),
  name: dart.finalFieldType(core.String)
}));
var version$ = dart.privateName(_internal, "Since.version");
_internal.Since = class Since extends core.Object {
  get version() {
    return this[version$];
  }
  set version(value) {
    super.version = value;
  }
};
(_internal.Since.new = function(version) {
  this[version$] = version;
  ;
}).prototype = _internal.Since.prototype;
dart.addTypeTests(_internal.Since);
dart.addTypeCaches(_internal.Since);
dart.setLibraryUri(_internal.Since, L10);
dart.setFieldSignature(_internal.Since, () => ({
  __proto__: dart.getFields(_internal.Since.__proto__),
  version: dart.finalFieldType(core.String)
}));
_internal.HttpStatus = class HttpStatus extends core.Object {};
(_internal.HttpStatus.new = function() {
  ;
}).prototype = _internal.HttpStatus.prototype;
dart.addTypeTests(_internal.HttpStatus);
dart.addTypeCaches(_internal.HttpStatus);
dart.setLibraryUri(_internal.HttpStatus, L10);
dart.defineLazy(_internal.HttpStatus, {
  /*_internal.HttpStatus.continue__*/get continue__() {
    return 100;
  },
  /*_internal.HttpStatus.switchingProtocols*/get switchingProtocols() {
    return 101;
  },
  /*_internal.HttpStatus.processing*/get processing() {
    return 102;
  },
  /*_internal.HttpStatus.ok*/get ok() {
    return 200;
  },
  /*_internal.HttpStatus.created*/get created() {
    return 201;
  },
  /*_internal.HttpStatus.accepted*/get accepted() {
    return 202;
  },
  /*_internal.HttpStatus.nonAuthoritativeInformation*/get nonAuthoritativeInformation() {
    return 203;
  },
  /*_internal.HttpStatus.noContent*/get noContent() {
    return 204;
  },
  /*_internal.HttpStatus.resetContent*/get resetContent() {
    return 205;
  },
  /*_internal.HttpStatus.partialContent*/get partialContent() {
    return 206;
  },
  /*_internal.HttpStatus.multiStatus*/get multiStatus() {
    return 207;
  },
  /*_internal.HttpStatus.alreadyReported*/get alreadyReported() {
    return 208;
  },
  /*_internal.HttpStatus.imUsed*/get imUsed() {
    return 226;
  },
  /*_internal.HttpStatus.multipleChoices*/get multipleChoices() {
    return 300;
  },
  /*_internal.HttpStatus.movedPermanently*/get movedPermanently() {
    return 301;
  },
  /*_internal.HttpStatus.found*/get found() {
    return 302;
  },
  /*_internal.HttpStatus.movedTemporarily*/get movedTemporarily() {
    return 302;
  },
  /*_internal.HttpStatus.seeOther*/get seeOther() {
    return 303;
  },
  /*_internal.HttpStatus.notModified*/get notModified() {
    return 304;
  },
  /*_internal.HttpStatus.useProxy*/get useProxy() {
    return 305;
  },
  /*_internal.HttpStatus.temporaryRedirect*/get temporaryRedirect() {
    return 307;
  },
  /*_internal.HttpStatus.permanentRedirect*/get permanentRedirect() {
    return 308;
  },
  /*_internal.HttpStatus.badRequest*/get badRequest() {
    return 400;
  },
  /*_internal.HttpStatus.unauthorized*/get unauthorized() {
    return 401;
  },
  /*_internal.HttpStatus.paymentRequired*/get paymentRequired() {
    return 402;
  },
  /*_internal.HttpStatus.forbidden*/get forbidden() {
    return 403;
  },
  /*_internal.HttpStatus.notFound*/get notFound() {
    return 404;
  },
  /*_internal.HttpStatus.methodNotAllowed*/get methodNotAllowed() {
    return 405;
  },
  /*_internal.HttpStatus.notAcceptable*/get notAcceptable() {
    return 406;
  },
  /*_internal.HttpStatus.proxyAuthenticationRequired*/get proxyAuthenticationRequired() {
    return 407;
  },
  /*_internal.HttpStatus.requestTimeout*/get requestTimeout() {
    return 408;
  },
  /*_internal.HttpStatus.conflict*/get conflict() {
    return 409;
  },
  /*_internal.HttpStatus.gone*/get gone() {
    return 410;
  },
  /*_internal.HttpStatus.lengthRequired*/get lengthRequired() {
    return 411;
  },
  /*_internal.HttpStatus.preconditionFailed*/get preconditionFailed() {
    return 412;
  },
  /*_internal.HttpStatus.requestEntityTooLarge*/get requestEntityTooLarge() {
    return 413;
  },
  /*_internal.HttpStatus.requestUriTooLong*/get requestUriTooLong() {
    return 414;
  },
  /*_internal.HttpStatus.unsupportedMediaType*/get unsupportedMediaType() {
    return 415;
  },
  /*_internal.HttpStatus.requestedRangeNotSatisfiable*/get requestedRangeNotSatisfiable() {
    return 416;
  },
  /*_internal.HttpStatus.expectationFailed*/get expectationFailed() {
    return 417;
  },
  /*_internal.HttpStatus.misdirectedRequest*/get misdirectedRequest() {
    return 421;
  },
  /*_internal.HttpStatus.unprocessableEntity*/get unprocessableEntity() {
    return 422;
  },
  /*_internal.HttpStatus.locked*/get locked() {
    return 423;
  },
  /*_internal.HttpStatus.failedDependency*/get failedDependency() {
    return 424;
  },
  /*_internal.HttpStatus.upgradeRequired*/get upgradeRequired() {
    return 426;
  },
  /*_internal.HttpStatus.preconditionRequired*/get preconditionRequired() {
    return 428;
  },
  /*_internal.HttpStatus.tooManyRequests*/get tooManyRequests() {
    return 429;
  },
  /*_internal.HttpStatus.requestHeaderFieldsTooLarge*/get requestHeaderFieldsTooLarge() {
    return 431;
  },
  /*_internal.HttpStatus.connectionClosedWithoutResponse*/get connectionClosedWithoutResponse() {
    return 444;
  },
  /*_internal.HttpStatus.unavailableForLegalReasons*/get unavailableForLegalReasons() {
    return 451;
  },
  /*_internal.HttpStatus.clientClosedRequest*/get clientClosedRequest() {
    return 499;
  },
  /*_internal.HttpStatus.internalServerError*/get internalServerError() {
    return 500;
  },
  /*_internal.HttpStatus.notImplemented*/get notImplemented() {
    return 501;
  },
  /*_internal.HttpStatus.badGateway*/get badGateway() {
    return 502;
  },
  /*_internal.HttpStatus.serviceUnavailable*/get serviceUnavailable() {
    return 503;
  },
  /*_internal.HttpStatus.gatewayTimeout*/get gatewayTimeout() {
    return 504;
  },
  /*_internal.HttpStatus.httpVersionNotSupported*/get httpVersionNotSupported() {
    return 505;
  },
  /*_internal.HttpStatus.variantAlsoNegotiates*/get variantAlsoNegotiates() {
    return 506;
  },
  /*_internal.HttpStatus.insufficientStorage*/get insufficientStorage() {
    return 507;
  },
  /*_internal.HttpStatus.loopDetected*/get loopDetected() {
    return 508;
  },
  /*_internal.HttpStatus.notExtended*/get notExtended() {
    return 510;
  },
  /*_internal.HttpStatus.networkAuthenticationRequired*/get networkAuthenticationRequired() {
    return 511;
  },
  /*_internal.HttpStatus.networkConnectTimeoutError*/get networkConnectTimeoutError() {
    return 599;
  },
  /*_internal.HttpStatus.CONTINUE*/get CONTINUE() {
    return 100;
  },
  /*_internal.HttpStatus.SWITCHING_PROTOCOLS*/get SWITCHING_PROTOCOLS() {
    return 101;
  },
  /*_internal.HttpStatus.OK*/get OK() {
    return 200;
  },
  /*_internal.HttpStatus.CREATED*/get CREATED() {
    return 201;
  },
  /*_internal.HttpStatus.ACCEPTED*/get ACCEPTED() {
    return 202;
  },
  /*_internal.HttpStatus.NON_AUTHORITATIVE_INFORMATION*/get NON_AUTHORITATIVE_INFORMATION() {
    return 203;
  },
  /*_internal.HttpStatus.NO_CONTENT*/get NO_CONTENT() {
    return 204;
  },
  /*_internal.HttpStatus.RESET_CONTENT*/get RESET_CONTENT() {
    return 205;
  },
  /*_internal.HttpStatus.PARTIAL_CONTENT*/get PARTIAL_CONTENT() {
    return 206;
  },
  /*_internal.HttpStatus.MULTIPLE_CHOICES*/get MULTIPLE_CHOICES() {
    return 300;
  },
  /*_internal.HttpStatus.MOVED_PERMANENTLY*/get MOVED_PERMANENTLY() {
    return 301;
  },
  /*_internal.HttpStatus.FOUND*/get FOUND() {
    return 302;
  },
  /*_internal.HttpStatus.MOVED_TEMPORARILY*/get MOVED_TEMPORARILY() {
    return 302;
  },
  /*_internal.HttpStatus.SEE_OTHER*/get SEE_OTHER() {
    return 303;
  },
  /*_internal.HttpStatus.NOT_MODIFIED*/get NOT_MODIFIED() {
    return 304;
  },
  /*_internal.HttpStatus.USE_PROXY*/get USE_PROXY() {
    return 305;
  },
  /*_internal.HttpStatus.TEMPORARY_REDIRECT*/get TEMPORARY_REDIRECT() {
    return 307;
  },
  /*_internal.HttpStatus.BAD_REQUEST*/get BAD_REQUEST() {
    return 400;
  },
  /*_internal.HttpStatus.UNAUTHORIZED*/get UNAUTHORIZED() {
    return 401;
  },
  /*_internal.HttpStatus.PAYMENT_REQUIRED*/get PAYMENT_REQUIRED() {
    return 402;
  },
  /*_internal.HttpStatus.FORBIDDEN*/get FORBIDDEN() {
    return 403;
  },
  /*_internal.HttpStatus.NOT_FOUND*/get NOT_FOUND() {
    return 404;
  },
  /*_internal.HttpStatus.METHOD_NOT_ALLOWED*/get METHOD_NOT_ALLOWED() {
    return 405;
  },
  /*_internal.HttpStatus.NOT_ACCEPTABLE*/get NOT_ACCEPTABLE() {
    return 406;
  },
  /*_internal.HttpStatus.PROXY_AUTHENTICATION_REQUIRED*/get PROXY_AUTHENTICATION_REQUIRED() {
    return 407;
  },
  /*_internal.HttpStatus.REQUEST_TIMEOUT*/get REQUEST_TIMEOUT() {
    return 408;
  },
  /*_internal.HttpStatus.CONFLICT*/get CONFLICT() {
    return 409;
  },
  /*_internal.HttpStatus.GONE*/get GONE() {
    return 410;
  },
  /*_internal.HttpStatus.LENGTH_REQUIRED*/get LENGTH_REQUIRED() {
    return 411;
  },
  /*_internal.HttpStatus.PRECONDITION_FAILED*/get PRECONDITION_FAILED() {
    return 412;
  },
  /*_internal.HttpStatus.REQUEST_ENTITY_TOO_LARGE*/get REQUEST_ENTITY_TOO_LARGE() {
    return 413;
  },
  /*_internal.HttpStatus.REQUEST_URI_TOO_LONG*/get REQUEST_URI_TOO_LONG() {
    return 414;
  },
  /*_internal.HttpStatus.UNSUPPORTED_MEDIA_TYPE*/get UNSUPPORTED_MEDIA_TYPE() {
    return 415;
  },
  /*_internal.HttpStatus.REQUESTED_RANGE_NOT_SATISFIABLE*/get REQUESTED_RANGE_NOT_SATISFIABLE() {
    return 416;
  },
  /*_internal.HttpStatus.EXPECTATION_FAILED*/get EXPECTATION_FAILED() {
    return 417;
  },
  /*_internal.HttpStatus.UPGRADE_REQUIRED*/get UPGRADE_REQUIRED() {
    return 426;
  },
  /*_internal.HttpStatus.INTERNAL_SERVER_ERROR*/get INTERNAL_SERVER_ERROR() {
    return 500;
  },
  /*_internal.HttpStatus.NOT_IMPLEMENTED*/get NOT_IMPLEMENTED() {
    return 501;
  },
  /*_internal.HttpStatus.BAD_GATEWAY*/get BAD_GATEWAY() {
    return 502;
  },
  /*_internal.HttpStatus.SERVICE_UNAVAILABLE*/get SERVICE_UNAVAILABLE() {
    return 503;
  },
  /*_internal.HttpStatus.GATEWAY_TIMEOUT*/get GATEWAY_TIMEOUT() {
    return 504;
  },
  /*_internal.HttpStatus.HTTP_VERSION_NOT_SUPPORTED*/get HTTP_VERSION_NOT_SUPPORTED() {
    return 505;
  },
  /*_internal.HttpStatus.NETWORK_CONNECT_TIMEOUT_ERROR*/get NETWORK_CONNECT_TIMEOUT_ERROR() {
    return 599;
  }
}, true);
var _source$ = dart.privateName(_internal, "_source");
var _add = dart.privateName(async, "_add");
var _closeUnchecked = dart.privateName(async, "_closeUnchecked");
var _addError = dart.privateName(async, "_addError");
var _completeError = dart.privateName(async, "_completeError");
var _complete = dart.privateName(async, "_complete");
var _sink$ = dart.privateName(async, "_sink");
async.Stream$ = dart.generic(T => {
  var _AsBroadcastStreamOfTL = () => (_AsBroadcastStreamOfTL = dart.constFn(async._AsBroadcastStream$(T)))();
  var _WhereStreamOfTL = () => (_WhereStreamOfTL = dart.constFn(async._WhereStream$(T)))();
  var TLToNullN = () => (TLToNullN = dart.constFn(dart.fnType(core.Null, [T])))();
  var _HandleErrorStreamOfTL = () => (_HandleErrorStreamOfTL = dart.constFn(async._HandleErrorStream$(T)))();
  var StreamConsumerOfTL = () => (StreamConsumerOfTL = dart.constFn(async.StreamConsumer$(T)))();
  var TLAndTLToLTL = () => (TLAndTLToLTL = dart.constFn(dart.fnType(T, [T, T])))();
  var _FutureOfTL = () => (_FutureOfTL = dart.constFn(async._Future$(T)))();
  var VoidToTL = () => (VoidToTL = dart.constFn(dart.fnType(T, [])))();
  var JSArrayOfTL = () => (JSArrayOfTL = dart.constFn(_interceptors.JSArray$(T)))();
  var ListOfTL = () => (ListOfTL = dart.constFn(core.List$(T)))();
  var _FutureOfListLOfTL = () => (_FutureOfListLOfTL = dart.constFn(async._Future$(ListOfTL())))();
  var _HashSetOfTL = () => (_HashSetOfTL = dart.constFn(collection._HashSet$(T)))();
  var SetOfTL = () => (SetOfTL = dart.constFn(core.Set$(T)))();
  var _FutureOfSetLOfTL = () => (_FutureOfSetLOfTL = dart.constFn(async._Future$(SetOfTL())))();
  var _TakeStreamOfTL = () => (_TakeStreamOfTL = dart.constFn(async._TakeStream$(T)))();
  var _TakeWhileStreamOfTL = () => (_TakeWhileStreamOfTL = dart.constFn(async._TakeWhileStream$(T)))();
  var _SkipStreamOfTL = () => (_SkipStreamOfTL = dart.constFn(async._SkipStream$(T)))();
  var _SkipWhileStreamOfTL = () => (_SkipWhileStreamOfTL = dart.constFn(async._SkipWhileStream$(T)))();
  var _DistinctStreamOfTL = () => (_DistinctStreamOfTL = dart.constFn(async._DistinctStream$(T)))();
  var VoidToLTL = () => (VoidToLTL = dart.constFn(dart.fnType(T, [])))();
  var TLTovoid = () => (TLTovoid = dart.constFn(dart.fnType(dart.void, [T])))();
  var EventSinkOfTL = () => (EventSinkOfTL = dart.constFn(async.EventSink$(T)))();
  var _ControllerEventSinkWrapperOfTL = () => (_ControllerEventSinkWrapperOfTL = dart.constFn(async._ControllerEventSinkWrapper$(T)))();
  var _SyncBroadcastStreamControllerOfTL = () => (_SyncBroadcastStreamControllerOfTL = dart.constFn(async._SyncBroadcastStreamController$(T)))();
  var _SyncStreamControllerOfTL = () => (_SyncStreamControllerOfTL = dart.constFn(async._SyncStreamController$(T)))();
  var _StreamControllerBaseOfTL = () => (_StreamControllerBaseOfTL = dart.constFn(async._StreamControllerBase$(T)))();
  class Stream extends core.Object {
    static value(value) {
      let t13;
      return (t13 = new (async._AsyncStreamController$(T)).new(null, null, null, null), t13[_add](value), t13[_closeUnchecked](), t13).stream;
    }
    static error(error, stackTrace = null) {
      let t14, t13;
      core.ArgumentError.checkNotNull(core.Object, error, "error");
      return (t13 = new (async._AsyncStreamController$(T)).new(null, null, null, null), t13[_addError](error, (t14 = stackTrace, t14 == null ? async.AsyncError.defaultStackTrace(error) : t14)), t13[_closeUnchecked](), t13).stream;
    }
    static fromFuture(future) {
      let controller = new (async._SyncStreamController$(T)).new(null, null, null, null);
      future.then(core.Null, dart.fn(value => {
        controller[_add](value);
        controller[_closeUnchecked]();
      }, dart.fnType(core.Null, [T])), {onError: dart.fn((error, stackTrace) => {
          controller[_addError](error, core.StackTrace.as(stackTrace));
          controller[_closeUnchecked]();
        }, dynamicAnddynamicToNullN())});
      return controller.stream;
    }
    static fromFutures(futures) {
      let controller = new (async._SyncStreamController$(T)).new(null, null, null, null);
      let count = 0;
      let onValue = dart.fn(value => {
        if (!dart.test(controller.isClosed)) {
          controller[_add](value);
          if ((count = count - 1) === 0) controller[_closeUnchecked]();
        }
      }, dart.fnType(core.Null, [T]));
      let onError = dart.fn((error, stack) => {
        if (!dart.test(controller.isClosed)) {
          controller[_addError](error, stack);
          if ((count = count - 1) === 0) controller[_closeUnchecked]();
        }
      }, dynamicAndStackTraceLToNullN());
      for (let future of futures) {
        count = count + 1;
        future.then(core.Null, onValue, {onError: onError});
      }
      if (count === 0) async.scheduleMicrotask(dart.bind(controller, 'close'));
      return controller.stream;
    }
    static fromIterable(elements) {
      return new (async._GeneratedStreamImpl$(T)).new(dart.fn(() => new (async._IterablePendingEvents$(T)).new(elements), dart.fnType(async._IterablePendingEvents$(T), [])));
    }
    static periodic(period, computation = null) {
      let timer = null;
      let computationCount = 0;
      let controller = null;
      let watch = new core.Stopwatch.new();
      function sendEvent() {
        let t13;
        watch.reset();
        let data = null;
        if (computation != null) {
          try {
            data = computation((t13 = computationCount, computationCount = t13 + 1, t13));
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            controller.addError(e, s);
            return;
          }
        }
        controller.add(data);
      }
      dart.fn(sendEvent, VoidTovoid());
      function startPeriodicTimer() {
        if (!(timer == null)) dart.assertFailed(null, L11, 284, 14, "timer == null");
        timer = async.Timer.periodic(period, dart.fn(timer => {
          sendEvent();
        }, TimerLToNullN()));
      }
      dart.fn(startPeriodicTimer, VoidTovoid());
      controller = async.StreamController$(T).new({sync: true, onListen: dart.fn(() => {
          watch.start();
          startPeriodicTimer();
        }, VoidToNullN()), onPause: dart.fn(() => {
          timer.cancel();
          timer = null;
          watch.stop();
        }, VoidToNullN()), onResume: dart.fn(() => {
          if (!(timer == null)) dart.assertFailed(null, L11, 302, 18, "timer == null");
          let elapsed = watch.elapsed;
          watch.start();
          timer = async.Timer.new(period['-'](elapsed), dart.fn(() => {
            timer = null;
            startPeriodicTimer();
            sendEvent();
          }, VoidToNullN()));
        }, VoidToNullN()), onCancel: dart.fn(() => {
          if (timer != null) timer.cancel();
          timer = null;
          return async.Future._nullFuture;
        }, VoidTo_FutureLOfNullN())});
      return controller.stream;
    }
    static eventTransformed(source, mapSink) {
      return new (async._BoundSinkStream$(dart.dynamic, T)).new(source, mapSink);
    }
    static castFrom(S, T, source) {
      return new (_internal.CastStream$(S, T)).new(source);
    }
    get isBroadcast() {
      return false;
    }
    asBroadcastStream(opts) {
      let onListen = opts && 'onListen' in opts ? opts.onListen : null;
      let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
      return new (_AsBroadcastStreamOfTL()).new(this, onListen, onCancel);
    }
    where(test) {
      return new (_WhereStreamOfTL()).new(this, test);
    }
    map(S, convert) {
      return new (async._MapStream$(T, S)).new(this, convert);
    }
    asyncMap(E, convert) {
      let controller = null;
      let subscription = null;
      const onListen = () => {
        let add = dart.bind(controller, 'add');
        if (!(async._StreamController$(E).is(controller) || async._BroadcastStreamController.is(controller))) dart.assertFailed(null, L11, 508, 14, "controller is _StreamController<E> ||\n          controller is _BroadcastStreamController");
        let addError = dart.bind(controller, _addError);
        subscription = this.listen(dart.fn(event => {
          let newValue = null;
          try {
            newValue = convert(event);
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            controller.addError(e, s);
            return;
          }
          if (async.Future$(E).is(newValue)) {
            subscription.pause();
            newValue.then(dart.void, add, {onError: addError}).whenComplete(dart.bind(subscription, 'resume'));
          } else {
            controller.add(E.as(newValue));
          }
        }, TLToNullN()), {onError: addError, onDone: dart.bind(controller, 'close')});
      };
      dart.fn(onListen, VoidTovoid());
      if (dart.test(this.isBroadcast)) {
        controller = async._StreamControllerBase$(E).as(async.StreamController$(E).broadcast({onListen: onListen, onCancel: dart.fn(() => {
            subscription.cancel();
          }, VoidToNullN()), sync: true}));
      } else {
        controller = async._StreamControllerBase$(E).as(async.StreamController$(E).new({onListen: onListen, onPause: dart.fn(() => {
            subscription.pause();
          }, VoidToNullN()), onResume: dart.fn(() => {
            subscription.resume();
          }, VoidToNullN()), onCancel: dart.fn(() => subscription.cancel(), VoidToFutureLOfvoid()), sync: true}));
      }
      return controller.stream;
    }
    asyncExpand(E, convert) {
      let controller = null;
      let subscription = null;
      const onListen = () => {
        if (!(async._StreamController.is(controller) || async._BroadcastStreamController.is(controller))) dart.assertFailed(null, L11, 574, 14, "controller is _StreamController ||\n          controller is _BroadcastStreamController");
        subscription = this.listen(dart.fn(event => {
          let newStream = null;
          try {
            newStream = convert(event);
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            controller.addError(e, s);
            return;
          }
          if (newStream != null) {
            subscription.pause();
            controller.addStream(newStream).whenComplete(dart.bind(subscription, 'resume'));
          }
        }, TLToNullN()), {onError: dart.bind(controller, _addError), onDone: dart.bind(controller, 'close')});
      };
      dart.fn(onListen, VoidTovoid());
      if (dart.test(this.isBroadcast)) {
        controller = async._StreamControllerBase$(E).as(async.StreamController$(E).broadcast({onListen: onListen, onCancel: dart.fn(() => {
            subscription.cancel();
          }, VoidToNullN()), sync: true}));
      } else {
        controller = async._StreamControllerBase$(E).as(async.StreamController$(E).new({onListen: onListen, onPause: dart.fn(() => {
            subscription.pause();
          }, VoidToNullN()), onResume: dart.fn(() => {
            subscription.resume();
          }, VoidToNullN()), onCancel: dart.fn(() => subscription.cancel(), VoidToFutureLOfvoid()), sync: true}));
      }
      return controller.stream;
    }
    handleError(onError, opts) {
      let test = opts && 'test' in opts ? opts.test : null;
      return new (_HandleErrorStreamOfTL()).new(this, onError, test);
    }
    expand(S, convert) {
      return new (async._ExpandStream$(T, S)).new(this, convert);
    }
    pipe(streamConsumer) {
      StreamConsumerOfTL().as(streamConsumer);
      return streamConsumer.addStream(this).then(dart.dynamic, dart.fn(_ => streamConsumer.close(), dynamicToFutureL()));
    }
    transform(S, streamTransformer) {
      async.StreamTransformer$(T, S).as(streamTransformer);
      return streamTransformer.bind(this);
    }
    reduce(combine) {
      TLAndTLToLTL().as(combine);
      let result = new (_FutureOfTL()).new();
      let seenFirst = false;
      let value = null;
      let subscription = null;
      subscription = this.listen(dart.fn(element => {
        if (seenFirst) {
          async._runUserCode(T, dart.fn(() => combine(value, element), VoidToTL()), dart.fn(newValue => {
            value = newValue;
          }, TLToNullN()), async._cancelAndErrorClosure(subscription, result));
        } else {
          value = element;
          seenFirst = true;
        }
      }, TLToNullN()), {onError: dart.bind(result, _completeError), onDone: dart.fn(() => {
          if (!seenFirst) {
            try {
              dart.throw(_internal.IterableElementError.noElement());
            } catch (e$) {
              let e = dart.getThrown(e$);
              let s = dart.stackTrace(e$);
              async._completeWithErrorCallback(result, e, s);
            }
          } else {
            result[_complete](value);
          }
        }, VoidToNullN()), cancelOnError: true});
      return result;
    }
    fold(S, initialValue, combine) {
      let result = new (async._Future$(S)).new();
      let value = initialValue;
      let subscription = null;
      subscription = this.listen(dart.fn(element => {
        async._runUserCode(S, dart.fn(() => combine(value, element), dart.fnType(S, [])), dart.fn(newValue => {
          value = newValue;
        }, dart.fnType(core.Null, [S])), async._cancelAndErrorClosure(subscription, result));
      }, TLToNullN()), {onError: dart.bind(result, _completeError), onDone: dart.fn(() => {
          result[_complete](value);
        }, VoidToNullN()), cancelOnError: true});
      return result;
    }
    join(separator = "") {
      let result = new (_FutureOfStringL()).new();
      let buffer = new core.StringBuffer.new();
      let subscription = null;
      let first = true;
      subscription = this.listen(dart.fn(element => {
        if (!first) {
          buffer.write(separator);
        }
        first = false;
        try {
          buffer.write(element);
        } catch (e$) {
          let e = dart.getThrown(e$);
          let s = dart.stackTrace(e$);
          async._cancelAndErrorWithReplacement(subscription, result, e, s);
        }
      }, TLToNullN()), {onError: dart.bind(result, _completeError), onDone: dart.fn(() => {
          result[_complete](buffer.toString());
        }, VoidToNullN()), cancelOnError: true});
      return result;
    }
    contains(needle) {
      let future = new (_FutureOfboolL()).new();
      let subscription = null;
      subscription = this.listen(dart.fn(element => {
        async._runUserCode(core.bool, dart.fn(() => dart.equals(element, needle), VoidToboolL()), dart.fn(isMatch => {
          if (dart.test(isMatch)) {
            async._cancelAndValue(subscription, future, true);
          }
        }, boolLToNullN()), async._cancelAndErrorClosure(subscription, future));
      }, TLToNullN()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
          future[_complete](false);
        }, VoidToNullN()), cancelOnError: true});
      return future;
    }
    forEach(action) {
      let future = new async._Future.new();
      let subscription = null;
      subscription = this.listen(dart.fn(element => {
        async._runUserCode(dart.dynamic, dart.fn(() => action(element), VoidTovoid()), dart.fn(_ => {
        }, dynamicToNullN()), async._cancelAndErrorClosure(subscription, future));
      }, TLToNullN()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
          future[_complete](null);
        }, VoidToNullN()), cancelOnError: true});
      return future;
    }
    every(test) {
      let future = new (_FutureOfboolL()).new();
      let subscription = null;
      subscription = this.listen(dart.fn(element => {
        async._runUserCode(core.bool, dart.fn(() => test(element), VoidToboolL()), dart.fn(isMatch => {
          if (!dart.test(isMatch)) {
            async._cancelAndValue(subscription, future, false);
          }
        }, boolLToNullN()), async._cancelAndErrorClosure(subscription, future));
      }, TLToNullN()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
          future[_complete](true);
        }, VoidToNullN()), cancelOnError: true});
      return future;
    }
    any(test) {
      let future = new (_FutureOfboolL()).new();
      let subscription = null;
      subscription = this.listen(dart.fn(element => {
        async._runUserCode(core.bool, dart.fn(() => test(element), VoidToboolL()), dart.fn(isMatch => {
          if (dart.test(isMatch)) {
            async._cancelAndValue(subscription, future, true);
          }
        }, boolLToNullN()), async._cancelAndErrorClosure(subscription, future));
      }, TLToNullN()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
          future[_complete](false);
        }, VoidToNullN()), cancelOnError: true});
      return future;
    }
    get length() {
      let future = new (_FutureOfintL()).new();
      let count = 0;
      this.listen(dart.fn(_ => {
        count = count + 1;
      }, TLToNullN()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
          future[_complete](count);
        }, VoidToNullN()), cancelOnError: true});
      return future;
    }
    get isEmpty() {
      let future = new (_FutureOfboolL()).new();
      let subscription = null;
      subscription = this.listen(dart.fn(_ => {
        async._cancelAndValue(subscription, future, false);
      }, TLToNullN()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
          future[_complete](true);
        }, VoidToNullN()), cancelOnError: true});
      return future;
    }
    cast(R) {
      return async.Stream.castFrom(T, R, this);
    }
    toList() {
      let result = JSArrayOfTL().of([]);
      let future = new (_FutureOfListLOfTL()).new();
      this.listen(dart.fn(data => {
        result[$add](data);
      }, TLToNullN()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
          future[_complete](result);
        }, VoidToNullN()), cancelOnError: true});
      return future;
    }
    toSet() {
      let result = new (_HashSetOfTL()).new();
      let future = new (_FutureOfSetLOfTL()).new();
      this.listen(dart.fn(data => {
        result.add(data);
      }, TLToNullN()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
          future[_complete](result);
        }, VoidToNullN()), cancelOnError: true});
      return future;
    }
    drain(E, futureValue = null) {
      return this.listen(null, {cancelOnError: true}).asFuture(E, futureValue);
    }
    take(count) {
      return new (_TakeStreamOfTL()).new(this, count);
    }
    takeWhile(test) {
      return new (_TakeWhileStreamOfTL()).new(this, test);
    }
    skip(count) {
      return new (_SkipStreamOfTL()).new(this, count);
    }
    skipWhile(test) {
      return new (_SkipWhileStreamOfTL()).new(this, test);
    }
    distinct(equals = null) {
      return new (_DistinctStreamOfTL()).new(this, equals);
    }
    get first() {
      let future = new (_FutureOfTL()).new();
      let subscription = null;
      subscription = this.listen(dart.fn(value => {
        async._cancelAndValue(subscription, future, value);
      }, TLToNullN()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
          try {
            dart.throw(_internal.IterableElementError.noElement());
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            async._completeWithErrorCallback(future, e, s);
          }
        }, VoidToNullN()), cancelOnError: true});
      return future;
    }
    get last() {
      let future = new (_FutureOfTL()).new();
      let result = null;
      let foundResult = false;
      this.listen(dart.fn(value => {
        foundResult = true;
        result = value;
      }, TLToNullN()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
          if (foundResult) {
            future[_complete](result);
            return;
          }
          try {
            dart.throw(_internal.IterableElementError.noElement());
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            async._completeWithErrorCallback(future, e, s);
          }
        }, VoidToNullN()), cancelOnError: true});
      return future;
    }
    get single() {
      let future = new (_FutureOfTL()).new();
      let result = null;
      let foundResult = false;
      let subscription = null;
      subscription = this.listen(dart.fn(value => {
        if (foundResult) {
          try {
            dart.throw(_internal.IterableElementError.tooMany());
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            async._cancelAndErrorWithReplacement(subscription, future, e, s);
          }
          return;
        }
        foundResult = true;
        result = value;
      }, TLToNullN()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
          if (foundResult) {
            future[_complete](result);
            return;
          }
          try {
            dart.throw(_internal.IterableElementError.noElement());
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            async._completeWithErrorCallback(future, e, s);
          }
        }, VoidToNullN()), cancelOnError: true});
      return future;
    }
    firstWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLTL().as(orElse);
      let future = new (_FutureOfTL()).new();
      let subscription = null;
      subscription = this.listen(dart.fn(value => {
        async._runUserCode(core.bool, dart.fn(() => test(value), VoidToboolL()), dart.fn(isMatch => {
          if (dart.test(isMatch)) {
            async._cancelAndValue(subscription, future, value);
          }
        }, boolLToNullN()), async._cancelAndErrorClosure(subscription, future));
      }, TLToNullN()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
          if (orElse != null) {
            async._runUserCode(T, orElse, dart.bind(future, _complete), dart.bind(future, _completeError));
            return;
          }
          try {
            dart.throw(_internal.IterableElementError.noElement());
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            async._completeWithErrorCallback(future, e, s);
          }
        }, VoidToNullN()), cancelOnError: true});
      return future;
    }
    lastWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLTL().as(orElse);
      let future = new (_FutureOfTL()).new();
      let result = null;
      let foundResult = false;
      let subscription = null;
      subscription = this.listen(dart.fn(value => {
        async._runUserCode(core.bool, dart.fn(() => true[$_equals](test(value)), VoidToboolL()), dart.fn(isMatch => {
          if (dart.test(isMatch)) {
            foundResult = true;
            result = value;
          }
        }, boolLToNullN()), async._cancelAndErrorClosure(subscription, future));
      }, TLToNullN()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
          if (foundResult) {
            future[_complete](result);
            return;
          }
          if (orElse != null) {
            async._runUserCode(T, orElse, dart.bind(future, _complete), dart.bind(future, _completeError));
            return;
          }
          try {
            dart.throw(_internal.IterableElementError.noElement());
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            async._completeWithErrorCallback(future, e, s);
          }
        }, VoidToNullN()), cancelOnError: true});
      return future;
    }
    singleWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLTL().as(orElse);
      let future = new (_FutureOfTL()).new();
      let result = null;
      let foundResult = false;
      let subscription = null;
      subscription = this.listen(dart.fn(value => {
        async._runUserCode(core.bool, dart.fn(() => true[$_equals](test(value)), VoidToboolL()), dart.fn(isMatch => {
          if (dart.test(isMatch)) {
            if (foundResult) {
              try {
                dart.throw(_internal.IterableElementError.tooMany());
              } catch (e$) {
                let e = dart.getThrown(e$);
                let s = dart.stackTrace(e$);
                async._cancelAndErrorWithReplacement(subscription, future, e, s);
              }
              return;
            }
            foundResult = true;
            result = value;
          }
        }, boolLToNullN()), async._cancelAndErrorClosure(subscription, future));
      }, TLToNullN()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
          if (foundResult) {
            future[_complete](result);
            return;
          }
          try {
            if (orElse != null) {
              async._runUserCode(T, orElse, dart.bind(future, _complete), dart.bind(future, _completeError));
              return;
            }
            dart.throw(_internal.IterableElementError.noElement());
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            async._completeWithErrorCallback(future, e, s);
          }
        }, VoidToNullN()), cancelOnError: true});
      return future;
    }
    elementAt(index) {
      core.ArgumentError.checkNotNull(core.int, index, "index");
      core.RangeError.checkNotNegative(index, "index");
      let future = new (_FutureOfTL()).new();
      let subscription = null;
      let elementIndex = 0;
      subscription = this.listen(dart.fn(value => {
        if (index === elementIndex) {
          async._cancelAndValue(subscription, future, value);
          return;
        }
        elementIndex = elementIndex + 1;
      }, TLToNullN()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
          future[_completeError](new core.IndexError.new(index, this, "index", null, elementIndex));
        }, VoidToNullN()), cancelOnError: true});
      return future;
    }
    timeout(timeLimit, opts) {
      let onTimeout = opts && 'onTimeout' in opts ? opts.onTimeout : null;
      let controller = null;
      let subscription = null;
      let timer = null;
      let zone = null;
      let timeout = null;
      function onData(event) {
        timer.cancel();
        timer = zone.createTimer(timeLimit, timeout);
        controller.add(event);
      }
      dart.fn(onData, TLTovoid());
      function onError(error, stackTrace) {
        timer.cancel();
        if (!(async._StreamController.is(controller) || async._BroadcastStreamController.is(controller))) dart.assertFailed(null, L11, 1580, 14, "controller is _StreamController ||\n          controller is _BroadcastStreamController");
        controller[_addError](error, stackTrace);
        timer = zone.createTimer(timeLimit, timeout);
      }
      dart.fn(onError, dynamicAndStackTraceLTovoid());
      function onDone() {
        timer.cancel();
        controller.close();
      }
      dart.fn(onDone, VoidTovoid());
      const onListen = () => {
        zone = async.Zone.current;
        if (onTimeout == null) {
          timeout = dart.fn(() => {
            controller.addError(new async.TimeoutException.new("No stream event", timeLimit), null);
          }, VoidToNullN());
        } else {
          let registeredOnTimeout = zone.registerUnaryCallback(dart.dynamic, EventSinkOfTL(), onTimeout);
          let wrapper = new (_ControllerEventSinkWrapperOfTL()).new(null);
          timeout = dart.fn(() => {
            wrapper[_sink$] = controller;
            zone.runUnaryGuarded(_ControllerEventSinkWrapperOfTL(), registeredOnTimeout, wrapper);
            wrapper[_sink$] = null;
          }, VoidToNullN());
        }
        subscription = this.listen(onData, {onError: onError, onDone: onDone});
        timer = zone.createTimer(timeLimit, timeout);
      };
      dart.fn(onListen, VoidTovoid());
      function onCancel() {
        timer.cancel();
        let result = subscription.cancel();
        subscription = null;
        return result;
      }
      dart.fn(onCancel, VoidToFutureL());
      controller = _StreamControllerBaseOfTL().as(dart.test(this.isBroadcast) ? new (_SyncBroadcastStreamControllerOfTL()).new(onListen, onCancel) : new (_SyncStreamControllerOfTL()).new(onListen, dart.fn(() => {
        timer.cancel();
        subscription.pause();
      }, VoidToNullN()), dart.fn(() => {
        subscription.resume();
        timer = zone.createTimer(timeLimit, timeout);
      }, VoidToNullN()), onCancel));
      return controller.stream;
    }
  }
  (Stream.new = function() {
    ;
  }).prototype = Stream.prototype;
  (Stream._internal = function() {
    ;
  }).prototype = Stream.prototype;
  dart.addTypeTests(Stream);
  Stream.prototype[dart.isStream] = true;
  dart.addTypeCaches(Stream);
  dart.setMethodSignature(Stream, () => ({
    __proto__: dart.getMethods(Stream.__proto__),
    asBroadcastStream: dart.fnType(async.Stream$(T), [], {onCancel: dart.fnType(dart.void, [async.StreamSubscription$(T)]), onListen: dart.fnType(dart.void, [async.StreamSubscription$(T)])}, {}),
    where: dart.fnType(async.Stream$(T), [dart.fnType(core.bool, [T])]),
    map: dart.gFnType(S => [async.Stream$(S), [dart.fnType(S, [T])]]),
    asyncMap: dart.gFnType(E => [async.Stream$(E), [dart.fnType(async.FutureOr$(E), [T])]]),
    asyncExpand: dart.gFnType(E => [async.Stream$(E), [dart.fnType(async.Stream$(E), [T])]]),
    handleError: dart.fnType(async.Stream$(T), [core.Function], {test: dart.fnType(core.bool, [dart.dynamic])}, {}),
    expand: dart.gFnType(S => [async.Stream$(S), [dart.fnType(core.Iterable$(S), [T])]]),
    pipe: dart.fnType(async.Future, [core.Object]),
    transform: dart.gFnType(S => [async.Stream$(S), [core.Object]]),
    reduce: dart.fnType(async.Future$(T), [core.Object]),
    fold: dart.gFnType(S => [async.Future$(S), [S, dart.fnType(S, [S, T])]]),
    join: dart.fnType(async.Future$(core.String), [], [core.String]),
    contains: dart.fnType(async.Future$(core.bool), [core.Object]),
    forEach: dart.fnType(async.Future, [dart.fnType(dart.void, [T])]),
    every: dart.fnType(async.Future$(core.bool), [dart.fnType(core.bool, [T])]),
    any: dart.fnType(async.Future$(core.bool), [dart.fnType(core.bool, [T])]),
    cast: dart.gFnType(R => [async.Stream$(R), []]),
    toList: dart.fnType(async.Future$(core.List$(T)), []),
    toSet: dart.fnType(async.Future$(core.Set$(T)), []),
    drain: dart.gFnType(E => [async.Future$(E), [], [E]]),
    take: dart.fnType(async.Stream$(T), [core.int]),
    takeWhile: dart.fnType(async.Stream$(T), [dart.fnType(core.bool, [T])]),
    skip: dart.fnType(async.Stream$(T), [core.int]),
    skipWhile: dart.fnType(async.Stream$(T), [dart.fnType(core.bool, [T])]),
    distinct: dart.fnType(async.Stream$(T), [], [dart.fnType(core.bool, [T, T])]),
    firstWhere: dart.fnType(async.Future$(T), [dart.fnType(core.bool, [T])], {orElse: core.Object}, {}),
    lastWhere: dart.fnType(async.Future$(T), [dart.fnType(core.bool, [T])], {orElse: core.Object}, {}),
    singleWhere: dart.fnType(async.Future$(T), [dart.fnType(core.bool, [T])], {orElse: core.Object}, {}),
    elementAt: dart.fnType(async.Future$(T), [core.int]),
    timeout: dart.fnType(async.Stream$(T), [core.Duration], {onTimeout: dart.fnType(dart.void, [async.EventSink$(T)])}, {})
  }));
  dart.setGetterSignature(Stream, () => ({
    __proto__: dart.getGetters(Stream.__proto__),
    isBroadcast: core.bool,
    length: async.Future$(core.int),
    isEmpty: async.Future$(core.bool),
    first: async.Future$(T),
    last: async.Future$(T),
    single: async.Future$(T)
  }));
  dart.setLibraryUri(Stream, L12);
  return Stream;
});
async.Stream = async.Stream$();
dart.addTypeTests(async.Stream, dart.isStream);
const _is_CastStream_default = Symbol('_is_CastStream_default');
_internal.CastStream$ = dart.generic((S, T) => {
  var CastStreamSubscriptionOfSL$TL = () => (CastStreamSubscriptionOfSL$TL = dart.constFn(_internal.CastStreamSubscription$(S, T)))();
  class CastStream extends async.Stream$(T) {
    get isBroadcast() {
      return this[_source$].isBroadcast;
    }
    listen(onData, opts) {
      let t13;
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      t13 = new (CastStreamSubscriptionOfSL$TL()).new(this[_source$].listen(null, {onDone: onDone, cancelOnError: cancelOnError}));
      t13.onData(onData);
      t13.onError(onError);
      return t13;
    }
    cast(R) {
      return new (_internal.CastStream$(S, R)).new(this[_source$]);
    }
  }
  (CastStream.new = function(_source) {
    this[_source$] = _source;
    CastStream.__proto__.new.call(this);
    ;
  }).prototype = CastStream.prototype;
  dart.addTypeTests(CastStream);
  CastStream.prototype[_is_CastStream_default] = true;
  dart.addTypeCaches(CastStream);
  dart.setMethodSignature(CastStream, () => ({
    __proto__: dart.getMethods(CastStream.__proto__),
    listen: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {}),
    cast: dart.gFnType(R => [async.Stream$(R), []])
  }));
  dart.setLibraryUri(CastStream, L10);
  dart.setFieldSignature(CastStream, () => ({
    __proto__: dart.getFields(CastStream.__proto__),
    [_source$]: dart.finalFieldType(async.Stream$(S))
  }));
  return CastStream;
});
_internal.CastStream = _internal.CastStream$();
dart.addTypeTests(_internal.CastStream, _is_CastStream_default);
var _zone = dart.privateName(_internal, "_zone");
var _handleData = dart.privateName(_internal, "_handleData");
var _handleError = dart.privateName(_internal, "_handleError");
var _onData = dart.privateName(_internal, "_onData");
const _is_CastStreamSubscription_default = Symbol('_is_CastStreamSubscription_default');
_internal.CastStreamSubscription$ = dart.generic((S, T) => {
  class CastStreamSubscription extends core.Object {
    cancel() {
      return this[_source$].cancel();
    }
    onData(handleData) {
      this[_handleData] = handleData == null ? null : this[_zone].registerUnaryCallback(dart.dynamic, T, handleData);
    }
    onError(handleError) {
      this[_source$].onError(handleError);
      if (handleError == null) {
        this[_handleError] = null;
      } else if (NullNAndNullNToLdynamic().is(handleError)) {
        this[_handleError] = this[_zone].registerBinaryCallback(dart.dynamic, core.Object, core.StackTrace, ObjectLAndStackTraceLToLdynamic().as(handleError));
      } else {
        this[_handleError] = this[_zone].registerUnaryCallback(dart.dynamic, core.Object, ObjectLToLdynamic().as(handleError));
      }
    }
    onDone(handleDone) {
      this[_source$].onDone(handleDone);
    }
    [_onData](data) {
      S.as(data);
      if (this[_handleData] == null) return;
      let targetData = null;
      try {
        targetData = T.as(data);
      } catch (e) {
        let error = dart.getThrown(e);
        let stack = dart.stackTrace(e);
        if (this[_handleError] == null) {
          this[_zone].handleUncaughtError(error, stack);
        } else if (NullNAndNullNToLdynamic().is(this[_handleError])) {
          this[_zone].runBinaryGuarded(dart.dynamic, core.StackTrace, dynamicAndStackTraceLToLvoid().as(this[_handleError]), error, stack);
        } else {
          this[_zone].runUnaryGuarded(dart.dynamic, dynamicToLvoid().as(this[_handleError]), error);
        }
        return;
      }
      this[_zone].runUnaryGuarded(T, this[_handleData], targetData);
    }
    pause(resumeSignal = null) {
      this[_source$].pause(resumeSignal);
    }
    resume() {
      this[_source$].resume();
    }
    get isPaused() {
      return this[_source$].isPaused;
    }
    asFuture(E, futureValue = null) {
      return this[_source$].asFuture(E, futureValue);
    }
  }
  (CastStreamSubscription.new = function(_source) {
    this[_zone] = async.Zone.current;
    this[_handleData] = null;
    this[_handleError] = null;
    this[_source$] = _source;
    this[_source$].onData(dart.bind(this, _onData));
  }).prototype = CastStreamSubscription.prototype;
  CastStreamSubscription.prototype[dart.isStreamSubscription] = true;
  dart.addTypeTests(CastStreamSubscription);
  CastStreamSubscription.prototype[_is_CastStreamSubscription_default] = true;
  dart.addTypeCaches(CastStreamSubscription);
  CastStreamSubscription[dart.implements] = () => [async.StreamSubscription$(T)];
  dart.setMethodSignature(CastStreamSubscription, () => ({
    __proto__: dart.getMethods(CastStreamSubscription.__proto__),
    cancel: dart.fnType(async.Future, []),
    onData: dart.fnType(dart.void, [dart.fnType(dart.void, [T])]),
    onError: dart.fnType(dart.void, [core.Function]),
    onDone: dart.fnType(dart.void, [dart.fnType(dart.void, [])]),
    [_onData]: dart.fnType(dart.void, [core.Object]),
    pause: dart.fnType(dart.void, [], [async.Future]),
    resume: dart.fnType(dart.void, []),
    asFuture: dart.gFnType(E => [async.Future$(E), [], [E]])
  }));
  dart.setGetterSignature(CastStreamSubscription, () => ({
    __proto__: dart.getGetters(CastStreamSubscription.__proto__),
    isPaused: core.bool
  }));
  dart.setLibraryUri(CastStreamSubscription, L10);
  dart.setFieldSignature(CastStreamSubscription, () => ({
    __proto__: dart.getFields(CastStreamSubscription.__proto__),
    [_source$]: dart.finalFieldType(async.StreamSubscription$(S)),
    [_zone]: dart.finalFieldType(async.Zone),
    [_handleData]: dart.fieldType(dart.fnType(dart.void, [T])),
    [_handleError]: dart.fieldType(core.Function)
  }));
  return CastStreamSubscription;
});
_internal.CastStreamSubscription = _internal.CastStreamSubscription$();
dart.addTypeTests(_internal.CastStreamSubscription, _is_CastStreamSubscription_default);
const _is_StreamTransformerBase_default = Symbol('_is_StreamTransformerBase_default');
async.StreamTransformerBase$ = dart.generic((S, T) => {
  class StreamTransformerBase extends core.Object {
    cast(RS, RT) {
      return async.StreamTransformer.castFrom(S, T, RS, RT, this);
    }
  }
  (StreamTransformerBase.new = function() {
    ;
  }).prototype = StreamTransformerBase.prototype;
  dart.addTypeTests(StreamTransformerBase);
  StreamTransformerBase.prototype[_is_StreamTransformerBase_default] = true;
  dart.addTypeCaches(StreamTransformerBase);
  StreamTransformerBase[dart.implements] = () => [async.StreamTransformer$(S, T)];
  dart.setMethodSignature(StreamTransformerBase, () => ({
    __proto__: dart.getMethods(StreamTransformerBase.__proto__),
    cast: dart.gFnType((RS, RT) => [async.StreamTransformer$(RS, RT), []])
  }));
  dart.setLibraryUri(StreamTransformerBase, L12);
  return StreamTransformerBase;
});
async.StreamTransformerBase = async.StreamTransformerBase$();
dart.addTypeTests(async.StreamTransformerBase, _is_StreamTransformerBase_default);
const _is_CastStreamTransformer_default = Symbol('_is_CastStreamTransformer_default');
_internal.CastStreamTransformer$ = dart.generic((SS, ST, TS, TT) => {
  var StreamOfTSL = () => (StreamOfTSL = dart.constFn(async.Stream$(TS)))();
  class CastStreamTransformer extends async.StreamTransformerBase$(TS, TT) {
    cast(RS, RT) {
      return new (_internal.CastStreamTransformer$(SS, ST, RS, RT)).new(this[_source$]);
    }
    bind(stream) {
      StreamOfTSL().as(stream);
      return this[_source$].bind(stream.cast(SS)).cast(TT);
    }
  }
  (CastStreamTransformer.new = function(_source) {
    this[_source$] = _source;
    CastStreamTransformer.__proto__.new.call(this);
    ;
  }).prototype = CastStreamTransformer.prototype;
  dart.addTypeTests(CastStreamTransformer);
  CastStreamTransformer.prototype[_is_CastStreamTransformer_default] = true;
  dart.addTypeCaches(CastStreamTransformer);
  dart.setMethodSignature(CastStreamTransformer, () => ({
    __proto__: dart.getMethods(CastStreamTransformer.__proto__),
    cast: dart.gFnType((RS, RT) => [async.StreamTransformer$(RS, RT), []]),
    bind: dart.fnType(async.Stream$(TT), [core.Object])
  }));
  dart.setLibraryUri(CastStreamTransformer, L10);
  dart.setFieldSignature(CastStreamTransformer, () => ({
    __proto__: dart.getFields(CastStreamTransformer.__proto__),
    [_source$]: dart.finalFieldType(async.StreamTransformer$(SS, ST))
  }));
  return CastStreamTransformer;
});
_internal.CastStreamTransformer = _internal.CastStreamTransformer$();
dart.addTypeTests(_internal.CastStreamTransformer, _is_CastStreamTransformer_default);
const _is_Converter_default = Symbol('_is_Converter_default');
convert.Converter$ = dart.generic((S, T) => {
  var StreamOfSL = () => (StreamOfSL = dart.constFn(async.Stream$(S)))();
  var SinkOfTL = () => (SinkOfTL = dart.constFn(core.Sink$(T)))();
  var StreamOfTL = () => (StreamOfTL = dart.constFn(async.Stream$(T)))();
  class Converter extends async.StreamTransformerBase$(S, T) {
    static castFrom(SS, ST, TS, TT, source) {
      return new (_internal.CastConverter$(SS, ST, TS, TT)).new(source);
    }
    fuse(TT, other) {
      convert.Converter$(T, TT).as(other);
      return new (convert._FusedConverter$(S, T, TT)).new(this, other);
    }
    startChunkedConversion(sink) {
      SinkOfTL().as(sink);
      dart.throw(new core.UnsupportedError.new("This converter does not support chunked conversions: " + dart.str(this)));
    }
    bind(stream) {
      StreamOfSL().as(stream);
      return StreamOfTL().eventTransformed(stream, dart.fn(sink => new convert._ConverterStreamEventSink.new(this, sink), EventSinkLTo_ConverterStreamEventSinkL()));
    }
    cast(RS, RT) {
      return convert.Converter.castFrom(S, T, RS, RT, this);
    }
  }
  (Converter.new = function() {
    Converter.__proto__.new.call(this);
    ;
  }).prototype = Converter.prototype;
  dart.addTypeTests(Converter);
  Converter.prototype[_is_Converter_default] = true;
  dart.addTypeCaches(Converter);
  dart.setMethodSignature(Converter, () => ({
    __proto__: dart.getMethods(Converter.__proto__),
    fuse: dart.gFnType(TT => [convert.Converter$(S, TT), [core.Object]]),
    startChunkedConversion: dart.fnType(core.Sink$(S), [core.Object]),
    bind: dart.fnType(async.Stream$(T), [core.Object]),
    cast: dart.gFnType((RS, RT) => [convert.Converter$(RS, RT), []])
  }));
  dart.setLibraryUri(Converter, L13);
  return Converter;
});
convert.Converter = convert.Converter$();
dart.addTypeTests(convert.Converter, _is_Converter_default);
const _is_CastConverter_default = Symbol('_is_CastConverter_default');
_internal.CastConverter$ = dart.generic((SS, ST, TS, TT) => {
  var StreamOfTSL = () => (StreamOfTSL = dart.constFn(async.Stream$(TS)))();
  class CastConverter extends convert.Converter$(TS, TT) {
    convert(input) {
      TS.as(input);
      return TT.as(this[_source$].convert(SS.as(input)));
    }
    bind(stream) {
      StreamOfTSL().as(stream);
      return this[_source$].bind(stream.cast(SS)).cast(TT);
    }
    cast(RS, RT) {
      return new (_internal.CastConverter$(SS, ST, RS, RT)).new(this[_source$]);
    }
  }
  (CastConverter.new = function(_source) {
    this[_source$] = _source;
    CastConverter.__proto__.new.call(this);
    ;
  }).prototype = CastConverter.prototype;
  dart.addTypeTests(CastConverter);
  CastConverter.prototype[_is_CastConverter_default] = true;
  dart.addTypeCaches(CastConverter);
  dart.setMethodSignature(CastConverter, () => ({
    __proto__: dart.getMethods(CastConverter.__proto__),
    convert: dart.fnType(TT, [core.Object]),
    cast: dart.gFnType((RS, RT) => [convert.Converter$(RS, RT), []])
  }));
  dart.setLibraryUri(CastConverter, L10);
  dart.setFieldSignature(CastConverter, () => ({
    __proto__: dart.getFields(CastConverter.__proto__),
    [_source$]: dart.finalFieldType(convert.Converter$(SS, ST))
  }));
  return CastConverter;
});
_internal.CastConverter = _internal.CastConverter$();
dart.addTypeTests(_internal.CastConverter, _is_CastConverter_default);
core.Iterable$ = dart.generic(E => {
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  var EfficientLengthIterableOfEL = () => (EfficientLengthIterableOfEL = dart.constFn(_internal.EfficientLengthIterable$(E)))();
  var FollowedByIterableOfEL = () => (FollowedByIterableOfEL = dart.constFn(_internal.FollowedByIterable$(E)))();
  var WhereIterableOfEL = () => (WhereIterableOfEL = dart.constFn(_internal.WhereIterable$(E)))();
  var ELAndELToLEL = () => (ELAndELToLEL = dart.constFn(dart.fnType(E, [E, E])))();
  var ListOfEL = () => (ListOfEL = dart.constFn(core.List$(E)))();
  var LinkedHashSetOfEL = () => (LinkedHashSetOfEL = dart.constFn(collection.LinkedHashSet$(E)))();
  var TakeIterableOfEL = () => (TakeIterableOfEL = dart.constFn(_internal.TakeIterable$(E)))();
  var TakeWhileIterableOfEL = () => (TakeWhileIterableOfEL = dart.constFn(_internal.TakeWhileIterable$(E)))();
  var SkipIterableOfEL = () => (SkipIterableOfEL = dart.constFn(_internal.SkipIterable$(E)))();
  var SkipWhileIterableOfEL = () => (SkipWhileIterableOfEL = dart.constFn(_internal.SkipWhileIterable$(E)))();
  var VoidToLEL = () => (VoidToLEL = dart.constFn(dart.fnType(E, [])))();
  class Iterable extends core.Object {
    static generate(count, generator = null) {
      if (dart.notNull(count) <= 0) return new (_internal.EmptyIterable$(E)).new();
      return new (core._GeneratorIterable$(E)).new(count, generator);
    }
    static castFrom(S, T, source) {
      return _internal.CastIterable$(S, T).new(source);
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
    cast(R) {
      return core.Iterable.castFrom(E, R, this);
    }
    followedBy(other) {
      IterableOfEL().as(other);
      if (EfficientLengthIterableOfEL().is(this)) {
        return FollowedByIterableOfEL().firstEfficient(EfficientLengthIterableOfEL().as(this), other);
      }
      return new (FollowedByIterableOfEL()).new(this, other);
    }
    map(T, f) {
      return _internal.MappedIterable$(E, T).new(this, f);
    }
    where(test) {
      return new (WhereIterableOfEL()).new(this, test);
    }
    whereType(T) {
      return new (_internal.WhereTypeIterable$(T)).new(this);
    }
    expand(T, f) {
      return new (_internal.ExpandIterable$(E, T)).new(this, f);
    }
    contains(element) {
      for (let e of this) {
        if (dart.equals(e, element)) return true;
      }
      return false;
    }
    forEach(f) {
      for (let element of this)
        f(element);
    }
    reduce(combine) {
      ELAndELToLEL().as(combine);
      let iterator = this[$iterator];
      if (!dart.test(iterator.moveNext())) {
        dart.throw(_internal.IterableElementError.noElement());
      }
      let value = iterator.current;
      while (dart.test(iterator.moveNext())) {
        value = combine(value, iterator.current);
      }
      return value;
    }
    fold(T, initialValue, combine) {
      let value = initialValue;
      for (let element of this)
        value = combine(value, element);
      return value;
    }
    every(test) {
      for (let element of this) {
        if (!dart.test(test(element))) return false;
      }
      return true;
    }
    join(separator = "") {
      let iterator = this[$iterator];
      if (!dart.test(iterator.moveNext())) return "";
      let buffer = new core.StringBuffer.new();
      if (separator == null || separator === "") {
        do {
          buffer.write(dart.str(iterator.current));
        } while (dart.test(iterator.moveNext()));
      } else {
        buffer.write(dart.str(iterator.current));
        while (dart.test(iterator.moveNext())) {
          buffer.write(separator);
          buffer.write(dart.str(iterator.current));
        }
      }
      return buffer.toString();
    }
    any(test) {
      for (let element of this) {
        if (dart.test(test(element))) return true;
      }
      return false;
    }
    toList(opts) {
      let growable = opts && 'growable' in opts ? opts.growable : true;
      return ListOfEL().from(this, {growable: growable});
    }
    toSet() {
      return LinkedHashSetOfEL().from(this);
    }
    get length() {
      if (!!_internal.EfficientLengthIterable.is(this)) dart.assertFailed(null, L14, 422, 12, "this is! EfficientLengthIterable");
      let count = 0;
      let it = this[$iterator];
      while (dart.test(it.moveNext())) {
        count = count + 1;
      }
      return count;
    }
    get isEmpty() {
      return !dart.test(this[$iterator].moveNext());
    }
    get isNotEmpty() {
      return !dart.test(this[$isEmpty]);
    }
    take(count) {
      return TakeIterableOfEL().new(this, count);
    }
    takeWhile(test) {
      return new (TakeWhileIterableOfEL()).new(this, test);
    }
    skip(count) {
      return SkipIterableOfEL().new(this, count);
    }
    skipWhile(test) {
      return new (SkipWhileIterableOfEL()).new(this, test);
    }
    get first() {
      let it = this[$iterator];
      if (!dart.test(it.moveNext())) {
        dart.throw(_internal.IterableElementError.noElement());
      }
      return it.current;
    }
    get last() {
      let it = this[$iterator];
      if (!dart.test(it.moveNext())) {
        dart.throw(_internal.IterableElementError.noElement());
      }
      let result = null;
      do {
        result = it.current;
      } while (dart.test(it.moveNext()));
      return result;
    }
    get single() {
      let it = this[$iterator];
      if (!dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.noElement());
      let result = it.current;
      if (dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.tooMany());
      return result;
    }
    firstWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      for (let element of this) {
        if (dart.test(test(element))) return element;
      }
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    lastWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      let result = null;
      let foundMatching = false;
      for (let element of this) {
        if (dart.test(test(element))) {
          result = element;
          foundMatching = true;
        }
      }
      if (foundMatching) return result;
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    singleWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      let result = null;
      let foundMatching = false;
      for (let element of this) {
        if (dart.test(test(element))) {
          if (foundMatching) {
            dart.throw(_internal.IterableElementError.tooMany());
          }
          result = element;
          foundMatching = true;
        }
      }
      if (foundMatching) return result;
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    elementAt(index) {
      core.ArgumentError.checkNotNull(core.int, index, "index");
      core.RangeError.checkNotNegative(index, "index");
      let elementIndex = 0;
      for (let element of this) {
        if (index === elementIndex) return element;
        elementIndex = elementIndex + 1;
      }
      dart.throw(new core.IndexError.new(index, this, "index", null, elementIndex));
    }
    toString() {
      return collection.IterableBase.iterableToShortString(this, "(", ")");
    }
  }
  (Iterable.new = function() {
    ;
  }).prototype = Iterable.prototype;
  dart.addTypeTests(Iterable);
  Iterable.prototype[dart.isIterable] = true;
  dart.addTypeCaches(Iterable);
  dart.setMethodSignature(Iterable, () => ({
    __proto__: dart.getMethods(Iterable.__proto__),
    cast: dart.gFnType(R => [core.Iterable$(R), []]),
    [$cast]: dart.gFnType(R => [core.Iterable$(R), []]),
    followedBy: dart.fnType(core.Iterable$(E), [core.Object]),
    [$followedBy]: dart.fnType(core.Iterable$(E), [core.Object]),
    map: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]]),
    [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]]),
    where: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    [$where]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    whereType: dart.gFnType(T => [core.Iterable$(T), []]),
    [$whereType]: dart.gFnType(T => [core.Iterable$(T), []]),
    expand: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]]),
    [$expand]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]]),
    contains: dart.fnType(core.bool, [core.Object]),
    [$contains]: dart.fnType(core.bool, [core.Object]),
    forEach: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
    [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
    reduce: dart.fnType(E, [core.Object]),
    [$reduce]: dart.fnType(E, [core.Object]),
    fold: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]]),
    [$fold]: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]]),
    every: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    [$every]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    join: dart.fnType(core.String, [], [core.String]),
    [$join]: dart.fnType(core.String, [], [core.String]),
    any: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    [$any]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    toList: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
    [$toList]: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
    toSet: dart.fnType(core.Set$(E), []),
    [$toSet]: dart.fnType(core.Set$(E), []),
    take: dart.fnType(core.Iterable$(E), [core.int]),
    [$take]: dart.fnType(core.Iterable$(E), [core.int]),
    takeWhile: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    [$takeWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    skip: dart.fnType(core.Iterable$(E), [core.int]),
    [$skip]: dart.fnType(core.Iterable$(E), [core.int]),
    skipWhile: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    [$skipWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    firstWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    [$firstWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    lastWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    [$lastWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    singleWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    [$singleWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    elementAt: dart.fnType(E, [core.int]),
    [$elementAt]: dart.fnType(E, [core.int])
  }));
  dart.setGetterSignature(Iterable, () => ({
    __proto__: dart.getGetters(Iterable.__proto__),
    length: core.int,
    [$length]: core.int,
    isEmpty: core.bool,
    [$isEmpty]: core.bool,
    isNotEmpty: core.bool,
    [$isNotEmpty]: core.bool,
    first: E,
    [$first]: E,
    last: E,
    [$last]: E,
    single: E,
    [$single]: E
  }));
  dart.setLibraryUri(Iterable, L1$);
  dart.defineExtensionMethods(Iterable, [
    'cast',
    'followedBy',
    'map',
    'where',
    'whereType',
    'expand',
    'contains',
    'forEach',
    'reduce',
    'fold',
    'every',
    'join',
    'any',
    'toList',
    'toSet',
    'take',
    'takeWhile',
    'skip',
    'skipWhile',
    'firstWhere',
    'lastWhere',
    'singleWhere',
    'elementAt',
    'toString'
  ]);
  dart.defineExtensionAccessors(Iterable, [
    'length',
    'isEmpty',
    'isNotEmpty',
    'first',
    'last',
    'single'
  ]);
  return Iterable;
});
core.Iterable = core.Iterable$();
dart.addTypeTests(core.Iterable, dart.isIterable);
const _is__CastIterableBase_default = Symbol('_is__CastIterableBase_default');
_internal._CastIterableBase$ = dart.generic((S, T) => {
  var CastIteratorOfSL$TL = () => (CastIteratorOfSL$TL = dart.constFn(_internal.CastIterator$(S, T)))();
  var CastIterableOfSL$TL = () => (CastIterableOfSL$TL = dart.constFn(_internal.CastIterable$(S, T)))();
  var SLToboolL = () => (SLToboolL = dart.constFn(dart.fnType(core.bool, [S])))();
  var VoidToSL = () => (VoidToSL = dart.constFn(dart.fnType(S, [])))();
  var VoidToLTL = () => (VoidToLTL = dart.constFn(dart.fnType(T, [])))();
  class _CastIterableBase extends core.Iterable$(T) {
    get iterator() {
      return new (CastIteratorOfSL$TL()).new(this[_source$][$iterator]);
    }
    get length() {
      return this[_source$][$length];
    }
    get isEmpty() {
      return this[_source$][$isEmpty];
    }
    get isNotEmpty() {
      return this[_source$][$isNotEmpty];
    }
    skip(count) {
      return CastIterableOfSL$TL().new(this[_source$][$skip](count));
    }
    take(count) {
      return CastIterableOfSL$TL().new(this[_source$][$take](count));
    }
    elementAt(index) {
      return T.as(this[_source$][$elementAt](index));
    }
    get first() {
      return T.as(this[_source$][$first]);
    }
    get last() {
      return T.as(this[_source$][$last]);
    }
    get single() {
      return T.as(this[_source$][$single]);
    }
    contains(other) {
      return this[_source$][$contains](other);
    }
    lastWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLTL().as(orElse);
      return T.as(this[_source$][$lastWhere](dart.fn(element => test(T.as(element)), SLToboolL()), {orElse: orElse == null ? null : dart.fn(() => S.as(orElse()), VoidToSL())}));
    }
    toString() {
      return dart.toString(this[_source$]);
    }
  }
  (_CastIterableBase.new = function() {
    _CastIterableBase.__proto__.new.call(this);
    ;
  }).prototype = _CastIterableBase.prototype;
  dart.addTypeTests(_CastIterableBase);
  _CastIterableBase.prototype[_is__CastIterableBase_default] = true;
  dart.addTypeCaches(_CastIterableBase);
  dart.setGetterSignature(_CastIterableBase, () => ({
    __proto__: dart.getGetters(_CastIterableBase.__proto__),
    iterator: core.Iterator$(T),
    [$iterator]: core.Iterator$(T)
  }));
  dart.setLibraryUri(_CastIterableBase, L10);
  dart.defineExtensionMethods(_CastIterableBase, [
    'skip',
    'take',
    'elementAt',
    'contains',
    'lastWhere',
    'toString'
  ]);
  dart.defineExtensionAccessors(_CastIterableBase, [
    'iterator',
    'length',
    'isEmpty',
    'isNotEmpty',
    'first',
    'last',
    'single'
  ]);
  return _CastIterableBase;
});
_internal._CastIterableBase = _internal._CastIterableBase$();
dart.addTypeTests(_internal._CastIterableBase, _is__CastIterableBase_default);
const _is_CastIterator_default = Symbol('_is_CastIterator_default');
_internal.CastIterator$ = dart.generic((S, T) => {
  class CastIterator extends core.Object {
    moveNext() {
      return this[_source$].moveNext();
    }
    get current() {
      return T.as(this[_source$].current);
    }
  }
  (CastIterator.new = function(_source) {
    this[_source$] = _source;
    ;
  }).prototype = CastIterator.prototype;
  dart.addTypeTests(CastIterator);
  CastIterator.prototype[_is_CastIterator_default] = true;
  dart.addTypeCaches(CastIterator);
  CastIterator[dart.implements] = () => [core.Iterator$(T)];
  dart.setMethodSignature(CastIterator, () => ({
    __proto__: dart.getMethods(CastIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(CastIterator, () => ({
    __proto__: dart.getGetters(CastIterator.__proto__),
    current: T
  }));
  dart.setLibraryUri(CastIterator, L10);
  dart.setFieldSignature(CastIterator, () => ({
    __proto__: dart.getFields(CastIterator.__proto__),
    [_source$]: dart.fieldType(core.Iterator$(S))
  }));
  return CastIterator;
});
_internal.CastIterator = _internal.CastIterator$();
dart.addTypeTests(_internal.CastIterator, _is_CastIterator_default);
const _is_CastIterable_default = Symbol('_is_CastIterable_default');
var _source$0 = dart.privateName(_internal, "CastIterable._source");
_internal.CastIterable$ = dart.generic((S, T) => {
  class CastIterable extends _internal._CastIterableBase$(S, T) {
    get [_source$]() {
      return this[_source$0];
    }
    set [_source$](value) {
      super[_source$] = value;
    }
    static new(source) {
      if (_internal.EfficientLengthIterable$(S).is(source)) {
        return new (_internal._EfficientLengthCastIterable$(S, T)).new(source);
      }
      return new (_internal.CastIterable$(S, T)).__(source);
    }
    cast(R) {
      return _internal.CastIterable$(S, R).new(this[_source$]);
    }
  }
  (CastIterable.__ = function(_source) {
    this[_source$0] = _source;
    CastIterable.__proto__.new.call(this);
    ;
  }).prototype = CastIterable.prototype;
  dart.addTypeTests(CastIterable);
  CastIterable.prototype[_is_CastIterable_default] = true;
  dart.addTypeCaches(CastIterable);
  dart.setMethodSignature(CastIterable, () => ({
    __proto__: dart.getMethods(CastIterable.__proto__),
    cast: dart.gFnType(R => [core.Iterable$(R), []]),
    [$cast]: dart.gFnType(R => [core.Iterable$(R), []])
  }));
  dart.setLibraryUri(CastIterable, L10);
  dart.setFieldSignature(CastIterable, () => ({
    __proto__: dart.getFields(CastIterable.__proto__),
    [_source$]: dart.finalFieldType(core.Iterable$(S))
  }));
  dart.defineExtensionMethods(CastIterable, ['cast']);
  return CastIterable;
});
_internal.CastIterable = _internal.CastIterable$();
dart.addTypeTests(_internal.CastIterable, _is_CastIterable_default);
const _is__EfficientLengthCastIterable_default = Symbol('_is__EfficientLengthCastIterable_default');
_internal._EfficientLengthCastIterable$ = dart.generic((S, T) => {
  class _EfficientLengthCastIterable extends _internal.CastIterable$(S, T) {}
  (_EfficientLengthCastIterable.new = function(source) {
    _EfficientLengthCastIterable.__proto__.__.call(this, source);
    ;
  }).prototype = _EfficientLengthCastIterable.prototype;
  dart.addTypeTests(_EfficientLengthCastIterable);
  _EfficientLengthCastIterable.prototype[_is__EfficientLengthCastIterable_default] = true;
  dart.addTypeCaches(_EfficientLengthCastIterable);
  _EfficientLengthCastIterable[dart.implements] = () => [_internal.EfficientLengthIterable$(T)];
  dart.setLibraryUri(_EfficientLengthCastIterable, L10);
  return _EfficientLengthCastIterable;
});
_internal._EfficientLengthCastIterable = _internal._EfficientLengthCastIterable$();
dart.addTypeTests(_internal._EfficientLengthCastIterable, _is__EfficientLengthCastIterable_default);
const _is__CastListBase_default = Symbol('_is__CastListBase_default');
_internal._CastListBase$ = dart.generic((S, T) => {
  var CastIterableOfTL$SL = () => (CastIterableOfTL$SL = dart.constFn(_internal.CastIterable$(T, S)))();
  var SLAndSLTointL = () => (SLAndSLTointL = dart.constFn(dart.fnType(core.int, [S, S])))();
  var SLToboolL = () => (SLToboolL = dart.constFn(dart.fnType(core.bool, [S])))();
  var CastIterableOfSL$TL = () => (CastIterableOfSL$TL = dart.constFn(_internal.CastIterable$(S, T)))();
  var IterableOfTL = () => (IterableOfTL = dart.constFn(core.Iterable$(T)))();
  const _CastIterableBase_ListMixin$36 = class _CastIterableBase_ListMixin extends _internal._CastIterableBase$(S, T) {};
  (_CastIterableBase_ListMixin$36.new = function() {
    _CastIterableBase_ListMixin$36.__proto__.new.call(this);
  }).prototype = _CastIterableBase_ListMixin$36.prototype;
  dart.applyMixin(_CastIterableBase_ListMixin$36, collection.ListMixin$(T));
  class _CastListBase extends _CastIterableBase_ListMixin$36 {
    _get(index) {
      return T.as(this[_source$][$_get](index));
    }
    _set(index, value$) {
      let value = value$;
      T.as(value);
      this[_source$][$_set](index, S.as(value));
      return value$;
    }
    set length(length) {
      this[_source$][$length] = length;
    }
    get length() {
      return super.length;
    }
    add(value) {
      T.as(value);
      this[_source$][$add](S.as(value));
    }
    addAll(values) {
      IterableOfTL().as(values);
      this[_source$][$addAll](CastIterableOfTL$SL().new(values));
    }
    sort(compare = null) {
      this[_source$][$sort](compare == null ? null : dart.fn((v1, v2) => compare(T.as(v1), T.as(v2)), SLAndSLTointL()));
    }
    shuffle(random = null) {
      this[_source$][$shuffle](random);
    }
    insert(index, element) {
      T.as(element);
      this[_source$][$insert](index, S.as(element));
    }
    insertAll(index, elements) {
      IterableOfTL().as(elements);
      this[_source$][$insertAll](index, CastIterableOfTL$SL().new(elements));
    }
    setAll(index, elements) {
      IterableOfTL().as(elements);
      this[_source$][$setAll](index, CastIterableOfTL$SL().new(elements));
    }
    remove(value) {
      return this[_source$][$remove](value);
    }
    removeAt(index) {
      return T.as(this[_source$][$removeAt](index));
    }
    removeLast() {
      return T.as(this[_source$][$removeLast]());
    }
    removeWhere(test) {
      this[_source$][$removeWhere](dart.fn(element => test(T.as(element)), SLToboolL()));
    }
    retainWhere(test) {
      this[_source$][$retainWhere](dart.fn(element => test(T.as(element)), SLToboolL()));
    }
    getRange(start, end) {
      return CastIterableOfSL$TL().new(this[_source$][$getRange](start, end));
    }
    setRange(start, end, iterable, skipCount = 0) {
      IterableOfTL().as(iterable);
      this[_source$][$setRange](start, end, CastIterableOfTL$SL().new(iterable), skipCount);
    }
    removeRange(start, end) {
      this[_source$][$removeRange](start, end);
    }
    fillRange(start, end, fillValue = null) {
      T.as(fillValue);
      this[_source$][$fillRange](start, end, S.as(fillValue));
    }
    replaceRange(start, end, replacement) {
      IterableOfTL().as(replacement);
      this[_source$][$replaceRange](start, end, CastIterableOfTL$SL().new(replacement));
    }
  }
  (_CastListBase.new = function() {
    _CastListBase.__proto__.new.call(this);
    ;
  }).prototype = _CastListBase.prototype;
  dart.addTypeTests(_CastListBase);
  _CastListBase.prototype[_is__CastListBase_default] = true;
  dart.addTypeCaches(_CastListBase);
  dart.setMethodSignature(_CastListBase, () => ({
    __proto__: dart.getMethods(_CastListBase.__proto__),
    _get: dart.fnType(T, [core.int]),
    [$_get]: dart.fnType(T, [core.int]),
    _set: dart.fnType(dart.void, [core.int, core.Object]),
    [$_set]: dart.fnType(dart.void, [core.int, core.Object])
  }));
  dart.setSetterSignature(_CastListBase, () => ({
    __proto__: dart.getSetters(_CastListBase.__proto__),
    length: core.int,
    [$length]: core.int
  }));
  dart.setLibraryUri(_CastListBase, L10);
  dart.defineExtensionMethods(_CastListBase, [
    '_get',
    '_set',
    'add',
    'addAll',
    'sort',
    'shuffle',
    'insert',
    'insertAll',
    'setAll',
    'remove',
    'removeAt',
    'removeLast',
    'removeWhere',
    'retainWhere',
    'getRange',
    'setRange',
    'removeRange',
    'fillRange',
    'replaceRange'
  ]);
  dart.defineExtensionAccessors(_CastListBase, ['length']);
  return _CastListBase;
});
_internal._CastListBase = _internal._CastListBase$();
dart.addTypeTests(_internal._CastListBase, _is__CastListBase_default);
const _is_CastList_default = Symbol('_is_CastList_default');
var _source$1 = dart.privateName(_internal, "CastList._source");
_internal.CastList$ = dart.generic((S, T) => {
  class CastList extends _internal._CastListBase$(S, T) {
    get [_source$]() {
      return this[_source$1];
    }
    set [_source$](value) {
      super[_source$] = value;
    }
    cast(R) {
      return new (_internal.CastList$(S, R)).new(this[_source$]);
    }
  }
  (CastList.new = function(_source) {
    this[_source$1] = _source;
    CastList.__proto__.new.call(this);
    ;
  }).prototype = CastList.prototype;
  dart.addTypeTests(CastList);
  CastList.prototype[_is_CastList_default] = true;
  dart.addTypeCaches(CastList);
  dart.setMethodSignature(CastList, () => ({
    __proto__: dart.getMethods(CastList.__proto__),
    cast: dart.gFnType(R => [core.List$(R), []]),
    [$cast]: dart.gFnType(R => [core.List$(R), []])
  }));
  dart.setLibraryUri(CastList, L10);
  dart.setFieldSignature(CastList, () => ({
    __proto__: dart.getFields(CastList.__proto__),
    [_source$]: dart.finalFieldType(core.List$(S))
  }));
  dart.defineExtensionMethods(CastList, ['cast']);
  return CastList;
});
_internal.CastList = _internal.CastList$();
dart.addTypeTests(_internal.CastList, _is_CastList_default);
var _emptySet$ = dart.privateName(_internal, "_emptySet");
var _conditionalAdd = dart.privateName(_internal, "_conditionalAdd");
var _clone = dart.privateName(_internal, "_clone");
const _is_CastSet_default = Symbol('_is_CastSet_default');
var _source$2 = dart.privateName(_internal, "CastSet._source");
_internal.CastSet$ = dart.generic((S, T) => {
  var CastIterableOfTL$SL = () => (CastIterableOfTL$SL = dart.constFn(_internal.CastIterable$(T, S)))();
  var SLToboolL = () => (SLToboolL = dart.constFn(dart.fnType(core.bool, [S])))();
  var CastSetOfSL$TL = () => (CastSetOfSL$TL = dart.constFn(_internal.CastSet$(S, T)))();
  var IterableOfTL = () => (IterableOfTL = dart.constFn(core.Iterable$(T)))();
  var _HashSetOfTL = () => (_HashSetOfTL = dart.constFn(collection._HashSet$(T)))();
  var SetOfTL = () => (SetOfTL = dart.constFn(core.Set$(T)))();
  class CastSet extends _internal._CastIterableBase$(S, T) {
    get [_source$]() {
      return this[_source$2];
    }
    set [_source$](value) {
      super[_source$] = value;
    }
    static _defaultEmptySet(R) {
      return new (collection._HashSet$(R)).new();
    }
    cast(R) {
      return new (_internal.CastSet$(S, R)).new(this[_source$], this[_emptySet$]);
    }
    add(value) {
      T.as(value);
      return this[_source$].add(S.as(value));
    }
    addAll(elements) {
      IterableOfTL().as(elements);
      this[_source$].addAll(CastIterableOfTL$SL().new(elements));
    }
    remove(object) {
      return this[_source$].remove(object);
    }
    removeAll(objects) {
      this[_source$].removeAll(objects);
    }
    retainAll(objects) {
      this[_source$].retainAll(objects);
    }
    removeWhere(test) {
      this[_source$].removeWhere(dart.fn(element => test(T.as(element)), SLToboolL()));
    }
    retainWhere(test) {
      this[_source$].retainWhere(dart.fn(element => test(T.as(element)), SLToboolL()));
    }
    containsAll(objects) {
      return this[_source$].containsAll(objects);
    }
    intersection(other) {
      if (this[_emptySet$] != null) return this[_conditionalAdd](other, true);
      return new (CastSetOfSL$TL()).new(this[_source$].intersection(other), null);
    }
    difference(other) {
      if (this[_emptySet$] != null) return this[_conditionalAdd](other, false);
      return new (CastSetOfSL$TL()).new(this[_source$].difference(other), null);
    }
    [_conditionalAdd](other, otherContains) {
      let result = this[_emptySet$] == null ? new (_HashSetOfTL()).new() : this[_emptySet$](T);
      for (let element of this[_source$]) {
        let castElement = T.as(element);
        if (dart.equals(otherContains, other.contains(castElement))) result.add(castElement);
      }
      return result;
    }
    union(other) {
      let t27;
      SetOfTL().as(other);
      t27 = this[_clone]();
      t27.addAll(other);
      return t27;
    }
    clear() {
      this[_source$].clear();
    }
    [_clone]() {
      let result = this[_emptySet$] == null ? new (_HashSetOfTL()).new() : this[_emptySet$](T);
      result.addAll(this);
      return result;
    }
    toSet() {
      return this[_clone]();
    }
    lookup(key) {
      return T.as(this[_source$].lookup(key));
    }
  }
  (CastSet.new = function(_source, _emptySet) {
    this[_source$2] = _source;
    this[_emptySet$] = _emptySet;
    CastSet.__proto__.new.call(this);
    ;
  }).prototype = CastSet.prototype;
  dart.addTypeTests(CastSet);
  CastSet.prototype[_is_CastSet_default] = true;
  dart.addTypeCaches(CastSet);
  CastSet[dart.implements] = () => [core.Set$(T)];
  dart.setMethodSignature(CastSet, () => ({
    __proto__: dart.getMethods(CastSet.__proto__),
    cast: dart.gFnType(R => [core.Set$(R), []]),
    [$cast]: dart.gFnType(R => [core.Set$(R), []]),
    add: dart.fnType(core.bool, [core.Object]),
    addAll: dart.fnType(dart.void, [core.Object]),
    remove: dart.fnType(core.bool, [core.Object]),
    removeAll: dart.fnType(dart.void, [core.Iterable$(core.Object)]),
    retainAll: dart.fnType(dart.void, [core.Iterable$(core.Object)]),
    removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [T])]),
    retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [T])]),
    containsAll: dart.fnType(core.bool, [core.Iterable$(core.Object)]),
    intersection: dart.fnType(core.Set$(T), [core.Set$(core.Object)]),
    difference: dart.fnType(core.Set$(T), [core.Set$(core.Object)]),
    [_conditionalAdd]: dart.fnType(core.Set$(T), [core.Set$(core.Object), core.bool]),
    union: dart.fnType(core.Set$(T), [core.Object]),
    clear: dart.fnType(dart.void, []),
    [_clone]: dart.fnType(core.Set$(T), []),
    lookup: dart.fnType(T, [core.Object])
  }));
  dart.setLibraryUri(CastSet, L10);
  dart.setFieldSignature(CastSet, () => ({
    __proto__: dart.getFields(CastSet.__proto__),
    [_source$]: dart.finalFieldType(core.Set$(S)),
    [_emptySet$]: dart.finalFieldType(dart.gFnType(R => [core.Set$(R), []]))
  }));
  dart.defineExtensionMethods(CastSet, ['cast', 'toSet']);
  return CastSet;
});
_internal.CastSet = _internal.CastSet$();
dart.addTypeTests(_internal.CastSet, _is_CastSet_default);
var C21;
const _is_MapMixin_default = Symbol('_is_MapMixin_default');
collection.MapMixin$ = dart.generic((K, V) => {
  var MapOfKL$VL = () => (MapOfKL$VL = dart.constFn(core.Map$(K, V)))();
  var KLAndVLToLVL = () => (KLAndVLToLVL = dart.constFn(dart.fnType(V, [K, V])))();
  var MapEntryOfKL$VL = () => (MapEntryOfKL$VL = dart.constFn(core.MapEntry$(K, V)))();
  var KLToMapEntryLOfKL$VL = () => (KLToMapEntryLOfKL$VL = dart.constFn(dart.fnType(MapEntryOfKL$VL(), [K])))();
  var IterableOfMapEntryLOfKL$VL = () => (IterableOfMapEntryLOfKL$VL = dart.constFn(core.Iterable$(MapEntryOfKL$VL())))();
  var JSArrayOfKL = () => (JSArrayOfKL = dart.constFn(_interceptors.JSArray$(K)))();
  var _MapBaseValueIterableOfKL$VL = () => (_MapBaseValueIterableOfKL$VL = dart.constFn(collection._MapBaseValueIterable$(K, V)))();
  var VoidToLVL = () => (VoidToLVL = dart.constFn(dart.fnType(V, [])))();
  var VLToLVL = () => (VLToLVL = dart.constFn(dart.fnType(V, [V])))();
  class MapMixin extends core.Object {
    cast(RK, RV) {
      return core.Map.castFrom(K, V, RK, RV, this);
    }
    forEach(action) {
      for (let key of this[$keys]) {
        action(key, this[$_get](key));
      }
    }
    addAll(other) {
      MapOfKL$VL().as(other);
      for (let key of other[$keys]) {
        this[$_set](key, other[$_get](key));
      }
    }
    containsValue(value) {
      for (let key of this[$keys]) {
        if (dart.equals(this[$_get](key), value)) return true;
      }
      return false;
    }
    putIfAbsent(key, ifAbsent) {
      let t28, t27;
      K.as(key);
      VoidToLVL().as(ifAbsent);
      if (dart.test(this[$containsKey](key))) {
        return this[$_get](key);
      }
      t27 = key;
      t28 = ifAbsent();
      this[$_set](t27, t28);
      return t28;
    }
    update(key, update, opts) {
      let t28, t27, t28$, t27$;
      K.as(key);
      VLToLVL().as(update);
      let ifAbsent = opts && 'ifAbsent' in opts ? opts.ifAbsent : null;
      VoidToLVL().as(ifAbsent);
      if (dart.test(this[$containsKey](key))) {
        t27 = key;
        t28 = update(this[$_get](key));
        this[$_set](t27, t28);
        return t28;
      }
      if (ifAbsent != null) {
        t27$ = key;
        t28$ = ifAbsent();
        this[$_set](t27$, t28$);
        return t28$;
      }
      dart.throw(new core.ArgumentError.value(key, "key", "Key not in map."));
    }
    updateAll(update) {
      KLAndVLToLVL().as(update);
      for (let key of this[$keys]) {
        this[$_set](key, update(key, this[$_get](key)));
      }
    }
    get entries() {
      return this[$keys][$map](MapEntryOfKL$VL(), dart.fn(key => new (MapEntryOfKL$VL()).__(key, this[$_get](key)), KLToMapEntryLOfKL$VL()));
    }
    map(K2, V2, transform) {
      let result = new (_js_helper.LinkedMap$(K2, V2)).new();
      for (let key of this[$keys]) {
        let entry = transform(key, this[$_get](key));
        result[$_set](entry.key, entry.value);
      }
      return result;
    }
    addEntries(newEntries) {
      IterableOfMapEntryLOfKL$VL().as(newEntries);
      for (let entry of newEntries) {
        this[$_set](entry.key, entry.value);
      }
    }
    removeWhere(test) {
      let keysToRemove = JSArrayOfKL().of([]);
      for (let key of this[$keys]) {
        if (dart.test(test(key, this[$_get](key)))) keysToRemove[$add](key);
      }
      for (let key of keysToRemove) {
        this[$remove](key);
      }
    }
    containsKey(key) {
      return this[$keys][$contains](key);
    }
    get length() {
      return this[$keys][$length];
    }
    get isEmpty() {
      return this[$keys][$isEmpty];
    }
    get isNotEmpty() {
      return this[$keys][$isNotEmpty];
    }
    get values() {
      return new (_MapBaseValueIterableOfKL$VL()).new(this);
    }
    toString() {
      return collection.MapBase.mapToString(this);
    }
  }
  (MapMixin.new = function() {
    ;
  }).prototype = MapMixin.prototype;
  MapMixin.prototype[dart.isMap] = true;
  dart.addTypeTests(MapMixin);
  MapMixin.prototype[_is_MapMixin_default] = true;
  dart.addTypeCaches(MapMixin);
  MapMixin[dart.implements] = () => [core.Map$(K, V)];
  dart.setMethodSignature(MapMixin, () => ({
    __proto__: dart.getMethods(MapMixin.__proto__),
    cast: dart.gFnType((RK, RV) => [core.Map$(RK, RV), []]),
    [$cast]: dart.gFnType((RK, RV) => [core.Map$(RK, RV), []]),
    forEach: dart.fnType(dart.void, [dart.fnType(dart.void, [K, V])]),
    [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [K, V])]),
    addAll: dart.fnType(dart.void, [core.Object]),
    [$addAll]: dart.fnType(dart.void, [core.Object]),
    containsValue: dart.fnType(core.bool, [core.Object]),
    [$containsValue]: dart.fnType(core.bool, [core.Object]),
    putIfAbsent: dart.fnType(V, [core.Object, core.Object]),
    [$putIfAbsent]: dart.fnType(V, [core.Object, core.Object]),
    update: dart.fnType(V, [core.Object, core.Object], {ifAbsent: core.Object}, {}),
    [$update]: dart.fnType(V, [core.Object, core.Object], {ifAbsent: core.Object}, {}),
    updateAll: dart.fnType(dart.void, [core.Object]),
    [$updateAll]: dart.fnType(dart.void, [core.Object]),
    map: dart.gFnType((K2, V2) => [core.Map$(K2, V2), [dart.fnType(core.MapEntry$(K2, V2), [K, V])]]),
    [$map]: dart.gFnType((K2, V2) => [core.Map$(K2, V2), [dart.fnType(core.MapEntry$(K2, V2), [K, V])]]),
    addEntries: dart.fnType(dart.void, [core.Object]),
    [$addEntries]: dart.fnType(dart.void, [core.Object]),
    removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [K, V])]),
    [$removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [K, V])]),
    containsKey: dart.fnType(core.bool, [core.Object]),
    [$containsKey]: dart.fnType(core.bool, [core.Object])
  }));
  dart.setGetterSignature(MapMixin, () => ({
    __proto__: dart.getGetters(MapMixin.__proto__),
    entries: core.Iterable$(core.MapEntry$(K, V)),
    [$entries]: core.Iterable$(core.MapEntry$(K, V)),
    length: core.int,
    [$length]: core.int,
    isEmpty: core.bool,
    [$isEmpty]: core.bool,
    isNotEmpty: core.bool,
    [$isNotEmpty]: core.bool,
    values: core.Iterable$(V),
    [$values]: core.Iterable$(V)
  }));
  dart.setLibraryUri(MapMixin, L9);
  dart.defineExtensionMethods(MapMixin, [
    'cast',
    'forEach',
    'addAll',
    'containsValue',
    'putIfAbsent',
    'update',
    'updateAll',
    'map',
    'addEntries',
    'removeWhere',
    'containsKey',
    'toString'
  ]);
  dart.defineExtensionAccessors(MapMixin, [
    'entries',
    'length',
    'isEmpty',
    'isNotEmpty',
    'values'
  ]);
  return MapMixin;
});
collection.MapMixin = collection.MapMixin$();
dart.addTypeTests(collection.MapMixin, _is_MapMixin_default);
const _is_MapBase_default = Symbol('_is_MapBase_default');
collection.MapBase$ = dart.generic((K, V) => {
  class MapBase extends collection.MapMixin$(K, V) {
    static mapToString(m) {
      if (dart.test(collection._isToStringVisiting(m))) {
        return "{...}";
      }
      let result = new core.StringBuffer.new();
      try {
        collection._toStringVisiting[$add](m);
        result.write("{");
        let first = true;
        m[$forEach](dart.fn((k, v) => {
          if (!first) {
            result.write(", ");
          }
          first = false;
          result.write(k);
          result.write(": ");
          result.write(v);
        }, dynamicAnddynamicToNullN()));
        result.write("}");
      } finally {
        if (!core.identical(collection._toStringVisiting[$last], m)) dart.assertFailed(null, L15, 46, 14, "identical(_toStringVisiting.last, m)");
        collection._toStringVisiting[$removeLast]();
      }
      return result.toString();
    }
    static _id(x) {
      return x;
    }
    static _fillMapWithMappedIterable(map, iterable, key, value) {
      key == null ? key = C21 || CT.C21 : null;
      value == null ? value = C21 || CT.C21 : null;
      for (let element of iterable) {
        map[$_set](key(element), value(element));
      }
    }
    static _fillMapWithIterables(map, keys, values) {
      let keyIterator = keys[$iterator];
      let valueIterator = values[$iterator];
      let hasNextKey = keyIterator.moveNext();
      let hasNextValue = valueIterator.moveNext();
      while (dart.test(hasNextKey) && dart.test(hasNextValue)) {
        map[$_set](keyIterator.current, valueIterator.current);
        hasNextKey = keyIterator.moveNext();
        hasNextValue = valueIterator.moveNext();
      }
      if (dart.test(hasNextKey) || dart.test(hasNextValue)) {
        dart.throw(new core.ArgumentError.new("Iterables do not have same length."));
      }
    }
  }
  (MapBase.new = function() {
    ;
  }).prototype = MapBase.prototype;
  dart.addTypeTests(MapBase);
  MapBase.prototype[_is_MapBase_default] = true;
  dart.addTypeCaches(MapBase);
  dart.setLibraryUri(MapBase, L9);
  return MapBase;
});
collection.MapBase = collection.MapBase$();
dart.addTypeTests(collection.MapBase, _is_MapBase_default);
const _is_CastMap_default = Symbol('_is_CastMap_default');
_internal.CastMap$ = dart.generic((SK, SV, K, V) => {
  var CastMapOfKL$VL$SKL$SVL = () => (CastMapOfKL$VL$SKL$SVL = dart.constFn(_internal.CastMap$(K, V, SK, SV)))();
  var SKLAndSVLToNullN = () => (SKLAndSVLToNullN = dart.constFn(dart.fnType(core.Null, [SK, SV])))();
  var CastIterableOfSKL$KL = () => (CastIterableOfSKL$KL = dart.constFn(_internal.CastIterable$(SK, K)))();
  var SKLAndSVLToSVL = () => (SKLAndSVLToSVL = dart.constFn(dart.fnType(SV, [SK, SV])))();
  var MapEntryOfSKL$SVL = () => (MapEntryOfSKL$SVL = dart.constFn(core.MapEntry$(SK, SV)))();
  var MapEntryLOfSKL$SVLToMapEntryLOfKL$VL = () => (MapEntryLOfSKL$SVLToMapEntryLOfKL$VL = dart.constFn(dart.fnType(MapEntryOfKL$VL(), [MapEntryOfSKL$SVL()])))();
  var SKLAndSVLToboolL = () => (SKLAndSVLToboolL = dart.constFn(dart.fnType(core.bool, [SK, SV])))();
  var VoidToSVL = () => (VoidToSVL = dart.constFn(dart.fnType(SV, [])))();
  var CastIterableOfSVL$VL = () => (CastIterableOfSVL$VL = dart.constFn(_internal.CastIterable$(SV, V)))();
  var SVLToSVL = () => (SVLToSVL = dart.constFn(dart.fnType(SV, [SV])))();
  var MapOfKL$VL = () => (MapOfKL$VL = dart.constFn(core.Map$(K, V)))();
  var KLAndVLToLVL = () => (KLAndVLToLVL = dart.constFn(dart.fnType(V, [K, V])))();
  var MapEntryOfKL$VL = () => (MapEntryOfKL$VL = dart.constFn(core.MapEntry$(K, V)))();
  var IterableOfMapEntryLOfKL$VL = () => (IterableOfMapEntryLOfKL$VL = dart.constFn(core.Iterable$(MapEntryOfKL$VL())))();
  var VoidToLVL = () => (VoidToLVL = dart.constFn(dart.fnType(V, [])))();
  var VLToLVL = () => (VLToLVL = dart.constFn(dart.fnType(V, [V])))();
  class CastMap extends collection.MapBase$(K, V) {
    cast(RK, RV) {
      return new (_internal.CastMap$(SK, SV, RK, RV)).new(this[_source$]);
    }
    containsValue(value) {
      return this[_source$][$containsValue](value);
    }
    containsKey(key) {
      return this[_source$][$containsKey](key);
    }
    _get(key) {
      return V.as(this[_source$][$_get](key));
    }
    _set(key, value$) {
      let value = value$;
      K.as(key);
      V.as(value);
      this[_source$][$_set](SK.as(key), SV.as(value));
      return value$;
    }
    putIfAbsent(key, ifAbsent) {
      K.as(key);
      VoidToLVL().as(ifAbsent);
      return V.as(this[_source$][$putIfAbsent](SK.as(key), ifAbsent == null ? null : dart.fn(() => SV.as(ifAbsent()), VoidToSVL())));
    }
    addAll(other) {
      MapOfKL$VL().as(other);
      this[_source$][$addAll](new (CastMapOfKL$VL$SKL$SVL()).new(other));
    }
    remove(key) {
      return V.as(this[_source$][$remove](key));
    }
    clear() {
      this[_source$][$clear]();
    }
    forEach(f) {
      this[_source$][$forEach](dart.fn((key, value) => {
        f(K.as(key), V.as(value));
      }, SKLAndSVLToNullN()));
    }
    get keys() {
      return CastIterableOfSKL$KL().new(this[_source$][$keys]);
    }
    get values() {
      return CastIterableOfSVL$VL().new(this[_source$][$values]);
    }
    get length() {
      return this[_source$][$length];
    }
    get isEmpty() {
      return this[_source$][$isEmpty];
    }
    get isNotEmpty() {
      return this[_source$][$isNotEmpty];
    }
    update(key, update, opts) {
      K.as(key);
      VLToLVL().as(update);
      let ifAbsent = opts && 'ifAbsent' in opts ? opts.ifAbsent : null;
      VoidToLVL().as(ifAbsent);
      return V.as(this[_source$][$update](SK.as(key), dart.fn(value => SV.as(update(V.as(value))), SVLToSVL()), {ifAbsent: ifAbsent == null ? null : dart.fn(() => SV.as(ifAbsent()), VoidToSVL())}));
    }
    updateAll(update) {
      KLAndVLToLVL().as(update);
      this[_source$][$updateAll](dart.fn((key, value) => SV.as(update(K.as(key), V.as(value))), SKLAndSVLToSVL()));
    }
    get entries() {
      return this[_source$][$entries][$map](MapEntryOfKL$VL(), dart.fn(e => new (MapEntryOfKL$VL()).__(K.as(e.key), V.as(e.value)), MapEntryLOfSKL$SVLToMapEntryLOfKL$VL()));
    }
    addEntries(entries) {
      IterableOfMapEntryLOfKL$VL().as(entries);
      for (let entry of entries) {
        this[_source$][$_set](SK.as(entry.key), SV.as(entry.value));
      }
    }
    removeWhere(test) {
      this[_source$][$removeWhere](dart.fn((key, value) => test(K.as(key), V.as(value)), SKLAndSVLToboolL()));
    }
  }
  (CastMap.new = function(_source) {
    this[_source$] = _source;
    ;
  }).prototype = CastMap.prototype;
  dart.addTypeTests(CastMap);
  CastMap.prototype[_is_CastMap_default] = true;
  dart.addTypeCaches(CastMap);
  dart.setMethodSignature(CastMap, () => ({
    __proto__: dart.getMethods(CastMap.__proto__),
    cast: dart.gFnType((RK, RV) => [core.Map$(RK, RV), []]),
    [$cast]: dart.gFnType((RK, RV) => [core.Map$(RK, RV), []]),
    _get: dart.fnType(V, [core.Object]),
    [$_get]: dart.fnType(V, [core.Object]),
    _set: dart.fnType(dart.void, [core.Object, core.Object]),
    [$_set]: dart.fnType(dart.void, [core.Object, core.Object]),
    remove: dart.fnType(V, [core.Object]),
    [$remove]: dart.fnType(V, [core.Object]),
    clear: dart.fnType(dart.void, []),
    [$clear]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(CastMap, () => ({
    __proto__: dart.getGetters(CastMap.__proto__),
    keys: core.Iterable$(K),
    [$keys]: core.Iterable$(K)
  }));
  dart.setLibraryUri(CastMap, L10);
  dart.setFieldSignature(CastMap, () => ({
    __proto__: dart.getFields(CastMap.__proto__),
    [_source$]: dart.finalFieldType(core.Map$(SK, SV))
  }));
  dart.defineExtensionMethods(CastMap, [
    'cast',
    'containsValue',
    'containsKey',
    '_get',
    '_set',
    'putIfAbsent',
    'addAll',
    'remove',
    'clear',
    'forEach',
    'update',
    'updateAll',
    'addEntries',
    'removeWhere'
  ]);
  dart.defineExtensionAccessors(CastMap, [
    'keys',
    'values',
    'length',
    'isEmpty',
    'isNotEmpty',
    'entries'
  ]);
  return CastMap;
});
_internal.CastMap = _internal.CastMap$();
dart.addTypeTests(_internal.CastMap, _is_CastMap_default);
const _is_CastQueue_default = Symbol('_is_CastQueue_default');
var _source$3 = dart.privateName(_internal, "CastQueue._source");
_internal.CastQueue$ = dart.generic((S, T) => {
  var CastIterableOfTL$SL = () => (CastIterableOfTL$SL = dart.constFn(_internal.CastIterable$(T, S)))();
  var SLToboolL = () => (SLToboolL = dart.constFn(dart.fnType(core.bool, [S])))();
  var IterableOfTL = () => (IterableOfTL = dart.constFn(core.Iterable$(T)))();
  class CastQueue extends _internal._CastIterableBase$(S, T) {
    get [_source$]() {
      return this[_source$3];
    }
    set [_source$](value) {
      super[_source$] = value;
    }
    cast(R) {
      return new (_internal.CastQueue$(S, R)).new(this[_source$]);
    }
    removeFirst() {
      return T.as(this[_source$].removeFirst());
    }
    removeLast() {
      return T.as(this[_source$].removeLast());
    }
    add(value) {
      T.as(value);
      this[_source$].add(S.as(value));
    }
    addFirst(value) {
      T.as(value);
      this[_source$].addFirst(S.as(value));
    }
    addLast(value) {
      T.as(value);
      this[_source$].addLast(S.as(value));
    }
    remove(other) {
      return this[_source$].remove(other);
    }
    addAll(elements) {
      IterableOfTL().as(elements);
      this[_source$].addAll(CastIterableOfTL$SL().new(elements));
    }
    removeWhere(test) {
      this[_source$].removeWhere(dart.fn(element => test(T.as(element)), SLToboolL()));
    }
    retainWhere(test) {
      this[_source$].retainWhere(dart.fn(element => test(T.as(element)), SLToboolL()));
    }
    clear() {
      this[_source$].clear();
    }
  }
  (CastQueue.new = function(_source) {
    this[_source$3] = _source;
    CastQueue.__proto__.new.call(this);
    ;
  }).prototype = CastQueue.prototype;
  dart.addTypeTests(CastQueue);
  CastQueue.prototype[_is_CastQueue_default] = true;
  dart.addTypeCaches(CastQueue);
  CastQueue[dart.implements] = () => [collection.Queue$(T)];
  dart.setMethodSignature(CastQueue, () => ({
    __proto__: dart.getMethods(CastQueue.__proto__),
    cast: dart.gFnType(R => [collection.Queue$(R), []]),
    [$cast]: dart.gFnType(R => [collection.Queue$(R), []]),
    removeFirst: dart.fnType(T, []),
    removeLast: dart.fnType(T, []),
    add: dart.fnType(dart.void, [core.Object]),
    addFirst: dart.fnType(dart.void, [core.Object]),
    addLast: dart.fnType(dart.void, [core.Object]),
    remove: dart.fnType(core.bool, [core.Object]),
    addAll: dart.fnType(dart.void, [core.Object]),
    removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [T])]),
    retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [T])]),
    clear: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(CastQueue, L10);
  dart.setFieldSignature(CastQueue, () => ({
    __proto__: dart.getFields(CastQueue.__proto__),
    [_source$]: dart.finalFieldType(collection.Queue$(S))
  }));
  dart.defineExtensionMethods(CastQueue, ['cast']);
  return CastQueue;
});
_internal.CastQueue = _internal.CastQueue$();
dart.addTypeTests(_internal.CastQueue, _is_CastQueue_default);
var _message$ = dart.privateName(_internal, "_message");
core.Error = class Error extends core.Object {
  static safeToString(object) {
    if (typeof object == 'number' || typeof object == 'boolean' || null == object) {
      return dart.toString(object);
    }
    if (typeof object == 'string') {
      return core.Error._stringToSafeString(object);
    }
    return core.Error._objectToString(object);
  }
  static _stringToSafeString(string) {
    return JSON.stringify(string);
  }
  static _objectToString(object) {
    return "Instance of '" + dart.typeName(dart.getReifiedType(object)) + "'";
  }
  get stackTrace() {
    return dart.stackTraceForError(this);
  }
};
(core.Error.new = function() {
  ;
}).prototype = core.Error.prototype;
dart.addTypeTests(core.Error);
dart.addTypeCaches(core.Error);
dart.setGetterSignature(core.Error, () => ({
  __proto__: dart.getGetters(core.Error.__proto__),
  stackTrace: core.StackTrace,
  [$stackTrace]: core.StackTrace
}));
dart.setLibraryUri(core.Error, L1$);
dart.defineExtensionAccessors(core.Error, ['stackTrace']);
_internal.LateInitializationErrorImpl = class LateInitializationErrorImpl extends core.Error {
  toString() {
    let message = this[_message$];
    return message != null ? "LateInitializationError: " + dart.str(message) : "LateInitializationError";
  }
};
(_internal.LateInitializationErrorImpl.new = function(_message = null) {
  this[_message$] = _message;
  _internal.LateInitializationErrorImpl.__proto__.new.call(this);
  ;
}).prototype = _internal.LateInitializationErrorImpl.prototype;
dart.addTypeTests(_internal.LateInitializationErrorImpl);
dart.addTypeCaches(_internal.LateInitializationErrorImpl);
_internal.LateInitializationErrorImpl[dart.implements] = () => [core.LateInitializationError];
dart.setLibraryUri(_internal.LateInitializationErrorImpl, L10);
dart.setFieldSignature(_internal.LateInitializationErrorImpl, () => ({
  __proto__: dart.getFields(_internal.LateInitializationErrorImpl.__proto__),
  [_message$]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(_internal.LateInitializationErrorImpl, ['toString']);
const _is_EfficientLengthIterable_default = Symbol('_is_EfficientLengthIterable_default');
_internal.EfficientLengthIterable$ = dart.generic(T => {
  class EfficientLengthIterable extends core.Iterable$(T) {}
  (EfficientLengthIterable.new = function() {
    EfficientLengthIterable.__proto__.new.call(this);
    ;
  }).prototype = EfficientLengthIterable.prototype;
  dart.addTypeTests(EfficientLengthIterable);
  EfficientLengthIterable.prototype[_is_EfficientLengthIterable_default] = true;
  dart.addTypeCaches(EfficientLengthIterable);
  dart.setLibraryUri(EfficientLengthIterable, L10);
  return EfficientLengthIterable;
});
_internal.EfficientLengthIterable = _internal.EfficientLengthIterable$();
dart.addTypeTests(_internal.EfficientLengthIterable, _is_EfficientLengthIterable_default);
const _is_ListIterable_default = Symbol('_is_ListIterable_default');
_internal.ListIterable$ = dart.generic(E => {
  var ListIteratorOfEL = () => (ListIteratorOfEL = dart.constFn(_internal.ListIterator$(E)))();
  var VoidToLEL = () => (VoidToLEL = dart.constFn(dart.fnType(E, [])))();
  var ELAndELToLEL = () => (ELAndELToLEL = dart.constFn(dart.fnType(E, [E, E])))();
  var SubListIterableOfEL = () => (SubListIterableOfEL = dart.constFn(_internal.SubListIterable$(E)))();
  var JSArrayOfEL = () => (JSArrayOfEL = dart.constFn(_interceptors.JSArray$(E)))();
  var ListOfEL = () => (ListOfEL = dart.constFn(core.List$(E)))();
  var _HashSetOfEL = () => (_HashSetOfEL = dart.constFn(collection._HashSet$(E)))();
  class ListIterable extends _internal.EfficientLengthIterable$(E) {
    get iterator() {
      return new (ListIteratorOfEL()).new(this);
    }
    forEach(action) {
      let length = this.length;
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        action(this.elementAt(i));
        if (length != this.length) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
    }
    get isEmpty() {
      return this.length === 0;
    }
    get first() {
      if (this.length === 0) dart.throw(_internal.IterableElementError.noElement());
      return this.elementAt(0);
    }
    get last() {
      if (this.length === 0) dart.throw(_internal.IterableElementError.noElement());
      return this.elementAt(dart.notNull(this.length) - 1);
    }
    get single() {
      if (this.length === 0) dart.throw(_internal.IterableElementError.noElement());
      if (dart.notNull(this.length) > 1) dart.throw(_internal.IterableElementError.tooMany());
      return this.elementAt(0);
    }
    contains(element) {
      let length = this.length;
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        if (dart.equals(this.elementAt(i), element)) return true;
        if (length != this.length) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      return false;
    }
    every(test) {
      let length = this.length;
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        if (!dart.test(test(this.elementAt(i)))) return false;
        if (length != this.length) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      return true;
    }
    any(test) {
      let length = this.length;
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        if (dart.test(test(this.elementAt(i)))) return true;
        if (length != this.length) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      return false;
    }
    firstWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      let length = this.length;
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        let element = this.elementAt(i);
        if (dart.test(test(element))) return element;
        if (length != this.length) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    lastWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      let length = this.length;
      for (let i = dart.notNull(length) - 1; i >= 0; i = i - 1) {
        let element = this.elementAt(i);
        if (dart.test(test(element))) return element;
        if (length != this.length) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    singleWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      let length = this.length;
      let match = null;
      let matchFound = false;
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        let element = this.elementAt(i);
        if (dart.test(test(element))) {
          if (matchFound) {
            dart.throw(_internal.IterableElementError.tooMany());
          }
          matchFound = true;
          match = element;
        }
        if (length != this.length) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      if (matchFound) return match;
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    join(separator = "") {
      let length = this.length;
      if (!separator[$isEmpty]) {
        if (length === 0) return "";
        let first = dart.str(this.elementAt(0));
        if (length != this.length) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
        let buffer = new core.StringBuffer.new(first);
        for (let i = 1; i < dart.notNull(length); i = i + 1) {
          buffer.write(separator);
          buffer.write(this.elementAt(i));
          if (length != this.length) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        return buffer.toString();
      } else {
        let buffer = new core.StringBuffer.new();
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          buffer.write(this.elementAt(i));
          if (length != this.length) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
        }
        return buffer.toString();
      }
    }
    where(test) {
      return super[$where](test);
    }
    map(T, f) {
      return new (_internal.MappedListIterable$(E, T)).new(this, f);
    }
    reduce(combine) {
      ELAndELToLEL().as(combine);
      let length = this.length;
      if (length === 0) dart.throw(_internal.IterableElementError.noElement());
      let value = this.elementAt(0);
      for (let i = 1; i < dart.notNull(length); i = i + 1) {
        value = combine(value, this.elementAt(i));
        if (length != this.length) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      return value;
    }
    fold(T, initialValue, combine) {
      let value = initialValue;
      let length = this.length;
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        value = combine(value, this.elementAt(i));
        if (length != this.length) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
      return value;
    }
    skip(count) {
      return new (SubListIterableOfEL()).new(this, count, null);
    }
    skipWhile(test) {
      return super[$skipWhile](test);
    }
    take(count) {
      return new (SubListIterableOfEL()).new(this, 0, count);
    }
    takeWhile(test) {
      return super[$takeWhile](test);
    }
    toList(opts) {
      let t27;
      let growable = opts && 'growable' in opts ? opts.growable : true;
      let result = null;
      if (dart.test(growable)) {
        result = (t27 = JSArrayOfEL().of([]), t27[$length] = this.length, t27);
      } else {
        result = ListOfEL().new(this.length);
      }
      for (let i = 0; i < dart.notNull(this.length); i = i + 1) {
        result[$_set](i, this.elementAt(i));
      }
      return result;
    }
    toSet() {
      let result = new (_HashSetOfEL()).new();
      for (let i = 0; i < dart.notNull(this.length); i = i + 1) {
        result.add(this.elementAt(i));
      }
      return result;
    }
  }
  (ListIterable.new = function() {
    ListIterable.__proto__.new.call(this);
    ;
  }).prototype = ListIterable.prototype;
  dart.addTypeTests(ListIterable);
  ListIterable.prototype[_is_ListIterable_default] = true;
  dart.addTypeCaches(ListIterable);
  dart.setMethodSignature(ListIterable, () => ({
    __proto__: dart.getMethods(ListIterable.__proto__),
    map: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]]),
    [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]]),
    fold: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]]),
    [$fold]: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]])
  }));
  dart.setGetterSignature(ListIterable, () => ({
    __proto__: dart.getGetters(ListIterable.__proto__),
    iterator: core.Iterator$(E),
    [$iterator]: core.Iterator$(E)
  }));
  dart.setLibraryUri(ListIterable, L10);
  dart.defineExtensionMethods(ListIterable, [
    'forEach',
    'contains',
    'every',
    'any',
    'firstWhere',
    'lastWhere',
    'singleWhere',
    'join',
    'where',
    'map',
    'reduce',
    'fold',
    'skip',
    'skipWhile',
    'take',
    'takeWhile',
    'toList',
    'toSet'
  ]);
  dart.defineExtensionAccessors(ListIterable, [
    'iterator',
    'isEmpty',
    'first',
    'last',
    'single'
  ]);
  return ListIterable;
});
_internal.ListIterable = _internal.ListIterable$();
dart.addTypeTests(_internal.ListIterable, _is_ListIterable_default);
var _iterable$ = dart.privateName(_internal, "_iterable");
var _start$ = dart.privateName(_internal, "_start");
var _endOrLength$ = dart.privateName(_internal, "_endOrLength");
var _endIndex = dart.privateName(_internal, "_endIndex");
var _startIndex = dart.privateName(_internal, "_startIndex");
const _is_SubListIterable_default = Symbol('_is_SubListIterable_default');
_internal.SubListIterable$ = dart.generic(E => {
  var EmptyIterableOfEL = () => (EmptyIterableOfEL = dart.constFn(_internal.EmptyIterable$(E)))();
  var SubListIterableOfEL = () => (SubListIterableOfEL = dart.constFn(_internal.SubListIterable$(E)))();
  var JSArrayOfEL = () => (JSArrayOfEL = dart.constFn(_interceptors.JSArray$(E)))();
  var ListOfEL = () => (ListOfEL = dart.constFn(core.List$(E)))();
  class SubListIterable extends _internal.ListIterable$(E) {
    get [_endIndex]() {
      let length = this[_iterable$][$length];
      if (this[_endOrLength$] == null || dart.notNull(this[_endOrLength$]) > dart.notNull(length)) return length;
      return this[_endOrLength$];
    }
    get [_startIndex]() {
      let length = this[_iterable$][$length];
      if (dart.notNull(this[_start$]) > dart.notNull(length)) return length;
      return this[_start$];
    }
    get length() {
      let length = this[_iterable$][$length];
      if (dart.notNull(this[_start$]) >= dart.notNull(length)) return 0;
      if (this[_endOrLength$] == null || dart.notNull(this[_endOrLength$]) >= dart.notNull(length)) {
        return dart.notNull(length) - dart.notNull(this[_start$]);
      }
      return dart.notNull(this[_endOrLength$]) - dart.notNull(this[_start$]);
    }
    elementAt(index) {
      let realIndex = dart.notNull(this[_startIndex]) + dart.notNull(index);
      if (dart.notNull(index) < 0 || realIndex >= dart.notNull(this[_endIndex])) {
        dart.throw(new core.IndexError.new(index, this, "index"));
      }
      return this[_iterable$][$elementAt](realIndex);
    }
    skip(count) {
      core.RangeError.checkNotNegative(count, "count");
      let newStart = dart.notNull(this[_start$]) + dart.notNull(count);
      if (this[_endOrLength$] != null && newStart >= dart.notNull(this[_endOrLength$])) {
        return new (EmptyIterableOfEL()).new();
      }
      return new (SubListIterableOfEL()).new(this[_iterable$], newStart, this[_endOrLength$]);
    }
    take(count) {
      core.RangeError.checkNotNegative(count, "count");
      if (this[_endOrLength$] == null) {
        return new (SubListIterableOfEL()).new(this[_iterable$], this[_start$], dart.notNull(this[_start$]) + dart.notNull(count));
      } else {
        let newEnd = dart.notNull(this[_start$]) + dart.notNull(count);
        if (dart.notNull(this[_endOrLength$]) < newEnd) return this;
        return new (SubListIterableOfEL()).new(this[_iterable$], this[_start$], newEnd);
      }
    }
    toList(opts) {
      let t27;
      let growable = opts && 'growable' in opts ? opts.growable : true;
      let start = this[_start$];
      let end = this[_iterable$][$length];
      if (this[_endOrLength$] != null && dart.notNull(this[_endOrLength$]) < dart.notNull(end)) end = this[_endOrLength$];
      let length = dart.notNull(end) - dart.notNull(start);
      if (length < 0) length = 0;
      let result = dart.test(growable) ? (t27 = JSArrayOfEL().of([]), t27[$length] = length, t27) : ListOfEL().new(length);
      for (let i = 0; i < length; i = i + 1) {
        result[$_set](i, this[_iterable$][$elementAt](dart.notNull(start) + i));
        if (dart.notNull(this[_iterable$][$length]) < dart.notNull(end)) dart.throw(new core.ConcurrentModificationError.new(this));
      }
      return result;
    }
  }
  (SubListIterable.new = function(_iterable, _start, _endOrLength) {
    this[_iterable$] = _iterable;
    this[_start$] = _start;
    this[_endOrLength$] = _endOrLength;
    SubListIterable.__proto__.new.call(this);
    core.RangeError.checkNotNegative(this[_start$], "start");
    if (this[_endOrLength$] != null) {
      core.RangeError.checkNotNegative(this[_endOrLength$], "end");
      if (dart.notNull(this[_start$]) > dart.notNull(this[_endOrLength$])) {
        dart.throw(new core.RangeError.range(this[_start$], 0, this[_endOrLength$], "start"));
      }
    }
  }).prototype = SubListIterable.prototype;
  dart.addTypeTests(SubListIterable);
  SubListIterable.prototype[_is_SubListIterable_default] = true;
  dart.addTypeCaches(SubListIterable);
  dart.setGetterSignature(SubListIterable, () => ({
    __proto__: dart.getGetters(SubListIterable.__proto__),
    [_endIndex]: core.int,
    [_startIndex]: core.int
  }));
  dart.setLibraryUri(SubListIterable, L10);
  dart.setFieldSignature(SubListIterable, () => ({
    __proto__: dart.getFields(SubListIterable.__proto__),
    [_iterable$]: dart.finalFieldType(core.Iterable$(E)),
    [_start$]: dart.finalFieldType(core.int),
    [_endOrLength$]: dart.finalFieldType(core.int)
  }));
  dart.defineExtensionMethods(SubListIterable, ['elementAt', 'skip', 'take', 'toList']);
  dart.defineExtensionAccessors(SubListIterable, ['length']);
  return SubListIterable;
});
_internal.SubListIterable = _internal.SubListIterable$();
dart.addTypeTests(_internal.SubListIterable, _is_SubListIterable_default);
var _current$ = dart.privateName(_internal, "_current");
var _length$ = dart.privateName(_internal, "_length");
var _index$ = dart.privateName(_internal, "_index");
const _is_ListIterator_default = Symbol('_is_ListIterator_default');
_internal.ListIterator$ = dart.generic(E => {
  class ListIterator extends core.Object {
    get current() {
      return this[_current$];
    }
    moveNext() {
      let length = this[_iterable$][$length];
      if (this[_length$] != length) {
        dart.throw(new core.ConcurrentModificationError.new(this[_iterable$]));
      }
      if (dart.notNull(this[_index$]) >= dart.notNull(length)) {
        this[_current$] = null;
        return false;
      }
      this[_current$] = this[_iterable$][$elementAt](this[_index$]);
      this[_index$] = dart.notNull(this[_index$]) + 1;
      return true;
    }
  }
  (ListIterator.new = function(iterable) {
    this[_current$] = null;
    this[_iterable$] = iterable;
    this[_length$] = iterable[$length];
    this[_index$] = 0;
    ;
  }).prototype = ListIterator.prototype;
  dart.addTypeTests(ListIterator);
  ListIterator.prototype[_is_ListIterator_default] = true;
  dart.addTypeCaches(ListIterator);
  ListIterator[dart.implements] = () => [core.Iterator$(E)];
  dart.setMethodSignature(ListIterator, () => ({
    __proto__: dart.getMethods(ListIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(ListIterator, () => ({
    __proto__: dart.getGetters(ListIterator.__proto__),
    current: E
  }));
  dart.setLibraryUri(ListIterator, L10);
  dart.setFieldSignature(ListIterator, () => ({
    __proto__: dart.getFields(ListIterator.__proto__),
    [_iterable$]: dart.finalFieldType(core.Iterable$(E)),
    [_length$]: dart.finalFieldType(core.int),
    [_index$]: dart.fieldType(core.int),
    [_current$]: dart.fieldType(E)
  }));
  return ListIterator;
});
_internal.ListIterator = _internal.ListIterator$();
dart.addTypeTests(_internal.ListIterator, _is_ListIterator_default);
var _f$ = dart.privateName(_internal, "_f");
const _is_MappedIterable_default = Symbol('_is_MappedIterable_default');
_internal.MappedIterable$ = dart.generic((S, T) => {
  var MappedIteratorOfSL$TL = () => (MappedIteratorOfSL$TL = dart.constFn(_internal.MappedIterator$(S, T)))();
  class MappedIterable extends core.Iterable$(T) {
    static new(iterable, $function) {
      if (_internal.EfficientLengthIterable.is(iterable)) {
        return new (_internal.EfficientLengthMappedIterable$(S, T)).new(iterable, $function);
      }
      return new (_internal.MappedIterable$(S, T)).__(iterable, $function);
    }
    get iterator() {
      return new (MappedIteratorOfSL$TL()).new(this[_iterable$][$iterator], this[_f$]);
    }
    get length() {
      return this[_iterable$][$length];
    }
    get isEmpty() {
      return this[_iterable$][$isEmpty];
    }
    get first() {
      let t27;
      t27 = this[_iterable$][$first];
      return this[_f$](t27);
    }
    get last() {
      let t27;
      t27 = this[_iterable$][$last];
      return this[_f$](t27);
    }
    get single() {
      let t27;
      t27 = this[_iterable$][$single];
      return this[_f$](t27);
    }
    elementAt(index) {
      let t27;
      t27 = this[_iterable$][$elementAt](index);
      return this[_f$](t27);
    }
  }
  (MappedIterable.__ = function(_iterable, _f) {
    this[_iterable$] = _iterable;
    this[_f$] = _f;
    MappedIterable.__proto__.new.call(this);
    ;
  }).prototype = MappedIterable.prototype;
  dart.addTypeTests(MappedIterable);
  MappedIterable.prototype[_is_MappedIterable_default] = true;
  dart.addTypeCaches(MappedIterable);
  dart.setGetterSignature(MappedIterable, () => ({
    __proto__: dart.getGetters(MappedIterable.__proto__),
    iterator: core.Iterator$(T),
    [$iterator]: core.Iterator$(T)
  }));
  dart.setLibraryUri(MappedIterable, L10);
  dart.setFieldSignature(MappedIterable, () => ({
    __proto__: dart.getFields(MappedIterable.__proto__),
    [_iterable$]: dart.finalFieldType(core.Iterable$(S)),
    [_f$]: dart.finalFieldType(dart.fnType(T, [S]))
  }));
  dart.defineExtensionMethods(MappedIterable, ['elementAt']);
  dart.defineExtensionAccessors(MappedIterable, [
    'iterator',
    'length',
    'isEmpty',
    'first',
    'last',
    'single'
  ]);
  return MappedIterable;
});
_internal.MappedIterable = _internal.MappedIterable$();
dart.addTypeTests(_internal.MappedIterable, _is_MappedIterable_default);
const _is_EfficientLengthMappedIterable_default = Symbol('_is_EfficientLengthMappedIterable_default');
_internal.EfficientLengthMappedIterable$ = dart.generic((S, T) => {
  class EfficientLengthMappedIterable extends _internal.MappedIterable$(S, T) {}
  (EfficientLengthMappedIterable.new = function(iterable, $function) {
    EfficientLengthMappedIterable.__proto__.__.call(this, iterable, $function);
    ;
  }).prototype = EfficientLengthMappedIterable.prototype;
  dart.addTypeTests(EfficientLengthMappedIterable);
  EfficientLengthMappedIterable.prototype[_is_EfficientLengthMappedIterable_default] = true;
  dart.addTypeCaches(EfficientLengthMappedIterable);
  EfficientLengthMappedIterable[dart.implements] = () => [_internal.EfficientLengthIterable$(T)];
  dart.setLibraryUri(EfficientLengthMappedIterable, L10);
  return EfficientLengthMappedIterable;
});
_internal.EfficientLengthMappedIterable = _internal.EfficientLengthMappedIterable$();
dart.addTypeTests(_internal.EfficientLengthMappedIterable, _is_EfficientLengthMappedIterable_default);
var _iterator$ = dart.privateName(_internal, "_iterator");
const _is_Iterator_default = Symbol('_is_Iterator_default');
core.Iterator$ = dart.generic(E => {
  class Iterator extends core.Object {}
  (Iterator.new = function() {
    ;
  }).prototype = Iterator.prototype;
  dart.addTypeTests(Iterator);
  Iterator.prototype[_is_Iterator_default] = true;
  dart.addTypeCaches(Iterator);
  dart.setLibraryUri(Iterator, L1$);
  return Iterator;
});
core.Iterator = core.Iterator$();
dart.addTypeTests(core.Iterator, _is_Iterator_default);
const _is_MappedIterator_default = Symbol('_is_MappedIterator_default');
_internal.MappedIterator$ = dart.generic((S, T) => {
  class MappedIterator extends core.Iterator$(T) {
    moveNext() {
      let t27;
      if (dart.test(this[_iterator$].moveNext())) {
        this[_current$] = (t27 = this[_iterator$].current, this[_f$](t27));
        return true;
      }
      this[_current$] = null;
      return false;
    }
    get current() {
      return this[_current$];
    }
  }
  (MappedIterator.new = function(_iterator, _f) {
    this[_current$] = null;
    this[_iterator$] = _iterator;
    this[_f$] = _f;
    ;
  }).prototype = MappedIterator.prototype;
  dart.addTypeTests(MappedIterator);
  MappedIterator.prototype[_is_MappedIterator_default] = true;
  dart.addTypeCaches(MappedIterator);
  dart.setMethodSignature(MappedIterator, () => ({
    __proto__: dart.getMethods(MappedIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(MappedIterator, () => ({
    __proto__: dart.getGetters(MappedIterator.__proto__),
    current: T
  }));
  dart.setLibraryUri(MappedIterator, L10);
  dart.setFieldSignature(MappedIterator, () => ({
    __proto__: dart.getFields(MappedIterator.__proto__),
    [_current$]: dart.fieldType(T),
    [_iterator$]: dart.finalFieldType(core.Iterator$(S)),
    [_f$]: dart.finalFieldType(dart.fnType(T, [S]))
  }));
  return MappedIterator;
});
_internal.MappedIterator = _internal.MappedIterator$();
dart.addTypeTests(_internal.MappedIterator, _is_MappedIterator_default);
const _is_MappedListIterable_default = Symbol('_is_MappedListIterable_default');
_internal.MappedListIterable$ = dart.generic((S, T) => {
  class MappedListIterable extends _internal.ListIterable$(T) {
    get length() {
      return this[_source$][$length];
    }
    elementAt(index) {
      let t27;
      t27 = this[_source$][$elementAt](index);
      return this[_f$](t27);
    }
  }
  (MappedListIterable.new = function(_source, _f) {
    this[_source$] = _source;
    this[_f$] = _f;
    MappedListIterable.__proto__.new.call(this);
    ;
  }).prototype = MappedListIterable.prototype;
  dart.addTypeTests(MappedListIterable);
  MappedListIterable.prototype[_is_MappedListIterable_default] = true;
  dart.addTypeCaches(MappedListIterable);
  dart.setLibraryUri(MappedListIterable, L10);
  dart.setFieldSignature(MappedListIterable, () => ({
    __proto__: dart.getFields(MappedListIterable.__proto__),
    [_source$]: dart.finalFieldType(core.Iterable$(S)),
    [_f$]: dart.finalFieldType(dart.fnType(T, [S]))
  }));
  dart.defineExtensionMethods(MappedListIterable, ['elementAt']);
  dart.defineExtensionAccessors(MappedListIterable, ['length']);
  return MappedListIterable;
});
_internal.MappedListIterable = _internal.MappedListIterable$();
dart.addTypeTests(_internal.MappedListIterable, _is_MappedListIterable_default);
const _is_WhereIterable_default = Symbol('_is_WhereIterable_default');
_internal.WhereIterable$ = dart.generic(E => {
  var WhereIteratorOfEL = () => (WhereIteratorOfEL = dart.constFn(_internal.WhereIterator$(E)))();
  class WhereIterable extends core.Iterable$(E) {
    get iterator() {
      return new (WhereIteratorOfEL()).new(this[_iterable$][$iterator], this[_f$]);
    }
    map(T, f) {
      return new (_internal.MappedIterable$(E, T)).__(this, f);
    }
  }
  (WhereIterable.new = function(_iterable, _f) {
    this[_iterable$] = _iterable;
    this[_f$] = _f;
    WhereIterable.__proto__.new.call(this);
    ;
  }).prototype = WhereIterable.prototype;
  dart.addTypeTests(WhereIterable);
  WhereIterable.prototype[_is_WhereIterable_default] = true;
  dart.addTypeCaches(WhereIterable);
  dart.setMethodSignature(WhereIterable, () => ({
    __proto__: dart.getMethods(WhereIterable.__proto__),
    map: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]]),
    [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]])
  }));
  dart.setGetterSignature(WhereIterable, () => ({
    __proto__: dart.getGetters(WhereIterable.__proto__),
    iterator: core.Iterator$(E),
    [$iterator]: core.Iterator$(E)
  }));
  dart.setLibraryUri(WhereIterable, L10);
  dart.setFieldSignature(WhereIterable, () => ({
    __proto__: dart.getFields(WhereIterable.__proto__),
    [_iterable$]: dart.finalFieldType(core.Iterable$(E)),
    [_f$]: dart.finalFieldType(dart.fnType(core.bool, [E]))
  }));
  dart.defineExtensionMethods(WhereIterable, ['map']);
  dart.defineExtensionAccessors(WhereIterable, ['iterator']);
  return WhereIterable;
});
_internal.WhereIterable = _internal.WhereIterable$();
dart.addTypeTests(_internal.WhereIterable, _is_WhereIterable_default);
const _is_WhereIterator_default = Symbol('_is_WhereIterator_default');
_internal.WhereIterator$ = dart.generic(E => {
  class WhereIterator extends core.Iterator$(E) {
    moveNext() {
      let t27;
      while (dart.test(this[_iterator$].moveNext())) {
        if (dart.test((t27 = this[_iterator$].current, this[_f$](t27)))) {
          return true;
        }
      }
      return false;
    }
    get current() {
      return this[_iterator$].current;
    }
  }
  (WhereIterator.new = function(_iterator, _f) {
    this[_iterator$] = _iterator;
    this[_f$] = _f;
    ;
  }).prototype = WhereIterator.prototype;
  dart.addTypeTests(WhereIterator);
  WhereIterator.prototype[_is_WhereIterator_default] = true;
  dart.addTypeCaches(WhereIterator);
  dart.setMethodSignature(WhereIterator, () => ({
    __proto__: dart.getMethods(WhereIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(WhereIterator, () => ({
    __proto__: dart.getGetters(WhereIterator.__proto__),
    current: E
  }));
  dart.setLibraryUri(WhereIterator, L10);
  dart.setFieldSignature(WhereIterator, () => ({
    __proto__: dart.getFields(WhereIterator.__proto__),
    [_iterator$]: dart.finalFieldType(core.Iterator$(E)),
    [_f$]: dart.finalFieldType(dart.fnType(core.bool, [E]))
  }));
  return WhereIterator;
});
_internal.WhereIterator = _internal.WhereIterator$();
dart.addTypeTests(_internal.WhereIterator, _is_WhereIterator_default);
const _is_ExpandIterable_default = Symbol('_is_ExpandIterable_default');
_internal.ExpandIterable$ = dart.generic((S, T) => {
  var ExpandIteratorOfSL$TL = () => (ExpandIteratorOfSL$TL = dart.constFn(_internal.ExpandIterator$(S, T)))();
  class ExpandIterable extends core.Iterable$(T) {
    get iterator() {
      return new (ExpandIteratorOfSL$TL()).new(this[_iterable$][$iterator], this[_f$]);
    }
  }
  (ExpandIterable.new = function(_iterable, _f) {
    this[_iterable$] = _iterable;
    this[_f$] = _f;
    ExpandIterable.__proto__.new.call(this);
    ;
  }).prototype = ExpandIterable.prototype;
  dart.addTypeTests(ExpandIterable);
  ExpandIterable.prototype[_is_ExpandIterable_default] = true;
  dart.addTypeCaches(ExpandIterable);
  dart.setGetterSignature(ExpandIterable, () => ({
    __proto__: dart.getGetters(ExpandIterable.__proto__),
    iterator: core.Iterator$(T),
    [$iterator]: core.Iterator$(T)
  }));
  dart.setLibraryUri(ExpandIterable, L10);
  dart.setFieldSignature(ExpandIterable, () => ({
    __proto__: dart.getFields(ExpandIterable.__proto__),
    [_iterable$]: dart.finalFieldType(core.Iterable$(S)),
    [_f$]: dart.finalFieldType(dart.fnType(core.Iterable$(T), [S]))
  }));
  dart.defineExtensionAccessors(ExpandIterable, ['iterator']);
  return ExpandIterable;
});
_internal.ExpandIterable = _internal.ExpandIterable$();
dart.addTypeTests(_internal.ExpandIterable, _is_ExpandIterable_default);
var _currentExpansion = dart.privateName(_internal, "_currentExpansion");
var C22;
const _is_ExpandIterator_default = Symbol('_is_ExpandIterator_default');
_internal.ExpandIterator$ = dart.generic((S, T) => {
  class ExpandIterator extends core.Object {
    get current() {
      return this[_current$];
    }
    moveNext() {
      let t27;
      if (this[_currentExpansion] == null) return false;
      while (!dart.test(this[_currentExpansion].moveNext())) {
        this[_current$] = null;
        if (dart.test(this[_iterator$].moveNext())) {
          this[_currentExpansion] = null;
          this[_currentExpansion] = (t27 = this[_iterator$].current, this[_f$](t27))[$iterator];
        } else {
          return false;
        }
      }
      this[_current$] = this[_currentExpansion].current;
      return true;
    }
  }
  (ExpandIterator.new = function(_iterator, _f) {
    this[_currentExpansion] = C22 || CT.C22;
    this[_current$] = null;
    this[_iterator$] = _iterator;
    this[_f$] = _f;
    ;
  }).prototype = ExpandIterator.prototype;
  dart.addTypeTests(ExpandIterator);
  ExpandIterator.prototype[_is_ExpandIterator_default] = true;
  dart.addTypeCaches(ExpandIterator);
  ExpandIterator[dart.implements] = () => [core.Iterator$(T)];
  dart.setMethodSignature(ExpandIterator, () => ({
    __proto__: dart.getMethods(ExpandIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(ExpandIterator, () => ({
    __proto__: dart.getGetters(ExpandIterator.__proto__),
    current: T
  }));
  dart.setLibraryUri(ExpandIterator, L10);
  dart.setFieldSignature(ExpandIterator, () => ({
    __proto__: dart.getFields(ExpandIterator.__proto__),
    [_iterator$]: dart.finalFieldType(core.Iterator$(S)),
    [_f$]: dart.finalFieldType(dart.fnType(core.Iterable$(T), [S])),
    [_currentExpansion]: dart.fieldType(core.Iterator$(T)),
    [_current$]: dart.fieldType(T)
  }));
  return ExpandIterator;
});
_internal.ExpandIterator = _internal.ExpandIterator$();
dart.addTypeTests(_internal.ExpandIterator, _is_ExpandIterator_default);
var _takeCount$ = dart.privateName(_internal, "_takeCount");
const _is_TakeIterable_default = Symbol('_is_TakeIterable_default');
_internal.TakeIterable$ = dart.generic(E => {
  var TakeIteratorOfEL = () => (TakeIteratorOfEL = dart.constFn(_internal.TakeIterator$(E)))();
  class TakeIterable extends core.Iterable$(E) {
    static new(iterable, takeCount) {
      core.ArgumentError.checkNotNull(core.int, takeCount, "takeCount");
      core.RangeError.checkNotNegative(takeCount, "takeCount");
      if (_internal.EfficientLengthIterable.is(iterable)) {
        return new (_internal.EfficientLengthTakeIterable$(E)).new(iterable, takeCount);
      }
      return new (_internal.TakeIterable$(E)).__(iterable, takeCount);
    }
    get iterator() {
      return new (TakeIteratorOfEL()).new(this[_iterable$][$iterator], this[_takeCount$]);
    }
  }
  (TakeIterable.__ = function(_iterable, _takeCount) {
    this[_iterable$] = _iterable;
    this[_takeCount$] = _takeCount;
    TakeIterable.__proto__.new.call(this);
    ;
  }).prototype = TakeIterable.prototype;
  dart.addTypeTests(TakeIterable);
  TakeIterable.prototype[_is_TakeIterable_default] = true;
  dart.addTypeCaches(TakeIterable);
  dart.setGetterSignature(TakeIterable, () => ({
    __proto__: dart.getGetters(TakeIterable.__proto__),
    iterator: core.Iterator$(E),
    [$iterator]: core.Iterator$(E)
  }));
  dart.setLibraryUri(TakeIterable, L10);
  dart.setFieldSignature(TakeIterable, () => ({
    __proto__: dart.getFields(TakeIterable.__proto__),
    [_iterable$]: dart.finalFieldType(core.Iterable$(E)),
    [_takeCount$]: dart.finalFieldType(core.int)
  }));
  dart.defineExtensionAccessors(TakeIterable, ['iterator']);
  return TakeIterable;
});
_internal.TakeIterable = _internal.TakeIterable$();
dart.addTypeTests(_internal.TakeIterable, _is_TakeIterable_default);
const _is_EfficientLengthTakeIterable_default = Symbol('_is_EfficientLengthTakeIterable_default');
_internal.EfficientLengthTakeIterable$ = dart.generic(E => {
  class EfficientLengthTakeIterable extends _internal.TakeIterable$(E) {
    get length() {
      let iterableLength = this[_iterable$][$length];
      if (dart.notNull(iterableLength) > dart.notNull(this[_takeCount$])) return this[_takeCount$];
      return iterableLength;
    }
  }
  (EfficientLengthTakeIterable.new = function(iterable, takeCount) {
    EfficientLengthTakeIterable.__proto__.__.call(this, iterable, takeCount);
    ;
  }).prototype = EfficientLengthTakeIterable.prototype;
  dart.addTypeTests(EfficientLengthTakeIterable);
  EfficientLengthTakeIterable.prototype[_is_EfficientLengthTakeIterable_default] = true;
  dart.addTypeCaches(EfficientLengthTakeIterable);
  EfficientLengthTakeIterable[dart.implements] = () => [_internal.EfficientLengthIterable$(E)];
  dart.setLibraryUri(EfficientLengthTakeIterable, L10);
  dart.defineExtensionAccessors(EfficientLengthTakeIterable, ['length']);
  return EfficientLengthTakeIterable;
});
_internal.EfficientLengthTakeIterable = _internal.EfficientLengthTakeIterable$();
dart.addTypeTests(_internal.EfficientLengthTakeIterable, _is_EfficientLengthTakeIterable_default);
var _remaining$ = dart.privateName(_internal, "_remaining");
const _is_TakeIterator_default = Symbol('_is_TakeIterator_default');
_internal.TakeIterator$ = dart.generic(E => {
  class TakeIterator extends core.Iterator$(E) {
    moveNext() {
      this[_remaining$] = dart.notNull(this[_remaining$]) - 1;
      if (dart.notNull(this[_remaining$]) >= 0) {
        return this[_iterator$].moveNext();
      }
      this[_remaining$] = -1;
      return false;
    }
    get current() {
      if (dart.notNull(this[_remaining$]) < 0) return null;
      return this[_iterator$].current;
    }
  }
  (TakeIterator.new = function(_iterator, _remaining) {
    this[_iterator$] = _iterator;
    this[_remaining$] = _remaining;
    if (!(dart.notNull(this[_remaining$]) >= 0)) dart.assertFailed(null, L16, 531, 12, "_remaining >= 0");
  }).prototype = TakeIterator.prototype;
  dart.addTypeTests(TakeIterator);
  TakeIterator.prototype[_is_TakeIterator_default] = true;
  dart.addTypeCaches(TakeIterator);
  dart.setMethodSignature(TakeIterator, () => ({
    __proto__: dart.getMethods(TakeIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(TakeIterator, () => ({
    __proto__: dart.getGetters(TakeIterator.__proto__),
    current: E
  }));
  dart.setLibraryUri(TakeIterator, L10);
  dart.setFieldSignature(TakeIterator, () => ({
    __proto__: dart.getFields(TakeIterator.__proto__),
    [_iterator$]: dart.finalFieldType(core.Iterator$(E)),
    [_remaining$]: dart.fieldType(core.int)
  }));
  return TakeIterator;
});
_internal.TakeIterator = _internal.TakeIterator$();
dart.addTypeTests(_internal.TakeIterator, _is_TakeIterator_default);
const _is_TakeWhileIterable_default = Symbol('_is_TakeWhileIterable_default');
_internal.TakeWhileIterable$ = dart.generic(E => {
  var TakeWhileIteratorOfEL = () => (TakeWhileIteratorOfEL = dart.constFn(_internal.TakeWhileIterator$(E)))();
  class TakeWhileIterable extends core.Iterable$(E) {
    get iterator() {
      return new (TakeWhileIteratorOfEL()).new(this[_iterable$][$iterator], this[_f$]);
    }
  }
  (TakeWhileIterable.new = function(_iterable, _f) {
    this[_iterable$] = _iterable;
    this[_f$] = _f;
    TakeWhileIterable.__proto__.new.call(this);
    ;
  }).prototype = TakeWhileIterable.prototype;
  dart.addTypeTests(TakeWhileIterable);
  TakeWhileIterable.prototype[_is_TakeWhileIterable_default] = true;
  dart.addTypeCaches(TakeWhileIterable);
  dart.setGetterSignature(TakeWhileIterable, () => ({
    __proto__: dart.getGetters(TakeWhileIterable.__proto__),
    iterator: core.Iterator$(E),
    [$iterator]: core.Iterator$(E)
  }));
  dart.setLibraryUri(TakeWhileIterable, L10);
  dart.setFieldSignature(TakeWhileIterable, () => ({
    __proto__: dart.getFields(TakeWhileIterable.__proto__),
    [_iterable$]: dart.finalFieldType(core.Iterable$(E)),
    [_f$]: dart.finalFieldType(dart.fnType(core.bool, [E]))
  }));
  dart.defineExtensionAccessors(TakeWhileIterable, ['iterator']);
  return TakeWhileIterable;
});
_internal.TakeWhileIterable = _internal.TakeWhileIterable$();
dart.addTypeTests(_internal.TakeWhileIterable, _is_TakeWhileIterable_default);
var _isFinished = dart.privateName(_internal, "_isFinished");
const _is_TakeWhileIterator_default = Symbol('_is_TakeWhileIterator_default');
_internal.TakeWhileIterator$ = dart.generic(E => {
  class TakeWhileIterator extends core.Iterator$(E) {
    moveNext() {
      let t27;
      if (dart.test(this[_isFinished])) return false;
      if (!dart.test(this[_iterator$].moveNext()) || !dart.test((t27 = this[_iterator$].current, this[_f$](t27)))) {
        this[_isFinished] = true;
        return false;
      }
      return true;
    }
    get current() {
      if (dart.test(this[_isFinished])) return null;
      return this[_iterator$].current;
    }
  }
  (TakeWhileIterator.new = function(_iterator, _f) {
    this[_isFinished] = false;
    this[_iterator$] = _iterator;
    this[_f$] = _f;
    ;
  }).prototype = TakeWhileIterator.prototype;
  dart.addTypeTests(TakeWhileIterator);
  TakeWhileIterator.prototype[_is_TakeWhileIterator_default] = true;
  dart.addTypeCaches(TakeWhileIterator);
  dart.setMethodSignature(TakeWhileIterator, () => ({
    __proto__: dart.getMethods(TakeWhileIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(TakeWhileIterator, () => ({
    __proto__: dart.getGetters(TakeWhileIterator.__proto__),
    current: E
  }));
  dart.setLibraryUri(TakeWhileIterator, L10);
  dart.setFieldSignature(TakeWhileIterator, () => ({
    __proto__: dart.getFields(TakeWhileIterator.__proto__),
    [_iterator$]: dart.finalFieldType(core.Iterator$(E)),
    [_f$]: dart.finalFieldType(dart.fnType(core.bool, [E])),
    [_isFinished]: dart.fieldType(core.bool)
  }));
  return TakeWhileIterator;
});
_internal.TakeWhileIterator = _internal.TakeWhileIterator$();
dart.addTypeTests(_internal.TakeWhileIterator, _is_TakeWhileIterator_default);
var _skipCount$ = dart.privateName(_internal, "_skipCount");
const _is_SkipIterable_default = Symbol('_is_SkipIterable_default');
_internal.SkipIterable$ = dart.generic(E => {
  var SkipIterableOfEL = () => (SkipIterableOfEL = dart.constFn(_internal.SkipIterable$(E)))();
  var SkipIteratorOfEL = () => (SkipIteratorOfEL = dart.constFn(_internal.SkipIterator$(E)))();
  class SkipIterable extends core.Iterable$(E) {
    static new(iterable, count) {
      if (_internal.EfficientLengthIterable.is(iterable)) {
        return _internal.EfficientLengthSkipIterable$(E).new(iterable, count);
      }
      return new (_internal.SkipIterable$(E)).__(iterable, _internal._checkCount(count));
    }
    skip(count) {
      return new (SkipIterableOfEL()).__(this[_iterable$], dart.notNull(this[_skipCount$]) + dart.notNull(_internal._checkCount(count)));
    }
    get iterator() {
      return new (SkipIteratorOfEL()).new(this[_iterable$][$iterator], this[_skipCount$]);
    }
  }
  (SkipIterable.__ = function(_iterable, _skipCount) {
    this[_iterable$] = _iterable;
    this[_skipCount$] = _skipCount;
    SkipIterable.__proto__.new.call(this);
    ;
  }).prototype = SkipIterable.prototype;
  dart.addTypeTests(SkipIterable);
  SkipIterable.prototype[_is_SkipIterable_default] = true;
  dart.addTypeCaches(SkipIterable);
  dart.setGetterSignature(SkipIterable, () => ({
    __proto__: dart.getGetters(SkipIterable.__proto__),
    iterator: core.Iterator$(E),
    [$iterator]: core.Iterator$(E)
  }));
  dart.setLibraryUri(SkipIterable, L10);
  dart.setFieldSignature(SkipIterable, () => ({
    __proto__: dart.getFields(SkipIterable.__proto__),
    [_iterable$]: dart.finalFieldType(core.Iterable$(E)),
    [_skipCount$]: dart.finalFieldType(core.int)
  }));
  dart.defineExtensionMethods(SkipIterable, ['skip']);
  dart.defineExtensionAccessors(SkipIterable, ['iterator']);
  return SkipIterable;
});
_internal.SkipIterable = _internal.SkipIterable$();
dart.addTypeTests(_internal.SkipIterable, _is_SkipIterable_default);
const _is_EfficientLengthSkipIterable_default = Symbol('_is_EfficientLengthSkipIterable_default');
_internal.EfficientLengthSkipIterable$ = dart.generic(E => {
  var EfficientLengthSkipIterableOfEL = () => (EfficientLengthSkipIterableOfEL = dart.constFn(_internal.EfficientLengthSkipIterable$(E)))();
  class EfficientLengthSkipIterable extends _internal.SkipIterable$(E) {
    static new(iterable, count) {
      return new (_internal.EfficientLengthSkipIterable$(E)).__(iterable, _internal._checkCount(count));
    }
    get length() {
      let length = dart.notNull(this[_iterable$][$length]) - dart.notNull(this[_skipCount$]);
      if (length >= 0) return length;
      return 0;
    }
    skip(count) {
      return new (EfficientLengthSkipIterableOfEL()).__(this[_iterable$], dart.notNull(this[_skipCount$]) + dart.notNull(_internal._checkCount(count)));
    }
  }
  (EfficientLengthSkipIterable.__ = function(iterable, count) {
    EfficientLengthSkipIterable.__proto__.__.call(this, iterable, count);
    ;
  }).prototype = EfficientLengthSkipIterable.prototype;
  dart.addTypeTests(EfficientLengthSkipIterable);
  EfficientLengthSkipIterable.prototype[_is_EfficientLengthSkipIterable_default] = true;
  dart.addTypeCaches(EfficientLengthSkipIterable);
  EfficientLengthSkipIterable[dart.implements] = () => [_internal.EfficientLengthIterable$(E)];
  dart.setLibraryUri(EfficientLengthSkipIterable, L10);
  dart.defineExtensionMethods(EfficientLengthSkipIterable, ['skip']);
  dart.defineExtensionAccessors(EfficientLengthSkipIterable, ['length']);
  return EfficientLengthSkipIterable;
});
_internal.EfficientLengthSkipIterable = _internal.EfficientLengthSkipIterable$();
dart.addTypeTests(_internal.EfficientLengthSkipIterable, _is_EfficientLengthSkipIterable_default);
const _is_SkipIterator_default = Symbol('_is_SkipIterator_default');
_internal.SkipIterator$ = dart.generic(E => {
  class SkipIterator extends core.Iterator$(E) {
    moveNext() {
      for (let i = 0; i < dart.notNull(this[_skipCount$]); i = i + 1)
        this[_iterator$].moveNext();
      this[_skipCount$] = 0;
      return this[_iterator$].moveNext();
    }
    get current() {
      return this[_iterator$].current;
    }
  }
  (SkipIterator.new = function(_iterator, _skipCount) {
    this[_iterator$] = _iterator;
    this[_skipCount$] = _skipCount;
    if (!(dart.notNull(this[_skipCount$]) >= 0)) dart.assertFailed(null, L16, 636, 12, "_skipCount >= 0");
  }).prototype = SkipIterator.prototype;
  dart.addTypeTests(SkipIterator);
  SkipIterator.prototype[_is_SkipIterator_default] = true;
  dart.addTypeCaches(SkipIterator);
  dart.setMethodSignature(SkipIterator, () => ({
    __proto__: dart.getMethods(SkipIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(SkipIterator, () => ({
    __proto__: dart.getGetters(SkipIterator.__proto__),
    current: E
  }));
  dart.setLibraryUri(SkipIterator, L10);
  dart.setFieldSignature(SkipIterator, () => ({
    __proto__: dart.getFields(SkipIterator.__proto__),
    [_iterator$]: dart.finalFieldType(core.Iterator$(E)),
    [_skipCount$]: dart.fieldType(core.int)
  }));
  return SkipIterator;
});
_internal.SkipIterator = _internal.SkipIterator$();
dart.addTypeTests(_internal.SkipIterator, _is_SkipIterator_default);
const _is_SkipWhileIterable_default = Symbol('_is_SkipWhileIterable_default');
_internal.SkipWhileIterable$ = dart.generic(E => {
  var SkipWhileIteratorOfEL = () => (SkipWhileIteratorOfEL = dart.constFn(_internal.SkipWhileIterator$(E)))();
  class SkipWhileIterable extends core.Iterable$(E) {
    get iterator() {
      return new (SkipWhileIteratorOfEL()).new(this[_iterable$][$iterator], this[_f$]);
    }
  }
  (SkipWhileIterable.new = function(_iterable, _f) {
    this[_iterable$] = _iterable;
    this[_f$] = _f;
    SkipWhileIterable.__proto__.new.call(this);
    ;
  }).prototype = SkipWhileIterable.prototype;
  dart.addTypeTests(SkipWhileIterable);
  SkipWhileIterable.prototype[_is_SkipWhileIterable_default] = true;
  dart.addTypeCaches(SkipWhileIterable);
  dart.setGetterSignature(SkipWhileIterable, () => ({
    __proto__: dart.getGetters(SkipWhileIterable.__proto__),
    iterator: core.Iterator$(E),
    [$iterator]: core.Iterator$(E)
  }));
  dart.setLibraryUri(SkipWhileIterable, L10);
  dart.setFieldSignature(SkipWhileIterable, () => ({
    __proto__: dart.getFields(SkipWhileIterable.__proto__),
    [_iterable$]: dart.finalFieldType(core.Iterable$(E)),
    [_f$]: dart.finalFieldType(dart.fnType(core.bool, [E]))
  }));
  dart.defineExtensionAccessors(SkipWhileIterable, ['iterator']);
  return SkipWhileIterable;
});
_internal.SkipWhileIterable = _internal.SkipWhileIterable$();
dart.addTypeTests(_internal.SkipWhileIterable, _is_SkipWhileIterable_default);
var _hasSkipped = dart.privateName(_internal, "_hasSkipped");
const _is_SkipWhileIterator_default = Symbol('_is_SkipWhileIterator_default');
_internal.SkipWhileIterator$ = dart.generic(E => {
  class SkipWhileIterator extends core.Iterator$(E) {
    moveNext() {
      let t27;
      if (!dart.test(this[_hasSkipped])) {
        this[_hasSkipped] = true;
        while (dart.test(this[_iterator$].moveNext())) {
          if (!dart.test((t27 = this[_iterator$].current, this[_f$](t27)))) return true;
        }
      }
      return this[_iterator$].moveNext();
    }
    get current() {
      return this[_iterator$].current;
    }
  }
  (SkipWhileIterator.new = function(_iterator, _f) {
    this[_hasSkipped] = false;
    this[_iterator$] = _iterator;
    this[_f$] = _f;
    ;
  }).prototype = SkipWhileIterator.prototype;
  dart.addTypeTests(SkipWhileIterator);
  SkipWhileIterator.prototype[_is_SkipWhileIterator_default] = true;
  dart.addTypeCaches(SkipWhileIterator);
  dart.setMethodSignature(SkipWhileIterator, () => ({
    __proto__: dart.getMethods(SkipWhileIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(SkipWhileIterator, () => ({
    __proto__: dart.getGetters(SkipWhileIterator.__proto__),
    current: E
  }));
  dart.setLibraryUri(SkipWhileIterator, L10);
  dart.setFieldSignature(SkipWhileIterator, () => ({
    __proto__: dart.getFields(SkipWhileIterator.__proto__),
    [_iterator$]: dart.finalFieldType(core.Iterator$(E)),
    [_f$]: dart.finalFieldType(dart.fnType(core.bool, [E])),
    [_hasSkipped]: dart.fieldType(core.bool)
  }));
  return SkipWhileIterator;
});
_internal.SkipWhileIterator = _internal.SkipWhileIterator$();
dart.addTypeTests(_internal.SkipWhileIterator, _is_SkipWhileIterator_default);
const _is_EmptyIterable_default = Symbol('_is_EmptyIterable_default');
_internal.EmptyIterable$ = dart.generic(E => {
  var VoidToLEL = () => (VoidToLEL = dart.constFn(dart.fnType(E, [])))();
  var ELAndELToLEL = () => (ELAndELToLEL = dart.constFn(dart.fnType(E, [E, E])))();
  var JSArrayOfEL = () => (JSArrayOfEL = dart.constFn(_interceptors.JSArray$(E)))();
  var ListOfEL = () => (ListOfEL = dart.constFn(core.List$(E)))();
  var _HashSetOfEL = () => (_HashSetOfEL = dart.constFn(collection._HashSet$(E)))();
  class EmptyIterable extends _internal.EfficientLengthIterable$(E) {
    get iterator() {
      return C22 || CT.C22;
    }
    forEach(action) {
    }
    get isEmpty() {
      return true;
    }
    get length() {
      return 0;
    }
    get first() {
      dart.throw(_internal.IterableElementError.noElement());
    }
    get last() {
      dart.throw(_internal.IterableElementError.noElement());
    }
    get single() {
      dart.throw(_internal.IterableElementError.noElement());
    }
    elementAt(index) {
      dart.throw(new core.RangeError.range(index, 0, 0, "index"));
    }
    contains(element) {
      return false;
    }
    every(test) {
      return true;
    }
    any(test) {
      return false;
    }
    firstWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    lastWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    singleWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    join(separator = "") {
      return "";
    }
    where(test) {
      return this;
    }
    map(T, f) {
      return new (_internal.EmptyIterable$(T)).new();
    }
    reduce(combine) {
      ELAndELToLEL().as(combine);
      dart.throw(_internal.IterableElementError.noElement());
    }
    fold(T, initialValue, combine) {
      return initialValue;
    }
    skip(count) {
      core.RangeError.checkNotNegative(count, "count");
      return this;
    }
    skipWhile(test) {
      return this;
    }
    take(count) {
      core.RangeError.checkNotNegative(count, "count");
      return this;
    }
    takeWhile(test) {
      return this;
    }
    toList(opts) {
      let growable = opts && 'growable' in opts ? opts.growable : true;
      return dart.test(growable) ? JSArrayOfEL().of([]) : ListOfEL().new(0);
    }
    toSet() {
      return new (_HashSetOfEL()).new();
    }
  }
  (EmptyIterable.new = function() {
    EmptyIterable.__proto__.new.call(this);
    ;
  }).prototype = EmptyIterable.prototype;
  dart.addTypeTests(EmptyIterable);
  EmptyIterable.prototype[_is_EmptyIterable_default] = true;
  dart.addTypeCaches(EmptyIterable);
  dart.setMethodSignature(EmptyIterable, () => ({
    __proto__: dart.getMethods(EmptyIterable.__proto__),
    map: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]]),
    [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]]),
    fold: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]]),
    [$fold]: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]])
  }));
  dart.setGetterSignature(EmptyIterable, () => ({
    __proto__: dart.getGetters(EmptyIterable.__proto__),
    iterator: core.Iterator$(E),
    [$iterator]: core.Iterator$(E)
  }));
  dart.setLibraryUri(EmptyIterable, L10);
  dart.defineExtensionMethods(EmptyIterable, [
    'forEach',
    'elementAt',
    'contains',
    'every',
    'any',
    'firstWhere',
    'lastWhere',
    'singleWhere',
    'join',
    'where',
    'map',
    'reduce',
    'fold',
    'skip',
    'skipWhile',
    'take',
    'takeWhile',
    'toList',
    'toSet'
  ]);
  dart.defineExtensionAccessors(EmptyIterable, [
    'iterator',
    'isEmpty',
    'length',
    'first',
    'last',
    'single'
  ]);
  return EmptyIterable;
});
_internal.EmptyIterable = _internal.EmptyIterable$();
dart.addTypeTests(_internal.EmptyIterable, _is_EmptyIterable_default);
const _is_EmptyIterator_default = Symbol('_is_EmptyIterator_default');
_internal.EmptyIterator$ = dart.generic(E => {
  class EmptyIterator extends core.Object {
    moveNext() {
      return false;
    }
    get current() {
      return null;
    }
  }
  (EmptyIterator.new = function() {
    ;
  }).prototype = EmptyIterator.prototype;
  dart.addTypeTests(EmptyIterator);
  EmptyIterator.prototype[_is_EmptyIterator_default] = true;
  dart.addTypeCaches(EmptyIterator);
  EmptyIterator[dart.implements] = () => [core.Iterator$(E)];
  dart.setMethodSignature(EmptyIterator, () => ({
    __proto__: dart.getMethods(EmptyIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(EmptyIterator, () => ({
    __proto__: dart.getGetters(EmptyIterator.__proto__),
    current: E
  }));
  dart.setLibraryUri(EmptyIterator, L10);
  return EmptyIterator;
});
_internal.EmptyIterator = _internal.EmptyIterator$();
dart.addTypeTests(_internal.EmptyIterator, _is_EmptyIterator_default);
var _first$ = dart.privateName(_internal, "_first");
var _second$ = dart.privateName(_internal, "_second");
const _is_FollowedByIterable_default = Symbol('_is_FollowedByIterable_default');
_internal.FollowedByIterable$ = dart.generic(E => {
  var FollowedByIteratorOfEL = () => (FollowedByIteratorOfEL = dart.constFn(_internal.FollowedByIterator$(E)))();
  class FollowedByIterable extends core.Iterable$(E) {
    static firstEfficient(first, second) {
      if (_internal.EfficientLengthIterable$(E).is(second)) {
        return new (_internal.EfficientLengthFollowedByIterable$(E)).new(first, second);
      }
      return new (_internal.FollowedByIterable$(E)).new(first, second);
    }
    get iterator() {
      return new (FollowedByIteratorOfEL()).new(this[_first$], this[_second$]);
    }
    get length() {
      return dart.notNull(this[_first$][$length]) + dart.notNull(this[_second$][$length]);
    }
    get isEmpty() {
      return dart.test(this[_first$][$isEmpty]) && dart.test(this[_second$][$isEmpty]);
    }
    get isNotEmpty() {
      return dart.test(this[_first$][$isNotEmpty]) || dart.test(this[_second$][$isNotEmpty]);
    }
    contains(value) {
      return dart.test(this[_first$][$contains](value)) || dart.test(this[_second$][$contains](value));
    }
    get first() {
      let iterator = this[_first$][$iterator];
      if (dart.test(iterator.moveNext())) return iterator.current;
      return this[_second$][$first];
    }
    get last() {
      let iterator = this[_second$][$iterator];
      if (dart.test(iterator.moveNext())) {
        let last = iterator.current;
        while (dart.test(iterator.moveNext()))
          last = iterator.current;
        return last;
      }
      return this[_first$][$last];
    }
  }
  (FollowedByIterable.new = function(_first, _second) {
    this[_first$] = _first;
    this[_second$] = _second;
    FollowedByIterable.__proto__.new.call(this);
    ;
  }).prototype = FollowedByIterable.prototype;
  dart.addTypeTests(FollowedByIterable);
  FollowedByIterable.prototype[_is_FollowedByIterable_default] = true;
  dart.addTypeCaches(FollowedByIterable);
  dart.setGetterSignature(FollowedByIterable, () => ({
    __proto__: dart.getGetters(FollowedByIterable.__proto__),
    iterator: core.Iterator$(E),
    [$iterator]: core.Iterator$(E)
  }));
  dart.setLibraryUri(FollowedByIterable, L10);
  dart.setFieldSignature(FollowedByIterable, () => ({
    __proto__: dart.getFields(FollowedByIterable.__proto__),
    [_first$]: dart.finalFieldType(core.Iterable$(E)),
    [_second$]: dart.finalFieldType(core.Iterable$(E))
  }));
  dart.defineExtensionMethods(FollowedByIterable, ['contains']);
  dart.defineExtensionAccessors(FollowedByIterable, [
    'iterator',
    'length',
    'isEmpty',
    'isNotEmpty',
    'first',
    'last'
  ]);
  return FollowedByIterable;
});
_internal.FollowedByIterable = _internal.FollowedByIterable$();
dart.addTypeTests(_internal.FollowedByIterable, _is_FollowedByIterable_default);
const _is_EfficientLengthFollowedByIterable_default = Symbol('_is_EfficientLengthFollowedByIterable_default');
_internal.EfficientLengthFollowedByIterable$ = dart.generic(E => {
  var EfficientLengthFollowedByIterableOfEL = () => (EfficientLengthFollowedByIterableOfEL = dart.constFn(_internal.EfficientLengthFollowedByIterable$(E)))();
  var EfficientLengthIterableOfEL = () => (EfficientLengthIterableOfEL = dart.constFn(_internal.EfficientLengthIterable$(E)))();
  class EfficientLengthFollowedByIterable extends _internal.FollowedByIterable$(E) {
    skip(count) {
      let firstLength = this[_first$][$length];
      if (dart.notNull(count) >= dart.notNull(firstLength)) return this[_second$][$skip](dart.notNull(count) - dart.notNull(firstLength));
      return new (EfficientLengthFollowedByIterableOfEL()).new(EfficientLengthIterableOfEL().as(this[_first$][$skip](count)), EfficientLengthIterableOfEL().as(this[_second$]));
    }
    take(count) {
      let firstLength = this[_first$][$length];
      if (dart.notNull(count) <= dart.notNull(firstLength)) return this[_first$][$take](count);
      return new (EfficientLengthFollowedByIterableOfEL()).new(EfficientLengthIterableOfEL().as(this[_first$]), EfficientLengthIterableOfEL().as(this[_second$][$take](dart.notNull(count) - dart.notNull(firstLength))));
    }
    elementAt(index) {
      let firstLength = this[_first$][$length];
      if (dart.notNull(index) < dart.notNull(firstLength)) return this[_first$][$elementAt](index);
      return this[_second$][$elementAt](dart.notNull(index) - dart.notNull(firstLength));
    }
    get first() {
      if (dart.test(this[_first$][$isNotEmpty])) return this[_first$][$first];
      return this[_second$][$first];
    }
    get last() {
      if (dart.test(this[_second$][$isNotEmpty])) return this[_second$][$last];
      return this[_first$][$last];
    }
  }
  (EfficientLengthFollowedByIterable.new = function(first, second) {
    EfficientLengthFollowedByIterable.__proto__.new.call(this, first, second);
    ;
  }).prototype = EfficientLengthFollowedByIterable.prototype;
  dart.addTypeTests(EfficientLengthFollowedByIterable);
  EfficientLengthFollowedByIterable.prototype[_is_EfficientLengthFollowedByIterable_default] = true;
  dart.addTypeCaches(EfficientLengthFollowedByIterable);
  EfficientLengthFollowedByIterable[dart.implements] = () => [_internal.EfficientLengthIterable$(E)];
  dart.setLibraryUri(EfficientLengthFollowedByIterable, L10);
  dart.defineExtensionMethods(EfficientLengthFollowedByIterable, ['skip', 'take', 'elementAt']);
  dart.defineExtensionAccessors(EfficientLengthFollowedByIterable, ['first', 'last']);
  return EfficientLengthFollowedByIterable;
});
_internal.EfficientLengthFollowedByIterable = _internal.EfficientLengthFollowedByIterable$();
dart.addTypeTests(_internal.EfficientLengthFollowedByIterable, _is_EfficientLengthFollowedByIterable_default);
var _nextIterable$ = dart.privateName(_internal, "_nextIterable");
var _currentIterator = dart.privateName(_internal, "_currentIterator");
const _is_FollowedByIterator_default = Symbol('_is_FollowedByIterator_default');
_internal.FollowedByIterator$ = dart.generic(E => {
  class FollowedByIterator extends core.Object {
    moveNext() {
      if (dart.test(this[_currentIterator].moveNext())) return true;
      if (this[_nextIterable$] != null) {
        this[_currentIterator] = this[_nextIterable$][$iterator];
        this[_nextIterable$] = null;
        return this[_currentIterator].moveNext();
      }
      return false;
    }
    get current() {
      return this[_currentIterator].current;
    }
  }
  (FollowedByIterator.new = function(first, _nextIterable) {
    this[_nextIterable$] = _nextIterable;
    this[_currentIterator] = first[$iterator];
    ;
  }).prototype = FollowedByIterator.prototype;
  dart.addTypeTests(FollowedByIterator);
  FollowedByIterator.prototype[_is_FollowedByIterator_default] = true;
  dart.addTypeCaches(FollowedByIterator);
  FollowedByIterator[dart.implements] = () => [core.Iterator$(E)];
  dart.setMethodSignature(FollowedByIterator, () => ({
    __proto__: dart.getMethods(FollowedByIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(FollowedByIterator, () => ({
    __proto__: dart.getGetters(FollowedByIterator.__proto__),
    current: E
  }));
  dart.setLibraryUri(FollowedByIterator, L10);
  dart.setFieldSignature(FollowedByIterator, () => ({
    __proto__: dart.getFields(FollowedByIterator.__proto__),
    [_currentIterator]: dart.fieldType(core.Iterator$(E)),
    [_nextIterable$]: dart.fieldType(core.Iterable$(E))
  }));
  return FollowedByIterator;
});
_internal.FollowedByIterator = _internal.FollowedByIterator$();
dart.addTypeTests(_internal.FollowedByIterator, _is_FollowedByIterator_default);
const _is_WhereTypeIterable_default = Symbol('_is_WhereTypeIterable_default');
_internal.WhereTypeIterable$ = dart.generic(T => {
  var WhereTypeIteratorOfTL = () => (WhereTypeIteratorOfTL = dart.constFn(_internal.WhereTypeIterator$(T)))();
  class WhereTypeIterable extends core.Iterable$(T) {
    get iterator() {
      return new (WhereTypeIteratorOfTL()).new(this[_source$][$iterator]);
    }
  }
  (WhereTypeIterable.new = function(_source) {
    this[_source$] = _source;
    WhereTypeIterable.__proto__.new.call(this);
    ;
  }).prototype = WhereTypeIterable.prototype;
  dart.addTypeTests(WhereTypeIterable);
  WhereTypeIterable.prototype[_is_WhereTypeIterable_default] = true;
  dart.addTypeCaches(WhereTypeIterable);
  dart.setGetterSignature(WhereTypeIterable, () => ({
    __proto__: dart.getGetters(WhereTypeIterable.__proto__),
    iterator: core.Iterator$(T),
    [$iterator]: core.Iterator$(T)
  }));
  dart.setLibraryUri(WhereTypeIterable, L10);
  dart.setFieldSignature(WhereTypeIterable, () => ({
    __proto__: dart.getFields(WhereTypeIterable.__proto__),
    [_source$]: dart.finalFieldType(core.Iterable$(core.Object))
  }));
  dart.defineExtensionAccessors(WhereTypeIterable, ['iterator']);
  return WhereTypeIterable;
});
_internal.WhereTypeIterable = _internal.WhereTypeIterable$();
dart.addTypeTests(_internal.WhereTypeIterable, _is_WhereTypeIterable_default);
const _is_WhereTypeIterator_default = Symbol('_is_WhereTypeIterator_default');
_internal.WhereTypeIterator$ = dart.generic(T => {
  class WhereTypeIterator extends core.Object {
    moveNext() {
      while (dart.test(this[_source$].moveNext())) {
        if (T.is(this[_source$].current)) return true;
      }
      return false;
    }
    get current() {
      return T.as(this[_source$].current);
    }
  }
  (WhereTypeIterator.new = function(_source) {
    this[_source$] = _source;
    ;
  }).prototype = WhereTypeIterator.prototype;
  dart.addTypeTests(WhereTypeIterator);
  WhereTypeIterator.prototype[_is_WhereTypeIterator_default] = true;
  dart.addTypeCaches(WhereTypeIterator);
  WhereTypeIterator[dart.implements] = () => [core.Iterator$(T)];
  dart.setMethodSignature(WhereTypeIterator, () => ({
    __proto__: dart.getMethods(WhereTypeIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(WhereTypeIterator, () => ({
    __proto__: dart.getGetters(WhereTypeIterator.__proto__),
    current: T
  }));
  dart.setLibraryUri(WhereTypeIterator, L10);
  dart.setFieldSignature(WhereTypeIterator, () => ({
    __proto__: dart.getFields(WhereTypeIterator.__proto__),
    [_source$]: dart.finalFieldType(core.Iterator$(core.Object))
  }));
  return WhereTypeIterator;
});
_internal.WhereTypeIterator = _internal.WhereTypeIterator$();
dart.addTypeTests(_internal.WhereTypeIterator, _is_WhereTypeIterator_default);
_internal.IterableElementError = class IterableElementError extends core.Object {
  static noElement() {
    return new core.StateError.new("No element");
  }
  static tooMany() {
    return new core.StateError.new("Too many elements");
  }
  static tooFew() {
    return new core.StateError.new("Too few elements");
  }
};
(_internal.IterableElementError.new = function() {
  ;
}).prototype = _internal.IterableElementError.prototype;
dart.addTypeTests(_internal.IterableElementError);
dart.addTypeCaches(_internal.IterableElementError);
dart.setLibraryUri(_internal.IterableElementError, L10);
const _is_FixedLengthListMixin_default = Symbol('_is_FixedLengthListMixin_default');
_internal.FixedLengthListMixin$ = dart.generic(E => {
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  class FixedLengthListMixin extends core.Object {
    set length(newLength) {
      dart.throw(new core.UnsupportedError.new("Cannot change the length of a fixed-length list"));
    }
    add(value) {
      E.as(value);
      dart.throw(new core.UnsupportedError.new("Cannot add to a fixed-length list"));
    }
    insert(index, value) {
      E.as(value);
      dart.throw(new core.UnsupportedError.new("Cannot add to a fixed-length list"));
    }
    insertAll(at, iterable) {
      IterableOfEL().as(iterable);
      dart.throw(new core.UnsupportedError.new("Cannot add to a fixed-length list"));
    }
    addAll(iterable) {
      IterableOfEL().as(iterable);
      dart.throw(new core.UnsupportedError.new("Cannot add to a fixed-length list"));
    }
    remove(element) {
      dart.throw(new core.UnsupportedError.new("Cannot remove from a fixed-length list"));
    }
    removeWhere(test) {
      dart.throw(new core.UnsupportedError.new("Cannot remove from a fixed-length list"));
    }
    retainWhere(test) {
      dart.throw(new core.UnsupportedError.new("Cannot remove from a fixed-length list"));
    }
    clear() {
      dart.throw(new core.UnsupportedError.new("Cannot clear a fixed-length list"));
    }
    removeAt(index) {
      dart.throw(new core.UnsupportedError.new("Cannot remove from a fixed-length list"));
    }
    removeLast() {
      dart.throw(new core.UnsupportedError.new("Cannot remove from a fixed-length list"));
    }
    removeRange(start, end) {
      dart.throw(new core.UnsupportedError.new("Cannot remove from a fixed-length list"));
    }
    replaceRange(start, end, iterable) {
      IterableOfEL().as(iterable);
      dart.throw(new core.UnsupportedError.new("Cannot remove from a fixed-length list"));
    }
  }
  (FixedLengthListMixin.new = function() {
    ;
  }).prototype = FixedLengthListMixin.prototype;
  dart.addTypeTests(FixedLengthListMixin);
  FixedLengthListMixin.prototype[_is_FixedLengthListMixin_default] = true;
  dart.addTypeCaches(FixedLengthListMixin);
  dart.setMethodSignature(FixedLengthListMixin, () => ({
    __proto__: dart.getMethods(FixedLengthListMixin.__proto__),
    add: dart.fnType(dart.void, [core.Object]),
    [$add]: dart.fnType(dart.void, [core.Object]),
    insert: dart.fnType(dart.void, [core.int, core.Object]),
    [$insert]: dart.fnType(dart.void, [core.int, core.Object]),
    insertAll: dart.fnType(dart.void, [core.int, core.Object]),
    [$insertAll]: dart.fnType(dart.void, [core.int, core.Object]),
    addAll: dart.fnType(dart.void, [core.Object]),
    [$addAll]: dart.fnType(dart.void, [core.Object]),
    remove: dart.fnType(core.bool, [core.Object]),
    [$remove]: dart.fnType(core.bool, [core.Object]),
    removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    [$removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    [$retainWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    clear: dart.fnType(dart.void, []),
    [$clear]: dart.fnType(dart.void, []),
    removeAt: dart.fnType(E, [core.int]),
    [$removeAt]: dart.fnType(E, [core.int]),
    removeLast: dart.fnType(E, []),
    [$removeLast]: dart.fnType(E, []),
    removeRange: dart.fnType(dart.void, [core.int, core.int]),
    [$removeRange]: dart.fnType(dart.void, [core.int, core.int]),
    replaceRange: dart.fnType(dart.void, [core.int, core.int, core.Object]),
    [$replaceRange]: dart.fnType(dart.void, [core.int, core.int, core.Object])
  }));
  dart.setSetterSignature(FixedLengthListMixin, () => ({
    __proto__: dart.getSetters(FixedLengthListMixin.__proto__),
    length: core.int,
    [$length]: core.int
  }));
  dart.setLibraryUri(FixedLengthListMixin, L10);
  dart.defineExtensionMethods(FixedLengthListMixin, [
    'add',
    'insert',
    'insertAll',
    'addAll',
    'remove',
    'removeWhere',
    'retainWhere',
    'clear',
    'removeAt',
    'removeLast',
    'removeRange',
    'replaceRange'
  ]);
  dart.defineExtensionAccessors(FixedLengthListMixin, ['length']);
  return FixedLengthListMixin;
});
_internal.FixedLengthListMixin = _internal.FixedLengthListMixin$();
dart.addTypeTests(_internal.FixedLengthListMixin, _is_FixedLengthListMixin_default);
const _is_FixedLengthListBase_default = Symbol('_is_FixedLengthListBase_default');
_internal.FixedLengthListBase$ = dart.generic(E => {
  const ListBase_FixedLengthListMixin$36 = class ListBase_FixedLengthListMixin extends collection.ListBase$(E) {};
  (ListBase_FixedLengthListMixin$36.new = function() {
  }).prototype = ListBase_FixedLengthListMixin$36.prototype;
  dart.applyMixin(ListBase_FixedLengthListMixin$36, _internal.FixedLengthListMixin$(E));
  class FixedLengthListBase extends ListBase_FixedLengthListMixin$36 {}
  (FixedLengthListBase.new = function() {
    ;
  }).prototype = FixedLengthListBase.prototype;
  dart.addTypeTests(FixedLengthListBase);
  FixedLengthListBase.prototype[_is_FixedLengthListBase_default] = true;
  dart.addTypeCaches(FixedLengthListBase);
  dart.setLibraryUri(FixedLengthListBase, L10);
  return FixedLengthListBase;
});
_internal.FixedLengthListBase = _internal.FixedLengthListBase$();
dart.addTypeTests(_internal.FixedLengthListBase, _is_FixedLengthListBase_default);
var _backedList$ = dart.privateName(_internal, "_backedList");
_internal._ListIndicesIterable = class _ListIndicesIterable extends _internal.ListIterable$(core.int) {
  get length() {
    return this[_backedList$][$length];
  }
  elementAt(index) {
    core.RangeError.checkValidIndex(index, this);
    return index;
  }
};
(_internal._ListIndicesIterable.new = function(_backedList) {
  this[_backedList$] = _backedList;
  _internal._ListIndicesIterable.__proto__.new.call(this);
  ;
}).prototype = _internal._ListIndicesIterable.prototype;
dart.addTypeTests(_internal._ListIndicesIterable);
dart.addTypeCaches(_internal._ListIndicesIterable);
dart.setLibraryUri(_internal._ListIndicesIterable, L10);
dart.setFieldSignature(_internal._ListIndicesIterable, () => ({
  __proto__: dart.getFields(_internal._ListIndicesIterable.__proto__),
  [_backedList$]: dart.fieldType(core.List)
}));
dart.defineExtensionMethods(_internal._ListIndicesIterable, ['elementAt']);
dart.defineExtensionAccessors(_internal._ListIndicesIterable, ['length']);
var _values$ = dart.privateName(_internal, "_values");
const _is__UnmodifiableMapMixin_default = Symbol('_is__UnmodifiableMapMixin_default');
collection._UnmodifiableMapMixin$ = dart.generic((K, V) => {
  var MapOfKL$VL = () => (MapOfKL$VL = dart.constFn(core.Map$(K, V)))();
  var MapEntryOfKL$VL = () => (MapEntryOfKL$VL = dart.constFn(core.MapEntry$(K, V)))();
  var IterableOfMapEntryLOfKL$VL = () => (IterableOfMapEntryLOfKL$VL = dart.constFn(core.Iterable$(MapEntryOfKL$VL())))();
  var KLAndVLToLVL = () => (KLAndVLToLVL = dart.constFn(dart.fnType(V, [K, V])))();
  var VoidToLVL = () => (VoidToLVL = dart.constFn(dart.fnType(V, [])))();
  var VLToLVL = () => (VLToLVL = dart.constFn(dart.fnType(V, [V])))();
  class _UnmodifiableMapMixin extends core.Object {
    _set(key, value$) {
      let value = value$;
      K.as(key);
      V.as(value);
      dart.throw(new core.UnsupportedError.new("Cannot modify unmodifiable map"));
      return value$;
    }
    addAll(other) {
      MapOfKL$VL().as(other);
      dart.throw(new core.UnsupportedError.new("Cannot modify unmodifiable map"));
    }
    addEntries(entries) {
      IterableOfMapEntryLOfKL$VL().as(entries);
      dart.throw(new core.UnsupportedError.new("Cannot modify unmodifiable map"));
    }
    clear() {
      dart.throw(new core.UnsupportedError.new("Cannot modify unmodifiable map"));
    }
    remove(key) {
      dart.throw(new core.UnsupportedError.new("Cannot modify unmodifiable map"));
    }
    removeWhere(test) {
      dart.throw(new core.UnsupportedError.new("Cannot modify unmodifiable map"));
    }
    putIfAbsent(key, ifAbsent) {
      K.as(key);
      VoidToLVL().as(ifAbsent);
      dart.throw(new core.UnsupportedError.new("Cannot modify unmodifiable map"));
    }
    update(key, update, opts) {
      K.as(key);
      VLToLVL().as(update);
      let ifAbsent = opts && 'ifAbsent' in opts ? opts.ifAbsent : null;
      VoidToLVL().as(ifAbsent);
      dart.throw(new core.UnsupportedError.new("Cannot modify unmodifiable map"));
    }
    updateAll(update) {
      KLAndVLToLVL().as(update);
      dart.throw(new core.UnsupportedError.new("Cannot modify unmodifiable map"));
    }
  }
  (_UnmodifiableMapMixin.new = function() {
    ;
  }).prototype = _UnmodifiableMapMixin.prototype;
  _UnmodifiableMapMixin.prototype[dart.isMap] = true;
  dart.addTypeTests(_UnmodifiableMapMixin);
  _UnmodifiableMapMixin.prototype[_is__UnmodifiableMapMixin_default] = true;
  dart.addTypeCaches(_UnmodifiableMapMixin);
  _UnmodifiableMapMixin[dart.implements] = () => [core.Map$(K, V)];
  dart.setMethodSignature(_UnmodifiableMapMixin, () => ({
    __proto__: dart.getMethods(_UnmodifiableMapMixin.__proto__),
    _set: dart.fnType(dart.void, [core.Object, core.Object]),
    [$_set]: dart.fnType(dart.void, [core.Object, core.Object]),
    addAll: dart.fnType(dart.void, [core.Object]),
    [$addAll]: dart.fnType(dart.void, [core.Object]),
    addEntries: dart.fnType(dart.void, [core.Object]),
    [$addEntries]: dart.fnType(dart.void, [core.Object]),
    clear: dart.fnType(dart.void, []),
    [$clear]: dart.fnType(dart.void, []),
    remove: dart.fnType(V, [core.Object]),
    [$remove]: dart.fnType(V, [core.Object]),
    removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [K, V])]),
    [$removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [K, V])]),
    putIfAbsent: dart.fnType(V, [core.Object, core.Object]),
    [$putIfAbsent]: dart.fnType(V, [core.Object, core.Object]),
    update: dart.fnType(V, [core.Object, core.Object], {ifAbsent: core.Object}, {}),
    [$update]: dart.fnType(V, [core.Object, core.Object], {ifAbsent: core.Object}, {}),
    updateAll: dart.fnType(dart.void, [core.Object]),
    [$updateAll]: dart.fnType(dart.void, [core.Object])
  }));
  dart.setLibraryUri(_UnmodifiableMapMixin, L9);
  dart.defineExtensionMethods(_UnmodifiableMapMixin, [
    '_set',
    'addAll',
    'addEntries',
    'clear',
    'remove',
    'removeWhere',
    'putIfAbsent',
    'update',
    'updateAll'
  ]);
  return _UnmodifiableMapMixin;
});
collection._UnmodifiableMapMixin = collection._UnmodifiableMapMixin$();
dart.addTypeTests(collection._UnmodifiableMapMixin, _is__UnmodifiableMapMixin_default);
const _is_UnmodifiableMapBase_default = Symbol('_is_UnmodifiableMapBase_default');
collection.UnmodifiableMapBase$ = dart.generic((K, V) => {
  const MapBase__UnmodifiableMapMixin$36 = class MapBase__UnmodifiableMapMixin extends collection.MapBase$(K, V) {};
  (MapBase__UnmodifiableMapMixin$36.new = function() {
  }).prototype = MapBase__UnmodifiableMapMixin$36.prototype;
  dart.applyMixin(MapBase__UnmodifiableMapMixin$36, collection._UnmodifiableMapMixin$(K, V));
  class UnmodifiableMapBase extends MapBase__UnmodifiableMapMixin$36 {}
  (UnmodifiableMapBase.new = function() {
    ;
  }).prototype = UnmodifiableMapBase.prototype;
  dart.addTypeTests(UnmodifiableMapBase);
  UnmodifiableMapBase.prototype[_is_UnmodifiableMapBase_default] = true;
  dart.addTypeCaches(UnmodifiableMapBase);
  dart.setLibraryUri(UnmodifiableMapBase, L9);
  return UnmodifiableMapBase;
});
collection.UnmodifiableMapBase = collection.UnmodifiableMapBase$();
dart.addTypeTests(collection.UnmodifiableMapBase, _is_UnmodifiableMapBase_default);
const _is_ListMapView_default = Symbol('_is_ListMapView_default');
_internal.ListMapView$ = dart.generic(E => {
  var SubListIterableOfEL = () => (SubListIterableOfEL = dart.constFn(_internal.SubListIterable$(E)))();
  class ListMapView extends collection.UnmodifiableMapBase$(core.int, E) {
    _get(key) {
      return dart.test(this.containsKey(key)) ? this[_values$][$_get](core.int.as(key)) : null;
    }
    get length() {
      return this[_values$][$length];
    }
    get values() {
      return new (SubListIterableOfEL()).new(this[_values$], 0, null);
    }
    get keys() {
      return new _internal._ListIndicesIterable.new(this[_values$]);
    }
    get isEmpty() {
      return this[_values$][$isEmpty];
    }
    get isNotEmpty() {
      return this[_values$][$isNotEmpty];
    }
    containsValue(value) {
      return this[_values$][$contains](value);
    }
    containsKey(key) {
      return core.int.is(key) && dart.notNull(key) >= 0 && dart.notNull(key) < dart.notNull(this.length);
    }
    forEach(f) {
      let length = this[_values$][$length];
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        f(i, this[_values$][$_get](i));
        if (length != this[_values$][$length]) {
          dart.throw(new core.ConcurrentModificationError.new(this[_values$]));
        }
      }
    }
  }
  (ListMapView.new = function(_values) {
    this[_values$] = _values;
    ;
  }).prototype = ListMapView.prototype;
  dart.addTypeTests(ListMapView);
  ListMapView.prototype[_is_ListMapView_default] = true;
  dart.addTypeCaches(ListMapView);
  dart.setMethodSignature(ListMapView, () => ({
    __proto__: dart.getMethods(ListMapView.__proto__),
    _get: dart.fnType(E, [core.Object]),
    [$_get]: dart.fnType(E, [core.Object])
  }));
  dart.setGetterSignature(ListMapView, () => ({
    __proto__: dart.getGetters(ListMapView.__proto__),
    keys: core.Iterable$(core.int),
    [$keys]: core.Iterable$(core.int)
  }));
  dart.setLibraryUri(ListMapView, L10);
  dart.setFieldSignature(ListMapView, () => ({
    __proto__: dart.getFields(ListMapView.__proto__),
    [_values$]: dart.fieldType(core.List$(E))
  }));
  dart.defineExtensionMethods(ListMapView, ['_get', 'containsValue', 'containsKey', 'forEach']);
  dart.defineExtensionAccessors(ListMapView, [
    'length',
    'values',
    'keys',
    'isEmpty',
    'isNotEmpty'
  ]);
  return ListMapView;
});
_internal.ListMapView = _internal.ListMapView$();
dart.addTypeTests(_internal.ListMapView, _is_ListMapView_default);
const _is_ReversedListIterable_default = Symbol('_is_ReversedListIterable_default');
_internal.ReversedListIterable$ = dart.generic(E => {
  class ReversedListIterable extends _internal.ListIterable$(E) {
    get length() {
      return this[_source$][$length];
    }
    elementAt(index) {
      return this[_source$][$elementAt](dart.notNull(this[_source$][$length]) - 1 - dart.notNull(index));
    }
  }
  (ReversedListIterable.new = function(_source) {
    this[_source$] = _source;
    ReversedListIterable.__proto__.new.call(this);
    ;
  }).prototype = ReversedListIterable.prototype;
  dart.addTypeTests(ReversedListIterable);
  ReversedListIterable.prototype[_is_ReversedListIterable_default] = true;
  dart.addTypeCaches(ReversedListIterable);
  dart.setLibraryUri(ReversedListIterable, L10);
  dart.setFieldSignature(ReversedListIterable, () => ({
    __proto__: dart.getFields(ReversedListIterable.__proto__),
    [_source$]: dart.fieldType(core.Iterable$(E))
  }));
  dart.defineExtensionMethods(ReversedListIterable, ['elementAt']);
  dart.defineExtensionAccessors(ReversedListIterable, ['length']);
  return ReversedListIterable;
});
_internal.ReversedListIterable = _internal.ReversedListIterable$();
dart.addTypeTests(_internal.ReversedListIterable, _is_ReversedListIterable_default);
_internal.UnmodifiableListError = class UnmodifiableListError extends core.Object {
  static add() {
    return new core.UnsupportedError.new("Cannot add to unmodifiable List");
  }
  static change() {
    return new core.UnsupportedError.new("Cannot change the content of an unmodifiable List");
  }
  static length() {
    return new core.UnsupportedError.new("Cannot change length of unmodifiable List");
  }
  static remove() {
    return new core.UnsupportedError.new("Cannot remove from unmodifiable List");
  }
};
(_internal.UnmodifiableListError.new = function() {
  ;
}).prototype = _internal.UnmodifiableListError.prototype;
dart.addTypeTests(_internal.UnmodifiableListError);
dart.addTypeCaches(_internal.UnmodifiableListError);
dart.setLibraryUri(_internal.UnmodifiableListError, L10);
_internal.NonGrowableListError = class NonGrowableListError extends core.Object {
  static add() {
    return new core.UnsupportedError.new("Cannot add to non-growable List");
  }
  static length() {
    return new core.UnsupportedError.new("Cannot change length of non-growable List");
  }
  static remove() {
    return new core.UnsupportedError.new("Cannot remove from non-growable List");
  }
};
(_internal.NonGrowableListError.new = function() {
  ;
}).prototype = _internal.NonGrowableListError.prototype;
dart.addTypeTests(_internal.NonGrowableListError);
dart.addTypeCaches(_internal.NonGrowableListError);
dart.setLibraryUri(_internal.NonGrowableListError, L10);
_internal.Sort = class Sort extends core.Object {
  static sort(E, a, compare) {
    _internal.Sort._doSort(E, a, 0, dart.notNull(a[$length]) - 1, compare);
  }
  static sortRange(E, a, from, to, compare) {
    if (dart.notNull(from) < 0 || dart.notNull(to) > dart.notNull(a[$length]) || dart.notNull(to) < dart.notNull(from)) {
      dart.throw("OutOfRange");
    }
    _internal.Sort._doSort(E, a, from, dart.notNull(to) - 1, compare);
  }
  static _doSort(E, a, left, right, compare) {
    if (dart.notNull(right) - dart.notNull(left) <= 32) {
      _internal.Sort._insertionSort(E, a, left, right, compare);
    } else {
      _internal.Sort._dualPivotQuicksort(E, a, left, right, compare);
    }
  }
  static _insertionSort(E, a, left, right, compare) {
    for (let i = dart.notNull(left) + 1; i <= dart.notNull(right); i = i + 1) {
      let el = a[$_get](i);
      let j = i;
      while (j > dart.notNull(left) && dart.notNull(compare(a[$_get](j - 1), el)) > 0) {
        a[$_set](j, a[$_get](j - 1));
        j = j - 1;
      }
      a[$_set](j, el);
    }
  }
  static _dualPivotQuicksort(E, a, left, right, compare) {
    let t27, t27$, t27$0, t27$1, t27$2, t27$3, t27$4, t27$5, t27$6;
    if (!(dart.notNull(right) - dart.notNull(left) > 32)) dart.assertFailed(null, L17, 81, 12, "right - left > _INSERTION_SORT_THRESHOLD");
    let sixth = ((dart.notNull(right) - dart.notNull(left) + 1) / 6)[$truncate]();
    let index1 = dart.notNull(left) + sixth;
    let index5 = dart.notNull(right) - sixth;
    let index3 = ((dart.notNull(left) + dart.notNull(right)) / 2)[$truncate]();
    let index2 = index3 - sixth;
    let index4 = index3 + sixth;
    let el1 = a[$_get](index1);
    let el2 = a[$_get](index2);
    let el3 = a[$_get](index3);
    let el4 = a[$_get](index4);
    let el5 = a[$_get](index5);
    if (dart.notNull(compare(el1, el2)) > 0) {
      let t = el1;
      el1 = el2;
      el2 = t;
    }
    if (dart.notNull(compare(el4, el5)) > 0) {
      let t = el4;
      el4 = el5;
      el5 = t;
    }
    if (dart.notNull(compare(el1, el3)) > 0) {
      let t = el1;
      el1 = el3;
      el3 = t;
    }
    if (dart.notNull(compare(el2, el3)) > 0) {
      let t = el2;
      el2 = el3;
      el3 = t;
    }
    if (dart.notNull(compare(el1, el4)) > 0) {
      let t = el1;
      el1 = el4;
      el4 = t;
    }
    if (dart.notNull(compare(el3, el4)) > 0) {
      let t = el3;
      el3 = el4;
      el4 = t;
    }
    if (dart.notNull(compare(el2, el5)) > 0) {
      let t = el2;
      el2 = el5;
      el5 = t;
    }
    if (dart.notNull(compare(el2, el3)) > 0) {
      let t = el2;
      el2 = el3;
      el3 = t;
    }
    if (dart.notNull(compare(el4, el5)) > 0) {
      let t = el4;
      el4 = el5;
      el5 = t;
    }
    let pivot1 = el2;
    let pivot2 = el4;
    a[$_set](index1, el1);
    a[$_set](index3, el3);
    a[$_set](index5, el5);
    a[$_set](index2, a[$_get](left));
    a[$_set](index4, a[$_get](right));
    let less = dart.notNull(left) + 1;
    let great = dart.notNull(right) - 1;
    let pivots_are_equal = compare(pivot1, pivot2) === 0;
    if (pivots_are_equal) {
      let pivot = pivot1;
      for (let k = less; k <= great; k = k + 1) {
        let ak = a[$_get](k);
        let comp = compare(ak, pivot);
        if (comp === 0) continue;
        if (dart.notNull(comp) < 0) {
          if (k !== less) {
            a[$_set](k, a[$_get](less));
            a[$_set](less, ak);
          }
          less = less + 1;
        } else {
          while (true) {
            comp = compare(a[$_get](great), pivot);
            if (dart.notNull(comp) > 0) {
              great = great - 1;
              continue;
            } else if (dart.notNull(comp) < 0) {
              a[$_set](k, a[$_get](less));
              a[$_set]((t27 = less, less = t27 + 1, t27), a[$_get](great));
              a[$_set]((t27$ = great, great = t27$ - 1, t27$), ak);
              break;
            } else {
              a[$_set](k, a[$_get](great));
              a[$_set]((t27$0 = great, great = t27$0 - 1, t27$0), ak);
              break;
            }
          }
        }
      }
    } else {
      for (let k = less; k <= great; k = k + 1) {
        let ak = a[$_get](k);
        let comp_pivot1 = compare(ak, pivot1);
        if (dart.notNull(comp_pivot1) < 0) {
          if (k !== less) {
            a[$_set](k, a[$_get](less));
            a[$_set](less, ak);
          }
          less = less + 1;
        } else {
          let comp_pivot2 = compare(ak, pivot2);
          if (dart.notNull(comp_pivot2) > 0) {
            while (true) {
              let comp = compare(a[$_get](great), pivot2);
              if (dart.notNull(comp) > 0) {
                great = great - 1;
                if (great < k) break;
                continue;
              } else {
                comp = compare(a[$_get](great), pivot1);
                if (dart.notNull(comp) < 0) {
                  a[$_set](k, a[$_get](less));
                  a[$_set]((t27$1 = less, less = t27$1 + 1, t27$1), a[$_get](great));
                  a[$_set]((t27$2 = great, great = t27$2 - 1, t27$2), ak);
                } else {
                  a[$_set](k, a[$_get](great));
                  a[$_set]((t27$3 = great, great = t27$3 - 1, t27$3), ak);
                }
                break;
              }
            }
          }
        }
      }
    }
    a[$_set](left, a[$_get](less - 1));
    a[$_set](less - 1, pivot1);
    a[$_set](right, a[$_get](great + 1));
    a[$_set](great + 1, pivot2);
    _internal.Sort._doSort(E, a, left, less - 2, compare);
    _internal.Sort._doSort(E, a, great + 2, right, compare);
    if (pivots_are_equal) {
      return;
    }
    if (less < index1 && great > index5) {
      while (compare(a[$_get](less), pivot1) === 0) {
        less = less + 1;
      }
      while (compare(a[$_get](great), pivot2) === 0) {
        great = great - 1;
      }
      for (let k = less; k <= great; k = k + 1) {
        let ak = a[$_get](k);
        let comp_pivot1 = compare(ak, pivot1);
        if (comp_pivot1 === 0) {
          if (k !== less) {
            a[$_set](k, a[$_get](less));
            a[$_set](less, ak);
          }
          less = less + 1;
        } else {
          let comp_pivot2 = compare(ak, pivot2);
          if (comp_pivot2 === 0) {
            while (true) {
              let comp = compare(a[$_get](great), pivot2);
              if (comp === 0) {
                great = great - 1;
                if (great < k) break;
                continue;
              } else {
                comp = compare(a[$_get](great), pivot1);
                if (dart.notNull(comp) < 0) {
                  a[$_set](k, a[$_get](less));
                  a[$_set]((t27$4 = less, less = t27$4 + 1, t27$4), a[$_get](great));
                  a[$_set]((t27$5 = great, great = t27$5 - 1, t27$5), ak);
                } else {
                  a[$_set](k, a[$_get](great));
                  a[$_set]((t27$6 = great, great = t27$6 - 1, t27$6), ak);
                }
                break;
              }
            }
          }
        }
      }
      _internal.Sort._doSort(E, a, less, great, compare);
    } else {
      _internal.Sort._doSort(E, a, less, great, compare);
    }
  }
};
(_internal.Sort.new = function() {
  ;
}).prototype = _internal.Sort.prototype;
dart.addTypeTests(_internal.Sort);
dart.addTypeCaches(_internal.Sort);
dart.setLibraryUri(_internal.Sort, L10);
dart.defineLazy(_internal.Sort, {
  /*_internal.Sort._INSERTION_SORT_THRESHOLD*/get _INSERTION_SORT_THRESHOLD() {
    return 32;
  }
}, true);
var _name = dart.privateName(_internal, "_name");
var _name$ = dart.privateName(_internal, "Symbol._name");
_internal.Symbol = class Symbol extends core.Object {
  get [_name]() {
    return this[_name$];
  }
  set [_name](value) {
    super[_name] = value;
  }
  _equals(other) {
    if (other == null) return false;
    return _internal.Symbol.is(other) && this[_name] == other[_name];
  }
  get hashCode() {
    let hash = this._hashCode;
    if (hash != null) return hash;
    hash = 536870911 & 664597 * dart.hashCode(this[_name]);
    this._hashCode = hash;
    return hash;
  }
  toString() {
    return "Symbol(\"" + dart.str(this[_name]) + "\")";
  }
  static getName(symbol) {
    return symbol[_name];
  }
  static validatePublicSymbol(name) {
    if (name[$isEmpty] || dart.test(_internal.Symbol.publicSymbolPattern.hasMatch(name))) return name;
    if (name[$startsWith]("_")) {
      dart.throw(new core.ArgumentError.new("\"" + dart.str(name) + "\" is a private identifier"));
    }
    dart.throw(new core.ArgumentError.new("\"" + dart.str(name) + "\" is not a valid (qualified) symbol name"));
  }
  static isValidSymbol(name) {
    return name[$isEmpty] || dart.test(_internal.Symbol.symbolPattern.hasMatch(name));
  }
  static computeUnmangledName(symbol) {
    return symbol[_name];
  }
};
(_internal.Symbol.new = function(name) {
  this[_name$] = name;
  ;
}).prototype = _internal.Symbol.prototype;
(_internal.Symbol.unvalidated = function(_name) {
  this[_name$] = _name;
  ;
}).prototype = _internal.Symbol.prototype;
(_internal.Symbol.validated = function(name) {
  this[_name$] = _internal.Symbol.validatePublicSymbol(name);
  ;
}).prototype = _internal.Symbol.prototype;
dart.addTypeTests(_internal.Symbol);
dart.addTypeCaches(_internal.Symbol);
_internal.Symbol[dart.implements] = () => [core.Symbol];
dart.setMethodSignature(_internal.Symbol, () => ({
  __proto__: dart.getMethods(_internal.Symbol.__proto__),
  toString: dart.fnType(dart.dynamic, []),
  [$toString]: dart.fnType(dart.dynamic, [])
}));
dart.setLibraryUri(_internal.Symbol, L10);
dart.setFieldSignature(_internal.Symbol, () => ({
  __proto__: dart.getFields(_internal.Symbol.__proto__),
  [_name]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(_internal.Symbol, ['_equals', 'toString']);
dart.defineExtensionAccessors(_internal.Symbol, ['hashCode']);
dart.defineLazy(_internal.Symbol, {
  /*_internal.Symbol.reservedWordRE*/get reservedWordRE() {
    return "(?:assert|break|c(?:a(?:se|tch)|lass|on(?:st|tinue))|d(?:efault|o)|e(?:lse|num|xtends)|f(?:alse|inal(?:ly)?|or)|i[fns]|n(?:ew|ull)|ret(?:hrow|urn)|s(?:uper|witch)|t(?:h(?:is|row)|r(?:ue|y))|v(?:ar|oid)|w(?:hile|ith))";
  },
  /*_internal.Symbol.publicIdentifierRE*/get publicIdentifierRE() {
    return "(?!(?:assert|break|c(?:a(?:se|tch)|lass|on(?:st|tinue))|d(?:efault|o)|e(?:lse|num|xtends)|f(?:alse|inal(?:ly)?|or)|i[fns]|n(?:ew|ull)|ret(?:hrow|urn)|s(?:uper|witch)|t(?:h(?:is|row)|r(?:ue|y))|v(?:ar|oid)|w(?:hile|ith))\\b(?!\\$))[a-zA-Z$][\\w$]*";
  },
  /*_internal.Symbol.identifierRE*/get identifierRE() {
    return "(?!(?:assert|break|c(?:a(?:se|tch)|lass|on(?:st|tinue))|d(?:efault|o)|e(?:lse|num|xtends)|f(?:alse|inal(?:ly)?|or)|i[fns]|n(?:ew|ull)|ret(?:hrow|urn)|s(?:uper|witch)|t(?:h(?:is|row)|r(?:ue|y))|v(?:ar|oid)|w(?:hile|ith))\\b(?!\\$))[a-zA-Z$_][\\w$]*";
  },
  /*_internal.Symbol.operatorRE*/get operatorRE() {
    return "(?:[\\-+*/%&|^]|\\[\\]=?|==|~/?|<[<=]?|>[>=]?|unary-)";
  },
  /*_internal.Symbol.publicSymbolPattern*/get publicSymbolPattern() {
    return core.RegExp.new("^(?:" + dart.str(_internal.Symbol.operatorRE) + "$|" + dart.str(_internal.Symbol.publicIdentifierRE) + "(?:=?$|[.](?!$)))+?$");
  },
  /*_internal.Symbol.symbolPattern*/get symbolPattern() {
    return core.RegExp.new("^(?:" + dart.str(_internal.Symbol.operatorRE) + "$|" + dart.str(_internal.Symbol.identifierRE) + "(?:=?$|[.](?!$)))+?$");
  }
}, true);
var _next = dart.privateName(_internal, "_next");
var _previous = dart.privateName(_internal, "_previous");
var _list$ = dart.privateName(_internal, "_list");
const _is_IterableBase_default = Symbol('_is_IterableBase_default');
collection.IterableBase$ = dart.generic(E => {
  class IterableBase extends core.Iterable$(E) {
    static iterableToShortString(iterable, leftDelimiter = "(", rightDelimiter = ")") {
      let t27;
      if (dart.test(collection._isToStringVisiting(iterable))) {
        if (leftDelimiter === "(" && rightDelimiter === ")") {
          return "(...)";
        }
        return dart.str(leftDelimiter) + "..." + dart.str(rightDelimiter);
      }
      let parts = JSArrayOfStringL().of([]);
      collection._toStringVisiting[$add](iterable);
      try {
        collection._iterablePartsToStrings(iterable, parts);
      } finally {
        if (!core.identical(collection._toStringVisiting[$last], iterable)) dart.assertFailed(null, L19, 242, 14, "identical(_toStringVisiting.last, iterable)");
        collection._toStringVisiting[$removeLast]();
      }
      return (t27 = new core.StringBuffer.new(leftDelimiter), t27.writeAll(parts, ", "), t27.write(rightDelimiter), t27).toString();
    }
    static iterableToFullString(iterable, leftDelimiter = "(", rightDelimiter = ")") {
      if (dart.test(collection._isToStringVisiting(iterable))) {
        return dart.str(leftDelimiter) + "..." + dart.str(rightDelimiter);
      }
      let buffer = new core.StringBuffer.new(leftDelimiter);
      collection._toStringVisiting[$add](iterable);
      try {
        buffer.writeAll(iterable, ", ");
      } finally {
        if (!core.identical(collection._toStringVisiting[$last], iterable)) dart.assertFailed(null, L19, 271, 14, "identical(_toStringVisiting.last, iterable)");
        collection._toStringVisiting[$removeLast]();
      }
      buffer.write(rightDelimiter);
      return buffer.toString();
    }
  }
  (IterableBase.new = function() {
    IterableBase.__proto__.new.call(this);
    ;
  }).prototype = IterableBase.prototype;
  dart.addTypeTests(IterableBase);
  IterableBase.prototype[_is_IterableBase_default] = true;
  dart.addTypeCaches(IterableBase);
  dart.setLibraryUri(IterableBase, L9);
  return IterableBase;
});
collection.IterableBase = collection.IterableBase$();
dart.addTypeTests(collection.IterableBase, _is_IterableBase_default);
const _is_LinkedList_default = Symbol('_is_LinkedList_default');
var first = dart.privateName(_internal, "LinkedList.first");
var last = dart.privateName(_internal, "LinkedList.last");
var length$ = dart.privateName(_internal, "LinkedList.length");
_internal.LinkedList$ = dart.generic(T => {
  var _LinkedListIteratorOfTL = () => (_LinkedListIteratorOfTL = dart.constFn(_internal._LinkedListIterator$(T)))();
  class LinkedList extends collection.IterableBase$(T) {
    get first() {
      return this[first];
    }
    set first(value) {
      this[first] = T.as(value);
    }
    get last() {
      return this[last];
    }
    set last(value) {
      this[last] = T.as(value);
    }
    get length() {
      return this[length$];
    }
    set length(value) {
      this[length$] = value;
    }
    get isEmpty() {
      return this.length === 0;
    }
    add(newLast) {
      T.as(newLast);
      if (!(newLast[_next] == null && newLast[_previous] == null)) dart.assertFailed(null, L18, 21, 12, "newLast._next == null && newLast._previous == null");
      if (this.last != null) {
        if (!(this.last[_next] == null)) dart.assertFailed(null, L18, 23, 14, "last._next == null");
        this.last[_next] = newLast;
      } else {
        this.first = newLast;
      }
      newLast[_previous] = this.last;
      this.last = newLast;
      this.last[_list$] = this;
      this.length = dart.notNull(this.length) + 1;
    }
    addFirst(newFirst) {
      T.as(newFirst);
      if (this.first != null) {
        if (!(this.first[_previous] == null)) dart.assertFailed(null, L18, 39, 14, "first._previous == null");
        this.first[_previous] = newFirst;
      } else {
        this.last = newFirst;
      }
      newFirst[_next] = this.first;
      this.first = newFirst;
      this.first[_list$] = this;
      this.length = dart.notNull(this.length) + 1;
    }
    remove(node) {
      T.as(node);
      if (!dart.equals(node[_list$], this)) return;
      this.length = dart.notNull(this.length) - 1;
      if (node[_previous] == null) {
        if (!(node == this.first)) dart.assertFailed(null, L18, 61, 14, "identical(node, first)");
        this.first = node[_next];
      } else {
        node[_previous][_next] = node[_next];
      }
      if (node[_next] == null) {
        if (!(node == this.last)) dart.assertFailed(null, L18, 67, 14, "identical(node, last)");
        this.last = node[_previous];
      } else {
        node[_next][_previous] = node[_previous];
      }
      node[_next] = node[_previous] = null;
      node[_list$] = null;
    }
    get iterator() {
      return new (_LinkedListIteratorOfTL()).new(this);
    }
  }
  (LinkedList.new = function() {
    this[first] = null;
    this[last] = null;
    this[length$] = 0;
    LinkedList.__proto__.new.call(this);
    ;
  }).prototype = LinkedList.prototype;
  dart.addTypeTests(LinkedList);
  LinkedList.prototype[_is_LinkedList_default] = true;
  dart.addTypeCaches(LinkedList);
  dart.setMethodSignature(LinkedList, () => ({
    __proto__: dart.getMethods(LinkedList.__proto__),
    add: dart.fnType(dart.void, [core.Object]),
    addFirst: dart.fnType(dart.void, [core.Object]),
    remove: dart.fnType(dart.void, [core.Object])
  }));
  dart.setGetterSignature(LinkedList, () => ({
    __proto__: dart.getGetters(LinkedList.__proto__),
    iterator: core.Iterator$(T),
    [$iterator]: core.Iterator$(T)
  }));
  dart.setLibraryUri(LinkedList, L10);
  dart.setFieldSignature(LinkedList, () => ({
    __proto__: dart.getFields(LinkedList.__proto__),
    first: dart.fieldType(T),
    last: dart.fieldType(T),
    length: dart.fieldType(core.int)
  }));
  dart.defineExtensionAccessors(LinkedList, [
    'first',
    'last',
    'length',
    'isEmpty',
    'iterator'
  ]);
  return LinkedList;
});
_internal.LinkedList = _internal.LinkedList$();
dart.addTypeTests(_internal.LinkedList, _is_LinkedList_default);
const _is_LinkedListEntry_default = Symbol('_is_LinkedListEntry_default');
var _next$ = dart.privateName(_internal, "LinkedListEntry._next");
var _previous$ = dart.privateName(_internal, "LinkedListEntry._previous");
var _list = dart.privateName(_internal, "LinkedListEntry._list");
_internal.LinkedListEntry$ = dart.generic(T => {
  var LinkedListOfTL = () => (LinkedListOfTL = dart.constFn(_internal.LinkedList$(T)))();
  class LinkedListEntry extends core.Object {
    get [_next]() {
      return this[_next$];
    }
    set [_next](value) {
      this[_next$] = T.as(value);
    }
    get [_previous]() {
      return this[_previous$];
    }
    set [_previous](value) {
      this[_previous$] = T.as(value);
    }
    get [_list$]() {
      return this[_list];
    }
    set [_list$](value) {
      this[_list] = LinkedListOfTL().as(value);
    }
    unlink() {
      if (this[_list$] == null) return;
      this[_list$].remove(T.as(this));
    }
  }
  (LinkedListEntry.new = function() {
    this[_next$] = null;
    this[_previous$] = null;
    this[_list] = null;
    ;
  }).prototype = LinkedListEntry.prototype;
  dart.addTypeTests(LinkedListEntry);
  LinkedListEntry.prototype[_is_LinkedListEntry_default] = true;
  dart.addTypeCaches(LinkedListEntry);
  dart.setMethodSignature(LinkedListEntry, () => ({
    __proto__: dart.getMethods(LinkedListEntry.__proto__),
    unlink: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(LinkedListEntry, L10);
  dart.setFieldSignature(LinkedListEntry, () => ({
    __proto__: dart.getFields(LinkedListEntry.__proto__),
    [_next]: dart.fieldType(T),
    [_previous]: dart.fieldType(T),
    [_list$]: dart.fieldType(_internal.LinkedList$(T))
  }));
  return LinkedListEntry;
});
_internal.LinkedListEntry = _internal.LinkedListEntry$();
dart.addTypeTests(_internal.LinkedListEntry, _is_LinkedListEntry_default);
const _is__LinkedListIterator_default = Symbol('_is__LinkedListIterator_default');
var current = dart.privateName(_internal, "_LinkedListIterator.current");
_internal._LinkedListIterator$ = dart.generic(T => {
  class _LinkedListIterator extends core.Object {
    get current() {
      return this[current];
    }
    set current(value) {
      this[current] = T.as(value);
    }
    moveNext() {
      if (this.current == null) {
        if (this[_list$] == null) return false;
        if (!(dart.notNull(this[_list$].length) > 0)) dart.assertFailed(null, L18, 120, 14, "_list.length > 0");
        this.current = this[_list$].first;
        this[_list$] = null;
        return true;
      }
      this.current = this.current[_next];
      return this.current != null;
    }
  }
  (_LinkedListIterator.new = function(_list) {
    this[current] = null;
    this[_list$] = _list;
    if (this[_list$].length === 0) this[_list$] = null;
  }).prototype = _LinkedListIterator.prototype;
  dart.addTypeTests(_LinkedListIterator);
  _LinkedListIterator.prototype[_is__LinkedListIterator_default] = true;
  dart.addTypeCaches(_LinkedListIterator);
  _LinkedListIterator[dart.implements] = () => [core.Iterator$(T)];
  dart.setMethodSignature(_LinkedListIterator, () => ({
    __proto__: dart.getMethods(_LinkedListIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setLibraryUri(_LinkedListIterator, L10);
  dart.setFieldSignature(_LinkedListIterator, () => ({
    __proto__: dart.getFields(_LinkedListIterator.__proto__),
    current: dart.fieldType(T),
    [_list$]: dart.fieldType(_internal.LinkedList$(T))
  }));
  return _LinkedListIterator;
});
_internal._LinkedListIterator = _internal._LinkedListIterator$();
dart.addTypeTests(_internal._LinkedListIterator, _is__LinkedListIterator_default);
_internal.hexDigitValue = function hexDigitValue(char) {
  if (!(dart.notNull(char) >= 0 && dart.notNull(char) <= 65535)) dart.assertFailed(null, L20, 97, 10, "char >= 0 && char <= 0xFFFF");
  let digit = (dart.notNull(char) ^ 48) >>> 0;
  if (digit <= 9) return digit;
  let letter = (dart.notNull(char) | 32) >>> 0;
  if (97 <= letter && letter <= 102) return letter - (97 - 10);
  return -1;
};
_internal.parseHexByte = function parseHexByte(source, index) {
  if (!(dart.notNull(index) + 2 <= source.length)) dart.assertFailed(null, L20, 112, 10, "index + 2 <= source.length");
  let digit1 = _internal.hexDigitValue(source[$codeUnitAt](index));
  let digit2 = _internal.hexDigitValue(source[$codeUnitAt](dart.notNull(index) + 1));
  return dart.notNull(digit1) * 16 + dart.notNull(digit2) - (dart.notNull(digit2) & 256);
};
_internal.extractTypeArguments = function extractTypeArguments$(T, instance, extract) {
  return dart.extractTypeArguments(T, instance, extract);
};
_internal._checkCount = function _checkCount(count) {
  core.ArgumentError.checkNotNull(core.int, count, "count");
  core.RangeError.checkNotNegative(count, "count");
  return count;
};
_internal.makeListFixedLength = function makeListFixedLength(E, growableList) {
  _interceptors.JSArray.markFixedList(growableList);
  return growableList;
};
_internal.makeFixedListUnmodifiable = function makeFixedListUnmodifiable(E, fixedLengthList) {
  _interceptors.JSArray.markUnmodifiableList(fixedLengthList);
  return fixedLengthList;
};
_internal.printToConsole = function printToConsole(line) {
  _js_primitives.printString(dart.str(line));
};
var C23;
dart.defineLazy(_internal, {
  /*_internal.POWERS_OF_TEN*/get POWERS_OF_TEN() {
    return C23 || CT.C23;
  },
  /*_internal.printToZone*/get printToZone() {
    return null;
  },
  set printToZone(_) {}
}, true);
var _handle = dart.privateName(_isolate_helper, "_handle");
var _tick = dart.privateName(_isolate_helper, "_tick");
var _once = dart.privateName(_isolate_helper, "_once");
_isolate_helper.TimerImpl = class TimerImpl extends core.Object {
  get tick() {
    return this[_tick];
  }
  cancel() {
    if (dart.test(_isolate_helper.hasTimer())) {
      if (this[_handle] == null) return;
      dart.removeAsyncCallback();
      if (dart.test(this[_once])) {
        _isolate_helper.global.clearTimeout(this[_handle]);
      } else {
        _isolate_helper.global.clearInterval(this[_handle]);
      }
      this[_handle] = null;
    } else {
      dart.throw(new core.UnsupportedError.new("Canceling a timer."));
    }
  }
  get isActive() {
    return this[_handle] != null;
  }
};
(_isolate_helper.TimerImpl.new = function(milliseconds, callback) {
  this[_handle] = null;
  this[_tick] = 0;
  this[_once] = true;
  if (dart.test(_isolate_helper.hasTimer())) {
    let currentHotRestartIteration = dart.hotRestartIteration;
    const internalCallback = () => {
      this[_handle] = null;
      dart.removeAsyncCallback();
      this[_tick] = 1;
      if (currentHotRestartIteration == dart.hotRestartIteration) {
        callback();
      }
    };
    dart.fn(internalCallback, VoidTovoid());
    dart.addAsyncCallback();
    this[_handle] = _isolate_helper.global.setTimeout(internalCallback, milliseconds);
  } else {
    dart.throw(new core.UnsupportedError.new("`setTimeout()` not found."));
  }
}).prototype = _isolate_helper.TimerImpl.prototype;
(_isolate_helper.TimerImpl.periodic = function(milliseconds, callback) {
  this[_handle] = null;
  this[_tick] = 0;
  this[_once] = false;
  if (dart.test(_isolate_helper.hasTimer())) {
    dart.addAsyncCallback();
    let start = Date.now();
    let currentHotRestartIteration = dart.hotRestartIteration;
    this[_handle] = _isolate_helper.global.setInterval(dart.fn(() => {
      if (currentHotRestartIteration != dart.hotRestartIteration) {
        this.cancel();
        return;
      }
      let tick = dart.notNull(this[_tick]) + 1;
      if (dart.notNull(milliseconds) > 0) {
        let duration = Date.now() - start;
        if (duration > (tick + 1) * dart.notNull(milliseconds)) {
          tick = (duration / dart.notNull(milliseconds))[$truncate]();
        }
      }
      this[_tick] = tick;
      callback(this);
    }, VoidToNullN()), milliseconds);
  } else {
    dart.throw(new core.UnsupportedError.new("Periodic timer."));
  }
}).prototype = _isolate_helper.TimerImpl.prototype;
dart.addTypeTests(_isolate_helper.TimerImpl);
dart.addTypeCaches(_isolate_helper.TimerImpl);
_isolate_helper.TimerImpl[dart.implements] = () => [async.Timer];
dart.setMethodSignature(_isolate_helper.TimerImpl, () => ({
  __proto__: dart.getMethods(_isolate_helper.TimerImpl.__proto__),
  cancel: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(_isolate_helper.TimerImpl, () => ({
  __proto__: dart.getGetters(_isolate_helper.TimerImpl.__proto__),
  tick: core.int,
  isActive: core.bool
}));
dart.setLibraryUri(_isolate_helper.TimerImpl, L21);
dart.setFieldSignature(_isolate_helper.TimerImpl, () => ({
  __proto__: dart.getFields(_isolate_helper.TimerImpl.__proto__),
  [_once]: dart.finalFieldType(core.bool),
  [_handle]: dart.fieldType(core.int),
  [_tick]: dart.fieldType(core.int)
}));
_isolate_helper.startRootIsolate = function startRootIsolate(main, args) {
  if (args == null) args = JSArrayOfStringL().of([]);
  if (core.List.is(args)) {
    if (!ListOfStringL().is(args)) args = ListOfStringL().from(core.Iterable.as(args));
    if (typeof main == "function") {
      main(args, null);
    } else {
      dart.dcall(main, [args]);
    }
  } else {
    dart.throw(new core.ArgumentError.new("Arguments to main must be a List: " + dart.str(args)));
  }
};
_isolate_helper.hasTimer = function hasTimer() {
  return _isolate_helper.global.setTimeout != null;
};
dart.defineLazy(_isolate_helper, {
  /*_isolate_helper.global*/get global() {
    return dart.global;
  }
}, true);
_js_helper._Patch = class _Patch extends core.Object {};
(_js_helper._Patch.new = function() {
  ;
}).prototype = _js_helper._Patch.prototype;
dart.addTypeTests(_js_helper._Patch);
dart.addTypeCaches(_js_helper._Patch);
dart.setLibraryUri(_js_helper._Patch, L22);
var _current$0 = dart.privateName(_js_helper, "_current");
var _jsIterator$ = dart.privateName(_js_helper, "_jsIterator");
const _is_DartIterator_default = Symbol('_is_DartIterator_default');
_js_helper.DartIterator$ = dart.generic(E => {
  class DartIterator extends core.Object {
    get current() {
      return this[_current$0];
    }
    moveNext() {
      let ret = this[_jsIterator$].next();
      this[_current$0] = ret.value;
      return !ret.done;
    }
  }
  (DartIterator.new = function(_jsIterator) {
    this[_current$0] = null;
    this[_jsIterator$] = _jsIterator;
    ;
  }).prototype = DartIterator.prototype;
  dart.addTypeTests(DartIterator);
  DartIterator.prototype[_is_DartIterator_default] = true;
  dart.addTypeCaches(DartIterator);
  DartIterator[dart.implements] = () => [core.Iterator$(E)];
  dart.setMethodSignature(DartIterator, () => ({
    __proto__: dart.getMethods(DartIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(DartIterator, () => ({
    __proto__: dart.getGetters(DartIterator.__proto__),
    current: E
  }));
  dart.setLibraryUri(DartIterator, L22);
  dart.setFieldSignature(DartIterator, () => ({
    __proto__: dart.getFields(DartIterator.__proto__),
    [_jsIterator$]: dart.finalFieldType(dart.dynamic),
    [_current$0]: dart.fieldType(E)
  }));
  return DartIterator;
});
_js_helper.DartIterator = _js_helper.DartIterator$();
dart.addTypeTests(_js_helper.DartIterator, _is_DartIterator_default);
var _initGenerator$ = dart.privateName(_js_helper, "_initGenerator");
const _is_SyncIterable_default = Symbol('_is_SyncIterable_default');
_js_helper.SyncIterable$ = dart.generic(E => {
  var DartIteratorOfEL = () => (DartIteratorOfEL = dart.constFn(_js_helper.DartIterator$(E)))();
  class SyncIterable extends collection.IterableBase$(E) {
    [Symbol.iterator]() {
      return this[_initGenerator$]();
    }
    get iterator() {
      return new (DartIteratorOfEL()).new(this[_initGenerator$]());
    }
  }
  (SyncIterable.new = function(_initGenerator) {
    this[_initGenerator$] = _initGenerator;
    SyncIterable.__proto__.new.call(this);
    ;
  }).prototype = SyncIterable.prototype;
  dart.addTypeTests(SyncIterable);
  SyncIterable.prototype[_is_SyncIterable_default] = true;
  dart.addTypeCaches(SyncIterable);
  dart.setMethodSignature(SyncIterable, () => ({
    __proto__: dart.getMethods(SyncIterable.__proto__),
    [Symbol.iterator]: dart.fnType(dart.dynamic, [])
  }));
  dart.setGetterSignature(SyncIterable, () => ({
    __proto__: dart.getGetters(SyncIterable.__proto__),
    iterator: core.Iterator$(E),
    [$iterator]: core.Iterator$(E)
  }));
  dart.setLibraryUri(SyncIterable, L22);
  dart.setFieldSignature(SyncIterable, () => ({
    __proto__: dart.getFields(SyncIterable.__proto__),
    [_initGenerator$]: dart.finalFieldType(dart.fnType(dart.dynamic, []))
  }));
  dart.defineExtensionAccessors(SyncIterable, ['iterator']);
  return SyncIterable;
});
_js_helper.SyncIterable = _js_helper.SyncIterable$();
dart.addTypeTests(_js_helper.SyncIterable, _is_SyncIterable_default);
var C24;
_js_helper.Primitives = class Primitives extends core.Object {
  static _parseIntError(source, handleError) {
    if (handleError == null) dart.throw(new core.FormatException.new(source));
    return handleError(source);
  }
  static parseInt(source, _radix, handleError) {
    if (source == null) dart.argumentError(source);
    let re = /^\s*[+-]?((0x[a-f0-9]+)|(\d+)|([a-z0-9]+))\s*$/i;
    let match = re.exec(source);
    let digitsIndex = 1;
    let hexIndex = 2;
    let decimalIndex = 3;
    if (match == null) {
      return _js_helper.Primitives._parseIntError(source, handleError);
    }
    let decimalMatch = match[$_get](decimalIndex);
    if (_radix == null) {
      if (decimalMatch != null) {
        return parseInt(source, 10);
      }
      if (match[$_get](hexIndex) != null) {
        return parseInt(source, 16);
      }
      return _js_helper.Primitives._parseIntError(source, handleError);
    }
    let radix = _radix;
    if (radix < 2 || radix > 36) {
      dart.throw(new core.RangeError.range(radix, 2, 36, "radix"));
    }
    if (radix === 10 && decimalMatch != null) {
      return parseInt(source, 10);
    }
    if (radix < 10 || decimalMatch == null) {
      let maxCharCode = null;
      if (radix <= 10) {
        maxCharCode = 48 - 1 + radix;
      } else {
        maxCharCode = 97 - 10 - 1 + radix;
      }
      if (!(typeof match[$_get](digitsIndex) == 'string')) dart.assertFailed(null, L23, 136, 14, "match[digitsIndex] is String");
      let digitsPart = match[digitsIndex];
      for (let i = 0; i < digitsPart.length; i = i + 1) {
        let characterCode = (digitsPart[$codeUnitAt](i) | 32) >>> 0;
        if (characterCode > dart.notNull(maxCharCode)) {
          return _js_helper.Primitives._parseIntError(source, handleError);
        }
      }
    }
    return parseInt(source, radix);
  }
  static _parseDoubleError(source, handleError) {
    if (handleError == null) {
      dart.throw(new core.FormatException.new("Invalid double", source));
    }
    return handleError(source);
  }
  static parseDouble(source, handleError) {
    if (source == null) dart.argumentError(source);
    if (!/^\s*[+-]?(?:Infinity|NaN|(?:\.\d+|\d+(?:\.\d*)?)(?:[eE][+-]?\d+)?)\s*$/.test(source)) {
      return _js_helper.Primitives._parseDoubleError(source, handleError);
    }
    let result = parseFloat(source);
    if (result[$isNaN]) {
      let trimmed = source[$trim]();
      if (trimmed === "NaN" || trimmed === "+NaN" || trimmed === "-NaN") {
        return result;
      }
      return _js_helper.Primitives._parseDoubleError(source, handleError);
    }
    return result;
  }
  static dateNow() {
    return Date.now();
  }
  static initTicker() {
    if (_js_helper.Primitives.timerFrequency != null) return;
    _js_helper.Primitives.timerFrequency = 1000;
    _js_helper.Primitives.timerTicks = C24 || CT.C24;
    if (typeof window == "undefined") return;
    let jsWindow = window;
    if (jsWindow == null) return;
    let performance = jsWindow.performance;
    if (performance == null) return;
    if (typeof performance.now != "function") return;
    _js_helper.Primitives.timerFrequency = 1000000;
    _js_helper.Primitives.timerTicks = dart.fn(() => (1000 * performance.now())[$floor](), VoidTointL());
  }
  static get isD8() {
    return typeof version == "function" && typeof os == "object" && "system" in os;
  }
  static get isJsshell() {
    return typeof version == "function" && typeof system == "function";
  }
  static currentUri() {
    if (!!dart.global.location) {
      return dart.global.location.href;
    }
    return "";
  }
  static _fromCharCodeApply(array) {
    let end = dart.notNull(array[$length]);
    if (end <= 500) {
      return String.fromCharCode.apply(null, array);
    }
    let result = "";
    for (let i = 0; i < end; i = i + 500) {
      let chunkEnd = i + 500 < end ? i + 500 : end;
      result = result + String.fromCharCode.apply(null, array.slice(i, chunkEnd));
    }
    return result;
  }
  static stringFromCodePoints(codePoints) {
    let a = JSArrayOfintL().of([]);
    for (let i of codePoints) {
      if (i == null) dart.argumentError(i);
      {
        if (i <= 65535) {
          a[$add](i);
        } else if (i <= 1114111) {
          a[$add](55296 + (i - 65536 >> 10 & 1023));
          a[$add](56320 + (i & 1023));
        } else {
          dart.throw(_js_helper.argumentErrorValue(i));
        }
      }
    }
    return _js_helper.Primitives._fromCharCodeApply(a);
  }
  static stringFromCharCodes(charCodes) {
    for (let i of charCodes) {
      if (i == null) dart.argumentError(i);
      {
        if (i < 0) dart.throw(_js_helper.argumentErrorValue(i));
        if (i > 65535) return _js_helper.Primitives.stringFromCodePoints(charCodes);
      }
    }
    return _js_helper.Primitives._fromCharCodeApply(charCodes);
  }
  static stringFromNativeUint8List(charCodes, start, end) {
    if (start == null) dart.argumentError(start);
    if (end == null) dart.argumentError(end);
    if (end <= 500 && start === 0 && end === charCodes[$length]) {
      return String.fromCharCode.apply(null, charCodes);
    }
    let result = "";
    for (let i = start; i < end; i = i + 500) {
      let chunkEnd = i + 500 < end ? i + 500 : end;
      result = result + String.fromCharCode.apply(null, charCodes.subarray(i, chunkEnd));
    }
    return result;
  }
  static stringFromCharCode(charCode) {
    if (charCode == null) dart.argumentError(charCode);
    if (0 <= charCode) {
      if (charCode <= 65535) {
        return String.fromCharCode(charCode);
      }
      if (charCode <= 1114111) {
        let bits = charCode - 65536;
        let low = 56320 | bits & 1023;
        let high = (55296 | bits[$rightShift](10)) >>> 0;
        return String.fromCharCode(high, low);
      }
    }
    dart.throw(new core.RangeError.range(charCode, 0, 1114111));
  }
  static stringConcatUnchecked(string1, string2) {
    return _foreign_helper.JS_STRING_CONCAT(string1, string2);
  }
  static flattenString(str) {
    return str.charCodeAt(0) == 0 ? str : str;
  }
  static getTimeZoneName(receiver) {
    let d = _js_helper.Primitives.lazyAsJsDate(receiver);
    let match = /\((.*)\)/.exec(d.toString());
    if (match != null) return core.String.as(match[$_get](1));
    match = /^[A-Z,a-z]{3}\s[A-Z,a-z]{3}\s\d+\s\d{2}:\d{2}:\d{2}\s([A-Z]{3,5})\s\d{4}$/.exec(d.toString());
    if (match != null) return core.String.as(match[$_get](1));
    match = /(?:GMT|UTC)[+-]\d{4}/.exec(d.toString());
    if (match != null) return core.String.as(match[$_get](0));
    return "";
  }
  static getTimeZoneOffsetInMinutes(receiver) {
    return -_js_helper.Primitives.lazyAsJsDate(receiver).getTimezoneOffset();
  }
  static valueFromDecomposedDate(years, month, day, hours, minutes, seconds, milliseconds, isUtc) {
    if (years == null) dart.argumentError(years);
    if (month == null) dart.argumentError(month);
    if (day == null) dart.argumentError(day);
    if (hours == null) dart.argumentError(hours);
    if (minutes == null) dart.argumentError(minutes);
    if (seconds == null) dart.argumentError(seconds);
    if (milliseconds == null) dart.argumentError(milliseconds);
    if (isUtc == null) dart.argumentError(isUtc);
    let MAX_MILLISECONDS_SINCE_EPOCH = 8640000000000000;
    let jsMonth = month - 1;
    let value = null;
    if (isUtc) {
      value = Date.UTC(years, jsMonth, day, hours, minutes, seconds, milliseconds);
    } else {
      value = new Date(years, jsMonth, day, hours, minutes, seconds, milliseconds).valueOf();
    }
    if (value[$isNaN] || dart.notNull(value) < -MAX_MILLISECONDS_SINCE_EPOCH || dart.notNull(value) > MAX_MILLISECONDS_SINCE_EPOCH) {
      return null;
    }
    if (years <= 0 || years < 100) return _js_helper.Primitives.patchUpY2K(value, years, isUtc);
    return value;
  }
  static patchUpY2K(value, years, isUtc) {
    let date = new Date(value);
    if (dart.dtest(isUtc)) {
      date.setUTCFullYear(years);
    } else {
      date.setFullYear(years);
    }
    return date.valueOf();
  }
  static lazyAsJsDate(receiver) {
    if (receiver.date === void 0) {
      receiver.date = new Date(receiver.millisecondsSinceEpoch);
    }
    return receiver.date;
  }
  static getYear(receiver) {
    return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCFullYear() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getFullYear() + 0;
  }
  static getMonth(receiver) {
    return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCMonth() + 1 : _js_helper.Primitives.lazyAsJsDate(receiver).getMonth() + 1;
  }
  static getDay(receiver) {
    return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCDate() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getDate() + 0;
  }
  static getHours(receiver) {
    return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCHours() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getHours() + 0;
  }
  static getMinutes(receiver) {
    return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCMinutes() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getMinutes() + 0;
  }
  static getSeconds(receiver) {
    return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCSeconds() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getSeconds() + 0;
  }
  static getMilliseconds(receiver) {
    return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCMilliseconds() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getMilliseconds() + 0;
  }
  static getWeekday(receiver) {
    let weekday = dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCDay() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getDay() + 0;
    return (weekday + 6)[$modulo](7) + 1;
  }
  static valueFromDateString(str) {
    if (!(typeof str == 'string')) dart.throw(_js_helper.argumentErrorValue(str));
    let value = Date.parse(str);
    if (value[$isNaN]) dart.throw(_js_helper.argumentErrorValue(str));
    return value;
  }
  static getProperty(object, key) {
    if (object == null || typeof object == 'boolean' || typeof object == 'number' || typeof object == 'string') {
      dart.throw(_js_helper.argumentErrorValue(object));
    }
    return object[key];
  }
  static setProperty(object, key, value) {
    if (object == null || typeof object == 'boolean' || typeof object == 'number' || typeof object == 'string') {
      dart.throw(_js_helper.argumentErrorValue(object));
    }
    object[key] = value;
  }
};
(_js_helper.Primitives.new = function() {
  ;
}).prototype = _js_helper.Primitives.prototype;
dart.addTypeTests(_js_helper.Primitives);
dart.addTypeCaches(_js_helper.Primitives);
dart.setLibraryUri(_js_helper.Primitives, L22);
dart.defineLazy(_js_helper.Primitives, {
  /*_js_helper.Primitives.DOLLAR_CHAR_VALUE*/get DOLLAR_CHAR_VALUE() {
    return 36;
  },
  /*_js_helper.Primitives.timerFrequency*/get timerFrequency() {
    return null;
  },
  set timerFrequency(_) {},
  /*_js_helper.Primitives.timerTicks*/get timerTicks() {
    return null;
  },
  set timerTicks(_) {}
}, true);
var _message$0 = dart.privateName(_js_helper, "_message");
var _method = dart.privateName(_js_helper, "_method");
var _receiver$0 = dart.privateName(_js_helper, "_receiver");
var C25;
var _existingArgumentNames$0 = dart.privateName(_js_helper, "_existingArgumentNames");
var C26;
var _arguments$0 = dart.privateName(_js_helper, "_arguments");
var C27;
var _memberName$0 = dart.privateName(_js_helper, "_memberName");
var C28;
var _invocation$0 = dart.privateName(_js_helper, "_invocation");
var C29;
var _namedArguments$0 = dart.privateName(_js_helper, "_namedArguments");
var C30;
var _receiver$1 = dart.privateName(_js_helper, "JsNoSuchMethodError._receiver");
_js_helper.JsNoSuchMethodError = class JsNoSuchMethodError extends core.Error {
  get [_receiver$0]() {
    return this[_receiver$1];
  }
  set [_receiver$0](value) {
    super[_receiver$0] = value;
  }
  toString() {
    if (this[_method] == null) return "NoSuchMethodError: " + dart.str(this[_message$0]);
    if (this[_receiver$0] == null) {
      return "NoSuchMethodError: method not found: '" + dart.str(this[_method]) + "' (" + dart.str(this[_message$0]) + ")";
    }
    return "NoSuchMethodError: " + "method not found: '" + dart.str(this[_method]) + "' on '" + dart.str(this[_receiver$0]) + "' (" + dart.str(this[_message$0]) + ")";
  }
  get [_receiver$]() {
    return this[$noSuchMethod](new core._Invocation.getter(C25 || CT.C25));
  }
  get [_existingArgumentNames$]() {
    return core.List.as(this[$noSuchMethod](new core._Invocation.getter(C26 || CT.C26)));
  }
  get [_arguments$]() {
    return core.List.as(this[$noSuchMethod](new core._Invocation.getter(C27 || CT.C27)));
  }
  get [_memberName$]() {
    return core.Symbol.as(this[$noSuchMethod](new core._Invocation.getter(C28 || CT.C28)));
  }
  get [_invocation$]() {
    return core.Invocation.as(this[$noSuchMethod](new core._Invocation.getter(C29 || CT.C29)));
  }
  get [_namedArguments$]() {
    return MapOfSymbolL$dynamic().as(this[$noSuchMethod](new core._Invocation.getter(C30 || CT.C30)));
  }
};
(_js_helper.JsNoSuchMethodError.new = function(_message, match) {
  this[_message$0] = _message;
  this[_method] = match == null ? null : match.method;
  this[_receiver$1] = match == null ? null : match.receiver;
  _js_helper.JsNoSuchMethodError.__proto__.new.call(this);
  ;
}).prototype = _js_helper.JsNoSuchMethodError.prototype;
dart.addTypeTests(_js_helper.JsNoSuchMethodError);
dart.addTypeCaches(_js_helper.JsNoSuchMethodError);
_js_helper.JsNoSuchMethodError[dart.implements] = () => [core.NoSuchMethodError];
dart.setGetterSignature(_js_helper.JsNoSuchMethodError, () => ({
  __proto__: dart.getGetters(_js_helper.JsNoSuchMethodError.__proto__),
  [_receiver$]: core.Object,
  [_existingArgumentNames$]: core.List,
  [_arguments$]: core.List,
  [_memberName$]: core.Symbol,
  [_invocation$]: core.Invocation,
  [_namedArguments$]: core.Map$(core.Symbol, dart.dynamic)
}));
dart.setLibraryUri(_js_helper.JsNoSuchMethodError, L22);
dart.setFieldSignature(_js_helper.JsNoSuchMethodError, () => ({
  __proto__: dart.getFields(_js_helper.JsNoSuchMethodError.__proto__),
  [_message$0]: dart.finalFieldType(core.String),
  [_method]: dart.finalFieldType(core.String),
  [_receiver$0]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(_js_helper.JsNoSuchMethodError, ['toString']);
_js_helper.UnknownJsTypeError = class UnknownJsTypeError extends core.Error {
  toString() {
    return this[_message$0][$isEmpty] ? "Error" : "Error: " + dart.str(this[_message$0]);
  }
};
(_js_helper.UnknownJsTypeError.new = function(_message) {
  this[_message$0] = _message;
  _js_helper.UnknownJsTypeError.__proto__.new.call(this);
  ;
}).prototype = _js_helper.UnknownJsTypeError.prototype;
dart.addTypeTests(_js_helper.UnknownJsTypeError);
dart.addTypeCaches(_js_helper.UnknownJsTypeError);
dart.setLibraryUri(_js_helper.UnknownJsTypeError, L22);
dart.setFieldSignature(_js_helper.UnknownJsTypeError, () => ({
  __proto__: dart.getFields(_js_helper.UnknownJsTypeError.__proto__),
  [_message$0]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(_js_helper.UnknownJsTypeError, ['toString']);
var types$0 = dart.privateName(_js_helper, "Creates.types");
_js_helper.Creates = class Creates extends core.Object {
  get types() {
    return this[types$0];
  }
  set types(value) {
    super.types = value;
  }
};
(_js_helper.Creates.new = function(types) {
  this[types$0] = types;
  ;
}).prototype = _js_helper.Creates.prototype;
dart.addTypeTests(_js_helper.Creates);
dart.addTypeCaches(_js_helper.Creates);
dart.setLibraryUri(_js_helper.Creates, L22);
dart.setFieldSignature(_js_helper.Creates, () => ({
  __proto__: dart.getFields(_js_helper.Creates.__proto__),
  types: dart.finalFieldType(core.String)
}));
var types$1 = dart.privateName(_js_helper, "Returns.types");
_js_helper.Returns = class Returns extends core.Object {
  get types() {
    return this[types$1];
  }
  set types(value) {
    super.types = value;
  }
};
(_js_helper.Returns.new = function(types) {
  this[types$1] = types;
  ;
}).prototype = _js_helper.Returns.prototype;
dart.addTypeTests(_js_helper.Returns);
dart.addTypeCaches(_js_helper.Returns);
dart.setLibraryUri(_js_helper.Returns, L22);
dart.setFieldSignature(_js_helper.Returns, () => ({
  __proto__: dart.getFields(_js_helper.Returns.__proto__),
  types: dart.finalFieldType(core.String)
}));
var name$6 = dart.privateName(_js_helper, "JSName.name");
_js_helper.JSName = class JSName extends core.Object {
  get name() {
    return this[name$6];
  }
  set name(value) {
    super.name = value;
  }
};
(_js_helper.JSName.new = function(name) {
  this[name$6] = name;
  ;
}).prototype = _js_helper.JSName.prototype;
dart.addTypeTests(_js_helper.JSName);
dart.addTypeCaches(_js_helper.JSName);
dart.setLibraryUri(_js_helper.JSName, L22);
dart.setFieldSignature(_js_helper.JSName, () => ({
  __proto__: dart.getFields(_js_helper.JSName.__proto__),
  name: dart.finalFieldType(core.String)
}));
const _is_JavaScriptIndexingBehavior_default = Symbol('_is_JavaScriptIndexingBehavior_default');
_js_helper.JavaScriptIndexingBehavior$ = dart.generic(E => {
  class JavaScriptIndexingBehavior extends core.Object {}
  (JavaScriptIndexingBehavior.new = function() {
    ;
  }).prototype = JavaScriptIndexingBehavior.prototype;
  dart.addTypeTests(JavaScriptIndexingBehavior);
  JavaScriptIndexingBehavior.prototype[_is_JavaScriptIndexingBehavior_default] = true;
  dart.addTypeCaches(JavaScriptIndexingBehavior);
  dart.setLibraryUri(JavaScriptIndexingBehavior, L22);
  return JavaScriptIndexingBehavior;
});
_js_helper.JavaScriptIndexingBehavior = _js_helper.JavaScriptIndexingBehavior$();
dart.addTypeTests(_js_helper.JavaScriptIndexingBehavior, _is_JavaScriptIndexingBehavior_default);
_js_helper.TypeErrorImpl = class TypeErrorImpl extends core.Error {
  toString() {
    return this[_message$0];
  }
};
(_js_helper.TypeErrorImpl.new = function(_message) {
  this[_message$0] = _message;
  _js_helper.TypeErrorImpl.__proto__.new.call(this);
  ;
}).prototype = _js_helper.TypeErrorImpl.prototype;
dart.addTypeTests(_js_helper.TypeErrorImpl);
dart.addTypeCaches(_js_helper.TypeErrorImpl);
_js_helper.TypeErrorImpl[dart.implements] = () => [core.TypeError, core.CastError];
dart.setLibraryUri(_js_helper.TypeErrorImpl, L22);
dart.setFieldSignature(_js_helper.TypeErrorImpl, () => ({
  __proto__: dart.getFields(_js_helper.TypeErrorImpl.__proto__),
  [_message$0]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(_js_helper.TypeErrorImpl, ['toString']);
_js_helper.CastErrorImpl = class CastErrorImpl extends core.Error {
  toString() {
    return this[_message$0];
  }
};
(_js_helper.CastErrorImpl.new = function(_message) {
  this[_message$0] = _message;
  _js_helper.CastErrorImpl.__proto__.new.call(this);
  ;
}).prototype = _js_helper.CastErrorImpl.prototype;
dart.addTypeTests(_js_helper.CastErrorImpl);
dart.addTypeCaches(_js_helper.CastErrorImpl);
_js_helper.CastErrorImpl[dart.implements] = () => [core.CastError, core.TypeError];
dart.setLibraryUri(_js_helper.CastErrorImpl, L22);
dart.setFieldSignature(_js_helper.CastErrorImpl, () => ({
  __proto__: dart.getFields(_js_helper.CastErrorImpl.__proto__),
  [_message$0]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(_js_helper.CastErrorImpl, ['toString']);
core.FallThroughError = class FallThroughError extends core.Error {
  toString() {
    return super[$toString]();
  }
};
(core.FallThroughError.new = function() {
  core.FallThroughError.__proto__.new.call(this);
  ;
}).prototype = core.FallThroughError.prototype;
(core.FallThroughError._create = function(url, line) {
  core.FallThroughError.__proto__.new.call(this);
  ;
}).prototype = core.FallThroughError.prototype;
dart.addTypeTests(core.FallThroughError);
dart.addTypeCaches(core.FallThroughError);
dart.setLibraryUri(core.FallThroughError, L1$);
dart.defineExtensionMethods(core.FallThroughError, ['toString']);
_js_helper.FallThroughErrorImplementation = class FallThroughErrorImplementation extends core.FallThroughError {
  toString() {
    return "Switch case fall-through.";
  }
};
(_js_helper.FallThroughErrorImplementation.new = function() {
  _js_helper.FallThroughErrorImplementation.__proto__.new.call(this);
  ;
}).prototype = _js_helper.FallThroughErrorImplementation.prototype;
dart.addTypeTests(_js_helper.FallThroughErrorImplementation);
dart.addTypeCaches(_js_helper.FallThroughErrorImplementation);
dart.setLibraryUri(_js_helper.FallThroughErrorImplementation, L22);
dart.defineExtensionMethods(_js_helper.FallThroughErrorImplementation, ['toString']);
var message$ = dart.privateName(_js_helper, "RuntimeError.message");
_js_helper.RuntimeError = class RuntimeError extends core.Error {
  get message() {
    return this[message$];
  }
  set message(value) {
    super.message = value;
  }
  toString() {
    return "RuntimeError: " + dart.str(this.message);
  }
};
(_js_helper.RuntimeError.new = function(message) {
  this[message$] = message;
  _js_helper.RuntimeError.__proto__.new.call(this);
  ;
}).prototype = _js_helper.RuntimeError.prototype;
dart.addTypeTests(_js_helper.RuntimeError);
dart.addTypeCaches(_js_helper.RuntimeError);
dart.setLibraryUri(_js_helper.RuntimeError, L22);
dart.setFieldSignature(_js_helper.RuntimeError, () => ({
  __proto__: dart.getFields(_js_helper.RuntimeError.__proto__),
  message: dart.finalFieldType(dart.dynamic)
}));
dart.defineExtensionMethods(_js_helper.RuntimeError, ['toString']);
var _fileUri$ = dart.privateName(_js_helper, "_fileUri");
var _line$ = dart.privateName(_js_helper, "_line");
var _column$ = dart.privateName(_js_helper, "_column");
var _conditionSource$ = dart.privateName(_js_helper, "_conditionSource");
var message$0 = dart.privateName(core, "AssertionError.message");
core.AssertionError = class AssertionError extends core.Error {
  get message() {
    return this[message$0];
  }
  set message(value) {
    super.message = value;
  }
  toString() {
    if (this.message != null) {
      return "Assertion failed: " + dart.str(core.Error.safeToString(this.message));
    }
    return "Assertion failed";
  }
};
(core.AssertionError.new = function(message = null) {
  this[message$0] = message;
  core.AssertionError.__proto__.new.call(this);
  ;
}).prototype = core.AssertionError.prototype;
dart.addTypeTests(core.AssertionError);
dart.addTypeCaches(core.AssertionError);
dart.setLibraryUri(core.AssertionError, L1$);
dart.setFieldSignature(core.AssertionError, () => ({
  __proto__: dart.getFields(core.AssertionError.__proto__),
  message: dart.finalFieldType(core.Object)
}));
dart.defineExtensionMethods(core.AssertionError, ['toString']);
_js_helper.AssertionErrorImpl = class AssertionErrorImpl extends core.AssertionError {
  toString() {
    let failureMessage = "";
    if (this[_fileUri$] != null && this[_line$] != null && this[_column$] != null && this[_conditionSource$] != null) {
      failureMessage = failureMessage + (dart.str(this[_fileUri$]) + ":" + dart.str(this[_line$]) + ":" + dart.str(this[_column$]) + "\n" + dart.str(this[_conditionSource$]) + "\n");
    }
    failureMessage = failureMessage + dart.notNull(this.message != null ? core.Error.safeToString(this.message) : "is not true");
    return "Assertion failed: " + failureMessage;
  }
};
(_js_helper.AssertionErrorImpl.new = function(message, _fileUri = null, _line = null, _column = null, _conditionSource = null) {
  this[_fileUri$] = _fileUri;
  this[_line$] = _line;
  this[_column$] = _column;
  this[_conditionSource$] = _conditionSource;
  _js_helper.AssertionErrorImpl.__proto__.new.call(this, message);
  ;
}).prototype = _js_helper.AssertionErrorImpl.prototype;
dart.addTypeTests(_js_helper.AssertionErrorImpl);
dart.addTypeCaches(_js_helper.AssertionErrorImpl);
dart.setLibraryUri(_js_helper.AssertionErrorImpl, L22);
dart.setFieldSignature(_js_helper.AssertionErrorImpl, () => ({
  __proto__: dart.getFields(_js_helper.AssertionErrorImpl.__proto__),
  [_fileUri$]: dart.finalFieldType(core.String),
  [_line$]: dart.finalFieldType(core.int),
  [_column$]: dart.finalFieldType(core.int),
  [_conditionSource$]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(_js_helper.AssertionErrorImpl, ['toString']);
_js_helper.BooleanConversionAssertionError = class BooleanConversionAssertionError extends core.AssertionError {
  toString() {
    return "Failed assertion: boolean expression must not be null";
  }
};
(_js_helper.BooleanConversionAssertionError.new = function() {
  _js_helper.BooleanConversionAssertionError.__proto__.new.call(this);
  ;
}).prototype = _js_helper.BooleanConversionAssertionError.prototype;
dart.addTypeTests(_js_helper.BooleanConversionAssertionError);
dart.addTypeCaches(_js_helper.BooleanConversionAssertionError);
dart.setLibraryUri(_js_helper.BooleanConversionAssertionError, L22);
dart.defineExtensionMethods(_js_helper.BooleanConversionAssertionError, ['toString']);
var _name$0 = dart.privateName(_js_helper, "_name");
var _nativeSymbol = dart.privateName(_js_helper, "_nativeSymbol");
var _name$1 = dart.privateName(_js_helper, "PrivateSymbol._name");
var _nativeSymbol$ = dart.privateName(_js_helper, "PrivateSymbol._nativeSymbol");
_js_helper.PrivateSymbol = class PrivateSymbol extends core.Object {
  get [_name$0]() {
    return this[_name$1];
  }
  set [_name$0](value) {
    super[_name$0] = value;
  }
  get [_nativeSymbol]() {
    return this[_nativeSymbol$];
  }
  set [_nativeSymbol](value) {
    super[_nativeSymbol] = value;
  }
  static getName(symbol) {
    return _js_helper.PrivateSymbol.as(symbol)[_name$0];
  }
  static getNativeSymbol(symbol) {
    if (_js_helper.PrivateSymbol.is(symbol)) return symbol[_nativeSymbol];
    return null;
  }
  _equals(other) {
    if (other == null) return false;
    return _js_helper.PrivateSymbol.is(other) && this[_name$0] == other[_name$0] && core.identical(this[_nativeSymbol], other[_nativeSymbol]);
  }
  get hashCode() {
    return dart.hashCode(this[_name$0]);
  }
  toString() {
    return "Symbol(\"" + dart.str(this[_name$0]) + "\")";
  }
};
(_js_helper.PrivateSymbol.new = function(_name, _nativeSymbol) {
  this[_name$1] = _name;
  this[_nativeSymbol$] = _nativeSymbol;
  ;
}).prototype = _js_helper.PrivateSymbol.prototype;
dart.addTypeTests(_js_helper.PrivateSymbol);
dart.addTypeCaches(_js_helper.PrivateSymbol);
_js_helper.PrivateSymbol[dart.implements] = () => [core.Symbol];
dart.setLibraryUri(_js_helper.PrivateSymbol, L22);
dart.setFieldSignature(_js_helper.PrivateSymbol, () => ({
  __proto__: dart.getFields(_js_helper.PrivateSymbol.__proto__),
  [_name$0]: dart.finalFieldType(core.String),
  [_nativeSymbol]: dart.finalFieldType(core.Object)
}));
dart.defineExtensionMethods(_js_helper.PrivateSymbol, ['_equals', 'toString']);
dart.defineExtensionAccessors(_js_helper.PrivateSymbol, ['hashCode']);
_js_helper.ForceInline = class ForceInline extends core.Object {};
(_js_helper.ForceInline.new = function() {
  ;
}).prototype = _js_helper.ForceInline.prototype;
dart.addTypeTests(_js_helper.ForceInline);
dart.addTypeCaches(_js_helper.ForceInline);
dart.setLibraryUri(_js_helper.ForceInline, L22);
_js_helper._NotNull = class _NotNull extends core.Object {};
(_js_helper._NotNull.new = function() {
  ;
}).prototype = _js_helper._NotNull.prototype;
dart.addTypeTests(_js_helper._NotNull);
dart.addTypeCaches(_js_helper._NotNull);
dart.setLibraryUri(_js_helper._NotNull, L22);
_js_helper.NoReifyGeneric = class NoReifyGeneric extends core.Object {};
(_js_helper.NoReifyGeneric.new = function() {
  ;
}).prototype = _js_helper.NoReifyGeneric.prototype;
dart.addTypeTests(_js_helper.NoReifyGeneric);
dart.addTypeCaches(_js_helper.NoReifyGeneric);
dart.setLibraryUri(_js_helper.NoReifyGeneric, L22);
var value$1 = dart.privateName(_js_helper, "ReifyFunctionTypes.value");
_js_helper.ReifyFunctionTypes = class ReifyFunctionTypes extends core.Object {
  get value() {
    return this[value$1];
  }
  set value(value) {
    super.value = value;
  }
};
(_js_helper.ReifyFunctionTypes.new = function(value) {
  this[value$1] = value;
  ;
}).prototype = _js_helper.ReifyFunctionTypes.prototype;
dart.addTypeTests(_js_helper.ReifyFunctionTypes);
dart.addTypeCaches(_js_helper.ReifyFunctionTypes);
dart.setLibraryUri(_js_helper.ReifyFunctionTypes, L22);
dart.setFieldSignature(_js_helper.ReifyFunctionTypes, () => ({
  __proto__: dart.getFields(_js_helper.ReifyFunctionTypes.__proto__),
  value: dart.finalFieldType(core.bool)
}));
_js_helper._NullCheck = class _NullCheck extends core.Object {};
(_js_helper._NullCheck.new = function() {
  ;
}).prototype = _js_helper._NullCheck.prototype;
dart.addTypeTests(_js_helper._NullCheck);
dart.addTypeCaches(_js_helper._NullCheck);
dart.setLibraryUri(_js_helper._NullCheck, L22);
_js_helper._Undefined = class _Undefined extends core.Object {};
(_js_helper._Undefined.new = function() {
  ;
}).prototype = _js_helper._Undefined.prototype;
dart.addTypeTests(_js_helper._Undefined);
dart.addTypeCaches(_js_helper._Undefined);
dart.setLibraryUri(_js_helper._Undefined, L22);
_js_helper.NoThrows = class NoThrows extends core.Object {};
(_js_helper.NoThrows.new = function() {
  ;
}).prototype = _js_helper.NoThrows.prototype;
dart.addTypeTests(_js_helper.NoThrows);
dart.addTypeCaches(_js_helper.NoThrows);
dart.setLibraryUri(_js_helper.NoThrows, L22);
_js_helper.NoInline = class NoInline extends core.Object {};
(_js_helper.NoInline.new = function() {
  ;
}).prototype = _js_helper.NoInline.prototype;
dart.addTypeTests(_js_helper.NoInline);
dart.addTypeCaches(_js_helper.NoInline);
dart.setLibraryUri(_js_helper.NoInline, L22);
var name$7 = dart.privateName(_js_helper, "Native.name");
_js_helper.Native = class Native extends core.Object {
  get name() {
    return this[name$7];
  }
  set name(value) {
    super.name = value;
  }
};
(_js_helper.Native.new = function(name) {
  this[name$7] = name;
  ;
}).prototype = _js_helper.Native.prototype;
dart.addTypeTests(_js_helper.Native);
dart.addTypeCaches(_js_helper.Native);
dart.setLibraryUri(_js_helper.Native, L22);
dart.setFieldSignature(_js_helper.Native, () => ({
  __proto__: dart.getFields(_js_helper.Native.__proto__),
  name: dart.finalFieldType(core.String)
}));
var name$8 = dart.privateName(_js_helper, "JsPeerInterface.name");
_js_helper.JsPeerInterface = class JsPeerInterface extends core.Object {
  get name() {
    return this[name$8];
  }
  set name(value) {
    super.name = value;
  }
};
(_js_helper.JsPeerInterface.new = function(opts) {
  let name = opts && 'name' in opts ? opts.name : null;
  this[name$8] = name;
  ;
}).prototype = _js_helper.JsPeerInterface.prototype;
dart.addTypeTests(_js_helper.JsPeerInterface);
dart.addTypeCaches(_js_helper.JsPeerInterface);
dart.setLibraryUri(_js_helper.JsPeerInterface, L22);
dart.setFieldSignature(_js_helper.JsPeerInterface, () => ({
  __proto__: dart.getFields(_js_helper.JsPeerInterface.__proto__),
  name: dart.finalFieldType(core.String)
}));
_js_helper.SupportJsExtensionMethods = class SupportJsExtensionMethods extends core.Object {};
(_js_helper.SupportJsExtensionMethods.new = function() {
  ;
}).prototype = _js_helper.SupportJsExtensionMethods.prototype;
dart.addTypeTests(_js_helper.SupportJsExtensionMethods);
dart.addTypeCaches(_js_helper.SupportJsExtensionMethods);
dart.setLibraryUri(_js_helper.SupportJsExtensionMethods, L22);
var _modifications = dart.privateName(_js_helper, "_modifications");
var _map$ = dart.privateName(_js_helper, "_map");
const _is_InternalMap_default = Symbol('_is_InternalMap_default');
_js_helper.InternalMap$ = dart.generic((K, V) => {
  class InternalMap extends collection.MapBase$(K, V) {
    forEach(action) {
      let modifications = this[_modifications];
      for (let entry of this[_map$].entries()) {
        action(entry[0], entry[1]);
        if (modifications !== this[_modifications]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
      }
    }
  }
  (InternalMap.new = function() {
    ;
  }).prototype = InternalMap.prototype;
  dart.addTypeTests(InternalMap);
  InternalMap.prototype[_is_InternalMap_default] = true;
  dart.addTypeCaches(InternalMap);
  InternalMap[dart.implements] = () => [collection.LinkedHashMap$(K, V), collection.HashMap$(K, V)];
  dart.setLibraryUri(InternalMap, L22);
  dart.defineExtensionMethods(InternalMap, ['forEach']);
  return InternalMap;
});
_js_helper.InternalMap = _js_helper.InternalMap$();
dart.addTypeTests(_js_helper.InternalMap, _is_InternalMap_default);
var _keyMap = dart.privateName(_js_helper, "_keyMap");
const _is_LinkedMap_default = Symbol('_is_LinkedMap_default');
var _map = dart.privateName(_js_helper, "LinkedMap._map");
var _modifications$ = dart.privateName(_js_helper, "LinkedMap._modifications");
_js_helper.LinkedMap$ = dart.generic((K, V) => {
  var _JSMapIterableOfKL = () => (_JSMapIterableOfKL = dart.constFn(_js_helper._JSMapIterable$(K)))();
  var MapOfKL$VL = () => (MapOfKL$VL = dart.constFn(core.Map$(K, V)))();
  var KLAndVLToNullN = () => (KLAndVLToNullN = dart.constFn(dart.fnType(core.Null, [K, V])))();
  var _JSMapIterableOfVL = () => (_JSMapIterableOfVL = dart.constFn(_js_helper._JSMapIterable$(V)))();
  var VoidToLVL = () => (VoidToLVL = dart.constFn(dart.fnType(V, [])))();
  class LinkedMap extends _js_helper.InternalMap$(K, V) {
    get [_map$]() {
      return this[_map];
    }
    set [_map$](value) {
      super[_map$] = value;
    }
    get [_modifications]() {
      return this[_modifications$];
    }
    set [_modifications](value) {
      this[_modifications$] = value;
    }
    get length() {
      return this[_map$].size;
    }
    get isEmpty() {
      return this[_map$].size == 0;
    }
    get isNotEmpty() {
      return this[_map$].size != 0;
    }
    get keys() {
      return new (_JSMapIterableOfKL()).new(this, true);
    }
    get values() {
      return new (_JSMapIterableOfVL()).new(this, false);
    }
    containsKey(key) {
      if (key == null) {
        key = null;
      } else if (key[$_equals] !== dart.identityEquals) {
        let k = key;
        let buckets = this[_keyMap].get(dart.hashCode(k) & 0x3ffffff);
        if (buckets != null) {
          for (let i = 0, n = buckets.length; i < n; i = i + 1) {
            k = buckets[i];
            if (dart.equals(k, key)) return true;
          }
        }
        return false;
      }
      return this[_map$].has(key);
    }
    containsValue(value) {
      for (let v of this[_map$].values()) {
        if (dart.equals(v, value)) return true;
      }
      return false;
    }
    addAll(other) {
      MapOfKL$VL().as(other);
      let map = this[_map$];
      let length = map.size;
      other[$forEach](dart.fn((key, value) => {
        if (key == null) {
          key = null;
        } else if (key[$_equals] !== dart.identityEquals) {
          key = _js_helper.putLinkedMapKey(key, this[_keyMap]);
        }
        this[_map$].set(key, value);
      }, KLAndVLToNullN()));
      if (length !== map.size) {
        this[_modifications] = this[_modifications] + 1 & 67108863;
      }
    }
    _get(key) {
      if (key == null) {
        key = null;
      } else if (key[$_equals] !== dart.identityEquals) {
        let k = key;
        let buckets = this[_keyMap].get(dart.hashCode(k) & 0x3ffffff);
        if (buckets != null) {
          for (let i = 0, n = buckets.length; i < n; i = i + 1) {
            k = buckets[i];
            if (dart.equals(k, key)) return this[_map$].get(k);
          }
        }
        return null;
      }
      let value = this[_map$].get(key);
      return value == null ? null : value;
    }
    _set(key, value$) {
      let value = value$;
      K.as(key);
      V.as(value);
      if (key == null) {
        key = null;
      } else if (key[$_equals] !== dart.identityEquals) {
        key = _js_helper.putLinkedMapKey(key, this[_keyMap]);
      }
      let map = this[_map$];
      let length = map.size;
      map.set(key, value);
      if (length !== map.size) {
        this[_modifications] = this[_modifications] + 1 & 67108863;
      }
      return value$;
    }
    putIfAbsent(key, ifAbsent) {
      K.as(key);
      VoidToLVL().as(ifAbsent);
      let map = this[_map$];
      if (key == null) {
        key = null;
        if (map.has(null)) return map.get(null);
      } else if (key[$_equals] !== dart.identityEquals) {
        let k = key;
        let hash = dart.hashCode(k) & 0x3ffffff;
        let buckets = this[_keyMap].get(hash);
        if (buckets == null) {
          this[_keyMap].set(hash, [key]);
        } else {
          for (let i = 0, n = buckets.length; i < n; i = i + 1) {
            k = buckets[i];
            if (dart.equals(k, key)) return map.get(k);
          }
          buckets.push(key);
        }
      } else if (map.has(key)) {
        return map.get(key);
      }
      let value = ifAbsent();
      if (value == null) value = null;
      map.set(key, value);
      this[_modifications] = this[_modifications] + 1 & 67108863;
      return value;
    }
    remove(key) {
      if (key == null) {
        key = null;
      } else if (key[$_equals] !== dart.identityEquals) {
        let k = key;
        let hash = dart.hashCode(k) & 0x3ffffff;
        let buckets = this[_keyMap].get(hash);
        if (buckets == null) return null;
        for (let i = 0, n = buckets.length;;) {
          k = buckets[i];
          if (dart.equals(k, key)) {
            key = k;
            if (n === 1) {
              this[_keyMap].delete(hash);
            } else {
              buckets.splice(i, 1);
            }
            break;
          }
          if ((i = i + 1) >= n) return null;
        }
      }
      let map = this[_map$];
      let value = map.get(key);
      if (map.delete(key)) {
        this[_modifications] = this[_modifications] + 1 & 67108863;
      }
      return value == null ? null : value;
    }
    clear() {
      let map = this[_map$];
      if (map.size > 0) {
        map.clear();
        this[_keyMap].clear();
        this[_modifications] = this[_modifications] + 1 & 67108863;
      }
    }
  }
  (LinkedMap.new = function() {
    this[_map] = new Map();
    this[_keyMap] = new Map();
    this[_modifications$] = 0;
    ;
  }).prototype = LinkedMap.prototype;
  (LinkedMap.from = function(entries) {
    this[_map] = new Map();
    this[_keyMap] = new Map();
    this[_modifications$] = 0;
    let map = this[_map$];
    let keyMap = this[_keyMap];
    for (let i = 0, n = entries.length; i < n; i = i + 2) {
      let key = entries[i];
      let value = entries[i + 1];
      if (key == null) {
        key = null;
      } else if (key[$_equals] !== dart.identityEquals) {
        key = _js_helper.putLinkedMapKey(key, keyMap);
      }
      map.set(key, value);
    }
  }).prototype = LinkedMap.prototype;
  dart.addTypeTests(LinkedMap);
  LinkedMap.prototype[_is_LinkedMap_default] = true;
  dart.addTypeCaches(LinkedMap);
  dart.setMethodSignature(LinkedMap, () => ({
    __proto__: dart.getMethods(LinkedMap.__proto__),
    _get: dart.fnType(V, [core.Object]),
    [$_get]: dart.fnType(V, [core.Object]),
    _set: dart.fnType(dart.void, [core.Object, core.Object]),
    [$_set]: dart.fnType(dart.void, [core.Object, core.Object]),
    remove: dart.fnType(V, [core.Object]),
    [$remove]: dart.fnType(V, [core.Object]),
    clear: dart.fnType(dart.void, []),
    [$clear]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(LinkedMap, () => ({
    __proto__: dart.getGetters(LinkedMap.__proto__),
    keys: core.Iterable$(K),
    [$keys]: core.Iterable$(K)
  }));
  dart.setLibraryUri(LinkedMap, L22);
  dart.setFieldSignature(LinkedMap, () => ({
    __proto__: dart.getFields(LinkedMap.__proto__),
    [_map$]: dart.finalFieldType(dart.dynamic),
    [_keyMap]: dart.finalFieldType(core.Object),
    [_modifications]: dart.fieldType(core.int)
  }));
  dart.defineExtensionMethods(LinkedMap, [
    'containsKey',
    'containsValue',
    'addAll',
    '_get',
    '_set',
    'putIfAbsent',
    'remove',
    'clear'
  ]);
  dart.defineExtensionAccessors(LinkedMap, [
    'length',
    'isEmpty',
    'isNotEmpty',
    'keys',
    'values'
  ]);
  return LinkedMap;
});
_js_helper.LinkedMap = _js_helper.LinkedMap$();
dart.addTypeTests(_js_helper.LinkedMap, _is_LinkedMap_default);
const _is_ImmutableMap_default = Symbol('_is_ImmutableMap_default');
_js_helper.ImmutableMap$ = dart.generic((K, V) => {
  class ImmutableMap extends _js_helper.LinkedMap$(K, V) {
    _set(key, value$) {
      let value = value$;
      dart.throw(_js_helper.ImmutableMap._unsupported());
      return value$;
    }
    addAll(other) {
      return dart.throw(_js_helper.ImmutableMap._unsupported());
    }
    clear() {
      return dart.throw(_js_helper.ImmutableMap._unsupported());
    }
    remove(key) {
      return dart.throw(_js_helper.ImmutableMap._unsupported());
    }
    putIfAbsent(key, ifAbsent) {
      VoidToLObjectL().as(ifAbsent);
      return dart.throw(_js_helper.ImmutableMap._unsupported());
    }
    static _unsupported() {
      return new core.UnsupportedError.new("Cannot modify unmodifiable map");
    }
  }
  (ImmutableMap.from = function(entries) {
    ImmutableMap.__proto__.from.call(this, entries);
    ;
  }).prototype = ImmutableMap.prototype;
  dart.addTypeTests(ImmutableMap);
  ImmutableMap.prototype[_is_ImmutableMap_default] = true;
  dart.addTypeCaches(ImmutableMap);
  dart.setLibraryUri(ImmutableMap, L22);
  dart.defineExtensionMethods(ImmutableMap, [
    '_set',
    'addAll',
    'clear',
    'remove',
    'putIfAbsent'
  ]);
  return ImmutableMap;
});
_js_helper.ImmutableMap = _js_helper.ImmutableMap$();
dart.addTypeTests(_js_helper.ImmutableMap, _is_ImmutableMap_default);
const _is_IdentityMap_default = Symbol('_is_IdentityMap_default');
var _map$0 = dart.privateName(_js_helper, "IdentityMap._map");
var _modifications$0 = dart.privateName(_js_helper, "IdentityMap._modifications");
_js_helper.IdentityMap$ = dart.generic((K, V) => {
  var _JSMapIterableOfKL = () => (_JSMapIterableOfKL = dart.constFn(_js_helper._JSMapIterable$(K)))();
  var MapOfKL$VL = () => (MapOfKL$VL = dart.constFn(core.Map$(K, V)))();
  var KLAndVLToNullN = () => (KLAndVLToNullN = dart.constFn(dart.fnType(core.Null, [K, V])))();
  var _JSMapIterableOfVL = () => (_JSMapIterableOfVL = dart.constFn(_js_helper._JSMapIterable$(V)))();
  var VoidToLVL = () => (VoidToLVL = dart.constFn(dart.fnType(V, [])))();
  class IdentityMap extends _js_helper.InternalMap$(K, V) {
    get [_map$]() {
      return this[_map$0];
    }
    set [_map$](value) {
      super[_map$] = value;
    }
    get [_modifications]() {
      return this[_modifications$0];
    }
    set [_modifications](value) {
      this[_modifications$0] = value;
    }
    get length() {
      return this[_map$].size;
    }
    get isEmpty() {
      return this[_map$].size == 0;
    }
    get isNotEmpty() {
      return this[_map$].size != 0;
    }
    get keys() {
      return new (_JSMapIterableOfKL()).new(this, true);
    }
    get values() {
      return new (_JSMapIterableOfVL()).new(this, false);
    }
    containsKey(key) {
      return this[_map$].has(key);
    }
    containsValue(value) {
      for (let v of this[_map$].values()) {
        if (dart.equals(v, value)) return true;
      }
      return false;
    }
    addAll(other) {
      MapOfKL$VL().as(other);
      if (dart.test(other[$isNotEmpty])) {
        let map = this[_map$];
        other[$forEach](dart.fn((key, value) => {
          map.set(key, value);
        }, KLAndVLToNullN()));
        this[_modifications] = this[_modifications] + 1 & 67108863;
      }
    }
    _get(key) {
      let value = this[_map$].get(key);
      return value == null ? null : value;
    }
    _set(key, value$) {
      let value = value$;
      K.as(key);
      V.as(value);
      let map = this[_map$];
      let length = map.size;
      map.set(key, value);
      if (length !== map.size) {
        this[_modifications] = this[_modifications] + 1 & 67108863;
      }
      return value$;
    }
    putIfAbsent(key, ifAbsent) {
      K.as(key);
      VoidToLVL().as(ifAbsent);
      if (this[_map$].has(key)) {
        return this[_map$].get(key);
      }
      let value = ifAbsent();
      if (value == null) value = null;
      this[_map$].set(key, value);
      this[_modifications] = this[_modifications] + 1 & 67108863;
      return value;
    }
    remove(key) {
      let value = this[_map$].get(key);
      if (this[_map$].delete(key)) {
        this[_modifications] = this[_modifications] + 1 & 67108863;
      }
      return value == null ? null : value;
    }
    clear() {
      if (this[_map$].size > 0) {
        this[_map$].clear();
        this[_modifications] = this[_modifications] + 1 & 67108863;
      }
    }
  }
  (IdentityMap.new = function() {
    this[_map$0] = new Map();
    this[_modifications$0] = 0;
    ;
  }).prototype = IdentityMap.prototype;
  (IdentityMap.from = function(entries) {
    this[_map$0] = new Map();
    this[_modifications$0] = 0;
    let map = this[_map$];
    for (let i = 0, n = entries.length; i < n; i = i + 2) {
      map.set(entries[i], entries[i + 1]);
    }
  }).prototype = IdentityMap.prototype;
  dart.addTypeTests(IdentityMap);
  IdentityMap.prototype[_is_IdentityMap_default] = true;
  dart.addTypeCaches(IdentityMap);
  dart.setMethodSignature(IdentityMap, () => ({
    __proto__: dart.getMethods(IdentityMap.__proto__),
    _get: dart.fnType(V, [core.Object]),
    [$_get]: dart.fnType(V, [core.Object]),
    _set: dart.fnType(dart.void, [core.Object, core.Object]),
    [$_set]: dart.fnType(dart.void, [core.Object, core.Object]),
    remove: dart.fnType(V, [core.Object]),
    [$remove]: dart.fnType(V, [core.Object]),
    clear: dart.fnType(dart.void, []),
    [$clear]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(IdentityMap, () => ({
    __proto__: dart.getGetters(IdentityMap.__proto__),
    keys: core.Iterable$(K),
    [$keys]: core.Iterable$(K)
  }));
  dart.setLibraryUri(IdentityMap, L22);
  dart.setFieldSignature(IdentityMap, () => ({
    __proto__: dart.getFields(IdentityMap.__proto__),
    [_map$]: dart.finalFieldType(dart.dynamic),
    [_modifications]: dart.fieldType(core.int)
  }));
  dart.defineExtensionMethods(IdentityMap, [
    'containsKey',
    'containsValue',
    'addAll',
    '_get',
    '_set',
    'putIfAbsent',
    'remove',
    'clear'
  ]);
  dart.defineExtensionAccessors(IdentityMap, [
    'length',
    'isEmpty',
    'isNotEmpty',
    'keys',
    'values'
  ]);
  return IdentityMap;
});
_js_helper.IdentityMap = _js_helper.IdentityMap$();
dart.addTypeTests(_js_helper.IdentityMap, _is_IdentityMap_default);
var _isKeys$ = dart.privateName(_js_helper, "_isKeys");
const _is__JSMapIterable_default = Symbol('_is__JSMapIterable_default');
_js_helper._JSMapIterable$ = dart.generic(E => {
  var DartIteratorOfEL = () => (DartIteratorOfEL = dart.constFn(_js_helper.DartIterator$(E)))();
  class _JSMapIterable extends _internal.EfficientLengthIterable$(E) {
    get length() {
      return this[_map$][$length];
    }
    get isEmpty() {
      return this[_map$][$isEmpty];
    }
    [Symbol.iterator]() {
      let map = this[_map$];
      let iterator = this[_isKeys$] ? map[_map$].keys() : map[_map$].values();
      let modifications = map[_modifications];
      return {
        next() {
          if (modifications != map[_modifications]) {
            throw new core.ConcurrentModificationError.new(map);
          }
          return iterator.next();
        }
      };
    }
    get iterator() {
      return new (DartIteratorOfEL()).new(this[Symbol.iterator]());
    }
    contains(element) {
      return this[_isKeys$] ? this[_map$][$containsKey](element) : this[_map$][$containsValue](element);
    }
    forEach(f) {
      for (let entry of this)
        f(entry);
    }
  }
  (_JSMapIterable.new = function(_map, _isKeys) {
    this[_map$] = _map;
    this[_isKeys$] = _isKeys;
    _JSMapIterable.__proto__.new.call(this);
    ;
  }).prototype = _JSMapIterable.prototype;
  dart.addTypeTests(_JSMapIterable);
  _JSMapIterable.prototype[_is__JSMapIterable_default] = true;
  dart.addTypeCaches(_JSMapIterable);
  dart.setMethodSignature(_JSMapIterable, () => ({
    __proto__: dart.getMethods(_JSMapIterable.__proto__),
    [Symbol.iterator]: dart.fnType(dart.dynamic, [])
  }));
  dart.setGetterSignature(_JSMapIterable, () => ({
    __proto__: dart.getGetters(_JSMapIterable.__proto__),
    iterator: core.Iterator$(E),
    [$iterator]: core.Iterator$(E)
  }));
  dart.setLibraryUri(_JSMapIterable, L22);
  dart.setFieldSignature(_JSMapIterable, () => ({
    __proto__: dart.getFields(_JSMapIterable.__proto__),
    [_map$]: dart.finalFieldType(_js_helper.InternalMap),
    [_isKeys$]: dart.finalFieldType(core.bool)
  }));
  dart.defineExtensionMethods(_JSMapIterable, ['contains', 'forEach']);
  dart.defineExtensionAccessors(_JSMapIterable, ['length', 'isEmpty', 'iterator']);
  return _JSMapIterable;
});
_js_helper._JSMapIterable = _js_helper._JSMapIterable$();
dart.addTypeTests(_js_helper._JSMapIterable, _is__JSMapIterable_default);
var _validKey$ = dart.privateName(_js_helper, "_validKey");
var _equals$ = dart.privateName(_js_helper, "_equals");
var _hashCode$ = dart.privateName(_js_helper, "_hashCode");
const _is_CustomHashMap_default = Symbol('_is_CustomHashMap_default');
var _map$1 = dart.privateName(_js_helper, "CustomHashMap._map");
var _modifications$1 = dart.privateName(_js_helper, "CustomHashMap._modifications");
_js_helper.CustomHashMap$ = dart.generic((K, V) => {
  var _JSMapIterableOfKL = () => (_JSMapIterableOfKL = dart.constFn(_js_helper._JSMapIterable$(K)))();
  var MapOfKL$VL = () => (MapOfKL$VL = dart.constFn(core.Map$(K, V)))();
  var KLAndVLToNullN = () => (KLAndVLToNullN = dart.constFn(dart.fnType(core.Null, [K, V])))();
  var _JSMapIterableOfVL = () => (_JSMapIterableOfVL = dart.constFn(_js_helper._JSMapIterable$(V)))();
  var VoidToLVL = () => (VoidToLVL = dart.constFn(dart.fnType(V, [])))();
  class CustomHashMap extends _js_helper.InternalMap$(K, V) {
    get [_map$]() {
      return this[_map$1];
    }
    set [_map$](value) {
      super[_map$] = value;
    }
    get [_modifications]() {
      return this[_modifications$1];
    }
    set [_modifications](value) {
      this[_modifications$1] = value;
    }
    get length() {
      return this[_map$].size;
    }
    get isEmpty() {
      return this[_map$].size == 0;
    }
    get isNotEmpty() {
      return this[_map$].size != 0;
    }
    get keys() {
      return new (_JSMapIterableOfKL()).new(this, true);
    }
    get values() {
      return new (_JSMapIterableOfVL()).new(this, false);
    }
    containsKey(key) {
      let t27;
      if (K.is(key)) {
        let buckets = this[_keyMap].get((t27 = key, this[_hashCode$](t27)) & 0x3ffffff);
        if (buckets != null) {
          let equals = this[_equals$];
          for (let i = 0, n = buckets.length; i < n; i = i + 1) {
            let k = buckets[i];
            if (dart.test(equals(k, key))) return true;
          }
        }
      }
      return false;
    }
    containsValue(value) {
      for (let v of this[_map$].values()) {
        if (dart.equals(value, v)) return true;
      }
      return false;
    }
    addAll(other) {
      MapOfKL$VL().as(other);
      other[$forEach](dart.fn((key, value) => {
        this._set(key, value);
      }, KLAndVLToNullN()));
    }
    _get(key) {
      let t27;
      if (K.is(key)) {
        let buckets = this[_keyMap].get((t27 = key, this[_hashCode$](t27)) & 0x3ffffff);
        if (buckets != null) {
          let equals = this[_equals$];
          for (let i = 0, n = buckets.length; i < n; i = i + 1) {
            let k = buckets[i];
            if (dart.test(equals(k, key))) {
              let value = this[_map$].get(k);
              return value == null ? null : value;
            }
          }
        }
      }
      return null;
    }
    _set(key, value$) {
      let value = value$;
      let t27;
      K.as(key);
      V.as(value);
      let keyMap = this[_keyMap];
      let hash = (t27 = key, this[_hashCode$](t27)) & 0x3ffffff;
      let buckets = keyMap.get(hash);
      if (buckets == null) {
        keyMap.set(hash, [key]);
      } else {
        let equals = this[_equals$];
        for (let i = 0, n = buckets.length;;) {
          let k = buckets[i];
          if (dart.test(equals(k, key))) {
            key = k;
            break;
          }
          if ((i = i + 1) >= n) {
            buckets.push(key);
            break;
          }
        }
      }
      this[_map$].set(key, value);
      this[_modifications] = this[_modifications] + 1 & 67108863;
      return value$;
    }
    putIfAbsent(key, ifAbsent) {
      let t27;
      K.as(key);
      VoidToLVL().as(ifAbsent);
      let keyMap = this[_keyMap];
      let hash = (t27 = key, this[_hashCode$](t27)) & 0x3ffffff;
      let buckets = keyMap.get(hash);
      if (buckets == null) {
        keyMap.set(hash, [key]);
      } else {
        let equals = this[_equals$];
        for (let i = 0, n = buckets.length; i < n; i = i + 1) {
          let k = buckets[i];
          if (dart.test(equals(k, key))) return this[_map$].get(k);
        }
        buckets.push(key);
      }
      let value = ifAbsent();
      if (value == null) value = null;
      this[_map$].set(key, value);
      this[_modifications] = this[_modifications] + 1 & 67108863;
      return value;
    }
    remove(key) {
      let t27;
      if (K.is(key)) {
        let hash = (t27 = key, this[_hashCode$](t27)) & 0x3ffffff;
        let keyMap = this[_keyMap];
        let buckets = keyMap.get(hash);
        if (buckets == null) return null;
        let equals = this[_equals$];
        for (let i = 0, n = buckets.length; i < n; i = i + 1) {
          let k = buckets[i];
          if (dart.test(equals(k, key))) {
            if (n === 1) {
              keyMap.delete(hash);
            } else {
              buckets.splice(i, 1);
            }
            let map = this[_map$];
            let value = map.get(k);
            map.delete(k);
            this[_modifications] = this[_modifications] + 1 & 67108863;
            return value == null ? null : value;
          }
        }
      }
      return null;
    }
    clear() {
      let map = this[_map$];
      if (map.size > 0) {
        map.clear();
        this[_keyMap].clear();
        this[_modifications] = this[_modifications] + 1 & 67108863;
      }
    }
  }
  (CustomHashMap.new = function(_equals, _hashCode) {
    this[_map$1] = new Map();
    this[_keyMap] = new Map();
    this[_modifications$1] = 0;
    this[_equals$] = _equals;
    this[_hashCode$] = _hashCode;
    ;
  }).prototype = CustomHashMap.prototype;
  dart.addTypeTests(CustomHashMap);
  CustomHashMap.prototype[_is_CustomHashMap_default] = true;
  dart.addTypeCaches(CustomHashMap);
  dart.setMethodSignature(CustomHashMap, () => ({
    __proto__: dart.getMethods(CustomHashMap.__proto__),
    _get: dart.fnType(V, [core.Object]),
    [$_get]: dart.fnType(V, [core.Object]),
    _set: dart.fnType(dart.void, [core.Object, core.Object]),
    [$_set]: dart.fnType(dart.void, [core.Object, core.Object]),
    remove: dart.fnType(V, [core.Object]),
    [$remove]: dart.fnType(V, [core.Object]),
    clear: dart.fnType(dart.void, []),
    [$clear]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(CustomHashMap, () => ({
    __proto__: dart.getGetters(CustomHashMap.__proto__),
    keys: core.Iterable$(K),
    [$keys]: core.Iterable$(K)
  }));
  dart.setLibraryUri(CustomHashMap, L22);
  dart.setFieldSignature(CustomHashMap, () => ({
    __proto__: dart.getFields(CustomHashMap.__proto__),
    [_map$]: dart.finalFieldType(dart.dynamic),
    [_keyMap]: dart.finalFieldType(core.Object),
    [_modifications]: dart.fieldType(core.int),
    [_equals$]: dart.finalFieldType(dart.fnType(core.bool, [K, K])),
    [_hashCode$]: dart.finalFieldType(dart.fnType(core.int, [K]))
  }));
  dart.defineExtensionMethods(CustomHashMap, [
    'containsKey',
    'containsValue',
    'addAll',
    '_get',
    '_set',
    'putIfAbsent',
    'remove',
    'clear'
  ]);
  dart.defineExtensionAccessors(CustomHashMap, [
    'length',
    'isEmpty',
    'isNotEmpty',
    'keys',
    'values'
  ]);
  return CustomHashMap;
});
_js_helper.CustomHashMap = _js_helper.CustomHashMap$();
dart.addTypeTests(_js_helper.CustomHashMap, _is_CustomHashMap_default);
const _is_CustomKeyHashMap_default = Symbol('_is_CustomKeyHashMap_default');
_js_helper.CustomKeyHashMap$ = dart.generic((K, V) => {
  class CustomKeyHashMap extends _js_helper.CustomHashMap$(K, V) {
    containsKey(key) {
      let t27;
      if (!dart.test((t27 = key, this[_validKey$](t27)))) return false;
      return super.containsKey(key);
    }
    _get(key) {
      let t27;
      if (!dart.test((t27 = key, this[_validKey$](t27)))) return null;
      return super._get(key);
    }
    remove(key) {
      let t27;
      if (!dart.test((t27 = key, this[_validKey$](t27)))) return null;
      return super.remove(key);
    }
  }
  (CustomKeyHashMap.new = function(equals, hashCode, _validKey) {
    this[_validKey$] = _validKey;
    CustomKeyHashMap.__proto__.new.call(this, equals, hashCode);
    ;
  }).prototype = CustomKeyHashMap.prototype;
  dart.addTypeTests(CustomKeyHashMap);
  CustomKeyHashMap.prototype[_is_CustomKeyHashMap_default] = true;
  dart.addTypeCaches(CustomKeyHashMap);
  dart.setLibraryUri(CustomKeyHashMap, L22);
  dart.setFieldSignature(CustomKeyHashMap, () => ({
    __proto__: dart.getFields(CustomKeyHashMap.__proto__),
    [_validKey$]: dart.finalFieldType(dart.fnType(core.bool, [core.Object]))
  }));
  dart.defineExtensionMethods(CustomKeyHashMap, ['containsKey', '_get', 'remove']);
  return CustomKeyHashMap;
});
_js_helper.CustomKeyHashMap = _js_helper.CustomKeyHashMap$();
dart.addTypeTests(_js_helper.CustomKeyHashMap, _is_CustomKeyHashMap_default);
var _nativeGlobalRegExp = dart.privateName(_js_helper, "_nativeGlobalRegExp");
var _nativeAnchoredRegExp = dart.privateName(_js_helper, "_nativeAnchoredRegExp");
var _nativeRegExp = dart.privateName(_js_helper, "_nativeRegExp");
var _isMultiLine = dart.privateName(_js_helper, "_isMultiLine");
var _isCaseSensitive = dart.privateName(_js_helper, "_isCaseSensitive");
var _isUnicode = dart.privateName(_js_helper, "_isUnicode");
var _isDotAll = dart.privateName(_js_helper, "_isDotAll");
var _nativeGlobalVersion = dart.privateName(_js_helper, "_nativeGlobalVersion");
var _nativeAnchoredVersion = dart.privateName(_js_helper, "_nativeAnchoredVersion");
var _execGlobal = dart.privateName(_js_helper, "_execGlobal");
var _execAnchored = dart.privateName(_js_helper, "_execAnchored");
var pattern = dart.privateName(_js_helper, "JSSyntaxRegExp.pattern");
_js_helper.JSSyntaxRegExp = class JSSyntaxRegExp extends core.Object {
  get pattern() {
    return this[pattern];
  }
  set pattern(value) {
    super.pattern = value;
  }
  toString() {
    return "RegExp/" + dart.str(this.pattern) + "/" + this[_nativeRegExp].flags;
  }
  get [_nativeGlobalVersion]() {
    if (this[_nativeGlobalRegExp] != null) return this[_nativeGlobalRegExp];
    return this[_nativeGlobalRegExp] = _js_helper.JSSyntaxRegExp.makeNative(this.pattern, this[_isMultiLine], this[_isCaseSensitive], this[_isUnicode], this[_isDotAll], true);
  }
  get [_nativeAnchoredVersion]() {
    if (this[_nativeAnchoredRegExp] != null) return this[_nativeAnchoredRegExp];
    return this[_nativeAnchoredRegExp] = _js_helper.JSSyntaxRegExp.makeNative(dart.str(this.pattern) + "|()", this[_isMultiLine], this[_isCaseSensitive], this[_isUnicode], this[_isDotAll], true);
  }
  get [_isMultiLine]() {
    return this[_nativeRegExp].multiline;
  }
  get [_isCaseSensitive]() {
    return !this[_nativeRegExp].ignoreCase;
  }
  get [_isUnicode]() {
    return this[_nativeRegExp].unicode;
  }
  get [_isDotAll]() {
    return this[_nativeRegExp].dotAll == true;
  }
  static makeNative(source, multiLine, caseSensitive, unicode, dotAll, global) {
    if (source == null) dart.argumentError(source);
    let m = dart.test(multiLine) ? "m" : "";
    let i = dart.test(caseSensitive) ? "" : "i";
    let u = dart.test(unicode) ? "u" : "";
    let s = dart.test(dotAll) ? "s" : "";
    let g = dart.test(global) ? "g" : "";
    let regexp = (function() {
      try {
        return new RegExp(source, m + i + u + s + g);
      } catch (e) {
        return e;
      }
    })();
    if (regexp instanceof RegExp) return regexp;
    let errorMessage = String(regexp);
    dart.throw(new core.FormatException.new("Illegal RegExp pattern: " + source + ", " + errorMessage));
  }
  firstMatch(string) {
    if (string == null) dart.argumentError(string);
    let m = this[_nativeRegExp].exec(string);
    if (m == null) return null;
    return new _js_helper._MatchImplementation.new(this, JSArrayOfStringL().of(m));
  }
  hasMatch(string) {
    if (string == null) dart.argumentError(string);
    return this[_nativeRegExp].test(string);
  }
  stringMatch(string) {
    let match = this.firstMatch(string);
    if (match != null) return match.group(0);
    return null;
  }
  allMatches(string, start = 0) {
    if (string == null) dart.argumentError(string);
    if (start == null) dart.argumentError(start);
    if (start < 0 || start > string.length) {
      dart.throw(new core.RangeError.range(start, 0, string.length));
    }
    return new _js_helper._AllMatchesIterable.new(this, string, start);
  }
  [_execGlobal](string, start) {
    let regexp = this[_nativeGlobalVersion];
    regexp.lastIndex = start;
    let match = regexp.exec(string);
    if (match == null) return null;
    return new _js_helper._MatchImplementation.new(this, JSArrayOfStringL().of(match));
  }
  [_execAnchored](string, start) {
    let t27;
    let regexp = this[_nativeAnchoredVersion];
    regexp.lastIndex = start;
    let match = regexp.exec(string);
    if (match == null) return null;
    if (match[$_get](dart.notNull(match[$length]) - 1) != null) return null;
    t27 = match;
    t27[$length] = dart.notNull(t27[$length]) - 1;
    return new _js_helper._MatchImplementation.new(this, JSArrayOfStringL().of(match));
  }
  matchAsPrefix(string, start = 0) {
    if (dart.notNull(start) < 0 || dart.notNull(start) > string.length) {
      dart.throw(new core.RangeError.range(start, 0, string.length));
    }
    return this[_execAnchored](string, start);
  }
  get isMultiLine() {
    return this[_isMultiLine];
  }
  get isCaseSensitive() {
    return this[_isCaseSensitive];
  }
  get isUnicode() {
    return this[_isUnicode];
  }
  get isDotAll() {
    return this[_isDotAll];
  }
};
(_js_helper.JSSyntaxRegExp.new = function(source, opts) {
  let multiLine = opts && 'multiLine' in opts ? opts.multiLine : false;
  let caseSensitive = opts && 'caseSensitive' in opts ? opts.caseSensitive : true;
  let unicode = opts && 'unicode' in opts ? opts.unicode : false;
  let dotAll = opts && 'dotAll' in opts ? opts.dotAll : false;
  this[_nativeGlobalRegExp] = null;
  this[_nativeAnchoredRegExp] = null;
  this[pattern] = source;
  this[_nativeRegExp] = _js_helper.JSSyntaxRegExp.makeNative(source, multiLine, caseSensitive, unicode, dotAll, false);
  ;
}).prototype = _js_helper.JSSyntaxRegExp.prototype;
dart.addTypeTests(_js_helper.JSSyntaxRegExp);
dart.addTypeCaches(_js_helper.JSSyntaxRegExp);
_js_helper.JSSyntaxRegExp[dart.implements] = () => [core.RegExp];
dart.setMethodSignature(_js_helper.JSSyntaxRegExp, () => ({
  __proto__: dart.getMethods(_js_helper.JSSyntaxRegExp.__proto__),
  firstMatch: dart.fnType(core.RegExpMatch, [core.String]),
  hasMatch: dart.fnType(core.bool, [core.String]),
  stringMatch: dart.fnType(core.String, [core.String]),
  allMatches: dart.fnType(core.Iterable$(core.RegExpMatch), [core.String], [core.int]),
  [$allMatches]: dart.fnType(core.Iterable$(core.RegExpMatch), [core.String], [core.int]),
  [_execGlobal]: dart.fnType(core.RegExpMatch, [core.String, core.int]),
  [_execAnchored]: dart.fnType(core.RegExpMatch, [core.String, core.int]),
  matchAsPrefix: dart.fnType(core.RegExpMatch, [core.String], [core.int]),
  [$matchAsPrefix]: dart.fnType(core.RegExpMatch, [core.String], [core.int])
}));
dart.setGetterSignature(_js_helper.JSSyntaxRegExp, () => ({
  __proto__: dart.getGetters(_js_helper.JSSyntaxRegExp.__proto__),
  [_nativeGlobalVersion]: dart.dynamic,
  [_nativeAnchoredVersion]: dart.dynamic,
  [_isMultiLine]: core.bool,
  [_isCaseSensitive]: core.bool,
  [_isUnicode]: core.bool,
  [_isDotAll]: core.bool,
  isMultiLine: core.bool,
  isCaseSensitive: core.bool,
  isUnicode: core.bool,
  isDotAll: core.bool
}));
dart.setLibraryUri(_js_helper.JSSyntaxRegExp, L22);
dart.setFieldSignature(_js_helper.JSSyntaxRegExp, () => ({
  __proto__: dart.getFields(_js_helper.JSSyntaxRegExp.__proto__),
  pattern: dart.finalFieldType(core.String),
  [_nativeRegExp]: dart.finalFieldType(dart.dynamic),
  [_nativeGlobalRegExp]: dart.fieldType(dart.dynamic),
  [_nativeAnchoredRegExp]: dart.fieldType(dart.dynamic)
}));
dart.defineExtensionMethods(_js_helper.JSSyntaxRegExp, ['toString', 'allMatches', 'matchAsPrefix']);
var _match$ = dart.privateName(_js_helper, "_match");
_js_helper._MatchImplementation = class _MatchImplementation extends core.Object {
  get input() {
    return this[_match$].input;
  }
  get start() {
    return this[_match$].index;
  }
  get end() {
    return dart.notNull(this.start) + this[_match$][$_get](0).length;
  }
  group(index) {
    return this[_match$][$_get](index);
  }
  _get(index) {
    return this.group(index);
  }
  get groupCount() {
    return dart.notNull(this[_match$][$length]) - 1;
  }
  groups(groups) {
    let out = JSArrayOfStringL().of([]);
    for (let i of groups) {
      out[$add](this.group(i));
    }
    return out;
  }
  namedGroup(name) {
    let groups = this[_match$].groups;
    if (groups != null) {
      let result = groups[name];
      if (result != null || name in groups) {
        return core.String.as(result);
      }
    }
    dart.throw(new core.ArgumentError.value(name, "name", "Not a capture group name"));
  }
  get groupNames() {
    let groups = this[_match$].groups;
    if (groups != null) {
      let keys = JSArrayOfStringL().of(Object.keys(groups));
      return new (SubListIterableOfStringL()).new(keys, 0, null);
    }
    return new (EmptyIterableOfStringL()).new();
  }
};
(_js_helper._MatchImplementation.new = function(pattern, _match) {
  this.pattern = pattern;
  this[_match$] = _match;
  if (!(typeof this[_match$].input == 'string')) dart.assertFailed(null, L24, 185, 12, "JS(\"var\", \"#.input\", _match) is String");
  if (!core.int.is(this[_match$].index)) dart.assertFailed(null, L24, 186, 12, "JS(\"var\", \"#.index\", _match) is int");
}).prototype = _js_helper._MatchImplementation.prototype;
dart.addTypeTests(_js_helper._MatchImplementation);
dart.addTypeCaches(_js_helper._MatchImplementation);
_js_helper._MatchImplementation[dart.implements] = () => [core.RegExpMatch];
dart.setMethodSignature(_js_helper._MatchImplementation, () => ({
  __proto__: dart.getMethods(_js_helper._MatchImplementation.__proto__),
  group: dart.fnType(core.String, [core.int]),
  _get: dart.fnType(core.String, [core.int]),
  groups: dart.fnType(core.List$(core.String), [core.List$(core.int)]),
  namedGroup: dart.fnType(core.String, [core.String])
}));
dart.setGetterSignature(_js_helper._MatchImplementation, () => ({
  __proto__: dart.getGetters(_js_helper._MatchImplementation.__proto__),
  input: core.String,
  start: core.int,
  end: core.int,
  groupCount: core.int,
  groupNames: core.Iterable$(core.String)
}));
dart.setLibraryUri(_js_helper._MatchImplementation, L22);
dart.setFieldSignature(_js_helper._MatchImplementation, () => ({
  __proto__: dart.getFields(_js_helper._MatchImplementation.__proto__),
  pattern: dart.finalFieldType(core.Pattern),
  [_match$]: dart.finalFieldType(core.List$(core.String))
}));
var _re$ = dart.privateName(_js_helper, "_re");
var _string$0 = dart.privateName(_js_helper, "_string");
var _start$0 = dart.privateName(_js_helper, "_start");
core.RegExpMatch = class RegExpMatch extends core.Object {};
(core.RegExpMatch.new = function() {
  ;
}).prototype = core.RegExpMatch.prototype;
dart.addTypeTests(core.RegExpMatch);
dart.addTypeCaches(core.RegExpMatch);
core.RegExpMatch[dart.implements] = () => [core.Match];
dart.setLibraryUri(core.RegExpMatch, L1$);
_js_helper._AllMatchesIterable = class _AllMatchesIterable extends collection.IterableBase$(core.RegExpMatch) {
  get iterator() {
    return new _js_helper._AllMatchesIterator.new(this[_re$], this[_string$0], this[_start$0]);
  }
};
(_js_helper._AllMatchesIterable.new = function(_re, _string, _start) {
  this[_re$] = _re;
  this[_string$0] = _string;
  this[_start$0] = _start;
  _js_helper._AllMatchesIterable.__proto__.new.call(this);
  ;
}).prototype = _js_helper._AllMatchesIterable.prototype;
dart.addTypeTests(_js_helper._AllMatchesIterable);
dart.addTypeCaches(_js_helper._AllMatchesIterable);
dart.setGetterSignature(_js_helper._AllMatchesIterable, () => ({
  __proto__: dart.getGetters(_js_helper._AllMatchesIterable.__proto__),
  iterator: core.Iterator$(core.RegExpMatch),
  [$iterator]: core.Iterator$(core.RegExpMatch)
}));
dart.setLibraryUri(_js_helper._AllMatchesIterable, L22);
dart.setFieldSignature(_js_helper._AllMatchesIterable, () => ({
  __proto__: dart.getFields(_js_helper._AllMatchesIterable.__proto__),
  [_re$]: dart.finalFieldType(_js_helper.JSSyntaxRegExp),
  [_string$0]: dart.finalFieldType(core.String),
  [_start$0]: dart.finalFieldType(core.int)
}));
dart.defineExtensionAccessors(_js_helper._AllMatchesIterable, ['iterator']);
var _regExp$ = dart.privateName(_js_helper, "_regExp");
var _nextIndex$ = dart.privateName(_js_helper, "_nextIndex");
_js_helper._AllMatchesIterator = class _AllMatchesIterator extends core.Object {
  get current() {
    return this[_current$0];
  }
  static _isLeadSurrogate(c) {
    return dart.notNull(c) >= 55296 && dart.notNull(c) <= 56319;
  }
  static _isTrailSurrogate(c) {
    return dart.notNull(c) >= 56320 && dart.notNull(c) <= 57343;
  }
  moveNext() {
    if (this[_string$0] == null) return false;
    if (dart.notNull(this[_nextIndex$]) <= this[_string$0].length) {
      let match = this[_regExp$][_execGlobal](this[_string$0], this[_nextIndex$]);
      if (match != null) {
        this[_current$0] = match;
        let nextIndex = match.end;
        if (match.start == nextIndex) {
          if (dart.test(this[_regExp$].isUnicode) && dart.notNull(this[_nextIndex$]) + 1 < this[_string$0].length && dart.test(_js_helper._AllMatchesIterator._isLeadSurrogate(this[_string$0][$codeUnitAt](this[_nextIndex$]))) && dart.test(_js_helper._AllMatchesIterator._isTrailSurrogate(this[_string$0][$codeUnitAt](dart.notNull(this[_nextIndex$]) + 1)))) {
            nextIndex = dart.notNull(nextIndex) + 1;
          }
          nextIndex = dart.notNull(nextIndex) + 1;
        }
        this[_nextIndex$] = nextIndex;
        return true;
      }
    }
    this[_current$0] = null;
    this[_string$0] = null;
    return false;
  }
};
(_js_helper._AllMatchesIterator.new = function(_regExp, _string, _nextIndex) {
  this[_current$0] = null;
  this[_regExp$] = _regExp;
  this[_string$0] = _string;
  this[_nextIndex$] = _nextIndex;
  ;
}).prototype = _js_helper._AllMatchesIterator.prototype;
dart.addTypeTests(_js_helper._AllMatchesIterator);
dart.addTypeCaches(_js_helper._AllMatchesIterator);
_js_helper._AllMatchesIterator[dart.implements] = () => [core.Iterator$(core.RegExpMatch)];
dart.setMethodSignature(_js_helper._AllMatchesIterator, () => ({
  __proto__: dart.getMethods(_js_helper._AllMatchesIterator.__proto__),
  moveNext: dart.fnType(core.bool, [])
}));
dart.setGetterSignature(_js_helper._AllMatchesIterator, () => ({
  __proto__: dart.getGetters(_js_helper._AllMatchesIterator.__proto__),
  current: core.RegExpMatch
}));
dart.setLibraryUri(_js_helper._AllMatchesIterator, L22);
dart.setFieldSignature(_js_helper._AllMatchesIterator, () => ({
  __proto__: dart.getFields(_js_helper._AllMatchesIterator.__proto__),
  [_regExp$]: dart.finalFieldType(_js_helper.JSSyntaxRegExp),
  [_string$0]: dart.fieldType(core.String),
  [_nextIndex$]: dart.fieldType(core.int),
  [_current$0]: dart.fieldType(core.RegExpMatch)
}));
var start$0 = dart.privateName(_js_helper, "StringMatch.start");
var input$ = dart.privateName(_js_helper, "StringMatch.input");
var pattern$ = dart.privateName(_js_helper, "StringMatch.pattern");
_js_helper.StringMatch = class StringMatch extends core.Object {
  get start() {
    return this[start$0];
  }
  set start(value) {
    super.start = value;
  }
  get input() {
    return this[input$];
  }
  set input(value) {
    super.input = value;
  }
  get pattern() {
    return this[pattern$];
  }
  set pattern(value) {
    super.pattern = value;
  }
  get end() {
    return dart.notNull(this.start) + this.pattern.length;
  }
  _get(g) {
    return this.group(g);
  }
  get groupCount() {
    return 0;
  }
  group(group_) {
    if (group_ !== 0) {
      dart.throw(new core.RangeError.value(group_));
    }
    return this.pattern;
  }
  groups(groups_) {
    let result = JSArrayOfStringL().of([]);
    for (let g of groups_) {
      result[$add](this.group(g));
    }
    return result;
  }
};
(_js_helper.StringMatch.new = function(start, input, pattern) {
  this[start$0] = start;
  this[input$] = input;
  this[pattern$] = pattern;
  ;
}).prototype = _js_helper.StringMatch.prototype;
dart.addTypeTests(_js_helper.StringMatch);
dart.addTypeCaches(_js_helper.StringMatch);
_js_helper.StringMatch[dart.implements] = () => [core.Match];
dart.setMethodSignature(_js_helper.StringMatch, () => ({
  __proto__: dart.getMethods(_js_helper.StringMatch.__proto__),
  _get: dart.fnType(core.String, [core.int]),
  group: dart.fnType(core.String, [core.int]),
  groups: dart.fnType(core.List$(core.String), [core.List$(core.int)])
}));
dart.setGetterSignature(_js_helper.StringMatch, () => ({
  __proto__: dart.getGetters(_js_helper.StringMatch.__proto__),
  end: core.int,
  groupCount: core.int
}));
dart.setLibraryUri(_js_helper.StringMatch, L22);
dart.setFieldSignature(_js_helper.StringMatch, () => ({
  __proto__: dart.getFields(_js_helper.StringMatch.__proto__),
  start: dart.finalFieldType(core.int),
  input: dart.finalFieldType(core.String),
  pattern: dart.finalFieldType(core.String)
}));
var _input$ = dart.privateName(_js_helper, "_input");
var _pattern$ = dart.privateName(_js_helper, "_pattern");
var _index$0 = dart.privateName(_js_helper, "_index");
core.Match = class Match extends core.Object {};
(core.Match.new = function() {
  ;
}).prototype = core.Match.prototype;
dart.addTypeTests(core.Match);
dart.addTypeCaches(core.Match);
dart.setLibraryUri(core.Match, L1$);
_js_helper._StringAllMatchesIterable = class _StringAllMatchesIterable extends core.Iterable$(core.Match) {
  get iterator() {
    return new _js_helper._StringAllMatchesIterator.new(this[_input$], this[_pattern$], this[_index$0]);
  }
  get first() {
    let index = _js_helper.stringIndexOfStringUnchecked(this[_input$], this[_pattern$], this[_index$0]);
    if (index >= 0) {
      return new _js_helper.StringMatch.new(index, this[_input$], this[_pattern$]);
    }
    dart.throw(_internal.IterableElementError.noElement());
  }
};
(_js_helper._StringAllMatchesIterable.new = function(_input, _pattern, _index) {
  this[_input$] = _input;
  this[_pattern$] = _pattern;
  this[_index$0] = _index;
  _js_helper._StringAllMatchesIterable.__proto__.new.call(this);
  ;
}).prototype = _js_helper._StringAllMatchesIterable.prototype;
dart.addTypeTests(_js_helper._StringAllMatchesIterable);
dart.addTypeCaches(_js_helper._StringAllMatchesIterable);
dart.setGetterSignature(_js_helper._StringAllMatchesIterable, () => ({
  __proto__: dart.getGetters(_js_helper._StringAllMatchesIterable.__proto__),
  iterator: core.Iterator$(core.Match),
  [$iterator]: core.Iterator$(core.Match)
}));
dart.setLibraryUri(_js_helper._StringAllMatchesIterable, L22);
dart.setFieldSignature(_js_helper._StringAllMatchesIterable, () => ({
  __proto__: dart.getFields(_js_helper._StringAllMatchesIterable.__proto__),
  [_input$]: dart.finalFieldType(core.String),
  [_pattern$]: dart.finalFieldType(core.String),
  [_index$0]: dart.finalFieldType(core.int)
}));
dart.defineExtensionAccessors(_js_helper._StringAllMatchesIterable, ['iterator', 'first']);
_js_helper._StringAllMatchesIterator = class _StringAllMatchesIterator extends core.Object {
  moveNext() {
    if (dart.notNull(this[_index$0]) + this[_pattern$].length > this[_input$].length) {
      this[_current$0] = null;
      return false;
    }
    let index = _js_helper.stringIndexOfStringUnchecked(this[_input$], this[_pattern$], this[_index$0]);
    if (index < 0) {
      this[_index$0] = this[_input$].length + 1;
      this[_current$0] = null;
      return false;
    }
    let end = index + this[_pattern$].length;
    this[_current$0] = new _js_helper.StringMatch.new(index, this[_input$], this[_pattern$]);
    if (end === this[_index$0]) end = end + 1;
    this[_index$0] = end;
    return true;
  }
  get current() {
    return this[_current$0];
  }
};
(_js_helper._StringAllMatchesIterator.new = function(_input, _pattern, _index) {
  this[_current$0] = null;
  this[_input$] = _input;
  this[_pattern$] = _pattern;
  this[_index$0] = _index;
  ;
}).prototype = _js_helper._StringAllMatchesIterator.prototype;
dart.addTypeTests(_js_helper._StringAllMatchesIterator);
dart.addTypeCaches(_js_helper._StringAllMatchesIterator);
_js_helper._StringAllMatchesIterator[dart.implements] = () => [core.Iterator$(core.Match)];
dart.setMethodSignature(_js_helper._StringAllMatchesIterator, () => ({
  __proto__: dart.getMethods(_js_helper._StringAllMatchesIterator.__proto__),
  moveNext: dart.fnType(core.bool, [])
}));
dart.setGetterSignature(_js_helper._StringAllMatchesIterator, () => ({
  __proto__: dart.getGetters(_js_helper._StringAllMatchesIterator.__proto__),
  current: core.Match
}));
dart.setLibraryUri(_js_helper._StringAllMatchesIterator, L22);
dart.setFieldSignature(_js_helper._StringAllMatchesIterator, () => ({
  __proto__: dart.getFields(_js_helper._StringAllMatchesIterator.__proto__),
  [_input$]: dart.finalFieldType(core.String),
  [_pattern$]: dart.finalFieldType(core.String),
  [_index$0]: dart.fieldType(core.int),
  [_current$0]: dart.fieldType(core.Match)
}));
var C31;
var C32;
_js_helper.diagnoseIndexError = function diagnoseIndexError(indexable, index) {
  let length = core.int.as(dart.dload(indexable, 'length'));
  if (dart.notNull(index) < 0 || dart.notNull(index) >= dart.notNull(length)) {
    return new core.IndexError.new(index, indexable, "index", null, length);
  }
  return new core.RangeError.value(index, "index");
};
_js_helper.diagnoseRangeError = function diagnoseRangeError(start, end, length) {
  if (start == null) {
    return new core.ArgumentError.value(start, "start");
  }
  if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(length)) {
    return new core.RangeError.range(start, 0, length, "start");
  }
  if (end != null) {
    if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dart.notNull(length)) {
      return new core.RangeError.range(end, start, length, "end");
    }
  }
  return new core.ArgumentError.value(end, "end");
};
_js_helper.stringLastIndexOfUnchecked = function stringLastIndexOfUnchecked(receiver, element, start) {
  return receiver.lastIndexOf(element, start);
};
_js_helper.argumentErrorValue = function argumentErrorValue(object) {
  return new core.ArgumentError.value(object);
};
_js_helper.throwArgumentErrorValue = function throwArgumentErrorValue(value) {
  dart.throw(_js_helper.argumentErrorValue(value));
};
_js_helper.checkInt = function checkInt(value) {
  if (!core.int.is(value)) dart.throw(_js_helper.argumentErrorValue(value));
  return value;
};
_js_helper.throwRuntimeError = function throwRuntimeError(message) {
  dart.throw(new _js_helper.RuntimeError.new(message));
};
_js_helper.throwAbstractClassInstantiationError = function throwAbstractClassInstantiationError(className) {
  dart.throw(new core.AbstractClassInstantiationError.new(core.String.as(className)));
};
_js_helper.throwConcurrentModificationError = function throwConcurrentModificationError(collection) {
  dart.throw(new core.ConcurrentModificationError.new(collection));
};
_js_helper.fillLiteralMap = function fillLiteralMap(keyValuePairs, result) {
  let t27, t27$;
  let index = 0;
  let length = _js_helper.getLength(keyValuePairs);
  while (index < dart.notNull(length)) {
    let key = _js_helper.getIndex(keyValuePairs, (t27 = index, index = t27 + 1, t27));
    let value = _js_helper.getIndex(keyValuePairs, (t27$ = index, index = t27$ + 1, t27$));
    result[$_set](key, value);
  }
  return result;
};
_js_helper.jsHasOwnProperty = function jsHasOwnProperty(jsObject, property) {
  return jsObject.hasOwnProperty(property);
};
_js_helper.jsPropertyAccess = function jsPropertyAccess(jsObject, property) {
  return jsObject[property];
};
_js_helper.getFallThroughError = function getFallThroughError() {
  return new _js_helper.FallThroughErrorImplementation.new();
};
_js_helper.random64 = function random64() {
  let int32a = Math.random() * 0x100000000 >>> 0;
  let int32b = Math.random() * 0x100000000 >>> 0;
  return int32a + int32b * 4294967296;
};
_js_helper.registerGlobalObject = function registerGlobalObject(object) {
  try {
    if (dart.test(dart.polyfill(object))) {
      dart.applyAllExtensions(object);
    }
  } catch (e$) {
    let e = dart.getThrown(e$);
  }
};
_js_helper.applyExtension = function applyExtension$(name, nativeObject) {
  dart.applyExtension(name, nativeObject);
};
_js_helper.getRuntimeType = function getRuntimeType(object) {
  return dart.getReifiedType(object);
};
_js_helper.getIndex = function getIndex(array, index) {
  if (!dart.test(_js_helper.isJsArray(array))) dart.assertFailed(null, L25, 16, 10, "isJsArray(array)");
  return array[index];
};
_js_helper.getLength = function getLength(array) {
  if (!dart.test(_js_helper.isJsArray(array))) dart.assertFailed(null, L25, 22, 10, "isJsArray(array)");
  return array.length;
};
_js_helper.isJsArray = function isJsArray(value) {
  return _interceptors.JSArray.is(value);
};
_js_helper.putLinkedMapKey = function putLinkedMapKey(key, keyMap) {
  let hash = key[$hashCode] & 0x3ffffff;
  let buckets = keyMap.get(hash);
  if (buckets == null) {
    keyMap.set(hash, [key]);
    return key;
  }
  for (let i = 0, n = buckets.length; i < n; i = i + 1) {
    let k = buckets[i];
    if (k[$_equals](key)) return k;
  }
  buckets.push(key);
  return key;
};
_js_helper.convertDartClosureToJS = function convertDartClosureToJS(F, closure, arity) {
  return closure;
};
_js_helper.setNativeSubclassDispatchRecord = function setNativeSubclassDispatchRecord(proto, interceptor) {
};
_js_helper.findDispatchTagForInterceptorClass = function findDispatchTagForInterceptorClass(interceptorClassConstructor) {
};
_js_helper.makeLeafDispatchRecord = function makeLeafDispatchRecord(interceptor) {
};
_js_helper.regExpGetNative = function regExpGetNative(regexp) {
  return regexp[_nativeRegExp];
};
_js_helper.regExpGetGlobalNative = function regExpGetGlobalNative(regexp) {
  let nativeRegexp = regexp[_nativeGlobalVersion];
  nativeRegexp.lastIndex = 0;
  return nativeRegexp;
};
_js_helper.regExpCaptureCount = function regExpCaptureCount(regexp) {
  let nativeAnchoredRegExp = regexp[_nativeAnchoredVersion];
  let match = nativeAnchoredRegExp.exec('');
  return match[$length] - 2;
};
_js_helper.firstMatchAfter = function firstMatchAfter(regExp, string, start) {
  return regExp[_execGlobal](string, start);
};
_js_helper.stringIndexOfStringUnchecked = function stringIndexOfStringUnchecked(receiver, other, startIndex) {
  return receiver.indexOf(other, startIndex);
};
_js_helper.substring1Unchecked = function substring1Unchecked(receiver, startIndex) {
  return receiver.substring(startIndex);
};
_js_helper.substring2Unchecked = function substring2Unchecked(receiver, startIndex, endIndex) {
  return receiver.substring(startIndex, endIndex);
};
_js_helper.stringContainsStringUnchecked = function stringContainsStringUnchecked(receiver, other, startIndex) {
  return _js_helper.stringIndexOfStringUnchecked(receiver, other, startIndex) >= 0;
};
_js_helper.allMatchesInStringUnchecked = function allMatchesInStringUnchecked(pattern, string, startIndex) {
  return new _js_helper._StringAllMatchesIterable.new(string, pattern, startIndex);
};
_js_helper.stringContainsUnchecked = function stringContainsUnchecked(receiver, other, startIndex) {
  if (typeof other == 'string') {
    return _js_helper.stringContainsStringUnchecked(receiver, other, startIndex);
  } else if (_js_helper.JSSyntaxRegExp.is(other)) {
    return other.hasMatch(receiver[$substring](startIndex));
  } else {
    let substr = receiver[$substring](startIndex);
    return core.bool.as(dart.dload(dart.dsend(other, 'allMatches', [substr]), 'isNotEmpty'));
  }
};
_js_helper.stringReplaceJS = function stringReplaceJS(receiver, replacer, replacement) {
  replacement = replacement.replace(/\$/g, "$$$$");
  return receiver.replace(replacer, replacement);
};
_js_helper.stringReplaceFirstRE = function stringReplaceFirstRE(receiver, regexp, replacement, startIndex) {
  let match = regexp[_execGlobal](receiver, startIndex);
  if (match == null) return receiver;
  let start = match.start;
  let end = match.end;
  return _js_helper.stringReplaceRangeUnchecked(receiver, start, end, replacement);
};
_js_helper.quoteStringForRegExp = function quoteStringForRegExp(string) {
  return string.replace(/[[\]{}()*+?.\\^$|]/g, "\\$&");
};
_js_helper.stringReplaceAllUnchecked = function stringReplaceAllUnchecked(receiver, pattern, replacement) {
  if (pattern == null) dart.argumentError(pattern);
  if (replacement == null) dart.argumentError(replacement);
  if (typeof pattern == 'string') {
    if (pattern === "") {
      if (receiver === "") {
        return replacement;
      } else {
        let result = new core.StringBuffer.new();
        let length = receiver.length;
        result.write(replacement);
        for (let i = 0; i < length; i = i + 1) {
          result.write(receiver[$_get](i));
          result.write(replacement);
        }
        return result.toString();
      }
    } else {
      return receiver.split(pattern).join(replacement);
    }
  } else if (_js_helper.JSSyntaxRegExp.is(pattern)) {
    let re = _js_helper.regExpGetGlobalNative(pattern);
    return _js_helper.stringReplaceJS(receiver, re, replacement);
  } else {
    dart.throw("String.replaceAll(Pattern) UNIMPLEMENTED");
  }
};
_js_helper._matchString = function _matchString(match) {
  return match._get(0);
};
_js_helper._stringIdentity = function _stringIdentity(string) {
  return string;
};
_js_helper.stringReplaceAllFuncUnchecked = function stringReplaceAllFuncUnchecked(receiver, pattern, onMatch, onNonMatch) {
  if (pattern == null) dart.argumentError(pattern);
  if (onMatch == null) onMatch = C31 || CT.C31;
  if (onNonMatch == null) onNonMatch = C32 || CT.C32;
  if (typeof pattern == 'string') {
    return _js_helper.stringReplaceAllStringFuncUnchecked(receiver, pattern, onMatch, onNonMatch);
  }
  let buffer = new core.StringBuffer.new();
  let startIndex = 0;
  for (let match of pattern[$allMatches](receiver)) {
    buffer.write(onNonMatch(receiver[$substring](startIndex, match.start)));
    buffer.write(onMatch(match));
    startIndex = match.end;
  }
  buffer.write(onNonMatch(receiver[$substring](startIndex)));
  return buffer.toString();
};
_js_helper.stringReplaceAllEmptyFuncUnchecked = function stringReplaceAllEmptyFuncUnchecked(receiver, onMatch, onNonMatch) {
  let buffer = new core.StringBuffer.new();
  let length = receiver.length;
  let i = 0;
  buffer.write(onNonMatch(""));
  while (i < length) {
    buffer.write(onMatch(new _js_helper.StringMatch.new(i, receiver, "")));
    let code = receiver[$codeUnitAt](i);
    if ((code & ~1023 >>> 0) === 55296 && length > i + 1) {
      code = receiver[$codeUnitAt](i + 1);
      if ((code & ~1023 >>> 0) === 56320) {
        buffer.write(onNonMatch(receiver[$substring](i, i + 2)));
        i = i + 2;
        continue;
      }
    }
    buffer.write(onNonMatch(receiver[$_get](i)));
    i = i + 1;
  }
  buffer.write(onMatch(new _js_helper.StringMatch.new(i, receiver, "")));
  buffer.write(onNonMatch(""));
  return buffer.toString();
};
_js_helper.stringReplaceAllStringFuncUnchecked = function stringReplaceAllStringFuncUnchecked(receiver, pattern, onMatch, onNonMatch) {
  let patternLength = pattern.length;
  if (patternLength === 0) {
    return _js_helper.stringReplaceAllEmptyFuncUnchecked(receiver, onMatch, onNonMatch);
  }
  let length = receiver.length;
  let buffer = new core.StringBuffer.new();
  let startIndex = 0;
  while (startIndex < length) {
    let position = _js_helper.stringIndexOfStringUnchecked(receiver, pattern, startIndex);
    if (position === -1) {
      break;
    }
    buffer.write(onNonMatch(receiver[$substring](startIndex, position)));
    buffer.write(onMatch(new _js_helper.StringMatch.new(position, receiver, pattern)));
    startIndex = position + patternLength;
  }
  buffer.write(onNonMatch(receiver[$substring](startIndex)));
  return buffer.toString();
};
_js_helper.stringReplaceFirstUnchecked = function stringReplaceFirstUnchecked(receiver, pattern, replacement, startIndex) {
  if (pattern == null) dart.argumentError(pattern);
  if (typeof pattern == 'string') {
    let index = _js_helper.stringIndexOfStringUnchecked(receiver, pattern, startIndex);
    if (index < 0) return receiver;
    let end = index + pattern.length;
    return _js_helper.stringReplaceRangeUnchecked(receiver, index, end, replacement);
  }
  if (_js_helper.JSSyntaxRegExp.is(pattern)) {
    return startIndex === 0 ? _js_helper.stringReplaceJS(receiver, _js_helper.regExpGetNative(pattern), replacement) : _js_helper.stringReplaceFirstRE(receiver, pattern, replacement, startIndex);
  }
  let matches = pattern[$allMatches](receiver, startIndex)[$iterator];
  if (!dart.test(matches.moveNext())) return receiver;
  let match = matches.current;
  return receiver[$replaceRange](match.start, match.end, replacement);
};
_js_helper.stringReplaceFirstMappedUnchecked = function stringReplaceFirstMappedUnchecked(receiver, pattern, replace, startIndex) {
  let matches = pattern[$allMatches](receiver, startIndex)[$iterator];
  if (!dart.test(matches.moveNext())) return receiver;
  let match = matches.current;
  let replacement = dart.str(replace(match));
  return receiver[$replaceRange](match.start, match.end, replacement);
};
_js_helper.stringJoinUnchecked = function stringJoinUnchecked(array, separator) {
  return array.join(separator);
};
_js_helper.stringReplaceRangeUnchecked = function stringReplaceRangeUnchecked(receiver, start, end, replacement) {
  let prefix = receiver.substring(0, start);
  let suffix = receiver.substring(end);
  return prefix + dart.str(replacement) + suffix;
};
var C33;
var C34;
var C35;
var C36;
dart.defineLazy(_js_helper, {
  /*_js_helper.patch*/get patch() {
    return C33 || CT.C33;
  },
  /*_js_helper.notNull*/get notNull() {
    return C34 || CT.C34;
  },
  /*_js_helper.undefined*/get undefined() {
    return C35 || CT.C35;
  },
  /*_js_helper.nullCheck*/get nullCheck() {
    return C36 || CT.C36;
  }
}, true);
_js_primitives.printString = function 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);
};
var browserName$ = dart.privateName(_metadata, "SupportedBrowser.browserName");
var minimumVersion$ = dart.privateName(_metadata, "SupportedBrowser.minimumVersion");
_metadata.SupportedBrowser = class SupportedBrowser extends core.Object {
  get browserName() {
    return this[browserName$];
  }
  set browserName(value) {
    super.browserName = value;
  }
  get minimumVersion() {
    return this[minimumVersion$];
  }
  set minimumVersion(value) {
    super.minimumVersion = value;
  }
};
(_metadata.SupportedBrowser.new = function(browserName, minimumVersion = null) {
  this[browserName$] = browserName;
  this[minimumVersion$] = minimumVersion;
  ;
}).prototype = _metadata.SupportedBrowser.prototype;
dart.addTypeTests(_metadata.SupportedBrowser);
dart.addTypeCaches(_metadata.SupportedBrowser);
dart.setLibraryUri(_metadata.SupportedBrowser, L26);
dart.setFieldSignature(_metadata.SupportedBrowser, () => ({
  __proto__: dart.getFields(_metadata.SupportedBrowser.__proto__),
  browserName: dart.finalFieldType(core.String),
  minimumVersion: dart.finalFieldType(core.String)
}));
dart.defineLazy(_metadata.SupportedBrowser, {
  /*_metadata.SupportedBrowser.CHROME*/get CHROME() {
    return "Chrome";
  },
  /*_metadata.SupportedBrowser.FIREFOX*/get FIREFOX() {
    return "Firefox";
  },
  /*_metadata.SupportedBrowser.IE*/get IE() {
    return "Internet Explorer";
  },
  /*_metadata.SupportedBrowser.OPERA*/get OPERA() {
    return "Opera";
  },
  /*_metadata.SupportedBrowser.SAFARI*/get SAFARI() {
    return "Safari";
  }
}, true);
_metadata.Experimental = class Experimental extends core.Object {};
(_metadata.Experimental.new = function() {
  ;
}).prototype = _metadata.Experimental.prototype;
dart.addTypeTests(_metadata.Experimental);
dart.addTypeCaches(_metadata.Experimental);
dart.setLibraryUri(_metadata.Experimental, L26);
var name$9 = dart.privateName(_metadata, "DomName.name");
_metadata.DomName = class DomName extends core.Object {
  get name() {
    return this[name$9];
  }
  set name(value) {
    super.name = value;
  }
};
(_metadata.DomName.new = function(name) {
  this[name$9] = name;
  ;
}).prototype = _metadata.DomName.prototype;
dart.addTypeTests(_metadata.DomName);
dart.addTypeCaches(_metadata.DomName);
dart.setLibraryUri(_metadata.DomName, L26);
dart.setFieldSignature(_metadata.DomName, () => ({
  __proto__: dart.getFields(_metadata.DomName.__proto__),
  name: dart.finalFieldType(core.String)
}));
_metadata.DocsEditable = class DocsEditable extends core.Object {};
(_metadata.DocsEditable.new = function() {
  ;
}).prototype = _metadata.DocsEditable.prototype;
dart.addTypeTests(_metadata.DocsEditable);
dart.addTypeCaches(_metadata.DocsEditable);
dart.setLibraryUri(_metadata.DocsEditable, L26);
_metadata.Unstable = class Unstable extends core.Object {};
(_metadata.Unstable.new = function() {
  ;
}).prototype = _metadata.Unstable.prototype;
dart.addTypeTests(_metadata.Unstable);
dart.addTypeCaches(_metadata.Unstable);
dart.setLibraryUri(_metadata.Unstable, L26);
_native_typed_data.NativeByteBuffer = class NativeByteBuffer extends core.Object {
  get [$lengthInBytes]() {
    return this.byteLength;
  }
  get [$runtimeType]() {
    return dart.wrapType(typed_data.ByteBuffer);
  }
  [$asUint8List](offsetInBytes = 0, length = null) {
    return _native_typed_data.NativeUint8List.view(this, offsetInBytes, length);
  }
  [$asInt8List](offsetInBytes = 0, length = null) {
    return _native_typed_data.NativeInt8List.view(this, offsetInBytes, length);
  }
  [$asUint8ClampedList](offsetInBytes = 0, length = null) {
    return _native_typed_data.NativeUint8ClampedList.view(this, offsetInBytes, length);
  }
  [$asUint16List](offsetInBytes = 0, length = null) {
    return _native_typed_data.NativeUint16List.view(this, offsetInBytes, length);
  }
  [$asInt16List](offsetInBytes = 0, length = null) {
    return _native_typed_data.NativeInt16List.view(this, offsetInBytes, length);
  }
  [$asUint32List](offsetInBytes = 0, length = null) {
    return _native_typed_data.NativeUint32List.view(this, offsetInBytes, length);
  }
  [$asInt32List](offsetInBytes = 0, length = null) {
    return _native_typed_data.NativeInt32List.view(this, offsetInBytes, length);
  }
  [$asUint64List](offsetInBytes = 0, length = null) {
    dart.throw(new core.UnsupportedError.new("Uint64List not supported by dart2js."));
  }
  [$asInt64List](offsetInBytes = 0, length = null) {
    dart.throw(new core.UnsupportedError.new("Int64List not supported by dart2js."));
  }
  [$asInt32x4List](offsetInBytes = 0, length = null) {
    let storage = _native_typed_data.NativeInt32List.as(this[$asInt32List](offsetInBytes, length != null ? dart.notNull(length) * 4 : null));
    return new _native_typed_data.NativeInt32x4List._externalStorage(storage);
  }
  [$asFloat32List](offsetInBytes = 0, length = null) {
    return _native_typed_data.NativeFloat32List.view(this, offsetInBytes, length);
  }
  [$asFloat64List](offsetInBytes = 0, length = null) {
    return _native_typed_data.NativeFloat64List.view(this, offsetInBytes, length);
  }
  [$asFloat32x4List](offsetInBytes = 0, length = null) {
    let storage = _native_typed_data.NativeFloat32List.as(this[$asFloat32List](offsetInBytes, length != null ? dart.notNull(length) * 4 : null));
    return new _native_typed_data.NativeFloat32x4List._externalStorage(storage);
  }
  [$asFloat64x2List](offsetInBytes = 0, length = null) {
    let storage = _native_typed_data.NativeFloat64List.as(this[$asFloat64List](offsetInBytes, length != null ? dart.notNull(length) * 2 : null));
    return new _native_typed_data.NativeFloat64x2List._externalStorage(storage);
  }
  [$asByteData](offsetInBytes = 0, length = null) {
    return _native_typed_data.NativeByteData.view(this, offsetInBytes, length);
  }
};
(_native_typed_data.NativeByteBuffer.new = function() {
  ;
}).prototype = _native_typed_data.NativeByteBuffer.prototype;
dart.addTypeTests(_native_typed_data.NativeByteBuffer);
dart.addTypeCaches(_native_typed_data.NativeByteBuffer);
_native_typed_data.NativeByteBuffer[dart.implements] = () => [typed_data.ByteBuffer];
dart.setMethodSignature(_native_typed_data.NativeByteBuffer, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeByteBuffer.__proto__),
  [$asUint8List]: dart.fnType(typed_data.Uint8List, [], [core.int, core.int]),
  [$asInt8List]: dart.fnType(typed_data.Int8List, [], [core.int, core.int]),
  [$asUint8ClampedList]: dart.fnType(typed_data.Uint8ClampedList, [], [core.int, core.int]),
  [$asUint16List]: dart.fnType(typed_data.Uint16List, [], [core.int, core.int]),
  [$asInt16List]: dart.fnType(typed_data.Int16List, [], [core.int, core.int]),
  [$asUint32List]: dart.fnType(typed_data.Uint32List, [], [core.int, core.int]),
  [$asInt32List]: dart.fnType(typed_data.Int32List, [], [core.int, core.int]),
  [$asUint64List]: dart.fnType(typed_data.Uint64List, [], [core.int, core.int]),
  [$asInt64List]: dart.fnType(typed_data.Int64List, [], [core.int, core.int]),
  [$asInt32x4List]: dart.fnType(typed_data.Int32x4List, [], [core.int, core.int]),
  [$asFloat32List]: dart.fnType(typed_data.Float32List, [], [core.int, core.int]),
  [$asFloat64List]: dart.fnType(typed_data.Float64List, [], [core.int, core.int]),
  [$asFloat32x4List]: dart.fnType(typed_data.Float32x4List, [], [core.int, core.int]),
  [$asFloat64x2List]: dart.fnType(typed_data.Float64x2List, [], [core.int, core.int]),
  [$asByteData]: dart.fnType(typed_data.ByteData, [], [core.int, core.int])
}));
dart.setGetterSignature(_native_typed_data.NativeByteBuffer, () => ({
  __proto__: dart.getGetters(_native_typed_data.NativeByteBuffer.__proto__),
  [$lengthInBytes]: core.int
}));
dart.setLibraryUri(_native_typed_data.NativeByteBuffer, L27);
dart.registerExtension("ArrayBuffer", _native_typed_data.NativeByteBuffer);
var _storage$ = dart.privateName(_native_typed_data, "_storage");
typed_data.Float32x4 = class Float32x4 extends core.Object {};
(typed_data.Float32x4[dart.mixinNew] = function() {
}).prototype = typed_data.Float32x4.prototype;
dart.addTypeTests(typed_data.Float32x4);
dart.addTypeCaches(typed_data.Float32x4);
dart.setLibraryUri(typed_data.Float32x4, L28);
dart.defineLazy(typed_data.Float32x4, {
  /*typed_data.Float32x4.xxxx*/get xxxx() {
    return 0;
  },
  /*typed_data.Float32x4.xxxy*/get xxxy() {
    return 64;
  },
  /*typed_data.Float32x4.xxxz*/get xxxz() {
    return 128;
  },
  /*typed_data.Float32x4.xxxw*/get xxxw() {
    return 192;
  },
  /*typed_data.Float32x4.xxyx*/get xxyx() {
    return 16;
  },
  /*typed_data.Float32x4.xxyy*/get xxyy() {
    return 80;
  },
  /*typed_data.Float32x4.xxyz*/get xxyz() {
    return 144;
  },
  /*typed_data.Float32x4.xxyw*/get xxyw() {
    return 208;
  },
  /*typed_data.Float32x4.xxzx*/get xxzx() {
    return 32;
  },
  /*typed_data.Float32x4.xxzy*/get xxzy() {
    return 96;
  },
  /*typed_data.Float32x4.xxzz*/get xxzz() {
    return 160;
  },
  /*typed_data.Float32x4.xxzw*/get xxzw() {
    return 224;
  },
  /*typed_data.Float32x4.xxwx*/get xxwx() {
    return 48;
  },
  /*typed_data.Float32x4.xxwy*/get xxwy() {
    return 112;
  },
  /*typed_data.Float32x4.xxwz*/get xxwz() {
    return 176;
  },
  /*typed_data.Float32x4.xxww*/get xxww() {
    return 240;
  },
  /*typed_data.Float32x4.xyxx*/get xyxx() {
    return 4;
  },
  /*typed_data.Float32x4.xyxy*/get xyxy() {
    return 68;
  },
  /*typed_data.Float32x4.xyxz*/get xyxz() {
    return 132;
  },
  /*typed_data.Float32x4.xyxw*/get xyxw() {
    return 196;
  },
  /*typed_data.Float32x4.xyyx*/get xyyx() {
    return 20;
  },
  /*typed_data.Float32x4.xyyy*/get xyyy() {
    return 84;
  },
  /*typed_data.Float32x4.xyyz*/get xyyz() {
    return 148;
  },
  /*typed_data.Float32x4.xyyw*/get xyyw() {
    return 212;
  },
  /*typed_data.Float32x4.xyzx*/get xyzx() {
    return 36;
  },
  /*typed_data.Float32x4.xyzy*/get xyzy() {
    return 100;
  },
  /*typed_data.Float32x4.xyzz*/get xyzz() {
    return 164;
  },
  /*typed_data.Float32x4.xyzw*/get xyzw() {
    return 228;
  },
  /*typed_data.Float32x4.xywx*/get xywx() {
    return 52;
  },
  /*typed_data.Float32x4.xywy*/get xywy() {
    return 116;
  },
  /*typed_data.Float32x4.xywz*/get xywz() {
    return 180;
  },
  /*typed_data.Float32x4.xyww*/get xyww() {
    return 244;
  },
  /*typed_data.Float32x4.xzxx*/get xzxx() {
    return 8;
  },
  /*typed_data.Float32x4.xzxy*/get xzxy() {
    return 72;
  },
  /*typed_data.Float32x4.xzxz*/get xzxz() {
    return 136;
  },
  /*typed_data.Float32x4.xzxw*/get xzxw() {
    return 200;
  },
  /*typed_data.Float32x4.xzyx*/get xzyx() {
    return 24;
  },
  /*typed_data.Float32x4.xzyy*/get xzyy() {
    return 88;
  },
  /*typed_data.Float32x4.xzyz*/get xzyz() {
    return 152;
  },
  /*typed_data.Float32x4.xzyw*/get xzyw() {
    return 216;
  },
  /*typed_data.Float32x4.xzzx*/get xzzx() {
    return 40;
  },
  /*typed_data.Float32x4.xzzy*/get xzzy() {
    return 104;
  },
  /*typed_data.Float32x4.xzzz*/get xzzz() {
    return 168;
  },
  /*typed_data.Float32x4.xzzw*/get xzzw() {
    return 232;
  },
  /*typed_data.Float32x4.xzwx*/get xzwx() {
    return 56;
  },
  /*typed_data.Float32x4.xzwy*/get xzwy() {
    return 120;
  },
  /*typed_data.Float32x4.xzwz*/get xzwz() {
    return 184;
  },
  /*typed_data.Float32x4.xzww*/get xzww() {
    return 248;
  },
  /*typed_data.Float32x4.xwxx*/get xwxx() {
    return 12;
  },
  /*typed_data.Float32x4.xwxy*/get xwxy() {
    return 76;
  },
  /*typed_data.Float32x4.xwxz*/get xwxz() {
    return 140;
  },
  /*typed_data.Float32x4.xwxw*/get xwxw() {
    return 204;
  },
  /*typed_data.Float32x4.xwyx*/get xwyx() {
    return 28;
  },
  /*typed_data.Float32x4.xwyy*/get xwyy() {
    return 92;
  },
  /*typed_data.Float32x4.xwyz*/get xwyz() {
    return 156;
  },
  /*typed_data.Float32x4.xwyw*/get xwyw() {
    return 220;
  },
  /*typed_data.Float32x4.xwzx*/get xwzx() {
    return 44;
  },
  /*typed_data.Float32x4.xwzy*/get xwzy() {
    return 108;
  },
  /*typed_data.Float32x4.xwzz*/get xwzz() {
    return 172;
  },
  /*typed_data.Float32x4.xwzw*/get xwzw() {
    return 236;
  },
  /*typed_data.Float32x4.xwwx*/get xwwx() {
    return 60;
  },
  /*typed_data.Float32x4.xwwy*/get xwwy() {
    return 124;
  },
  /*typed_data.Float32x4.xwwz*/get xwwz() {
    return 188;
  },
  /*typed_data.Float32x4.xwww*/get xwww() {
    return 252;
  },
  /*typed_data.Float32x4.yxxx*/get yxxx() {
    return 1;
  },
  /*typed_data.Float32x4.yxxy*/get yxxy() {
    return 65;
  },
  /*typed_data.Float32x4.yxxz*/get yxxz() {
    return 129;
  },
  /*typed_data.Float32x4.yxxw*/get yxxw() {
    return 193;
  },
  /*typed_data.Float32x4.yxyx*/get yxyx() {
    return 17;
  },
  /*typed_data.Float32x4.yxyy*/get yxyy() {
    return 81;
  },
  /*typed_data.Float32x4.yxyz*/get yxyz() {
    return 145;
  },
  /*typed_data.Float32x4.yxyw*/get yxyw() {
    return 209;
  },
  /*typed_data.Float32x4.yxzx*/get yxzx() {
    return 33;
  },
  /*typed_data.Float32x4.yxzy*/get yxzy() {
    return 97;
  },
  /*typed_data.Float32x4.yxzz*/get yxzz() {
    return 161;
  },
  /*typed_data.Float32x4.yxzw*/get yxzw() {
    return 225;
  },
  /*typed_data.Float32x4.yxwx*/get yxwx() {
    return 49;
  },
  /*typed_data.Float32x4.yxwy*/get yxwy() {
    return 113;
  },
  /*typed_data.Float32x4.yxwz*/get yxwz() {
    return 177;
  },
  /*typed_data.Float32x4.yxww*/get yxww() {
    return 241;
  },
  /*typed_data.Float32x4.yyxx*/get yyxx() {
    return 5;
  },
  /*typed_data.Float32x4.yyxy*/get yyxy() {
    return 69;
  },
  /*typed_data.Float32x4.yyxz*/get yyxz() {
    return 133;
  },
  /*typed_data.Float32x4.yyxw*/get yyxw() {
    return 197;
  },
  /*typed_data.Float32x4.yyyx*/get yyyx() {
    return 21;
  },
  /*typed_data.Float32x4.yyyy*/get yyyy() {
    return 85;
  },
  /*typed_data.Float32x4.yyyz*/get yyyz() {
    return 149;
  },
  /*typed_data.Float32x4.yyyw*/get yyyw() {
    return 213;
  },
  /*typed_data.Float32x4.yyzx*/get yyzx() {
    return 37;
  },
  /*typed_data.Float32x4.yyzy*/get yyzy() {
    return 101;
  },
  /*typed_data.Float32x4.yyzz*/get yyzz() {
    return 165;
  },
  /*typed_data.Float32x4.yyzw*/get yyzw() {
    return 229;
  },
  /*typed_data.Float32x4.yywx*/get yywx() {
    return 53;
  },
  /*typed_data.Float32x4.yywy*/get yywy() {
    return 117;
  },
  /*typed_data.Float32x4.yywz*/get yywz() {
    return 181;
  },
  /*typed_data.Float32x4.yyww*/get yyww() {
    return 245;
  },
  /*typed_data.Float32x4.yzxx*/get yzxx() {
    return 9;
  },
  /*typed_data.Float32x4.yzxy*/get yzxy() {
    return 73;
  },
  /*typed_data.Float32x4.yzxz*/get yzxz() {
    return 137;
  },
  /*typed_data.Float32x4.yzxw*/get yzxw() {
    return 201;
  },
  /*typed_data.Float32x4.yzyx*/get yzyx() {
    return 25;
  },
  /*typed_data.Float32x4.yzyy*/get yzyy() {
    return 89;
  },
  /*typed_data.Float32x4.yzyz*/get yzyz() {
    return 153;
  },
  /*typed_data.Float32x4.yzyw*/get yzyw() {
    return 217;
  },
  /*typed_data.Float32x4.yzzx*/get yzzx() {
    return 41;
  },
  /*typed_data.Float32x4.yzzy*/get yzzy() {
    return 105;
  },
  /*typed_data.Float32x4.yzzz*/get yzzz() {
    return 169;
  },
  /*typed_data.Float32x4.yzzw*/get yzzw() {
    return 233;
  },
  /*typed_data.Float32x4.yzwx*/get yzwx() {
    return 57;
  },
  /*typed_data.Float32x4.yzwy*/get yzwy() {
    return 121;
  },
  /*typed_data.Float32x4.yzwz*/get yzwz() {
    return 185;
  },
  /*typed_data.Float32x4.yzww*/get yzww() {
    return 249;
  },
  /*typed_data.Float32x4.ywxx*/get ywxx() {
    return 13;
  },
  /*typed_data.Float32x4.ywxy*/get ywxy() {
    return 77;
  },
  /*typed_data.Float32x4.ywxz*/get ywxz() {
    return 141;
  },
  /*typed_data.Float32x4.ywxw*/get ywxw() {
    return 205;
  },
  /*typed_data.Float32x4.ywyx*/get ywyx() {
    return 29;
  },
  /*typed_data.Float32x4.ywyy*/get ywyy() {
    return 93;
  },
  /*typed_data.Float32x4.ywyz*/get ywyz() {
    return 157;
  },
  /*typed_data.Float32x4.ywyw*/get ywyw() {
    return 221;
  },
  /*typed_data.Float32x4.ywzx*/get ywzx() {
    return 45;
  },
  /*typed_data.Float32x4.ywzy*/get ywzy() {
    return 109;
  },
  /*typed_data.Float32x4.ywzz*/get ywzz() {
    return 173;
  },
  /*typed_data.Float32x4.ywzw*/get ywzw() {
    return 237;
  },
  /*typed_data.Float32x4.ywwx*/get ywwx() {
    return 61;
  },
  /*typed_data.Float32x4.ywwy*/get ywwy() {
    return 125;
  },
  /*typed_data.Float32x4.ywwz*/get ywwz() {
    return 189;
  },
  /*typed_data.Float32x4.ywww*/get ywww() {
    return 253;
  },
  /*typed_data.Float32x4.zxxx*/get zxxx() {
    return 2;
  },
  /*typed_data.Float32x4.zxxy*/get zxxy() {
    return 66;
  },
  /*typed_data.Float32x4.zxxz*/get zxxz() {
    return 130;
  },
  /*typed_data.Float32x4.zxxw*/get zxxw() {
    return 194;
  },
  /*typed_data.Float32x4.zxyx*/get zxyx() {
    return 18;
  },
  /*typed_data.Float32x4.zxyy*/get zxyy() {
    return 82;
  },
  /*typed_data.Float32x4.zxyz*/get zxyz() {
    return 146;
  },
  /*typed_data.Float32x4.zxyw*/get zxyw() {
    return 210;
  },
  /*typed_data.Float32x4.zxzx*/get zxzx() {
    return 34;
  },
  /*typed_data.Float32x4.zxzy*/get zxzy() {
    return 98;
  },
  /*typed_data.Float32x4.zxzz*/get zxzz() {
    return 162;
  },
  /*typed_data.Float32x4.zxzw*/get zxzw() {
    return 226;
  },
  /*typed_data.Float32x4.zxwx*/get zxwx() {
    return 50;
  },
  /*typed_data.Float32x4.zxwy*/get zxwy() {
    return 114;
  },
  /*typed_data.Float32x4.zxwz*/get zxwz() {
    return 178;
  },
  /*typed_data.Float32x4.zxww*/get zxww() {
    return 242;
  },
  /*typed_data.Float32x4.zyxx*/get zyxx() {
    return 6;
  },
  /*typed_data.Float32x4.zyxy*/get zyxy() {
    return 70;
  },
  /*typed_data.Float32x4.zyxz*/get zyxz() {
    return 134;
  },
  /*typed_data.Float32x4.zyxw*/get zyxw() {
    return 198;
  },
  /*typed_data.Float32x4.zyyx*/get zyyx() {
    return 22;
  },
  /*typed_data.Float32x4.zyyy*/get zyyy() {
    return 86;
  },
  /*typed_data.Float32x4.zyyz*/get zyyz() {
    return 150;
  },
  /*typed_data.Float32x4.zyyw*/get zyyw() {
    return 214;
  },
  /*typed_data.Float32x4.zyzx*/get zyzx() {
    return 38;
  },
  /*typed_data.Float32x4.zyzy*/get zyzy() {
    return 102;
  },
  /*typed_data.Float32x4.zyzz*/get zyzz() {
    return 166;
  },
  /*typed_data.Float32x4.zyzw*/get zyzw() {
    return 230;
  },
  /*typed_data.Float32x4.zywx*/get zywx() {
    return 54;
  },
  /*typed_data.Float32x4.zywy*/get zywy() {
    return 118;
  },
  /*typed_data.Float32x4.zywz*/get zywz() {
    return 182;
  },
  /*typed_data.Float32x4.zyww*/get zyww() {
    return 246;
  },
  /*typed_data.Float32x4.zzxx*/get zzxx() {
    return 10;
  },
  /*typed_data.Float32x4.zzxy*/get zzxy() {
    return 74;
  },
  /*typed_data.Float32x4.zzxz*/get zzxz() {
    return 138;
  },
  /*typed_data.Float32x4.zzxw*/get zzxw() {
    return 202;
  },
  /*typed_data.Float32x4.zzyx*/get zzyx() {
    return 26;
  },
  /*typed_data.Float32x4.zzyy*/get zzyy() {
    return 90;
  },
  /*typed_data.Float32x4.zzyz*/get zzyz() {
    return 154;
  },
  /*typed_data.Float32x4.zzyw*/get zzyw() {
    return 218;
  },
  /*typed_data.Float32x4.zzzx*/get zzzx() {
    return 42;
  },
  /*typed_data.Float32x4.zzzy*/get zzzy() {
    return 106;
  },
  /*typed_data.Float32x4.zzzz*/get zzzz() {
    return 170;
  },
  /*typed_data.Float32x4.zzzw*/get zzzw() {
    return 234;
  },
  /*typed_data.Float32x4.zzwx*/get zzwx() {
    return 58;
  },
  /*typed_data.Float32x4.zzwy*/get zzwy() {
    return 122;
  },
  /*typed_data.Float32x4.zzwz*/get zzwz() {
    return 186;
  },
  /*typed_data.Float32x4.zzww*/get zzww() {
    return 250;
  },
  /*typed_data.Float32x4.zwxx*/get zwxx() {
    return 14;
  },
  /*typed_data.Float32x4.zwxy*/get zwxy() {
    return 78;
  },
  /*typed_data.Float32x4.zwxz*/get zwxz() {
    return 142;
  },
  /*typed_data.Float32x4.zwxw*/get zwxw() {
    return 206;
  },
  /*typed_data.Float32x4.zwyx*/get zwyx() {
    return 30;
  },
  /*typed_data.Float32x4.zwyy*/get zwyy() {
    return 94;
  },
  /*typed_data.Float32x4.zwyz*/get zwyz() {
    return 158;
  },
  /*typed_data.Float32x4.zwyw*/get zwyw() {
    return 222;
  },
  /*typed_data.Float32x4.zwzx*/get zwzx() {
    return 46;
  },
  /*typed_data.Float32x4.zwzy*/get zwzy() {
    return 110;
  },
  /*typed_data.Float32x4.zwzz*/get zwzz() {
    return 174;
  },
  /*typed_data.Float32x4.zwzw*/get zwzw() {
    return 238;
  },
  /*typed_data.Float32x4.zwwx*/get zwwx() {
    return 62;
  },
  /*typed_data.Float32x4.zwwy*/get zwwy() {
    return 126;
  },
  /*typed_data.Float32x4.zwwz*/get zwwz() {
    return 190;
  },
  /*typed_data.Float32x4.zwww*/get zwww() {
    return 254;
  },
  /*typed_data.Float32x4.wxxx*/get wxxx() {
    return 3;
  },
  /*typed_data.Float32x4.wxxy*/get wxxy() {
    return 67;
  },
  /*typed_data.Float32x4.wxxz*/get wxxz() {
    return 131;
  },
  /*typed_data.Float32x4.wxxw*/get wxxw() {
    return 195;
  },
  /*typed_data.Float32x4.wxyx*/get wxyx() {
    return 19;
  },
  /*typed_data.Float32x4.wxyy*/get wxyy() {
    return 83;
  },
  /*typed_data.Float32x4.wxyz*/get wxyz() {
    return 147;
  },
  /*typed_data.Float32x4.wxyw*/get wxyw() {
    return 211;
  },
  /*typed_data.Float32x4.wxzx*/get wxzx() {
    return 35;
  },
  /*typed_data.Float32x4.wxzy*/get wxzy() {
    return 99;
  },
  /*typed_data.Float32x4.wxzz*/get wxzz() {
    return 163;
  },
  /*typed_data.Float32x4.wxzw*/get wxzw() {
    return 227;
  },
  /*typed_data.Float32x4.wxwx*/get wxwx() {
    return 51;
  },
  /*typed_data.Float32x4.wxwy*/get wxwy() {
    return 115;
  },
  /*typed_data.Float32x4.wxwz*/get wxwz() {
    return 179;
  },
  /*typed_data.Float32x4.wxww*/get wxww() {
    return 243;
  },
  /*typed_data.Float32x4.wyxx*/get wyxx() {
    return 7;
  },
  /*typed_data.Float32x4.wyxy*/get wyxy() {
    return 71;
  },
  /*typed_data.Float32x4.wyxz*/get wyxz() {
    return 135;
  },
  /*typed_data.Float32x4.wyxw*/get wyxw() {
    return 199;
  },
  /*typed_data.Float32x4.wyyx*/get wyyx() {
    return 23;
  },
  /*typed_data.Float32x4.wyyy*/get wyyy() {
    return 87;
  },
  /*typed_data.Float32x4.wyyz*/get wyyz() {
    return 151;
  },
  /*typed_data.Float32x4.wyyw*/get wyyw() {
    return 215;
  },
  /*typed_data.Float32x4.wyzx*/get wyzx() {
    return 39;
  },
  /*typed_data.Float32x4.wyzy*/get wyzy() {
    return 103;
  },
  /*typed_data.Float32x4.wyzz*/get wyzz() {
    return 167;
  },
  /*typed_data.Float32x4.wyzw*/get wyzw() {
    return 231;
  },
  /*typed_data.Float32x4.wywx*/get wywx() {
    return 55;
  },
  /*typed_data.Float32x4.wywy*/get wywy() {
    return 119;
  },
  /*typed_data.Float32x4.wywz*/get wywz() {
    return 183;
  },
  /*typed_data.Float32x4.wyww*/get wyww() {
    return 247;
  },
  /*typed_data.Float32x4.wzxx*/get wzxx() {
    return 11;
  },
  /*typed_data.Float32x4.wzxy*/get wzxy() {
    return 75;
  },
  /*typed_data.Float32x4.wzxz*/get wzxz() {
    return 139;
  },
  /*typed_data.Float32x4.wzxw*/get wzxw() {
    return 203;
  },
  /*typed_data.Float32x4.wzyx*/get wzyx() {
    return 27;
  },
  /*typed_data.Float32x4.wzyy*/get wzyy() {
    return 91;
  },
  /*typed_data.Float32x4.wzyz*/get wzyz() {
    return 155;
  },
  /*typed_data.Float32x4.wzyw*/get wzyw() {
    return 219;
  },
  /*typed_data.Float32x4.wzzx*/get wzzx() {
    return 43;
  },
  /*typed_data.Float32x4.wzzy*/get wzzy() {
    return 107;
  },
  /*typed_data.Float32x4.wzzz*/get wzzz() {
    return 171;
  },
  /*typed_data.Float32x4.wzzw*/get wzzw() {
    return 235;
  },
  /*typed_data.Float32x4.wzwx*/get wzwx() {
    return 59;
  },
  /*typed_data.Float32x4.wzwy*/get wzwy() {
    return 123;
  },
  /*typed_data.Float32x4.wzwz*/get wzwz() {
    return 187;
  },
  /*typed_data.Float32x4.wzww*/get wzww() {
    return 251;
  },
  /*typed_data.Float32x4.wwxx*/get wwxx() {
    return 15;
  },
  /*typed_data.Float32x4.wwxy*/get wwxy() {
    return 79;
  },
  /*typed_data.Float32x4.wwxz*/get wwxz() {
    return 143;
  },
  /*typed_data.Float32x4.wwxw*/get wwxw() {
    return 207;
  },
  /*typed_data.Float32x4.wwyx*/get wwyx() {
    return 31;
  },
  /*typed_data.Float32x4.wwyy*/get wwyy() {
    return 95;
  },
  /*typed_data.Float32x4.wwyz*/get wwyz() {
    return 159;
  },
  /*typed_data.Float32x4.wwyw*/get wwyw() {
    return 223;
  },
  /*typed_data.Float32x4.wwzx*/get wwzx() {
    return 47;
  },
  /*typed_data.Float32x4.wwzy*/get wwzy() {
    return 111;
  },
  /*typed_data.Float32x4.wwzz*/get wwzz() {
    return 175;
  },
  /*typed_data.Float32x4.wwzw*/get wwzw() {
    return 239;
  },
  /*typed_data.Float32x4.wwwx*/get wwwx() {
    return 63;
  },
  /*typed_data.Float32x4.wwwy*/get wwwy() {
    return 127;
  },
  /*typed_data.Float32x4.wwwz*/get wwwz() {
    return 191;
  },
  /*typed_data.Float32x4.wwww*/get wwww() {
    return 255;
  }
}, true);
const Object_ListMixin$36 = class Object_ListMixin extends core.Object {};
(Object_ListMixin$36.new = function() {
}).prototype = Object_ListMixin$36.prototype;
dart.applyMixin(Object_ListMixin$36, collection.ListMixin$(typed_data.Float32x4));
const Object_FixedLengthListMixin$36 = class Object_FixedLengthListMixin extends Object_ListMixin$36 {};
(Object_FixedLengthListMixin$36.new = function() {
}).prototype = Object_FixedLengthListMixin$36.prototype;
dart.applyMixin(Object_FixedLengthListMixin$36, _internal.FixedLengthListMixin$(typed_data.Float32x4));
_native_typed_data.NativeFloat32x4List = class NativeFloat32x4List extends Object_FixedLengthListMixin$36 {
  get runtimeType() {
    return dart.wrapType(typed_data.Float32x4List);
  }
  static fromList(list) {
    if (_native_typed_data.NativeFloat32x4List.is(list)) {
      return new _native_typed_data.NativeFloat32x4List._externalStorage(_native_typed_data.NativeFloat32List.fromList(list[_storage$]));
    } else {
      return new _native_typed_data.NativeFloat32x4List._slowFromList(list);
    }
  }
  get buffer() {
    return this[_storage$].buffer;
  }
  get lengthInBytes() {
    return this[_storage$][$lengthInBytes];
  }
  get offsetInBytes() {
    return this[_storage$][$offsetInBytes];
  }
  get elementSizeInBytes() {
    return 16;
  }
  get length() {
    return (dart.notNull(this[_storage$][$length]) / 4)[$truncate]();
  }
  set length(value) {
    super.length = value;
  }
  _get(index) {
    _native_typed_data._checkValidIndex(index, this, this.length);
    let _x = this[_storage$][$_get](dart.notNull(index) * 4 + 0);
    let _y = this[_storage$][$_get](dart.notNull(index) * 4 + 1);
    let _z = this[_storage$][$_get](dart.notNull(index) * 4 + 2);
    let _w = this[_storage$][$_get](dart.notNull(index) * 4 + 3);
    return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
  }
  _set(index, value$) {
    let value = value$;
    typed_data.Float32x4.as(value);
    _native_typed_data._checkValidIndex(index, this, this.length);
    this[_storage$][$_set](dart.notNull(index) * 4 + 0, value.x);
    this[_storage$][$_set](dart.notNull(index) * 4 + 1, value.y);
    this[_storage$][$_set](dart.notNull(index) * 4 + 2, value.z);
    this[_storage$][$_set](dart.notNull(index) * 4 + 3, value.w);
    return value$;
  }
  sublist(start, end = null) {
    end = _native_typed_data._checkValidRange(start, end, this.length);
    return new _native_typed_data.NativeFloat32x4List._externalStorage(_native_typed_data.NativeFloat32List.as(this[_storage$][$sublist](dart.notNull(start) * 4, dart.notNull(end) * 4)));
  }
};
(_native_typed_data.NativeFloat32x4List.new = function(length) {
  this[_storage$] = _native_typed_data.NativeFloat32List.new(dart.notNull(length) * 4);
  ;
}).prototype = _native_typed_data.NativeFloat32x4List.prototype;
(_native_typed_data.NativeFloat32x4List._externalStorage = function(_storage) {
  this[_storage$] = _storage;
  ;
}).prototype = _native_typed_data.NativeFloat32x4List.prototype;
(_native_typed_data.NativeFloat32x4List._slowFromList = function(list) {
  this[_storage$] = _native_typed_data.NativeFloat32List.new(dart.notNull(list[$length]) * 4);
  for (let i = 0; i < dart.notNull(list[$length]); i = i + 1) {
    let e = list[$_get](i);
    this[_storage$][$_set](i * 4 + 0, e.x);
    this[_storage$][$_set](i * 4 + 1, e.y);
    this[_storage$][$_set](i * 4 + 2, e.z);
    this[_storage$][$_set](i * 4 + 3, e.w);
  }
}).prototype = _native_typed_data.NativeFloat32x4List.prototype;
dart.addTypeTests(_native_typed_data.NativeFloat32x4List);
dart.addTypeCaches(_native_typed_data.NativeFloat32x4List);
_native_typed_data.NativeFloat32x4List[dart.implements] = () => [typed_data.Float32x4List];
dart.setMethodSignature(_native_typed_data.NativeFloat32x4List, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeFloat32x4List.__proto__),
  _get: dart.fnType(typed_data.Float32x4, [core.int]),
  [$_get]: dart.fnType(typed_data.Float32x4, [core.int]),
  _set: dart.fnType(dart.void, [core.int, core.Object]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  sublist: dart.fnType(typed_data.Float32x4List, [core.int], [core.int]),
  [$sublist]: dart.fnType(typed_data.Float32x4List, [core.int], [core.int])
}));
dart.setGetterSignature(_native_typed_data.NativeFloat32x4List, () => ({
  __proto__: dart.getGetters(_native_typed_data.NativeFloat32x4List.__proto__),
  buffer: typed_data.ByteBuffer,
  [$buffer]: typed_data.ByteBuffer,
  lengthInBytes: core.int,
  [$lengthInBytes]: core.int,
  offsetInBytes: core.int,
  [$offsetInBytes]: core.int,
  elementSizeInBytes: core.int,
  [$elementSizeInBytes]: core.int,
  length: core.int,
  [$length]: core.int
}));
dart.setLibraryUri(_native_typed_data.NativeFloat32x4List, L27);
dart.setFieldSignature(_native_typed_data.NativeFloat32x4List, () => ({
  __proto__: dart.getFields(_native_typed_data.NativeFloat32x4List.__proto__),
  [_storage$]: dart.finalFieldType(_native_typed_data.NativeFloat32List)
}));
dart.defineExtensionMethods(_native_typed_data.NativeFloat32x4List, ['_get', '_set', 'sublist']);
dart.defineExtensionAccessors(_native_typed_data.NativeFloat32x4List, [
  'runtimeType',
  'buffer',
  'lengthInBytes',
  'offsetInBytes',
  'elementSizeInBytes',
  'length'
]);
typed_data.Int32x4 = class Int32x4 extends core.Object {};
(typed_data.Int32x4[dart.mixinNew] = function() {
}).prototype = typed_data.Int32x4.prototype;
dart.addTypeTests(typed_data.Int32x4);
dart.addTypeCaches(typed_data.Int32x4);
dart.setLibraryUri(typed_data.Int32x4, L28);
dart.defineLazy(typed_data.Int32x4, {
  /*typed_data.Int32x4.xxxx*/get xxxx() {
    return 0;
  },
  /*typed_data.Int32x4.xxxy*/get xxxy() {
    return 64;
  },
  /*typed_data.Int32x4.xxxz*/get xxxz() {
    return 128;
  },
  /*typed_data.Int32x4.xxxw*/get xxxw() {
    return 192;
  },
  /*typed_data.Int32x4.xxyx*/get xxyx() {
    return 16;
  },
  /*typed_data.Int32x4.xxyy*/get xxyy() {
    return 80;
  },
  /*typed_data.Int32x4.xxyz*/get xxyz() {
    return 144;
  },
  /*typed_data.Int32x4.xxyw*/get xxyw() {
    return 208;
  },
  /*typed_data.Int32x4.xxzx*/get xxzx() {
    return 32;
  },
  /*typed_data.Int32x4.xxzy*/get xxzy() {
    return 96;
  },
  /*typed_data.Int32x4.xxzz*/get xxzz() {
    return 160;
  },
  /*typed_data.Int32x4.xxzw*/get xxzw() {
    return 224;
  },
  /*typed_data.Int32x4.xxwx*/get xxwx() {
    return 48;
  },
  /*typed_data.Int32x4.xxwy*/get xxwy() {
    return 112;
  },
  /*typed_data.Int32x4.xxwz*/get xxwz() {
    return 176;
  },
  /*typed_data.Int32x4.xxww*/get xxww() {
    return 240;
  },
  /*typed_data.Int32x4.xyxx*/get xyxx() {
    return 4;
  },
  /*typed_data.Int32x4.xyxy*/get xyxy() {
    return 68;
  },
  /*typed_data.Int32x4.xyxz*/get xyxz() {
    return 132;
  },
  /*typed_data.Int32x4.xyxw*/get xyxw() {
    return 196;
  },
  /*typed_data.Int32x4.xyyx*/get xyyx() {
    return 20;
  },
  /*typed_data.Int32x4.xyyy*/get xyyy() {
    return 84;
  },
  /*typed_data.Int32x4.xyyz*/get xyyz() {
    return 148;
  },
  /*typed_data.Int32x4.xyyw*/get xyyw() {
    return 212;
  },
  /*typed_data.Int32x4.xyzx*/get xyzx() {
    return 36;
  },
  /*typed_data.Int32x4.xyzy*/get xyzy() {
    return 100;
  },
  /*typed_data.Int32x4.xyzz*/get xyzz() {
    return 164;
  },
  /*typed_data.Int32x4.xyzw*/get xyzw() {
    return 228;
  },
  /*typed_data.Int32x4.xywx*/get xywx() {
    return 52;
  },
  /*typed_data.Int32x4.xywy*/get xywy() {
    return 116;
  },
  /*typed_data.Int32x4.xywz*/get xywz() {
    return 180;
  },
  /*typed_data.Int32x4.xyww*/get xyww() {
    return 244;
  },
  /*typed_data.Int32x4.xzxx*/get xzxx() {
    return 8;
  },
  /*typed_data.Int32x4.xzxy*/get xzxy() {
    return 72;
  },
  /*typed_data.Int32x4.xzxz*/get xzxz() {
    return 136;
  },
  /*typed_data.Int32x4.xzxw*/get xzxw() {
    return 200;
  },
  /*typed_data.Int32x4.xzyx*/get xzyx() {
    return 24;
  },
  /*typed_data.Int32x4.xzyy*/get xzyy() {
    return 88;
  },
  /*typed_data.Int32x4.xzyz*/get xzyz() {
    return 152;
  },
  /*typed_data.Int32x4.xzyw*/get xzyw() {
    return 216;
  },
  /*typed_data.Int32x4.xzzx*/get xzzx() {
    return 40;
  },
  /*typed_data.Int32x4.xzzy*/get xzzy() {
    return 104;
  },
  /*typed_data.Int32x4.xzzz*/get xzzz() {
    return 168;
  },
  /*typed_data.Int32x4.xzzw*/get xzzw() {
    return 232;
  },
  /*typed_data.Int32x4.xzwx*/get xzwx() {
    return 56;
  },
  /*typed_data.Int32x4.xzwy*/get xzwy() {
    return 120;
  },
  /*typed_data.Int32x4.xzwz*/get xzwz() {
    return 184;
  },
  /*typed_data.Int32x4.xzww*/get xzww() {
    return 248;
  },
  /*typed_data.Int32x4.xwxx*/get xwxx() {
    return 12;
  },
  /*typed_data.Int32x4.xwxy*/get xwxy() {
    return 76;
  },
  /*typed_data.Int32x4.xwxz*/get xwxz() {
    return 140;
  },
  /*typed_data.Int32x4.xwxw*/get xwxw() {
    return 204;
  },
  /*typed_data.Int32x4.xwyx*/get xwyx() {
    return 28;
  },
  /*typed_data.Int32x4.xwyy*/get xwyy() {
    return 92;
  },
  /*typed_data.Int32x4.xwyz*/get xwyz() {
    return 156;
  },
  /*typed_data.Int32x4.xwyw*/get xwyw() {
    return 220;
  },
  /*typed_data.Int32x4.xwzx*/get xwzx() {
    return 44;
  },
  /*typed_data.Int32x4.xwzy*/get xwzy() {
    return 108;
  },
  /*typed_data.Int32x4.xwzz*/get xwzz() {
    return 172;
  },
  /*typed_data.Int32x4.xwzw*/get xwzw() {
    return 236;
  },
  /*typed_data.Int32x4.xwwx*/get xwwx() {
    return 60;
  },
  /*typed_data.Int32x4.xwwy*/get xwwy() {
    return 124;
  },
  /*typed_data.Int32x4.xwwz*/get xwwz() {
    return 188;
  },
  /*typed_data.Int32x4.xwww*/get xwww() {
    return 252;
  },
  /*typed_data.Int32x4.yxxx*/get yxxx() {
    return 1;
  },
  /*typed_data.Int32x4.yxxy*/get yxxy() {
    return 65;
  },
  /*typed_data.Int32x4.yxxz*/get yxxz() {
    return 129;
  },
  /*typed_data.Int32x4.yxxw*/get yxxw() {
    return 193;
  },
  /*typed_data.Int32x4.yxyx*/get yxyx() {
    return 17;
  },
  /*typed_data.Int32x4.yxyy*/get yxyy() {
    return 81;
  },
  /*typed_data.Int32x4.yxyz*/get yxyz() {
    return 145;
  },
  /*typed_data.Int32x4.yxyw*/get yxyw() {
    return 209;
  },
  /*typed_data.Int32x4.yxzx*/get yxzx() {
    return 33;
  },
  /*typed_data.Int32x4.yxzy*/get yxzy() {
    return 97;
  },
  /*typed_data.Int32x4.yxzz*/get yxzz() {
    return 161;
  },
  /*typed_data.Int32x4.yxzw*/get yxzw() {
    return 225;
  },
  /*typed_data.Int32x4.yxwx*/get yxwx() {
    return 49;
  },
  /*typed_data.Int32x4.yxwy*/get yxwy() {
    return 113;
  },
  /*typed_data.Int32x4.yxwz*/get yxwz() {
    return 177;
  },
  /*typed_data.Int32x4.yxww*/get yxww() {
    return 241;
  },
  /*typed_data.Int32x4.yyxx*/get yyxx() {
    return 5;
  },
  /*typed_data.Int32x4.yyxy*/get yyxy() {
    return 69;
  },
  /*typed_data.Int32x4.yyxz*/get yyxz() {
    return 133;
  },
  /*typed_data.Int32x4.yyxw*/get yyxw() {
    return 197;
  },
  /*typed_data.Int32x4.yyyx*/get yyyx() {
    return 21;
  },
  /*typed_data.Int32x4.yyyy*/get yyyy() {
    return 85;
  },
  /*typed_data.Int32x4.yyyz*/get yyyz() {
    return 149;
  },
  /*typed_data.Int32x4.yyyw*/get yyyw() {
    return 213;
  },
  /*typed_data.Int32x4.yyzx*/get yyzx() {
    return 37;
  },
  /*typed_data.Int32x4.yyzy*/get yyzy() {
    return 101;
  },
  /*typed_data.Int32x4.yyzz*/get yyzz() {
    return 165;
  },
  /*typed_data.Int32x4.yyzw*/get yyzw() {
    return 229;
  },
  /*typed_data.Int32x4.yywx*/get yywx() {
    return 53;
  },
  /*typed_data.Int32x4.yywy*/get yywy() {
    return 117;
  },
  /*typed_data.Int32x4.yywz*/get yywz() {
    return 181;
  },
  /*typed_data.Int32x4.yyww*/get yyww() {
    return 245;
  },
  /*typed_data.Int32x4.yzxx*/get yzxx() {
    return 9;
  },
  /*typed_data.Int32x4.yzxy*/get yzxy() {
    return 73;
  },
  /*typed_data.Int32x4.yzxz*/get yzxz() {
    return 137;
  },
  /*typed_data.Int32x4.yzxw*/get yzxw() {
    return 201;
  },
  /*typed_data.Int32x4.yzyx*/get yzyx() {
    return 25;
  },
  /*typed_data.Int32x4.yzyy*/get yzyy() {
    return 89;
  },
  /*typed_data.Int32x4.yzyz*/get yzyz() {
    return 153;
  },
  /*typed_data.Int32x4.yzyw*/get yzyw() {
    return 217;
  },
  /*typed_data.Int32x4.yzzx*/get yzzx() {
    return 41;
  },
  /*typed_data.Int32x4.yzzy*/get yzzy() {
    return 105;
  },
  /*typed_data.Int32x4.yzzz*/get yzzz() {
    return 169;
  },
  /*typed_data.Int32x4.yzzw*/get yzzw() {
    return 233;
  },
  /*typed_data.Int32x4.yzwx*/get yzwx() {
    return 57;
  },
  /*typed_data.Int32x4.yzwy*/get yzwy() {
    return 121;
  },
  /*typed_data.Int32x4.yzwz*/get yzwz() {
    return 185;
  },
  /*typed_data.Int32x4.yzww*/get yzww() {
    return 249;
  },
  /*typed_data.Int32x4.ywxx*/get ywxx() {
    return 13;
  },
  /*typed_data.Int32x4.ywxy*/get ywxy() {
    return 77;
  },
  /*typed_data.Int32x4.ywxz*/get ywxz() {
    return 141;
  },
  /*typed_data.Int32x4.ywxw*/get ywxw() {
    return 205;
  },
  /*typed_data.Int32x4.ywyx*/get ywyx() {
    return 29;
  },
  /*typed_data.Int32x4.ywyy*/get ywyy() {
    return 93;
  },
  /*typed_data.Int32x4.ywyz*/get ywyz() {
    return 157;
  },
  /*typed_data.Int32x4.ywyw*/get ywyw() {
    return 221;
  },
  /*typed_data.Int32x4.ywzx*/get ywzx() {
    return 45;
  },
  /*typed_data.Int32x4.ywzy*/get ywzy() {
    return 109;
  },
  /*typed_data.Int32x4.ywzz*/get ywzz() {
    return 173;
  },
  /*typed_data.Int32x4.ywzw*/get ywzw() {
    return 237;
  },
  /*typed_data.Int32x4.ywwx*/get ywwx() {
    return 61;
  },
  /*typed_data.Int32x4.ywwy*/get ywwy() {
    return 125;
  },
  /*typed_data.Int32x4.ywwz*/get ywwz() {
    return 189;
  },
  /*typed_data.Int32x4.ywww*/get ywww() {
    return 253;
  },
  /*typed_data.Int32x4.zxxx*/get zxxx() {
    return 2;
  },
  /*typed_data.Int32x4.zxxy*/get zxxy() {
    return 66;
  },
  /*typed_data.Int32x4.zxxz*/get zxxz() {
    return 130;
  },
  /*typed_data.Int32x4.zxxw*/get zxxw() {
    return 194;
  },
  /*typed_data.Int32x4.zxyx*/get zxyx() {
    return 18;
  },
  /*typed_data.Int32x4.zxyy*/get zxyy() {
    return 82;
  },
  /*typed_data.Int32x4.zxyz*/get zxyz() {
    return 146;
  },
  /*typed_data.Int32x4.zxyw*/get zxyw() {
    return 210;
  },
  /*typed_data.Int32x4.zxzx*/get zxzx() {
    return 34;
  },
  /*typed_data.Int32x4.zxzy*/get zxzy() {
    return 98;
  },
  /*typed_data.Int32x4.zxzz*/get zxzz() {
    return 162;
  },
  /*typed_data.Int32x4.zxzw*/get zxzw() {
    return 226;
  },
  /*typed_data.Int32x4.zxwx*/get zxwx() {
    return 50;
  },
  /*typed_data.Int32x4.zxwy*/get zxwy() {
    return 114;
  },
  /*typed_data.Int32x4.zxwz*/get zxwz() {
    return 178;
  },
  /*typed_data.Int32x4.zxww*/get zxww() {
    return 242;
  },
  /*typed_data.Int32x4.zyxx*/get zyxx() {
    return 6;
  },
  /*typed_data.Int32x4.zyxy*/get zyxy() {
    return 70;
  },
  /*typed_data.Int32x4.zyxz*/get zyxz() {
    return 134;
  },
  /*typed_data.Int32x4.zyxw*/get zyxw() {
    return 198;
  },
  /*typed_data.Int32x4.zyyx*/get zyyx() {
    return 22;
  },
  /*typed_data.Int32x4.zyyy*/get zyyy() {
    return 86;
  },
  /*typed_data.Int32x4.zyyz*/get zyyz() {
    return 150;
  },
  /*typed_data.Int32x4.zyyw*/get zyyw() {
    return 214;
  },
  /*typed_data.Int32x4.zyzx*/get zyzx() {
    return 38;
  },
  /*typed_data.Int32x4.zyzy*/get zyzy() {
    return 102;
  },
  /*typed_data.Int32x4.zyzz*/get zyzz() {
    return 166;
  },
  /*typed_data.Int32x4.zyzw*/get zyzw() {
    return 230;
  },
  /*typed_data.Int32x4.zywx*/get zywx() {
    return 54;
  },
  /*typed_data.Int32x4.zywy*/get zywy() {
    return 118;
  },
  /*typed_data.Int32x4.zywz*/get zywz() {
    return 182;
  },
  /*typed_data.Int32x4.zyww*/get zyww() {
    return 246;
  },
  /*typed_data.Int32x4.zzxx*/get zzxx() {
    return 10;
  },
  /*typed_data.Int32x4.zzxy*/get zzxy() {
    return 74;
  },
  /*typed_data.Int32x4.zzxz*/get zzxz() {
    return 138;
  },
  /*typed_data.Int32x4.zzxw*/get zzxw() {
    return 202;
  },
  /*typed_data.Int32x4.zzyx*/get zzyx() {
    return 26;
  },
  /*typed_data.Int32x4.zzyy*/get zzyy() {
    return 90;
  },
  /*typed_data.Int32x4.zzyz*/get zzyz() {
    return 154;
  },
  /*typed_data.Int32x4.zzyw*/get zzyw() {
    return 218;
  },
  /*typed_data.Int32x4.zzzx*/get zzzx() {
    return 42;
  },
  /*typed_data.Int32x4.zzzy*/get zzzy() {
    return 106;
  },
  /*typed_data.Int32x4.zzzz*/get zzzz() {
    return 170;
  },
  /*typed_data.Int32x4.zzzw*/get zzzw() {
    return 234;
  },
  /*typed_data.Int32x4.zzwx*/get zzwx() {
    return 58;
  },
  /*typed_data.Int32x4.zzwy*/get zzwy() {
    return 122;
  },
  /*typed_data.Int32x4.zzwz*/get zzwz() {
    return 186;
  },
  /*typed_data.Int32x4.zzww*/get zzww() {
    return 250;
  },
  /*typed_data.Int32x4.zwxx*/get zwxx() {
    return 14;
  },
  /*typed_data.Int32x4.zwxy*/get zwxy() {
    return 78;
  },
  /*typed_data.Int32x4.zwxz*/get zwxz() {
    return 142;
  },
  /*typed_data.Int32x4.zwxw*/get zwxw() {
    return 206;
  },
  /*typed_data.Int32x4.zwyx*/get zwyx() {
    return 30;
  },
  /*typed_data.Int32x4.zwyy*/get zwyy() {
    return 94;
  },
  /*typed_data.Int32x4.zwyz*/get zwyz() {
    return 158;
  },
  /*typed_data.Int32x4.zwyw*/get zwyw() {
    return 222;
  },
  /*typed_data.Int32x4.zwzx*/get zwzx() {
    return 46;
  },
  /*typed_data.Int32x4.zwzy*/get zwzy() {
    return 110;
  },
  /*typed_data.Int32x4.zwzz*/get zwzz() {
    return 174;
  },
  /*typed_data.Int32x4.zwzw*/get zwzw() {
    return 238;
  },
  /*typed_data.Int32x4.zwwx*/get zwwx() {
    return 62;
  },
  /*typed_data.Int32x4.zwwy*/get zwwy() {
    return 126;
  },
  /*typed_data.Int32x4.zwwz*/get zwwz() {
    return 190;
  },
  /*typed_data.Int32x4.zwww*/get zwww() {
    return 254;
  },
  /*typed_data.Int32x4.wxxx*/get wxxx() {
    return 3;
  },
  /*typed_data.Int32x4.wxxy*/get wxxy() {
    return 67;
  },
  /*typed_data.Int32x4.wxxz*/get wxxz() {
    return 131;
  },
  /*typed_data.Int32x4.wxxw*/get wxxw() {
    return 195;
  },
  /*typed_data.Int32x4.wxyx*/get wxyx() {
    return 19;
  },
  /*typed_data.Int32x4.wxyy*/get wxyy() {
    return 83;
  },
  /*typed_data.Int32x4.wxyz*/get wxyz() {
    return 147;
  },
  /*typed_data.Int32x4.wxyw*/get wxyw() {
    return 211;
  },
  /*typed_data.Int32x4.wxzx*/get wxzx() {
    return 35;
  },
  /*typed_data.Int32x4.wxzy*/get wxzy() {
    return 99;
  },
  /*typed_data.Int32x4.wxzz*/get wxzz() {
    return 163;
  },
  /*typed_data.Int32x4.wxzw*/get wxzw() {
    return 227;
  },
  /*typed_data.Int32x4.wxwx*/get wxwx() {
    return 51;
  },
  /*typed_data.Int32x4.wxwy*/get wxwy() {
    return 115;
  },
  /*typed_data.Int32x4.wxwz*/get wxwz() {
    return 179;
  },
  /*typed_data.Int32x4.wxww*/get wxww() {
    return 243;
  },
  /*typed_data.Int32x4.wyxx*/get wyxx() {
    return 7;
  },
  /*typed_data.Int32x4.wyxy*/get wyxy() {
    return 71;
  },
  /*typed_data.Int32x4.wyxz*/get wyxz() {
    return 135;
  },
  /*typed_data.Int32x4.wyxw*/get wyxw() {
    return 199;
  },
  /*typed_data.Int32x4.wyyx*/get wyyx() {
    return 23;
  },
  /*typed_data.Int32x4.wyyy*/get wyyy() {
    return 87;
  },
  /*typed_data.Int32x4.wyyz*/get wyyz() {
    return 151;
  },
  /*typed_data.Int32x4.wyyw*/get wyyw() {
    return 215;
  },
  /*typed_data.Int32x4.wyzx*/get wyzx() {
    return 39;
  },
  /*typed_data.Int32x4.wyzy*/get wyzy() {
    return 103;
  },
  /*typed_data.Int32x4.wyzz*/get wyzz() {
    return 167;
  },
  /*typed_data.Int32x4.wyzw*/get wyzw() {
    return 231;
  },
  /*typed_data.Int32x4.wywx*/get wywx() {
    return 55;
  },
  /*typed_data.Int32x4.wywy*/get wywy() {
    return 119;
  },
  /*typed_data.Int32x4.wywz*/get wywz() {
    return 183;
  },
  /*typed_data.Int32x4.wyww*/get wyww() {
    return 247;
  },
  /*typed_data.Int32x4.wzxx*/get wzxx() {
    return 11;
  },
  /*typed_data.Int32x4.wzxy*/get wzxy() {
    return 75;
  },
  /*typed_data.Int32x4.wzxz*/get wzxz() {
    return 139;
  },
  /*typed_data.Int32x4.wzxw*/get wzxw() {
    return 203;
  },
  /*typed_data.Int32x4.wzyx*/get wzyx() {
    return 27;
  },
  /*typed_data.Int32x4.wzyy*/get wzyy() {
    return 91;
  },
  /*typed_data.Int32x4.wzyz*/get wzyz() {
    return 155;
  },
  /*typed_data.Int32x4.wzyw*/get wzyw() {
    return 219;
  },
  /*typed_data.Int32x4.wzzx*/get wzzx() {
    return 43;
  },
  /*typed_data.Int32x4.wzzy*/get wzzy() {
    return 107;
  },
  /*typed_data.Int32x4.wzzz*/get wzzz() {
    return 171;
  },
  /*typed_data.Int32x4.wzzw*/get wzzw() {
    return 235;
  },
  /*typed_data.Int32x4.wzwx*/get wzwx() {
    return 59;
  },
  /*typed_data.Int32x4.wzwy*/get wzwy() {
    return 123;
  },
  /*typed_data.Int32x4.wzwz*/get wzwz() {
    return 187;
  },
  /*typed_data.Int32x4.wzww*/get wzww() {
    return 251;
  },
  /*typed_data.Int32x4.wwxx*/get wwxx() {
    return 15;
  },
  /*typed_data.Int32x4.wwxy*/get wwxy() {
    return 79;
  },
  /*typed_data.Int32x4.wwxz*/get wwxz() {
    return 143;
  },
  /*typed_data.Int32x4.wwxw*/get wwxw() {
    return 207;
  },
  /*typed_data.Int32x4.wwyx*/get wwyx() {
    return 31;
  },
  /*typed_data.Int32x4.wwyy*/get wwyy() {
    return 95;
  },
  /*typed_data.Int32x4.wwyz*/get wwyz() {
    return 159;
  },
  /*typed_data.Int32x4.wwyw*/get wwyw() {
    return 223;
  },
  /*typed_data.Int32x4.wwzx*/get wwzx() {
    return 47;
  },
  /*typed_data.Int32x4.wwzy*/get wwzy() {
    return 111;
  },
  /*typed_data.Int32x4.wwzz*/get wwzz() {
    return 175;
  },
  /*typed_data.Int32x4.wwzw*/get wwzw() {
    return 239;
  },
  /*typed_data.Int32x4.wwwx*/get wwwx() {
    return 63;
  },
  /*typed_data.Int32x4.wwwy*/get wwwy() {
    return 127;
  },
  /*typed_data.Int32x4.wwwz*/get wwwz() {
    return 191;
  },
  /*typed_data.Int32x4.wwww*/get wwww() {
    return 255;
  }
}, true);
const Object_ListMixin$36$ = class Object_ListMixin extends core.Object {};
(Object_ListMixin$36$.new = function() {
}).prototype = Object_ListMixin$36$.prototype;
dart.applyMixin(Object_ListMixin$36$, collection.ListMixin$(typed_data.Int32x4));
const Object_FixedLengthListMixin$36$ = class Object_FixedLengthListMixin extends Object_ListMixin$36$ {};
(Object_FixedLengthListMixin$36$.new = function() {
}).prototype = Object_FixedLengthListMixin$36$.prototype;
dart.applyMixin(Object_FixedLengthListMixin$36$, _internal.FixedLengthListMixin$(typed_data.Int32x4));
_native_typed_data.NativeInt32x4List = class NativeInt32x4List extends Object_FixedLengthListMixin$36$ {
  get runtimeType() {
    return dart.wrapType(typed_data.Int32x4List);
  }
  static fromList(list) {
    if (_native_typed_data.NativeInt32x4List.is(list)) {
      return new _native_typed_data.NativeInt32x4List._externalStorage(_native_typed_data.NativeInt32List.fromList(list[_storage$]));
    } else {
      return new _native_typed_data.NativeInt32x4List._slowFromList(list);
    }
  }
  get buffer() {
    return this[_storage$][$buffer];
  }
  get lengthInBytes() {
    return this[_storage$][$lengthInBytes];
  }
  get offsetInBytes() {
    return this[_storage$][$offsetInBytes];
  }
  get elementSizeInBytes() {
    return 16;
  }
  get length() {
    return (dart.notNull(this[_storage$][$length]) / 4)[$truncate]();
  }
  set length(value) {
    super.length = value;
  }
  _get(index) {
    _native_typed_data._checkValidIndex(index, this, this.length);
    let _x = this[_storage$][$_get](dart.notNull(index) * 4 + 0);
    let _y = this[_storage$][$_get](dart.notNull(index) * 4 + 1);
    let _z = this[_storage$][$_get](dart.notNull(index) * 4 + 2);
    let _w = this[_storage$][$_get](dart.notNull(index) * 4 + 3);
    return new _native_typed_data.NativeInt32x4._truncated(_x, _y, _z, _w);
  }
  _set(index, value$) {
    let value = value$;
    typed_data.Int32x4.as(value);
    _native_typed_data._checkValidIndex(index, this, this.length);
    this[_storage$][$_set](dart.notNull(index) * 4 + 0, value.x);
    this[_storage$][$_set](dart.notNull(index) * 4 + 1, value.y);
    this[_storage$][$_set](dart.notNull(index) * 4 + 2, value.z);
    this[_storage$][$_set](dart.notNull(index) * 4 + 3, value.w);
    return value$;
  }
  sublist(start, end = null) {
    end = _native_typed_data._checkValidRange(start, end, this.length);
    return new _native_typed_data.NativeInt32x4List._externalStorage(this[_storage$][$sublist](dart.notNull(start) * 4, dart.notNull(end) * 4));
  }
};
(_native_typed_data.NativeInt32x4List.new = function(length) {
  this[_storage$] = _native_typed_data.NativeInt32List.new(dart.notNull(length) * 4);
  ;
}).prototype = _native_typed_data.NativeInt32x4List.prototype;
(_native_typed_data.NativeInt32x4List._externalStorage = function(storage) {
  this[_storage$] = storage;
  ;
}).prototype = _native_typed_data.NativeInt32x4List.prototype;
(_native_typed_data.NativeInt32x4List._slowFromList = function(list) {
  this[_storage$] = _native_typed_data.NativeInt32List.new(dart.notNull(list[$length]) * 4);
  for (let i = 0; i < dart.notNull(list[$length]); i = i + 1) {
    let e = list[$_get](i);
    this[_storage$][$_set](i * 4 + 0, e.x);
    this[_storage$][$_set](i * 4 + 1, e.y);
    this[_storage$][$_set](i * 4 + 2, e.z);
    this[_storage$][$_set](i * 4 + 3, e.w);
  }
}).prototype = _native_typed_data.NativeInt32x4List.prototype;
dart.addTypeTests(_native_typed_data.NativeInt32x4List);
dart.addTypeCaches(_native_typed_data.NativeInt32x4List);
_native_typed_data.NativeInt32x4List[dart.implements] = () => [typed_data.Int32x4List];
dart.setMethodSignature(_native_typed_data.NativeInt32x4List, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeInt32x4List.__proto__),
  _get: dart.fnType(typed_data.Int32x4, [core.int]),
  [$_get]: dart.fnType(typed_data.Int32x4, [core.int]),
  _set: dart.fnType(dart.void, [core.int, core.Object]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  sublist: dart.fnType(typed_data.Int32x4List, [core.int], [core.int]),
  [$sublist]: dart.fnType(typed_data.Int32x4List, [core.int], [core.int])
}));
dart.setGetterSignature(_native_typed_data.NativeInt32x4List, () => ({
  __proto__: dart.getGetters(_native_typed_data.NativeInt32x4List.__proto__),
  buffer: typed_data.ByteBuffer,
  [$buffer]: typed_data.ByteBuffer,
  lengthInBytes: core.int,
  [$lengthInBytes]: core.int,
  offsetInBytes: core.int,
  [$offsetInBytes]: core.int,
  elementSizeInBytes: core.int,
  [$elementSizeInBytes]: core.int,
  length: core.int,
  [$length]: core.int
}));
dart.setLibraryUri(_native_typed_data.NativeInt32x4List, L27);
dart.setFieldSignature(_native_typed_data.NativeInt32x4List, () => ({
  __proto__: dart.getFields(_native_typed_data.NativeInt32x4List.__proto__),
  [_storage$]: dart.finalFieldType(typed_data.Int32List)
}));
dart.defineExtensionMethods(_native_typed_data.NativeInt32x4List, ['_get', '_set', 'sublist']);
dart.defineExtensionAccessors(_native_typed_data.NativeInt32x4List, [
  'runtimeType',
  'buffer',
  'lengthInBytes',
  'offsetInBytes',
  'elementSizeInBytes',
  'length'
]);
typed_data.Float64x2 = class Float64x2 extends core.Object {};
(typed_data.Float64x2[dart.mixinNew] = function() {
}).prototype = typed_data.Float64x2.prototype;
dart.addTypeTests(typed_data.Float64x2);
dart.addTypeCaches(typed_data.Float64x2);
dart.setLibraryUri(typed_data.Float64x2, L28);
const Object_ListMixin$36$0 = class Object_ListMixin extends core.Object {};
(Object_ListMixin$36$0.new = function() {
}).prototype = Object_ListMixin$36$0.prototype;
dart.applyMixin(Object_ListMixin$36$0, collection.ListMixin$(typed_data.Float64x2));
const Object_FixedLengthListMixin$36$0 = class Object_FixedLengthListMixin extends Object_ListMixin$36$0 {};
(Object_FixedLengthListMixin$36$0.new = function() {
}).prototype = Object_FixedLengthListMixin$36$0.prototype;
dart.applyMixin(Object_FixedLengthListMixin$36$0, _internal.FixedLengthListMixin$(typed_data.Float64x2));
_native_typed_data.NativeFloat64x2List = class NativeFloat64x2List extends Object_FixedLengthListMixin$36$0 {
  static fromList(list) {
    if (_native_typed_data.NativeFloat64x2List.is(list)) {
      return new _native_typed_data.NativeFloat64x2List._externalStorage(_native_typed_data.NativeFloat64List.fromList(list[_storage$]));
    } else {
      return new _native_typed_data.NativeFloat64x2List._slowFromList(list);
    }
  }
  get runtimeType() {
    return dart.wrapType(typed_data.Float64x2List);
  }
  get buffer() {
    return this[_storage$].buffer;
  }
  get lengthInBytes() {
    return this[_storage$][$lengthInBytes];
  }
  get offsetInBytes() {
    return this[_storage$][$offsetInBytes];
  }
  get elementSizeInBytes() {
    return 16;
  }
  get length() {
    return (dart.notNull(this[_storage$][$length]) / 2)[$truncate]();
  }
  set length(value) {
    super.length = value;
  }
  _get(index) {
    _native_typed_data._checkValidIndex(index, this, this.length);
    let _x = this[_storage$][$_get](dart.notNull(index) * 2 + 0);
    let _y = this[_storage$][$_get](dart.notNull(index) * 2 + 1);
    return new _native_typed_data.NativeFloat64x2.new(_x, _y);
  }
  _set(index, value$) {
    let value = value$;
    typed_data.Float64x2.as(value);
    _native_typed_data._checkValidIndex(index, this, this.length);
    this[_storage$][$_set](dart.notNull(index) * 2 + 0, value.x);
    this[_storage$][$_set](dart.notNull(index) * 2 + 1, value.y);
    return value$;
  }
  sublist(start, end = null) {
    end = _native_typed_data._checkValidRange(start, end, this.length);
    return new _native_typed_data.NativeFloat64x2List._externalStorage(_native_typed_data.NativeFloat64List.as(this[_storage$][$sublist](dart.notNull(start) * 2, dart.notNull(end) * 2)));
  }
};
(_native_typed_data.NativeFloat64x2List.new = function(length) {
  this[_storage$] = _native_typed_data.NativeFloat64List.new(dart.notNull(length) * 2);
  ;
}).prototype = _native_typed_data.NativeFloat64x2List.prototype;
(_native_typed_data.NativeFloat64x2List._externalStorage = function(_storage) {
  this[_storage$] = _storage;
  ;
}).prototype = _native_typed_data.NativeFloat64x2List.prototype;
(_native_typed_data.NativeFloat64x2List._slowFromList = function(list) {
  this[_storage$] = _native_typed_data.NativeFloat64List.new(dart.notNull(list[$length]) * 2);
  for (let i = 0; i < dart.notNull(list[$length]); i = i + 1) {
    let e = list[$_get](i);
    this[_storage$][$_set](i * 2 + 0, e.x);
    this[_storage$][$_set](i * 2 + 1, e.y);
  }
}).prototype = _native_typed_data.NativeFloat64x2List.prototype;
dart.addTypeTests(_native_typed_data.NativeFloat64x2List);
dart.addTypeCaches(_native_typed_data.NativeFloat64x2List);
_native_typed_data.NativeFloat64x2List[dart.implements] = () => [typed_data.Float64x2List];
dart.setMethodSignature(_native_typed_data.NativeFloat64x2List, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeFloat64x2List.__proto__),
  _get: dart.fnType(typed_data.Float64x2, [core.int]),
  [$_get]: dart.fnType(typed_data.Float64x2, [core.int]),
  _set: dart.fnType(dart.void, [core.int, core.Object]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  sublist: dart.fnType(typed_data.Float64x2List, [core.int], [core.int]),
  [$sublist]: dart.fnType(typed_data.Float64x2List, [core.int], [core.int])
}));
dart.setGetterSignature(_native_typed_data.NativeFloat64x2List, () => ({
  __proto__: dart.getGetters(_native_typed_data.NativeFloat64x2List.__proto__),
  buffer: typed_data.ByteBuffer,
  [$buffer]: typed_data.ByteBuffer,
  lengthInBytes: core.int,
  [$lengthInBytes]: core.int,
  offsetInBytes: core.int,
  [$offsetInBytes]: core.int,
  elementSizeInBytes: core.int,
  [$elementSizeInBytes]: core.int,
  length: core.int,
  [$length]: core.int
}));
dart.setLibraryUri(_native_typed_data.NativeFloat64x2List, L27);
dart.setFieldSignature(_native_typed_data.NativeFloat64x2List, () => ({
  __proto__: dart.getFields(_native_typed_data.NativeFloat64x2List.__proto__),
  [_storage$]: dart.finalFieldType(_native_typed_data.NativeFloat64List)
}));
dart.defineExtensionMethods(_native_typed_data.NativeFloat64x2List, ['_get', '_set', 'sublist']);
dart.defineExtensionAccessors(_native_typed_data.NativeFloat64x2List, [
  'runtimeType',
  'buffer',
  'lengthInBytes',
  'offsetInBytes',
  'elementSizeInBytes',
  'length'
]);
var _invalidPosition = dart.privateName(_native_typed_data, "_invalidPosition");
var _checkPosition = dart.privateName(_native_typed_data, "_checkPosition");
_native_typed_data.NativeTypedData = class NativeTypedData extends core.Object {
  get [$buffer]() {
    return this.buffer;
  }
  get [$lengthInBytes]() {
    return this.byteLength;
  }
  get [$offsetInBytes]() {
    return this.byteOffset;
  }
  get [$elementSizeInBytes]() {
    return this.BYTES_PER_ELEMENT;
  }
  [_invalidPosition](position, length, name) {
    if (!core.int.is(position)) {
      dart.throw(new core.ArgumentError.value(position, name, "Invalid list position"));
    } else {
      dart.throw(new core.RangeError.range(position, 0, length, name));
    }
  }
  [_checkPosition](position, length, name) {
    if (position >>> 0 !== position || position > dart.notNull(length)) {
      this[_invalidPosition](position, length, name);
    }
  }
};
(_native_typed_data.NativeTypedData.new = function() {
  ;
}).prototype = _native_typed_data.NativeTypedData.prototype;
dart.addTypeTests(_native_typed_data.NativeTypedData);
dart.addTypeCaches(_native_typed_data.NativeTypedData);
_native_typed_data.NativeTypedData[dart.implements] = () => [typed_data.TypedData];
dart.setMethodSignature(_native_typed_data.NativeTypedData, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeTypedData.__proto__),
  [_invalidPosition]: dart.fnType(dart.void, [core.int, core.int, core.String]),
  [_checkPosition]: dart.fnType(dart.void, [core.int, core.int, core.String])
}));
dart.setGetterSignature(_native_typed_data.NativeTypedData, () => ({
  __proto__: dart.getGetters(_native_typed_data.NativeTypedData.__proto__),
  [$buffer]: typed_data.ByteBuffer,
  [$lengthInBytes]: core.int,
  [$offsetInBytes]: core.int,
  [$elementSizeInBytes]: core.int
}));
dart.setLibraryUri(_native_typed_data.NativeTypedData, L27);
dart.registerExtension("ArrayBufferView", _native_typed_data.NativeTypedData);
var Endian__littleEndian = dart.privateName(typed_data, "Endian._littleEndian");
var C37;
var _getFloat32 = dart.privateName(_native_typed_data, "_getFloat32");
var _getFloat64 = dart.privateName(_native_typed_data, "_getFloat64");
var _getInt16 = dart.privateName(_native_typed_data, "_getInt16");
var _getInt32 = dart.privateName(_native_typed_data, "_getInt32");
var _getUint16 = dart.privateName(_native_typed_data, "_getUint16");
var _getUint32 = dart.privateName(_native_typed_data, "_getUint32");
var _setFloat32 = dart.privateName(_native_typed_data, "_setFloat32");
var _setFloat64 = dart.privateName(_native_typed_data, "_setFloat64");
var _setInt16 = dart.privateName(_native_typed_data, "_setInt16");
var _setInt32 = dart.privateName(_native_typed_data, "_setInt32");
var _setUint16 = dart.privateName(_native_typed_data, "_setUint16");
var _setUint32 = dart.privateName(_native_typed_data, "_setUint32");
_native_typed_data.NativeByteData = class NativeByteData extends _native_typed_data.NativeTypedData {
  static new(length) {
    return _native_typed_data.NativeByteData._create1(_native_typed_data._checkLength(length));
  }
  static view(buffer, offsetInBytes, length) {
    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
    return length == null ? _native_typed_data.NativeByteData._create2(buffer, offsetInBytes) : _native_typed_data.NativeByteData._create3(buffer, offsetInBytes, length);
  }
  get [$runtimeType]() {
    return dart.wrapType(typed_data.ByteData);
  }
  get [$elementSizeInBytes]() {
    return 1;
  }
  [$getFloat32](byteOffset, endian = C37 || CT.C37) {
    return this[_getFloat32](byteOffset, dart.equals(typed_data.Endian.little, endian));
  }
  [_getFloat32](...args) {
    return this.getFloat32.apply(this, args);
  }
  [$getFloat64](byteOffset, endian = C37 || CT.C37) {
    return this[_getFloat64](byteOffset, dart.equals(typed_data.Endian.little, endian));
  }
  [_getFloat64](...args) {
    return this.getFloat64.apply(this, args);
  }
  [$getInt16](byteOffset, endian = C37 || CT.C37) {
    return this[_getInt16](byteOffset, dart.equals(typed_data.Endian.little, endian));
  }
  [_getInt16](...args) {
    return this.getInt16.apply(this, args);
  }
  [$getInt32](byteOffset, endian = C37 || CT.C37) {
    return this[_getInt32](byteOffset, dart.equals(typed_data.Endian.little, endian));
  }
  [_getInt32](...args) {
    return this.getInt32.apply(this, args);
  }
  [$getInt64](byteOffset, endian = C37 || CT.C37) {
    dart.throw(new core.UnsupportedError.new("Int64 accessor not supported by dart2js."));
  }
  [$getInt8](...args) {
    return this.getInt8.apply(this, args);
  }
  [$getUint16](byteOffset, endian = C37 || CT.C37) {
    return this[_getUint16](byteOffset, dart.equals(typed_data.Endian.little, endian));
  }
  [_getUint16](...args) {
    return this.getUint16.apply(this, args);
  }
  [$getUint32](byteOffset, endian = C37 || CT.C37) {
    return this[_getUint32](byteOffset, dart.equals(typed_data.Endian.little, endian));
  }
  [_getUint32](...args) {
    return this.getUint32.apply(this, args);
  }
  [$getUint64](byteOffset, endian = C37 || CT.C37) {
    dart.throw(new core.UnsupportedError.new("Uint64 accessor not supported by dart2js."));
  }
  [$getUint8](...args) {
    return this.getUint8.apply(this, args);
  }
  [$setFloat32](byteOffset, value, endian = C37 || CT.C37) {
    return this[_setFloat32](byteOffset, value, dart.equals(typed_data.Endian.little, endian));
  }
  [_setFloat32](...args) {
    return this.setFloat32.apply(this, args);
  }
  [$setFloat64](byteOffset, value, endian = C37 || CT.C37) {
    return this[_setFloat64](byteOffset, value, dart.equals(typed_data.Endian.little, endian));
  }
  [_setFloat64](...args) {
    return this.setFloat64.apply(this, args);
  }
  [$setInt16](byteOffset, value, endian = C37 || CT.C37) {
    return this[_setInt16](byteOffset, value, dart.equals(typed_data.Endian.little, endian));
  }
  [_setInt16](...args) {
    return this.setInt16.apply(this, args);
  }
  [$setInt32](byteOffset, value, endian = C37 || CT.C37) {
    return this[_setInt32](byteOffset, value, dart.equals(typed_data.Endian.little, endian));
  }
  [_setInt32](...args) {
    return this.setInt32.apply(this, args);
  }
  [$setInt64](byteOffset, value, endian = C37 || CT.C37) {
    dart.throw(new core.UnsupportedError.new("Int64 accessor not supported by dart2js."));
  }
  [$setInt8](...args) {
    return this.setInt8.apply(this, args);
  }
  [$setUint16](byteOffset, value, endian = C37 || CT.C37) {
    return this[_setUint16](byteOffset, value, dart.equals(typed_data.Endian.little, endian));
  }
  [_setUint16](...args) {
    return this.setUint16.apply(this, args);
  }
  [$setUint32](byteOffset, value, endian = C37 || CT.C37) {
    return this[_setUint32](byteOffset, value, dart.equals(typed_data.Endian.little, endian));
  }
  [_setUint32](...args) {
    return this.setUint32.apply(this, args);
  }
  [$setUint64](byteOffset, value, endian = C37 || CT.C37) {
    dart.throw(new core.UnsupportedError.new("Uint64 accessor not supported by dart2js."));
  }
  [$setUint8](...args) {
    return this.setUint8.apply(this, args);
  }
  static _create1(arg) {
    return new DataView(new ArrayBuffer(arg));
  }
  static _create2(arg1, arg2) {
    return new DataView(arg1, arg2);
  }
  static _create3(arg1, arg2, arg3) {
    return new DataView(arg1, arg2, arg3);
  }
};
dart.addTypeTests(_native_typed_data.NativeByteData);
dart.addTypeCaches(_native_typed_data.NativeByteData);
_native_typed_data.NativeByteData[dart.implements] = () => [typed_data.ByteData];
dart.setMethodSignature(_native_typed_data.NativeByteData, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeByteData.__proto__),
  [$getFloat32]: dart.fnType(core.double, [core.int], [typed_data.Endian]),
  [_getFloat32]: dart.fnType(core.double, [core.int], [core.bool]),
  [$getFloat64]: dart.fnType(core.double, [core.int], [typed_data.Endian]),
  [_getFloat64]: dart.fnType(core.double, [core.int], [core.bool]),
  [$getInt16]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
  [_getInt16]: dart.fnType(core.int, [core.int], [core.bool]),
  [$getInt32]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
  [_getInt32]: dart.fnType(core.int, [core.int], [core.bool]),
  [$getInt64]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
  [$getInt8]: dart.fnType(core.int, [core.int]),
  [$getUint16]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
  [_getUint16]: dart.fnType(core.int, [core.int], [core.bool]),
  [$getUint32]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
  [_getUint32]: dart.fnType(core.int, [core.int], [core.bool]),
  [$getUint64]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
  [$getUint8]: dart.fnType(core.int, [core.int]),
  [$setFloat32]: dart.fnType(dart.void, [core.int, core.num], [typed_data.Endian]),
  [_setFloat32]: dart.fnType(dart.void, [core.int, core.num], [core.bool]),
  [$setFloat64]: dart.fnType(dart.void, [core.int, core.num], [typed_data.Endian]),
  [_setFloat64]: dart.fnType(dart.void, [core.int, core.num], [core.bool]),
  [$setInt16]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
  [_setInt16]: dart.fnType(dart.void, [core.int, core.int], [core.bool]),
  [$setInt32]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
  [_setInt32]: dart.fnType(dart.void, [core.int, core.int], [core.bool]),
  [$setInt64]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
  [$setInt8]: dart.fnType(dart.void, [core.int, core.int]),
  [$setUint16]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
  [_setUint16]: dart.fnType(dart.void, [core.int, core.int], [core.bool]),
  [$setUint32]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
  [_setUint32]: dart.fnType(dart.void, [core.int, core.int], [core.bool]),
  [$setUint64]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
  [$setUint8]: dart.fnType(dart.void, [core.int, core.int])
}));
dart.setLibraryUri(_native_typed_data.NativeByteData, L27);
dart.registerExtension("DataView", _native_typed_data.NativeByteData);
var _setRangeFast = dart.privateName(_native_typed_data, "_setRangeFast");
_native_typed_data.NativeTypedArray = class NativeTypedArray extends _native_typed_data.NativeTypedData {
  [_setRangeFast](start, end, source, skipCount) {
    let targetLength = this[$length];
    this[_checkPosition](start, targetLength, "start");
    this[_checkPosition](end, targetLength, "end");
    if (dart.notNull(start) > dart.notNull(end)) dart.throw(new core.RangeError.range(start, 0, end));
    let count = dart.notNull(end) - dart.notNull(start);
    if (dart.notNull(skipCount) < 0) dart.throw(new core.ArgumentError.new(skipCount));
    let sourceLength = source[$length];
    if (dart.notNull(sourceLength) - dart.notNull(skipCount) < count) {
      dart.throw(new core.StateError.new("Not enough elements"));
    }
    if (skipCount !== 0 || sourceLength !== count) {
      source = source.subarray(skipCount, dart.notNull(skipCount) + count);
    }
    this.set(source, start);
  }
};
(_native_typed_data.NativeTypedArray.new = function() {
  ;
}).prototype = _native_typed_data.NativeTypedArray.prototype;
dart.addTypeTests(_native_typed_data.NativeTypedArray);
dart.addTypeCaches(_native_typed_data.NativeTypedArray);
_native_typed_data.NativeTypedArray[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior];
dart.setMethodSignature(_native_typed_data.NativeTypedArray, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeTypedArray.__proto__),
  [_setRangeFast]: dart.fnType(dart.void, [core.int, core.int, _native_typed_data.NativeTypedArray, core.int])
}));
dart.setLibraryUri(_native_typed_data.NativeTypedArray, L27);
core.double = class double extends core.num {
  static is(o) {
    return typeof o == "number";
  }
  static as(o) {
    if (typeof o == "number" || o == null) return o;
    return dart.as(o, core.double);
  }
  static parse(source, onError = null) {
    return _js_helper.Primitives.parseDouble(source, onError);
  }
  static tryParse(source) {
    return _js_helper.Primitives.parseDouble(source, C20 || CT.C20);
  }
};
(core.double.new = function() {
  ;
}).prototype = core.double.prototype;
dart.addTypeCaches(core.double);
dart.setLibraryUri(core.double, L1$);
dart.defineLazy(core.double, {
  /*core.double.nan*/get nan() {
    return 0 / 0;
  },
  /*core.double.infinity*/get infinity() {
    return 1 / 0;
  },
  /*core.double.negativeInfinity*/get negativeInfinity() {
    return -1 / 0;
  },
  /*core.double.minPositive*/get minPositive() {
    return 5e-324;
  },
  /*core.double.maxFinite*/get maxFinite() {
    return 1.7976931348623157e+308;
  }
}, true);
const NativeTypedArray_ListMixin$36 = class NativeTypedArray_ListMixin extends _native_typed_data.NativeTypedArray {};
(NativeTypedArray_ListMixin$36.new = function() {
}).prototype = NativeTypedArray_ListMixin$36.prototype;
dart.applyMixin(NativeTypedArray_ListMixin$36, collection.ListMixin$(core.double));
const NativeTypedArray_FixedLengthListMixin$36 = class NativeTypedArray_FixedLengthListMixin extends NativeTypedArray_ListMixin$36 {};
(NativeTypedArray_FixedLengthListMixin$36.new = function() {
}).prototype = NativeTypedArray_FixedLengthListMixin$36.prototype;
dart.applyMixin(NativeTypedArray_FixedLengthListMixin$36, _internal.FixedLengthListMixin$(core.double));
_native_typed_data.NativeTypedArrayOfDouble = class NativeTypedArrayOfDouble extends NativeTypedArray_FixedLengthListMixin$36 {
  get length() {
    return this.length;
  }
  set length(value) {
    super.length = value;
  }
  _get(index) {
    _native_typed_data._checkValidIndex(index, this, this[$length]);
    return this[index];
  }
  _set(index, value$) {
    let value = value$;
    core.num.as(value);
    _native_typed_data._checkValidIndex(index, this, this[$length]);
    this[index] = value;
    return value$;
  }
  setRange(start, end, iterable, skipCount = 0) {
    IterableOfdoubleL().as(iterable);
    if (_native_typed_data.NativeTypedArrayOfDouble.is(iterable)) {
      this[_setRangeFast](start, end, iterable, skipCount);
      return;
    }
    super[$setRange](start, end, iterable, skipCount);
  }
};
(_native_typed_data.NativeTypedArrayOfDouble.new = function() {
  ;
}).prototype = _native_typed_data.NativeTypedArrayOfDouble.prototype;
dart.addTypeTests(_native_typed_data.NativeTypedArrayOfDouble);
dart.addTypeCaches(_native_typed_data.NativeTypedArrayOfDouble);
dart.setMethodSignature(_native_typed_data.NativeTypedArrayOfDouble, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeTypedArrayOfDouble.__proto__),
  _get: dart.fnType(core.double, [core.int]),
  [$_get]: dart.fnType(core.double, [core.int]),
  _set: dart.fnType(dart.void, [core.int, core.Object]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object])
}));
dart.setGetterSignature(_native_typed_data.NativeTypedArrayOfDouble, () => ({
  __proto__: dart.getGetters(_native_typed_data.NativeTypedArrayOfDouble.__proto__),
  length: core.int,
  [$length]: core.int
}));
dart.setLibraryUri(_native_typed_data.NativeTypedArrayOfDouble, L27);
dart.defineExtensionMethods(_native_typed_data.NativeTypedArrayOfDouble, ['_get', '_set', 'setRange']);
dart.defineExtensionAccessors(_native_typed_data.NativeTypedArrayOfDouble, ['length']);
const NativeTypedArray_ListMixin$36$ = class NativeTypedArray_ListMixin extends _native_typed_data.NativeTypedArray {};
(NativeTypedArray_ListMixin$36$.new = function() {
}).prototype = NativeTypedArray_ListMixin$36$.prototype;
dart.applyMixin(NativeTypedArray_ListMixin$36$, collection.ListMixin$(core.int));
const NativeTypedArray_FixedLengthListMixin$36$ = class NativeTypedArray_FixedLengthListMixin extends NativeTypedArray_ListMixin$36$ {};
(NativeTypedArray_FixedLengthListMixin$36$.new = function() {
}).prototype = NativeTypedArray_FixedLengthListMixin$36$.prototype;
dart.applyMixin(NativeTypedArray_FixedLengthListMixin$36$, _internal.FixedLengthListMixin$(core.int));
_native_typed_data.NativeTypedArrayOfInt = class NativeTypedArrayOfInt extends NativeTypedArray_FixedLengthListMixin$36$ {
  get length() {
    return this.length;
  }
  set length(value) {
    super.length = value;
  }
  _set(index, value$) {
    let value = value$;
    core.int.as(value);
    _native_typed_data._checkValidIndex(index, this, this[$length]);
    this[index] = value;
    return value$;
  }
  setRange(start, end, iterable, skipCount = 0) {
    IterableOfintL().as(iterable);
    if (_native_typed_data.NativeTypedArrayOfInt.is(iterable)) {
      this[_setRangeFast](start, end, iterable, skipCount);
      return;
    }
    super[$setRange](start, end, iterable, skipCount);
  }
};
(_native_typed_data.NativeTypedArrayOfInt.new = function() {
  ;
}).prototype = _native_typed_data.NativeTypedArrayOfInt.prototype;
_native_typed_data.NativeTypedArrayOfInt.prototype[dart.isList] = true;
dart.addTypeTests(_native_typed_data.NativeTypedArrayOfInt);
dart.addTypeCaches(_native_typed_data.NativeTypedArrayOfInt);
_native_typed_data.NativeTypedArrayOfInt[dart.implements] = () => [core.List$(core.int)];
dart.setMethodSignature(_native_typed_data.NativeTypedArrayOfInt, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeTypedArrayOfInt.__proto__),
  _set: dart.fnType(dart.void, [core.int, core.Object]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object])
}));
dart.setGetterSignature(_native_typed_data.NativeTypedArrayOfInt, () => ({
  __proto__: dart.getGetters(_native_typed_data.NativeTypedArrayOfInt.__proto__),
  length: core.int,
  [$length]: core.int
}));
dart.setLibraryUri(_native_typed_data.NativeTypedArrayOfInt, L27);
dart.defineExtensionMethods(_native_typed_data.NativeTypedArrayOfInt, ['_set', 'setRange']);
dart.defineExtensionAccessors(_native_typed_data.NativeTypedArrayOfInt, ['length']);
_native_typed_data.NativeFloat32List = class NativeFloat32List extends _native_typed_data.NativeTypedArrayOfDouble {
  static new(length) {
    return _native_typed_data.NativeFloat32List._create1(_native_typed_data._checkLength(length));
  }
  static fromList(elements) {
    return _native_typed_data.NativeFloat32List._create1(_native_typed_data._ensureNativeList(elements));
  }
  static view(buffer, offsetInBytes, length) {
    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
    return length == null ? _native_typed_data.NativeFloat32List._create2(buffer, offsetInBytes) : _native_typed_data.NativeFloat32List._create3(buffer, offsetInBytes, length);
  }
  get [$runtimeType]() {
    return dart.wrapType(typed_data.Float32List);
  }
  [$sublist](start, end = null) {
    end = _native_typed_data._checkValidRange(start, end, this[$length]);
    let source = this.subarray(start, end);
    return _native_typed_data.NativeFloat32List._create1(source);
  }
  static _create1(arg) {
    return new Float32Array(arg);
  }
  static _create2(arg1, arg2) {
    return new Float32Array(arg1, arg2);
  }
  static _create3(arg1, arg2, arg3) {
    return new Float32Array(arg1, arg2, arg3);
  }
};
dart.addTypeTests(_native_typed_data.NativeFloat32List);
dart.addTypeCaches(_native_typed_data.NativeFloat32List);
_native_typed_data.NativeFloat32List[dart.implements] = () => [typed_data.Float32List];
dart.setMethodSignature(_native_typed_data.NativeFloat32List, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeFloat32List.__proto__),
  [$sublist]: dart.fnType(typed_data.Float32List, [core.int], [core.int])
}));
dart.setLibraryUri(_native_typed_data.NativeFloat32List, L27);
dart.registerExtension("Float32Array", _native_typed_data.NativeFloat32List);
_native_typed_data.NativeFloat64List = class NativeFloat64List extends _native_typed_data.NativeTypedArrayOfDouble {
  static new(length) {
    return _native_typed_data.NativeFloat64List._create1(_native_typed_data._checkLength(length));
  }
  static fromList(elements) {
    return _native_typed_data.NativeFloat64List._create1(_native_typed_data._ensureNativeList(elements));
  }
  static view(buffer, offsetInBytes, length) {
    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
    return length == null ? _native_typed_data.NativeFloat64List._create2(buffer, offsetInBytes) : _native_typed_data.NativeFloat64List._create3(buffer, offsetInBytes, length);
  }
  get [$runtimeType]() {
    return dart.wrapType(typed_data.Float64List);
  }
  [$sublist](start, end = null) {
    end = _native_typed_data._checkValidRange(start, end, this[$length]);
    let source = this.subarray(start, end);
    return _native_typed_data.NativeFloat64List._create1(source);
  }
  static _create1(arg) {
    return new Float64Array(arg);
  }
  static _create2(arg1, arg2) {
    return new Float64Array(arg1, arg2);
  }
  static _create3(arg1, arg2, arg3) {
    return new Float64Array(arg1, arg2, arg3);
  }
};
dart.addTypeTests(_native_typed_data.NativeFloat64List);
dart.addTypeCaches(_native_typed_data.NativeFloat64List);
_native_typed_data.NativeFloat64List[dart.implements] = () => [typed_data.Float64List];
dart.setMethodSignature(_native_typed_data.NativeFloat64List, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeFloat64List.__proto__),
  [$sublist]: dart.fnType(typed_data.Float64List, [core.int], [core.int])
}));
dart.setLibraryUri(_native_typed_data.NativeFloat64List, L27);
dart.registerExtension("Float64Array", _native_typed_data.NativeFloat64List);
_native_typed_data.NativeInt16List = class NativeInt16List extends _native_typed_data.NativeTypedArrayOfInt {
  static new(length) {
    return _native_typed_data.NativeInt16List._create1(_native_typed_data._checkLength(length));
  }
  static fromList(elements) {
    return _native_typed_data.NativeInt16List._create1(_native_typed_data._ensureNativeList(elements));
  }
  static view(buffer, offsetInBytes, length) {
    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
    return length == null ? _native_typed_data.NativeInt16List._create2(buffer, offsetInBytes) : _native_typed_data.NativeInt16List._create3(buffer, offsetInBytes, length);
  }
  get [$runtimeType]() {
    return dart.wrapType(typed_data.Int16List);
  }
  [$_get](index) {
    _native_typed_data._checkValidIndex(index, this, this[$length]);
    return this[index];
  }
  [$sublist](start, end = null) {
    end = _native_typed_data._checkValidRange(start, end, this[$length]);
    let source = this.subarray(start, end);
    return _native_typed_data.NativeInt16List._create1(source);
  }
  static _create1(arg) {
    return new Int16Array(arg);
  }
  static _create2(arg1, arg2) {
    return new Int16Array(arg1, arg2);
  }
  static _create3(arg1, arg2, arg3) {
    return new Int16Array(arg1, arg2, arg3);
  }
};
dart.addTypeTests(_native_typed_data.NativeInt16List);
dart.addTypeCaches(_native_typed_data.NativeInt16List);
_native_typed_data.NativeInt16List[dart.implements] = () => [typed_data.Int16List];
dart.setMethodSignature(_native_typed_data.NativeInt16List, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeInt16List.__proto__),
  [$_get]: dart.fnType(core.int, [core.int]),
  [$sublist]: dart.fnType(typed_data.Int16List, [core.int], [core.int])
}));
dart.setLibraryUri(_native_typed_data.NativeInt16List, L27);
dart.registerExtension("Int16Array", _native_typed_data.NativeInt16List);
_native_typed_data.NativeInt32List = class NativeInt32List extends _native_typed_data.NativeTypedArrayOfInt {
  static new(length) {
    return _native_typed_data.NativeInt32List._create1(_native_typed_data._checkLength(length));
  }
  static fromList(elements) {
    return _native_typed_data.NativeInt32List._create1(_native_typed_data._ensureNativeList(elements));
  }
  static view(buffer, offsetInBytes, length) {
    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
    return length == null ? _native_typed_data.NativeInt32List._create2(buffer, offsetInBytes) : _native_typed_data.NativeInt32List._create3(buffer, offsetInBytes, length);
  }
  get [$runtimeType]() {
    return dart.wrapType(typed_data.Int32List);
  }
  [$_get](index) {
    _native_typed_data._checkValidIndex(index, this, this[$length]);
    return this[index];
  }
  [$sublist](start, end = null) {
    end = _native_typed_data._checkValidRange(start, end, this[$length]);
    let source = this.subarray(start, end);
    return _native_typed_data.NativeInt32List._create1(source);
  }
  static _create1(arg) {
    return new Int32Array(arg);
  }
  static _create2(arg1, arg2) {
    return new Int32Array(arg1, arg2);
  }
  static _create3(arg1, arg2, arg3) {
    return new Int32Array(arg1, arg2, arg3);
  }
};
dart.addTypeTests(_native_typed_data.NativeInt32List);
dart.addTypeCaches(_native_typed_data.NativeInt32List);
_native_typed_data.NativeInt32List[dart.implements] = () => [typed_data.Int32List];
dart.setMethodSignature(_native_typed_data.NativeInt32List, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeInt32List.__proto__),
  [$_get]: dart.fnType(core.int, [core.int]),
  [$sublist]: dart.fnType(typed_data.Int32List, [core.int], [core.int])
}));
dart.setLibraryUri(_native_typed_data.NativeInt32List, L27);
dart.registerExtension("Int32Array", _native_typed_data.NativeInt32List);
_native_typed_data.NativeInt8List = class NativeInt8List extends _native_typed_data.NativeTypedArrayOfInt {
  static new(length) {
    return _native_typed_data.NativeInt8List._create1(_native_typed_data._checkLength(length));
  }
  static fromList(elements) {
    return _native_typed_data.NativeInt8List._create1(_native_typed_data._ensureNativeList(elements));
  }
  static view(buffer, offsetInBytes, length) {
    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
    return _native_typed_data.NativeInt8List.as(length == null ? _native_typed_data.NativeInt8List._create2(buffer, offsetInBytes) : _native_typed_data.NativeInt8List._create3(buffer, offsetInBytes, length));
  }
  get [$runtimeType]() {
    return dart.wrapType(typed_data.Int8List);
  }
  [$_get](index) {
    _native_typed_data._checkValidIndex(index, this, this[$length]);
    return this[index];
  }
  [$sublist](start, end = null) {
    end = _native_typed_data._checkValidRange(start, end, this[$length]);
    let source = this.subarray(start, end);
    return _native_typed_data.NativeInt8List._create1(source);
  }
  static _create1(arg) {
    return new Int8Array(arg);
  }
  static _create2(arg1, arg2) {
    return new Int8Array(arg1, arg2);
  }
  static _create3(arg1, arg2, arg3) {
    return new Int8Array(arg1, arg2, arg3);
  }
};
dart.addTypeTests(_native_typed_data.NativeInt8List);
dart.addTypeCaches(_native_typed_data.NativeInt8List);
_native_typed_data.NativeInt8List[dart.implements] = () => [typed_data.Int8List];
dart.setMethodSignature(_native_typed_data.NativeInt8List, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeInt8List.__proto__),
  [$_get]: dart.fnType(core.int, [core.int]),
  [$sublist]: dart.fnType(typed_data.Int8List, [core.int], [core.int])
}));
dart.setLibraryUri(_native_typed_data.NativeInt8List, L27);
dart.registerExtension("Int8Array", _native_typed_data.NativeInt8List);
_native_typed_data.NativeUint16List = class NativeUint16List extends _native_typed_data.NativeTypedArrayOfInt {
  static new(length) {
    return _native_typed_data.NativeUint16List._create1(_native_typed_data._checkLength(length));
  }
  static fromList(list) {
    return _native_typed_data.NativeUint16List._create1(_native_typed_data._ensureNativeList(list));
  }
  static view(buffer, offsetInBytes, length) {
    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
    return length == null ? _native_typed_data.NativeUint16List._create2(buffer, offsetInBytes) : _native_typed_data.NativeUint16List._create3(buffer, offsetInBytes, length);
  }
  get [$runtimeType]() {
    return dart.wrapType(typed_data.Uint16List);
  }
  [$_get](index) {
    _native_typed_data._checkValidIndex(index, this, this[$length]);
    return this[index];
  }
  [$sublist](start, end = null) {
    end = _native_typed_data._checkValidRange(start, end, this[$length]);
    let source = this.subarray(start, end);
    return _native_typed_data.NativeUint16List._create1(source);
  }
  static _create1(arg) {
    return new Uint16Array(arg);
  }
  static _create2(arg1, arg2) {
    return new Uint16Array(arg1, arg2);
  }
  static _create3(arg1, arg2, arg3) {
    return new Uint16Array(arg1, arg2, arg3);
  }
};
dart.addTypeTests(_native_typed_data.NativeUint16List);
dart.addTypeCaches(_native_typed_data.NativeUint16List);
_native_typed_data.NativeUint16List[dart.implements] = () => [typed_data.Uint16List];
dart.setMethodSignature(_native_typed_data.NativeUint16List, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeUint16List.__proto__),
  [$_get]: dart.fnType(core.int, [core.int]),
  [$sublist]: dart.fnType(typed_data.Uint16List, [core.int], [core.int])
}));
dart.setLibraryUri(_native_typed_data.NativeUint16List, L27);
dart.registerExtension("Uint16Array", _native_typed_data.NativeUint16List);
_native_typed_data.NativeUint32List = class NativeUint32List extends _native_typed_data.NativeTypedArrayOfInt {
  static new(length) {
    return _native_typed_data.NativeUint32List._create1(_native_typed_data._checkLength(length));
  }
  static fromList(elements) {
    return _native_typed_data.NativeUint32List._create1(_native_typed_data._ensureNativeList(elements));
  }
  static view(buffer, offsetInBytes, length) {
    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
    return length == null ? _native_typed_data.NativeUint32List._create2(buffer, offsetInBytes) : _native_typed_data.NativeUint32List._create3(buffer, offsetInBytes, length);
  }
  get [$runtimeType]() {
    return dart.wrapType(typed_data.Uint32List);
  }
  [$_get](index) {
    _native_typed_data._checkValidIndex(index, this, this[$length]);
    return this[index];
  }
  [$sublist](start, end = null) {
    end = _native_typed_data._checkValidRange(start, end, this[$length]);
    let source = this.subarray(start, end);
    return _native_typed_data.NativeUint32List._create1(source);
  }
  static _create1(arg) {
    return new Uint32Array(arg);
  }
  static _create2(arg1, arg2) {
    return new Uint32Array(arg1, arg2);
  }
  static _create3(arg1, arg2, arg3) {
    return new Uint32Array(arg1, arg2, arg3);
  }
};
dart.addTypeTests(_native_typed_data.NativeUint32List);
dart.addTypeCaches(_native_typed_data.NativeUint32List);
_native_typed_data.NativeUint32List[dart.implements] = () => [typed_data.Uint32List];
dart.setMethodSignature(_native_typed_data.NativeUint32List, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeUint32List.__proto__),
  [$_get]: dart.fnType(core.int, [core.int]),
  [$sublist]: dart.fnType(typed_data.Uint32List, [core.int], [core.int])
}));
dart.setLibraryUri(_native_typed_data.NativeUint32List, L27);
dart.registerExtension("Uint32Array", _native_typed_data.NativeUint32List);
_native_typed_data.NativeUint8ClampedList = class NativeUint8ClampedList extends _native_typed_data.NativeTypedArrayOfInt {
  static new(length) {
    return _native_typed_data.NativeUint8ClampedList._create1(_native_typed_data._checkLength(length));
  }
  static fromList(elements) {
    return _native_typed_data.NativeUint8ClampedList._create1(_native_typed_data._ensureNativeList(elements));
  }
  static view(buffer, offsetInBytes, length) {
    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
    return length == null ? _native_typed_data.NativeUint8ClampedList._create2(buffer, offsetInBytes) : _native_typed_data.NativeUint8ClampedList._create3(buffer, offsetInBytes, length);
  }
  get [$runtimeType]() {
    return dart.wrapType(typed_data.Uint8ClampedList);
  }
  get [$length]() {
    return this.length;
  }
  set [$length](value) {
    super[$length] = value;
  }
  [$_get](index) {
    _native_typed_data._checkValidIndex(index, this, this[$length]);
    return this[index];
  }
  [$sublist](start, end = null) {
    end = _native_typed_data._checkValidRange(start, end, this[$length]);
    let source = this.subarray(start, end);
    return _native_typed_data.NativeUint8ClampedList._create1(source);
  }
  static _create1(arg) {
    return new Uint8ClampedArray(arg);
  }
  static _create2(arg1, arg2) {
    return new Uint8ClampedArray(arg1, arg2);
  }
  static _create3(arg1, arg2, arg3) {
    return new Uint8ClampedArray(arg1, arg2, arg3);
  }
};
dart.addTypeTests(_native_typed_data.NativeUint8ClampedList);
dart.addTypeCaches(_native_typed_data.NativeUint8ClampedList);
_native_typed_data.NativeUint8ClampedList[dart.implements] = () => [typed_data.Uint8ClampedList];
dart.setMethodSignature(_native_typed_data.NativeUint8ClampedList, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeUint8ClampedList.__proto__),
  [$_get]: dart.fnType(core.int, [core.int]),
  [$sublist]: dart.fnType(typed_data.Uint8ClampedList, [core.int], [core.int])
}));
dart.setLibraryUri(_native_typed_data.NativeUint8ClampedList, L27);
dart.registerExtension("Uint8ClampedArray", _native_typed_data.NativeUint8ClampedList);
dart.registerExtension("CanvasPixelArray", _native_typed_data.NativeUint8ClampedList);
_native_typed_data.NativeUint8List = class NativeUint8List extends _native_typed_data.NativeTypedArrayOfInt {
  static new(length) {
    return _native_typed_data.NativeUint8List._create1(_native_typed_data._checkLength(length));
  }
  static fromList(elements) {
    return _native_typed_data.NativeUint8List._create1(_native_typed_data._ensureNativeList(elements));
  }
  static view(buffer, offsetInBytes, length) {
    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
    return length == null ? _native_typed_data.NativeUint8List._create2(buffer, offsetInBytes) : _native_typed_data.NativeUint8List._create3(buffer, offsetInBytes, length);
  }
  get [$runtimeType]() {
    return dart.wrapType(typed_data.Uint8List);
  }
  get [$length]() {
    return this.length;
  }
  set [$length](value) {
    super[$length] = value;
  }
  [$_get](index) {
    _native_typed_data._checkValidIndex(index, this, this[$length]);
    return this[index];
  }
  [$sublist](start, end = null) {
    end = _native_typed_data._checkValidRange(start, end, this[$length]);
    let source = this.subarray(start, end);
    return _native_typed_data.NativeUint8List._create1(source);
  }
  static _create1(arg) {
    return new Uint8Array(arg);
  }
  static _create2(arg1, arg2) {
    return new Uint8Array(arg1, arg2);
  }
  static _create3(arg1, arg2, arg3) {
    return new Uint8Array(arg1, arg2, arg3);
  }
};
dart.addTypeTests(_native_typed_data.NativeUint8List);
dart.addTypeCaches(_native_typed_data.NativeUint8List);
_native_typed_data.NativeUint8List[dart.implements] = () => [typed_data.Uint8List];
dart.setMethodSignature(_native_typed_data.NativeUint8List, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeUint8List.__proto__),
  [$_get]: dart.fnType(core.int, [core.int]),
  [$sublist]: dart.fnType(typed_data.Uint8List, [core.int], [core.int])
}));
dart.setLibraryUri(_native_typed_data.NativeUint8List, L27);
dart.registerExtension("Uint8Array", _native_typed_data.NativeUint8List);
var x$ = dart.privateName(_native_typed_data, "NativeFloat32x4.x");
var y$ = dart.privateName(_native_typed_data, "NativeFloat32x4.y");
var z$ = dart.privateName(_native_typed_data, "NativeFloat32x4.z");
var w$ = dart.privateName(_native_typed_data, "NativeFloat32x4.w");
_native_typed_data.NativeFloat32x4 = class NativeFloat32x4 extends core.Object {
  get x() {
    return this[x$];
  }
  set x(value) {
    super.x = value;
  }
  get y() {
    return this[y$];
  }
  set y(value) {
    super.y = value;
  }
  get z() {
    return this[z$];
  }
  set z(value) {
    super.z = value;
  }
  get w() {
    return this[w$];
  }
  set w(value) {
    super.w = value;
  }
  static _truncate(x) {
    _native_typed_data.NativeFloat32x4._list[$_set](0, core.num.as(x));
    return _native_typed_data.NativeFloat32x4._list[$_get](0);
  }
  static fromInt32x4Bits(i) {
    _native_typed_data.NativeFloat32x4._uint32view[$_set](0, i.x);
    _native_typed_data.NativeFloat32x4._uint32view[$_set](1, i.y);
    _native_typed_data.NativeFloat32x4._uint32view[$_set](2, i.z);
    _native_typed_data.NativeFloat32x4._uint32view[$_set](3, i.w);
    return new _native_typed_data.NativeFloat32x4._truncated(_native_typed_data.NativeFloat32x4._list[$_get](0), _native_typed_data.NativeFloat32x4._list[$_get](1), _native_typed_data.NativeFloat32x4._list[$_get](2), _native_typed_data.NativeFloat32x4._list[$_get](3));
  }
  toString() {
    return "[" + dart.str(this.x) + ", " + dart.str(this.y) + ", " + dart.str(this.z) + ", " + dart.str(this.w) + "]";
  }
  ['+'](other) {
    let _x = dart.notNull(this.x) + dart.notNull(other.x);
    let _y = dart.notNull(this.y) + dart.notNull(other.y);
    let _z = dart.notNull(this.z) + dart.notNull(other.z);
    let _w = dart.notNull(this.w) + dart.notNull(other.w);
    return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
  }
  _negate() {
    return new _native_typed_data.NativeFloat32x4._truncated(-dart.notNull(this.x), -dart.notNull(this.y), -dart.notNull(this.z), -dart.notNull(this.w));
  }
  ['-'](other) {
    let _x = dart.notNull(this.x) - dart.notNull(other.x);
    let _y = dart.notNull(this.y) - dart.notNull(other.y);
    let _z = dart.notNull(this.z) - dart.notNull(other.z);
    let _w = dart.notNull(this.w) - dart.notNull(other.w);
    return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
  }
  ['*'](other) {
    let _x = dart.notNull(this.x) * dart.notNull(other.x);
    let _y = dart.notNull(this.y) * dart.notNull(other.y);
    let _z = dart.notNull(this.z) * dart.notNull(other.z);
    let _w = dart.notNull(this.w) * dart.notNull(other.w);
    return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
  }
  ['/'](other) {
    let _x = dart.notNull(this.x) / dart.notNull(other.x);
    let _y = dart.notNull(this.y) / dart.notNull(other.y);
    let _z = dart.notNull(this.z) / dart.notNull(other.z);
    let _w = dart.notNull(this.w) / dart.notNull(other.w);
    return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
  }
  lessThan(other) {
    let _cx = dart.notNull(this.x) < dart.notNull(other.x);
    let _cy = dart.notNull(this.y) < dart.notNull(other.y);
    let _cz = dart.notNull(this.z) < dart.notNull(other.z);
    let _cw = dart.notNull(this.w) < dart.notNull(other.w);
    return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
  }
  lessThanOrEqual(other) {
    let _cx = dart.notNull(this.x) <= dart.notNull(other.x);
    let _cy = dart.notNull(this.y) <= dart.notNull(other.y);
    let _cz = dart.notNull(this.z) <= dart.notNull(other.z);
    let _cw = dart.notNull(this.w) <= dart.notNull(other.w);
    return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
  }
  greaterThan(other) {
    let _cx = dart.notNull(this.x) > dart.notNull(other.x);
    let _cy = dart.notNull(this.y) > dart.notNull(other.y);
    let _cz = dart.notNull(this.z) > dart.notNull(other.z);
    let _cw = dart.notNull(this.w) > dart.notNull(other.w);
    return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
  }
  greaterThanOrEqual(other) {
    let _cx = dart.notNull(this.x) >= dart.notNull(other.x);
    let _cy = dart.notNull(this.y) >= dart.notNull(other.y);
    let _cz = dart.notNull(this.z) >= dart.notNull(other.z);
    let _cw = dart.notNull(this.w) >= dart.notNull(other.w);
    return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
  }
  equal(other) {
    let _cx = this.x == other.x;
    let _cy = this.y == other.y;
    let _cz = this.z == other.z;
    let _cw = this.w == other.w;
    return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
  }
  notEqual(other) {
    let _cx = this.x != other.x;
    let _cy = this.y != other.y;
    let _cz = this.z != other.z;
    let _cw = this.w != other.w;
    return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
  }
  scale(s) {
    let _x = dart.notNull(s) * dart.notNull(this.x);
    let _y = dart.notNull(s) * dart.notNull(this.y);
    let _z = dart.notNull(s) * dart.notNull(this.z);
    let _w = dart.notNull(s) * dart.notNull(this.w);
    return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
  }
  abs() {
    let _x = this.x[$abs]();
    let _y = this.y[$abs]();
    let _z = this.z[$abs]();
    let _w = this.w[$abs]();
    return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
  }
  clamp(lowerLimit, upperLimit) {
    let _lx = lowerLimit.x;
    let _ly = lowerLimit.y;
    let _lz = lowerLimit.z;
    let _lw = lowerLimit.w;
    let _ux = upperLimit.x;
    let _uy = upperLimit.y;
    let _uz = upperLimit.z;
    let _uw = upperLimit.w;
    let _x = this.x;
    let _y = this.y;
    let _z = this.z;
    let _w = this.w;
    _x = dart.notNull(_x) > dart.notNull(_ux) ? _ux : _x;
    _y = dart.notNull(_y) > dart.notNull(_uy) ? _uy : _y;
    _z = dart.notNull(_z) > dart.notNull(_uz) ? _uz : _z;
    _w = dart.notNull(_w) > dart.notNull(_uw) ? _uw : _w;
    _x = dart.notNull(_x) < dart.notNull(_lx) ? _lx : _x;
    _y = dart.notNull(_y) < dart.notNull(_ly) ? _ly : _y;
    _z = dart.notNull(_z) < dart.notNull(_lz) ? _lz : _z;
    _w = dart.notNull(_w) < dart.notNull(_lw) ? _lw : _w;
    return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
  }
  get signMask() {
    let view = _native_typed_data.NativeFloat32x4._uint32view;
    let mx = null;
    let my = null;
    let mz = null;
    let mw = null;
    _native_typed_data.NativeFloat32x4._list[$_set](0, this.x);
    _native_typed_data.NativeFloat32x4._list[$_set](1, this.y);
    _native_typed_data.NativeFloat32x4._list[$_set](2, this.z);
    _native_typed_data.NativeFloat32x4._list[$_set](3, this.w);
    mx = (dart.notNull(view[$_get](0)) & 2147483648) >>> 31;
    my = (dart.notNull(view[$_get](1)) & 2147483648) >>> 30;
    mz = (dart.notNull(view[$_get](2)) & 2147483648) >>> 29;
    mw = (dart.notNull(view[$_get](3)) & 2147483648) >>> 28;
    return core.int.as(dart.dsend(dart.dsend(dart.dsend(mx, '|', [my]), '|', [mz]), '|', [mw]));
  }
  shuffle(mask) {
    if (dart.notNull(mask) < 0 || dart.notNull(mask) > 255) {
      dart.throw(new core.RangeError.range(mask, 0, 255, "mask"));
    }
    _native_typed_data.NativeFloat32x4._list[$_set](0, this.x);
    _native_typed_data.NativeFloat32x4._list[$_set](1, this.y);
    _native_typed_data.NativeFloat32x4._list[$_set](2, this.z);
    _native_typed_data.NativeFloat32x4._list[$_set](3, this.w);
    let _x = _native_typed_data.NativeFloat32x4._list[$_get](dart.notNull(mask) & 3);
    let _y = _native_typed_data.NativeFloat32x4._list[$_get](dart.notNull(mask) >> 2 & 3);
    let _z = _native_typed_data.NativeFloat32x4._list[$_get](dart.notNull(mask) >> 4 & 3);
    let _w = _native_typed_data.NativeFloat32x4._list[$_get](dart.notNull(mask) >> 6 & 3);
    return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
  }
  shuffleMix(other, mask) {
    if (dart.notNull(mask) < 0 || dart.notNull(mask) > 255) {
      dart.throw(new core.RangeError.range(mask, 0, 255, "mask"));
    }
    _native_typed_data.NativeFloat32x4._list[$_set](0, this.x);
    _native_typed_data.NativeFloat32x4._list[$_set](1, this.y);
    _native_typed_data.NativeFloat32x4._list[$_set](2, this.z);
    _native_typed_data.NativeFloat32x4._list[$_set](3, this.w);
    let _x = _native_typed_data.NativeFloat32x4._list[$_get](dart.notNull(mask) & 3);
    let _y = _native_typed_data.NativeFloat32x4._list[$_get](dart.notNull(mask) >> 2 & 3);
    _native_typed_data.NativeFloat32x4._list[$_set](0, other.x);
    _native_typed_data.NativeFloat32x4._list[$_set](1, other.y);
    _native_typed_data.NativeFloat32x4._list[$_set](2, other.z);
    _native_typed_data.NativeFloat32x4._list[$_set](3, other.w);
    let _z = _native_typed_data.NativeFloat32x4._list[$_get](dart.notNull(mask) >> 4 & 3);
    let _w = _native_typed_data.NativeFloat32x4._list[$_get](dart.notNull(mask) >> 6 & 3);
    return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
  }
  withX(newX) {
    return new _native_typed_data.NativeFloat32x4._truncated(core.double.as(_native_typed_data.NativeFloat32x4._truncate(newX)), this.y, this.z, this.w);
  }
  withY(newY) {
    return new _native_typed_data.NativeFloat32x4._truncated(this.x, core.double.as(_native_typed_data.NativeFloat32x4._truncate(newY)), this.z, this.w);
  }
  withZ(newZ) {
    return new _native_typed_data.NativeFloat32x4._truncated(this.x, this.y, core.double.as(_native_typed_data.NativeFloat32x4._truncate(newZ)), this.w);
  }
  withW(newW) {
    return new _native_typed_data.NativeFloat32x4._truncated(this.x, this.y, this.z, core.double.as(_native_typed_data.NativeFloat32x4._truncate(newW)));
  }
  min(other) {
    let _x = dart.notNull(this.x) < dart.notNull(other.x) ? this.x : other.x;
    let _y = dart.notNull(this.y) < dart.notNull(other.y) ? this.y : other.y;
    let _z = dart.notNull(this.z) < dart.notNull(other.z) ? this.z : other.z;
    let _w = dart.notNull(this.w) < dart.notNull(other.w) ? this.w : other.w;
    return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
  }
  max(other) {
    let _x = dart.notNull(this.x) > dart.notNull(other.x) ? this.x : other.x;
    let _y = dart.notNull(this.y) > dart.notNull(other.y) ? this.y : other.y;
    let _z = dart.notNull(this.z) > dart.notNull(other.z) ? this.z : other.z;
    let _w = dart.notNull(this.w) > dart.notNull(other.w) ? this.w : other.w;
    return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
  }
  sqrt() {
    let _x = math.sqrt(this.x);
    let _y = math.sqrt(this.y);
    let _z = math.sqrt(this.z);
    let _w = math.sqrt(this.w);
    return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
  }
  reciprocal() {
    let _x = 1.0 / dart.notNull(this.x);
    let _y = 1.0 / dart.notNull(this.y);
    let _z = 1.0 / dart.notNull(this.z);
    let _w = 1.0 / dart.notNull(this.w);
    return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
  }
  reciprocalSqrt() {
    let _x = math.sqrt(1.0 / dart.notNull(this.x));
    let _y = math.sqrt(1.0 / dart.notNull(this.y));
    let _z = math.sqrt(1.0 / dart.notNull(this.z));
    let _w = math.sqrt(1.0 / dart.notNull(this.w));
    return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
  }
};
(_native_typed_data.NativeFloat32x4.new = function(x, y, z, w) {
  this[x$] = core.double.as(_native_typed_data.NativeFloat32x4._truncate(x));
  this[y$] = core.double.as(_native_typed_data.NativeFloat32x4._truncate(y));
  this[z$] = core.double.as(_native_typed_data.NativeFloat32x4._truncate(z));
  this[w$] = core.double.as(_native_typed_data.NativeFloat32x4._truncate(w));
  if (!(typeof x == 'number')) dart.throw(new core.ArgumentError.new(x));
  if (!(typeof y == 'number')) dart.throw(new core.ArgumentError.new(y));
  if (!(typeof z == 'number')) dart.throw(new core.ArgumentError.new(z));
  if (!(typeof w == 'number')) dart.throw(new core.ArgumentError.new(w));
}).prototype = _native_typed_data.NativeFloat32x4.prototype;
(_native_typed_data.NativeFloat32x4.splat = function(v) {
  _native_typed_data.NativeFloat32x4.new.call(this, v, v, v, v);
}).prototype = _native_typed_data.NativeFloat32x4.prototype;
(_native_typed_data.NativeFloat32x4.zero = function() {
  _native_typed_data.NativeFloat32x4._truncated.call(this, 0.0, 0.0, 0.0, 0.0);
}).prototype = _native_typed_data.NativeFloat32x4.prototype;
(_native_typed_data.NativeFloat32x4.fromFloat64x2 = function(v) {
  _native_typed_data.NativeFloat32x4._truncated.call(this, core.double.as(_native_typed_data.NativeFloat32x4._truncate(v.x)), core.double.as(_native_typed_data.NativeFloat32x4._truncate(v.y)), 0.0, 0.0);
}).prototype = _native_typed_data.NativeFloat32x4.prototype;
(_native_typed_data.NativeFloat32x4._doubles = function(x, y, z, w) {
  this[x$] = core.double.as(_native_typed_data.NativeFloat32x4._truncate(x));
  this[y$] = core.double.as(_native_typed_data.NativeFloat32x4._truncate(y));
  this[z$] = core.double.as(_native_typed_data.NativeFloat32x4._truncate(z));
  this[w$] = core.double.as(_native_typed_data.NativeFloat32x4._truncate(w));
  ;
}).prototype = _native_typed_data.NativeFloat32x4.prototype;
(_native_typed_data.NativeFloat32x4._truncated = function(x, y, z, w) {
  this[x$] = x;
  this[y$] = y;
  this[z$] = z;
  this[w$] = w;
  ;
}).prototype = _native_typed_data.NativeFloat32x4.prototype;
dart.addTypeTests(_native_typed_data.NativeFloat32x4);
dart.addTypeCaches(_native_typed_data.NativeFloat32x4);
_native_typed_data.NativeFloat32x4[dart.implements] = () => [typed_data.Float32x4];
dart.setMethodSignature(_native_typed_data.NativeFloat32x4, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeFloat32x4.__proto__),
  '+': dart.fnType(typed_data.Float32x4, [typed_data.Float32x4]),
  _negate: dart.fnType(typed_data.Float32x4, []),
  '-': dart.fnType(typed_data.Float32x4, [typed_data.Float32x4]),
  '*': dart.fnType(typed_data.Float32x4, [typed_data.Float32x4]),
  '/': dart.fnType(typed_data.Float32x4, [typed_data.Float32x4]),
  lessThan: dart.fnType(typed_data.Int32x4, [typed_data.Float32x4]),
  lessThanOrEqual: dart.fnType(typed_data.Int32x4, [typed_data.Float32x4]),
  greaterThan: dart.fnType(typed_data.Int32x4, [typed_data.Float32x4]),
  greaterThanOrEqual: dart.fnType(typed_data.Int32x4, [typed_data.Float32x4]),
  equal: dart.fnType(typed_data.Int32x4, [typed_data.Float32x4]),
  notEqual: dart.fnType(typed_data.Int32x4, [typed_data.Float32x4]),
  scale: dart.fnType(typed_data.Float32x4, [core.double]),
  abs: dart.fnType(typed_data.Float32x4, []),
  clamp: dart.fnType(typed_data.Float32x4, [typed_data.Float32x4, typed_data.Float32x4]),
  shuffle: dart.fnType(typed_data.Float32x4, [core.int]),
  shuffleMix: dart.fnType(typed_data.Float32x4, [typed_data.Float32x4, core.int]),
  withX: dart.fnType(typed_data.Float32x4, [core.double]),
  withY: dart.fnType(typed_data.Float32x4, [core.double]),
  withZ: dart.fnType(typed_data.Float32x4, [core.double]),
  withW: dart.fnType(typed_data.Float32x4, [core.double]),
  min: dart.fnType(typed_data.Float32x4, [typed_data.Float32x4]),
  max: dart.fnType(typed_data.Float32x4, [typed_data.Float32x4]),
  sqrt: dart.fnType(typed_data.Float32x4, []),
  reciprocal: dart.fnType(typed_data.Float32x4, []),
  reciprocalSqrt: dart.fnType(typed_data.Float32x4, [])
}));
dart.setGetterSignature(_native_typed_data.NativeFloat32x4, () => ({
  __proto__: dart.getGetters(_native_typed_data.NativeFloat32x4.__proto__),
  signMask: core.int
}));
dart.setLibraryUri(_native_typed_data.NativeFloat32x4, L27);
dart.setFieldSignature(_native_typed_data.NativeFloat32x4, () => ({
  __proto__: dart.getFields(_native_typed_data.NativeFloat32x4.__proto__),
  x: dart.finalFieldType(core.double),
  y: dart.finalFieldType(core.double),
  z: dart.finalFieldType(core.double),
  w: dart.finalFieldType(core.double)
}));
dart.defineExtensionMethods(_native_typed_data.NativeFloat32x4, ['toString']);
dart.defineLazy(_native_typed_data.NativeFloat32x4, {
  /*_native_typed_data.NativeFloat32x4._list*/get _list() {
    return _native_typed_data.NativeFloat32List.new(4);
  },
  /*_native_typed_data.NativeFloat32x4._uint32view*/get _uint32view() {
    return _native_typed_data.NativeFloat32x4._list.buffer[$asUint32List]();
  }
}, true);
var x$0 = dart.privateName(_native_typed_data, "NativeInt32x4.x");
var y$0 = dart.privateName(_native_typed_data, "NativeInt32x4.y");
var z$0 = dart.privateName(_native_typed_data, "NativeInt32x4.z");
var w$0 = dart.privateName(_native_typed_data, "NativeInt32x4.w");
_native_typed_data.NativeInt32x4 = class NativeInt32x4 extends core.Object {
  get x() {
    return this[x$0];
  }
  set x(value) {
    super.x = value;
  }
  get y() {
    return this[y$0];
  }
  set y(value) {
    super.y = value;
  }
  get z() {
    return this[z$0];
  }
  set z(value) {
    super.z = value;
  }
  get w() {
    return this[w$0];
  }
  set w(value) {
    super.w = value;
  }
  static _truncate(x) {
    _native_typed_data.NativeInt32x4._list[$_set](0, core.int.as(x));
    return _native_typed_data.NativeInt32x4._list[$_get](0);
  }
  static fromFloat32x4Bits(f) {
    let floatList = _native_typed_data.NativeFloat32x4._list;
    floatList[$_set](0, f.x);
    floatList[$_set](1, f.y);
    floatList[$_set](2, f.z);
    floatList[$_set](3, f.w);
    let view = _native_typed_data.NativeInt32List.as(floatList.buffer[$asInt32List]());
    return new _native_typed_data.NativeInt32x4._truncated(view[$_get](0), view[$_get](1), view[$_get](2), view[$_get](3));
  }
  toString() {
    return "[" + dart.str(this.x) + ", " + dart.str(this.y) + ", " + dart.str(this.z) + ", " + dart.str(this.w) + "]";
  }
  ['|'](other) {
    return new _native_typed_data.NativeInt32x4._truncated(this.x | other.x, this.y | other.y, this.z | other.z, this.w | other.w);
  }
  ['&'](other) {
    return new _native_typed_data.NativeInt32x4._truncated(this.x & other.x, this.y & other.y, this.z & other.z, this.w & other.w);
  }
  ['^'](other) {
    return new _native_typed_data.NativeInt32x4._truncated(this.x ^ other.x, this.y ^ other.y, this.z ^ other.z, this.w ^ other.w);
  }
  ['+'](other) {
    return new _native_typed_data.NativeInt32x4._truncated(this.x + other.x | 0, this.y + other.y | 0, this.z + other.z | 0, this.w + other.w | 0);
  }
  ['-'](other) {
    return new _native_typed_data.NativeInt32x4._truncated(this.x - other.x | 0, this.y - other.y | 0, this.z - other.z | 0, this.w - other.w | 0);
  }
  _negate() {
    return new _native_typed_data.NativeInt32x4._truncated(-this.x | 0, -this.y | 0, -this.z | 0, -this.w | 0);
  }
  get signMask() {
    let mx = (dart.notNull(this.x) & 2147483648) >>> 31;
    let my = (dart.notNull(this.y) & 2147483648) >>> 31;
    let mz = (dart.notNull(this.z) & 2147483648) >>> 31;
    let mw = (dart.notNull(this.w) & 2147483648) >>> 31;
    return (mx | my << 1 >>> 0 | mz << 2 >>> 0 | mw << 3 >>> 0) >>> 0;
  }
  shuffle(mask) {
    if (dart.notNull(mask) < 0 || dart.notNull(mask) > 255) {
      dart.throw(new core.RangeError.range(mask, 0, 255, "mask"));
    }
    _native_typed_data.NativeInt32x4._list[$_set](0, this.x);
    _native_typed_data.NativeInt32x4._list[$_set](1, this.y);
    _native_typed_data.NativeInt32x4._list[$_set](2, this.z);
    _native_typed_data.NativeInt32x4._list[$_set](3, this.w);
    let _x = _native_typed_data.NativeInt32x4._list[$_get](dart.notNull(mask) & 3);
    let _y = _native_typed_data.NativeInt32x4._list[$_get](dart.notNull(mask) >> 2 & 3);
    let _z = _native_typed_data.NativeInt32x4._list[$_get](dart.notNull(mask) >> 4 & 3);
    let _w = _native_typed_data.NativeInt32x4._list[$_get](dart.notNull(mask) >> 6 & 3);
    return new _native_typed_data.NativeInt32x4._truncated(_x, _y, _z, _w);
  }
  shuffleMix(other, mask) {
    if (dart.notNull(mask) < 0 || dart.notNull(mask) > 255) {
      dart.throw(new core.RangeError.range(mask, 0, 255, "mask"));
    }
    _native_typed_data.NativeInt32x4._list[$_set](0, this.x);
    _native_typed_data.NativeInt32x4._list[$_set](1, this.y);
    _native_typed_data.NativeInt32x4._list[$_set](2, this.z);
    _native_typed_data.NativeInt32x4._list[$_set](3, this.w);
    let _x = _native_typed_data.NativeInt32x4._list[$_get](dart.notNull(mask) & 3);
    let _y = _native_typed_data.NativeInt32x4._list[$_get](dart.notNull(mask) >> 2 & 3);
    _native_typed_data.NativeInt32x4._list[$_set](0, other.x);
    _native_typed_data.NativeInt32x4._list[$_set](1, other.y);
    _native_typed_data.NativeInt32x4._list[$_set](2, other.z);
    _native_typed_data.NativeInt32x4._list[$_set](3, other.w);
    let _z = _native_typed_data.NativeInt32x4._list[$_get](dart.notNull(mask) >> 4 & 3);
    let _w = _native_typed_data.NativeInt32x4._list[$_get](dart.notNull(mask) >> 6 & 3);
    return new _native_typed_data.NativeInt32x4._truncated(_x, _y, _z, _w);
  }
  withX(x) {
    let _x = core.int.as(_native_typed_data.NativeInt32x4._truncate(x));
    return new _native_typed_data.NativeInt32x4._truncated(_x, this.y, this.z, this.w);
  }
  withY(y) {
    let _y = core.int.as(_native_typed_data.NativeInt32x4._truncate(y));
    return new _native_typed_data.NativeInt32x4._truncated(this.x, _y, this.z, this.w);
  }
  withZ(z) {
    let _z = core.int.as(_native_typed_data.NativeInt32x4._truncate(z));
    return new _native_typed_data.NativeInt32x4._truncated(this.x, this.y, _z, this.w);
  }
  withW(w) {
    let _w = core.int.as(_native_typed_data.NativeInt32x4._truncate(w));
    return new _native_typed_data.NativeInt32x4._truncated(this.x, this.y, this.z, _w);
  }
  get flagX() {
    return this.x !== 0;
  }
  get flagY() {
    return this.y !== 0;
  }
  get flagZ() {
    return this.z !== 0;
  }
  get flagW() {
    return this.w !== 0;
  }
  withFlagX(flagX) {
    let _x = dart.test(flagX) ? -1 : 0;
    return new _native_typed_data.NativeInt32x4._truncated(_x, this.y, this.z, this.w);
  }
  withFlagY(flagY) {
    let _y = dart.test(flagY) ? -1 : 0;
    return new _native_typed_data.NativeInt32x4._truncated(this.x, _y, this.z, this.w);
  }
  withFlagZ(flagZ) {
    let _z = dart.test(flagZ) ? -1 : 0;
    return new _native_typed_data.NativeInt32x4._truncated(this.x, this.y, _z, this.w);
  }
  withFlagW(flagW) {
    let _w = dart.test(flagW) ? -1 : 0;
    return new _native_typed_data.NativeInt32x4._truncated(this.x, this.y, this.z, _w);
  }
  select(trueValue, falseValue) {
    let floatList = _native_typed_data.NativeFloat32x4._list;
    let intView = _native_typed_data.NativeFloat32x4._uint32view;
    floatList[$_set](0, trueValue.x);
    floatList[$_set](1, trueValue.y);
    floatList[$_set](2, trueValue.z);
    floatList[$_set](3, trueValue.w);
    let stx = intView[$_get](0);
    let sty = intView[$_get](1);
    let stz = intView[$_get](2);
    let stw = intView[$_get](3);
    floatList[$_set](0, falseValue.x);
    floatList[$_set](1, falseValue.y);
    floatList[$_set](2, falseValue.z);
    floatList[$_set](3, falseValue.w);
    let sfx = intView[$_get](0);
    let sfy = intView[$_get](1);
    let sfz = intView[$_get](2);
    let sfw = intView[$_get](3);
    let _x = (dart.notNull(this.x) & dart.notNull(stx) | (~dart.notNull(this.x) & dart.notNull(sfx)) >>> 0) >>> 0;
    let _y = (dart.notNull(this.y) & dart.notNull(sty) | (~dart.notNull(this.y) & dart.notNull(sfy)) >>> 0) >>> 0;
    let _z = (dart.notNull(this.z) & dart.notNull(stz) | (~dart.notNull(this.z) & dart.notNull(sfz)) >>> 0) >>> 0;
    let _w = (dart.notNull(this.w) & dart.notNull(stw) | (~dart.notNull(this.w) & dart.notNull(sfw)) >>> 0) >>> 0;
    intView[$_set](0, _x);
    intView[$_set](1, _y);
    intView[$_set](2, _z);
    intView[$_set](3, _w);
    return new _native_typed_data.NativeFloat32x4._truncated(floatList[$_get](0), floatList[$_get](1), floatList[$_get](2), floatList[$_get](3));
  }
};
(_native_typed_data.NativeInt32x4.new = function(x, y, z, w) {
  this[x$0] = core.int.as(_native_typed_data.NativeInt32x4._truncate(x));
  this[y$0] = core.int.as(_native_typed_data.NativeInt32x4._truncate(y));
  this[z$0] = core.int.as(_native_typed_data.NativeInt32x4._truncate(z));
  this[w$0] = core.int.as(_native_typed_data.NativeInt32x4._truncate(w));
  if (x != this.x && !core.int.is(x)) dart.throw(new core.ArgumentError.new(x));
  if (y != this.y && !core.int.is(y)) dart.throw(new core.ArgumentError.new(y));
  if (z != this.z && !core.int.is(z)) dart.throw(new core.ArgumentError.new(z));
  if (w != this.w && !core.int.is(w)) dart.throw(new core.ArgumentError.new(w));
}).prototype = _native_typed_data.NativeInt32x4.prototype;
(_native_typed_data.NativeInt32x4.bool = function(x, y, z, w) {
  this[x$0] = dart.test(x) ? -1 : 0;
  this[y$0] = dart.test(y) ? -1 : 0;
  this[z$0] = dart.test(z) ? -1 : 0;
  this[w$0] = dart.test(w) ? -1 : 0;
  ;
}).prototype = _native_typed_data.NativeInt32x4.prototype;
(_native_typed_data.NativeInt32x4._truncated = function(x, y, z, w) {
  this[x$0] = x;
  this[y$0] = y;
  this[z$0] = z;
  this[w$0] = w;
  ;
}).prototype = _native_typed_data.NativeInt32x4.prototype;
dart.addTypeTests(_native_typed_data.NativeInt32x4);
dart.addTypeCaches(_native_typed_data.NativeInt32x4);
_native_typed_data.NativeInt32x4[dart.implements] = () => [typed_data.Int32x4];
dart.setMethodSignature(_native_typed_data.NativeInt32x4, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeInt32x4.__proto__),
  '|': dart.fnType(typed_data.Int32x4, [typed_data.Int32x4]),
  '&': dart.fnType(typed_data.Int32x4, [typed_data.Int32x4]),
  '^': dart.fnType(typed_data.Int32x4, [typed_data.Int32x4]),
  '+': dart.fnType(typed_data.Int32x4, [typed_data.Int32x4]),
  '-': dart.fnType(typed_data.Int32x4, [typed_data.Int32x4]),
  _negate: dart.fnType(typed_data.Int32x4, []),
  shuffle: dart.fnType(typed_data.Int32x4, [core.int]),
  shuffleMix: dart.fnType(typed_data.Int32x4, [typed_data.Int32x4, core.int]),
  withX: dart.fnType(typed_data.Int32x4, [core.int]),
  withY: dart.fnType(typed_data.Int32x4, [core.int]),
  withZ: dart.fnType(typed_data.Int32x4, [core.int]),
  withW: dart.fnType(typed_data.Int32x4, [core.int]),
  withFlagX: dart.fnType(typed_data.Int32x4, [core.bool]),
  withFlagY: dart.fnType(typed_data.Int32x4, [core.bool]),
  withFlagZ: dart.fnType(typed_data.Int32x4, [core.bool]),
  withFlagW: dart.fnType(typed_data.Int32x4, [core.bool]),
  select: dart.fnType(typed_data.Float32x4, [typed_data.Float32x4, typed_data.Float32x4])
}));
dart.setGetterSignature(_native_typed_data.NativeInt32x4, () => ({
  __proto__: dart.getGetters(_native_typed_data.NativeInt32x4.__proto__),
  signMask: core.int,
  flagX: core.bool,
  flagY: core.bool,
  flagZ: core.bool,
  flagW: core.bool
}));
dart.setLibraryUri(_native_typed_data.NativeInt32x4, L27);
dart.setFieldSignature(_native_typed_data.NativeInt32x4, () => ({
  __proto__: dart.getFields(_native_typed_data.NativeInt32x4.__proto__),
  x: dart.finalFieldType(core.int),
  y: dart.finalFieldType(core.int),
  z: dart.finalFieldType(core.int),
  w: dart.finalFieldType(core.int)
}));
dart.defineExtensionMethods(_native_typed_data.NativeInt32x4, ['toString']);
dart.defineLazy(_native_typed_data.NativeInt32x4, {
  /*_native_typed_data.NativeInt32x4._list*/get _list() {
    return _native_typed_data.NativeInt32List.new(4);
  }
}, true);
var x$1 = dart.privateName(_native_typed_data, "NativeFloat64x2.x");
var y$1 = dart.privateName(_native_typed_data, "NativeFloat64x2.y");
_native_typed_data.NativeFloat64x2 = class NativeFloat64x2 extends core.Object {
  get x() {
    return this[x$1];
  }
  set x(value) {
    super.x = value;
  }
  get y() {
    return this[y$1];
  }
  set y(value) {
    super.y = value;
  }
  toString() {
    return "[" + dart.str(this.x) + ", " + dart.str(this.y) + "]";
  }
  ['+'](other) {
    return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) + dart.notNull(other.x), dart.notNull(this.y) + dart.notNull(other.y));
  }
  _negate() {
    return new _native_typed_data.NativeFloat64x2._doubles(-dart.notNull(this.x), -dart.notNull(this.y));
  }
  ['-'](other) {
    return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) - dart.notNull(other.x), dart.notNull(this.y) - dart.notNull(other.y));
  }
  ['*'](other) {
    return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) * dart.notNull(other.x), dart.notNull(this.y) * dart.notNull(other.y));
  }
  ['/'](other) {
    return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) / dart.notNull(other.x), dart.notNull(this.y) / dart.notNull(other.y));
  }
  scale(s) {
    return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) * dart.notNull(s), dart.notNull(this.y) * dart.notNull(s));
  }
  abs() {
    return new _native_typed_data.NativeFloat64x2._doubles(this.x[$abs](), this.y[$abs]());
  }
  clamp(lowerLimit, upperLimit) {
    let _lx = lowerLimit.x;
    let _ly = lowerLimit.y;
    let _ux = upperLimit.x;
    let _uy = upperLimit.y;
    let _x = this.x;
    let _y = this.y;
    _x = dart.notNull(_x) > dart.notNull(_ux) ? _ux : _x;
    _y = dart.notNull(_y) > dart.notNull(_uy) ? _uy : _y;
    _x = dart.notNull(_x) < dart.notNull(_lx) ? _lx : _x;
    _y = dart.notNull(_y) < dart.notNull(_ly) ? _ly : _y;
    return new _native_typed_data.NativeFloat64x2._doubles(_x, _y);
  }
  get signMask() {
    let view = _native_typed_data.NativeFloat64x2._uint32View;
    _native_typed_data.NativeFloat64x2._list[$_set](0, this.x);
    _native_typed_data.NativeFloat64x2._list[$_set](1, this.y);
    let mx = (dart.notNull(view[$_get](1)) & 2147483648) >>> 31;
    let my = (dart.notNull(view[$_get](3)) & 2147483648) >>> 31;
    return (mx | my << 1 >>> 0) >>> 0;
  }
  withX(x) {
    if (!(typeof x == 'number')) dart.throw(new core.ArgumentError.new(x));
    return new _native_typed_data.NativeFloat64x2._doubles(x, this.y);
  }
  withY(y) {
    if (!(typeof y == 'number')) dart.throw(new core.ArgumentError.new(y));
    return new _native_typed_data.NativeFloat64x2._doubles(this.x, y);
  }
  min(other) {
    return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) < dart.notNull(other.x) ? this.x : other.x, dart.notNull(this.y) < dart.notNull(other.y) ? this.y : other.y);
  }
  max(other) {
    return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) > dart.notNull(other.x) ? this.x : other.x, dart.notNull(this.y) > dart.notNull(other.y) ? this.y : other.y);
  }
  sqrt() {
    return new _native_typed_data.NativeFloat64x2._doubles(math.sqrt(this.x), math.sqrt(this.y));
  }
};
(_native_typed_data.NativeFloat64x2.new = function(x, y) {
  this[x$1] = x;
  this[y$1] = y;
  if (!(typeof this.x == 'number')) dart.throw(new core.ArgumentError.new(this.x));
  if (!(typeof this.y == 'number')) dart.throw(new core.ArgumentError.new(this.y));
}).prototype = _native_typed_data.NativeFloat64x2.prototype;
(_native_typed_data.NativeFloat64x2.splat = function(v) {
  _native_typed_data.NativeFloat64x2.new.call(this, v, v);
}).prototype = _native_typed_data.NativeFloat64x2.prototype;
(_native_typed_data.NativeFloat64x2.zero = function() {
  _native_typed_data.NativeFloat64x2.splat.call(this, 0.0);
}).prototype = _native_typed_data.NativeFloat64x2.prototype;
(_native_typed_data.NativeFloat64x2.fromFloat32x4 = function(v) {
  _native_typed_data.NativeFloat64x2.new.call(this, v.x, v.y);
}).prototype = _native_typed_data.NativeFloat64x2.prototype;
(_native_typed_data.NativeFloat64x2._doubles = function(x, y) {
  this[x$1] = x;
  this[y$1] = y;
  ;
}).prototype = _native_typed_data.NativeFloat64x2.prototype;
dart.addTypeTests(_native_typed_data.NativeFloat64x2);
dart.addTypeCaches(_native_typed_data.NativeFloat64x2);
_native_typed_data.NativeFloat64x2[dart.implements] = () => [typed_data.Float64x2];
dart.setMethodSignature(_native_typed_data.NativeFloat64x2, () => ({
  __proto__: dart.getMethods(_native_typed_data.NativeFloat64x2.__proto__),
  '+': dart.fnType(typed_data.Float64x2, [typed_data.Float64x2]),
  _negate: dart.fnType(typed_data.Float64x2, []),
  '-': dart.fnType(typed_data.Float64x2, [typed_data.Float64x2]),
  '*': dart.fnType(typed_data.Float64x2, [typed_data.Float64x2]),
  '/': dart.fnType(typed_data.Float64x2, [typed_data.Float64x2]),
  scale: dart.fnType(typed_data.Float64x2, [core.double]),
  abs: dart.fnType(typed_data.Float64x2, []),
  clamp: dart.fnType(typed_data.Float64x2, [typed_data.Float64x2, typed_data.Float64x2]),
  withX: dart.fnType(typed_data.Float64x2, [core.double]),
  withY: dart.fnType(typed_data.Float64x2, [core.double]),
  min: dart.fnType(typed_data.Float64x2, [typed_data.Float64x2]),
  max: dart.fnType(typed_data.Float64x2, [typed_data.Float64x2]),
  sqrt: dart.fnType(typed_data.Float64x2, [])
}));
dart.setGetterSignature(_native_typed_data.NativeFloat64x2, () => ({
  __proto__: dart.getGetters(_native_typed_data.NativeFloat64x2.__proto__),
  signMask: core.int
}));
dart.setLibraryUri(_native_typed_data.NativeFloat64x2, L27);
dart.setFieldSignature(_native_typed_data.NativeFloat64x2, () => ({
  __proto__: dart.getFields(_native_typed_data.NativeFloat64x2.__proto__),
  x: dart.finalFieldType(core.double),
  y: dart.finalFieldType(core.double)
}));
dart.defineExtensionMethods(_native_typed_data.NativeFloat64x2, ['toString']);
dart.defineLazy(_native_typed_data.NativeFloat64x2, {
  /*_native_typed_data.NativeFloat64x2._list*/get _list() {
    return _native_typed_data.NativeFloat64List.new(2);
  },
  set _list(_) {},
  /*_native_typed_data.NativeFloat64x2._uint32View*/get _uint32View() {
    return _native_typed_data.NativeUint32List.as(_native_typed_data.NativeFloat64x2._list.buffer[$asUint32List]());
  },
  set _uint32View(_) {}
}, true);
_native_typed_data._checkLength = function _checkLength(length) {
  if (!core.int.is(length)) dart.throw(new core.ArgumentError.new("Invalid length " + dart.str(length)));
  return core.int.as(length);
};
_native_typed_data._checkViewArguments = function _checkViewArguments(buffer, offsetInBytes, length) {
  if (!_native_typed_data.NativeByteBuffer.is(buffer)) {
    dart.throw(new core.ArgumentError.new("Invalid view buffer"));
  }
  if (!core.int.is(offsetInBytes)) {
    dart.throw(new core.ArgumentError.new("Invalid view offsetInBytes " + dart.str(offsetInBytes)));
  }
  if (length != null && !core.int.is(length)) {
    dart.throw(new core.ArgumentError.new("Invalid view length " + dart.str(length)));
  }
};
_native_typed_data._ensureNativeList = function _ensureNativeList(list) {
  if (_interceptors.JSIndexable.is(list)) return list;
  let result = core.List.new(list[$length]);
  for (let i = 0; i < dart.notNull(list[$length]); i = i + 1) {
    result[$_set](i, list[$_get](i));
  }
  return result;
};
_native_typed_data._isInvalidArrayIndex = function _isInvalidArrayIndex(index) {
  return index >>> 0 !== index;
};
_native_typed_data._checkValidIndex = function _checkValidIndex(index, list, length) {
  if (dart.test(_native_typed_data._isInvalidArrayIndex(index)) || index >= dart.notNull(length)) {
    dart.throw(_js_helper.diagnoseIndexError(list, index));
  }
};
_native_typed_data._checkValidRange = function _checkValidRange(start, end, length) {
  if (dart.test(_native_typed_data._isInvalidArrayIndex(start)) || (end == null ? dart.notNull(start) > dart.notNull(length) : dart.test(_native_typed_data._isInvalidArrayIndex(end)) || dart.notNull(start) > dart.notNull(end) || dart.notNull(end) > dart.notNull(length))) {
    dart.throw(_js_helper.diagnoseRangeError(start, end, length));
  }
  if (end == null) return length;
  return end;
};
var _handleErrorCallback = dart.privateName(async, "_handleErrorCallback");
var _runBodyCallback = dart.privateName(async, "_runBodyCallback");
var _thenAwait = dart.privateName(async, "_thenAwait");
var _fatal = dart.privateName(async, "_fatal");
const _is__AsyncStarImpl_default = Symbol('_is__AsyncStarImpl_default');
var controller = dart.privateName(async, "_AsyncStarImpl.controller");
async._AsyncStarImpl$ = dart.generic(T => {
  var StreamControllerOfTL = () => (StreamControllerOfTL = dart.constFn(async.StreamController$(T)))();
  var StreamOfTL = () => (StreamOfTL = dart.constFn(async.Stream$(T)))();
  class _AsyncStarImpl extends core.Object {
    get controller() {
      return this[controller];
    }
    set controller(value) {
      this[controller] = StreamControllerOfTL().as(value);
    }
    get stream() {
      return this.controller.stream;
    }
    get handleError() {
      if (this[_handleErrorCallback] == null) {
        this[_handleErrorCallback] = dart.fn((error, stackTrace) => {
          try {
            this.jsIterator.throw(dart.createErrorWithStack(error, stackTrace));
          } catch (e$) {
            let e = dart.getThrown(e$);
            let newStack = dart.stackTrace(e$);
            this.addError(e, newStack);
          }
        }, ObjectLAndStackTraceLToNullN());
        let zone = async.Zone.current;
        if (zone != async.Zone.root) {
          this[_handleErrorCallback] = zone.bindBinaryCallback(core.Null, core.Object, core.StackTrace, this[_handleErrorCallback]);
        }
      }
      return this[_handleErrorCallback];
    }
    scheduleGenerator() {
      if (this.isScheduled || dart.test(this.controller.isPaused) || this.isSuspendedAtYieldStar || this.isSuspendedAtAwait) {
        return;
      }
      this.isScheduled = true;
      let zone = async.Zone.current;
      if (this[_runBodyCallback] == null) {
        this[_runBodyCallback] = this.runBody.bind(this);
        if (zone != async.Zone.root) {
          let registered = zone.registerUnaryCallback(dart.void, core.Object, this[_runBodyCallback]);
          this[_runBodyCallback] = dart.fn((arg = null) => zone.runUnaryGuarded(core.Object, registered, arg), ObjectLTovoid());
        }
      }
      zone.scheduleMicrotask(this[_runBodyCallback]);
    }
    runBody(awaitValue) {
      this.isScheduled = false;
      this.isSuspendedAtYield = false;
      this.isSuspendedAtAwait = false;
      let iterResult = null;
      try {
        iterResult = this.jsIterator.next(awaitValue);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        this.addError(e, s);
        return null;
      }
      if (iterResult.done) {
        this.close();
        return null;
      }
      if (this.isSuspendedAtYield || this.isSuspendedAtYieldStar) return null;
      this.isSuspendedAtAwait = true;
      let value = iterResult.value;
      let f = null;
      if (async._Future.is(value)) {
        f = value;
      } else if (async.Future.is(value)) {
        f = new async._Future.new();
        async._Future._chainForeignFuture(value, f);
      } else {
        f = new async._Future.value(value);
      }
      f[_thenAwait](dart.void, this[_runBodyCallback], this.handleError);
    }
    add(event) {
      T.as(event);
      if (!this.onListenReceived) this[_fatal]("yield before stream is listened to");
      if (this.isSuspendedAtYield) this[_fatal]("unexpected yield");
      if (!dart.test(this.controller.hasListener)) {
        return true;
      }
      this.controller.add(event);
      this.scheduleGenerator();
      this.isSuspendedAtYield = true;
      return false;
    }
    addStream(stream) {
      StreamOfTL().as(stream);
      if (!this.onListenReceived) this[_fatal]("yield* before stream is listened to");
      if (!dart.test(this.controller.hasListener)) return true;
      this.isSuspendedAtYieldStar = true;
      let whenDoneAdding = this.controller.addStream(stream, {cancelOnError: false});
      whenDoneAdding.then(core.Null, dart.fn(_ => {
        this.isSuspendedAtYieldStar = false;
        this.scheduleGenerator();
        if (!this.isScheduled) this.isSuspendedAtYield = true;
      }, dynamicToNullN()), {onError: this.handleError});
      return false;
    }
    addError(error, stackTrace) {
      core.ArgumentError.checkNotNull(core.Object, error, "error");
      if (this.cancellationCompleter != null && !dart.test(this.cancellationCompleter.isCompleted)) {
        this.cancellationCompleter.completeError(error, stackTrace);
      } else if (dart.test(this.controller.hasListener)) {
        this.controller.addError(error, stackTrace);
      }
      this.close();
    }
    close() {
      if (this.cancellationCompleter != null && !dart.test(this.cancellationCompleter.isCompleted)) {
        this.cancellationCompleter.complete();
      }
      this.controller.close();
    }
    onListen() {
      if (!!this.onListenReceived) dart.assertFailed(null, L29, 447, 12, "!onListenReceived");
      this.onListenReceived = true;
      this.scheduleGenerator();
    }
    onResume() {
      if (this.isSuspendedAtYield) {
        this.scheduleGenerator();
      }
    }
    onCancel() {
      if (dart.test(this.controller.isClosed)) {
        return null;
      }
      if (this.cancellationCompleter == null) {
        this.cancellationCompleter = async.Completer.new();
        if (this.isSuspendedAtYield) {
          this.scheduleGenerator();
        }
      }
      return this.cancellationCompleter.future;
    }
    [_fatal](message) {
      return dart.throw(new core.StateError.new(message));
    }
  }
  (_AsyncStarImpl.new = function(initGenerator) {
    this[controller] = null;
    this.isSuspendedAtYieldStar = false;
    this.onListenReceived = false;
    this.isScheduled = false;
    this.isSuspendedAtYield = false;
    this.isSuspendedAtAwait = false;
    this.cancellationCompleter = null;
    this.jsIterator = null;
    this[_handleErrorCallback] = null;
    this[_runBodyCallback] = null;
    this.initGenerator = initGenerator;
    this.controller = StreamControllerOfTL().new({onListen: this.onListen.bind(this), onResume: this.onResume.bind(this), onCancel: this.onCancel.bind(this)});
    this.jsIterator = this.initGenerator(this)[Symbol.iterator]();
  }).prototype = _AsyncStarImpl.prototype;
  dart.addTypeTests(_AsyncStarImpl);
  _AsyncStarImpl.prototype[_is__AsyncStarImpl_default] = true;
  dart.addTypeCaches(_AsyncStarImpl);
  dart.setMethodSignature(_AsyncStarImpl, () => ({
    __proto__: dart.getMethods(_AsyncStarImpl.__proto__),
    scheduleGenerator: dart.fnType(dart.void, []),
    runBody: dart.fnType(dart.void, [dart.dynamic]),
    add: dart.fnType(core.bool, [core.Object]),
    addStream: dart.fnType(core.bool, [core.Object]),
    addError: dart.fnType(dart.void, [core.Object, core.StackTrace]),
    close: dart.fnType(dart.void, []),
    onListen: dart.fnType(dart.dynamic, []),
    onResume: dart.fnType(dart.dynamic, []),
    onCancel: dart.fnType(dart.dynamic, []),
    [_fatal]: dart.fnType(dart.dynamic, [core.String])
  }));
  dart.setGetterSignature(_AsyncStarImpl, () => ({
    __proto__: dart.getGetters(_AsyncStarImpl.__proto__),
    stream: async.Stream$(T),
    handleError: dart.fnType(core.Null, [core.Object, core.StackTrace])
  }));
  dart.setLibraryUri(_AsyncStarImpl, L12);
  dart.setFieldSignature(_AsyncStarImpl, () => ({
    __proto__: dart.getFields(_AsyncStarImpl.__proto__),
    controller: dart.fieldType(async.StreamController$(T)),
    initGenerator: dart.fieldType(dart.fnType(core.Object, [async._AsyncStarImpl$(T)])),
    isSuspendedAtYieldStar: dart.fieldType(core.bool),
    onListenReceived: dart.fieldType(core.bool),
    isScheduled: dart.fieldType(core.bool),
    isSuspendedAtYield: dart.fieldType(core.bool),
    isSuspendedAtAwait: dart.fieldType(core.bool),
    cancellationCompleter: dart.fieldType(async.Completer),
    jsIterator: dart.fieldType(core.Object),
    [_handleErrorCallback]: dart.fieldType(dart.fnType(core.Null, [core.Object, core.StackTrace])),
    [_runBodyCallback]: dart.fieldType(dart.fnType(dart.void, [], [core.Object]))
  }));
  return _AsyncStarImpl;
});
async._AsyncStarImpl = async._AsyncStarImpl$();
dart.addTypeTests(async._AsyncStarImpl, _is__AsyncStarImpl_default);
var _controller$ = dart.privateName(async, "_controller");
var _subscribe = dart.privateName(async, "_subscribe");
var _createSubscription = dart.privateName(async, "_createSubscription");
var _onListen$ = dart.privateName(async, "_onListen");
const _is__StreamImpl_default = Symbol('_is__StreamImpl_default');
async._StreamImpl$ = dart.generic(T => {
  var _BufferingStreamSubscriptionOfTL = () => (_BufferingStreamSubscriptionOfTL = dart.constFn(async._BufferingStreamSubscription$(T)))();
  class _StreamImpl extends async.Stream$(T) {
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      cancelOnError = true === cancelOnError;
      let subscription = this[_createSubscription](onData, onError, onDone, cancelOnError);
      this[_onListen$](subscription);
      return subscription;
    }
    [_createSubscription](onData, onError, onDone, cancelOnError) {
      return new (_BufferingStreamSubscriptionOfTL()).new(onData, onError, onDone, cancelOnError);
    }
    [_onListen$](subscription) {
    }
  }
  (_StreamImpl.new = function() {
    _StreamImpl.__proto__.new.call(this);
    ;
  }).prototype = _StreamImpl.prototype;
  dart.addTypeTests(_StreamImpl);
  _StreamImpl.prototype[_is__StreamImpl_default] = true;
  dart.addTypeCaches(_StreamImpl);
  dart.setMethodSignature(_StreamImpl, () => ({
    __proto__: dart.getMethods(_StreamImpl.__proto__),
    listen: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {}),
    [_createSubscription]: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T]), core.Function, dart.fnType(dart.void, []), core.bool]),
    [_onListen$]: dart.fnType(dart.void, [async.StreamSubscription])
  }));
  dart.setLibraryUri(_StreamImpl, L12);
  return _StreamImpl;
});
async._StreamImpl = async._StreamImpl$();
dart.addTypeTests(async._StreamImpl, _is__StreamImpl_default);
const _is__ControllerStream_default = Symbol('_is__ControllerStream_default');
async._ControllerStream$ = dart.generic(T => {
  class _ControllerStream extends async._StreamImpl$(T) {
    [_createSubscription](onData, onError, onDone, cancelOnError) {
      return this[_controller$][_subscribe](onData, onError, onDone, cancelOnError);
    }
    get hashCode() {
      return (dart.notNull(dart.hashCode(this[_controller$])) ^ 892482866) >>> 0;
    }
    _equals(other) {
      if (other == null) return false;
      if (this === other) return true;
      return async._ControllerStream.is(other) && other[_controller$] == this[_controller$];
    }
  }
  (_ControllerStream.new = function(_controller) {
    this[_controller$] = _controller;
    _ControllerStream.__proto__.new.call(this);
    ;
  }).prototype = _ControllerStream.prototype;
  dart.addTypeTests(_ControllerStream);
  _ControllerStream.prototype[_is__ControllerStream_default] = true;
  dart.addTypeCaches(_ControllerStream);
  dart.setMethodSignature(_ControllerStream, () => ({
    __proto__: dart.getMethods(_ControllerStream.__proto__),
    _equals: dart.fnType(core.bool, [core.Object]),
    [$_equals]: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(_ControllerStream, L12);
  dart.setFieldSignature(_ControllerStream, () => ({
    __proto__: dart.getFields(_ControllerStream.__proto__),
    [_controller$]: dart.fieldType(async._StreamControllerLifecycle$(T))
  }));
  dart.defineExtensionMethods(_ControllerStream, ['_equals']);
  dart.defineExtensionAccessors(_ControllerStream, ['hashCode']);
  return _ControllerStream;
});
async._ControllerStream = async._ControllerStream$();
dart.addTypeTests(async._ControllerStream, _is__ControllerStream_default);
const _is__BroadcastStream_default = Symbol('_is__BroadcastStream_default');
async._BroadcastStream$ = dart.generic(T => {
  class _BroadcastStream extends async._ControllerStream$(T) {
    get isBroadcast() {
      return true;
    }
  }
  (_BroadcastStream.new = function(controller) {
    _BroadcastStream.__proto__.new.call(this, controller);
    ;
  }).prototype = _BroadcastStream.prototype;
  dart.addTypeTests(_BroadcastStream);
  _BroadcastStream.prototype[_is__BroadcastStream_default] = true;
  dart.addTypeCaches(_BroadcastStream);
  dart.setLibraryUri(_BroadcastStream, L12);
  return _BroadcastStream;
});
async._BroadcastStream = async._BroadcastStream$();
dart.addTypeTests(async._BroadcastStream, _is__BroadcastStream_default);
var _eventState = dart.privateName(async, "_eventState");
var _next$0 = dart.privateName(async, "_next");
var _previous$0 = dart.privateName(async, "_previous");
var _expectsEvent = dart.privateName(async, "_expectsEvent");
var _toggleEventId = dart.privateName(async, "_toggleEventId");
var _isFiring = dart.privateName(async, "_isFiring");
var _setRemoveAfterFiring = dart.privateName(async, "_setRemoveAfterFiring");
var _removeAfterFiring = dart.privateName(async, "_removeAfterFiring");
var _onPause = dart.privateName(async, "_onPause");
var _onResume = dart.privateName(async, "_onResume");
var _recordCancel = dart.privateName(async, "_recordCancel");
var _onCancel = dart.privateName(async, "_onCancel");
var _recordPause = dart.privateName(async, "_recordPause");
var _recordResume = dart.privateName(async, "_recordResume");
var _onData$ = dart.privateName(async, "_onData");
var _onError = dart.privateName(async, "_onError");
var _onDone$ = dart.privateName(async, "_onDone");
var _zone$ = dart.privateName(async, "_zone");
var _cancelFuture = dart.privateName(async, "_cancelFuture");
var _pending$ = dart.privateName(async, "_pending");
var _state = dart.privateName(async, "_state");
var _setPendingEvents = dart.privateName(async, "_setPendingEvents");
var C38;
var C39;
var C40;
var _isCanceled = dart.privateName(async, "_isCanceled");
var _isPaused = dart.privateName(async, "_isPaused");
var _isInputPaused = dart.privateName(async, "_isInputPaused");
var _inCallback = dart.privateName(async, "_inCallback");
var _guardCallback = dart.privateName(async, "_guardCallback");
var _decrementPauseCount = dart.privateName(async, "_decrementPauseCount");
var _hasPending = dart.privateName(async, "_hasPending");
var _mayResumeInput = dart.privateName(async, "_mayResumeInput");
var _cancel = dart.privateName(async, "_cancel");
var _isClosed = dart.privateName(async, "_isClosed");
var _waitsForCancel = dart.privateName(async, "_waitsForCancel");
var _canFire = dart.privateName(async, "_canFire");
var _cancelOnError = dart.privateName(async, "_cancelOnError");
var _sendData = dart.privateName(async, "_sendData");
var _addPending = dart.privateName(async, "_addPending");
var _sendError = dart.privateName(async, "_sendError");
var _sendDone = dart.privateName(async, "_sendDone");
var C41;
var _close = dart.privateName(async, "_close");
var _checkState = dart.privateName(async, "_checkState");
const _is__BufferingStreamSubscription_default = Symbol('_is__BufferingStreamSubscription_default');
async._BufferingStreamSubscription$ = dart.generic(T => {
  var _PendingEventsOfTL = () => (_PendingEventsOfTL = dart.constFn(async._PendingEvents$(T)))();
  var _DelayedDataOfTL = () => (_DelayedDataOfTL = dart.constFn(async._DelayedData$(T)))();
  var _StreamImplEventsOfTL = () => (_StreamImplEventsOfTL = dart.constFn(async._StreamImplEvents$(T)))();
  class _BufferingStreamSubscription extends core.Object {
    [_setPendingEvents](pendingEvents) {
      _PendingEventsOfTL().as(pendingEvents);
      if (!(this[_pending$] == null)) dart.assertFailed(null, L31, 127, 12, "_pending == null");
      if (pendingEvents == null) return;
      this[_pending$] = pendingEvents;
      if (!dart.test(pendingEvents.isEmpty)) {
        this[_state] = (dart.notNull(this[_state]) | 64) >>> 0;
        this[_pending$].schedule(this);
      }
    }
    onData(handleData) {
      handleData == null ? handleData = C38 || CT.C38 : null;
      this[_onData$] = this[_zone$].registerUnaryCallback(dart.dynamic, T, handleData);
    }
    onError(handleError) {
      handleError == null ? handleError = C39 || CT.C39 : null;
      if (ObjectLAndStackTraceLToLvoid().is(handleError)) {
        this[_onError] = this[_zone$].registerBinaryCallback(dart.dynamic, core.Object, core.StackTrace, handleError);
      } else if (ObjectLToLvoid().is(handleError)) {
        this[_onError] = this[_zone$].registerUnaryCallback(dart.dynamic, core.Object, handleError);
      } else {
        dart.throw(new core.ArgumentError.new("handleError callback must take either an Object " + "(the error), or both an Object (the error) and a StackTrace."));
      }
    }
    onDone(handleDone) {
      handleDone == null ? handleDone = C40 || CT.C40 : null;
      this[_onDone$] = this[_zone$].registerCallback(dart.void, handleDone);
    }
    pause(resumeSignal = null) {
      if (dart.test(this[_isCanceled])) return;
      let wasPaused = this[_isPaused];
      let wasInputPaused = this[_isInputPaused];
      this[_state] = (dart.notNull(this[_state]) + 128 | 4) >>> 0;
      if (resumeSignal != null) resumeSignal.whenComplete(dart.bind(this, 'resume'));
      if (!dart.test(wasPaused) && this[_pending$] != null) this[_pending$].cancelSchedule();
      if (!dart.test(wasInputPaused) && !dart.test(this[_inCallback])) this[_guardCallback](dart.bind(this, _onPause));
    }
    resume() {
      if (dart.test(this[_isCanceled])) return;
      if (dart.test(this[_isPaused])) {
        this[_decrementPauseCount]();
        if (!dart.test(this[_isPaused])) {
          if (dart.test(this[_hasPending]) && !dart.test(this[_pending$].isEmpty)) {
            this[_pending$].schedule(this);
          } else {
            if (!dart.test(this[_mayResumeInput])) dart.assertFailed(null, L31, 183, 18, "_mayResumeInput");
            this[_state] = (dart.notNull(this[_state]) & ~4 >>> 0) >>> 0;
            if (!dart.test(this[_inCallback])) this[_guardCallback](dart.bind(this, _onResume));
          }
        }
      }
    }
    cancel() {
      let t30;
      this[_state] = (dart.notNull(this[_state]) & ~16 >>> 0) >>> 0;
      if (!dart.test(this[_isCanceled])) {
        this[_cancel]();
      }
      t30 = this[_cancelFuture];
      return t30 == null ? async.Future._nullFuture : t30;
    }
    asFuture(E, futureValue = null) {
      let result = new (async._Future$(E)).new();
      this[_onDone$] = dart.fn(() => {
        result[_complete](futureValue);
      }, VoidToNullN());
      this[_onError] = dart.fn((error, stackTrace) => {
        let cancelFuture = this.cancel();
        if (cancelFuture != async.Future._nullFuture) {
          cancelFuture.whenComplete(dart.fn(() => {
            result[_completeError](error, stackTrace);
          }, VoidToNullN()));
        } else {
          result[_completeError](error, stackTrace);
        }
      }, dynamicAndStackTraceLToNullN());
      return result;
    }
    get [_isInputPaused]() {
      return (dart.notNull(this[_state]) & 4) !== 0;
    }
    get [_isClosed]() {
      return (dart.notNull(this[_state]) & 2) !== 0;
    }
    get [_isCanceled]() {
      return (dart.notNull(this[_state]) & 8) !== 0;
    }
    get [_waitsForCancel]() {
      return (dart.notNull(this[_state]) & 16) !== 0;
    }
    get [_inCallback]() {
      return (dart.notNull(this[_state]) & 32) !== 0;
    }
    get [_hasPending]() {
      return (dart.notNull(this[_state]) & 64) !== 0;
    }
    get [_isPaused]() {
      return dart.notNull(this[_state]) >= 128;
    }
    get [_canFire]() {
      return dart.notNull(this[_state]) < 32;
    }
    get [_mayResumeInput]() {
      return !dart.test(this[_isPaused]) && (this[_pending$] == null || dart.test(this[_pending$].isEmpty));
    }
    get [_cancelOnError]() {
      return (dart.notNull(this[_state]) & 1) !== 0;
    }
    get isPaused() {
      return this[_isPaused];
    }
    [_cancel]() {
      this[_state] = (dart.notNull(this[_state]) | 8) >>> 0;
      if (dart.test(this[_hasPending])) {
        this[_pending$].cancelSchedule();
      }
      if (!dart.test(this[_inCallback])) this[_pending$] = null;
      this[_cancelFuture] = this[_onCancel]();
    }
    [_decrementPauseCount]() {
      if (!dart.test(this[_isPaused])) dart.assertFailed(null, L31, 256, 12, "_isPaused");
      this[_state] = dart.notNull(this[_state]) - 128;
    }
    [_add](data) {
      T.as(data);
      if (!!dart.test(this[_isClosed])) dart.assertFailed(null, L31, 263, 12, "!_isClosed");
      if (dart.test(this[_isCanceled])) return;
      if (dart.test(this[_canFire])) {
        this[_sendData](data);
      } else {
        this[_addPending](new (_DelayedDataOfTL()).new(data));
      }
    }
    [_addError](error, stackTrace) {
      if (dart.test(this[_isCanceled])) return;
      if (dart.test(this[_canFire])) {
        this[_sendError](error, stackTrace);
      } else {
        this[_addPending](new async._DelayedError.new(error, stackTrace));
      }
    }
    [_close]() {
      if (!!dart.test(this[_isClosed])) dart.assertFailed(null, L31, 282, 12, "!_isClosed");
      if (dart.test(this[_isCanceled])) return;
      this[_state] = (dart.notNull(this[_state]) | 2) >>> 0;
      if (dart.test(this[_canFire])) {
        this[_sendDone]();
      } else {
        this[_addPending](C41 || CT.C41);
      }
    }
    [_onPause]() {
      if (!dart.test(this[_isInputPaused])) dart.assertFailed(null, L31, 297, 12, "_isInputPaused");
    }
    [_onResume]() {
      if (!!dart.test(this[_isInputPaused])) dart.assertFailed(null, L31, 301, 12, "!_isInputPaused");
    }
    [_onCancel]() {
      if (!dart.test(this[_isCanceled])) dart.assertFailed(null, L31, 305, 12, "_isCanceled");
      return null;
    }
    [_addPending](event) {
      let pending = _StreamImplEventsOfTL().as(this[_pending$]);
      if (this[_pending$] == null) {
        pending = this[_pending$] = new (_StreamImplEventsOfTL()).new();
      }
      pending.add(event);
      if (!dart.test(this[_hasPending])) {
        this[_state] = (dart.notNull(this[_state]) | 64) >>> 0;
        if (!dart.test(this[_isPaused])) {
          this[_pending$].schedule(this);
        }
      }
    }
    [_sendData](data) {
      if (!!dart.test(this[_isCanceled])) dart.assertFailed(null, L31, 334, 12, "!_isCanceled");
      if (!!dart.test(this[_isPaused])) dart.assertFailed(null, L31, 335, 12, "!_isPaused");
      if (!!dart.test(this[_inCallback])) dart.assertFailed(null, L31, 336, 12, "!_inCallback");
      let wasInputPaused = this[_isInputPaused];
      this[_state] = (dart.notNull(this[_state]) | 32) >>> 0;
      this[_zone$].runUnaryGuarded(T, this[_onData$], data);
      this[_state] = (dart.notNull(this[_state]) & ~32 >>> 0) >>> 0;
      this[_checkState](wasInputPaused);
    }
    [_sendError](error, stackTrace) {
      if (!!dart.test(this[_isCanceled])) dart.assertFailed(null, L31, 345, 12, "!_isCanceled");
      if (!!dart.test(this[_isPaused])) dart.assertFailed(null, L31, 346, 12, "!_isPaused");
      if (!!dart.test(this[_inCallback])) dart.assertFailed(null, L31, 347, 12, "!_inCallback");
      let wasInputPaused = this[_isInputPaused];
      const sendError = () => {
        if (dart.test(this[_isCanceled]) && !dart.test(this[_waitsForCancel])) return;
        this[_state] = (dart.notNull(this[_state]) | 32) >>> 0;
        let onError = this[_onError];
        if (ObjectLAndStackTraceLToLvoid().is(onError)) {
          this[_zone$].runBinaryGuarded(core.Object, core.StackTrace, onError, error, stackTrace);
        } else {
          if (!ObjectLToLvoid().is(this[_onError])) dart.assertFailed(null, L31, 360, 16, "_onError is void Function(Object)");
          this[_zone$].runUnaryGuarded(core.Object, ObjectLToLvoid().as(this[_onError]), error);
        }
        this[_state] = (dart.notNull(this[_state]) & ~32 >>> 0) >>> 0;
      };
      dart.fn(sendError, VoidTovoid());
      if (dart.test(this[_cancelOnError])) {
        this[_state] = (dart.notNull(this[_state]) | 16) >>> 0;
        this[_cancel]();
        if (this[_cancelFuture] != null && this[_cancelFuture] != async.Future._nullFuture) {
          this[_cancelFuture].whenComplete(sendError);
        } else {
          sendError();
        }
      } else {
        sendError();
        this[_checkState](wasInputPaused);
      }
    }
    [_sendDone]() {
      if (!!dart.test(this[_isCanceled])) dart.assertFailed(null, L31, 383, 12, "!_isCanceled");
      if (!!dart.test(this[_isPaused])) dart.assertFailed(null, L31, 384, 12, "!_isPaused");
      if (!!dart.test(this[_inCallback])) dart.assertFailed(null, L31, 385, 12, "!_inCallback");
      const sendDone = () => {
        if (!dart.test(this[_waitsForCancel])) return;
        this[_state] = (dart.notNull(this[_state]) | (8 | 2 | 32) >>> 0) >>> 0;
        this[_zone$].runGuarded(this[_onDone$]);
        this[_state] = (dart.notNull(this[_state]) & ~32 >>> 0) >>> 0;
      };
      dart.fn(sendDone, VoidTovoid());
      this[_cancel]();
      this[_state] = (dart.notNull(this[_state]) | 16) >>> 0;
      if (this[_cancelFuture] != null && this[_cancelFuture] != async.Future._nullFuture) {
        this[_cancelFuture].whenComplete(sendDone);
      } else {
        sendDone();
      }
    }
    [_guardCallback](callback) {
      if (!!dart.test(this[_inCallback])) dart.assertFailed(null, L31, 414, 12, "!_inCallback");
      let wasInputPaused = this[_isInputPaused];
      this[_state] = (dart.notNull(this[_state]) | 32) >>> 0;
      callback();
      this[_state] = (dart.notNull(this[_state]) & ~32 >>> 0) >>> 0;
      this[_checkState](wasInputPaused);
    }
    [_checkState](wasInputPaused) {
      if (!!dart.test(this[_inCallback])) dart.assertFailed(null, L31, 433, 12, "!_inCallback");
      if (dart.test(this[_hasPending]) && dart.test(this[_pending$].isEmpty)) {
        this[_state] = (dart.notNull(this[_state]) & ~64 >>> 0) >>> 0;
        if (dart.test(this[_isInputPaused]) && dart.test(this[_mayResumeInput])) {
          this[_state] = (dart.notNull(this[_state]) & ~4 >>> 0) >>> 0;
        }
      }
      while (true) {
        if (dart.test(this[_isCanceled])) {
          this[_pending$] = null;
          return;
        }
        let isInputPaused = this[_isInputPaused];
        if (dart.equals(wasInputPaused, isInputPaused)) break;
        this[_state] = (dart.notNull(this[_state]) ^ 32) >>> 0;
        if (dart.test(isInputPaused)) {
          this[_onPause]();
        } else {
          this[_onResume]();
        }
        this[_state] = (dart.notNull(this[_state]) & ~32 >>> 0) >>> 0;
        wasInputPaused = isInputPaused;
      }
      if (dart.test(this[_hasPending]) && !dart.test(this[_isPaused])) {
        this[_pending$].schedule(this);
      }
    }
  }
  (_BufferingStreamSubscription.new = function(onData, onError, onDone, cancelOnError) {
    this[_onData$] = null;
    this[_onError] = null;
    this[_onDone$] = null;
    this[_zone$] = async.Zone.current;
    this[_cancelFuture] = null;
    this[_pending$] = null;
    this[_state] = dart.test(cancelOnError) ? 1 : 0;
    this.onData(onData);
    this.onError(onError);
    this.onDone(onDone);
  }).prototype = _BufferingStreamSubscription.prototype;
  _BufferingStreamSubscription.prototype[dart.isStreamSubscription] = true;
  dart.addTypeTests(_BufferingStreamSubscription);
  _BufferingStreamSubscription.prototype[_is__BufferingStreamSubscription_default] = true;
  dart.addTypeCaches(_BufferingStreamSubscription);
  _BufferingStreamSubscription[dart.implements] = () => [async.StreamSubscription$(T), async._EventSink$(T), async._EventDispatch$(T)];
  dart.setMethodSignature(_BufferingStreamSubscription, () => ({
    __proto__: dart.getMethods(_BufferingStreamSubscription.__proto__),
    [_setPendingEvents]: dart.fnType(dart.void, [core.Object]),
    onData: dart.fnType(dart.void, [dart.fnType(dart.void, [T])]),
    onError: dart.fnType(dart.void, [core.Function]),
    onDone: dart.fnType(dart.void, [dart.fnType(dart.void, [])]),
    pause: dart.fnType(dart.void, [], [async.Future]),
    resume: dart.fnType(dart.void, []),
    cancel: dart.fnType(async.Future, []),
    asFuture: dart.gFnType(E => [async.Future$(E), [], [E]]),
    [_cancel]: dart.fnType(dart.void, []),
    [_decrementPauseCount]: dart.fnType(dart.void, []),
    [_add]: dart.fnType(dart.void, [core.Object]),
    [_addError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
    [_close]: dart.fnType(dart.void, []),
    [_onPause]: dart.fnType(dart.void, []),
    [_onResume]: dart.fnType(dart.void, []),
    [_onCancel]: dart.fnType(async.Future, []),
    [_addPending]: dart.fnType(dart.void, [async._DelayedEvent]),
    [_sendData]: dart.fnType(dart.void, [T]),
    [_sendError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
    [_sendDone]: dart.fnType(dart.void, []),
    [_guardCallback]: dart.fnType(dart.void, [dart.fnType(dart.void, [])]),
    [_checkState]: dart.fnType(dart.void, [core.bool])
  }));
  dart.setGetterSignature(_BufferingStreamSubscription, () => ({
    __proto__: dart.getGetters(_BufferingStreamSubscription.__proto__),
    [_isInputPaused]: core.bool,
    [_isClosed]: core.bool,
    [_isCanceled]: core.bool,
    [_waitsForCancel]: core.bool,
    [_inCallback]: core.bool,
    [_hasPending]: core.bool,
    [_isPaused]: core.bool,
    [_canFire]: core.bool,
    [_mayResumeInput]: core.bool,
    [_cancelOnError]: core.bool,
    isPaused: core.bool
  }));
  dart.setLibraryUri(_BufferingStreamSubscription, L12);
  dart.setFieldSignature(_BufferingStreamSubscription, () => ({
    __proto__: dart.getFields(_BufferingStreamSubscription.__proto__),
    [_onData$]: dart.fieldType(dart.fnType(dart.void, [T])),
    [_onError]: dart.fieldType(core.Function),
    [_onDone$]: dart.fieldType(dart.fnType(dart.void, [])),
    [_zone$]: dart.finalFieldType(async.Zone),
    [_state]: dart.fieldType(core.int),
    [_cancelFuture]: dart.fieldType(async.Future),
    [_pending$]: dart.fieldType(async._PendingEvents$(T))
  }));
  return _BufferingStreamSubscription;
});
async._BufferingStreamSubscription = async._BufferingStreamSubscription$();
dart.defineLazy(async._BufferingStreamSubscription, {
  /*async._BufferingStreamSubscription._STATE_CANCEL_ON_ERROR*/get _STATE_CANCEL_ON_ERROR() {
    return 1;
  },
  /*async._BufferingStreamSubscription._STATE_CLOSED*/get _STATE_CLOSED() {
    return 2;
  },
  /*async._BufferingStreamSubscription._STATE_INPUT_PAUSED*/get _STATE_INPUT_PAUSED() {
    return 4;
  },
  /*async._BufferingStreamSubscription._STATE_CANCELED*/get _STATE_CANCELED() {
    return 8;
  },
  /*async._BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL*/get _STATE_WAIT_FOR_CANCEL() {
    return 16;
  },
  /*async._BufferingStreamSubscription._STATE_IN_CALLBACK*/get _STATE_IN_CALLBACK() {
    return 32;
  },
  /*async._BufferingStreamSubscription._STATE_HAS_PENDING*/get _STATE_HAS_PENDING() {
    return 64;
  },
  /*async._BufferingStreamSubscription._STATE_PAUSE_COUNT*/get _STATE_PAUSE_COUNT() {
    return 128;
  }
}, true);
dart.addTypeTests(async._BufferingStreamSubscription, _is__BufferingStreamSubscription_default);
const _is__ControllerSubscription_default = Symbol('_is__ControllerSubscription_default');
async._ControllerSubscription$ = dart.generic(T => {
  class _ControllerSubscription extends async._BufferingStreamSubscription$(T) {
    [_onCancel]() {
      return this[_controller$][_recordCancel](this);
    }
    [_onPause]() {
      this[_controller$][_recordPause](this);
    }
    [_onResume]() {
      this[_controller$][_recordResume](this);
    }
  }
  (_ControllerSubscription.new = function(_controller, onData, onError, onDone, cancelOnError) {
    this[_controller$] = _controller;
    _ControllerSubscription.__proto__.new.call(this, onData, onError, onDone, cancelOnError);
    ;
  }).prototype = _ControllerSubscription.prototype;
  dart.addTypeTests(_ControllerSubscription);
  _ControllerSubscription.prototype[_is__ControllerSubscription_default] = true;
  dart.addTypeCaches(_ControllerSubscription);
  dart.setLibraryUri(_ControllerSubscription, L12);
  dart.setFieldSignature(_ControllerSubscription, () => ({
    __proto__: dart.getFields(_ControllerSubscription.__proto__),
    [_controller$]: dart.finalFieldType(async._StreamControllerLifecycle$(T))
  }));
  return _ControllerSubscription;
});
async._ControllerSubscription = async._ControllerSubscription$();
dart.addTypeTests(async._ControllerSubscription, _is__ControllerSubscription_default);
const _is__BroadcastSubscription_default = Symbol('_is__BroadcastSubscription_default');
var _next$1 = dart.privateName(async, "_BroadcastSubscription._next");
var _previous$1 = dart.privateName(async, "_BroadcastSubscription._previous");
async._BroadcastSubscription$ = dart.generic(T => {
  var _BroadcastSubscriptionOfTL = () => (_BroadcastSubscriptionOfTL = dart.constFn(async._BroadcastSubscription$(T)))();
  class _BroadcastSubscription extends async._ControllerSubscription$(T) {
    get [_next$0]() {
      return this[_next$1];
    }
    set [_next$0](value) {
      this[_next$1] = _BroadcastSubscriptionOfTL().as(value);
    }
    get [_previous$0]() {
      return this[_previous$1];
    }
    set [_previous$0](value) {
      this[_previous$1] = _BroadcastSubscriptionOfTL().as(value);
    }
    [_expectsEvent](eventId) {
      return (dart.notNull(this[_eventState]) & 1) >>> 0 === eventId;
    }
    [_toggleEventId]() {
      this[_eventState] = (dart.notNull(this[_eventState]) ^ 1) >>> 0;
    }
    get [_isFiring]() {
      return (dart.notNull(this[_eventState]) & 2) !== 0;
    }
    [_setRemoveAfterFiring]() {
      if (!dart.test(this[_isFiring])) dart.assertFailed(null, L30, 43, 12, "_isFiring");
      this[_eventState] = (dart.notNull(this[_eventState]) | 4) >>> 0;
    }
    get [_removeAfterFiring]() {
      return (dart.notNull(this[_eventState]) & 4) !== 0;
    }
    [_onPause]() {
    }
    [_onResume]() {
    }
  }
  (_BroadcastSubscription.new = function(controller, onData, onError, onDone, cancelOnError) {
    this[_eventState] = 0;
    this[_next$1] = null;
    this[_previous$1] = null;
    _BroadcastSubscription.__proto__.new.call(this, controller, onData, onError, onDone, cancelOnError);
    this[_next$0] = this[_previous$0] = this;
  }).prototype = _BroadcastSubscription.prototype;
  dart.addTypeTests(_BroadcastSubscription);
  _BroadcastSubscription.prototype[_is__BroadcastSubscription_default] = true;
  dart.addTypeCaches(_BroadcastSubscription);
  dart.setMethodSignature(_BroadcastSubscription, () => ({
    __proto__: dart.getMethods(_BroadcastSubscription.__proto__),
    [_expectsEvent]: dart.fnType(core.bool, [core.int]),
    [_toggleEventId]: dart.fnType(dart.void, []),
    [_setRemoveAfterFiring]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_BroadcastSubscription, () => ({
    __proto__: dart.getGetters(_BroadcastSubscription.__proto__),
    [_isFiring]: core.bool,
    [_removeAfterFiring]: core.bool
  }));
  dart.setLibraryUri(_BroadcastSubscription, L12);
  dart.setFieldSignature(_BroadcastSubscription, () => ({
    __proto__: dart.getFields(_BroadcastSubscription.__proto__),
    [_eventState]: dart.fieldType(core.int),
    [_next$0]: dart.fieldType(async._BroadcastSubscription$(T)),
    [_previous$0]: dart.fieldType(async._BroadcastSubscription$(T))
  }));
  return _BroadcastSubscription;
});
async._BroadcastSubscription = async._BroadcastSubscription$();
dart.defineLazy(async._BroadcastSubscription, {
  /*async._BroadcastSubscription._STATE_EVENT_ID*/get _STATE_EVENT_ID() {
    return 1;
  },
  /*async._BroadcastSubscription._STATE_FIRING*/get _STATE_FIRING() {
    return 2;
  },
  /*async._BroadcastSubscription._STATE_REMOVE_AFTER_FIRING*/get _STATE_REMOVE_AFTER_FIRING() {
    return 4;
  }
}, true);
dart.addTypeTests(async._BroadcastSubscription, _is__BroadcastSubscription_default);
var _firstSubscription = dart.privateName(async, "_firstSubscription");
var _lastSubscription = dart.privateName(async, "_lastSubscription");
var _addStreamState = dart.privateName(async, "_addStreamState");
var _doneFuture = dart.privateName(async, "_doneFuture");
var _isEmpty = dart.privateName(async, "_isEmpty");
var _hasOneListener = dart.privateName(async, "_hasOneListener");
var _isAddingStream = dart.privateName(async, "_isAddingStream");
var _mayAddEvent = dart.privateName(async, "_mayAddEvent");
var _ensureDoneFuture = dart.privateName(async, "_ensureDoneFuture");
var _addListener = dart.privateName(async, "_addListener");
var _removeListener = dart.privateName(async, "_removeListener");
var _callOnCancel = dart.privateName(async, "_callOnCancel");
var _addEventError = dart.privateName(async, "_addEventError");
var _forEachListener = dart.privateName(async, "_forEachListener");
var _mayComplete = dart.privateName(async, "_mayComplete");
var _asyncComplete = dart.privateName(async, "_asyncComplete");
const _is__BroadcastStreamController_default = Symbol('_is__BroadcastStreamController_default');
async._BroadcastStreamController$ = dart.generic(T => {
  var _BroadcastStreamOfTL = () => (_BroadcastStreamOfTL = dart.constFn(async._BroadcastStream$(T)))();
  var _StreamSinkWrapperOfTL = () => (_StreamSinkWrapperOfTL = dart.constFn(async._StreamSinkWrapper$(T)))();
  var _DoneStreamSubscriptionOfTL = () => (_DoneStreamSubscriptionOfTL = dart.constFn(async._DoneStreamSubscription$(T)))();
  var _BroadcastSubscriptionOfTL = () => (_BroadcastSubscriptionOfTL = dart.constFn(async._BroadcastSubscription$(T)))();
  var StreamOfTL = () => (StreamOfTL = dart.constFn(async.Stream$(T)))();
  var _AddStreamStateOfTL = () => (_AddStreamStateOfTL = dart.constFn(async._AddStreamState$(T)))();
  class _BroadcastStreamController extends core.Object {
    get onPause() {
      dart.throw(new core.UnsupportedError.new("Broadcast stream controllers do not support pause callbacks"));
    }
    set onPause(onPauseHandler) {
      dart.throw(new core.UnsupportedError.new("Broadcast stream controllers do not support pause callbacks"));
    }
    get onResume() {
      dart.throw(new core.UnsupportedError.new("Broadcast stream controllers do not support pause callbacks"));
    }
    set onResume(onResumeHandler) {
      dart.throw(new core.UnsupportedError.new("Broadcast stream controllers do not support pause callbacks"));
    }
    get stream() {
      return new (_BroadcastStreamOfTL()).new(this);
    }
    get sink() {
      return new (_StreamSinkWrapperOfTL()).new(this);
    }
    get isClosed() {
      return (dart.notNull(this[_state]) & 4) !== 0;
    }
    get isPaused() {
      return false;
    }
    get hasListener() {
      return !dart.test(this[_isEmpty]);
    }
    get [_hasOneListener]() {
      if (!!dart.test(this[_isEmpty])) dart.assertFailed(null, L30, 145, 12, "!_isEmpty");
      return this[_firstSubscription] == this[_lastSubscription];
    }
    get [_isFiring]() {
      return (dart.notNull(this[_state]) & 2) !== 0;
    }
    get [_isAddingStream]() {
      return (dart.notNull(this[_state]) & 8) !== 0;
    }
    get [_mayAddEvent]() {
      return dart.notNull(this[_state]) < 4;
    }
    [_ensureDoneFuture]() {
      if (this[_doneFuture] != null) return this[_doneFuture];
      return this[_doneFuture] = new async._Future.new();
    }
    get [_isEmpty]() {
      return this[_firstSubscription] == null;
    }
    [_addListener](subscription) {
      if (!(subscription[_next$0] == subscription)) dart.assertFailed(null, L30, 167, 12, "identical(subscription._next, subscription)");
      subscription[_eventState] = (dart.notNull(this[_state]) & 1) >>> 0;
      let oldLast = this[_lastSubscription];
      this[_lastSubscription] = subscription;
      subscription[_next$0] = null;
      subscription[_previous$0] = oldLast;
      if (oldLast == null) {
        this[_firstSubscription] = subscription;
      } else {
        oldLast[_next$0] = subscription;
      }
    }
    [_removeListener](subscription) {
      if (!(subscription[_controller$] === this)) dart.assertFailed(null, L30, 182, 12, "identical(subscription._controller, this)");
      if (!(subscription[_next$0] != subscription)) dart.assertFailed(null, L30, 183, 12, "!identical(subscription._next, subscription)");
      let previous = subscription[_previous$0];
      let next = subscription[_next$0];
      if (previous == null) {
        this[_firstSubscription] = next;
      } else {
        previous[_next$0] = next;
      }
      if (next == null) {
        this[_lastSubscription] = previous;
      } else {
        next[_previous$0] = previous;
      }
      subscription[_next$0] = subscription[_previous$0] = subscription;
    }
    [_subscribe](onData, onError, onDone, cancelOnError) {
      if (dart.test(this.isClosed)) {
        onDone == null ? onDone = C40 || CT.C40 : null;
        return new (_DoneStreamSubscriptionOfTL()).new(onDone);
      }
      let subscription = new (_BroadcastSubscriptionOfTL()).new(this, onData, onError, onDone, cancelOnError);
      this[_addListener](_BroadcastSubscriptionOfTL().as(subscription));
      if (this[_firstSubscription] == this[_lastSubscription]) {
        async._runGuarded(this.onListen);
      }
      return subscription;
    }
    [_recordCancel](sub) {
      let subscription = _BroadcastSubscriptionOfTL().as(sub);
      if (subscription[_next$0] == subscription) return null;
      if (dart.test(subscription[_isFiring])) {
        subscription[_setRemoveAfterFiring]();
      } else {
        this[_removeListener](subscription);
        if (!dart.test(this[_isFiring]) && dart.test(this[_isEmpty])) {
          this[_callOnCancel]();
        }
      }
      return null;
    }
    [_recordPause](subscription) {
    }
    [_recordResume](subscription) {
    }
    [_addEventError]() {
      if (dart.test(this.isClosed)) {
        return new core.StateError.new("Cannot add new events after calling close");
      }
      if (!dart.test(this[_isAddingStream])) dart.assertFailed(null, L30, 246, 12, "_isAddingStream");
      return new core.StateError.new("Cannot add new events while doing an addStream");
    }
    add(data) {
      T.as(data);
      if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
      this[_sendData](data);
    }
    addError(error, stackTrace = null) {
      core.ArgumentError.checkNotNull(core.Object, error, "error");
      if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
      let replacement = async.Zone.current.errorCallback(error, stackTrace);
      if (replacement != null) {
        error = async._nonNullError(replacement.error);
        stackTrace = replacement.stackTrace;
      }
      stackTrace == null ? stackTrace = async.AsyncError.defaultStackTrace(error) : null;
      this[_sendError](error, stackTrace);
    }
    close() {
      if (dart.test(this.isClosed)) {
        if (!(this[_doneFuture] != null)) dart.assertFailed(null, L30, 269, 14, "_doneFuture != null");
        return this[_doneFuture];
      }
      if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
      this[_state] = (dart.notNull(this[_state]) | 4) >>> 0;
      let doneFuture = this[_ensureDoneFuture]();
      this[_sendDone]();
      return doneFuture;
    }
    get done() {
      return this[_ensureDoneFuture]();
    }
    addStream(stream, opts) {
      let t30;
      StreamOfTL().as(stream);
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
      this[_state] = (dart.notNull(this[_state]) | 8) >>> 0;
      this[_addStreamState] = new (_AddStreamStateOfTL()).new(this, stream, (t30 = cancelOnError, t30 == null ? false : t30));
      return this[_addStreamState].addStreamFuture;
    }
    [_add](data) {
      this[_sendData](data);
    }
    [_addError](error, stackTrace) {
      this[_sendError](error, stackTrace);
    }
    [_close]() {
      if (!dart.test(this[_isAddingStream])) dart.assertFailed(null, L30, 298, 12, "_isAddingStream");
      let addState = this[_addStreamState];
      this[_addStreamState] = null;
      this[_state] = (dart.notNull(this[_state]) & ~8 >>> 0) >>> 0;
      addState.complete();
    }
    [_forEachListener](action) {
      let t30, t30$;
      if (dart.test(this[_isFiring])) {
        dart.throw(new core.StateError.new("Cannot fire new event. Controller is already firing an event"));
      }
      if (dart.test(this[_isEmpty])) return;
      let id = (dart.notNull(this[_state]) & 1) >>> 0;
      this[_state] = (dart.notNull(this[_state]) ^ (1 | 2) >>> 0) >>> 0;
      let subscription = this[_firstSubscription];
      while (subscription != null) {
        if (dart.test(subscription[_expectsEvent](id))) {
          t30 = subscription;
          t30[_eventState] = (dart.notNull(t30[_eventState]) | 2) >>> 0;
          action(subscription);
          subscription[_toggleEventId]();
          let next = subscription[_next$0];
          if (dart.test(subscription[_removeAfterFiring])) {
            this[_removeListener](subscription);
          }
          t30$ = subscription;
          t30$[_eventState] = (dart.notNull(t30$[_eventState]) & ~2 >>> 0) >>> 0;
          subscription = next;
        } else {
          subscription = subscription[_next$0];
        }
      }
      this[_state] = (dart.notNull(this[_state]) & ~2 >>> 0) >>> 0;
      if (dart.test(this[_isEmpty])) {
        this[_callOnCancel]();
      }
    }
    [_callOnCancel]() {
      if (!dart.test(this[_isEmpty])) dart.assertFailed(null, L30, 347, 12, "_isEmpty");
      if (dart.test(this.isClosed) && dart.test(this[_doneFuture][_mayComplete])) {
        this[_doneFuture][_asyncComplete](null);
      }
      async._runGuarded(this.onCancel);
    }
  }
  (_BroadcastStreamController.new = function(onListen, onCancel) {
    this[_firstSubscription] = null;
    this[_lastSubscription] = null;
    this[_addStreamState] = null;
    this[_doneFuture] = null;
    this.onListen = onListen;
    this.onCancel = onCancel;
    this[_state] = 0;
    ;
  }).prototype = _BroadcastStreamController.prototype;
  dart.addTypeTests(_BroadcastStreamController);
  _BroadcastStreamController.prototype[_is__BroadcastStreamController_default] = true;
  dart.addTypeCaches(_BroadcastStreamController);
  _BroadcastStreamController[dart.implements] = () => [async._StreamControllerBase$(T)];
  dart.setMethodSignature(_BroadcastStreamController, () => ({
    __proto__: dart.getMethods(_BroadcastStreamController.__proto__),
    [_ensureDoneFuture]: dart.fnType(async._Future, []),
    [_addListener]: dart.fnType(dart.void, [async._BroadcastSubscription$(T)]),
    [_removeListener]: dart.fnType(dart.void, [async._BroadcastSubscription$(T)]),
    [_subscribe]: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T]), core.Function, dart.fnType(dart.void, []), core.bool]),
    [_recordCancel]: dart.fnType(async.Future, [async.StreamSubscription$(T)]),
    [_recordPause]: dart.fnType(dart.void, [async.StreamSubscription$(T)]),
    [_recordResume]: dart.fnType(dart.void, [async.StreamSubscription$(T)]),
    [_addEventError]: dart.fnType(core.Error, []),
    add: dart.fnType(dart.void, [core.Object]),
    addError: dart.fnType(dart.void, [core.Object], [core.StackTrace]),
    close: dart.fnType(async.Future, []),
    addStream: dart.fnType(async.Future, [core.Object], {cancelOnError: core.bool}, {}),
    [_add]: dart.fnType(dart.void, [T]),
    [_addError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
    [_close]: dart.fnType(dart.void, []),
    [_forEachListener]: dart.fnType(dart.void, [dart.fnType(dart.void, [async._BufferingStreamSubscription$(T)])]),
    [_callOnCancel]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_BroadcastStreamController, () => ({
    __proto__: dart.getGetters(_BroadcastStreamController.__proto__),
    onPause: dart.fnType(dart.void, []),
    onResume: dart.fnType(dart.void, []),
    stream: async.Stream$(T),
    sink: async.StreamSink$(T),
    isClosed: core.bool,
    isPaused: core.bool,
    hasListener: core.bool,
    [_hasOneListener]: core.bool,
    [_isFiring]: core.bool,
    [_isAddingStream]: core.bool,
    [_mayAddEvent]: core.bool,
    [_isEmpty]: core.bool,
    done: async.Future
  }));
  dart.setSetterSignature(_BroadcastStreamController, () => ({
    __proto__: dart.getSetters(_BroadcastStreamController.__proto__),
    onPause: dart.fnType(dart.void, []),
    onResume: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(_BroadcastStreamController, L12);
  dart.setFieldSignature(_BroadcastStreamController, () => ({
    __proto__: dart.getFields(_BroadcastStreamController.__proto__),
    onListen: dart.fieldType(dart.fnType(dart.void, [])),
    onCancel: dart.fieldType(dart.fnType(dart.dynamic, [])),
    [_state]: dart.fieldType(core.int),
    [_firstSubscription]: dart.fieldType(async._BroadcastSubscription$(T)),
    [_lastSubscription]: dart.fieldType(async._BroadcastSubscription$(T)),
    [_addStreamState]: dart.fieldType(async._AddStreamState$(T)),
    [_doneFuture]: dart.fieldType(async._Future)
  }));
  return _BroadcastStreamController;
});
async._BroadcastStreamController = async._BroadcastStreamController$();
dart.defineLazy(async._BroadcastStreamController, {
  /*async._BroadcastStreamController._STATE_INITIAL*/get _STATE_INITIAL() {
    return 0;
  },
  /*async._BroadcastStreamController._STATE_EVENT_ID*/get _STATE_EVENT_ID() {
    return 1;
  },
  /*async._BroadcastStreamController._STATE_FIRING*/get _STATE_FIRING() {
    return 2;
  },
  /*async._BroadcastStreamController._STATE_CLOSED*/get _STATE_CLOSED() {
    return 4;
  },
  /*async._BroadcastStreamController._STATE_ADDSTREAM*/get _STATE_ADDSTREAM() {
    return 8;
  }
}, true);
dart.addTypeTests(async._BroadcastStreamController, _is__BroadcastStreamController_default);
const _is__SyncBroadcastStreamController_default = Symbol('_is__SyncBroadcastStreamController_default');
async._SyncBroadcastStreamController$ = dart.generic(T => {
  var _BufferingStreamSubscriptionOfTL = () => (_BufferingStreamSubscriptionOfTL = dart.constFn(async._BufferingStreamSubscription$(T)))();
  var _BufferingStreamSubscriptionLOfTLToNullN = () => (_BufferingStreamSubscriptionLOfTLToNullN = dart.constFn(dart.fnType(core.Null, [_BufferingStreamSubscriptionOfTL()])))();
  class _SyncBroadcastStreamController extends async._BroadcastStreamController$(T) {
    get [_mayAddEvent]() {
      return dart.test(super[_mayAddEvent]) && !dart.test(this[_isFiring]);
    }
    [_addEventError]() {
      if (dart.test(this[_isFiring])) {
        return new core.StateError.new("Cannot fire new event. Controller is already firing an event");
      }
      return super[_addEventError]();
    }
    [_sendData](data) {
      if (dart.test(this[_isEmpty])) return;
      if (dart.test(this[_hasOneListener])) {
        this[_state] = (dart.notNull(this[_state]) | 2) >>> 0;
        let subscription = this[_firstSubscription];
        subscription[_add](data);
        this[_state] = (dart.notNull(this[_state]) & ~2 >>> 0) >>> 0;
        if (dart.test(this[_isEmpty])) {
          this[_callOnCancel]();
        }
        return;
      }
      this[_forEachListener](dart.fn(subscription => {
        subscription[_add](data);
      }, _BufferingStreamSubscriptionLOfTLToNullN()));
    }
    [_sendError](error, stackTrace) {
      if (dart.test(this[_isEmpty])) return;
      this[_forEachListener](dart.fn(subscription => {
        subscription[_addError](error, stackTrace);
      }, _BufferingStreamSubscriptionLOfTLToNullN()));
    }
    [_sendDone]() {
      if (!dart.test(this[_isEmpty])) {
        this[_forEachListener](dart.fn(subscription => {
          subscription[_close]();
        }, _BufferingStreamSubscriptionLOfTLToNullN()));
      } else {
        if (!(this[_doneFuture] != null)) dart.assertFailed(null, L30, 403, 14, "_doneFuture != null");
        if (!dart.test(this[_doneFuture][_mayComplete])) dart.assertFailed(null, L30, 404, 14, "_doneFuture._mayComplete");
        this[_doneFuture][_asyncComplete](null);
      }
    }
  }
  (_SyncBroadcastStreamController.new = function(onListen, onCancel) {
    _SyncBroadcastStreamController.__proto__.new.call(this, onListen, onCancel);
    ;
  }).prototype = _SyncBroadcastStreamController.prototype;
  dart.addTypeTests(_SyncBroadcastStreamController);
  _SyncBroadcastStreamController.prototype[_is__SyncBroadcastStreamController_default] = true;
  dart.addTypeCaches(_SyncBroadcastStreamController);
  _SyncBroadcastStreamController[dart.implements] = () => [async.SynchronousStreamController$(T)];
  dart.setMethodSignature(_SyncBroadcastStreamController, () => ({
    __proto__: dart.getMethods(_SyncBroadcastStreamController.__proto__),
    [_sendData]: dart.fnType(dart.void, [T]),
    [_sendError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
    [_sendDone]: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(_SyncBroadcastStreamController, L12);
  return _SyncBroadcastStreamController;
});
async._SyncBroadcastStreamController = async._SyncBroadcastStreamController$();
dart.addTypeTests(async._SyncBroadcastStreamController, _is__SyncBroadcastStreamController_default);
const _is__AsyncBroadcastStreamController_default = Symbol('_is__AsyncBroadcastStreamController_default');
async._AsyncBroadcastStreamController$ = dart.generic(T => {
  var _DelayedDataOfTL = () => (_DelayedDataOfTL = dart.constFn(async._DelayedData$(T)))();
  class _AsyncBroadcastStreamController extends async._BroadcastStreamController$(T) {
    [_sendData](data) {
      for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next$0]) {
        subscription[_addPending](new (_DelayedDataOfTL()).new(data));
      }
    }
    [_sendError](error, stackTrace) {
      for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next$0]) {
        subscription[_addPending](new async._DelayedError.new(error, stackTrace));
      }
    }
    [_sendDone]() {
      if (!dart.test(this[_isEmpty])) {
        for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next$0]) {
          subscription[_addPending](C41 || CT.C41);
        }
      } else {
        if (!(this[_doneFuture] != null)) dart.assertFailed(null, L30, 440, 14, "_doneFuture != null");
        if (!dart.test(this[_doneFuture][_mayComplete])) dart.assertFailed(null, L30, 441, 14, "_doneFuture._mayComplete");
        this[_doneFuture][_asyncComplete](null);
      }
    }
  }
  (_AsyncBroadcastStreamController.new = function(onListen, onCancel) {
    _AsyncBroadcastStreamController.__proto__.new.call(this, onListen, onCancel);
    ;
  }).prototype = _AsyncBroadcastStreamController.prototype;
  dart.addTypeTests(_AsyncBroadcastStreamController);
  _AsyncBroadcastStreamController.prototype[_is__AsyncBroadcastStreamController_default] = true;
  dart.addTypeCaches(_AsyncBroadcastStreamController);
  dart.setMethodSignature(_AsyncBroadcastStreamController, () => ({
    __proto__: dart.getMethods(_AsyncBroadcastStreamController.__proto__),
    [_sendData]: dart.fnType(dart.void, [T]),
    [_sendError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
    [_sendDone]: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(_AsyncBroadcastStreamController, L12);
  return _AsyncBroadcastStreamController;
});
async._AsyncBroadcastStreamController = async._AsyncBroadcastStreamController$();
dart.addTypeTests(async._AsyncBroadcastStreamController, _is__AsyncBroadcastStreamController_default);
var _addPendingEvent = dart.privateName(async, "_addPendingEvent");
const _is__AsBroadcastStreamController_default = Symbol('_is__AsBroadcastStreamController_default');
async._AsBroadcastStreamController$ = dart.generic(T => {
  var _StreamImplEventsOfTL = () => (_StreamImplEventsOfTL = dart.constFn(async._StreamImplEvents$(T)))();
  var _DelayedDataOfTL = () => (_DelayedDataOfTL = dart.constFn(async._DelayedData$(T)))();
  class _AsBroadcastStreamController extends async._SyncBroadcastStreamController$(T) {
    get [_hasPending]() {
      return this[_pending$] != null && !dart.test(this[_pending$].isEmpty);
    }
    [_addPendingEvent](event) {
      this[_pending$] == null ? this[_pending$] = new (_StreamImplEventsOfTL()).new() : null;
      this[_pending$].add(event);
    }
    add(data) {
      T.as(data);
      if (!dart.test(this.isClosed) && dart.test(this[_isFiring])) {
        this[_addPendingEvent](new (_DelayedDataOfTL()).new(data));
        return;
      }
      super.add(data);
      while (dart.test(this[_hasPending])) {
        this[_pending$].handleNext(this);
      }
    }
    addError(error, stackTrace = null) {
      core.ArgumentError.checkNotNull(core.Object, error, "error");
      stackTrace == null ? stackTrace = async.AsyncError.defaultStackTrace(error) : null;
      if (!dart.test(this.isClosed) && dart.test(this[_isFiring])) {
        this[_addPendingEvent](new async._DelayedError.new(error, stackTrace));
        return;
      }
      if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
      this[_sendError](error, stackTrace);
      while (dart.test(this[_hasPending])) {
        this[_pending$].handleNext(this);
      }
    }
    close() {
      if (!dart.test(this.isClosed) && dart.test(this[_isFiring])) {
        this[_addPendingEvent](C41 || CT.C41);
        this[_state] = (dart.notNull(this[_state]) | 4) >>> 0;
        return super.done;
      }
      let result = super.close();
      if (!!dart.test(this[_hasPending])) dart.assertFailed(null, L30, 504, 12, "!_hasPending");
      return result;
    }
    [_callOnCancel]() {
      if (dart.test(this[_hasPending])) {
        this[_pending$].clear();
        this[_pending$] = null;
      }
      super[_callOnCancel]();
    }
  }
  (_AsBroadcastStreamController.new = function(onListen, onCancel) {
    this[_pending$] = null;
    _AsBroadcastStreamController.__proto__.new.call(this, onListen, onCancel);
    ;
  }).prototype = _AsBroadcastStreamController.prototype;
  dart.addTypeTests(_AsBroadcastStreamController);
  _AsBroadcastStreamController.prototype[_is__AsBroadcastStreamController_default] = true;
  dart.addTypeCaches(_AsBroadcastStreamController);
  _AsBroadcastStreamController[dart.implements] = () => [async._EventDispatch$(T)];
  dart.setMethodSignature(_AsBroadcastStreamController, () => ({
    __proto__: dart.getMethods(_AsBroadcastStreamController.__proto__),
    [_addPendingEvent]: dart.fnType(dart.void, [async._DelayedEvent])
  }));
  dart.setGetterSignature(_AsBroadcastStreamController, () => ({
    __proto__: dart.getGetters(_AsBroadcastStreamController.__proto__),
    [_hasPending]: core.bool
  }));
  dart.setLibraryUri(_AsBroadcastStreamController, L12);
  dart.setFieldSignature(_AsBroadcastStreamController, () => ({
    __proto__: dart.getFields(_AsBroadcastStreamController.__proto__),
    [_pending$]: dart.fieldType(async._StreamImplEvents$(T))
  }));
  return _AsBroadcastStreamController;
});
async._AsBroadcastStreamController = async._AsBroadcastStreamController$();
dart.addTypeTests(async._AsBroadcastStreamController, _is__AsBroadcastStreamController_default);
var libraryName$ = dart.privateName(async, "DeferredLibrary.libraryName");
var uri$ = dart.privateName(async, "DeferredLibrary.uri");
async.DeferredLibrary = class DeferredLibrary extends core.Object {
  get libraryName() {
    return this[libraryName$];
  }
  set libraryName(value) {
    super.libraryName = value;
  }
  get uri() {
    return this[uri$];
  }
  set uri(value) {
    super.uri = value;
  }
  load() {
    dart.throw("DeferredLibrary not supported. " + "please use the `import \"lib.dart\" deferred as lib` syntax.");
  }
};
(async.DeferredLibrary.new = function(libraryName, opts) {
  let uri = opts && 'uri' in opts ? opts.uri : null;
  this[libraryName$] = libraryName;
  this[uri$] = uri;
  ;
}).prototype = async.DeferredLibrary.prototype;
dart.addTypeTests(async.DeferredLibrary);
dart.addTypeCaches(async.DeferredLibrary);
dart.setMethodSignature(async.DeferredLibrary, () => ({
  __proto__: dart.getMethods(async.DeferredLibrary.__proto__),
  load: dart.fnType(async.Future$(core.Null), [])
}));
dart.setLibraryUri(async.DeferredLibrary, L12);
dart.setFieldSignature(async.DeferredLibrary, () => ({
  __proto__: dart.getFields(async.DeferredLibrary.__proto__),
  libraryName: dart.finalFieldType(core.String),
  uri: dart.finalFieldType(core.String)
}));
var _s$ = dart.privateName(async, "_s");
async.DeferredLoadException = class DeferredLoadException extends core.Object {
  toString() {
    return "DeferredLoadException: '" + dart.str(this[_s$]) + "'";
  }
};
(async.DeferredLoadException.new = function(_s) {
  this[_s$] = _s;
  ;
}).prototype = async.DeferredLoadException.prototype;
dart.addTypeTests(async.DeferredLoadException);
dart.addTypeCaches(async.DeferredLoadException);
async.DeferredLoadException[dart.implements] = () => [core.Exception];
dart.setLibraryUri(async.DeferredLoadException, L12);
dart.setFieldSignature(async.DeferredLoadException, () => ({
  __proto__: dart.getFields(async.DeferredLoadException.__proto__),
  [_s$]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(async.DeferredLoadException, ['toString']);
async.FutureOr$ = dart.normalizeFutureOr(T => {
  var FutureOfTL = () => (FutureOfTL = dart.constFn(async.Future$(T)))();
  class FutureOr extends core.Object {}
  (FutureOr.__ = function() {
    dart.throw(new core.UnsupportedError.new("FutureOr can't be instantiated"));
  }).prototype = FutureOr.prototype;
  FutureOr.is = function is_FutureOr(o) {
    return T.is(o) || FutureOfTL().is(o);
  };
  FutureOr.as = function as_FutureOr(o) {
    if (o == null || T.is(o) || FutureOfTL().is(o)) return o;
    dart.castError(o, this);
  };
  dart.addTypeCaches(FutureOr);
  dart.setLibraryUri(FutureOr, L12);
  return FutureOr;
});
async.FutureOr = async.FutureOr$();
var _asyncCompleteError = dart.privateName(async, "_asyncCompleteError");
var _completeWithValue = dart.privateName(async, "_completeWithValue");
var C42;
var C43;
async.Future$ = dart.generic(T => {
  class Future extends core.Object {
    static new(computation) {
      let result = new (async._Future$(T)).new();
      async.Timer.run(dart.fn(() => {
        try {
          result[_complete](computation());
        } catch (e$) {
          let e = dart.getThrown(e$);
          let s = dart.stackTrace(e$);
          async._completeWithErrorCallback(result, e, s);
        }
      }, VoidToNullN()));
      return result;
    }
    static microtask(computation) {
      let result = new (async._Future$(T)).new();
      async.scheduleMicrotask(dart.fn(() => {
        try {
          result[_complete](computation());
        } catch (e$) {
          let e = dart.getThrown(e$);
          let s = dart.stackTrace(e$);
          async._completeWithErrorCallback(result, e, s);
        }
      }, VoidToNullN()));
      return result;
    }
    static sync(computation) {
      try {
        let result = computation();
        if (async.Future$(T).is(result)) {
          return result;
        } else {
          return new (async._Future$(T)).value(T.as(result));
        }
      } catch (e) {
        let error = dart.getThrown(e);
        let stackTrace = dart.stackTrace(e);
        let future = new (async._Future$(T)).new();
        let replacement = async.Zone.current.errorCallback(error, stackTrace);
        if (replacement != null) {
          future[_asyncCompleteError](async._nonNullError(replacement.error), replacement.stackTrace);
        } else {
          future[_asyncCompleteError](error, stackTrace);
        }
        return future;
      }
    }
    static value(value = null) {
      return new (async._Future$(T)).immediate(value);
    }
    static error(error, stackTrace = null) {
      core.ArgumentError.checkNotNull(core.Object, error, "error");
      if (async.Zone.current != async._rootZone) {
        let replacement = async.Zone.current.errorCallback(error, stackTrace);
        if (replacement != null) {
          error = async._nonNullError(replacement.error);
          stackTrace = replacement.stackTrace;
        }
      }
      stackTrace == null ? stackTrace = async.AsyncError.defaultStackTrace(error) : null;
      return new (async._Future$(T)).immediateError(error, stackTrace);
    }
    static delayed(duration, computation = null) {
      let result = new (async._Future$(T)).new();
      async.Timer.new(duration, dart.fn(() => {
        if (computation == null) {
          result[_complete](null);
        } else {
          try {
            result[_complete](computation());
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            async._completeWithErrorCallback(result, e, s);
          }
        }
      }, VoidToNullN()));
      return result;
    }
    static wait(T, futures, opts) {
      let eagerError = opts && 'eagerError' in opts ? opts.eagerError : false;
      let cleanUp = opts && 'cleanUp' in opts ? opts.cleanUp : null;
      let result = new (async._Future$(core.List$(T))).new();
      let values = null;
      let remaining = 0;
      let error = null;
      let stackTrace = null;
      function handleError(theError, theStackTrace) {
        remaining = remaining - 1;
        if (values != null) {
          if (cleanUp != null) {
            for (let value of values) {
              if (value != null) {
                FutureOfNullN().sync(dart.fn(() => {
                  cleanUp(value);
                }, VoidToNullN()));
              }
            }
          }
          values = null;
          if (remaining === 0 || dart.test(eagerError)) {
            result[_completeError](theError, theStackTrace);
          } else {
            error = theError;
            stackTrace = theStackTrace;
          }
        } else if (remaining === 0 && !dart.test(eagerError)) {
          result[_completeError](error, stackTrace);
        }
      }
      dart.fn(handleError, ObjectLAndStackTraceLToNullN());
      try {
        for (let future of futures) {
          let pos = remaining;
          future.then(core.Null, dart.fn(value => {
            remaining = remaining - 1;
            if (values != null) {
              values[$_set](pos, value);
              if (remaining === 0) {
                result[_completeWithValue](values);
              }
            } else {
              if (cleanUp != null && value != null) {
                FutureOfNullN().sync(dart.fn(() => {
                  cleanUp(value);
                }, VoidToNullN()));
              }
              if (remaining === 0 && !dart.test(eagerError)) {
                result[_completeError](error, stackTrace);
              }
            }
          }, dart.fnType(core.Null, [T])), {onError: handleError});
          remaining = remaining + 1;
        }
        if (remaining === 0) {
          return async.Future$(core.List$(T)).value(C42 || CT.C42);
        }
        values = core.List$(T).new(remaining);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let st = dart.stackTrace(e$);
        if (remaining === 0 || dart.test(eagerError)) {
          return async.Future$(core.List$(T)).error(e, st);
        } else {
          error = e;
          stackTrace = st;
        }
      }
      return result;
    }
    static any(T, futures) {
      let completer = async.Completer$(T).sync();
      let onValue = dart.fn(value => {
        if (!dart.test(completer.isCompleted)) completer.complete(value);
      }, dart.fnType(core.Null, [T]));
      let onError = dart.fn((error, stack) => {
        if (!dart.test(completer.isCompleted)) completer.completeError(error, stack);
      }, dynamicAndStackTraceLToNullN());
      for (let future of futures) {
        future.then(core.Null, onValue, {onError: onError});
      }
      return completer.future;
    }
    static forEach(T, elements, action) {
      let iterator = elements[$iterator];
      return async.Future.doWhile(dart.fn(() => {
        if (!dart.test(iterator.moveNext())) return false;
        let result = action(iterator.current);
        if (async.Future.is(result)) return result.then(core.bool, C43 || CT.C43);
        return true;
      }, VoidToFutureOrLOfboolL()));
    }
    static _kTrue(_) {
      return true;
    }
    static doWhile(action) {
      let doneSignal = new async._Future.new();
      let nextIteration = null;
      nextIteration = async.Zone.current.bindUnaryCallbackGuarded(core.bool, dart.fn(keepGoing => {
        while (dart.test(keepGoing)) {
          let result = null;
          try {
            result = action();
          } catch (e) {
            let error = dart.getThrown(e);
            let stackTrace = dart.stackTrace(e);
            async._asyncCompleteWithErrorCallback(doneSignal, error, stackTrace);
            return;
          }
          if (FutureOfboolL().is(result)) {
            result.then(dart.void, nextIteration, {onError: dart.bind(doneSignal, _completeError)});
            return;
          }
          keepGoing = core.bool.as(result);
        }
        doneSignal[_complete](null);
      }, boolLToNullN()));
      nextIteration(true);
      return doneSignal;
    }
  }
  (Future[dart.mixinNew] = function() {
  }).prototype = Future.prototype;
  dart.addTypeTests(Future);
  Future.prototype[dart.isFuture] = true;
  dart.addTypeCaches(Future);
  dart.setLibraryUri(Future, L12);
  return Future;
});
async.Future = async.Future$();
dart.defineLazy(async.Future, {
  /*async.Future._nullFuture*/get _nullFuture() {
    return new (_FutureOfNullN()).zoneValue(null, async.Zone.root);
  },
  /*async.Future._falseFuture*/get _falseFuture() {
    return new (_FutureOfboolL()).zoneValue(false, async.Zone.root);
  }
}, true);
dart.addTypeTests(async.Future, dart.isFuture);
var message$1 = dart.privateName(async, "TimeoutException.message");
var duration$ = dart.privateName(async, "TimeoutException.duration");
async.TimeoutException = class TimeoutException extends core.Object {
  get message() {
    return this[message$1];
  }
  set message(value) {
    super.message = value;
  }
  get duration() {
    return this[duration$];
  }
  set duration(value) {
    super.duration = value;
  }
  toString() {
    let result = "TimeoutException";
    if (this.duration != null) result = "TimeoutException after " + dart.str(this.duration);
    if (this.message != null) result = result + ": " + dart.str(this.message);
    return result;
  }
};
(async.TimeoutException.new = function(message, duration = null) {
  this[message$1] = message;
  this[duration$] = duration;
  ;
}).prototype = async.TimeoutException.prototype;
dart.addTypeTests(async.TimeoutException);
dart.addTypeCaches(async.TimeoutException);
async.TimeoutException[dart.implements] = () => [core.Exception];
dart.setLibraryUri(async.TimeoutException, L12);
dart.setFieldSignature(async.TimeoutException, () => ({
  __proto__: dart.getFields(async.TimeoutException.__proto__),
  message: dart.finalFieldType(core.String),
  duration: dart.finalFieldType(core.Duration)
}));
dart.defineExtensionMethods(async.TimeoutException, ['toString']);
const _is_Completer_default = Symbol('_is_Completer_default');
async.Completer$ = dart.generic(T => {
  class Completer extends core.Object {
    static new() {
      return new (async._AsyncCompleter$(T)).new();
    }
    static sync() {
      return new (async._SyncCompleter$(T)).new();
    }
  }
  (Completer[dart.mixinNew] = function() {
  }).prototype = Completer.prototype;
  dart.addTypeTests(Completer);
  Completer.prototype[_is_Completer_default] = true;
  dart.addTypeCaches(Completer);
  dart.setLibraryUri(Completer, L12);
  return Completer;
});
async.Completer = async.Completer$();
dart.addTypeTests(async.Completer, _is_Completer_default);
const _is__Completer_default = Symbol('_is__Completer_default');
async._Completer$ = dart.generic(T => {
  var _FutureOfTL = () => (_FutureOfTL = dart.constFn(async._Future$(T)))();
  class _Completer extends core.Object {
    completeError(error, stackTrace = null) {
      core.ArgumentError.checkNotNull(core.Object, error, "error");
      if (!dart.test(this.future[_mayComplete])) dart.throw(new core.StateError.new("Future already completed"));
      let replacement = async.Zone.current.errorCallback(error, stackTrace);
      if (replacement != null) {
        error = async._nonNullError(replacement.error);
        stackTrace = replacement.stackTrace;
      }
      stackTrace == null ? stackTrace = async.AsyncError.defaultStackTrace(error) : null;
      this[_completeError](error, stackTrace);
    }
    get isCompleted() {
      return !dart.test(this.future[_mayComplete]);
    }
  }
  (_Completer.new = function() {
    this.future = new (_FutureOfTL()).new();
    ;
  }).prototype = _Completer.prototype;
  dart.addTypeTests(_Completer);
  _Completer.prototype[_is__Completer_default] = true;
  dart.addTypeCaches(_Completer);
  _Completer[dart.implements] = () => [async.Completer$(T)];
  dart.setMethodSignature(_Completer, () => ({
    __proto__: dart.getMethods(_Completer.__proto__),
    completeError: dart.fnType(dart.void, [core.Object], [core.StackTrace])
  }));
  dart.setGetterSignature(_Completer, () => ({
    __proto__: dart.getGetters(_Completer.__proto__),
    isCompleted: core.bool
  }));
  dart.setLibraryUri(_Completer, L12);
  dart.setFieldSignature(_Completer, () => ({
    __proto__: dart.getFields(_Completer.__proto__),
    future: dart.finalFieldType(async._Future$(T))
  }));
  return _Completer;
});
async._Completer = async._Completer$();
dart.addTypeTests(async._Completer, _is__Completer_default);
const _is__AsyncCompleter_default = Symbol('_is__AsyncCompleter_default');
async._AsyncCompleter$ = dart.generic(T => {
  var FutureOrOfTL = () => (FutureOrOfTL = dart.constFn(async.FutureOr$(T)))();
  class _AsyncCompleter extends async._Completer$(T) {
    complete(value = null) {
      FutureOrOfTL().as(value);
      if (!dart.test(this.future[_mayComplete])) dart.throw(new core.StateError.new("Future already completed"));
      this.future[_asyncComplete](value);
    }
    [_completeError](error, stackTrace) {
      this.future[_asyncCompleteError](error, stackTrace);
    }
  }
  (_AsyncCompleter.new = function() {
    _AsyncCompleter.__proto__.new.call(this);
    ;
  }).prototype = _AsyncCompleter.prototype;
  dart.addTypeTests(_AsyncCompleter);
  _AsyncCompleter.prototype[_is__AsyncCompleter_default] = true;
  dart.addTypeCaches(_AsyncCompleter);
  dart.setMethodSignature(_AsyncCompleter, () => ({
    __proto__: dart.getMethods(_AsyncCompleter.__proto__),
    complete: dart.fnType(dart.void, [], [core.Object]),
    [_completeError]: dart.fnType(dart.void, [core.Object, core.StackTrace])
  }));
  dart.setLibraryUri(_AsyncCompleter, L12);
  return _AsyncCompleter;
});
async._AsyncCompleter = async._AsyncCompleter$();
dart.addTypeTests(async._AsyncCompleter, _is__AsyncCompleter_default);
const _is__SyncCompleter_default = Symbol('_is__SyncCompleter_default');
async._SyncCompleter$ = dart.generic(T => {
  var FutureOrOfTL = () => (FutureOrOfTL = dart.constFn(async.FutureOr$(T)))();
  class _SyncCompleter extends async._Completer$(T) {
    complete(value = null) {
      FutureOrOfTL().as(value);
      if (!dart.test(this.future[_mayComplete])) dart.throw(new core.StateError.new("Future already completed"));
      this.future[_complete](value);
    }
    [_completeError](error, stackTrace) {
      this.future[_completeError](error, stackTrace);
    }
  }
  (_SyncCompleter.new = function() {
    _SyncCompleter.__proto__.new.call(this);
    ;
  }).prototype = _SyncCompleter.prototype;
  dart.addTypeTests(_SyncCompleter);
  _SyncCompleter.prototype[_is__SyncCompleter_default] = true;
  dart.addTypeCaches(_SyncCompleter);
  dart.setMethodSignature(_SyncCompleter, () => ({
    __proto__: dart.getMethods(_SyncCompleter.__proto__),
    complete: dart.fnType(dart.void, [], [core.Object]),
    [_completeError]: dart.fnType(dart.void, [core.Object, core.StackTrace])
  }));
  dart.setLibraryUri(_SyncCompleter, L12);
  return _SyncCompleter;
});
async._SyncCompleter = async._SyncCompleter$();
dart.addTypeTests(async._SyncCompleter, _is__SyncCompleter_default);
var _nextListener = dart.privateName(async, "_nextListener");
var _onValue = dart.privateName(async, "_onValue");
var _errorTest = dart.privateName(async, "_errorTest");
var _whenCompleteAction = dart.privateName(async, "_whenCompleteAction");
const _is__FutureListener_default = Symbol('_is__FutureListener_default');
async._FutureListener$ = dart.generic((S, T) => {
  var SLToLFutureOrLOfTL = () => (SLToLFutureOrLOfTL = dart.constFn(dart.fnType(FutureOrOfTL(), [S])))();
  var FutureOrOfTL = () => (FutureOrOfTL = dart.constFn(async.FutureOr$(T)))();
  class _FutureListener extends core.Object {
    get [_zone$]() {
      return this.result[_zone$];
    }
    get handlesValue() {
      return (dart.notNull(this.state) & 1) !== 0;
    }
    get handlesError() {
      return (dart.notNull(this.state) & 2) !== 0;
    }
    get hasErrorTest() {
      return (dart.notNull(this.state) & 15) >>> 0 === 6;
    }
    get handlesComplete() {
      return (dart.notNull(this.state) & 15) >>> 0 === 8;
    }
    get isAwait() {
      return (dart.notNull(this.state) & 16) !== 0;
    }
    get [_onValue]() {
      if (!dart.test(this.handlesValue)) dart.assertFailed(null, L32, 117, 12, "handlesValue");
      return SLToLFutureOrLOfTL().as(this.callback);
    }
    get [_onError]() {
      return this.errorCallback;
    }
    get [_errorTest]() {
      if (!dart.test(this.hasErrorTest)) dart.assertFailed(null, L32, 123, 12, "hasErrorTest");
      return ObjectLToLboolL().as(this.callback);
    }
    get [_whenCompleteAction]() {
      if (!dart.test(this.handlesComplete)) dart.assertFailed(null, L32, 128, 12, "handlesComplete");
      return VoidToLdynamic().as(this.callback);
    }
    get hasErrorCallback() {
      if (!dart.test(this.handlesError)) dart.assertFailed(null, L32, 136, 12, "handlesError");
      return this[_onError] != null;
    }
    handleValue(sourceResult) {
      S.as(sourceResult);
      return this[_zone$].runUnary(FutureOrOfTL(), S, this[_onValue], sourceResult);
    }
    matchesErrorTest(asyncError) {
      if (!dart.test(this.hasErrorTest)) return true;
      return this[_zone$].runUnary(core.bool, core.Object, this[_errorTest], asyncError.error);
    }
    handleError(asyncError) {
      if (!(dart.test(this.handlesError) && dart.test(this.hasErrorCallback))) dart.assertFailed(null, L32, 150, 12, "handlesError && hasErrorCallback");
      let errorCallback = this.errorCallback;
      if (ObjectLAndStackTraceLToLdynamic().is(errorCallback)) {
        return FutureOrOfTL().as(this[_zone$].runBinary(dart.dynamic, core.Object, core.StackTrace, errorCallback, asyncError.error, asyncError.stackTrace));
      } else {
        if (!ObjectLToLdynamic().is(errorCallback)) dart.assertFailed(null, L32, 158, 14, "errorCallback is dynamic Function(Object)");
        return FutureOrOfTL().as(this[_zone$].runUnary(dart.dynamic, core.Object, ObjectLToLdynamic().as(errorCallback), asyncError.error));
      }
    }
    handleWhenComplete() {
      if (!!dart.test(this.handlesError)) dart.assertFailed(null, L32, 164, 12, "!handlesError");
      return this[_zone$].run(dart.dynamic, this[_whenCompleteAction]);
    }
  }
  (_FutureListener.then = function(result, onValue, errorCallback) {
    this[_nextListener] = null;
    this.result = result;
    this.callback = onValue;
    this.errorCallback = errorCallback;
    this.state = errorCallback == null ? 1 : 3;
    ;
  }).prototype = _FutureListener.prototype;
  (_FutureListener.thenAwait = function(result, onValue, errorCallback) {
    this[_nextListener] = null;
    this.result = result;
    this.callback = onValue;
    this.errorCallback = errorCallback;
    this.state = ((errorCallback == null ? 1 : 3) | 16) >>> 0;
    ;
  }).prototype = _FutureListener.prototype;
  (_FutureListener.catchError = function(result, errorCallback, callback) {
    this[_nextListener] = null;
    this.result = result;
    this.errorCallback = errorCallback;
    this.callback = callback;
    this.state = callback == null ? 2 : 6;
    ;
  }).prototype = _FutureListener.prototype;
  (_FutureListener.whenComplete = function(result, callback) {
    this[_nextListener] = null;
    this.result = result;
    this.callback = callback;
    this.errorCallback = null;
    this.state = 8;
    ;
  }).prototype = _FutureListener.prototype;
  dart.addTypeTests(_FutureListener);
  _FutureListener.prototype[_is__FutureListener_default] = true;
  dart.addTypeCaches(_FutureListener);
  dart.setMethodSignature(_FutureListener, () => ({
    __proto__: dart.getMethods(_FutureListener.__proto__),
    handleValue: dart.fnType(async.FutureOr$(T), [core.Object]),
    matchesErrorTest: dart.fnType(core.bool, [async.AsyncError]),
    handleError: dart.fnType(async.FutureOr$(T), [async.AsyncError]),
    handleWhenComplete: dart.fnType(dart.dynamic, [])
  }));
  dart.setGetterSignature(_FutureListener, () => ({
    __proto__: dart.getGetters(_FutureListener.__proto__),
    [_zone$]: async.Zone,
    handlesValue: core.bool,
    handlesError: core.bool,
    hasErrorTest: core.bool,
    handlesComplete: core.bool,
    isAwait: core.bool,
    [_onValue]: dart.fnType(async.FutureOr$(T), [S]),
    [_onError]: core.Function,
    [_errorTest]: dart.fnType(core.bool, [core.Object]),
    [_whenCompleteAction]: dart.fnType(dart.dynamic, []),
    hasErrorCallback: core.bool
  }));
  dart.setLibraryUri(_FutureListener, L12);
  dart.setFieldSignature(_FutureListener, () => ({
    __proto__: dart.getFields(_FutureListener.__proto__),
    [_nextListener]: dart.fieldType(async._FutureListener),
    result: dart.finalFieldType(async._Future$(T)),
    state: dart.finalFieldType(core.int),
    callback: dart.finalFieldType(core.Function),
    errorCallback: dart.finalFieldType(core.Function)
  }));
  return _FutureListener;
});
async._FutureListener = async._FutureListener$();
dart.defineLazy(async._FutureListener, {
  /*async._FutureListener.maskValue*/get maskValue() {
    return 1;
  },
  /*async._FutureListener.maskError*/get maskError() {
    return 2;
  },
  /*async._FutureListener.maskTestError*/get maskTestError() {
    return 4;
  },
  /*async._FutureListener.maskWhencomplete*/get maskWhencomplete() {
    return 8;
  },
  /*async._FutureListener.stateChain*/get stateChain() {
    return 0;
  },
  /*async._FutureListener.stateThen*/get stateThen() {
    return 1;
  },
  /*async._FutureListener.stateThenOnerror*/get stateThenOnerror() {
    return 3;
  },
  /*async._FutureListener.stateCatcherror*/get stateCatcherror() {
    return 2;
  },
  /*async._FutureListener.stateCatcherrorTest*/get stateCatcherrorTest() {
    return 6;
  },
  /*async._FutureListener.stateWhencomplete*/get stateWhencomplete() {
    return 8;
  },
  /*async._FutureListener.maskType*/get maskType() {
    return 15;
  },
  /*async._FutureListener.stateIsAwait*/get stateIsAwait() {
    return 16;
  }
}, true);
dart.addTypeTests(async._FutureListener, _is__FutureListener_default);
var _resultOrListeners = dart.privateName(async, "_resultOrListeners");
var _setValue = dart.privateName(async, "_setValue");
var _isPendingComplete = dart.privateName(async, "_isPendingComplete");
var _mayAddListener = dart.privateName(async, "_mayAddListener");
var _isChained = dart.privateName(async, "_isChained");
var _isComplete = dart.privateName(async, "_isComplete");
var _hasError = dart.privateName(async, "_hasError");
var _setChained = dart.privateName(async, "_setChained");
var _setPendingComplete = dart.privateName(async, "_setPendingComplete");
var _clearPendingComplete = dart.privateName(async, "_clearPendingComplete");
var _error = dart.privateName(async, "_error");
var _chainSource = dart.privateName(async, "_chainSource");
var _setErrorObject = dart.privateName(async, "_setErrorObject");
var _setError = dart.privateName(async, "_setError");
var _cloneResult = dart.privateName(async, "_cloneResult");
var _prependListeners = dart.privateName(async, "_prependListeners");
var _reverseListeners = dart.privateName(async, "_reverseListeners");
var _removeListeners = dart.privateName(async, "_removeListeners");
var _chainFuture = dart.privateName(async, "_chainFuture");
const _is__Future_default = Symbol('_is__Future_default');
async._Future$ = dart.generic(T => {
  var _FutureOfTL = () => (_FutureOfTL = dart.constFn(async._Future$(T)))();
  var _FutureListenerOfTL$TL = () => (_FutureListenerOfTL$TL = dart.constFn(async._FutureListener$(T, T)))();
  var StreamOfTL = () => (StreamOfTL = dart.constFn(async.Stream$(T)))();
  var FutureOrOfTL = () => (FutureOrOfTL = dart.constFn(async.FutureOr$(T)))();
  var FutureOfTL = () => (FutureOfTL = dart.constFn(async.Future$(T)))();
  var VoidToLFutureOrLOfTL = () => (VoidToLFutureOrLOfTL = dart.constFn(dart.fnType(FutureOrOfTL(), [])))();
  var TLToNullN = () => (TLToNullN = dart.constFn(dart.fnType(core.Null, [T])))();
  class _Future extends core.Object {
    get [_mayComplete]() {
      return this[_state] === 0;
    }
    get [_isPendingComplete]() {
      return this[_state] === 1;
    }
    get [_mayAddListener]() {
      return dart.notNull(this[_state]) <= 1;
    }
    get [_isChained]() {
      return this[_state] === 2;
    }
    get [_isComplete]() {
      return dart.notNull(this[_state]) >= 4;
    }
    get [_hasError]() {
      return this[_state] === 8;
    }
    static _continuationFunctions(future) {
      let t36;
      let result = null;
      while (true) {
        if (dart.test(future[_mayAddListener])) return result;
        if (!!dart.test(future[_isComplete])) dart.assertFailed(null, L32, 252, 14, "!future._isComplete");
        if (!!dart.test(future[_isChained])) dart.assertFailed(null, L32, 253, 14, "!future._isChained");
        let listener = _FutureListenerOfObjectL$ObjectL().as(future[_resultOrListeners]);
        if (listener != null && listener[_nextListener] == null && dart.test(listener.isAwait)) {
          (t36 = result, t36 == null ? result = JSArrayOfFunctionL().of([]) : t36)[$add](dart.bind(listener, 'handleValue'));
          future = listener.result;
          if (!!dart.test(future[_isComplete])) dart.assertFailed(null, L32, 261, 16, "!future._isComplete");
        } else {
          break;
        }
      }
      return result;
    }
    [_setChained](source) {
      if (!dart.test(this[_mayAddListener])) dart.assertFailed(null, L32, 270, 12, "_mayAddListener");
      this[_state] = 2;
      this[_resultOrListeners] = source;
    }
    then(R, f, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let currentZone = async.Zone.current;
      if (currentZone != async._rootZone) {
        f = currentZone.registerUnaryCallback(async.FutureOr$(R), T, f);
        if (onError != null) {
          onError = async._registerErrorHandler(onError, currentZone);
        }
      }
      let result = new (async._Future$(R)).new();
      this[_addListener](new (async._FutureListener$(T, R)).then(result, f, onError));
      return result;
    }
    [_thenAwait](E, f, onError) {
      let result = new (async._Future$(E)).new();
      this[_addListener](new (async._FutureListener$(T, E)).thenAwait(result, f, onError));
      return result;
    }
    catchError(onError, opts) {
      let test = opts && 'test' in opts ? opts.test : null;
      let result = new (_FutureOfTL()).new();
      if (result[_zone$] != async._rootZone) {
        onError = async._registerErrorHandler(onError, result[_zone$]);
        if (test != null) test = result[_zone$].registerUnaryCallback(core.bool, dart.dynamic, test);
      }
      this[_addListener](new (_FutureListenerOfTL$TL()).catchError(result, onError, test));
      return result;
    }
    whenComplete(action) {
      let result = new (_FutureOfTL()).new();
      if (result[_zone$] != async._rootZone) {
        action = result[_zone$].registerCallback(dart.dynamic, action);
      }
      this[_addListener](new (_FutureListenerOfTL$TL()).whenComplete(result, action));
      return result;
    }
    asStream() {
      return StreamOfTL().fromFuture(this);
    }
    [_setPendingComplete]() {
      if (!dart.test(this[_mayComplete])) dart.assertFailed(null, L32, 325, 12, "_mayComplete");
      this[_state] = 1;
    }
    [_clearPendingComplete]() {
      if (!dart.test(this[_isPendingComplete])) dart.assertFailed(null, L32, 330, 12, "_isPendingComplete");
      this[_state] = 0;
    }
    get [_error]() {
      if (!dart.test(this[_hasError])) dart.assertFailed(null, L32, 335, 12, "_hasError");
      return async.AsyncError.as(this[_resultOrListeners]);
    }
    get [_chainSource]() {
      if (!dart.test(this[_isChained])) dart.assertFailed(null, L32, 340, 12, "_isChained");
      return async._Future.as(this[_resultOrListeners]);
    }
    [_setValue](value) {
      T.as(value);
      if (!!dart.test(this[_isComplete])) dart.assertFailed(null, L32, 346, 12, "!_isComplete");
      this[_state] = 4;
      this[_resultOrListeners] = value;
    }
    [_setErrorObject](error) {
      if (!!dart.test(this[_isComplete])) dart.assertFailed(null, L32, 352, 12, "!_isComplete");
      this[_state] = 8;
      this[_resultOrListeners] = error;
    }
    [_setError](error, stackTrace) {
      this[_setErrorObject](new async.AsyncError.new(error, stackTrace));
    }
    [_cloneResult](source) {
      if (!!dart.test(this[_isComplete])) dart.assertFailed(null, L32, 365, 12, "!_isComplete");
      if (!dart.test(source[_isComplete])) dart.assertFailed(null, L32, 366, 12, "source._isComplete");
      this[_state] = source[_state];
      this[_resultOrListeners] = source[_resultOrListeners];
    }
    [_addListener](listener) {
      if (!(listener[_nextListener] == null)) dart.assertFailed(null, L32, 372, 12, "listener._nextListener == null");
      if (dart.test(this[_mayAddListener])) {
        listener[_nextListener] = async._FutureListener.as(this[_resultOrListeners]);
        this[_resultOrListeners] = listener;
      } else {
        if (dart.test(this[_isChained])) {
          let source = this[_chainSource];
          if (!dart.test(source[_isComplete])) {
            source[_addListener](listener);
            return;
          }
          this[_cloneResult](source);
        }
        if (!dart.test(this[_isComplete])) dart.assertFailed(null, L32, 388, 14, "_isComplete");
        this[_zone$].scheduleMicrotask(dart.fn(() => {
          async._Future._propagateToListeners(this, listener);
        }, VoidToNullN()));
      }
    }
    [_prependListeners](listeners) {
      if (listeners == null) return;
      if (dart.test(this[_mayAddListener])) {
        let existingListeners = async._FutureListener.as(this[_resultOrListeners]);
        this[_resultOrListeners] = listeners;
        if (existingListeners != null) {
          let cursor = listeners;
          while (cursor[_nextListener] != null) {
            cursor = cursor[_nextListener];
          }
          cursor[_nextListener] = existingListeners;
        }
      } else {
        if (dart.test(this[_isChained])) {
          let source = this[_chainSource];
          if (!dart.test(source[_isComplete])) {
            source[_prependListeners](listeners);
            return;
          }
          this[_cloneResult](source);
        }
        if (!dart.test(this[_isComplete])) dart.assertFailed(null, L32, 420, 14, "_isComplete");
        listeners = this[_reverseListeners](listeners);
        this[_zone$].scheduleMicrotask(dart.fn(() => {
          async._Future._propagateToListeners(this, listeners);
        }, VoidToNullN()));
      }
    }
    [_removeListeners]() {
      if (!!dart.test(this[_isComplete])) dart.assertFailed(null, L32, 431, 12, "!_isComplete");
      let current = async._FutureListener.as(this[_resultOrListeners]);
      this[_resultOrListeners] = null;
      return this[_reverseListeners](current);
    }
    [_reverseListeners](listeners) {
      let prev = null;
      let current = listeners;
      while (current != null) {
        let next = current[_nextListener];
        current[_nextListener] = prev;
        prev = current;
        current = next;
      }
      return prev;
    }
    static _chainForeignFuture(source, target) {
      if (!!dart.test(target[_isComplete])) dart.assertFailed(null, L32, 454, 12, "!target._isComplete");
      if (!!async._Future.is(source)) dart.assertFailed(null, L32, 455, 12, "source is! _Future");
      target[_setPendingComplete]();
      try {
        source.then(core.Null, dart.fn(value => {
          if (!dart.test(target[_isPendingComplete])) dart.assertFailed(null, L32, 461, 16, "target._isPendingComplete");
          target[_clearPendingComplete]();
          target[_complete](value);
        }, dynamicToNullN()), {onError: dart.fn((error, stackTrace = null) => {
            if (!dart.test(target[_isPendingComplete])) dart.assertFailed(null, L32, 473, 16, "target._isPendingComplete");
            target[_completeError](error, stackTrace);
          }, dynamicAndStackTraceLToNullN$())});
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        async.scheduleMicrotask(dart.fn(() => {
          target[_completeError](e, s);
        }, VoidToNullN()));
      }
    }
    static _chainCoreFuture(source, target) {
      if (!dart.test(target[_mayAddListener])) dart.assertFailed(null, L32, 490, 12, "target._mayAddListener");
      while (dart.test(source[_isChained])) {
        source = source[_chainSource];
      }
      if (dart.test(source[_isComplete])) {
        let listeners = target[_removeListeners]();
        target[_cloneResult](source);
        async._Future._propagateToListeners(target, listeners);
      } else {
        let listeners = async._FutureListener.as(target[_resultOrListeners]);
        target[_setChained](source);
        source[_prependListeners](listeners);
      }
    }
    [_complete](value) {
      FutureOrOfTL().as(value);
      if (!!dart.test(this[_isComplete])) dart.assertFailed(null, L32, 506, 12, "!_isComplete");
      if (FutureOfTL().is(value)) {
        if (_FutureOfTL().is(value)) {
          async._Future._chainCoreFuture(value, this);
        } else {
          async._Future._chainForeignFuture(value, this);
        }
      } else {
        let listeners = this[_removeListeners]();
        this[_setValue](T.as(value));
        async._Future._propagateToListeners(this, listeners);
      }
    }
    [_completeWithValue](value) {
      T.as(value);
      if (!!dart.test(this[_isComplete])) dart.assertFailed(null, L32, 521, 12, "!_isComplete");
      if (!!FutureOfTL().is(value)) dart.assertFailed(null, L32, 522, 12, "value is! Future<T>");
      let listeners = this[_removeListeners]();
      this[_setValue](value);
      async._Future._propagateToListeners(this, listeners);
    }
    [_completeError](error, stackTrace = null) {
      if (!!dart.test(this[_isComplete])) dart.assertFailed(null, L32, 530, 12, "!_isComplete");
      let listeners = this[_removeListeners]();
      this[_setError](error, stackTrace);
      async._Future._propagateToListeners(this, listeners);
    }
    [_asyncComplete](value) {
      FutureOrOfTL().as(value);
      if (!!dart.test(this[_isComplete])) dart.assertFailed(null, L32, 538, 12, "!_isComplete");
      if (FutureOfTL().is(value)) {
        this[_chainFuture](value);
        return;
      }
      this[_setPendingComplete]();
      this[_zone$].scheduleMicrotask(dart.fn(() => {
        this[_completeWithValue](T.as(value));
      }, VoidToNullN()));
    }
    [_chainFuture](value) {
      if (_FutureOfTL().is(value)) {
        if (dart.test(value[_hasError])) {
          this[_setPendingComplete]();
          this[_zone$].scheduleMicrotask(dart.fn(() => {
            async._Future._chainCoreFuture(value, this);
          }, VoidToNullN()));
        } else {
          async._Future._chainCoreFuture(value, this);
        }
        return;
      }
      async._Future._chainForeignFuture(value, this);
    }
    [_asyncCompleteError](error, stackTrace) {
      if (!!dart.test(this[_isComplete])) dart.assertFailed(null, L32, 578, 12, "!_isComplete");
      this[_setPendingComplete]();
      this[_zone$].scheduleMicrotask(dart.fn(() => {
        this[_completeError](error, stackTrace);
      }, VoidToNullN()));
    }
    static _propagateToListeners(source, listeners) {
      while (true) {
        if (!dart.test(source[_isComplete])) dart.assertFailed(null, L32, 592, 14, "source._isComplete");
        let hasError = source[_hasError];
        if (listeners == null) {
          if (dart.test(hasError)) {
            let asyncError = source[_error];
            source[_zone$].handleUncaughtError(asyncError.error, asyncError.stackTrace);
          }
          return;
        }
        while (listeners[_nextListener] != null) {
          let listener = listeners;
          listeners = listener[_nextListener];
          listener[_nextListener] = null;
          async._Future._propagateToListeners(source, listener);
        }
        let listener = listeners;
        let sourceResult = source[_resultOrListeners];
        let listenerHasError = hasError;
        let listenerValueOrError = sourceResult;
        if (dart.test(hasError) || dart.test(listener.handlesValue) || dart.test(listener.handlesComplete)) {
          let zone = listener[_zone$];
          if (dart.test(hasError) && !dart.test(source[_zone$].inSameErrorZone(zone))) {
            let asyncError = source[_error];
            source[_zone$].handleUncaughtError(asyncError.error, asyncError.stackTrace);
            return;
          }
          let oldZone = null;
          if (async.Zone.current != zone) {
            oldZone = async.Zone._enter(zone);
          }
          function handleWhenCompleteCallback() {
            if (!!dart.test(listener.handlesValue)) dart.assertFailed(null, L32, 648, 18, "!listener.handlesValue");
            if (!!dart.test(listener.handlesError)) dart.assertFailed(null, L32, 649, 18, "!listener.handlesError");
            let completeResult = null;
            try {
              completeResult = listener.handleWhenComplete();
            } catch (e$) {
              let e = dart.getThrown(e$);
              let s = dart.stackTrace(e$);
              if (dart.test(hasError) && core.identical(source[_error].error, e)) {
                listenerValueOrError = source[_error];
              } else {
                listenerValueOrError = new async.AsyncError.new(e, s);
              }
              listenerHasError = true;
              return;
            }
            if (async.Future.is(completeResult)) {
              if (async._Future.is(completeResult) && dart.test(completeResult[_isComplete])) {
                if (dart.test(completeResult[_hasError])) {
                  listenerValueOrError = completeResult[_error];
                  listenerHasError = true;
                }
                return;
              }
              let originalSource = source;
              listenerValueOrError = completeResult.then(dart.dynamic, dart.fn(_ => originalSource, dynamicTo_FutureL()));
              listenerHasError = false;
            }
          }
          dart.fn(handleWhenCompleteCallback, VoidTovoid());
          function handleValueCallback() {
            try {
              listenerValueOrError = listener.handleValue(sourceResult);
            } catch (e$) {
              let e = dart.getThrown(e$);
              let s = dart.stackTrace(e$);
              listenerValueOrError = new async.AsyncError.new(e, s);
              listenerHasError = true;
            }
          }
          dart.fn(handleValueCallback, VoidTovoid());
          function handleError() {
            try {
              let asyncError = source[_error];
              if (dart.test(listener.matchesErrorTest(asyncError)) && dart.test(listener.hasErrorCallback)) {
                listenerValueOrError = listener.handleError(asyncError);
                listenerHasError = false;
              }
            } catch (e$) {
              let e = dart.getThrown(e$);
              let s = dart.stackTrace(e$);
              if (core.identical(source[_error].error, e)) {
                listenerValueOrError = source[_error];
              } else {
                listenerValueOrError = new async.AsyncError.new(e, s);
              }
              listenerHasError = true;
            }
          }
          dart.fn(handleError, VoidTovoid());
          if (dart.test(listener.handlesComplete)) {
            handleWhenCompleteCallback();
          } else if (!dart.test(hasError)) {
            if (dart.test(listener.handlesValue)) {
              handleValueCallback();
            }
          } else {
            if (dart.test(listener.handlesError)) {
              handleError();
            }
          }
          if (oldZone != null) async.Zone._leave(oldZone);
          if (async.Future.is(listenerValueOrError)) {
            let chainSource = async.Future.as(listenerValueOrError);
            let result = listener.result;
            if (async._Future.is(chainSource)) {
              if (dart.test(chainSource[_isComplete])) {
                listeners = result[_removeListeners]();
                result[_cloneResult](chainSource);
                source = chainSource;
                continue;
              } else {
                async._Future._chainCoreFuture(chainSource, result);
              }
            } else {
              async._Future._chainForeignFuture(chainSource, result);
            }
            return;
          }
        }
        let result = listener.result;
        listeners = result[_removeListeners]();
        if (!dart.test(listenerHasError)) {
          result[_setValue](listenerValueOrError);
        } else {
          let asyncError = async.AsyncError.as(listenerValueOrError);
          result[_setErrorObject](asyncError);
        }
        source = result;
      }
    }
    timeout(timeLimit, opts) {
      let onTimeout = opts && 'onTimeout' in opts ? opts.onTimeout : null;
      VoidToLFutureOrLOfTL().as(onTimeout);
      if (dart.test(this[_isComplete])) return new (_FutureOfTL()).immediate(this);
      let result = new (_FutureOfTL()).new();
      let timer = null;
      if (onTimeout == null) {
        timer = async.Timer.new(timeLimit, dart.fn(() => {
          result[_completeError](new async.TimeoutException.new("Future not completed", timeLimit));
        }, VoidToNullN()));
      } else {
        let zone = async.Zone.current;
        onTimeout = zone.registerCallback(FutureOrOfTL(), onTimeout);
        timer = async.Timer.new(timeLimit, dart.fn(() => {
          try {
            result[_complete](zone.run(FutureOrOfTL(), onTimeout));
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            result[_completeError](e, s);
          }
        }, VoidToNullN()));
      }
      this.then(core.Null, dart.fn(v => {
        if (dart.test(timer.isActive)) {
          timer.cancel();
          result[_completeWithValue](v);
        }
      }, TLToNullN()), {onError: dart.fn((e, s) => {
          if (dart.test(timer.isActive)) {
            timer.cancel();
            result[_completeError](e, s);
          }
        }, dynamicAndStackTraceLToNullN())});
      return result;
    }
  }
  (_Future.new = function() {
    this[_state] = 0;
    this[_resultOrListeners] = null;
    this[_zone$] = async.Zone.current;
    ;
  }).prototype = _Future.prototype;
  (_Future.immediate = function(result) {
    this[_state] = 0;
    this[_resultOrListeners] = null;
    this[_zone$] = async.Zone.current;
    this[_asyncComplete](result);
  }).prototype = _Future.prototype;
  (_Future.zoneValue = function(value, _zone) {
    this[_state] = 0;
    this[_resultOrListeners] = null;
    this[_zone$] = _zone;
    this[_setValue](value);
  }).prototype = _Future.prototype;
  (_Future.immediateError = function(error, stackTrace) {
    this[_state] = 0;
    this[_resultOrListeners] = null;
    this[_zone$] = async.Zone.current;
    this[_asyncCompleteError](error, stackTrace);
  }).prototype = _Future.prototype;
  (_Future.value = function(value) {
    _Future.zoneValue.call(this, value, async.Zone.current);
  }).prototype = _Future.prototype;
  _Future.prototype[dart.isFuture] = true;
  dart.addTypeTests(_Future);
  _Future.prototype[_is__Future_default] = true;
  dart.addTypeCaches(_Future);
  _Future[dart.implements] = () => [async.Future$(T)];
  dart.setMethodSignature(_Future, () => ({
    __proto__: dart.getMethods(_Future.__proto__),
    [_setChained]: dart.fnType(dart.void, [async._Future]),
    then: dart.gFnType(R => [async.Future$(R), [dart.fnType(async.FutureOr$(R), [T])], {onError: core.Function}, {}]),
    [_thenAwait]: dart.gFnType(E => [async.Future$(E), [dart.fnType(async.FutureOr$(E), [T]), core.Function]]),
    catchError: dart.fnType(async.Future$(T), [core.Function], {test: dart.fnType(core.bool, [dart.dynamic])}, {}),
    whenComplete: dart.fnType(async.Future$(T), [dart.fnType(dart.dynamic, [])]),
    asStream: dart.fnType(async.Stream$(T), []),
    [_setPendingComplete]: dart.fnType(dart.void, []),
    [_clearPendingComplete]: dart.fnType(dart.void, []),
    [_setValue]: dart.fnType(dart.void, [core.Object]),
    [_setErrorObject]: dart.fnType(dart.void, [async.AsyncError]),
    [_setError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
    [_cloneResult]: dart.fnType(dart.void, [async._Future]),
    [_addListener]: dart.fnType(dart.void, [async._FutureListener]),
    [_prependListeners]: dart.fnType(dart.void, [async._FutureListener]),
    [_removeListeners]: dart.fnType(async._FutureListener, []),
    [_reverseListeners]: dart.fnType(async._FutureListener, [async._FutureListener]),
    [_complete]: dart.fnType(dart.void, [core.Object]),
    [_completeWithValue]: dart.fnType(dart.void, [core.Object]),
    [_completeError]: dart.fnType(dart.void, [core.Object], [core.StackTrace]),
    [_asyncComplete]: dart.fnType(dart.void, [core.Object]),
    [_chainFuture]: dart.fnType(dart.void, [async.Future$(T)]),
    [_asyncCompleteError]: dart.fnType(dart.void, [dart.dynamic, core.StackTrace]),
    timeout: dart.fnType(async.Future$(T), [core.Duration], {onTimeout: core.Object}, {})
  }));
  dart.setGetterSignature(_Future, () => ({
    __proto__: dart.getGetters(_Future.__proto__),
    [_mayComplete]: core.bool,
    [_isPendingComplete]: core.bool,
    [_mayAddListener]: core.bool,
    [_isChained]: core.bool,
    [_isComplete]: core.bool,
    [_hasError]: core.bool,
    [_error]: async.AsyncError,
    [_chainSource]: async._Future
  }));
  dart.setLibraryUri(_Future, L12);
  dart.setFieldSignature(_Future, () => ({
    __proto__: dart.getFields(_Future.__proto__),
    [_state]: dart.fieldType(core.int),
    [_zone$]: dart.finalFieldType(async.Zone),
    [_resultOrListeners]: dart.fieldType(dart.dynamic)
  }));
  return _Future;
});
async._Future = async._Future$();
dart.defineLazy(async._Future, {
  /*async._Future._stateIncomplete*/get _stateIncomplete() {
    return 0;
  },
  /*async._Future._statePendingComplete*/get _statePendingComplete() {
    return 1;
  },
  /*async._Future._stateChained*/get _stateChained() {
    return 2;
  },
  /*async._Future._stateValue*/get _stateValue() {
    return 4;
  },
  /*async._Future._stateError*/get _stateError() {
    return 8;
  }
}, true);
dart.addTypeTests(async._Future, _is__Future_default);
async._AsyncCallbackEntry = class _AsyncCallbackEntry extends core.Object {};
(async._AsyncCallbackEntry.new = function(callback) {
  this.next = null;
  this.callback = callback;
  ;
}).prototype = async._AsyncCallbackEntry.prototype;
dart.addTypeTests(async._AsyncCallbackEntry);
dart.addTypeCaches(async._AsyncCallbackEntry);
dart.setLibraryUri(async._AsyncCallbackEntry, L12);
dart.setFieldSignature(async._AsyncCallbackEntry, () => ({
  __proto__: dart.getFields(async._AsyncCallbackEntry.__proto__),
  callback: dart.finalFieldType(dart.fnType(dart.void, [])),
  next: dart.fieldType(async._AsyncCallbackEntry)
}));
var C44;
var C45;
async._AsyncRun = class _AsyncRun extends core.Object {
  static _initializeScheduleImmediate() {
    if (dart.global.scheduleImmediate != null) {
      return C44 || CT.C44;
    }
    return C45 || CT.C45;
  }
  static _scheduleImmediateJSOverride(callback) {
    dart.addAsyncCallback();
    dart.global.scheduleImmediate(() => {
      dart.removeAsyncCallback();
      callback();
    });
  }
  static _scheduleImmediateWithPromise(callback) {
    dart.addAsyncCallback();
    dart.global.Promise.resolve(null).then(() => {
      dart.removeAsyncCallback();
      callback();
    });
  }
  static _scheduleImmediate(callback) {
    async._AsyncRun._scheduleImmediateClosure(callback);
  }
};
(async._AsyncRun.new = function() {
  ;
}).prototype = async._AsyncRun.prototype;
dart.addTypeTests(async._AsyncRun);
dart.addTypeCaches(async._AsyncRun);
dart.setLibraryUri(async._AsyncRun, L12);
dart.defineLazy(async._AsyncRun, {
  /*async._AsyncRun._scheduleImmediateClosure*/get _scheduleImmediateClosure() {
    return async._AsyncRun._initializeScheduleImmediate();
  }
}, true);
async.StreamSubscription$ = dart.generic(T => {
  class StreamSubscription extends core.Object {}
  (StreamSubscription.new = function() {
    ;
  }).prototype = StreamSubscription.prototype;
  dart.addTypeTests(StreamSubscription);
  StreamSubscription.prototype[dart.isStreamSubscription] = true;
  dart.addTypeCaches(StreamSubscription);
  dart.setLibraryUri(StreamSubscription, L12);
  return StreamSubscription;
});
async.StreamSubscription = async.StreamSubscription$();
dart.addTypeTests(async.StreamSubscription, dart.isStreamSubscription);
const _is_EventSink_default = Symbol('_is_EventSink_default');
async.EventSink$ = dart.generic(T => {
  class EventSink extends core.Object {}
  (EventSink.new = function() {
    ;
  }).prototype = EventSink.prototype;
  dart.addTypeTests(EventSink);
  EventSink.prototype[_is_EventSink_default] = true;
  dart.addTypeCaches(EventSink);
  EventSink[dart.implements] = () => [core.Sink$(T)];
  dart.setLibraryUri(EventSink, L12);
  return EventSink;
});
async.EventSink = async.EventSink$();
dart.addTypeTests(async.EventSink, _is_EventSink_default);
var _stream$ = dart.privateName(async, "_stream");
const _is_StreamView_default = Symbol('_is_StreamView_default');
var _stream = dart.privateName(async, "StreamView._stream");
async.StreamView$ = dart.generic(T => {
  class StreamView extends async.Stream$(T) {
    get [_stream$]() {
      return this[_stream];
    }
    set [_stream$](value) {
      super[_stream$] = value;
    }
    get isBroadcast() {
      return this[_stream$].isBroadcast;
    }
    asBroadcastStream(opts) {
      let onListen = opts && 'onListen' in opts ? opts.onListen : null;
      let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
      return this[_stream$].asBroadcastStream({onListen: onListen, onCancel: onCancel});
    }
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      return this[_stream$].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
    }
  }
  (StreamView.new = function(stream) {
    this[_stream] = stream;
    StreamView.__proto__._internal.call(this);
    ;
  }).prototype = StreamView.prototype;
  dart.addTypeTests(StreamView);
  StreamView.prototype[_is_StreamView_default] = true;
  dart.addTypeCaches(StreamView);
  dart.setMethodSignature(StreamView, () => ({
    __proto__: dart.getMethods(StreamView.__proto__),
    listen: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {})
  }));
  dart.setLibraryUri(StreamView, L12);
  dart.setFieldSignature(StreamView, () => ({
    __proto__: dart.getFields(StreamView.__proto__),
    [_stream$]: dart.finalFieldType(async.Stream$(T))
  }));
  return StreamView;
});
async.StreamView = async.StreamView$();
dart.addTypeTests(async.StreamView, _is_StreamView_default);
const _is_StreamConsumer_default = Symbol('_is_StreamConsumer_default');
async.StreamConsumer$ = dart.generic(S => {
  class StreamConsumer extends core.Object {}
  (StreamConsumer.new = function() {
    ;
  }).prototype = StreamConsumer.prototype;
  dart.addTypeTests(StreamConsumer);
  StreamConsumer.prototype[_is_StreamConsumer_default] = true;
  dart.addTypeCaches(StreamConsumer);
  dart.setLibraryUri(StreamConsumer, L12);
  return StreamConsumer;
});
async.StreamConsumer = async.StreamConsumer$();
dart.addTypeTests(async.StreamConsumer, _is_StreamConsumer_default);
const _is_StreamSink_default = Symbol('_is_StreamSink_default');
async.StreamSink$ = dart.generic(S => {
  class StreamSink extends core.Object {}
  (StreamSink.new = function() {
    ;
  }).prototype = StreamSink.prototype;
  dart.addTypeTests(StreamSink);
  StreamSink.prototype[_is_StreamSink_default] = true;
  dart.addTypeCaches(StreamSink);
  StreamSink[dart.implements] = () => [async.EventSink$(S), async.StreamConsumer$(S)];
  dart.setLibraryUri(StreamSink, L12);
  return StreamSink;
});
async.StreamSink = async.StreamSink$();
dart.addTypeTests(async.StreamSink, _is_StreamSink_default);
const _is_StreamTransformer_default = Symbol('_is_StreamTransformer_default');
async.StreamTransformer$ = dart.generic((S, T) => {
  class StreamTransformer extends core.Object {
    static castFrom(SS, ST, TS, TT, source) {
      return new (_internal.CastStreamTransformer$(SS, ST, TS, TT)).new(source);
    }
  }
  (StreamTransformer[dart.mixinNew] = function() {
  }).prototype = StreamTransformer.prototype;
  dart.addTypeTests(StreamTransformer);
  StreamTransformer.prototype[_is_StreamTransformer_default] = true;
  dart.addTypeCaches(StreamTransformer);
  dart.setLibraryUri(StreamTransformer, L12);
  return StreamTransformer;
});
async.StreamTransformer = async.StreamTransformer$();
dart.addTypeTests(async.StreamTransformer, _is_StreamTransformer_default);
const _is_StreamIterator_default = Symbol('_is_StreamIterator_default');
async.StreamIterator$ = dart.generic(T => {
  class StreamIterator extends core.Object {
    static new(stream) {
      return new (async._StreamIterator$(T)).new(stream);
    }
  }
  (StreamIterator[dart.mixinNew] = function() {
  }).prototype = StreamIterator.prototype;
  dart.addTypeTests(StreamIterator);
  StreamIterator.prototype[_is_StreamIterator_default] = true;
  dart.addTypeCaches(StreamIterator);
  dart.setLibraryUri(StreamIterator, L12);
  return StreamIterator;
});
async.StreamIterator = async.StreamIterator$();
dart.addTypeTests(async.StreamIterator, _is_StreamIterator_default);
const _is__ControllerEventSinkWrapper_default = Symbol('_is__ControllerEventSinkWrapper_default');
async._ControllerEventSinkWrapper$ = dart.generic(T => {
  class _ControllerEventSinkWrapper extends core.Object {
    add(data) {
      T.as(data);
      this[_sink$].add(data);
    }
    addError(error, stackTrace = null) {
      this[_sink$].addError(error, stackTrace);
    }
    close() {
      this[_sink$].close();
    }
  }
  (_ControllerEventSinkWrapper.new = function(_sink) {
    this[_sink$] = _sink;
    ;
  }).prototype = _ControllerEventSinkWrapper.prototype;
  dart.addTypeTests(_ControllerEventSinkWrapper);
  _ControllerEventSinkWrapper.prototype[_is__ControllerEventSinkWrapper_default] = true;
  dart.addTypeCaches(_ControllerEventSinkWrapper);
  _ControllerEventSinkWrapper[dart.implements] = () => [async.EventSink$(T)];
  dart.setMethodSignature(_ControllerEventSinkWrapper, () => ({
    __proto__: dart.getMethods(_ControllerEventSinkWrapper.__proto__),
    add: dart.fnType(dart.void, [core.Object]),
    addError: dart.fnType(dart.void, [core.Object], [core.StackTrace]),
    close: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(_ControllerEventSinkWrapper, L12);
  dart.setFieldSignature(_ControllerEventSinkWrapper, () => ({
    __proto__: dart.getFields(_ControllerEventSinkWrapper.__proto__),
    [_sink$]: dart.fieldType(async.EventSink)
  }));
  return _ControllerEventSinkWrapper;
});
async._ControllerEventSinkWrapper = async._ControllerEventSinkWrapper$();
dart.addTypeTests(async._ControllerEventSinkWrapper, _is__ControllerEventSinkWrapper_default);
const _is_StreamController_default = Symbol('_is_StreamController_default');
async.StreamController$ = dart.generic(T => {
  class StreamController extends core.Object {
    static new(opts) {
      let onListen = opts && 'onListen' in opts ? opts.onListen : null;
      let onPause = opts && 'onPause' in opts ? opts.onPause : null;
      let onResume = opts && 'onResume' in opts ? opts.onResume : null;
      let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
      let sync = opts && 'sync' in opts ? opts.sync : false;
      return dart.test(sync) ? new (async._SyncStreamController$(T)).new(onListen, onPause, onResume, onCancel) : new (async._AsyncStreamController$(T)).new(onListen, onPause, onResume, onCancel);
    }
    static broadcast(opts) {
      let onListen = opts && 'onListen' in opts ? opts.onListen : null;
      let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
      let sync = opts && 'sync' in opts ? opts.sync : false;
      return dart.test(sync) ? new (async._SyncBroadcastStreamController$(T)).new(onListen, onCancel) : new (async._AsyncBroadcastStreamController$(T)).new(onListen, onCancel);
    }
  }
  (StreamController[dart.mixinNew] = function() {
  }).prototype = StreamController.prototype;
  dart.addTypeTests(StreamController);
  StreamController.prototype[_is_StreamController_default] = true;
  dart.addTypeCaches(StreamController);
  StreamController[dart.implements] = () => [async.StreamSink$(T)];
  dart.setLibraryUri(StreamController, L12);
  return StreamController;
});
async.StreamController = async.StreamController$();
dart.addTypeTests(async.StreamController, _is_StreamController_default);
const _is_SynchronousStreamController_default = Symbol('_is_SynchronousStreamController_default');
async.SynchronousStreamController$ = dart.generic(T => {
  class SynchronousStreamController extends core.Object {}
  (SynchronousStreamController.new = function() {
    ;
  }).prototype = SynchronousStreamController.prototype;
  dart.addTypeTests(SynchronousStreamController);
  SynchronousStreamController.prototype[_is_SynchronousStreamController_default] = true;
  dart.addTypeCaches(SynchronousStreamController);
  SynchronousStreamController[dart.implements] = () => [async.StreamController$(T)];
  dart.setLibraryUri(SynchronousStreamController, L12);
  return SynchronousStreamController;
});
async.SynchronousStreamController = async.SynchronousStreamController$();
dart.addTypeTests(async.SynchronousStreamController, _is_SynchronousStreamController_default);
const _is__StreamControllerLifecycle_default = Symbol('_is__StreamControllerLifecycle_default');
async._StreamControllerLifecycle$ = dart.generic(T => {
  var StreamSubscriptionOfTL = () => (StreamSubscriptionOfTL = dart.constFn(async.StreamSubscription$(T)))();
  class _StreamControllerLifecycle extends core.Object {
    [_recordPause](subscription) {
      StreamSubscriptionOfTL().as(subscription);
    }
    [_recordResume](subscription) {
      StreamSubscriptionOfTL().as(subscription);
    }
    [_recordCancel](subscription) {
      StreamSubscriptionOfTL().as(subscription);
      return null;
    }
  }
  (_StreamControllerLifecycle.new = function() {
    ;
  }).prototype = _StreamControllerLifecycle.prototype;
  dart.addTypeTests(_StreamControllerLifecycle);
  _StreamControllerLifecycle.prototype[_is__StreamControllerLifecycle_default] = true;
  dart.addTypeCaches(_StreamControllerLifecycle);
  dart.setMethodSignature(_StreamControllerLifecycle, () => ({
    __proto__: dart.getMethods(_StreamControllerLifecycle.__proto__),
    [_recordPause]: dart.fnType(dart.void, [core.Object]),
    [_recordResume]: dart.fnType(dart.void, [core.Object]),
    [_recordCancel]: dart.fnType(async.Future, [core.Object])
  }));
  dart.setLibraryUri(_StreamControllerLifecycle, L12);
  return _StreamControllerLifecycle;
});
async._StreamControllerLifecycle = async._StreamControllerLifecycle$();
dart.addTypeTests(async._StreamControllerLifecycle, _is__StreamControllerLifecycle_default);
const _is__StreamControllerBase_default = Symbol('_is__StreamControllerBase_default');
async._StreamControllerBase$ = dart.generic(T => {
  class _StreamControllerBase extends core.Object {}
  (_StreamControllerBase.new = function() {
    ;
  }).prototype = _StreamControllerBase.prototype;
  dart.addTypeTests(_StreamControllerBase);
  _StreamControllerBase.prototype[_is__StreamControllerBase_default] = true;
  dart.addTypeCaches(_StreamControllerBase);
  _StreamControllerBase[dart.implements] = () => [async.StreamController$(T), async._StreamControllerLifecycle$(T), async._EventSink$(T), async._EventDispatch$(T)];
  dart.setLibraryUri(_StreamControllerBase, L12);
  return _StreamControllerBase;
});
async._StreamControllerBase = async._StreamControllerBase$();
dart.addTypeTests(async._StreamControllerBase, _is__StreamControllerBase_default);
var _varData = dart.privateName(async, "_varData");
var _isInitialState = dart.privateName(async, "_isInitialState");
var _subscription = dart.privateName(async, "_subscription");
var _pendingEvents = dart.privateName(async, "_pendingEvents");
var _ensurePendingEvents = dart.privateName(async, "_ensurePendingEvents");
var _badEventState = dart.privateName(async, "_badEventState");
const _is__StreamController_default = Symbol('_is__StreamController_default');
async._StreamController$ = dart.generic(T => {
  var _ControllerStreamOfTL = () => (_ControllerStreamOfTL = dart.constFn(async._ControllerStream$(T)))();
  var _StreamSinkWrapperOfTL = () => (_StreamSinkWrapperOfTL = dart.constFn(async._StreamSinkWrapper$(T)))();
  var _PendingEventsOfTL = () => (_PendingEventsOfTL = dart.constFn(async._PendingEvents$(T)))();
  var _StreamControllerAddStreamStateOfTL = () => (_StreamControllerAddStreamStateOfTL = dart.constFn(async._StreamControllerAddStreamState$(T)))();
  var _StreamImplEventsOfTL = () => (_StreamImplEventsOfTL = dart.constFn(async._StreamImplEvents$(T)))();
  var _ControllerSubscriptionOfTL = () => (_ControllerSubscriptionOfTL = dart.constFn(async._ControllerSubscription$(T)))();
  var StreamOfTL = () => (StreamOfTL = dart.constFn(async.Stream$(T)))();
  var _DelayedDataOfTL = () => (_DelayedDataOfTL = dart.constFn(async._DelayedData$(T)))();
  class _StreamController extends core.Object {
    get stream() {
      return new (_ControllerStreamOfTL()).new(this);
    }
    get sink() {
      return new (_StreamSinkWrapperOfTL()).new(this);
    }
    get [_isCanceled]() {
      return (dart.notNull(this[_state]) & 2) !== 0;
    }
    get hasListener() {
      return (dart.notNull(this[_state]) & 1) !== 0;
    }
    get [_isInitialState]() {
      return (dart.notNull(this[_state]) & 3) >>> 0 === 0;
    }
    get isClosed() {
      return (dart.notNull(this[_state]) & 4) !== 0;
    }
    get isPaused() {
      return dart.test(this.hasListener) ? this[_subscription][_isInputPaused] : !dart.test(this[_isCanceled]);
    }
    get [_isAddingStream]() {
      return (dart.notNull(this[_state]) & 8) !== 0;
    }
    get [_mayAddEvent]() {
      return dart.notNull(this[_state]) < 4;
    }
    get [_pendingEvents]() {
      if (!dart.test(this[_isInitialState])) dart.assertFailed(null, L33, 521, 12, "_isInitialState");
      if (!dart.test(this[_isAddingStream])) {
        return _PendingEventsOfTL().as(this[_varData]);
      }
      let state = _StreamControllerAddStreamStateOfTL().as(this[_varData]);
      return _PendingEventsOfTL().as(state.varData);
    }
    [_ensurePendingEvents]() {
      if (!dart.test(this[_isInitialState])) dart.assertFailed(null, L33, 531, 12, "_isInitialState");
      if (!dart.test(this[_isAddingStream])) {
        this[_varData] == null ? this[_varData] = new (_StreamImplEventsOfTL()).new() : null;
        return _StreamImplEventsOfTL().as(this[_varData]);
      }
      let state = _StreamControllerAddStreamStateOfTL().as(this[_varData]);
      if (state.varData == null) state.varData = new (_StreamImplEventsOfTL()).new();
      return _StreamImplEventsOfTL().as(state.varData);
    }
    get [_subscription]() {
      if (!dart.test(this.hasListener)) dart.assertFailed(null, L33, 545, 12, "hasListener");
      if (dart.test(this[_isAddingStream])) {
        let addState = _StreamControllerAddStreamStateOfTL().as(this[_varData]);
        return _ControllerSubscriptionOfTL().as(addState.varData);
      }
      return _ControllerSubscriptionOfTL().as(this[_varData]);
    }
    [_badEventState]() {
      if (dart.test(this.isClosed)) {
        return new core.StateError.new("Cannot add event after closing");
      }
      if (!dart.test(this[_isAddingStream])) dart.assertFailed(null, L33, 562, 12, "_isAddingStream");
      return new core.StateError.new("Cannot add event while adding a stream");
    }
    addStream(source, opts) {
      let t41;
      StreamOfTL().as(source);
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
      if (dart.test(this[_isCanceled])) return new async._Future.immediate(null);
      let addState = new (_StreamControllerAddStreamStateOfTL()).new(this, this[_varData], source, (t41 = cancelOnError, t41 == null ? false : t41));
      this[_varData] = addState;
      this[_state] = (dart.notNull(this[_state]) | 8) >>> 0;
      return addState.addStreamFuture;
    }
    get done() {
      return this[_ensureDoneFuture]();
    }
    [_ensureDoneFuture]() {
      this[_doneFuture] == null ? this[_doneFuture] = dart.test(this[_isCanceled]) ? async.Future._nullFuture : new async._Future.new() : null;
      return this[_doneFuture];
    }
    add(value) {
      T.as(value);
      if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
      this[_add](value);
    }
    addError(error, stackTrace = null) {
      core.ArgumentError.checkNotNull(core.Object, error, "error");
      if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
      error = async._nonNullError(error);
      let replacement = async.Zone.current.errorCallback(error, stackTrace);
      if (replacement != null) {
        error = async._nonNullError(replacement.error);
        stackTrace = replacement.stackTrace;
      }
      stackTrace == null ? stackTrace = async.AsyncError.defaultStackTrace(error) : null;
      this[_addError](error, stackTrace);
    }
    close() {
      if (dart.test(this.isClosed)) {
        return this[_ensureDoneFuture]();
      }
      if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
      this[_closeUnchecked]();
      return this[_ensureDoneFuture]();
    }
    [_closeUnchecked]() {
      this[_state] = (dart.notNull(this[_state]) | 4) >>> 0;
      if (dart.test(this.hasListener)) {
        this[_sendDone]();
      } else if (dart.test(this[_isInitialState])) {
        this[_ensurePendingEvents]().add(C41 || CT.C41);
      }
    }
    [_add](value) {
      T.as(value);
      if (dart.test(this.hasListener)) {
        this[_sendData](value);
      } else if (dart.test(this[_isInitialState])) {
        this[_ensurePendingEvents]().add(new (_DelayedDataOfTL()).new(value));
      }
    }
    [_addError](error, stackTrace) {
      if (dart.test(this.hasListener)) {
        this[_sendError](error, stackTrace);
      } else if (dart.test(this[_isInitialState])) {
        this[_ensurePendingEvents]().add(new async._DelayedError.new(error, stackTrace));
      }
    }
    [_close]() {
      if (!dart.test(this[_isAddingStream])) dart.assertFailed(null, L33, 671, 12, "_isAddingStream");
      let addState = _StreamControllerAddStreamStateOfTL().as(this[_varData]);
      this[_varData] = addState.varData;
      this[_state] = (dart.notNull(this[_state]) & ~8 >>> 0) >>> 0;
      addState.complete();
    }
    [_subscribe](onData, onError, onDone, cancelOnError) {
      if (!dart.test(this[_isInitialState])) {
        dart.throw(new core.StateError.new("Stream has already been listened to."));
      }
      let subscription = new (_ControllerSubscriptionOfTL()).new(this, onData, onError, onDone, cancelOnError);
      let pendingEvents = this[_pendingEvents];
      this[_state] = (dart.notNull(this[_state]) | 1) >>> 0;
      if (dart.test(this[_isAddingStream])) {
        let addState = _StreamControllerAddStreamStateOfTL().as(this[_varData]);
        addState.varData = subscription;
        addState.resume();
      } else {
        this[_varData] = subscription;
      }
      subscription[_setPendingEvents](pendingEvents);
      subscription[_guardCallback](dart.fn(() => {
        async._runGuarded(this.onListen);
      }, VoidToNullN()));
      return subscription;
    }
    [_recordCancel](subscription) {
      let t42;
      let result = null;
      if (dart.test(this[_isAddingStream])) {
        let addState = _StreamControllerAddStreamStateOfTL().as(this[_varData]);
        result = addState.cancel();
      }
      this[_varData] = null;
      this[_state] = (dart.notNull(this[_state]) & ~(1 | 8) >>> 0 | 2) >>> 0;
      if (this.onCancel != null) {
        if (result == null) {
          try {
            result = async.Future.as(this.onCancel());
          } catch (e$) {
            let e = dart.getThrown(e$);
            let s = dart.stackTrace(e$);
            result = (t42 = new async._Future.new(), t42[_asyncCompleteError](e, s), t42);
          }
        } else {
          result = result.whenComplete(this.onCancel);
        }
      }
      const complete = () => {
        if (this[_doneFuture] != null && dart.test(this[_doneFuture][_mayComplete])) {
          this[_doneFuture][_asyncComplete](null);
        }
      };
      dart.fn(complete, VoidTovoid());
      if (result != null) {
        result = result.whenComplete(complete);
      } else {
        complete();
      }
      return result;
    }
    [_recordPause](subscription) {
      if (dart.test(this[_isAddingStream])) {
        let addState = _StreamControllerAddStreamStateOfTL().as(this[_varData]);
        addState.pause();
      }
      async._runGuarded(this.onPause);
    }
    [_recordResume](subscription) {
      if (dart.test(this[_isAddingStream])) {
        let addState = _StreamControllerAddStreamStateOfTL().as(this[_varData]);
        addState.resume();
      }
      async._runGuarded(this.onResume);
    }
  }
  (_StreamController.new = function(onListen, onPause, onResume, onCancel) {
    this[_varData] = null;
    this[_state] = 0;
    this[_doneFuture] = null;
    this.onListen = onListen;
    this.onPause = onPause;
    this.onResume = onResume;
    this.onCancel = onCancel;
    ;
  }).prototype = _StreamController.prototype;
  dart.addTypeTests(_StreamController);
  _StreamController.prototype[_is__StreamController_default] = true;
  dart.addTypeCaches(_StreamController);
  _StreamController[dart.implements] = () => [async._StreamControllerBase$(T)];
  dart.setMethodSignature(_StreamController, () => ({
    __proto__: dart.getMethods(_StreamController.__proto__),
    [_ensurePendingEvents]: dart.fnType(async._StreamImplEvents$(T), []),
    [_badEventState]: dart.fnType(core.Error, []),
    addStream: dart.fnType(async.Future, [core.Object], {cancelOnError: core.bool}, {}),
    [_ensureDoneFuture]: dart.fnType(async.Future, []),
    add: dart.fnType(dart.void, [core.Object]),
    addError: dart.fnType(dart.void, [core.Object], [core.StackTrace]),
    close: dart.fnType(async.Future, []),
    [_closeUnchecked]: dart.fnType(dart.void, []),
    [_add]: dart.fnType(dart.void, [core.Object]),
    [_addError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
    [_close]: dart.fnType(dart.void, []),
    [_subscribe]: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T]), core.Function, dart.fnType(dart.void, []), core.bool]),
    [_recordCancel]: dart.fnType(async.Future, [async.StreamSubscription$(T)]),
    [_recordPause]: dart.fnType(dart.void, [async.StreamSubscription$(T)]),
    [_recordResume]: dart.fnType(dart.void, [async.StreamSubscription$(T)])
  }));
  dart.setGetterSignature(_StreamController, () => ({
    __proto__: dart.getGetters(_StreamController.__proto__),
    stream: async.Stream$(T),
    sink: async.StreamSink$(T),
    [_isCanceled]: core.bool,
    hasListener: core.bool,
    [_isInitialState]: core.bool,
    isClosed: core.bool,
    isPaused: core.bool,
    [_isAddingStream]: core.bool,
    [_mayAddEvent]: core.bool,
    [_pendingEvents]: async._PendingEvents$(T),
    [_subscription]: async._ControllerSubscription$(T),
    done: async.Future
  }));
  dart.setLibraryUri(_StreamController, L12);
  dart.setFieldSignature(_StreamController, () => ({
    __proto__: dart.getFields(_StreamController.__proto__),
    [_varData]: dart.fieldType(dart.dynamic),
    [_state]: dart.fieldType(core.int),
    [_doneFuture]: dart.fieldType(async._Future),
    onListen: dart.fieldType(dart.fnType(dart.void, [])),
    onPause: dart.fieldType(dart.fnType(dart.void, [])),
    onResume: dart.fieldType(dart.fnType(dart.void, [])),
    onCancel: dart.fieldType(dart.fnType(dart.dynamic, []))
  }));
  return _StreamController;
});
async._StreamController = async._StreamController$();
dart.defineLazy(async._StreamController, {
  /*async._StreamController._STATE_INITIAL*/get _STATE_INITIAL() {
    return 0;
  },
  /*async._StreamController._STATE_SUBSCRIBED*/get _STATE_SUBSCRIBED() {
    return 1;
  },
  /*async._StreamController._STATE_CANCELED*/get _STATE_CANCELED() {
    return 2;
  },
  /*async._StreamController._STATE_SUBSCRIPTION_MASK*/get _STATE_SUBSCRIPTION_MASK() {
    return 3;
  },
  /*async._StreamController._STATE_CLOSED*/get _STATE_CLOSED() {
    return 4;
  },
  /*async._StreamController._STATE_ADDSTREAM*/get _STATE_ADDSTREAM() {
    return 8;
  }
}, true);
dart.addTypeTests(async._StreamController, _is__StreamController_default);
const _is__SyncStreamControllerDispatch_default = Symbol('_is__SyncStreamControllerDispatch_default');
async._SyncStreamControllerDispatch$ = dart.generic(T => {
  class _SyncStreamControllerDispatch extends core.Object {
    [_sendData](data) {
      this[_subscription][_add](data);
    }
    [_sendError](error, stackTrace) {
      this[_subscription][_addError](error, stackTrace);
    }
    [_sendDone]() {
      this[_subscription][_close]();
    }
  }
  (_SyncStreamControllerDispatch.new = function() {
    ;
  }).prototype = _SyncStreamControllerDispatch.prototype;
  dart.addTypeTests(_SyncStreamControllerDispatch);
  _SyncStreamControllerDispatch.prototype[_is__SyncStreamControllerDispatch_default] = true;
  dart.addTypeCaches(_SyncStreamControllerDispatch);
  _SyncStreamControllerDispatch[dart.implements] = () => [async._StreamController$(T), async.SynchronousStreamController$(T)];
  dart.setMethodSignature(_SyncStreamControllerDispatch, () => ({
    __proto__: dart.getMethods(_SyncStreamControllerDispatch.__proto__),
    [_sendData]: dart.fnType(dart.void, [T]),
    [_sendError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
    [_sendDone]: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(_SyncStreamControllerDispatch, L12);
  return _SyncStreamControllerDispatch;
});
async._SyncStreamControllerDispatch = async._SyncStreamControllerDispatch$();
dart.addTypeTests(async._SyncStreamControllerDispatch, _is__SyncStreamControllerDispatch_default);
const _is__AsyncStreamControllerDispatch_default = Symbol('_is__AsyncStreamControllerDispatch_default');
async._AsyncStreamControllerDispatch$ = dart.generic(T => {
  var _DelayedDataOfTL = () => (_DelayedDataOfTL = dart.constFn(async._DelayedData$(T)))();
  class _AsyncStreamControllerDispatch extends core.Object {
    [_sendData](data) {
      this[_subscription][_addPending](new (_DelayedDataOfTL()).new(data));
    }
    [_sendError](error, stackTrace) {
      this[_subscription][_addPending](new async._DelayedError.new(error, stackTrace));
    }
    [_sendDone]() {
      this[_subscription][_addPending](C41 || CT.C41);
    }
  }
  (_AsyncStreamControllerDispatch.new = function() {
    ;
  }).prototype = _AsyncStreamControllerDispatch.prototype;
  dart.addTypeTests(_AsyncStreamControllerDispatch);
  _AsyncStreamControllerDispatch.prototype[_is__AsyncStreamControllerDispatch_default] = true;
  dart.addTypeCaches(_AsyncStreamControllerDispatch);
  _AsyncStreamControllerDispatch[dart.implements] = () => [async._StreamController$(T)];
  dart.setMethodSignature(_AsyncStreamControllerDispatch, () => ({
    __proto__: dart.getMethods(_AsyncStreamControllerDispatch.__proto__),
    [_sendData]: dart.fnType(dart.void, [T]),
    [_sendError]: dart.fnType(dart.void, [core.Object, core.StackTrace]),
    [_sendDone]: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(_AsyncStreamControllerDispatch, L12);
  return _AsyncStreamControllerDispatch;
});
async._AsyncStreamControllerDispatch = async._AsyncStreamControllerDispatch$();
dart.addTypeTests(async._AsyncStreamControllerDispatch, _is__AsyncStreamControllerDispatch_default);
const _is__AsyncStreamController_default = Symbol('_is__AsyncStreamController_default');
async._AsyncStreamController$ = dart.generic(T => {
  const _StreamController__AsyncStreamControllerDispatch$36 = class _StreamController__AsyncStreamControllerDispatch extends async._StreamController$(T) {};
  (_StreamController__AsyncStreamControllerDispatch$36.new = function(onListen, onPause, onResume, onCancel) {
    _StreamController__AsyncStreamControllerDispatch$36.__proto__.new.call(this, onListen, onPause, onResume, onCancel);
  }).prototype = _StreamController__AsyncStreamControllerDispatch$36.prototype;
  dart.applyMixin(_StreamController__AsyncStreamControllerDispatch$36, async._AsyncStreamControllerDispatch$(T));
  class _AsyncStreamController extends _StreamController__AsyncStreamControllerDispatch$36 {}
  (_AsyncStreamController.new = function(onListen, onPause, onResume, onCancel) {
    _AsyncStreamController.__proto__.new.call(this, onListen, onPause, onResume, onCancel);
    ;
  }).prototype = _AsyncStreamController.prototype;
  dart.addTypeTests(_AsyncStreamController);
  _AsyncStreamController.prototype[_is__AsyncStreamController_default] = true;
  dart.addTypeCaches(_AsyncStreamController);
  dart.setLibraryUri(_AsyncStreamController, L12);
  return _AsyncStreamController;
});
async._AsyncStreamController = async._AsyncStreamController$();
dart.addTypeTests(async._AsyncStreamController, _is__AsyncStreamController_default);
const _is__SyncStreamController_default = Symbol('_is__SyncStreamController_default');
async._SyncStreamController$ = dart.generic(T => {
  const _StreamController__SyncStreamControllerDispatch$36 = class _StreamController__SyncStreamControllerDispatch extends async._StreamController$(T) {};
  (_StreamController__SyncStreamControllerDispatch$36.new = function(onListen, onPause, onResume, onCancel) {
    _StreamController__SyncStreamControllerDispatch$36.__proto__.new.call(this, onListen, onPause, onResume, onCancel);
  }).prototype = _StreamController__SyncStreamControllerDispatch$36.prototype;
  dart.applyMixin(_StreamController__SyncStreamControllerDispatch$36, async._SyncStreamControllerDispatch$(T));
  class _SyncStreamController extends _StreamController__SyncStreamControllerDispatch$36 {}
  (_SyncStreamController.new = function(onListen, onPause, onResume, onCancel) {
    _SyncStreamController.__proto__.new.call(this, onListen, onPause, onResume, onCancel);
    ;
  }).prototype = _SyncStreamController.prototype;
  dart.addTypeTests(_SyncStreamController);
  _SyncStreamController.prototype[_is__SyncStreamController_default] = true;
  dart.addTypeCaches(_SyncStreamController);
  dart.setLibraryUri(_SyncStreamController, L12);
  return _SyncStreamController;
});
async._SyncStreamController = async._SyncStreamController$();
dart.addTypeTests(async._SyncStreamController, _is__SyncStreamController_default);
var _target$ = dart.privateName(async, "_target");
const _is__StreamSinkWrapper_default = Symbol('_is__StreamSinkWrapper_default');
async._StreamSinkWrapper$ = dart.generic(T => {
  var StreamOfTL = () => (StreamOfTL = dart.constFn(async.Stream$(T)))();
  class _StreamSinkWrapper extends core.Object {
    add(data) {
      T.as(data);
      this[_target$].add(data);
    }
    addError(error, stackTrace = null) {
      this[_target$].addError(error, stackTrace);
    }
    close() {
      return this[_target$].close();
    }
    addStream(source) {
      StreamOfTL().as(source);
      return this[_target$].addStream(source);
    }
    get done() {
      return this[_target$].done;
    }
  }
  (_StreamSinkWrapper.new = function(_target) {
    this[_target$] = _target;
    ;
  }).prototype = _StreamSinkWrapper.prototype;
  dart.addTypeTests(_StreamSinkWrapper);
  _StreamSinkWrapper.prototype[_is__StreamSinkWrapper_default] = true;
  dart.addTypeCaches(_StreamSinkWrapper);
  _StreamSinkWrapper[dart.implements] = () => [async.StreamSink$(T)];
  dart.setMethodSignature(_StreamSinkWrapper, () => ({
    __proto__: dart.getMethods(_StreamSinkWrapper.__proto__),
    add: dart.fnType(dart.void, [core.Object]),
    addError: dart.fnType(dart.void, [core.Object], [core.StackTrace]),
    close: dart.fnType(async.Future, []),
    addStream: dart.fnType(async.Future, [core.Object])
  }));
  dart.setGetterSignature(_StreamSinkWrapper, () => ({
    __proto__: dart.getGetters(_StreamSinkWrapper.__proto__),
    done: async.Future
  }));
  dart.setLibraryUri(_StreamSinkWrapper, L12);
  dart.setFieldSignature(_StreamSinkWrapper, () => ({
    __proto__: dart.getFields(_StreamSinkWrapper.__proto__),
    [_target$]: dart.finalFieldType(async.StreamController)
  }));
  return _StreamSinkWrapper;
});
async._StreamSinkWrapper = async._StreamSinkWrapper$();
dart.addTypeTests(async._StreamSinkWrapper, _is__StreamSinkWrapper_default);
const _is__AddStreamState_default = Symbol('_is__AddStreamState_default');
async._AddStreamState$ = dart.generic(T => {
  class _AddStreamState extends core.Object {
    static makeErrorHandler(controller) {
      return dart.fn((e, s) => {
        controller[_addError](e, s);
        controller[_close]();
      }, dynamicAndStackTraceLToNullN());
    }
    pause() {
      this.addSubscription.pause();
    }
    resume() {
      this.addSubscription.resume();
    }
    cancel() {
      let cancel = this.addSubscription.cancel();
      if (cancel == null) {
        this.addStreamFuture[_asyncComplete](null);
        return null;
      }
      return cancel.whenComplete(dart.fn(() => {
        this.addStreamFuture[_asyncComplete](null);
      }, VoidToNullN()));
    }
    complete() {
      this.addStreamFuture[_asyncComplete](null);
    }
  }
  (_AddStreamState.new = function(controller, source, cancelOnError) {
    this.addStreamFuture = new async._Future.new();
    this.addSubscription = source.listen(dart.bind(controller, _add), {onError: core.Function.as(dart.test(cancelOnError) ? async._AddStreamState.makeErrorHandler(controller) : dart.bind(controller, _addError)), onDone: dart.bind(controller, _close), cancelOnError: cancelOnError});
    ;
  }).prototype = _AddStreamState.prototype;
  dart.addTypeTests(_AddStreamState);
  _AddStreamState.prototype[_is__AddStreamState_default] = true;
  dart.addTypeCaches(_AddStreamState);
  dart.setMethodSignature(_AddStreamState, () => ({
    __proto__: dart.getMethods(_AddStreamState.__proto__),
    pause: dart.fnType(dart.void, []),
    resume: dart.fnType(dart.void, []),
    cancel: dart.fnType(async.Future, []),
    complete: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(_AddStreamState, L12);
  dart.setFieldSignature(_AddStreamState, () => ({
    __proto__: dart.getFields(_AddStreamState.__proto__),
    addStreamFuture: dart.finalFieldType(async._Future),
    addSubscription: dart.finalFieldType(async.StreamSubscription)
  }));
  return _AddStreamState;
});
async._AddStreamState = async._AddStreamState$();
dart.addTypeTests(async._AddStreamState, _is__AddStreamState_default);
const _is__StreamControllerAddStreamState_default = Symbol('_is__StreamControllerAddStreamState_default');
async._StreamControllerAddStreamState$ = dart.generic(T => {
  class _StreamControllerAddStreamState extends async._AddStreamState$(T) {}
  (_StreamControllerAddStreamState.new = function(controller, varData, source, cancelOnError) {
    this.varData = varData;
    _StreamControllerAddStreamState.__proto__.new.call(this, controller, source, cancelOnError);
    if (dart.test(controller.isPaused)) {
      this.addSubscription.pause();
    }
  }).prototype = _StreamControllerAddStreamState.prototype;
  dart.addTypeTests(_StreamControllerAddStreamState);
  _StreamControllerAddStreamState.prototype[_is__StreamControllerAddStreamState_default] = true;
  dart.addTypeCaches(_StreamControllerAddStreamState);
  dart.setLibraryUri(_StreamControllerAddStreamState, L12);
  dart.setFieldSignature(_StreamControllerAddStreamState, () => ({
    __proto__: dart.getFields(_StreamControllerAddStreamState.__proto__),
    varData: dart.fieldType(dart.dynamic)
  }));
  return _StreamControllerAddStreamState;
});
async._StreamControllerAddStreamState = async._StreamControllerAddStreamState$();
dart.addTypeTests(async._StreamControllerAddStreamState, _is__StreamControllerAddStreamState_default);
const _is__EventSink_default = Symbol('_is__EventSink_default');
async._EventSink$ = dart.generic(T => {
  class _EventSink extends core.Object {}
  (_EventSink.new = function() {
    ;
  }).prototype = _EventSink.prototype;
  dart.addTypeTests(_EventSink);
  _EventSink.prototype[_is__EventSink_default] = true;
  dart.addTypeCaches(_EventSink);
  dart.setLibraryUri(_EventSink, L12);
  return _EventSink;
});
async._EventSink = async._EventSink$();
dart.addTypeTests(async._EventSink, _is__EventSink_default);
const _is__EventDispatch_default = Symbol('_is__EventDispatch_default');
async._EventDispatch$ = dart.generic(T => {
  class _EventDispatch extends core.Object {}
  (_EventDispatch.new = function() {
    ;
  }).prototype = _EventDispatch.prototype;
  dart.addTypeTests(_EventDispatch);
  _EventDispatch.prototype[_is__EventDispatch_default] = true;
  dart.addTypeCaches(_EventDispatch);
  dart.setLibraryUri(_EventDispatch, L12);
  return _EventDispatch;
});
async._EventDispatch = async._EventDispatch$();
dart.addTypeTests(async._EventDispatch, _is__EventDispatch_default);
var _isUsed = dart.privateName(async, "_isUsed");
const _is__GeneratedStreamImpl_default = Symbol('_is__GeneratedStreamImpl_default');
async._GeneratedStreamImpl$ = dart.generic(T => {
  var _BufferingStreamSubscriptionOfTL = () => (_BufferingStreamSubscriptionOfTL = dart.constFn(async._BufferingStreamSubscription$(T)))();
  class _GeneratedStreamImpl extends async._StreamImpl$(T) {
    [_createSubscription](onData, onError, onDone, cancelOnError) {
      let t42;
      if (dart.test(this[_isUsed])) dart.throw(new core.StateError.new("Stream has already been listened to."));
      this[_isUsed] = true;
      t42 = new (_BufferingStreamSubscriptionOfTL()).new(onData, onError, onDone, cancelOnError);
      t42[_setPendingEvents](this[_pending$]());
      return t42;
    }
  }
  (_GeneratedStreamImpl.new = function(_pending) {
    this[_isUsed] = false;
    this[_pending$] = _pending;
    _GeneratedStreamImpl.__proto__.new.call(this);
    ;
  }).prototype = _GeneratedStreamImpl.prototype;
  dart.addTypeTests(_GeneratedStreamImpl);
  _GeneratedStreamImpl.prototype[_is__GeneratedStreamImpl_default] = true;
  dart.addTypeCaches(_GeneratedStreamImpl);
  dart.setLibraryUri(_GeneratedStreamImpl, L12);
  dart.setFieldSignature(_GeneratedStreamImpl, () => ({
    __proto__: dart.getFields(_GeneratedStreamImpl.__proto__),
    [_pending$]: dart.finalFieldType(dart.fnType(async._PendingEvents$(T), [])),
    [_isUsed]: dart.fieldType(core.bool)
  }));
  return _GeneratedStreamImpl;
});
async._GeneratedStreamImpl = async._GeneratedStreamImpl$();
dart.addTypeTests(async._GeneratedStreamImpl, _is__GeneratedStreamImpl_default);
var _iterator = dart.privateName(async, "_iterator");
var _eventScheduled = dart.privateName(async, "_eventScheduled");
const _is__PendingEvents_default = Symbol('_is__PendingEvents_default');
async._PendingEvents$ = dart.generic(T => {
  var _EventDispatchOfTL = () => (_EventDispatchOfTL = dart.constFn(async._EventDispatch$(T)))();
  class _PendingEvents extends core.Object {
    get isScheduled() {
      return this[_state] === 1;
    }
    get [_eventScheduled]() {
      return dart.notNull(this[_state]) >= 1;
    }
    schedule(dispatch) {
      _EventDispatchOfTL().as(dispatch);
      if (dart.test(this.isScheduled)) return;
      if (!!dart.test(this.isEmpty)) dart.assertFailed(null, L31, 660, 12, "!isEmpty");
      if (dart.test(this[_eventScheduled])) {
        if (!(this[_state] === 3)) dart.assertFailed(null, L31, 662, 14, "_state == _STATE_CANCELED");
        this[_state] = 1;
        return;
      }
      async.scheduleMicrotask(dart.fn(() => {
        let oldState = this[_state];
        this[_state] = 0;
        if (oldState === 3) return;
        this.handleNext(dispatch);
      }, VoidToNullN()));
      this[_state] = 1;
    }
    cancelSchedule() {
      if (dart.test(this.isScheduled)) this[_state] = 3;
    }
  }
  (_PendingEvents.new = function() {
    this[_state] = 0;
    ;
  }).prototype = _PendingEvents.prototype;
  dart.addTypeTests(_PendingEvents);
  _PendingEvents.prototype[_is__PendingEvents_default] = true;
  dart.addTypeCaches(_PendingEvents);
  dart.setMethodSignature(_PendingEvents, () => ({
    __proto__: dart.getMethods(_PendingEvents.__proto__),
    schedule: dart.fnType(dart.void, [core.Object]),
    cancelSchedule: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_PendingEvents, () => ({
    __proto__: dart.getGetters(_PendingEvents.__proto__),
    isScheduled: core.bool,
    [_eventScheduled]: core.bool
  }));
  dart.setLibraryUri(_PendingEvents, L12);
  dart.setFieldSignature(_PendingEvents, () => ({
    __proto__: dart.getFields(_PendingEvents.__proto__),
    [_state]: dart.fieldType(core.int)
  }));
  return _PendingEvents;
});
async._PendingEvents = async._PendingEvents$();
dart.defineLazy(async._PendingEvents, {
  /*async._PendingEvents._STATE_UNSCHEDULED*/get _STATE_UNSCHEDULED() {
    return 0;
  },
  /*async._PendingEvents._STATE_SCHEDULED*/get _STATE_SCHEDULED() {
    return 1;
  },
  /*async._PendingEvents._STATE_CANCELED*/get _STATE_CANCELED() {
    return 3;
  }
}, true);
dart.addTypeTests(async._PendingEvents, _is__PendingEvents_default);
const _is__IterablePendingEvents_default = Symbol('_is__IterablePendingEvents_default');
async._IterablePendingEvents$ = dart.generic(T => {
  var _EventDispatchOfTL = () => (_EventDispatchOfTL = dart.constFn(async._EventDispatch$(T)))();
  class _IterablePendingEvents extends async._PendingEvents$(T) {
    get isEmpty() {
      return this[_iterator] == null;
    }
    handleNext(dispatch) {
      _EventDispatchOfTL().as(dispatch);
      if (this[_iterator] == null) {
        dart.throw(new core.StateError.new("No events pending."));
      }
      let hasMore = null;
      try {
        hasMore = this[_iterator].moveNext();
        if (dart.test(hasMore)) {
          dispatch[_sendData](this[_iterator].current);
        } else {
          this[_iterator] = null;
          dispatch[_sendDone]();
        }
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        if (hasMore == null) {
          this[_iterator] = C22 || CT.C22;
          dispatch[_sendError](e, s);
        } else {
          dispatch[_sendError](e, s);
        }
      }
    }
    clear() {
      if (dart.test(this.isScheduled)) this.cancelSchedule();
      this[_iterator] = null;
    }
  }
  (_IterablePendingEvents.new = function(data) {
    this[_iterator] = data[$iterator];
    _IterablePendingEvents.__proto__.new.call(this);
    ;
  }).prototype = _IterablePendingEvents.prototype;
  dart.addTypeTests(_IterablePendingEvents);
  _IterablePendingEvents.prototype[_is__IterablePendingEvents_default] = true;
  dart.addTypeCaches(_IterablePendingEvents);
  dart.setMethodSignature(_IterablePendingEvents, () => ({
    __proto__: dart.getMethods(_IterablePendingEvents.__proto__),
    handleNext: dart.fnType(dart.void, [core.Object]),
    clear: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_IterablePendingEvents, () => ({
    __proto__: dart.getGetters(_IterablePendingEvents.__proto__),
    isEmpty: core.bool
  }));
  dart.setLibraryUri(_IterablePendingEvents, L12);
  dart.setFieldSignature(_IterablePendingEvents, () => ({
    __proto__: dart.getFields(_IterablePendingEvents.__proto__),
    [_iterator]: dart.fieldType(core.Iterator$(T))
  }));
  return _IterablePendingEvents;
});
async._IterablePendingEvents = async._IterablePendingEvents$();
dart.addTypeTests(async._IterablePendingEvents, _is__IterablePendingEvents_default);
const _is__DelayedEvent_default = Symbol('_is__DelayedEvent_default');
async._DelayedEvent$ = dart.generic(T => {
  class _DelayedEvent extends core.Object {}
  (_DelayedEvent.new = function() {
    this.next = null;
    ;
  }).prototype = _DelayedEvent.prototype;
  dart.addTypeTests(_DelayedEvent);
  _DelayedEvent.prototype[_is__DelayedEvent_default] = true;
  dart.addTypeCaches(_DelayedEvent);
  dart.setLibraryUri(_DelayedEvent, L12);
  dart.setFieldSignature(_DelayedEvent, () => ({
    __proto__: dart.getFields(_DelayedEvent.__proto__),
    next: dart.fieldType(async._DelayedEvent)
  }));
  return _DelayedEvent;
});
async._DelayedEvent = async._DelayedEvent$();
dart.addTypeTests(async._DelayedEvent, _is__DelayedEvent_default);
const _is__DelayedData_default = Symbol('_is__DelayedData_default');
async._DelayedData$ = dart.generic(T => {
  var _EventDispatchOfTL = () => (_EventDispatchOfTL = dart.constFn(async._EventDispatch$(T)))();
  class _DelayedData extends async._DelayedEvent$(T) {
    perform(dispatch) {
      _EventDispatchOfTL().as(dispatch);
      dispatch[_sendData](this.value);
    }
  }
  (_DelayedData.new = function(value) {
    this.value = value;
    _DelayedData.__proto__.new.call(this);
    ;
  }).prototype = _DelayedData.prototype;
  dart.addTypeTests(_DelayedData);
  _DelayedData.prototype[_is__DelayedData_default] = true;
  dart.addTypeCaches(_DelayedData);
  dart.setMethodSignature(_DelayedData, () => ({
    __proto__: dart.getMethods(_DelayedData.__proto__),
    perform: dart.fnType(dart.void, [core.Object])
  }));
  dart.setLibraryUri(_DelayedData, L12);
  dart.setFieldSignature(_DelayedData, () => ({
    __proto__: dart.getFields(_DelayedData.__proto__),
    value: dart.finalFieldType(T)
  }));
  return _DelayedData;
});
async._DelayedData = async._DelayedData$();
dart.addTypeTests(async._DelayedData, _is__DelayedData_default);
async._DelayedError = class _DelayedError extends async._DelayedEvent {
  perform(dispatch) {
    async._EventDispatch.as(dispatch);
    dispatch[_sendError](this.error, this.stackTrace);
  }
};
(async._DelayedError.new = function(error, stackTrace) {
  this.error = error;
  this.stackTrace = stackTrace;
  async._DelayedError.__proto__.new.call(this);
  ;
}).prototype = async._DelayedError.prototype;
dart.addTypeTests(async._DelayedError);
dart.addTypeCaches(async._DelayedError);
dart.setMethodSignature(async._DelayedError, () => ({
  __proto__: dart.getMethods(async._DelayedError.__proto__),
  perform: dart.fnType(dart.void, [core.Object])
}));
dart.setLibraryUri(async._DelayedError, L12);
dart.setFieldSignature(async._DelayedError, () => ({
  __proto__: dart.getFields(async._DelayedError.__proto__),
  error: dart.finalFieldType(dart.dynamic),
  stackTrace: dart.finalFieldType(core.StackTrace)
}));
async._DelayedDone = class _DelayedDone extends core.Object {
  perform(dispatch) {
    async._EventDispatch.as(dispatch);
    dispatch[_sendDone]();
  }
  get next() {
    return null;
  }
  set next(_) {
    dart.throw(new core.StateError.new("No events after a done."));
  }
};
(async._DelayedDone.new = function() {
  ;
}).prototype = async._DelayedDone.prototype;
dart.addTypeTests(async._DelayedDone);
dart.addTypeCaches(async._DelayedDone);
async._DelayedDone[dart.implements] = () => [async._DelayedEvent];
dart.setMethodSignature(async._DelayedDone, () => ({
  __proto__: dart.getMethods(async._DelayedDone.__proto__),
  perform: dart.fnType(dart.void, [core.Object])
}));
dart.setGetterSignature(async._DelayedDone, () => ({
  __proto__: dart.getGetters(async._DelayedDone.__proto__),
  next: async._DelayedEvent
}));
dart.setSetterSignature(async._DelayedDone, () => ({
  __proto__: dart.getSetters(async._DelayedDone.__proto__),
  next: async._DelayedEvent
}));
dart.setLibraryUri(async._DelayedDone, L12);
const _is__StreamImplEvents_default = Symbol('_is__StreamImplEvents_default');
async._StreamImplEvents$ = dart.generic(T => {
  var _EventDispatchOfTL = () => (_EventDispatchOfTL = dart.constFn(async._EventDispatch$(T)))();
  class _StreamImplEvents extends async._PendingEvents$(T) {
    get isEmpty() {
      return this.lastPendingEvent == null;
    }
    add(event) {
      if (this.lastPendingEvent == null) {
        this.firstPendingEvent = this.lastPendingEvent = event;
      } else {
        this.lastPendingEvent = this.lastPendingEvent.next = event;
      }
    }
    handleNext(dispatch) {
      _EventDispatchOfTL().as(dispatch);
      if (!!dart.test(this.isScheduled)) dart.assertFailed(null, L31, 704, 12, "!isScheduled");
      let event = this.firstPendingEvent;
      this.firstPendingEvent = event.next;
      if (this.firstPendingEvent == null) {
        this.lastPendingEvent = null;
      }
      event.perform(dispatch);
    }
    clear() {
      if (dart.test(this.isScheduled)) this.cancelSchedule();
      this.firstPendingEvent = this.lastPendingEvent = null;
    }
  }
  (_StreamImplEvents.new = function() {
    this.firstPendingEvent = null;
    this.lastPendingEvent = null;
    _StreamImplEvents.__proto__.new.call(this);
    ;
  }).prototype = _StreamImplEvents.prototype;
  dart.addTypeTests(_StreamImplEvents);
  _StreamImplEvents.prototype[_is__StreamImplEvents_default] = true;
  dart.addTypeCaches(_StreamImplEvents);
  dart.setMethodSignature(_StreamImplEvents, () => ({
    __proto__: dart.getMethods(_StreamImplEvents.__proto__),
    add: dart.fnType(dart.void, [async._DelayedEvent]),
    handleNext: dart.fnType(dart.void, [core.Object]),
    clear: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_StreamImplEvents, () => ({
    __proto__: dart.getGetters(_StreamImplEvents.__proto__),
    isEmpty: core.bool
  }));
  dart.setLibraryUri(_StreamImplEvents, L12);
  dart.setFieldSignature(_StreamImplEvents, () => ({
    __proto__: dart.getFields(_StreamImplEvents.__proto__),
    firstPendingEvent: dart.fieldType(async._DelayedEvent),
    lastPendingEvent: dart.fieldType(async._DelayedEvent)
  }));
  return _StreamImplEvents;
});
async._StreamImplEvents = async._StreamImplEvents$();
dart.addTypeTests(async._StreamImplEvents, _is__StreamImplEvents_default);
var _schedule = dart.privateName(async, "_schedule");
var _isSent = dart.privateName(async, "_isSent");
var _isScheduled = dart.privateName(async, "_isScheduled");
const _is__DoneStreamSubscription_default = Symbol('_is__DoneStreamSubscription_default');
async._DoneStreamSubscription$ = dart.generic(T => {
  class _DoneStreamSubscription extends core.Object {
    get [_isSent]() {
      return (dart.notNull(this[_state]) & 1) !== 0;
    }
    get [_isScheduled]() {
      return (dart.notNull(this[_state]) & 2) !== 0;
    }
    get isPaused() {
      return dart.notNull(this[_state]) >= 4;
    }
    [_schedule]() {
      if (dart.test(this[_isScheduled])) return;
      this[_zone$].scheduleMicrotask(dart.bind(this, _sendDone));
      this[_state] = (dart.notNull(this[_state]) | 2) >>> 0;
    }
    onData(handleData) {
    }
    onError(handleError) {
    }
    onDone(handleDone) {
      this[_onDone$] = handleDone;
    }
    pause(resumeSignal = null) {
      this[_state] = dart.notNull(this[_state]) + 4;
      if (resumeSignal != null) resumeSignal.whenComplete(dart.bind(this, 'resume'));
    }
    resume() {
      if (dart.test(this.isPaused)) {
        this[_state] = dart.notNull(this[_state]) - 4;
        if (!dart.test(this.isPaused) && !dart.test(this[_isSent])) {
          this[_schedule]();
        }
      }
    }
    cancel() {
      return async.Future._nullFuture;
    }
    asFuture(E, futureValue = null) {
      let result = new (async._Future$(E)).new();
      this[_onDone$] = dart.fn(() => {
        result[_completeWithValue](futureValue);
      }, VoidToNullN());
      return result;
    }
    [_sendDone]() {
      this[_state] = (dart.notNull(this[_state]) & ~2 >>> 0) >>> 0;
      if (dart.test(this.isPaused)) return;
      this[_state] = (dart.notNull(this[_state]) | 1) >>> 0;
      if (this[_onDone$] != null) this[_zone$].runGuarded(this[_onDone$]);
    }
  }
  (_DoneStreamSubscription.new = function(_onDone) {
    this[_state] = 0;
    this[_onDone$] = _onDone;
    this[_zone$] = async.Zone.current;
    this[_schedule]();
  }).prototype = _DoneStreamSubscription.prototype;
  _DoneStreamSubscription.prototype[dart.isStreamSubscription] = true;
  dart.addTypeTests(_DoneStreamSubscription);
  _DoneStreamSubscription.prototype[_is__DoneStreamSubscription_default] = true;
  dart.addTypeCaches(_DoneStreamSubscription);
  _DoneStreamSubscription[dart.implements] = () => [async.StreamSubscription$(T)];
  dart.setMethodSignature(_DoneStreamSubscription, () => ({
    __proto__: dart.getMethods(_DoneStreamSubscription.__proto__),
    [_schedule]: dart.fnType(dart.void, []),
    onData: dart.fnType(dart.void, [dart.fnType(dart.void, [T])]),
    onError: dart.fnType(dart.void, [core.Function]),
    onDone: dart.fnType(dart.void, [dart.fnType(dart.void, [])]),
    pause: dart.fnType(dart.void, [], [async.Future]),
    resume: dart.fnType(dart.void, []),
    cancel: dart.fnType(async.Future, []),
    asFuture: dart.gFnType(E => [async.Future$(E), [], [E]]),
    [_sendDone]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_DoneStreamSubscription, () => ({
    __proto__: dart.getGetters(_DoneStreamSubscription.__proto__),
    [_isSent]: core.bool,
    [_isScheduled]: core.bool,
    isPaused: core.bool
  }));
  dart.setLibraryUri(_DoneStreamSubscription, L12);
  dart.setFieldSignature(_DoneStreamSubscription, () => ({
    __proto__: dart.getFields(_DoneStreamSubscription.__proto__),
    [_zone$]: dart.finalFieldType(async.Zone),
    [_state]: dart.fieldType(core.int),
    [_onDone$]: dart.fieldType(dart.fnType(dart.void, []))
  }));
  return _DoneStreamSubscription;
});
async._DoneStreamSubscription = async._DoneStreamSubscription$();
dart.defineLazy(async._DoneStreamSubscription, {
  /*async._DoneStreamSubscription._DONE_SENT*/get _DONE_SENT() {
    return 1;
  },
  /*async._DoneStreamSubscription._SCHEDULED*/get _SCHEDULED() {
    return 2;
  },
  /*async._DoneStreamSubscription._PAUSED*/get _PAUSED() {
    return 4;
  }
}, true);
dart.addTypeTests(async._DoneStreamSubscription, _is__DoneStreamSubscription_default);
var _source$4 = dart.privateName(async, "_source");
var _onListenHandler = dart.privateName(async, "_onListenHandler");
var _onCancelHandler = dart.privateName(async, "_onCancelHandler");
var _cancelSubscription = dart.privateName(async, "_cancelSubscription");
var _pauseSubscription = dart.privateName(async, "_pauseSubscription");
var _resumeSubscription = dart.privateName(async, "_resumeSubscription");
var _isSubscriptionPaused = dart.privateName(async, "_isSubscriptionPaused");
const _is__AsBroadcastStream_default = Symbol('_is__AsBroadcastStream_default');
async._AsBroadcastStream$ = dart.generic(T => {
  var StreamSubscriptionOfTL = () => (StreamSubscriptionOfTL = dart.constFn(async.StreamSubscription$(T)))();
  var _AsBroadcastStreamControllerOfTL = () => (_AsBroadcastStreamControllerOfTL = dart.constFn(async._AsBroadcastStreamController$(T)))();
  var _DoneStreamSubscriptionOfTL = () => (_DoneStreamSubscriptionOfTL = dart.constFn(async._DoneStreamSubscription$(T)))();
  var _BroadcastSubscriptionWrapperOfTL = () => (_BroadcastSubscriptionWrapperOfTL = dart.constFn(async._BroadcastSubscriptionWrapper$(T)))();
  class _AsBroadcastStream extends async.Stream$(T) {
    get isBroadcast() {
      return true;
    }
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      if (this[_controller$] == null || dart.test(this[_controller$].isClosed)) {
        return new (_DoneStreamSubscriptionOfTL()).new(onDone);
      }
      this[_subscription] == null ? this[_subscription] = this[_source$4].listen(dart.bind(this[_controller$], 'add'), {onError: dart.bind(this[_controller$], 'addError'), onDone: dart.bind(this[_controller$], 'close')}) : null;
      cancelOnError = true === cancelOnError;
      return this[_controller$][_subscribe](onData, onError, onDone, cancelOnError);
    }
    [_onCancel]() {
      let shutdown = this[_controller$] == null || dart.test(this[_controller$].isClosed);
      if (this[_onCancelHandler] != null) {
        this[_zone$].runUnary(dart.void, _BroadcastSubscriptionWrapperOfTL(), this[_onCancelHandler], new (_BroadcastSubscriptionWrapperOfTL()).new(this));
      }
      if (shutdown) {
        if (this[_subscription] != null) {
          this[_subscription].cancel();
          this[_subscription] = null;
        }
      }
    }
    [_onListen$]() {
      if (this[_onListenHandler] != null) {
        this[_zone$].runUnary(dart.void, _BroadcastSubscriptionWrapperOfTL(), this[_onListenHandler], new (_BroadcastSubscriptionWrapperOfTL()).new(this));
      }
    }
    [_cancelSubscription]() {
      if (this[_subscription] == null) return;
      let subscription = this[_subscription];
      this[_subscription] = null;
      this[_controller$] = null;
      subscription.cancel();
    }
    [_pauseSubscription](resumeSignal) {
      if (this[_subscription] == null) return;
      this[_subscription].pause(resumeSignal);
    }
    [_resumeSubscription]() {
      if (this[_subscription] == null) return;
      this[_subscription].resume();
    }
    get [_isSubscriptionPaused]() {
      if (this[_subscription] == null) return false;
      return this[_subscription].isPaused;
    }
  }
  (_AsBroadcastStream.new = function(_source, onListenHandler, onCancelHandler) {
    this[_controller$] = null;
    this[_subscription] = null;
    this[_source$4] = _source;
    this[_onListenHandler] = async.Zone.current.registerUnaryCallback(dart.dynamic, StreamSubscriptionOfTL(), onListenHandler);
    this[_onCancelHandler] = async.Zone.current.registerUnaryCallback(dart.dynamic, StreamSubscriptionOfTL(), onCancelHandler);
    this[_zone$] = async.Zone.current;
    _AsBroadcastStream.__proto__.new.call(this);
    this[_controller$] = new (_AsBroadcastStreamControllerOfTL()).new(dart.bind(this, _onListen$), dart.bind(this, _onCancel));
  }).prototype = _AsBroadcastStream.prototype;
  dart.addTypeTests(_AsBroadcastStream);
  _AsBroadcastStream.prototype[_is__AsBroadcastStream_default] = true;
  dart.addTypeCaches(_AsBroadcastStream);
  dart.setMethodSignature(_AsBroadcastStream, () => ({
    __proto__: dart.getMethods(_AsBroadcastStream.__proto__),
    listen: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {}),
    [_onCancel]: dart.fnType(dart.void, []),
    [_onListen$]: dart.fnType(dart.void, []),
    [_cancelSubscription]: dart.fnType(dart.void, []),
    [_pauseSubscription]: dart.fnType(dart.void, [async.Future]),
    [_resumeSubscription]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_AsBroadcastStream, () => ({
    __proto__: dart.getGetters(_AsBroadcastStream.__proto__),
    [_isSubscriptionPaused]: core.bool
  }));
  dart.setLibraryUri(_AsBroadcastStream, L12);
  dart.setFieldSignature(_AsBroadcastStream, () => ({
    __proto__: dart.getFields(_AsBroadcastStream.__proto__),
    [_source$4]: dart.finalFieldType(async.Stream$(T)),
    [_onListenHandler]: dart.finalFieldType(dart.fnType(dart.void, [async.StreamSubscription$(T)])),
    [_onCancelHandler]: dart.finalFieldType(dart.fnType(dart.void, [async.StreamSubscription$(T)])),
    [_zone$]: dart.finalFieldType(async.Zone),
    [_controller$]: dart.fieldType(async._AsBroadcastStreamController$(T)),
    [_subscription]: dart.fieldType(async.StreamSubscription$(T))
  }));
  return _AsBroadcastStream;
});
async._AsBroadcastStream = async._AsBroadcastStream$();
dart.addTypeTests(async._AsBroadcastStream, _is__AsBroadcastStream_default);
const _is__BroadcastSubscriptionWrapper_default = Symbol('_is__BroadcastSubscriptionWrapper_default');
async._BroadcastSubscriptionWrapper$ = dart.generic(T => {
  class _BroadcastSubscriptionWrapper extends core.Object {
    onData(handleData) {
      dart.throw(new core.UnsupportedError.new("Cannot change handlers of asBroadcastStream source subscription."));
    }
    onError(handleError) {
      dart.throw(new core.UnsupportedError.new("Cannot change handlers of asBroadcastStream source subscription."));
    }
    onDone(handleDone) {
      dart.throw(new core.UnsupportedError.new("Cannot change handlers of asBroadcastStream source subscription."));
    }
    pause(resumeSignal = null) {
      this[_stream$][_pauseSubscription](resumeSignal);
    }
    resume() {
      this[_stream$][_resumeSubscription]();
    }
    cancel() {
      this[_stream$][_cancelSubscription]();
      return async.Future._nullFuture;
    }
    get isPaused() {
      return this[_stream$][_isSubscriptionPaused];
    }
    asFuture(E, futureValue = null) {
      dart.throw(new core.UnsupportedError.new("Cannot change handlers of asBroadcastStream source subscription."));
    }
  }
  (_BroadcastSubscriptionWrapper.new = function(_stream) {
    this[_stream$] = _stream;
    ;
  }).prototype = _BroadcastSubscriptionWrapper.prototype;
  _BroadcastSubscriptionWrapper.prototype[dart.isStreamSubscription] = true;
  dart.addTypeTests(_BroadcastSubscriptionWrapper);
  _BroadcastSubscriptionWrapper.prototype[_is__BroadcastSubscriptionWrapper_default] = true;
  dart.addTypeCaches(_BroadcastSubscriptionWrapper);
  _BroadcastSubscriptionWrapper[dart.implements] = () => [async.StreamSubscription$(T)];
  dart.setMethodSignature(_BroadcastSubscriptionWrapper, () => ({
    __proto__: dart.getMethods(_BroadcastSubscriptionWrapper.__proto__),
    onData: dart.fnType(dart.void, [dart.fnType(dart.void, [T])]),
    onError: dart.fnType(dart.void, [core.Function]),
    onDone: dart.fnType(dart.void, [dart.fnType(dart.void, [])]),
    pause: dart.fnType(dart.void, [], [async.Future]),
    resume: dart.fnType(dart.void, []),
    cancel: dart.fnType(async.Future, []),
    asFuture: dart.gFnType(E => [async.Future$(E), [], [E]])
  }));
  dart.setGetterSignature(_BroadcastSubscriptionWrapper, () => ({
    __proto__: dart.getGetters(_BroadcastSubscriptionWrapper.__proto__),
    isPaused: core.bool
  }));
  dart.setLibraryUri(_BroadcastSubscriptionWrapper, L12);
  dart.setFieldSignature(_BroadcastSubscriptionWrapper, () => ({
    __proto__: dart.getFields(_BroadcastSubscriptionWrapper.__proto__),
    [_stream$]: dart.finalFieldType(async._AsBroadcastStream)
  }));
  return _BroadcastSubscriptionWrapper;
});
async._BroadcastSubscriptionWrapper = async._BroadcastSubscriptionWrapper$();
dart.addTypeTests(async._BroadcastSubscriptionWrapper, _is__BroadcastSubscriptionWrapper_default);
var _stateData = dart.privateName(async, "_stateData");
var _initializeOrDone = dart.privateName(async, "_initializeOrDone");
const _is__StreamIterator_default = Symbol('_is__StreamIterator_default');
async._StreamIterator$ = dart.generic(T => {
  var StreamOfTL = () => (StreamOfTL = dart.constFn(async.Stream$(T)))();
  var StreamSubscriptionOfTL = () => (StreamSubscriptionOfTL = dart.constFn(async.StreamSubscription$(T)))();
  class _StreamIterator extends core.Object {
    get current() {
      if (this[_subscription] != null && dart.test(this[_isPaused])) {
        return T.as(this[_stateData]);
      }
      return null;
    }
    moveNext() {
      if (this[_subscription] != null) {
        if (dart.test(this[_isPaused])) {
          let future = new (_FutureOfboolL()).new();
          this[_stateData] = future;
          this[_isPaused] = false;
          this[_subscription].resume();
          return future;
        }
        dart.throw(new core.StateError.new("Already waiting for next."));
      }
      return this[_initializeOrDone]();
    }
    [_initializeOrDone]() {
      if (!(this[_subscription] == null)) dart.assertFailed(null, L31, 1004, 12, "_subscription == null");
      let stateData = this[_stateData];
      if (stateData != null) {
        let stream = StreamOfTL().as(stateData);
        this[_subscription] = stream.listen(dart.bind(this, _onData$), {onError: dart.bind(this, _onError), onDone: dart.bind(this, _onDone$), cancelOnError: true});
        let future = new (_FutureOfboolL()).new();
        this[_stateData] = future;
        return future;
      }
      return async.Future._falseFuture;
    }
    cancel() {
      let subscription = StreamSubscriptionOfTL().as(this[_subscription]);
      let stateData = this[_stateData];
      this[_stateData] = null;
      if (subscription != null) {
        this[_subscription] = null;
        if (!dart.test(this[_isPaused])) {
          let future = _FutureOfboolL().as(stateData);
          future[_asyncComplete](false);
        }
        return subscription.cancel();
      }
      return async.Future._nullFuture;
    }
    [_onData$](data) {
      T.as(data);
      if (!(this[_subscription] != null && !dart.test(this[_isPaused]))) dart.assertFailed(null, L31, 1033, 12, "_subscription != null && !_isPaused");
      let moveNextFuture = _FutureOfboolL().as(this[_stateData]);
      this[_stateData] = data;
      this[_isPaused] = true;
      moveNextFuture[_complete](true);
      if (this[_subscription] != null && dart.test(this[_isPaused])) this[_subscription].pause();
    }
    [_onError](error, stackTrace = null) {
      if (!(this[_subscription] != null && !dart.test(this[_isPaused]))) dart.assertFailed(null, L31, 1042, 12, "_subscription != null && !_isPaused");
      let moveNextFuture = _FutureOfboolL().as(this[_stateData]);
      this[_subscription] = null;
      this[_stateData] = null;
      moveNextFuture[_completeError](error, stackTrace);
    }
    [_onDone$]() {
      if (!(this[_subscription] != null && !dart.test(this[_isPaused]))) dart.assertFailed(null, L31, 1050, 12, "_subscription != null && !_isPaused");
      let moveNextFuture = _FutureOfboolL().as(this[_stateData]);
      this[_subscription] = null;
      this[_stateData] = null;
      moveNextFuture[_complete](false);
    }
  }
  (_StreamIterator.new = function(stream) {
    let t43;
    this[_subscription] = null;
    this[_isPaused] = false;
    this[_stateData] = (t43 = stream, t43 == null ? dart.throw(new core.ArgumentError.notNull("stream")) : t43);
    ;
  }).prototype = _StreamIterator.prototype;
  dart.addTypeTests(_StreamIterator);
  _StreamIterator.prototype[_is__StreamIterator_default] = true;
  dart.addTypeCaches(_StreamIterator);
  _StreamIterator[dart.implements] = () => [async.StreamIterator$(T)];
  dart.setMethodSignature(_StreamIterator, () => ({
    __proto__: dart.getMethods(_StreamIterator.__proto__),
    moveNext: dart.fnType(async.Future$(core.bool), []),
    [_initializeOrDone]: dart.fnType(async.Future$(core.bool), []),
    cancel: dart.fnType(async.Future, []),
    [_onData$]: dart.fnType(dart.void, [core.Object]),
    [_onError]: dart.fnType(dart.void, [core.Object], [core.StackTrace]),
    [_onDone$]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_StreamIterator, () => ({
    __proto__: dart.getGetters(_StreamIterator.__proto__),
    current: T
  }));
  dart.setLibraryUri(_StreamIterator, L12);
  dart.setFieldSignature(_StreamIterator, () => ({
    __proto__: dart.getFields(_StreamIterator.__proto__),
    [_subscription]: dart.fieldType(async.StreamSubscription),
    [_stateData]: dart.fieldType(core.Object),
    [_isPaused]: dart.fieldType(core.bool)
  }));
  return _StreamIterator;
});
async._StreamIterator = async._StreamIterator$();
dart.addTypeTests(async._StreamIterator, _is__StreamIterator_default);
const _is__EmptyStream_default = Symbol('_is__EmptyStream_default');
async._EmptyStream$ = dart.generic(T => {
  var _DoneStreamSubscriptionOfTL = () => (_DoneStreamSubscriptionOfTL = dart.constFn(async._DoneStreamSubscription$(T)))();
  class _EmptyStream extends async.Stream$(T) {
    get isBroadcast() {
      return true;
    }
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      return new (_DoneStreamSubscriptionOfTL()).new(onDone);
    }
  }
  (_EmptyStream.new = function() {
    _EmptyStream.__proto__._internal.call(this);
    ;
  }).prototype = _EmptyStream.prototype;
  dart.addTypeTests(_EmptyStream);
  _EmptyStream.prototype[_is__EmptyStream_default] = true;
  dart.addTypeCaches(_EmptyStream);
  dart.setMethodSignature(_EmptyStream, () => ({
    __proto__: dart.getMethods(_EmptyStream.__proto__),
    listen: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {})
  }));
  dart.setLibraryUri(_EmptyStream, L12);
  return _EmptyStream;
});
async._EmptyStream = async._EmptyStream$();
dart.addTypeTests(async._EmptyStream, _is__EmptyStream_default);
var _handleData$ = dart.privateName(async, "_handleData");
var _handleError$ = dart.privateName(async, "_handleError");
var _handleDone$ = dart.privateName(async, "_handleDone");
const _is__ForwardingStream_default = Symbol('_is__ForwardingStream_default');
async._ForwardingStream$ = dart.generic((S, T) => {
  var _ForwardingStreamSubscriptionOfSL$TL = () => (_ForwardingStreamSubscriptionOfSL$TL = dart.constFn(async._ForwardingStreamSubscription$(S, T)))();
  var _EventSinkOfTL = () => (_EventSinkOfTL = dart.constFn(async._EventSink$(T)))();
  class _ForwardingStream extends async.Stream$(T) {
    get isBroadcast() {
      return this[_source$4].isBroadcast;
    }
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      cancelOnError = true === cancelOnError;
      return this[_createSubscription](onData, onError, onDone, cancelOnError);
    }
    [_createSubscription](onData, onError, onDone, cancelOnError) {
      return new (_ForwardingStreamSubscriptionOfSL$TL()).new(this, onData, onError, onDone, cancelOnError);
    }
    [_handleData$](data, sink) {
      S.as(data);
      _EventSinkOfTL().as(sink);
      sink[_add](T.as(data));
    }
    [_handleError$](error, stackTrace, sink) {
      _EventSinkOfTL().as(sink);
      sink[_addError](error, stackTrace);
    }
    [_handleDone$](sink) {
      _EventSinkOfTL().as(sink);
      sink[_close]();
    }
  }
  (_ForwardingStream.new = function(_source) {
    this[_source$4] = _source;
    _ForwardingStream.__proto__.new.call(this);
    ;
  }).prototype = _ForwardingStream.prototype;
  dart.addTypeTests(_ForwardingStream);
  _ForwardingStream.prototype[_is__ForwardingStream_default] = true;
  dart.addTypeCaches(_ForwardingStream);
  dart.setMethodSignature(_ForwardingStream, () => ({
    __proto__: dart.getMethods(_ForwardingStream.__proto__),
    listen: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {}),
    [_createSubscription]: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T]), core.Function, dart.fnType(dart.void, []), core.bool]),
    [_handleData$]: dart.fnType(dart.void, [core.Object, core.Object]),
    [_handleError$]: dart.fnType(dart.void, [dart.dynamic, core.StackTrace, core.Object]),
    [_handleDone$]: dart.fnType(dart.void, [core.Object])
  }));
  dart.setLibraryUri(_ForwardingStream, L12);
  dart.setFieldSignature(_ForwardingStream, () => ({
    __proto__: dart.getFields(_ForwardingStream.__proto__),
    [_source$4]: dart.finalFieldType(async.Stream$(S))
  }));
  return _ForwardingStream;
});
async._ForwardingStream = async._ForwardingStream$();
dart.addTypeTests(async._ForwardingStream, _is__ForwardingStream_default);
const _is__ForwardingStreamSubscription_default = Symbol('_is__ForwardingStreamSubscription_default');
async._ForwardingStreamSubscription$ = dart.generic((S, T) => {
  class _ForwardingStreamSubscription extends async._BufferingStreamSubscription$(T) {
    [_add](data) {
      if (dart.test(this[_isClosed])) return;
      super[_add](data);
    }
    [_addError](error, stackTrace) {
      if (dart.test(this[_isClosed])) return;
      super[_addError](error, stackTrace);
    }
    [_onPause]() {
      if (this[_subscription] == null) return;
      this[_subscription].pause();
    }
    [_onResume]() {
      if (this[_subscription] == null) return;
      this[_subscription].resume();
    }
    [_onCancel]() {
      if (this[_subscription] != null) {
        let subscription = this[_subscription];
        this[_subscription] = null;
        return subscription.cancel();
      }
      return null;
    }
    [_handleData$](data) {
      S.as(data);
      this[_stream$][_handleData$](data, this);
    }
    [_handleError$](error, stackTrace) {
      this[_stream$][_handleError$](error, stackTrace, this);
    }
    [_handleDone$]() {
      this[_stream$][_handleDone$](this);
    }
  }
  (_ForwardingStreamSubscription.new = function(_stream, onData, onError, onDone, cancelOnError) {
    this[_subscription] = null;
    this[_stream$] = _stream;
    _ForwardingStreamSubscription.__proto__.new.call(this, onData, onError, onDone, cancelOnError);
    this[_subscription] = this[_stream$][_source$4].listen(dart.bind(this, _handleData$), {onError: dart.bind(this, _handleError$), onDone: dart.bind(this, _handleDone$)});
  }).prototype = _ForwardingStreamSubscription.prototype;
  dart.addTypeTests(_ForwardingStreamSubscription);
  _ForwardingStreamSubscription.prototype[_is__ForwardingStreamSubscription_default] = true;
  dart.addTypeCaches(_ForwardingStreamSubscription);
  dart.setMethodSignature(_ForwardingStreamSubscription, () => ({
    __proto__: dart.getMethods(_ForwardingStreamSubscription.__proto__),
    [_add]: dart.fnType(dart.void, [T]),
    [_handleData$]: dart.fnType(dart.void, [core.Object]),
    [_handleError$]: dart.fnType(dart.void, [dart.dynamic, core.StackTrace]),
    [_handleDone$]: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(_ForwardingStreamSubscription, L12);
  dart.setFieldSignature(_ForwardingStreamSubscription, () => ({
    __proto__: dart.getFields(_ForwardingStreamSubscription.__proto__),
    [_stream$]: dart.finalFieldType(async._ForwardingStream$(S, T)),
    [_subscription]: dart.fieldType(async.StreamSubscription$(S))
  }));
  return _ForwardingStreamSubscription;
});
async._ForwardingStreamSubscription = async._ForwardingStreamSubscription$();
dart.addTypeTests(async._ForwardingStreamSubscription, _is__ForwardingStreamSubscription_default);
var _test = dart.privateName(async, "_test");
const _is__WhereStream_default = Symbol('_is__WhereStream_default');
async._WhereStream$ = dart.generic(T => {
  class _WhereStream extends async._ForwardingStream$(T, T) {
    [_handleData$](inputEvent, sink) {
      let t43;
      let satisfies = null;
      try {
        satisfies = (t43 = inputEvent, this[_test](t43));
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        async._addErrorWithReplacement(sink, e, s);
        return;
      }
      if (dart.test(satisfies)) {
        sink[_add](inputEvent);
      }
    }
  }
  (_WhereStream.new = function(source, test) {
    this[_test] = test;
    _WhereStream.__proto__.new.call(this, source);
    ;
  }).prototype = _WhereStream.prototype;
  dart.addTypeTests(_WhereStream);
  _WhereStream.prototype[_is__WhereStream_default] = true;
  dart.addTypeCaches(_WhereStream);
  dart.setMethodSignature(_WhereStream, () => ({
    __proto__: dart.getMethods(_WhereStream.__proto__),
    [_handleData$]: dart.fnType(dart.void, [T, async._EventSink$(T)])
  }));
  dart.setLibraryUri(_WhereStream, L12);
  dart.setFieldSignature(_WhereStream, () => ({
    __proto__: dart.getFields(_WhereStream.__proto__),
    [_test]: dart.finalFieldType(dart.fnType(core.bool, [T]))
  }));
  return _WhereStream;
});
async._WhereStream = async._WhereStream$();
dart.addTypeTests(async._WhereStream, _is__WhereStream_default);
var _transform = dart.privateName(async, "_transform");
const _is__MapStream_default = Symbol('_is__MapStream_default');
async._MapStream$ = dart.generic((S, T) => {
  class _MapStream extends async._ForwardingStream$(S, T) {
    [_handleData$](inputEvent, sink) {
      let t44;
      let outputEvent = null;
      try {
        outputEvent = (t44 = inputEvent, this[_transform](t44));
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        async._addErrorWithReplacement(sink, e, s);
        return;
      }
      sink[_add](outputEvent);
    }
  }
  (_MapStream.new = function(source, transform) {
    this[_transform] = transform;
    _MapStream.__proto__.new.call(this, source);
    ;
  }).prototype = _MapStream.prototype;
  dart.addTypeTests(_MapStream);
  _MapStream.prototype[_is__MapStream_default] = true;
  dart.addTypeCaches(_MapStream);
  dart.setMethodSignature(_MapStream, () => ({
    __proto__: dart.getMethods(_MapStream.__proto__),
    [_handleData$]: dart.fnType(dart.void, [S, async._EventSink$(T)])
  }));
  dart.setLibraryUri(_MapStream, L12);
  dart.setFieldSignature(_MapStream, () => ({
    __proto__: dart.getFields(_MapStream.__proto__),
    [_transform]: dart.finalFieldType(dart.fnType(T, [S]))
  }));
  return _MapStream;
});
async._MapStream = async._MapStream$();
dart.addTypeTests(async._MapStream, _is__MapStream_default);
var _expand = dart.privateName(async, "_expand");
const _is__ExpandStream_default = Symbol('_is__ExpandStream_default');
async._ExpandStream$ = dart.generic((S, T) => {
  class _ExpandStream extends async._ForwardingStream$(S, T) {
    [_handleData$](inputEvent, sink) {
      let t45;
      try {
        for (let value of (t45 = inputEvent, this[_expand](t45))) {
          sink[_add](value);
        }
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        async._addErrorWithReplacement(sink, e, s);
      }
    }
  }
  (_ExpandStream.new = function(source, expand) {
    this[_expand] = expand;
    _ExpandStream.__proto__.new.call(this, source);
    ;
  }).prototype = _ExpandStream.prototype;
  dart.addTypeTests(_ExpandStream);
  _ExpandStream.prototype[_is__ExpandStream_default] = true;
  dart.addTypeCaches(_ExpandStream);
  dart.setMethodSignature(_ExpandStream, () => ({
    __proto__: dart.getMethods(_ExpandStream.__proto__),
    [_handleData$]: dart.fnType(dart.void, [S, async._EventSink$(T)])
  }));
  dart.setLibraryUri(_ExpandStream, L12);
  dart.setFieldSignature(_ExpandStream, () => ({
    __proto__: dart.getFields(_ExpandStream.__proto__),
    [_expand]: dart.finalFieldType(dart.fnType(core.Iterable$(T), [S]))
  }));
  return _ExpandStream;
});
async._ExpandStream = async._ExpandStream$();
dart.addTypeTests(async._ExpandStream, _is__ExpandStream_default);
const _is__HandleErrorStream_default = Symbol('_is__HandleErrorStream_default');
async._HandleErrorStream$ = dart.generic(T => {
  class _HandleErrorStream extends async._ForwardingStream$(T, T) {
    [_handleError$](error, stackTrace, sink) {
      let t46;
      let matches = true;
      if (this[_test] != null) {
        try {
          matches = (t46 = error, this[_test](t46));
        } catch (e$) {
          let e = dart.getThrown(e$);
          let s = dart.stackTrace(e$);
          async._addErrorWithReplacement(sink, e, s);
          return;
        }
      }
      if (dart.test(matches)) {
        try {
          async._invokeErrorHandler(this[_transform], error, stackTrace);
        } catch (e$0) {
          let e = dart.getThrown(e$0);
          let s = dart.stackTrace(e$0);
          if (core.identical(e, error)) {
            sink[_addError](error, stackTrace);
          } else {
            async._addErrorWithReplacement(sink, e, s);
          }
          return;
        }
      } else {
        sink[_addError](error, stackTrace);
      }
    }
  }
  (_HandleErrorStream.new = function(source, onError, test) {
    this[_transform] = onError;
    this[_test] = test;
    _HandleErrorStream.__proto__.new.call(this, source);
    ;
  }).prototype = _HandleErrorStream.prototype;
  dart.addTypeTests(_HandleErrorStream);
  _HandleErrorStream.prototype[_is__HandleErrorStream_default] = true;
  dart.addTypeCaches(_HandleErrorStream);
  dart.setMethodSignature(_HandleErrorStream, () => ({
    __proto__: dart.getMethods(_HandleErrorStream.__proto__),
    [_handleError$]: dart.fnType(dart.void, [core.Object, core.StackTrace, async._EventSink$(T)])
  }));
  dart.setLibraryUri(_HandleErrorStream, L12);
  dart.setFieldSignature(_HandleErrorStream, () => ({
    __proto__: dart.getFields(_HandleErrorStream.__proto__),
    [_transform]: dart.finalFieldType(core.Function),
    [_test]: dart.finalFieldType(dart.fnType(core.bool, [dart.dynamic]))
  }));
  return _HandleErrorStream;
});
async._HandleErrorStream = async._HandleErrorStream$();
dart.addTypeTests(async._HandleErrorStream, _is__HandleErrorStream_default);
var _count = dart.privateName(async, "_count");
const _is__TakeStream_default = Symbol('_is__TakeStream_default');
async._TakeStream$ = dart.generic(T => {
  var _DoneStreamSubscriptionOfTL = () => (_DoneStreamSubscriptionOfTL = dart.constFn(async._DoneStreamSubscription$(T)))();
  var _StateStreamSubscriptionOfTL = () => (_StateStreamSubscriptionOfTL = dart.constFn(async._StateStreamSubscription$(T)))();
  class _TakeStream extends async._ForwardingStream$(T, T) {
    [_createSubscription](onData, onError, onDone, cancelOnError) {
      if (this[_count] === 0) {
        this[_source$4].listen(null).cancel();
        return new (_DoneStreamSubscriptionOfTL()).new(onDone);
      }
      return new (_StateStreamSubscriptionOfTL()).new(this, onData, onError, onDone, cancelOnError, this[_count]);
    }
    [_handleData$](inputEvent, sink) {
      let subscription = _StateStreamSubscriptionOfTL().as(sink);
      let count = subscription[_count];
      if (dart.notNull(count) > 0) {
        sink[_add](inputEvent);
        count = dart.notNull(count) - 1;
        subscription[_count] = count;
        if (count === 0) {
          sink[_close]();
        }
      }
    }
  }
  (_TakeStream.new = function(source, count) {
    this[_count] = count;
    _TakeStream.__proto__.new.call(this, source);
    core.ArgumentError.checkNotNull(core.int, count, "count");
  }).prototype = _TakeStream.prototype;
  dart.addTypeTests(_TakeStream);
  _TakeStream.prototype[_is__TakeStream_default] = true;
  dart.addTypeCaches(_TakeStream);
  dart.setMethodSignature(_TakeStream, () => ({
    __proto__: dart.getMethods(_TakeStream.__proto__),
    [_handleData$]: dart.fnType(dart.void, [T, async._EventSink$(T)])
  }));
  dart.setLibraryUri(_TakeStream, L12);
  dart.setFieldSignature(_TakeStream, () => ({
    __proto__: dart.getFields(_TakeStream.__proto__),
    [_count]: dart.finalFieldType(core.int)
  }));
  return _TakeStream;
});
async._TakeStream = async._TakeStream$();
dart.addTypeTests(async._TakeStream, _is__TakeStream_default);
var _sharedState$ = dart.privateName(async, "_sharedState");
var _flag = dart.privateName(async, "_flag");
var _value = dart.privateName(async, "_value");
const _is__StateStreamSubscription_default = Symbol('_is__StateStreamSubscription_default');
async._StateStreamSubscription$ = dart.generic(T => {
  class _StateStreamSubscription extends async._ForwardingStreamSubscription$(T, T) {
    get [_flag]() {
      return core.bool.as(this[_sharedState$]);
    }
    set [_flag](flag) {
      this[_sharedState$] = flag;
    }
    get [_count]() {
      return core.int.as(this[_sharedState$]);
    }
    set [_count](count) {
      this[_sharedState$] = count;
    }
    get [_value]() {
      return this[_sharedState$];
    }
    set [_value](value) {
      this[_sharedState$] = value;
    }
  }
  (_StateStreamSubscription.new = function(stream, onData, onError, onDone, cancelOnError, _sharedState) {
    this[_sharedState$] = _sharedState;
    _StateStreamSubscription.__proto__.new.call(this, stream, onData, onError, onDone, cancelOnError);
    ;
  }).prototype = _StateStreamSubscription.prototype;
  dart.addTypeTests(_StateStreamSubscription);
  _StateStreamSubscription.prototype[_is__StateStreamSubscription_default] = true;
  dart.addTypeCaches(_StateStreamSubscription);
  dart.setGetterSignature(_StateStreamSubscription, () => ({
    __proto__: dart.getGetters(_StateStreamSubscription.__proto__),
    [_flag]: core.bool,
    [_count]: core.int,
    [_value]: core.Object
  }));
  dart.setSetterSignature(_StateStreamSubscription, () => ({
    __proto__: dart.getSetters(_StateStreamSubscription.__proto__),
    [_flag]: core.bool,
    [_count]: core.int,
    [_value]: core.Object
  }));
  dart.setLibraryUri(_StateStreamSubscription, L12);
  dart.setFieldSignature(_StateStreamSubscription, () => ({
    __proto__: dart.getFields(_StateStreamSubscription.__proto__),
    [_sharedState$]: dart.fieldType(dart.dynamic)
  }));
  return _StateStreamSubscription;
});
async._StateStreamSubscription = async._StateStreamSubscription$();
dart.addTypeTests(async._StateStreamSubscription, _is__StateStreamSubscription_default);
const _is__TakeWhileStream_default = Symbol('_is__TakeWhileStream_default');
async._TakeWhileStream$ = dart.generic(T => {
  class _TakeWhileStream extends async._ForwardingStream$(T, T) {
    [_handleData$](inputEvent, sink) {
      let t48;
      let satisfies = null;
      try {
        satisfies = (t48 = inputEvent, this[_test](t48));
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        async._addErrorWithReplacement(sink, e, s);
        sink[_close]();
        return;
      }
      if (dart.test(satisfies)) {
        sink[_add](inputEvent);
      } else {
        sink[_close]();
      }
    }
  }
  (_TakeWhileStream.new = function(source, test) {
    this[_test] = test;
    _TakeWhileStream.__proto__.new.call(this, source);
    ;
  }).prototype = _TakeWhileStream.prototype;
  dart.addTypeTests(_TakeWhileStream);
  _TakeWhileStream.prototype[_is__TakeWhileStream_default] = true;
  dart.addTypeCaches(_TakeWhileStream);
  dart.setMethodSignature(_TakeWhileStream, () => ({
    __proto__: dart.getMethods(_TakeWhileStream.__proto__),
    [_handleData$]: dart.fnType(dart.void, [T, async._EventSink$(T)])
  }));
  dart.setLibraryUri(_TakeWhileStream, L12);
  dart.setFieldSignature(_TakeWhileStream, () => ({
    __proto__: dart.getFields(_TakeWhileStream.__proto__),
    [_test]: dart.finalFieldType(dart.fnType(core.bool, [T]))
  }));
  return _TakeWhileStream;
});
async._TakeWhileStream = async._TakeWhileStream$();
dart.addTypeTests(async._TakeWhileStream, _is__TakeWhileStream_default);
const _is__SkipStream_default = Symbol('_is__SkipStream_default');
async._SkipStream$ = dart.generic(T => {
  var _StateStreamSubscriptionOfTL = () => (_StateStreamSubscriptionOfTL = dart.constFn(async._StateStreamSubscription$(T)))();
  class _SkipStream extends async._ForwardingStream$(T, T) {
    [_createSubscription](onData, onError, onDone, cancelOnError) {
      return new (_StateStreamSubscriptionOfTL()).new(this, onData, onError, onDone, cancelOnError, this[_count]);
    }
    [_handleData$](inputEvent, sink) {
      let subscription = _StateStreamSubscriptionOfTL().as(sink);
      let count = subscription[_count];
      if (dart.notNull(count) > 0) {
        subscription[_count] = dart.notNull(count) - 1;
        return;
      }
      sink[_add](inputEvent);
    }
  }
  (_SkipStream.new = function(source, count) {
    this[_count] = count;
    _SkipStream.__proto__.new.call(this, source);
    core.ArgumentError.checkNotNull(core.int, count, "count");
    core.RangeError.checkNotNegative(count, "count");
  }).prototype = _SkipStream.prototype;
  dart.addTypeTests(_SkipStream);
  _SkipStream.prototype[_is__SkipStream_default] = true;
  dart.addTypeCaches(_SkipStream);
  dart.setMethodSignature(_SkipStream, () => ({
    __proto__: dart.getMethods(_SkipStream.__proto__),
    [_handleData$]: dart.fnType(dart.void, [T, async._EventSink$(T)])
  }));
  dart.setLibraryUri(_SkipStream, L12);
  dart.setFieldSignature(_SkipStream, () => ({
    __proto__: dart.getFields(_SkipStream.__proto__),
    [_count]: dart.finalFieldType(core.int)
  }));
  return _SkipStream;
});
async._SkipStream = async._SkipStream$();
dart.addTypeTests(async._SkipStream, _is__SkipStream_default);
const _is__SkipWhileStream_default = Symbol('_is__SkipWhileStream_default');
async._SkipWhileStream$ = dart.generic(T => {
  var _StateStreamSubscriptionOfTL = () => (_StateStreamSubscriptionOfTL = dart.constFn(async._StateStreamSubscription$(T)))();
  class _SkipWhileStream extends async._ForwardingStream$(T, T) {
    [_createSubscription](onData, onError, onDone, cancelOnError) {
      return new (_StateStreamSubscriptionOfTL()).new(this, onData, onError, onDone, cancelOnError, false);
    }
    [_handleData$](inputEvent, sink) {
      let t49;
      let subscription = _StateStreamSubscriptionOfTL().as(sink);
      let hasFailed = subscription[_flag];
      if (dart.test(hasFailed)) {
        sink[_add](inputEvent);
        return;
      }
      let satisfies = null;
      try {
        satisfies = (t49 = inputEvent, this[_test](t49));
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        async._addErrorWithReplacement(sink, e, s);
        subscription[_flag] = true;
        return;
      }
      if (!dart.test(satisfies)) {
        subscription[_flag] = true;
        sink[_add](inputEvent);
      }
    }
  }
  (_SkipWhileStream.new = function(source, test) {
    this[_test] = test;
    _SkipWhileStream.__proto__.new.call(this, source);
    ;
  }).prototype = _SkipWhileStream.prototype;
  dart.addTypeTests(_SkipWhileStream);
  _SkipWhileStream.prototype[_is__SkipWhileStream_default] = true;
  dart.addTypeCaches(_SkipWhileStream);
  dart.setMethodSignature(_SkipWhileStream, () => ({
    __proto__: dart.getMethods(_SkipWhileStream.__proto__),
    [_handleData$]: dart.fnType(dart.void, [T, async._EventSink$(T)])
  }));
  dart.setLibraryUri(_SkipWhileStream, L12);
  dart.setFieldSignature(_SkipWhileStream, () => ({
    __proto__: dart.getFields(_SkipWhileStream.__proto__),
    [_test]: dart.finalFieldType(dart.fnType(core.bool, [T]))
  }));
  return _SkipWhileStream;
});
async._SkipWhileStream = async._SkipWhileStream$();
dart.addTypeTests(async._SkipWhileStream, _is__SkipWhileStream_default);
var _equals = dart.privateName(async, "_equals");
const _is__DistinctStream_default = Symbol('_is__DistinctStream_default');
async._DistinctStream$ = dart.generic(T => {
  var _StateStreamSubscriptionOfTL = () => (_StateStreamSubscriptionOfTL = dart.constFn(async._StateStreamSubscription$(T)))();
  class _DistinctStream extends async._ForwardingStream$(T, T) {
    [_createSubscription](onData, onError, onDone, cancelOnError) {
      return new (_StateStreamSubscriptionOfTL()).new(this, onData, onError, onDone, cancelOnError, async._DistinctStream._SENTINEL);
    }
    [_handleData$](inputEvent, sink) {
      let t51, t50;
      let subscription = _StateStreamSubscriptionOfTL().as(sink);
      let previous = subscription[_value];
      if (core.identical(previous, async._DistinctStream._SENTINEL)) {
        subscription[_value] = inputEvent;
        sink[_add](inputEvent);
      } else {
        let previousEvent = T.as(previous);
        let isEqual = null;
        try {
          if (this[_equals] == null) {
            isEqual = dart.equals(previousEvent, inputEvent);
          } else {
            isEqual = (t50 = previousEvent, t51 = inputEvent, this[_equals](t50, t51));
          }
        } catch (e$) {
          let e = dart.getThrown(e$);
          let s = dart.stackTrace(e$);
          async._addErrorWithReplacement(sink, e, s);
          return;
        }
        if (!dart.test(isEqual)) {
          sink[_add](inputEvent);
          subscription[_value] = inputEvent;
        }
      }
    }
  }
  (_DistinctStream.new = function(source, equals) {
    this[_equals] = equals;
    _DistinctStream.__proto__.new.call(this, source);
    ;
  }).prototype = _DistinctStream.prototype;
  dart.addTypeTests(_DistinctStream);
  _DistinctStream.prototype[_is__DistinctStream_default] = true;
  dart.addTypeCaches(_DistinctStream);
  dart.setMethodSignature(_DistinctStream, () => ({
    __proto__: dart.getMethods(_DistinctStream.__proto__),
    [_handleData$]: dart.fnType(dart.void, [T, async._EventSink$(T)])
  }));
  dart.setLibraryUri(_DistinctStream, L12);
  dart.setFieldSignature(_DistinctStream, () => ({
    __proto__: dart.getFields(_DistinctStream.__proto__),
    [_equals]: dart.finalFieldType(dart.fnType(core.bool, [T, T]))
  }));
  return _DistinctStream;
});
async._DistinctStream = async._DistinctStream$();
dart.defineLazy(async._DistinctStream, {
  /*async._DistinctStream._SENTINEL*/get _SENTINEL() {
    return new core.Object.new();
  }
}, true);
dart.addTypeTests(async._DistinctStream, _is__DistinctStream_default);
const _is__EventSinkWrapper_default = Symbol('_is__EventSinkWrapper_default');
async._EventSinkWrapper$ = dart.generic(T => {
  class _EventSinkWrapper extends core.Object {
    add(data) {
      T.as(data);
      this[_sink$][_add](data);
    }
    addError(error, stackTrace = null) {
      let t51;
      this[_sink$][_addError](error, (t51 = stackTrace, t51 == null ? async.AsyncError.defaultStackTrace(error) : t51));
    }
    close() {
      this[_sink$][_close]();
    }
  }
  (_EventSinkWrapper.new = function(_sink) {
    this[_sink$] = _sink;
    ;
  }).prototype = _EventSinkWrapper.prototype;
  dart.addTypeTests(_EventSinkWrapper);
  _EventSinkWrapper.prototype[_is__EventSinkWrapper_default] = true;
  dart.addTypeCaches(_EventSinkWrapper);
  _EventSinkWrapper[dart.implements] = () => [async.EventSink$(T)];
  dart.setMethodSignature(_EventSinkWrapper, () => ({
    __proto__: dart.getMethods(_EventSinkWrapper.__proto__),
    add: dart.fnType(dart.void, [core.Object]),
    addError: dart.fnType(dart.void, [core.Object], [core.StackTrace]),
    close: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(_EventSinkWrapper, L12);
  dart.setFieldSignature(_EventSinkWrapper, () => ({
    __proto__: dart.getFields(_EventSinkWrapper.__proto__),
    [_sink$]: dart.fieldType(async._EventSink)
  }));
  return _EventSinkWrapper;
});
async._EventSinkWrapper = async._EventSinkWrapper$();
dart.addTypeTests(async._EventSinkWrapper, _is__EventSinkWrapper_default);
var _transformerSink = dart.privateName(async, "_transformerSink");
var _isSubscribed = dart.privateName(async, "_isSubscribed");
const _is__SinkTransformerStreamSubscription_default = Symbol('_is__SinkTransformerStreamSubscription_default');
async._SinkTransformerStreamSubscription$ = dart.generic((S, T) => {
  var _EventSinkWrapperOfTL = () => (_EventSinkWrapperOfTL = dart.constFn(async._EventSinkWrapper$(T)))();
  class _SinkTransformerStreamSubscription extends async._BufferingStreamSubscription$(T) {
    get [_isSubscribed]() {
      return this[_subscription] != null;
    }
    [_add](data) {
      if (dart.test(this[_isClosed])) {
        dart.throw(new core.StateError.new("Stream is already closed"));
      }
      super[_add](data);
    }
    [_addError](error, stackTrace) {
      if (dart.test(this[_isClosed])) {
        dart.throw(new core.StateError.new("Stream is already closed"));
      }
      super[_addError](error, stackTrace);
    }
    [_close]() {
      if (dart.test(this[_isClosed])) {
        dart.throw(new core.StateError.new("Stream is already closed"));
      }
      super[_close]();
    }
    [_onPause]() {
      if (dart.test(this[_isSubscribed])) this[_subscription].pause();
    }
    [_onResume]() {
      if (dart.test(this[_isSubscribed])) this[_subscription].resume();
    }
    [_onCancel]() {
      if (dart.test(this[_isSubscribed])) {
        let subscription = this[_subscription];
        this[_subscription] = null;
        return subscription.cancel();
      }
      return null;
    }
    [_handleData$](data) {
      S.as(data);
      try {
        this[_transformerSink].add(data);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        this[_addError](e, s);
      }
    }
    [_handleError$](error, stackTrace = null) {
      try {
        this[_transformerSink].addError(error, stackTrace);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        if (core.identical(e, error)) {
          this[_addError](error, stackTrace);
        } else {
          this[_addError](e, s);
        }
      }
    }
    [_handleDone$]() {
      try {
        this[_subscription] = null;
        this[_transformerSink].close();
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        this[_addError](e, s);
      }
    }
  }
  (_SinkTransformerStreamSubscription.new = function(source, mapper, onData, onError, onDone, cancelOnError) {
    this[_transformerSink] = null;
    this[_subscription] = null;
    _SinkTransformerStreamSubscription.__proto__.new.call(this, onData, onError, onDone, cancelOnError);
    let eventSink = new (_EventSinkWrapperOfTL()).new(this);
    this[_transformerSink] = mapper(eventSink);
    this[_subscription] = source.listen(dart.bind(this, _handleData$), {onError: dart.bind(this, _handleError$), onDone: dart.bind(this, _handleDone$)});
  }).prototype = _SinkTransformerStreamSubscription.prototype;
  dart.addTypeTests(_SinkTransformerStreamSubscription);
  _SinkTransformerStreamSubscription.prototype[_is__SinkTransformerStreamSubscription_default] = true;
  dart.addTypeCaches(_SinkTransformerStreamSubscription);
  dart.setMethodSignature(_SinkTransformerStreamSubscription, () => ({
    __proto__: dart.getMethods(_SinkTransformerStreamSubscription.__proto__),
    [_add]: dart.fnType(dart.void, [T]),
    [_handleData$]: dart.fnType(dart.void, [core.Object]),
    [_handleError$]: dart.fnType(dart.void, [dart.dynamic], [core.StackTrace]),
    [_handleDone$]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_SinkTransformerStreamSubscription, () => ({
    __proto__: dart.getGetters(_SinkTransformerStreamSubscription.__proto__),
    [_isSubscribed]: core.bool
  }));
  dart.setLibraryUri(_SinkTransformerStreamSubscription, L12);
  dart.setFieldSignature(_SinkTransformerStreamSubscription, () => ({
    __proto__: dart.getFields(_SinkTransformerStreamSubscription.__proto__),
    [_transformerSink]: dart.fieldType(async.EventSink$(S)),
    [_subscription]: dart.fieldType(async.StreamSubscription$(S))
  }));
  return _SinkTransformerStreamSubscription;
});
async._SinkTransformerStreamSubscription = async._SinkTransformerStreamSubscription$();
dart.addTypeTests(async._SinkTransformerStreamSubscription, _is__SinkTransformerStreamSubscription_default);
var _sinkMapper$ = dart.privateName(async, "_sinkMapper");
const _is__StreamSinkTransformer_default = Symbol('_is__StreamSinkTransformer_default');
var _sinkMapper$0 = dart.privateName(async, "_StreamSinkTransformer._sinkMapper");
async._StreamSinkTransformer$ = dart.generic((S, T) => {
  var StreamOfSL = () => (StreamOfSL = dart.constFn(async.Stream$(S)))();
  var _BoundSinkStreamOfSL$TL = () => (_BoundSinkStreamOfSL$TL = dart.constFn(async._BoundSinkStream$(S, T)))();
  class _StreamSinkTransformer extends async.StreamTransformerBase$(S, T) {
    get [_sinkMapper$]() {
      return this[_sinkMapper$0];
    }
    set [_sinkMapper$](value) {
      super[_sinkMapper$] = value;
    }
    bind(stream) {
      StreamOfSL().as(stream);
      return new (_BoundSinkStreamOfSL$TL()).new(stream, this[_sinkMapper$]);
    }
  }
  (_StreamSinkTransformer.new = function(_sinkMapper) {
    this[_sinkMapper$0] = _sinkMapper;
    _StreamSinkTransformer.__proto__.new.call(this);
    ;
  }).prototype = _StreamSinkTransformer.prototype;
  dart.addTypeTests(_StreamSinkTransformer);
  _StreamSinkTransformer.prototype[_is__StreamSinkTransformer_default] = true;
  dart.addTypeCaches(_StreamSinkTransformer);
  dart.setMethodSignature(_StreamSinkTransformer, () => ({
    __proto__: dart.getMethods(_StreamSinkTransformer.__proto__),
    bind: dart.fnType(async.Stream$(T), [core.Object])
  }));
  dart.setLibraryUri(_StreamSinkTransformer, L12);
  dart.setFieldSignature(_StreamSinkTransformer, () => ({
    __proto__: dart.getFields(_StreamSinkTransformer.__proto__),
    [_sinkMapper$]: dart.finalFieldType(dart.fnType(async.EventSink$(S), [async.EventSink$(T)]))
  }));
  return _StreamSinkTransformer;
});
async._StreamSinkTransformer = async._StreamSinkTransformer$();
dart.addTypeTests(async._StreamSinkTransformer, _is__StreamSinkTransformer_default);
const _is__BoundSinkStream_default = Symbol('_is__BoundSinkStream_default');
async._BoundSinkStream$ = dart.generic((S, T) => {
  var _SinkTransformerStreamSubscriptionOfSL$TL = () => (_SinkTransformerStreamSubscriptionOfSL$TL = dart.constFn(async._SinkTransformerStreamSubscription$(S, T)))();
  class _BoundSinkStream extends async.Stream$(T) {
    get isBroadcast() {
      return this[_stream$].isBroadcast;
    }
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      cancelOnError = true === cancelOnError;
      let subscription = new (_SinkTransformerStreamSubscriptionOfSL$TL()).new(this[_stream$], this[_sinkMapper$], onData, onError, onDone, cancelOnError);
      return subscription;
    }
  }
  (_BoundSinkStream.new = function(_stream, _sinkMapper) {
    this[_stream$] = _stream;
    this[_sinkMapper$] = _sinkMapper;
    _BoundSinkStream.__proto__.new.call(this);
    ;
  }).prototype = _BoundSinkStream.prototype;
  dart.addTypeTests(_BoundSinkStream);
  _BoundSinkStream.prototype[_is__BoundSinkStream_default] = true;
  dart.addTypeCaches(_BoundSinkStream);
  dart.setMethodSignature(_BoundSinkStream, () => ({
    __proto__: dart.getMethods(_BoundSinkStream.__proto__),
    listen: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {})
  }));
  dart.setLibraryUri(_BoundSinkStream, L12);
  dart.setFieldSignature(_BoundSinkStream, () => ({
    __proto__: dart.getFields(_BoundSinkStream.__proto__),
    [_sinkMapper$]: dart.finalFieldType(dart.fnType(async.EventSink$(S), [async.EventSink$(T)])),
    [_stream$]: dart.finalFieldType(async.Stream$(S))
  }));
  return _BoundSinkStream;
});
async._BoundSinkStream = async._BoundSinkStream$();
dart.addTypeTests(async._BoundSinkStream, _is__BoundSinkStream_default);
const _is__HandlerEventSink_default = Symbol('_is__HandlerEventSink_default');
async._HandlerEventSink$ = dart.generic((S, T) => {
  class _HandlerEventSink extends core.Object {
    get [_isClosed]() {
      return this[_sink$] == null;
    }
    add(data) {
      let t55, t54;
      S.as(data);
      if (dart.test(this[_isClosed])) {
        dart.throw(new core.StateError.new("Sink is closed"));
      }
      if (this[_handleData$] != null) {
        t54 = data;
        t55 = this[_sink$];
        this[_handleData$](t54, t55);
      } else {
        this[_sink$].add(T.as(data));
      }
    }
    addError(error, stackTrace = null) {
      let t56, t55, t54;
      core.ArgumentError.checkNotNull(core.Object, error, "error");
      if (dart.test(this[_isClosed])) {
        dart.throw(new core.StateError.new("Sink is closed"));
      }
      if (this[_handleError$] != null) {
        stackTrace == null ? stackTrace = async.AsyncError.defaultStackTrace(error) : null;
        t54 = error;
        t55 = stackTrace;
        t56 = this[_sink$];
        this[_handleError$](t54, t55, t56);
      } else {
        this[_sink$].addError(error, stackTrace);
      }
    }
    close() {
      let t54;
      if (dart.test(this[_isClosed])) return;
      let sink = this[_sink$];
      this[_sink$] = null;
      if (this[_handleDone$] != null) {
        t54 = sink;
        this[_handleDone$](t54);
      } else {
        sink.close();
      }
    }
  }
  (_HandlerEventSink.new = function(_handleData, _handleError, _handleDone, _sink) {
    this[_handleData$] = _handleData;
    this[_handleError$] = _handleError;
    this[_handleDone$] = _handleDone;
    this[_sink$] = _sink;
    if (this[_sink$] == null) {
      dart.throw(new core.ArgumentError.new("The provided sink must not be null."));
    }
  }).prototype = _HandlerEventSink.prototype;
  dart.addTypeTests(_HandlerEventSink);
  _HandlerEventSink.prototype[_is__HandlerEventSink_default] = true;
  dart.addTypeCaches(_HandlerEventSink);
  _HandlerEventSink[dart.implements] = () => [async.EventSink$(S)];
  dart.setMethodSignature(_HandlerEventSink, () => ({
    __proto__: dart.getMethods(_HandlerEventSink.__proto__),
    add: dart.fnType(dart.void, [core.Object]),
    addError: dart.fnType(dart.void, [core.Object], [core.StackTrace]),
    close: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_HandlerEventSink, () => ({
    __proto__: dart.getGetters(_HandlerEventSink.__proto__),
    [_isClosed]: core.bool
  }));
  dart.setLibraryUri(_HandlerEventSink, L12);
  dart.setFieldSignature(_HandlerEventSink, () => ({
    __proto__: dart.getFields(_HandlerEventSink.__proto__),
    [_handleData$]: dart.finalFieldType(dart.fnType(dart.void, [S, async.EventSink$(T)])),
    [_handleError$]: dart.finalFieldType(dart.fnType(dart.void, [core.Object, core.StackTrace, async.EventSink$(T)])),
    [_handleDone$]: dart.finalFieldType(dart.fnType(dart.void, [async.EventSink$(T)])),
    [_sink$]: dart.fieldType(async.EventSink$(T))
  }));
  return _HandlerEventSink;
});
async._HandlerEventSink = async._HandlerEventSink$();
dart.addTypeTests(async._HandlerEventSink, _is__HandlerEventSink_default);
const _is__StreamHandlerTransformer_default = Symbol('_is__StreamHandlerTransformer_default');
async._StreamHandlerTransformer$ = dart.generic((S, T) => {
  var _HandlerEventSinkOfSL$TL = () => (_HandlerEventSinkOfSL$TL = dart.constFn(async._HandlerEventSink$(S, T)))();
  var EventSinkLOfTLTo_HandlerEventSinkLOfSL$TL = () => (EventSinkLOfTLTo_HandlerEventSinkLOfSL$TL = dart.constFn(dart.fnType(_HandlerEventSinkOfSL$TL(), [EventSinkOfTL()])))();
  var StreamOfSL = () => (StreamOfSL = dart.constFn(async.Stream$(S)))();
  var EventSinkOfTL = () => (EventSinkOfTL = dart.constFn(async.EventSink$(T)))();
  class _StreamHandlerTransformer extends async._StreamSinkTransformer$(S, T) {
    bind(stream) {
      StreamOfSL().as(stream);
      return super.bind(stream);
    }
  }
  (_StreamHandlerTransformer.new = function(opts) {
    let handleData = opts && 'handleData' in opts ? opts.handleData : null;
    let handleError = opts && 'handleError' in opts ? opts.handleError : null;
    let handleDone = opts && 'handleDone' in opts ? opts.handleDone : null;
    _StreamHandlerTransformer.__proto__.new.call(this, dart.fn(outputSink => new (_HandlerEventSinkOfSL$TL()).new(handleData, handleError, handleDone, outputSink), EventSinkLOfTLTo_HandlerEventSinkLOfSL$TL()));
    ;
  }).prototype = _StreamHandlerTransformer.prototype;
  dart.addTypeTests(_StreamHandlerTransformer);
  _StreamHandlerTransformer.prototype[_is__StreamHandlerTransformer_default] = true;
  dart.addTypeCaches(_StreamHandlerTransformer);
  dart.setLibraryUri(_StreamHandlerTransformer, L12);
  return _StreamHandlerTransformer;
});
async._StreamHandlerTransformer = async._StreamHandlerTransformer$();
dart.addTypeTests(async._StreamHandlerTransformer, _is__StreamHandlerTransformer_default);
var _bind$ = dart.privateName(async, "_bind");
const _is__StreamBindTransformer_default = Symbol('_is__StreamBindTransformer_default');
async._StreamBindTransformer$ = dart.generic((S, T) => {
  var StreamOfSL = () => (StreamOfSL = dart.constFn(async.Stream$(S)))();
  class _StreamBindTransformer extends async.StreamTransformerBase$(S, T) {
    bind(stream) {
      let t54;
      StreamOfSL().as(stream);
      t54 = stream;
      return this[_bind$](t54);
    }
  }
  (_StreamBindTransformer.new = function(_bind) {
    this[_bind$] = _bind;
    _StreamBindTransformer.__proto__.new.call(this);
    ;
  }).prototype = _StreamBindTransformer.prototype;
  dart.addTypeTests(_StreamBindTransformer);
  _StreamBindTransformer.prototype[_is__StreamBindTransformer_default] = true;
  dart.addTypeCaches(_StreamBindTransformer);
  dart.setMethodSignature(_StreamBindTransformer, () => ({
    __proto__: dart.getMethods(_StreamBindTransformer.__proto__),
    bind: dart.fnType(async.Stream$(T), [core.Object])
  }));
  dart.setLibraryUri(_StreamBindTransformer, L12);
  dart.setFieldSignature(_StreamBindTransformer, () => ({
    __proto__: dart.getFields(_StreamBindTransformer.__proto__),
    [_bind$]: dart.finalFieldType(dart.fnType(async.Stream$(T), [async.Stream$(S)]))
  }));
  return _StreamBindTransformer;
});
async._StreamBindTransformer = async._StreamBindTransformer$();
dart.addTypeTests(async._StreamBindTransformer, _is__StreamBindTransformer_default);
const _is__StreamSubscriptionTransformer_default = Symbol('_is__StreamSubscriptionTransformer_default');
var _onListen$0 = dart.privateName(async, "_StreamSubscriptionTransformer._onListen");
async._StreamSubscriptionTransformer$ = dart.generic((S, T) => {
  var StreamOfSL = () => (StreamOfSL = dart.constFn(async.Stream$(S)))();
  var _BoundSubscriptionStreamOfSL$TL = () => (_BoundSubscriptionStreamOfSL$TL = dart.constFn(async._BoundSubscriptionStream$(S, T)))();
  class _StreamSubscriptionTransformer extends async.StreamTransformerBase$(S, T) {
    get [_onListen$]() {
      return this[_onListen$0];
    }
    set [_onListen$](value) {
      super[_onListen$] = value;
    }
    bind(stream) {
      StreamOfSL().as(stream);
      return new (_BoundSubscriptionStreamOfSL$TL()).new(stream, this[_onListen$]);
    }
  }
  (_StreamSubscriptionTransformer.new = function(_onListen) {
    this[_onListen$0] = _onListen;
    _StreamSubscriptionTransformer.__proto__.new.call(this);
    ;
  }).prototype = _StreamSubscriptionTransformer.prototype;
  dart.addTypeTests(_StreamSubscriptionTransformer);
  _StreamSubscriptionTransformer.prototype[_is__StreamSubscriptionTransformer_default] = true;
  dart.addTypeCaches(_StreamSubscriptionTransformer);
  dart.setMethodSignature(_StreamSubscriptionTransformer, () => ({
    __proto__: dart.getMethods(_StreamSubscriptionTransformer.__proto__),
    bind: dart.fnType(async.Stream$(T), [core.Object])
  }));
  dart.setLibraryUri(_StreamSubscriptionTransformer, L12);
  dart.setFieldSignature(_StreamSubscriptionTransformer, () => ({
    __proto__: dart.getFields(_StreamSubscriptionTransformer.__proto__),
    [_onListen$]: dart.finalFieldType(dart.fnType(async.StreamSubscription$(T), [async.Stream$(S), core.bool]))
  }));
  return _StreamSubscriptionTransformer;
});
async._StreamSubscriptionTransformer = async._StreamSubscriptionTransformer$();
dart.addTypeTests(async._StreamSubscriptionTransformer, _is__StreamSubscriptionTransformer_default);
const _is__BoundSubscriptionStream_default = Symbol('_is__BoundSubscriptionStream_default');
async._BoundSubscriptionStream$ = dart.generic((S, T) => {
  class _BoundSubscriptionStream extends async.Stream$(T) {
    get isBroadcast() {
      return this[_stream$].isBroadcast;
    }
    listen(onData, opts) {
      let t55, t54;
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      cancelOnError = true === cancelOnError;
      let result = (t54 = this[_stream$], t55 = cancelOnError, this[_onListen$](t54, t55));
      result.onData(onData);
      result.onError(onError);
      result.onDone(onDone);
      return result;
    }
  }
  (_BoundSubscriptionStream.new = function(_stream, _onListen) {
    this[_stream$] = _stream;
    this[_onListen$] = _onListen;
    _BoundSubscriptionStream.__proto__.new.call(this);
    ;
  }).prototype = _BoundSubscriptionStream.prototype;
  dart.addTypeTests(_BoundSubscriptionStream);
  _BoundSubscriptionStream.prototype[_is__BoundSubscriptionStream_default] = true;
  dart.addTypeCaches(_BoundSubscriptionStream);
  dart.setMethodSignature(_BoundSubscriptionStream, () => ({
    __proto__: dart.getMethods(_BoundSubscriptionStream.__proto__),
    listen: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {})
  }));
  dart.setLibraryUri(_BoundSubscriptionStream, L12);
  dart.setFieldSignature(_BoundSubscriptionStream, () => ({
    __proto__: dart.getFields(_BoundSubscriptionStream.__proto__),
    [_onListen$]: dart.finalFieldType(dart.fnType(async.StreamSubscription$(T), [async.Stream$(S), core.bool])),
    [_stream$]: dart.finalFieldType(async.Stream$(S))
  }));
  return _BoundSubscriptionStream;
});
async._BoundSubscriptionStream = async._BoundSubscriptionStream$();
dart.addTypeTests(async._BoundSubscriptionStream, _is__BoundSubscriptionStream_default);
async.Timer = class Timer extends core.Object {
  static new(duration, callback) {
    if (dart.equals(async.Zone.current, async.Zone.root)) {
      return async.Zone.current.createTimer(duration, callback);
    }
    return async.Zone.current.createTimer(duration, async.Zone.current.bindCallbackGuarded(callback));
  }
  static periodic(duration, callback) {
    if (dart.equals(async.Zone.current, async.Zone.root)) {
      return async.Zone.current.createPeriodicTimer(duration, callback);
    }
    let boundCallback = async.Zone.current.bindUnaryCallbackGuarded(async.Timer, callback);
    return async.Zone.current.createPeriodicTimer(duration, boundCallback);
  }
  static run(callback) {
    async.Timer.new(core.Duration.zero, callback);
  }
  static _createTimer(duration, callback) {
    let milliseconds = duration.inMilliseconds;
    if (dart.notNull(milliseconds) < 0) milliseconds = 0;
    return new _isolate_helper.TimerImpl.new(milliseconds, callback);
  }
  static _createPeriodicTimer(duration, callback) {
    let milliseconds = duration.inMilliseconds;
    if (dart.notNull(milliseconds) < 0) milliseconds = 0;
    return new _isolate_helper.TimerImpl.periodic(milliseconds, callback);
  }
};
(async.Timer[dart.mixinNew] = function() {
}).prototype = async.Timer.prototype;
dart.addTypeTests(async.Timer);
dart.addTypeCaches(async.Timer);
dart.setLibraryUri(async.Timer, L12);
var error$ = dart.privateName(async, "AsyncError.error");
var stackTrace$ = dart.privateName(async, "AsyncError.stackTrace");
async.AsyncError = class AsyncError extends core.Object {
  get error() {
    return this[error$];
  }
  set error(value) {
    super.error = value;
  }
  get stackTrace() {
    return this[stackTrace$];
  }
  set stackTrace(value) {
    super.stackTrace = value;
  }
  static defaultStackTrace(error) {
    if (core.Error.is(error)) {
      let stackTrace = error[$stackTrace];
      if (stackTrace != null) return stackTrace;
    }
    return core.StackTrace.empty;
  }
  toString() {
    return dart.str(this.error);
  }
};
(async.AsyncError.new = function(error, stackTrace) {
  let t54;
  this[error$] = error;
  this[stackTrace$] = (t54 = stackTrace, t54 == null ? async.AsyncError.defaultStackTrace(error) : t54);
  core.ArgumentError.checkNotNull(core.Object, this.error, "error");
}).prototype = async.AsyncError.prototype;
dart.addTypeTests(async.AsyncError);
dart.addTypeCaches(async.AsyncError);
async.AsyncError[dart.implements] = () => [core.Error];
dart.setLibraryUri(async.AsyncError, L12);
dart.setFieldSignature(async.AsyncError, () => ({
  __proto__: dart.getFields(async.AsyncError.__proto__),
  error: dart.finalFieldType(core.Object),
  stackTrace: dart.finalFieldType(core.StackTrace)
}));
dart.defineExtensionMethods(async.AsyncError, ['toString']);
dart.defineExtensionAccessors(async.AsyncError, ['stackTrace']);
const _is__ZoneFunction_default = Symbol('_is__ZoneFunction_default');
var zone$ = dart.privateName(async, "_ZoneFunction.zone");
var func = dart.privateName(async, "_ZoneFunction.function");
async._ZoneFunction$ = dart.generic(T => {
  class _ZoneFunction extends core.Object {
    get zone() {
      return this[zone$];
    }
    set zone(value) {
      super.zone = value;
    }
    get function() {
      return this[func];
    }
    set function(value) {
      super.function = value;
    }
  }
  (_ZoneFunction.new = function(zone, $function) {
    this[zone$] = zone;
    this[func] = $function;
    ;
  }).prototype = _ZoneFunction.prototype;
  dart.addTypeTests(_ZoneFunction);
  _ZoneFunction.prototype[_is__ZoneFunction_default] = true;
  dart.addTypeCaches(_ZoneFunction);
  dart.setLibraryUri(_ZoneFunction, L12);
  dart.setFieldSignature(_ZoneFunction, () => ({
    __proto__: dart.getFields(_ZoneFunction.__proto__),
    zone: dart.finalFieldType(async._Zone),
    function: dart.finalFieldType(T)
  }));
  return _ZoneFunction;
});
async._ZoneFunction = async._ZoneFunction$();
dart.addTypeTests(async._ZoneFunction, _is__ZoneFunction_default);
var zone$0 = dart.privateName(async, "_RunNullaryZoneFunction.zone");
var function$0 = dart.privateName(async, "_RunNullaryZoneFunction.function");
async._RunNullaryZoneFunction = class _RunNullaryZoneFunction extends core.Object {
  get zone() {
    return this[zone$0];
  }
  set zone(value) {
    super.zone = value;
  }
  get function() {
    return this[function$0];
  }
  set function(value) {
    super.function = value;
  }
};
(async._RunNullaryZoneFunction.new = function(zone, $function) {
  this[zone$0] = zone;
  this[function$0] = $function;
  ;
}).prototype = async._RunNullaryZoneFunction.prototype;
dart.addTypeTests(async._RunNullaryZoneFunction);
dart.addTypeCaches(async._RunNullaryZoneFunction);
dart.setLibraryUri(async._RunNullaryZoneFunction, L12);
dart.setFieldSignature(async._RunNullaryZoneFunction, () => ({
  __proto__: dart.getFields(async._RunNullaryZoneFunction.__proto__),
  zone: dart.finalFieldType(async._Zone),
  function: dart.finalFieldType(dart.gFnType(R => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [])]]))
}));
var zone$1 = dart.privateName(async, "_RunUnaryZoneFunction.zone");
var function$1 = dart.privateName(async, "_RunUnaryZoneFunction.function");
async._RunUnaryZoneFunction = class _RunUnaryZoneFunction extends core.Object {
  get zone() {
    return this[zone$1];
  }
  set zone(value) {
    super.zone = value;
  }
  get function() {
    return this[function$1];
  }
  set function(value) {
    super.function = value;
  }
};
(async._RunUnaryZoneFunction.new = function(zone, $function) {
  this[zone$1] = zone;
  this[function$1] = $function;
  ;
}).prototype = async._RunUnaryZoneFunction.prototype;
dart.addTypeTests(async._RunUnaryZoneFunction);
dart.addTypeCaches(async._RunUnaryZoneFunction);
dart.setLibraryUri(async._RunUnaryZoneFunction, L12);
dart.setFieldSignature(async._RunUnaryZoneFunction, () => ({
  __proto__: dart.getFields(async._RunUnaryZoneFunction.__proto__),
  zone: dart.finalFieldType(async._Zone),
  function: dart.finalFieldType(dart.gFnType((R, T) => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [T]), T]]))
}));
var zone$2 = dart.privateName(async, "_RunBinaryZoneFunction.zone");
var function$2 = dart.privateName(async, "_RunBinaryZoneFunction.function");
async._RunBinaryZoneFunction = class _RunBinaryZoneFunction extends core.Object {
  get zone() {
    return this[zone$2];
  }
  set zone(value) {
    super.zone = value;
  }
  get function() {
    return this[function$2];
  }
  set function(value) {
    super.function = value;
  }
};
(async._RunBinaryZoneFunction.new = function(zone, $function) {
  this[zone$2] = zone;
  this[function$2] = $function;
  ;
}).prototype = async._RunBinaryZoneFunction.prototype;
dart.addTypeTests(async._RunBinaryZoneFunction);
dart.addTypeCaches(async._RunBinaryZoneFunction);
dart.setLibraryUri(async._RunBinaryZoneFunction, L12);
dart.setFieldSignature(async._RunBinaryZoneFunction, () => ({
  __proto__: dart.getFields(async._RunBinaryZoneFunction.__proto__),
  zone: dart.finalFieldType(async._Zone),
  function: dart.finalFieldType(dart.gFnType((R, T1, T2) => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [T1, T2]), T1, T2]]))
}));
var zone$3 = dart.privateName(async, "_RegisterNullaryZoneFunction.zone");
var function$3 = dart.privateName(async, "_RegisterNullaryZoneFunction.function");
async._RegisterNullaryZoneFunction = class _RegisterNullaryZoneFunction extends core.Object {
  get zone() {
    return this[zone$3];
  }
  set zone(value) {
    super.zone = value;
  }
  get function() {
    return this[function$3];
  }
  set function(value) {
    super.function = value;
  }
};
(async._RegisterNullaryZoneFunction.new = function(zone, $function) {
  this[zone$3] = zone;
  this[function$3] = $function;
  ;
}).prototype = async._RegisterNullaryZoneFunction.prototype;
dart.addTypeTests(async._RegisterNullaryZoneFunction);
dart.addTypeCaches(async._RegisterNullaryZoneFunction);
dart.setLibraryUri(async._RegisterNullaryZoneFunction, L12);
dart.setFieldSignature(async._RegisterNullaryZoneFunction, () => ({
  __proto__: dart.getFields(async._RegisterNullaryZoneFunction.__proto__),
  zone: dart.finalFieldType(async._Zone),
  function: dart.finalFieldType(dart.gFnType(R => [dart.fnType(R, []), [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [])]]))
}));
var zone$4 = dart.privateName(async, "_RegisterUnaryZoneFunction.zone");
var function$4 = dart.privateName(async, "_RegisterUnaryZoneFunction.function");
async._RegisterUnaryZoneFunction = class _RegisterUnaryZoneFunction extends core.Object {
  get zone() {
    return this[zone$4];
  }
  set zone(value) {
    super.zone = value;
  }
  get function() {
    return this[function$4];
  }
  set function(value) {
    super.function = value;
  }
};
(async._RegisterUnaryZoneFunction.new = function(zone, $function) {
  this[zone$4] = zone;
  this[function$4] = $function;
  ;
}).prototype = async._RegisterUnaryZoneFunction.prototype;
dart.addTypeTests(async._RegisterUnaryZoneFunction);
dart.addTypeCaches(async._RegisterUnaryZoneFunction);
dart.setLibraryUri(async._RegisterUnaryZoneFunction, L12);
dart.setFieldSignature(async._RegisterUnaryZoneFunction, () => ({
  __proto__: dart.getFields(async._RegisterUnaryZoneFunction.__proto__),
  zone: dart.finalFieldType(async._Zone),
  function: dart.finalFieldType(dart.gFnType((R, T) => [dart.fnType(R, [T]), [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [T])]]))
}));
var zone$5 = dart.privateName(async, "_RegisterBinaryZoneFunction.zone");
var function$5 = dart.privateName(async, "_RegisterBinaryZoneFunction.function");
async._RegisterBinaryZoneFunction = class _RegisterBinaryZoneFunction extends core.Object {
  get zone() {
    return this[zone$5];
  }
  set zone(value) {
    super.zone = value;
  }
  get function() {
    return this[function$5];
  }
  set function(value) {
    super.function = value;
  }
};
(async._RegisterBinaryZoneFunction.new = function(zone, $function) {
  this[zone$5] = zone;
  this[function$5] = $function;
  ;
}).prototype = async._RegisterBinaryZoneFunction.prototype;
dart.addTypeTests(async._RegisterBinaryZoneFunction);
dart.addTypeCaches(async._RegisterBinaryZoneFunction);
dart.setLibraryUri(async._RegisterBinaryZoneFunction, L12);
dart.setFieldSignature(async._RegisterBinaryZoneFunction, () => ({
  __proto__: dart.getFields(async._RegisterBinaryZoneFunction.__proto__),
  zone: dart.finalFieldType(async._Zone),
  function: dart.finalFieldType(dart.gFnType((R, T1, T2) => [dart.fnType(R, [T1, T2]), [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [T1, T2])]]))
}));
async.ZoneSpecification = class ZoneSpecification extends core.Object {
  static from(other, opts) {
    let t54, t54$, t54$0, t54$1, t54$2, t54$3, t54$4, t54$5, t54$6, t54$7, t54$8, t54$9, t54$10;
    let handleUncaughtError = opts && 'handleUncaughtError' in opts ? opts.handleUncaughtError : null;
    let run = opts && 'run' in opts ? opts.run : null;
    let runUnary = opts && 'runUnary' in opts ? opts.runUnary : null;
    let runBinary = opts && 'runBinary' in opts ? opts.runBinary : null;
    let registerCallback = opts && 'registerCallback' in opts ? opts.registerCallback : null;
    let registerUnaryCallback = opts && 'registerUnaryCallback' in opts ? opts.registerUnaryCallback : null;
    let registerBinaryCallback = opts && 'registerBinaryCallback' in opts ? opts.registerBinaryCallback : null;
    let errorCallback = opts && 'errorCallback' in opts ? opts.errorCallback : null;
    let scheduleMicrotask = opts && 'scheduleMicrotask' in opts ? opts.scheduleMicrotask : null;
    let createTimer = opts && 'createTimer' in opts ? opts.createTimer : null;
    let createPeriodicTimer = opts && 'createPeriodicTimer' in opts ? opts.createPeriodicTimer : null;
    let print = opts && 'print' in opts ? opts.print : null;
    let fork = opts && 'fork' in opts ? opts.fork : null;
    return new async._ZoneSpecification.new({handleUncaughtError: (t54 = handleUncaughtError, t54 == null ? other.handleUncaughtError : t54), run: (t54$ = run, t54$ == null ? other.run : t54$), runUnary: (t54$0 = runUnary, t54$0 == null ? other.runUnary : t54$0), runBinary: (t54$1 = runBinary, t54$1 == null ? other.runBinary : t54$1), registerCallback: (t54$2 = registerCallback, t54$2 == null ? other.registerCallback : t54$2), registerUnaryCallback: (t54$3 = registerUnaryCallback, t54$3 == null ? other.registerUnaryCallback : t54$3), registerBinaryCallback: (t54$4 = registerBinaryCallback, t54$4 == null ? other.registerBinaryCallback : t54$4), errorCallback: (t54$5 = errorCallback, t54$5 == null ? other.errorCallback : t54$5), scheduleMicrotask: (t54$6 = scheduleMicrotask, t54$6 == null ? other.scheduleMicrotask : t54$6), createTimer: (t54$7 = createTimer, t54$7 == null ? other.createTimer : t54$7), createPeriodicTimer: (t54$8 = createPeriodicTimer, t54$8 == null ? other.createPeriodicTimer : t54$8), print: (t54$9 = print, t54$9 == null ? other.print : t54$9), fork: (t54$10 = fork, t54$10 == null ? other.fork : t54$10)});
  }
};
(async.ZoneSpecification[dart.mixinNew] = function() {
}).prototype = async.ZoneSpecification.prototype;
dart.addTypeTests(async.ZoneSpecification);
dart.addTypeCaches(async.ZoneSpecification);
dart.setLibraryUri(async.ZoneSpecification, L12);
var handleUncaughtError$ = dart.privateName(async, "_ZoneSpecification.handleUncaughtError");
var run$ = dart.privateName(async, "_ZoneSpecification.run");
var runUnary$ = dart.privateName(async, "_ZoneSpecification.runUnary");
var runBinary$ = dart.privateName(async, "_ZoneSpecification.runBinary");
var registerCallback$ = dart.privateName(async, "_ZoneSpecification.registerCallback");
var registerUnaryCallback$ = dart.privateName(async, "_ZoneSpecification.registerUnaryCallback");
var registerBinaryCallback$ = dart.privateName(async, "_ZoneSpecification.registerBinaryCallback");
var errorCallback$ = dart.privateName(async, "_ZoneSpecification.errorCallback");
var scheduleMicrotask$ = dart.privateName(async, "_ZoneSpecification.scheduleMicrotask");
var createTimer$ = dart.privateName(async, "_ZoneSpecification.createTimer");
var createPeriodicTimer$ = dart.privateName(async, "_ZoneSpecification.createPeriodicTimer");
var print$ = dart.privateName(async, "_ZoneSpecification.print");
var fork$ = dart.privateName(async, "_ZoneSpecification.fork");
async._ZoneSpecification = class _ZoneSpecification extends core.Object {
  get handleUncaughtError() {
    return this[handleUncaughtError$];
  }
  set handleUncaughtError(value) {
    super.handleUncaughtError = value;
  }
  get run() {
    return this[run$];
  }
  set run(value) {
    super.run = value;
  }
  get runUnary() {
    return this[runUnary$];
  }
  set runUnary(value) {
    super.runUnary = value;
  }
  get runBinary() {
    return this[runBinary$];
  }
  set runBinary(value) {
    super.runBinary = value;
  }
  get registerCallback() {
    return this[registerCallback$];
  }
  set registerCallback(value) {
    super.registerCallback = value;
  }
  get registerUnaryCallback() {
    return this[registerUnaryCallback$];
  }
  set registerUnaryCallback(value) {
    super.registerUnaryCallback = value;
  }
  get registerBinaryCallback() {
    return this[registerBinaryCallback$];
  }
  set registerBinaryCallback(value) {
    super.registerBinaryCallback = value;
  }
  get errorCallback() {
    return this[errorCallback$];
  }
  set errorCallback(value) {
    super.errorCallback = value;
  }
  get scheduleMicrotask() {
    return this[scheduleMicrotask$];
  }
  set scheduleMicrotask(value) {
    super.scheduleMicrotask = value;
  }
  get createTimer() {
    return this[createTimer$];
  }
  set createTimer(value) {
    super.createTimer = value;
  }
  get createPeriodicTimer() {
    return this[createPeriodicTimer$];
  }
  set createPeriodicTimer(value) {
    super.createPeriodicTimer = value;
  }
  get print() {
    return this[print$];
  }
  set print(value) {
    super.print = value;
  }
  get fork() {
    return this[fork$];
  }
  set fork(value) {
    super.fork = value;
  }
};
(async._ZoneSpecification.new = function(opts) {
  let handleUncaughtError = opts && 'handleUncaughtError' in opts ? opts.handleUncaughtError : null;
  let run = opts && 'run' in opts ? opts.run : null;
  let runUnary = opts && 'runUnary' in opts ? opts.runUnary : null;
  let runBinary = opts && 'runBinary' in opts ? opts.runBinary : null;
  let registerCallback = opts && 'registerCallback' in opts ? opts.registerCallback : null;
  let registerUnaryCallback = opts && 'registerUnaryCallback' in opts ? opts.registerUnaryCallback : null;
  let registerBinaryCallback = opts && 'registerBinaryCallback' in opts ? opts.registerBinaryCallback : null;
  let errorCallback = opts && 'errorCallback' in opts ? opts.errorCallback : null;
  let scheduleMicrotask = opts && 'scheduleMicrotask' in opts ? opts.scheduleMicrotask : null;
  let createTimer = opts && 'createTimer' in opts ? opts.createTimer : null;
  let createPeriodicTimer = opts && 'createPeriodicTimer' in opts ? opts.createPeriodicTimer : null;
  let print = opts && 'print' in opts ? opts.print : null;
  let fork = opts && 'fork' in opts ? opts.fork : null;
  this[handleUncaughtError$] = handleUncaughtError;
  this[run$] = run;
  this[runUnary$] = runUnary;
  this[runBinary$] = runBinary;
  this[registerCallback$] = registerCallback;
  this[registerUnaryCallback$] = registerUnaryCallback;
  this[registerBinaryCallback$] = registerBinaryCallback;
  this[errorCallback$] = errorCallback;
  this[scheduleMicrotask$] = scheduleMicrotask;
  this[createTimer$] = createTimer;
  this[createPeriodicTimer$] = createPeriodicTimer;
  this[print$] = print;
  this[fork$] = fork;
  ;
}).prototype = async._ZoneSpecification.prototype;
dart.addTypeTests(async._ZoneSpecification);
dart.addTypeCaches(async._ZoneSpecification);
async._ZoneSpecification[dart.implements] = () => [async.ZoneSpecification];
dart.setLibraryUri(async._ZoneSpecification, L12);
dart.setFieldSignature(async._ZoneSpecification, () => ({
  __proto__: dart.getFields(async._ZoneSpecification.__proto__),
  handleUncaughtError: dart.finalFieldType(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace])),
  run: dart.finalFieldType(dart.gFnType(R => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [])]])),
  runUnary: dart.finalFieldType(dart.gFnType((R, T) => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [T]), T]])),
  runBinary: dart.finalFieldType(dart.gFnType((R, T1, T2) => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [T1, T2]), T1, T2]])),
  registerCallback: dart.finalFieldType(dart.gFnType(R => [dart.fnType(R, []), [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [])]])),
  registerUnaryCallback: dart.finalFieldType(dart.gFnType((R, T) => [dart.fnType(R, [T]), [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [T])]])),
  registerBinaryCallback: dart.finalFieldType(dart.gFnType((R, T1, T2) => [dart.fnType(R, [T1, T2]), [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(R, [T1, T2])]])),
  errorCallback: dart.finalFieldType(dart.fnType(async.AsyncError, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace])),
  scheduleMicrotask: dart.finalFieldType(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(dart.void, [])])),
  createTimer: dart.finalFieldType(dart.fnType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.fnType(dart.void, [])])),
  createPeriodicTimer: dart.finalFieldType(dart.fnType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.fnType(dart.void, [async.Timer])])),
  print: dart.finalFieldType(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.String])),
  fork: dart.finalFieldType(dart.fnType(async.Zone, [async.Zone, async.ZoneDelegate, async.Zone, async.ZoneSpecification, core.Map]))
}));
async.ZoneDelegate = class ZoneDelegate extends core.Object {};
(async.ZoneDelegate.new = function() {
  ;
}).prototype = async.ZoneDelegate.prototype;
dart.addTypeTests(async.ZoneDelegate);
dart.addTypeCaches(async.ZoneDelegate);
dart.setLibraryUri(async.ZoneDelegate, L12);
var C46;
async.Zone = class Zone extends core.Object {
  static get current() {
    return async.Zone._current;
  }
  static _enter(zone) {
    if (!(zone != null)) dart.assertFailed(null, L34, 712, 12, "zone != null");
    if (!(zone != async.Zone._current)) dart.assertFailed(null, L34, 713, 12, "!identical(zone, _current)");
    let previous = async.Zone._current;
    async.Zone._current = zone;
    return previous;
  }
  static _leave(previous) {
    if (!(previous != null)) dart.assertFailed(null, L34, 725, 12, "previous != null");
    async.Zone._current = previous;
  }
};
(async.Zone.__ = function() {
  ;
}).prototype = async.Zone.prototype;
dart.addTypeTests(async.Zone);
dart.addTypeCaches(async.Zone);
dart.setLibraryUri(async.Zone, L12);
dart.defineLazy(async.Zone, {
  /*async.Zone.root*/get root() {
    return C46 || CT.C46;
  },
  /*async.Zone._current*/get _current() {
    return async._rootZone;
  },
  set _current(_) {}
}, true);
var _delegationTarget$ = dart.privateName(async, "_delegationTarget");
var _handleUncaughtError = dart.privateName(async, "_handleUncaughtError");
var _run = dart.privateName(async, "_run");
var _runUnary = dart.privateName(async, "_runUnary");
var _runBinary = dart.privateName(async, "_runBinary");
var _registerCallback = dart.privateName(async, "_registerCallback");
var _registerUnaryCallback = dart.privateName(async, "_registerUnaryCallback");
var _registerBinaryCallback = dart.privateName(async, "_registerBinaryCallback");
var _errorCallback = dart.privateName(async, "_errorCallback");
var _scheduleMicrotask = dart.privateName(async, "_scheduleMicrotask");
var _createTimer = dart.privateName(async, "_createTimer");
var _createPeriodicTimer = dart.privateName(async, "_createPeriodicTimer");
var _print = dart.privateName(async, "_print");
var _fork = dart.privateName(async, "_fork");
async._ZoneDelegate = class _ZoneDelegate extends core.Object {
  handleUncaughtError(zone, error, stackTrace) {
    let implementation = this[_delegationTarget$][_handleUncaughtError];
    let implZone = implementation.zone;
    let handler = implementation.function;
    return handler(implZone, async._parentDelegate(implZone), zone, error, stackTrace);
  }
  run(R, zone, f) {
    let implementation = this[_delegationTarget$][_run];
    let implZone = implementation.zone;
    let handler = implementation.function;
    return handler(R, implZone, async._parentDelegate(implZone), zone, f);
  }
  runUnary(R, T, zone, f, arg) {
    let implementation = this[_delegationTarget$][_runUnary];
    let implZone = implementation.zone;
    let handler = implementation.function;
    return handler(R, T, implZone, async._parentDelegate(implZone), zone, f, arg);
  }
  runBinary(R, T1, T2, zone, f, arg1, arg2) {
    let implementation = this[_delegationTarget$][_runBinary];
    let implZone = implementation.zone;
    let handler = implementation.function;
    return handler(R, T1, T2, implZone, async._parentDelegate(implZone), zone, f, arg1, arg2);
  }
  registerCallback(R, zone, f) {
    let implementation = this[_delegationTarget$][_registerCallback];
    let implZone = implementation.zone;
    let handler = implementation.function;
    return handler(R, implZone, async._parentDelegate(implZone), zone, f);
  }
  registerUnaryCallback(R, T, zone, f) {
    let implementation = this[_delegationTarget$][_registerUnaryCallback];
    let implZone = implementation.zone;
    let handler = implementation.function;
    return handler(R, T, implZone, async._parentDelegate(implZone), zone, f);
  }
  registerBinaryCallback(R, T1, T2, zone, f) {
    let implementation = this[_delegationTarget$][_registerBinaryCallback];
    let implZone = implementation.zone;
    let handler = implementation.function;
    return handler(R, T1, T2, implZone, async._parentDelegate(implZone), zone, f);
  }
  errorCallback(zone, error, stackTrace) {
    core.ArgumentError.checkNotNull(core.Object, error, "error");
    let implementation = this[_delegationTarget$][_errorCallback];
    let implZone = implementation.zone;
    if (implZone == async._rootZone) return null;
    let handler = implementation.function;
    return handler(implZone, async._parentDelegate(implZone), zone, error, stackTrace);
  }
  scheduleMicrotask(zone, f) {
    let implementation = this[_delegationTarget$][_scheduleMicrotask];
    let implZone = implementation.zone;
    let handler = implementation.function;
    handler(implZone, async._parentDelegate(implZone), zone, f);
  }
  createTimer(zone, duration, f) {
    let implementation = this[_delegationTarget$][_createTimer];
    let implZone = implementation.zone;
    let handler = implementation.function;
    return handler(implZone, async._parentDelegate(implZone), zone, duration, f);
  }
  createPeriodicTimer(zone, period, f) {
    let implementation = this[_delegationTarget$][_createPeriodicTimer];
    let implZone = implementation.zone;
    let handler = implementation.function;
    return handler(implZone, async._parentDelegate(implZone), zone, period, f);
  }
  print(zone, line) {
    let implementation = this[_delegationTarget$][_print];
    let implZone = implementation.zone;
    let handler = implementation.function;
    handler(implZone, async._parentDelegate(implZone), zone, line);
  }
  fork(zone, specification, zoneValues) {
    let implementation = this[_delegationTarget$][_fork];
    let implZone = implementation.zone;
    let handler = implementation.function;
    return handler(implZone, async._parentDelegate(implZone), zone, specification, zoneValues);
  }
};
(async._ZoneDelegate.new = function(_delegationTarget) {
  this[_delegationTarget$] = _delegationTarget;
  ;
}).prototype = async._ZoneDelegate.prototype;
dart.addTypeTests(async._ZoneDelegate);
dart.addTypeCaches(async._ZoneDelegate);
async._ZoneDelegate[dart.implements] = () => [async.ZoneDelegate];
dart.setMethodSignature(async._ZoneDelegate, () => ({
  __proto__: dart.getMethods(async._ZoneDelegate.__proto__),
  handleUncaughtError: dart.fnType(dart.void, [async.Zone, dart.dynamic, core.StackTrace]),
  run: dart.gFnType(R => [R, [async.Zone, dart.fnType(R, [])]]),
  runUnary: dart.gFnType((R, T) => [R, [async.Zone, dart.fnType(R, [T]), T]]),
  runBinary: dart.gFnType((R, T1, T2) => [R, [async.Zone, dart.fnType(R, [T1, T2]), T1, T2]]),
  registerCallback: dart.gFnType(R => [dart.fnType(R, []), [async.Zone, dart.fnType(R, [])]]),
  registerUnaryCallback: dart.gFnType((R, T) => [dart.fnType(R, [T]), [async.Zone, dart.fnType(R, [T])]]),
  registerBinaryCallback: dart.gFnType((R, T1, T2) => [dart.fnType(R, [T1, T2]), [async.Zone, dart.fnType(R, [T1, T2])]]),
  errorCallback: dart.fnType(async.AsyncError, [async.Zone, core.Object, core.StackTrace]),
  scheduleMicrotask: dart.fnType(dart.void, [async.Zone, dart.fnType(dart.dynamic, [])]),
  createTimer: dart.fnType(async.Timer, [async.Zone, core.Duration, dart.fnType(dart.void, [])]),
  createPeriodicTimer: dart.fnType(async.Timer, [async.Zone, core.Duration, dart.fnType(dart.void, [async.Timer])]),
  print: dart.fnType(dart.void, [async.Zone, core.String]),
  fork: dart.fnType(async.Zone, [async.Zone, async.ZoneSpecification, core.Map])
}));
dart.setLibraryUri(async._ZoneDelegate, L12);
dart.setFieldSignature(async._ZoneDelegate, () => ({
  __proto__: dart.getFields(async._ZoneDelegate.__proto__),
  [_delegationTarget$]: dart.finalFieldType(async._Zone)
}));
async._Zone = class _Zone extends core.Object {
  inSameErrorZone(otherZone) {
    return this === otherZone || this.errorZone == otherZone.errorZone;
  }
};
(async._Zone.new = function() {
  ;
}).prototype = async._Zone.prototype;
dart.addTypeTests(async._Zone);
dart.addTypeCaches(async._Zone);
async._Zone[dart.implements] = () => [async.Zone];
dart.setMethodSignature(async._Zone, () => ({
  __proto__: dart.getMethods(async._Zone.__proto__),
  inSameErrorZone: dart.fnType(core.bool, [async.Zone])
}));
dart.setLibraryUri(async._Zone, L12);
var _delegateCache = dart.privateName(async, "_delegateCache");
var _map$2 = dart.privateName(async, "_map");
var _delegate = dart.privateName(async, "_delegate");
var _run$ = dart.privateName(async, "_CustomZone._run");
var _runUnary$ = dart.privateName(async, "_CustomZone._runUnary");
var _runBinary$ = dart.privateName(async, "_CustomZone._runBinary");
var _registerCallback$ = dart.privateName(async, "_CustomZone._registerCallback");
var _registerUnaryCallback$ = dart.privateName(async, "_CustomZone._registerUnaryCallback");
var _registerBinaryCallback$ = dart.privateName(async, "_CustomZone._registerBinaryCallback");
var _errorCallback$ = dart.privateName(async, "_CustomZone._errorCallback");
var _scheduleMicrotask$ = dart.privateName(async, "_CustomZone._scheduleMicrotask");
var _createTimer$ = dart.privateName(async, "_CustomZone._createTimer");
var _createPeriodicTimer$ = dart.privateName(async, "_CustomZone._createPeriodicTimer");
var _print$ = dart.privateName(async, "_CustomZone._print");
var _fork$ = dart.privateName(async, "_CustomZone._fork");
var _handleUncaughtError$ = dart.privateName(async, "_CustomZone._handleUncaughtError");
var parent$ = dart.privateName(async, "_CustomZone.parent");
var _map$3 = dart.privateName(async, "_CustomZone._map");
async._CustomZone = class _CustomZone extends async._Zone {
  get [_run]() {
    return this[_run$];
  }
  set [_run](value) {
    this[_run$] = value;
  }
  get [_runUnary]() {
    return this[_runUnary$];
  }
  set [_runUnary](value) {
    this[_runUnary$] = value;
  }
  get [_runBinary]() {
    return this[_runBinary$];
  }
  set [_runBinary](value) {
    this[_runBinary$] = value;
  }
  get [_registerCallback]() {
    return this[_registerCallback$];
  }
  set [_registerCallback](value) {
    this[_registerCallback$] = value;
  }
  get [_registerUnaryCallback]() {
    return this[_registerUnaryCallback$];
  }
  set [_registerUnaryCallback](value) {
    this[_registerUnaryCallback$] = value;
  }
  get [_registerBinaryCallback]() {
    return this[_registerBinaryCallback$];
  }
  set [_registerBinaryCallback](value) {
    this[_registerBinaryCallback$] = value;
  }
  get [_errorCallback]() {
    return this[_errorCallback$];
  }
  set [_errorCallback](value) {
    this[_errorCallback$] = value;
  }
  get [_scheduleMicrotask]() {
    return this[_scheduleMicrotask$];
  }
  set [_scheduleMicrotask](value) {
    this[_scheduleMicrotask$] = value;
  }
  get [_createTimer]() {
    return this[_createTimer$];
  }
  set [_createTimer](value) {
    this[_createTimer$] = value;
  }
  get [_createPeriodicTimer]() {
    return this[_createPeriodicTimer$];
  }
  set [_createPeriodicTimer](value) {
    this[_createPeriodicTimer$] = value;
  }
  get [_print]() {
    return this[_print$];
  }
  set [_print](value) {
    this[_print$] = value;
  }
  get [_fork]() {
    return this[_fork$];
  }
  set [_fork](value) {
    this[_fork$] = value;
  }
  get [_handleUncaughtError]() {
    return this[_handleUncaughtError$];
  }
  set [_handleUncaughtError](value) {
    this[_handleUncaughtError$] = value;
  }
  get parent() {
    return this[parent$];
  }
  set parent(value) {
    super.parent = value;
  }
  get [_map$2]() {
    return this[_map$3];
  }
  set [_map$2](value) {
    super[_map$2] = value;
  }
  get [_delegate]() {
    if (this[_delegateCache] != null) return this[_delegateCache];
    this[_delegateCache] = new async._ZoneDelegate.new(this);
    return this[_delegateCache];
  }
  get errorZone() {
    return this[_handleUncaughtError].zone;
  }
  runGuarded(f) {
    try {
      this.run(dart.void, f);
    } catch (e$) {
      let e = dart.getThrown(e$);
      let s = dart.stackTrace(e$);
      this.handleUncaughtError(e, s);
    }
  }
  runUnaryGuarded(T, f, arg) {
    try {
      this.runUnary(dart.void, T, f, arg);
    } catch (e$) {
      let e = dart.getThrown(e$);
      let s = dart.stackTrace(e$);
      this.handleUncaughtError(e, s);
    }
  }
  runBinaryGuarded(T1, T2, f, arg1, arg2) {
    try {
      this.runBinary(dart.void, T1, T2, f, arg1, arg2);
    } catch (e$) {
      let e = dart.getThrown(e$);
      let s = dart.stackTrace(e$);
      this.handleUncaughtError(e, s);
    }
  }
  bindCallback(R, f) {
    let registered = this.registerCallback(R, f);
    return dart.fn(() => this.run(R, registered), dart.fnType(R, []));
  }
  bindUnaryCallback(R, T, f) {
    let registered = this.registerUnaryCallback(R, T, f);
    return dart.fn(arg => this.runUnary(R, T, registered, arg), dart.fnType(R, [T]));
  }
  bindBinaryCallback(R, T1, T2, f) {
    let registered = this.registerBinaryCallback(R, T1, T2, f);
    return dart.fn((arg1, arg2) => this.runBinary(R, T1, T2, registered, arg1, arg2), dart.fnType(R, [T1, T2]));
  }
  bindCallbackGuarded(f) {
    let registered = this.registerCallback(dart.void, f);
    return dart.fn(() => this.runGuarded(registered), VoidTovoid());
  }
  bindUnaryCallbackGuarded(T, f) {
    let registered = this.registerUnaryCallback(dart.void, T, f);
    return dart.fn(arg => this.runUnaryGuarded(T, registered, arg), dart.fnType(dart.void, [T]));
  }
  bindBinaryCallbackGuarded(T1, T2, f) {
    let registered = this.registerBinaryCallback(dart.void, T1, T2, f);
    return dart.fn((arg1, arg2) => this.runBinaryGuarded(T1, T2, registered, arg1, arg2), dart.fnType(dart.void, [T1, T2]));
  }
  _get(key) {
    let result = this[_map$2][$_get](key);
    if (result != null || dart.test(this[_map$2][$containsKey](key))) return result;
    if (this.parent != null) {
      let value = this.parent._get(key);
      if (value != null) {
        this[_map$2][$_set](key, value);
      }
      return value;
    }
    if (!this[$_equals](async._rootZone)) dart.assertFailed(null, L34, 1048, 12, "this == _rootZone");
    return null;
  }
  handleUncaughtError(error, stackTrace) {
    let implementation = this[_handleUncaughtError];
    if (!(implementation != null)) dart.assertFailed(null, L34, 1056, 12, "implementation != null");
    let parentDelegate = async._parentDelegate(implementation.zone);
    let handler = implementation.function;
    return handler(implementation.zone, parentDelegate, this, error, stackTrace);
  }
  fork(opts) {
    let specification = opts && 'specification' in opts ? opts.specification : null;
    let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null;
    let implementation = this[_fork];
    if (!(implementation != null)) dart.assertFailed(null, L34, 1065, 12, "implementation != null");
    let parentDelegate = async._parentDelegate(implementation.zone);
    let handler = implementation.function;
    return handler(implementation.zone, parentDelegate, this, specification, zoneValues);
  }
  run(R, f) {
    let implementation = this[_run];
    if (!(implementation != null)) dart.assertFailed(null, L34, 1074, 12, "implementation != null");
    let parentDelegate = async._parentDelegate(implementation.zone);
    let handler = implementation.function;
    return handler(R, implementation.zone, parentDelegate, this, f);
  }
  runUnary(R, T, f, arg) {
    let implementation = this[_runUnary];
    if (!(implementation != null)) dart.assertFailed(null, L34, 1082, 12, "implementation != null");
    let parentDelegate = async._parentDelegate(implementation.zone);
    let handler = implementation.function;
    return handler(R, T, implementation.zone, parentDelegate, this, f, arg);
  }
  runBinary(R, T1, T2, f, arg1, arg2) {
    let implementation = this[_runBinary];
    if (!(implementation != null)) dart.assertFailed(null, L34, 1090, 12, "implementation != null");
    let parentDelegate = async._parentDelegate(implementation.zone);
    let handler = implementation.function;
    return handler(R, T1, T2, implementation.zone, parentDelegate, this, f, arg1, arg2);
  }
  registerCallback(R, callback) {
    let implementation = this[_registerCallback];
    if (!(implementation != null)) dart.assertFailed(null, L34, 1098, 12, "implementation != null");
    let parentDelegate = async._parentDelegate(implementation.zone);
    let handler = implementation.function;
    return handler(R, implementation.zone, parentDelegate, this, callback);
  }
  registerUnaryCallback(R, T, callback) {
    let implementation = this[_registerUnaryCallback];
    if (!(implementation != null)) dart.assertFailed(null, L34, 1106, 12, "implementation != null");
    let parentDelegate = async._parentDelegate(implementation.zone);
    let handler = implementation.function;
    return handler(R, T, implementation.zone, parentDelegate, this, callback);
  }
  registerBinaryCallback(R, T1, T2, callback) {
    let implementation = this[_registerBinaryCallback];
    if (!(implementation != null)) dart.assertFailed(null, L34, 1115, 12, "implementation != null");
    let parentDelegate = async._parentDelegate(implementation.zone);
    let handler = implementation.function;
    return handler(R, T1, T2, implementation.zone, parentDelegate, this, callback);
  }
  errorCallback(error, stackTrace) {
    core.ArgumentError.checkNotNull(core.Object, error, "error");
    let implementation = this[_errorCallback];
    if (!(implementation != null)) dart.assertFailed(null, L34, 1124, 12, "implementation != null");
    let implementationZone = implementation.zone;
    if (implementationZone == async._rootZone) return null;
    let parentDelegate = async._parentDelegate(async._Zone.as(implementationZone));
    let handler = implementation.function;
    return handler(implementationZone, parentDelegate, this, error, stackTrace);
  }
  scheduleMicrotask(f) {
    let implementation = this[_scheduleMicrotask];
    if (!(implementation != null)) dart.assertFailed(null, L34, 1134, 12, "implementation != null");
    let parentDelegate = async._parentDelegate(implementation.zone);
    let handler = implementation.function;
    return handler(implementation.zone, parentDelegate, this, f);
  }
  createTimer(duration, f) {
    let implementation = this[_createTimer];
    if (!(implementation != null)) dart.assertFailed(null, L34, 1142, 12, "implementation != null");
    let parentDelegate = async._parentDelegate(implementation.zone);
    let handler = implementation.function;
    return handler(implementation.zone, parentDelegate, this, duration, f);
  }
  createPeriodicTimer(duration, f) {
    let implementation = this[_createPeriodicTimer];
    if (!(implementation != null)) dart.assertFailed(null, L34, 1150, 12, "implementation != null");
    let parentDelegate = async._parentDelegate(implementation.zone);
    let handler = implementation.function;
    return handler(implementation.zone, parentDelegate, this, duration, f);
  }
  print(line) {
    let implementation = this[_print];
    if (!(implementation != null)) dart.assertFailed(null, L34, 1158, 12, "implementation != null");
    let parentDelegate = async._parentDelegate(implementation.zone);
    let handler = implementation.function;
    return handler(implementation.zone, parentDelegate, this, line);
  }
};
(async._CustomZone.new = function(parent, specification, _map) {
  this[_run$] = null;
  this[_runUnary$] = null;
  this[_runBinary$] = null;
  this[_registerCallback$] = null;
  this[_registerUnaryCallback$] = null;
  this[_registerBinaryCallback$] = null;
  this[_errorCallback$] = null;
  this[_scheduleMicrotask$] = null;
  this[_createTimer$] = null;
  this[_createPeriodicTimer$] = null;
  this[_print$] = null;
  this[_fork$] = null;
  this[_handleUncaughtError$] = null;
  this[_delegateCache] = null;
  this[parent$] = parent;
  this[_map$3] = _map;
  async._CustomZone.__proto__.new.call(this);
  this[_run] = specification.run != null ? new async._RunNullaryZoneFunction.new(this, specification.run) : this.parent[_run];
  this[_runUnary] = specification.runUnary != null ? new async._RunUnaryZoneFunction.new(this, specification.runUnary) : this.parent[_runUnary];
  this[_runBinary] = specification.runBinary != null ? new async._RunBinaryZoneFunction.new(this, specification.runBinary) : this.parent[_runBinary];
  this[_registerCallback] = specification.registerCallback != null ? new async._RegisterNullaryZoneFunction.new(this, specification.registerCallback) : this.parent[_registerCallback];
  this[_registerUnaryCallback] = specification.registerUnaryCallback != null ? new async._RegisterUnaryZoneFunction.new(this, specification.registerUnaryCallback) : this.parent[_registerUnaryCallback];
  this[_registerBinaryCallback] = specification.registerBinaryCallback != null ? new async._RegisterBinaryZoneFunction.new(this, specification.registerBinaryCallback) : this.parent[_registerBinaryCallback];
  this[_errorCallback] = specification.errorCallback != null ? new (_ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLAsyncErrorL()).new(this, specification.errorCallback) : this.parent[_errorCallback];
  this[_scheduleMicrotask] = specification.scheduleMicrotask != null ? new (_ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid()).new(this, specification.scheduleMicrotask) : this.parent[_scheduleMicrotask];
  this[_createTimer] = specification.createTimer != null ? new (_ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLTimerL()).new(this, specification.createTimer) : this.parent[_createTimer];
  this[_createPeriodicTimer] = specification.createPeriodicTimer != null ? new (_ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLTimerL$()).new(this, specification.createPeriodicTimer) : this.parent[_createPeriodicTimer];
  this[_print] = specification.print != null ? new (_ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid$()).new(this, specification.print) : this.parent[_print];
  this[_fork] = specification.fork != null ? new (_ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLZoneL()).new(this, specification.fork) : this.parent[_fork];
  this[_handleUncaughtError] = specification.handleUncaughtError != null ? new (_ZoneFunctionOfZoneLAndZoneDelegateLAndZoneL__ToLvoid$0()).new(this, specification.handleUncaughtError) : this.parent[_handleUncaughtError];
}).prototype = async._CustomZone.prototype;
dart.addTypeTests(async._CustomZone);
dart.addTypeCaches(async._CustomZone);
dart.setMethodSignature(async._CustomZone, () => ({
  __proto__: dart.getMethods(async._CustomZone.__proto__),
  runGuarded: dart.fnType(dart.void, [dart.fnType(dart.void, [])]),
  runUnaryGuarded: dart.gFnType(T => [dart.void, [dart.fnType(dart.void, [T]), T]]),
  runBinaryGuarded: dart.gFnType((T1, T2) => [dart.void, [dart.fnType(dart.void, [T1, T2]), T1, T2]]),
  bindCallback: dart.gFnType(R => [dart.fnType(R, []), [dart.fnType(R, [])]]),
  bindUnaryCallback: dart.gFnType((R, T) => [dart.fnType(R, [T]), [dart.fnType(R, [T])]]),
  bindBinaryCallback: dart.gFnType((R, T1, T2) => [dart.fnType(R, [T1, T2]), [dart.fnType(R, [T1, T2])]]),
  bindCallbackGuarded: dart.fnType(dart.fnType(dart.void, []), [dart.fnType(dart.void, [])]),
  bindUnaryCallbackGuarded: dart.gFnType(T => [dart.fnType(dart.void, [T]), [dart.fnType(dart.void, [T])]]),
  bindBinaryCallbackGuarded: dart.gFnType((T1, T2) => [dart.fnType(dart.void, [T1, T2]), [dart.fnType(dart.void, [T1, T2])]]),
  _get: dart.fnType(dart.dynamic, [core.Object]),
  handleUncaughtError: dart.fnType(dart.void, [dart.dynamic, core.StackTrace]),
  fork: dart.fnType(async.Zone, [], {specification: async.ZoneSpecification, zoneValues: core.Map}, {}),
  run: dart.gFnType(R => [R, [dart.fnType(R, [])]]),
  runUnary: dart.gFnType((R, T) => [R, [dart.fnType(R, [T]), T]]),
  runBinary: dart.gFnType((R, T1, T2) => [R, [dart.fnType(R, [T1, T2]), T1, T2]]),
  registerCallback: dart.gFnType(R => [dart.fnType(R, []), [dart.fnType(R, [])]]),
  registerUnaryCallback: dart.gFnType((R, T) => [dart.fnType(R, [T]), [dart.fnType(R, [T])]]),
  registerBinaryCallback: dart.gFnType((R, T1, T2) => [dart.fnType(R, [T1, T2]), [dart.fnType(R, [T1, T2])]]),
  errorCallback: dart.fnType(async.AsyncError, [core.Object, core.StackTrace]),
  scheduleMicrotask: dart.fnType(dart.void, [dart.fnType(dart.void, [])]),
  createTimer: dart.fnType(async.Timer, [core.Duration, dart.fnType(dart.void, [])]),
  createPeriodicTimer: dart.fnType(async.Timer, [core.Duration, dart.fnType(dart.void, [async.Timer])]),
  print: dart.fnType(dart.void, [core.String])
}));
dart.setGetterSignature(async._CustomZone, () => ({
  __proto__: dart.getGetters(async._CustomZone.__proto__),
  [_delegate]: async.ZoneDelegate,
  errorZone: async.Zone
}));
dart.setLibraryUri(async._CustomZone, L12);
dart.setFieldSignature(async._CustomZone, () => ({
  __proto__: dart.getFields(async._CustomZone.__proto__),
  [_run]: dart.fieldType(async._RunNullaryZoneFunction),
  [_runUnary]: dart.fieldType(async._RunUnaryZoneFunction),
  [_runBinary]: dart.fieldType(async._RunBinaryZoneFunction),
  [_registerCallback]: dart.fieldType(async._RegisterNullaryZoneFunction),
  [_registerUnaryCallback]: dart.fieldType(async._RegisterUnaryZoneFunction),
  [_registerBinaryCallback]: dart.fieldType(async._RegisterBinaryZoneFunction),
  [_errorCallback]: dart.fieldType(async._ZoneFunction$(dart.fnType(async.AsyncError, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace]))),
  [_scheduleMicrotask]: dart.fieldType(async._ZoneFunction$(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(dart.void, [])]))),
  [_createTimer]: dart.fieldType(async._ZoneFunction$(dart.fnType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.fnType(dart.void, [])]))),
  [_createPeriodicTimer]: dart.fieldType(async._ZoneFunction$(dart.fnType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.fnType(dart.void, [async.Timer])]))),
  [_print]: dart.fieldType(async._ZoneFunction$(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.String]))),
  [_fork]: dart.fieldType(async._ZoneFunction$(dart.fnType(async.Zone, [async.Zone, async.ZoneDelegate, async.Zone, async.ZoneSpecification, core.Map]))),
  [_handleUncaughtError]: dart.fieldType(async._ZoneFunction$(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace]))),
  [_delegateCache]: dart.fieldType(async.ZoneDelegate),
  parent: dart.finalFieldType(async._Zone),
  [_map$2]: dart.finalFieldType(core.Map)
}));
var C48;
var C47;
var C50;
var C49;
var C52;
var C51;
var C54;
var C53;
var C56;
var C55;
var C58;
var C57;
var C60;
var C59;
var C62;
var C61;
var C64;
var C63;
var C66;
var C65;
var C68;
var C67;
var C70;
var C69;
var C72;
var C71;
async._RootZone = class _RootZone extends async._Zone {
  get [_run]() {
    return C47 || CT.C47;
  }
  get [_runUnary]() {
    return C49 || CT.C49;
  }
  get [_runBinary]() {
    return C51 || CT.C51;
  }
  get [_registerCallback]() {
    return C53 || CT.C53;
  }
  get [_registerUnaryCallback]() {
    return C55 || CT.C55;
  }
  get [_registerBinaryCallback]() {
    return C57 || CT.C57;
  }
  get [_errorCallback]() {
    return C59 || CT.C59;
  }
  get [_scheduleMicrotask]() {
    return C61 || CT.C61;
  }
  get [_createTimer]() {
    return C63 || CT.C63;
  }
  get [_createPeriodicTimer]() {
    return C65 || CT.C65;
  }
  get [_print]() {
    return C67 || CT.C67;
  }
  get [_fork]() {
    return C69 || CT.C69;
  }
  get [_handleUncaughtError]() {
    return C71 || CT.C71;
  }
  get parent() {
    return null;
  }
  get [_map$2]() {
    return async._RootZone._rootMap;
  }
  get [_delegate]() {
    if (async._RootZone._rootDelegate != null) return async._RootZone._rootDelegate;
    return async._RootZone._rootDelegate = new async._ZoneDelegate.new(this);
  }
  get errorZone() {
    return this;
  }
  runGuarded(f) {
    try {
      if (async._rootZone == async.Zone._current) {
        f();
        return;
      }
      async._rootRun(dart.void, null, null, this, f);
    } catch (e$) {
      let e = dart.getThrown(e$);
      let s = dart.stackTrace(e$);
      this.handleUncaughtError(e, s);
    }
  }
  runUnaryGuarded(T, f, arg) {
    try {
      if (async._rootZone == async.Zone._current) {
        f(arg);
        return;
      }
      async._rootRunUnary(dart.void, T, null, null, this, f, arg);
    } catch (e$) {
      let e = dart.getThrown(e$);
      let s = dart.stackTrace(e$);
      this.handleUncaughtError(e, s);
    }
  }
  runBinaryGuarded(T1, T2, f, arg1, arg2) {
    try {
      if (async._rootZone == async.Zone._current) {
        f(arg1, arg2);
        return;
      }
      async._rootRunBinary(dart.void, T1, T2, null, null, this, f, arg1, arg2);
    } catch (e$) {
      let e = dart.getThrown(e$);
      let s = dart.stackTrace(e$);
      this.handleUncaughtError(e, s);
    }
  }
  bindCallback(R, f) {
    return dart.fn(() => this.run(R, f), dart.fnType(R, []));
  }
  bindUnaryCallback(R, T, f) {
    return dart.fn(arg => this.runUnary(R, T, f, arg), dart.fnType(R, [T]));
  }
  bindBinaryCallback(R, T1, T2, f) {
    return dart.fn((arg1, arg2) => this.runBinary(R, T1, T2, f, arg1, arg2), dart.fnType(R, [T1, T2]));
  }
  bindCallbackGuarded(f) {
    return dart.fn(() => this.runGuarded(f), VoidTovoid());
  }
  bindUnaryCallbackGuarded(T, f) {
    return dart.fn(arg => this.runUnaryGuarded(T, f, arg), dart.fnType(dart.void, [T]));
  }
  bindBinaryCallbackGuarded(T1, T2, f) {
    return dart.fn((arg1, arg2) => this.runBinaryGuarded(T1, T2, f, arg1, arg2), dart.fnType(dart.void, [T1, T2]));
  }
  _get(key) {
    return null;
  }
  handleUncaughtError(error, stackTrace) {
    async._rootHandleUncaughtError(null, null, this, error, stackTrace);
  }
  fork(opts) {
    let specification = opts && 'specification' in opts ? opts.specification : null;
    let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null;
    return async._rootFork(null, null, this, specification, zoneValues);
  }
  run(R, f) {
    if (async.Zone._current == async._rootZone) return f();
    return async._rootRun(R, null, null, this, f);
  }
  runUnary(R, T, f, arg) {
    if (async.Zone._current == async._rootZone) return f(arg);
    return async._rootRunUnary(R, T, null, null, this, f, arg);
  }
  runBinary(R, T1, T2, f, arg1, arg2) {
    if (async.Zone._current == async._rootZone) return f(arg1, arg2);
    return async._rootRunBinary(R, T1, T2, null, null, this, f, arg1, arg2);
  }
  registerCallback(R, f) {
    return f;
  }
  registerUnaryCallback(R, T, f) {
    return f;
  }
  registerBinaryCallback(R, T1, T2, f) {
    return f;
  }
  errorCallback(error, stackTrace) {
    return null;
  }
  scheduleMicrotask(f) {
    async._rootScheduleMicrotask(null, null, this, f);
  }
  createTimer(duration, f) {
    return async.Timer._createTimer(duration, f);
  }
  createPeriodicTimer(duration, f) {
    return async.Timer._createPeriodicTimer(duration, f);
  }
  print(line) {
    _internal.printToConsole(line);
  }
};
(async._RootZone.new = function() {
  async._RootZone.__proto__.new.call(this);
  ;
}).prototype = async._RootZone.prototype;
dart.addTypeTests(async._RootZone);
dart.addTypeCaches(async._RootZone);
dart.setMethodSignature(async._RootZone, () => ({
  __proto__: dart.getMethods(async._RootZone.__proto__),
  runGuarded: dart.fnType(dart.void, [dart.fnType(dart.void, [])]),
  runUnaryGuarded: dart.gFnType(T => [dart.void, [dart.fnType(dart.void, [T]), T]]),
  runBinaryGuarded: dart.gFnType((T1, T2) => [dart.void, [dart.fnType(dart.void, [T1, T2]), T1, T2]]),
  bindCallback: dart.gFnType(R => [dart.fnType(R, []), [dart.fnType(R, [])]]),
  bindUnaryCallback: dart.gFnType((R, T) => [dart.fnType(R, [T]), [dart.fnType(R, [T])]]),
  bindBinaryCallback: dart.gFnType((R, T1, T2) => [dart.fnType(R, [T1, T2]), [dart.fnType(R, [T1, T2])]]),
  bindCallbackGuarded: dart.fnType(dart.fnType(dart.void, []), [dart.fnType(dart.void, [])]),
  bindUnaryCallbackGuarded: dart.gFnType(T => [dart.fnType(dart.void, [T]), [dart.fnType(dart.void, [T])]]),
  bindBinaryCallbackGuarded: dart.gFnType((T1, T2) => [dart.fnType(dart.void, [T1, T2]), [dart.fnType(dart.void, [T1, T2])]]),
  _get: dart.fnType(dart.dynamic, [core.Object]),
  handleUncaughtError: dart.fnType(dart.void, [dart.dynamic, core.StackTrace]),
  fork: dart.fnType(async.Zone, [], {specification: async.ZoneSpecification, zoneValues: core.Map}, {}),
  run: dart.gFnType(R => [R, [dart.fnType(R, [])]]),
  runUnary: dart.gFnType((R, T) => [R, [dart.fnType(R, [T]), T]]),
  runBinary: dart.gFnType((R, T1, T2) => [R, [dart.fnType(R, [T1, T2]), T1, T2]]),
  registerCallback: dart.gFnType(R => [dart.fnType(R, []), [dart.fnType(R, [])]]),
  registerUnaryCallback: dart.gFnType((R, T) => [dart.fnType(R, [T]), [dart.fnType(R, [T])]]),
  registerBinaryCallback: dart.gFnType((R, T1, T2) => [dart.fnType(R, [T1, T2]), [dart.fnType(R, [T1, T2])]]),
  errorCallback: dart.fnType(async.AsyncError, [core.Object, core.StackTrace]),
  scheduleMicrotask: dart.fnType(dart.void, [dart.fnType(dart.void, [])]),
  createTimer: dart.fnType(async.Timer, [core.Duration, dart.fnType(dart.void, [])]),
  createPeriodicTimer: dart.fnType(async.Timer, [core.Duration, dart.fnType(dart.void, [async.Timer])]),
  print: dart.fnType(dart.void, [core.String])
}));
dart.setGetterSignature(async._RootZone, () => ({
  __proto__: dart.getGetters(async._RootZone.__proto__),
  [_run]: async._RunNullaryZoneFunction,
  [_runUnary]: async._RunUnaryZoneFunction,
  [_runBinary]: async._RunBinaryZoneFunction,
  [_registerCallback]: async._RegisterNullaryZoneFunction,
  [_registerUnaryCallback]: async._RegisterUnaryZoneFunction,
  [_registerBinaryCallback]: async._RegisterBinaryZoneFunction,
  [_errorCallback]: async._ZoneFunction$(dart.fnType(async.AsyncError, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace])),
  [_scheduleMicrotask]: async._ZoneFunction$(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, dart.fnType(dart.void, [])])),
  [_createTimer]: async._ZoneFunction$(dart.fnType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.fnType(dart.void, [])])),
  [_createPeriodicTimer]: async._ZoneFunction$(dart.fnType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, dart.fnType(dart.void, [async.Timer])])),
  [_print]: async._ZoneFunction$(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.String])),
  [_fork]: async._ZoneFunction$(dart.fnType(async.Zone, [async.Zone, async.ZoneDelegate, async.Zone, async.ZoneSpecification, core.Map])),
  [_handleUncaughtError]: async._ZoneFunction$(dart.fnType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace])),
  parent: async._Zone,
  [_map$2]: core.Map,
  [_delegate]: async.ZoneDelegate,
  errorZone: async.Zone
}));
dart.setLibraryUri(async._RootZone, L12);
dart.defineLazy(async._RootZone, {
  /*async._RootZone._rootMap*/get _rootMap() {
    return new _js_helper.LinkedMap.new();
  },
  /*async._RootZone._rootDelegate*/get _rootDelegate() {
    return null;
  },
  set _rootDelegate(_) {}
}, true);
var C73;
var C74;
var C75;
async.async = function _async(T, initGenerator) {
  let iter = null;
  let onValue = null;
  let onError = null;
  function onAwait(value) {
    let f = null;
    if (async._Future.is(value)) {
      f = value;
    } else if (async.Future.is(value)) {
      f = new async._Future.new();
      async._Future._chainForeignFuture(value, f);
    } else {
      f = new async._Future.value(value);
    }
    f = f[_thenAwait](core.Object, onValue, onError);
    return f;
  }
  onValue = value => {
    let iteratorResult = iter.next(value);
    value = iteratorResult.value;
    return iteratorResult.done ? value : onAwait(value);
  };
  onError = (value, stackTrace) => {
    let iteratorResult = iter.throw(dart.createErrorWithStack(value, stackTrace));
    value = iteratorResult.value;
    return iteratorResult.done ? value : onAwait(value);
  };
  let zone = async.Zone.current;
  if (zone != async._rootZone) {
    onValue = zone.registerUnaryCallback(core.Object, core.Object, onValue);
    onError = zone.registerBinaryCallback(core.Object, core.Object, core.StackTrace, onError);
  }
  let asyncFuture = new (async._Future$(T)).new();
  let isRunningAsEvent = false;
  function runBody() {
    try {
      iter = initGenerator()[Symbol.iterator]();
      let iteratorValue = iter.next(null);
      let value = iteratorValue.value;
      if (iteratorValue.done) {
        if (async.Future.is(value)) {
          if (async._Future.is(value)) {
            async._Future._chainCoreFuture(value, asyncFuture);
          } else {
            async._Future._chainForeignFuture(value, asyncFuture);
          }
        } else if (isRunningAsEvent) {
          asyncFuture[_completeWithValue](value);
        } else {
          asyncFuture[_asyncComplete](value);
        }
      } else {
        async._Future._chainCoreFuture(onAwait(value), asyncFuture);
      }
    } catch (e$) {
      let e = dart.getThrown(e$);
      let s = dart.stackTrace(e$);
      if (isRunningAsEvent) {
        async._completeWithErrorCallback(asyncFuture, e, s);
      } else {
        async._asyncCompleteWithErrorCallback(asyncFuture, e, s);
      }
    }
  }
  if (dart.test(dart.startAsyncSynchronously)) {
    runBody();
    isRunningAsEvent = true;
  } else {
    isRunningAsEvent = true;
    async.scheduleMicrotask(runBody);
  }
  return asyncFuture;
};
async._invokeErrorHandler = function _invokeErrorHandler(errorHandler, error, stackTrace) {
  if (NullNAndNullNToLdynamic().is(errorHandler)) {
    return dart.dcall(errorHandler, [error, stackTrace]);
  } else {
    let unaryErrorHandler = dynamicToLdynamic().as(errorHandler);
    return unaryErrorHandler(error);
  }
};
async._completeWithErrorCallback = function _completeWithErrorCallback(result, error, stackTrace) {
  let replacement = async.Zone.current.errorCallback(error, stackTrace);
  if (replacement != null) {
    error = async._nonNullError(replacement.error);
    stackTrace = replacement.stackTrace;
  }
  stackTrace == null ? stackTrace = async.AsyncError.defaultStackTrace(error) : null;
  result[_completeError](error, stackTrace);
};
async._asyncCompleteWithErrorCallback = function _asyncCompleteWithErrorCallback(result, error, stackTrace) {
  let replacement = async.Zone.current.errorCallback(error, stackTrace);
  if (replacement != null) {
    error = async._nonNullError(replacement.error);
    stackTrace = replacement.stackTrace;
  }
  stackTrace == null ? stackTrace = async.AsyncError.defaultStackTrace(error) : null;
  result[_asyncCompleteError](error, stackTrace);
};
async._nonNullError = function _nonNullError(error) {
  let t61;
  t61 = error;
  return t61 == null ? new core.NullThrownError.new() : t61;
};
async._registerErrorHandler = function _registerErrorHandler(errorHandler, zone) {
  if (ObjectLAndStackTraceLToLdynamic().is(errorHandler)) {
    return zone.registerBinaryCallback(dart.dynamic, core.Object, core.StackTrace, errorHandler);
  }
  if (ObjectLToLdynamic().is(errorHandler)) {
    return zone.registerUnaryCallback(dart.dynamic, core.Object, errorHandler);
  }
  dart.throw(new core.ArgumentError.value(errorHandler, "onError", "Error handler must accept one Object or one Object and a StackTrace" + " as arguments, and return a a valid result"));
};
async._microtaskLoop = function _microtaskLoop() {
  while (async._nextCallback != null) {
    async._lastPriorityCallback = null;
    let entry = async._nextCallback;
    async._nextCallback = entry.next;
    if (async._nextCallback == null) async._lastCallback = null;
    entry.callback();
  }
};
async._startMicrotaskLoop = function _startMicrotaskLoop() {
  async._isInCallbackLoop = true;
  try {
    async._microtaskLoop();
  } finally {
    async._lastPriorityCallback = null;
    async._isInCallbackLoop = false;
    if (async._nextCallback != null) {
      async._AsyncRun._scheduleImmediate(C73 || CT.C73);
    }
  }
};
async._scheduleAsyncCallback = function _scheduleAsyncCallback(callback) {
  let newEntry = new async._AsyncCallbackEntry.new(callback);
  if (async._nextCallback == null) {
    async._nextCallback = async._lastCallback = newEntry;
    if (!dart.test(async._isInCallbackLoop)) {
      async._AsyncRun._scheduleImmediate(C73 || CT.C73);
    }
  } else {
    async._lastCallback.next = newEntry;
    async._lastCallback = newEntry;
  }
};
async._schedulePriorityAsyncCallback = function _schedulePriorityAsyncCallback(callback) {
  if (async._nextCallback == null) {
    async._scheduleAsyncCallback(callback);
    async._lastPriorityCallback = async._lastCallback;
    return;
  }
  let entry = new async._AsyncCallbackEntry.new(callback);
  if (async._lastPriorityCallback == null) {
    entry.next = async._nextCallback;
    async._nextCallback = async._lastPriorityCallback = entry;
  } else {
    entry.next = async._lastPriorityCallback.next;
    async._lastPriorityCallback.next = entry;
    async._lastPriorityCallback = entry;
    if (entry.next == null) {
      async._lastCallback = entry;
    }
  }
};
async.scheduleMicrotask = function scheduleMicrotask(callback) {
  let currentZone = async._Zone.as(async.Zone.current);
  if (async._rootZone == currentZone) {
    async._rootScheduleMicrotask(null, null, async._rootZone, callback);
    return;
  }
  let implementation = currentZone[_scheduleMicrotask];
  if (async._rootZone == implementation.zone && dart.test(async._rootZone.inSameErrorZone(currentZone))) {
    async._rootScheduleMicrotask(null, null, currentZone, currentZone.registerCallback(dart.void, callback));
    return;
  }
  async.Zone.current.scheduleMicrotask(async.Zone.current.bindCallbackGuarded(callback));
};
async._runGuarded = function _runGuarded(notificationHandler) {
  if (notificationHandler == null) return;
  try {
    notificationHandler();
  } catch (e$) {
    let e = dart.getThrown(e$);
    let s = dart.stackTrace(e$);
    async.Zone.current.handleUncaughtError(e, s);
  }
};
async._nullDataHandler = function _nullDataHandler(value) {
};
async._nullErrorHandler = function _nullErrorHandler(error, stackTrace = null) {
  async.Zone.current.handleUncaughtError(error, stackTrace);
};
async._nullDoneHandler = function _nullDoneHandler() {
};
async._runUserCode = function _runUserCode(T, userCode, onSuccess, onError) {
  try {
    onSuccess(userCode());
  } catch (e$) {
    let e = dart.getThrown(e$);
    let s = dart.stackTrace(e$);
    let replacement = async.Zone.current.errorCallback(e, s);
    if (replacement == null) {
      onError(e, s);
    } else {
      let error = async._nonNullError(replacement.error);
      let stackTrace = replacement.stackTrace;
      onError(error, stackTrace);
    }
  }
};
async._cancelAndError = function _cancelAndError(subscription, future, error, stackTrace) {
  let cancelFuture = subscription.cancel();
  if (cancelFuture != null && cancelFuture != async.Future._nullFuture) {
    cancelFuture.whenComplete(dart.fn(() => future[_completeError](error, stackTrace), VoidTovoid()));
  } else {
    future[_completeError](error, stackTrace);
  }
};
async._cancelAndErrorWithReplacement = function _cancelAndErrorWithReplacement(subscription, future, error, stackTrace) {
  let replacement = async.Zone.current.errorCallback(error, stackTrace);
  if (replacement != null) {
    error = async._nonNullError(replacement.error);
    stackTrace = replacement.stackTrace;
  }
  async._cancelAndError(subscription, future, error, stackTrace);
};
async._cancelAndErrorClosure = function _cancelAndErrorClosure(subscription, future) {
  return dart.fn((error, stackTrace) => {
    async._cancelAndError(subscription, future, error, stackTrace);
  }, dynamicAndStackTraceLToNullN());
};
async._cancelAndValue = function _cancelAndValue(subscription, future, value) {
  let cancelFuture = subscription.cancel();
  if (cancelFuture != null && cancelFuture != async.Future._nullFuture) {
    cancelFuture.whenComplete(dart.fn(() => future[_complete](value), VoidTovoid()));
  } else {
    future[_complete](value);
  }
};
async._addErrorWithReplacement = function _addErrorWithReplacement(sink, error, stackTrace) {
  let replacement = async.Zone.current.errorCallback(error, stackTrace);
  if (replacement != null) {
    error = async._nonNullError(replacement.error);
    stackTrace = replacement.stackTrace;
  }
  sink[_addError](error, stackTrace);
};
async._parentDelegate = function _parentDelegate(zone) {
  if (zone.parent == null) return null;
  return zone.parent[_delegate];
};
async._rootHandleUncaughtError = function _rootHandleUncaughtError(self, parent, zone, error, stackTrace) {
  if (error == null) {
    error = new core.ArgumentError.notNull("error");
    stackTrace = core.StackTrace.current;
  }
  async._schedulePriorityAsyncCallback(dart.fn(() => {
    if (stackTrace == null) dart.throw(error);
    async._rethrow(error, stackTrace);
  }, VoidToNullN()));
};
async._rethrow = function _rethrow(error, stackTrace) {
  throw dart.createErrorWithStack(error, stackTrace);
};
async._rootRun = function _rootRun(R, self, parent, zone, f) {
  if (dart.equals(async.Zone._current, zone)) return f();
  let old = async.Zone._enter(zone);
  try {
    return f();
  } finally {
    async.Zone._leave(old);
  }
};
async._rootRunUnary = function _rootRunUnary(R, T, self, parent, zone, f, arg) {
  if (dart.equals(async.Zone._current, zone)) return f(arg);
  let old = async.Zone._enter(zone);
  try {
    return f(arg);
  } finally {
    async.Zone._leave(old);
  }
};
async._rootRunBinary = function _rootRunBinary(R, T1, T2, self, parent, zone, f, arg1, arg2) {
  if (dart.equals(async.Zone._current, zone)) return f(arg1, arg2);
  let old = async.Zone._enter(zone);
  try {
    return f(arg1, arg2);
  } finally {
    async.Zone._leave(old);
  }
};
async._rootRegisterCallback = function _rootRegisterCallback(R, self, parent, zone, f) {
  return f;
};
async._rootRegisterUnaryCallback = function _rootRegisterUnaryCallback(R, T, self, parent, zone, f) {
  return f;
};
async._rootRegisterBinaryCallback = function _rootRegisterBinaryCallback(R, T1, T2, self, parent, zone, f) {
  return f;
};
async._rootErrorCallback = function _rootErrorCallback(self, parent, zone, error, stackTrace) {
  return null;
};
async._rootScheduleMicrotask = function _rootScheduleMicrotask(self, parent, zone, f) {
  if (async._rootZone != zone) {
    let hasErrorHandler = !dart.test(async._rootZone.inSameErrorZone(zone));
    if (hasErrorHandler) {
      f = zone.bindCallbackGuarded(f);
    } else {
      f = zone.bindCallback(dart.void, f);
    }
    zone = async._rootZone;
  }
  async._scheduleAsyncCallback(f);
};
async._rootCreateTimer = function _rootCreateTimer(self, parent, zone, duration, callback) {
  if (async._rootZone != zone) {
    callback = zone.bindCallback(dart.void, callback);
  }
  return async.Timer._createTimer(duration, callback);
};
async._rootCreatePeriodicTimer = function _rootCreatePeriodicTimer(self, parent, zone, duration, callback) {
  if (async._rootZone != zone) {
    callback = zone.bindUnaryCallback(dart.dynamic, async.Timer, callback);
  }
  return async.Timer._createPeriodicTimer(duration, callback);
};
async._rootPrint = function _rootPrint(self, parent, zone, line) {
  _internal.printToConsole(line);
};
async._printToZone = function _printToZone(line) {
  async.Zone.current.print(line);
};
async._rootFork = function _rootFork(self, parent, zone, specification, zoneValues) {
  _internal.printToZone = C74 || CT.C74;
  if (specification == null) {
    specification = C75 || CT.C75;
  } else if (!async._ZoneSpecification.is(specification)) {
    dart.throw(new core.ArgumentError.new("ZoneSpecifications must be instantiated" + " with the provided constructor."));
  }
  let valueMap = null;
  if (zoneValues == null) {
    if (async._Zone.is(zone)) {
      valueMap = zone[_map$2];
    } else {
      valueMap = new _js_helper.LinkedMap.new();
    }
  } else {
    valueMap = collection.HashMap.from(zoneValues);
  }
  return new async._CustomZone.new(async._Zone.as(zone), specification, valueMap);
};
async.runZoned = function runZoned(R, body, opts) {
  let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null;
  let zoneSpecification = opts && 'zoneSpecification' in opts ? opts.zoneSpecification : null;
  let onError = opts && 'onError' in opts ? opts.onError : null;
  core.ArgumentError.checkNotNull(dart.fnType(R, []), body, "body");
  if (onError != null) {
    let typedOnError = null;
    if (ObjectLAndStackTraceLToLvoid().is(onError)) {
      typedOnError = onError;
    } else if (ObjectLToLvoid().is(onError)) {
      typedOnError = dart.fn((e, _) => onError(e), ObjectLAndStackTraceLTovoid$());
    } else {
      dart.throw(new core.ArgumentError.value(onError, "onError", "Should accept one error, or one error and a stack trace"));
    }
    return async.runZonedGuarded(R, body, typedOnError, {zoneValues: zoneValues, zoneSpecification: zoneSpecification});
  }
  return async._runZoned(R, body, zoneValues, zoneSpecification);
};
async.runZonedGuarded = function runZonedGuarded(R, body, onError, opts) {
  let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null;
  let zoneSpecification = opts && 'zoneSpecification' in opts ? opts.zoneSpecification : null;
  core.ArgumentError.checkNotNull(dart.fnType(R, []), body, "body");
  core.ArgumentError.checkNotNull(ObjectLAndStackTraceLToLvoid(), onError, "onError");
  let errorHandler = dart.fn((self, parent, zone, error, stackTrace) => {
    try {
      self.parent.runBinary(dart.void, core.Object, core.StackTrace, onError, error, stackTrace);
    } catch (e$) {
      let e = dart.getThrown(e$);
      let s = dart.stackTrace(e$);
      if (core.identical(e, error)) {
        parent.handleUncaughtError(zone, error, stackTrace);
      } else {
        parent.handleUncaughtError(zone, e, s);
      }
    }
  }, ZoneLAndZoneDelegateLAndZoneL__ToNullN());
  if (zoneSpecification == null) {
    zoneSpecification = new async._ZoneSpecification.new({handleUncaughtError: errorHandler});
  } else {
    zoneSpecification = async.ZoneSpecification.from(zoneSpecification, {handleUncaughtError: errorHandler});
  }
  try {
    return async._runZoned(R, body, zoneValues, zoneSpecification);
  } catch (e) {
    let error = dart.getThrown(e);
    let stackTrace = dart.stackTrace(e);
    onError(error, stackTrace);
  }
  return null;
};
async._runZoned = function _runZoned(R, body, zoneValues, specification) {
  return async.Zone.current.fork({specification: specification, zoneValues: zoneValues}).run(R, body);
};
dart.defineLazy(async, {
  /*async._nextCallback*/get _nextCallback() {
    return null;
  },
  set _nextCallback(_) {},
  /*async._lastCallback*/get _lastCallback() {
    return null;
  },
  set _lastCallback(_) {},
  /*async._lastPriorityCallback*/get _lastPriorityCallback() {
    return null;
  },
  set _lastPriorityCallback(_) {},
  /*async._isInCallbackLoop*/get _isInCallbackLoop() {
    return false;
  },
  set _isInCallbackLoop(_) {},
  /*async._rootZone*/get _rootZone() {
    return C46 || CT.C46;
  }
}, true);
var _keyMap$ = dart.privateName(collection, "_keyMap");
var _map$4 = dart.privateName(collection, "_map");
var _modifications$2 = dart.privateName(collection, "_modifications");
var _newSet = dart.privateName(collection, "_newSet");
var _newSimilarSet = dart.privateName(collection, "_newSimilarSet");
const _is__SetBase_default = Symbol('_is__SetBase_default');
collection._SetBase$ = dart.generic(E => {
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  var FollowedByIterableOfEL = () => (FollowedByIterableOfEL = dart.constFn(_internal.FollowedByIterable$(E)))();
  var SetOfEL = () => (SetOfEL = dart.constFn(core.Set$(E)))();
  var JSArrayOfEL = () => (JSArrayOfEL = dart.constFn(_interceptors.JSArray$(E)))();
  var ListOfEL = () => (ListOfEL = dart.constFn(core.List$(E)))();
  var WhereIterableOfEL = () => (WhereIterableOfEL = dart.constFn(_internal.WhereIterable$(E)))();
  var ELAndELToLEL = () => (ELAndELToLEL = dart.constFn(dart.fnType(E, [E, E])))();
  var TakeIterableOfEL = () => (TakeIterableOfEL = dart.constFn(_internal.TakeIterable$(E)))();
  var TakeWhileIterableOfEL = () => (TakeWhileIterableOfEL = dart.constFn(_internal.TakeWhileIterable$(E)))();
  var SkipIterableOfEL = () => (SkipIterableOfEL = dart.constFn(_internal.SkipIterable$(E)))();
  var SkipWhileIterableOfEL = () => (SkipWhileIterableOfEL = dart.constFn(_internal.SkipWhileIterable$(E)))();
  var VoidToLEL = () => (VoidToLEL = dart.constFn(dart.fnType(E, [])))();
  class _SetBase extends core.Object {
    cast(R) {
      return core.Set.castFrom(E, R, this, {newSet: dart.bind(this, _newSimilarSet)});
    }
    difference(other) {
      let result = this[_newSet]();
      for (let element of this) {
        if (!dart.test(other.contains(element))) result.add(element);
      }
      return result;
    }
    intersection(other) {
      let result = this[_newSet]();
      for (let element of this) {
        if (dart.test(other.contains(element))) result.add(element);
      }
      return result;
    }
    toSet() {
      let t65;
      t65 = this[_newSet]();
      t65.addAll(this);
      return t65;
    }
    get isEmpty() {
      return this[$length] === 0;
    }
    get isNotEmpty() {
      return this[$length] !== 0;
    }
    followedBy(other) {
      IterableOfEL().as(other);
      return FollowedByIterableOfEL().firstEfficient(this, other);
    }
    whereType(T) {
      return new (_internal.WhereTypeIterable$(T)).new(this);
    }
    clear() {
      this.removeAll(this.toList());
    }
    addAll(elements) {
      IterableOfEL().as(elements);
      for (let element of elements)
        this.add(element);
    }
    removeAll(elements) {
      for (let element of elements)
        this.remove(element);
    }
    retainAll(elements) {
      let toRemove = this.toSet();
      for (let o of elements) {
        toRemove.remove(o);
      }
      this.removeAll(toRemove);
    }
    removeWhere(test) {
      let toRemove = [];
      for (let element of this) {
        if (dart.test(test(element))) toRemove[$add](element);
      }
      this.removeAll(toRemove);
    }
    retainWhere(test) {
      let toRemove = [];
      for (let element of this) {
        if (!dart.test(test(element))) toRemove[$add](element);
      }
      this.removeAll(toRemove);
    }
    containsAll(other) {
      for (let o of other) {
        if (!dart.test(this.contains(o))) return false;
      }
      return true;
    }
    union(other) {
      let t65;
      SetOfEL().as(other);
      t65 = this.toSet();
      t65.addAll(other);
      return t65;
    }
    toList(opts) {
      let t65, t65$;
      let growable = opts && 'growable' in opts ? opts.growable : true;
      let result = dart.test(growable) ? (t65 = JSArrayOfEL().of([]), t65[$length] = this[$length], t65) : ListOfEL().new(this[$length]);
      let i = 0;
      for (let element of this)
        result[$_set]((t65$ = i, i = t65$ + 1, t65$), element);
      return result;
    }
    map(T, f) {
      return new (_internal.EfficientLengthMappedIterable$(E, T)).new(this, f);
    }
    get single() {
      if (dart.notNull(this[$length]) > 1) dart.throw(_internal.IterableElementError.tooMany());
      let it = this.iterator;
      if (!dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.noElement());
      let result = it.current;
      return result;
    }
    toString() {
      return collection.IterableBase.iterableToFullString(this, "{", "}");
    }
    where(f) {
      return new (WhereIterableOfEL()).new(this, f);
    }
    expand(T, f) {
      return new (_internal.ExpandIterable$(E, T)).new(this, f);
    }
    forEach(f) {
      for (let element of this)
        f(element);
    }
    reduce(combine) {
      ELAndELToLEL().as(combine);
      let iterator = this.iterator;
      if (!dart.test(iterator.moveNext())) {
        dart.throw(_internal.IterableElementError.noElement());
      }
      let value = iterator.current;
      while (dart.test(iterator.moveNext())) {
        value = combine(value, iterator.current);
      }
      return value;
    }
    fold(T, initialValue, combine) {
      let value = initialValue;
      for (let element of this)
        value = combine(value, element);
      return value;
    }
    every(f) {
      for (let element of this) {
        if (!dart.test(f(element))) return false;
      }
      return true;
    }
    join(separator = "") {
      let iterator = this.iterator;
      if (!dart.test(iterator.moveNext())) return "";
      let buffer = new core.StringBuffer.new();
      if (separator == null || separator === "") {
        do {
          buffer.write(iterator.current);
        } while (dart.test(iterator.moveNext()));
      } else {
        buffer.write(iterator.current);
        while (dart.test(iterator.moveNext())) {
          buffer.write(separator);
          buffer.write(iterator.current);
        }
      }
      return buffer.toString();
    }
    any(test) {
      for (let element of this) {
        if (dart.test(test(element))) return true;
      }
      return false;
    }
    take(n) {
      return TakeIterableOfEL().new(this, n);
    }
    takeWhile(test) {
      return new (TakeWhileIterableOfEL()).new(this, test);
    }
    skip(n) {
      return SkipIterableOfEL().new(this, n);
    }
    skipWhile(test) {
      return new (SkipWhileIterableOfEL()).new(this, test);
    }
    get first() {
      let it = this.iterator;
      if (!dart.test(it.moveNext())) {
        dart.throw(_internal.IterableElementError.noElement());
      }
      return it.current;
    }
    get last() {
      let it = this.iterator;
      if (!dart.test(it.moveNext())) {
        dart.throw(_internal.IterableElementError.noElement());
      }
      let result = null;
      do {
        result = it.current;
      } while (dart.test(it.moveNext()));
      return result;
    }
    firstWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      for (let element of this) {
        if (dart.test(test(element))) return element;
      }
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    lastWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      let result = null;
      let foundMatching = false;
      for (let element of this) {
        if (dart.test(test(element))) {
          result = element;
          foundMatching = true;
        }
      }
      if (foundMatching) return result;
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    singleWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      let result = null;
      let foundMatching = false;
      for (let element of this) {
        if (dart.test(test(element))) {
          if (foundMatching) {
            dart.throw(_internal.IterableElementError.tooMany());
          }
          result = element;
          foundMatching = true;
        }
      }
      if (foundMatching) return result;
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    elementAt(index) {
      core.ArgumentError.checkNotNull(core.int, index, "index");
      core.RangeError.checkNotNegative(index, "index");
      let elementIndex = 0;
      for (let element of this) {
        if (index === elementIndex) return element;
        elementIndex = elementIndex + 1;
      }
      dart.throw(new core.IndexError.new(index, this, "index", null, elementIndex));
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  }
  (_SetBase.new = function() {
    ;
  }).prototype = _SetBase.prototype;
  dart.addTypeTests(_SetBase);
  _SetBase.prototype[_is__SetBase_default] = true;
  dart.addTypeCaches(_SetBase);
  _SetBase[dart.implements] = () => [core.Set$(E)];
  dart.setMethodSignature(_SetBase, () => ({
    __proto__: dart.getMethods(_SetBase.__proto__),
    cast: dart.gFnType(R => [core.Set$(R), []]),
    [$cast]: dart.gFnType(R => [core.Set$(R), []]),
    difference: dart.fnType(core.Set$(E), [core.Set$(core.Object)]),
    intersection: dart.fnType(core.Set$(E), [core.Set$(core.Object)]),
    toSet: dart.fnType(core.Set$(E), []),
    [$toSet]: dart.fnType(core.Set$(E), []),
    followedBy: dart.fnType(core.Iterable$(E), [core.Object]),
    [$followedBy]: dart.fnType(core.Iterable$(E), [core.Object]),
    whereType: dart.gFnType(T => [core.Iterable$(T), []]),
    [$whereType]: dart.gFnType(T => [core.Iterable$(T), []]),
    clear: dart.fnType(dart.void, []),
    addAll: dart.fnType(dart.void, [core.Object]),
    removeAll: dart.fnType(dart.void, [core.Iterable$(core.Object)]),
    retainAll: dart.fnType(dart.void, [core.Iterable$(core.Object)]),
    removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    containsAll: dart.fnType(core.bool, [core.Iterable$(core.Object)]),
    union: dart.fnType(core.Set$(E), [core.Object]),
    toList: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
    [$toList]: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
    map: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]]),
    [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]]),
    where: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    [$where]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    expand: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]]),
    [$expand]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]]),
    forEach: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
    [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
    reduce: dart.fnType(E, [core.Object]),
    [$reduce]: dart.fnType(E, [core.Object]),
    fold: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]]),
    [$fold]: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]]),
    every: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    [$every]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    join: dart.fnType(core.String, [], [core.String]),
    [$join]: dart.fnType(core.String, [], [core.String]),
    any: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    [$any]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    take: dart.fnType(core.Iterable$(E), [core.int]),
    [$take]: dart.fnType(core.Iterable$(E), [core.int]),
    takeWhile: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    [$takeWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    skip: dart.fnType(core.Iterable$(E), [core.int]),
    [$skip]: dart.fnType(core.Iterable$(E), [core.int]),
    skipWhile: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    [$skipWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    firstWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    [$firstWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    lastWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    [$lastWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    singleWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    [$singleWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    elementAt: dart.fnType(E, [core.int]),
    [$elementAt]: dart.fnType(E, [core.int])
  }));
  dart.setGetterSignature(_SetBase, () => ({
    __proto__: dart.getGetters(_SetBase.__proto__),
    isEmpty: core.bool,
    [$isEmpty]: core.bool,
    isNotEmpty: core.bool,
    [$isNotEmpty]: core.bool,
    single: E,
    [$single]: E,
    first: E,
    [$first]: E,
    last: E,
    [$last]: E
  }));
  dart.setLibraryUri(_SetBase, L9);
  dart.defineExtensionMethods(_SetBase, [
    'cast',
    'toSet',
    'followedBy',
    'whereType',
    'toList',
    'map',
    'toString',
    'where',
    'expand',
    'forEach',
    'reduce',
    'fold',
    'every',
    'join',
    'any',
    'take',
    'takeWhile',
    'skip',
    'skipWhile',
    'firstWhere',
    'lastWhere',
    'singleWhere',
    'elementAt'
  ]);
  dart.defineExtensionAccessors(_SetBase, [
    'isEmpty',
    'isNotEmpty',
    'single',
    'first',
    'last'
  ]);
  return _SetBase;
});
collection._SetBase = collection._SetBase$();
dart.addTypeTests(collection._SetBase, _is__SetBase_default);
const _is__InternalSet_default = Symbol('_is__InternalSet_default');
collection._InternalSet$ = dart.generic(E => {
  var DartIteratorOfEL = () => (DartIteratorOfEL = dart.constFn(_js_helper.DartIterator$(E)))();
  class _InternalSet extends collection._SetBase$(E) {
    get length() {
      return this[_map$4].size;
    }
    get isEmpty() {
      return this[_map$4].size == 0;
    }
    get isNotEmpty() {
      return this[_map$4].size != 0;
    }
    get iterator() {
      return new (DartIteratorOfEL()).new(this[Symbol.iterator]());
    }
    [Symbol.iterator]() {
      let self = this;
      let iterator = self[_map$4].values();
      let modifications = self[_modifications$2];
      return {
        next() {
          if (modifications != self[_modifications$2]) {
            throw new core.ConcurrentModificationError.new(self);
          }
          return iterator.next();
        }
      };
    }
  }
  (_InternalSet.new = function() {
    _InternalSet.__proto__.new.call(this);
    ;
  }).prototype = _InternalSet.prototype;
  dart.addTypeTests(_InternalSet);
  _InternalSet.prototype[_is__InternalSet_default] = true;
  dart.addTypeCaches(_InternalSet);
  dart.setMethodSignature(_InternalSet, () => ({
    __proto__: dart.getMethods(_InternalSet.__proto__),
    [Symbol.iterator]: dart.fnType(dart.dynamic, [])
  }));
  dart.setGetterSignature(_InternalSet, () => ({
    __proto__: dart.getGetters(_InternalSet.__proto__),
    length: core.int,
    [$length]: core.int,
    iterator: core.Iterator$(E),
    [$iterator]: core.Iterator$(E)
  }));
  dart.setLibraryUri(_InternalSet, L9);
  dart.defineExtensionAccessors(_InternalSet, ['length', 'isEmpty', 'isNotEmpty', 'iterator']);
  return _InternalSet;
});
collection._InternalSet = collection._InternalSet$();
dart.addTypeTests(collection._InternalSet, _is__InternalSet_default);
const _is__HashSet_default = Symbol('_is__HashSet_default');
var _map$5 = dart.privateName(collection, "_HashSet._map");
var _modifications$3 = dart.privateName(collection, "_HashSet._modifications");
collection._HashSet$ = dart.generic(E => {
  var _HashSetOfEL = () => (_HashSetOfEL = dart.constFn(collection._HashSet$(E)))();
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  class _HashSet extends collection._InternalSet$(E) {
    get [_map$4]() {
      return this[_map$5];
    }
    set [_map$4](value) {
      super[_map$4] = value;
    }
    get [_modifications$2]() {
      return this[_modifications$3];
    }
    set [_modifications$2](value) {
      this[_modifications$3] = value;
    }
    [_newSet]() {
      return new (_HashSetOfEL()).new();
    }
    [_newSimilarSet](R) {
      return new (collection._HashSet$(R)).new();
    }
    contains(key) {
      if (key == null) {
        key = null;
      } else if (key[$_equals] !== dart.identityEquals) {
        let k = key;
        let buckets = this[_keyMap$].get(dart.hashCode(k) & 0x3ffffff);
        if (buckets != null) {
          for (let i = 0, n = buckets.length; i < n; i = i + 1) {
            k = buckets[i];
            if (dart.equals(k, key)) return true;
          }
        }
        return false;
      }
      return this[_map$4].has(key);
    }
    lookup(key) {
      if (key == null) return null;
      if (key[$_equals] !== dart.identityEquals) {
        let k = key;
        let buckets = this[_keyMap$].get(dart.hashCode(k) & 0x3ffffff);
        if (buckets != null) {
          for (let i = 0, n = buckets.length; i < n; i = i + 1) {
            k = buckets[i];
            if (dart.equals(k, key)) return k;
          }
        }
        return null;
      }
      return this[_map$4].has(key) ? key : null;
    }
    add(key) {
      E.as(key);
      let map = this[_map$4];
      if (key == null) {
        if (dart.test(map.has(null))) return false;
        key = null;
      } else if (key[$_equals] !== dart.identityEquals) {
        let keyMap = this[_keyMap$];
        let k = key;
        let hash = dart.hashCode(k) & 0x3ffffff;
        let buckets = keyMap.get(hash);
        if (buckets == null) {
          keyMap.set(hash, [key]);
        } else {
          for (let i = 0, n = buckets.length; i < n; i = i + 1) {
            k = buckets[i];
            if (dart.equals(k, key)) return false;
          }
          buckets.push(key);
        }
      } else if (dart.test(map.has(key))) {
        return false;
      }
      map.add(key);
      this[_modifications$2] = this[_modifications$2] + 1 & 67108863;
      return true;
    }
    addAll(objects) {
      IterableOfEL().as(objects);
      let map = this[_map$4];
      let length = map.size;
      for (let key of objects) {
        if (key == null) {
          key = null;
        } else if (key[$_equals] !== dart.identityEquals) {
          key = _js_helper.putLinkedMapKey(key, this[_keyMap$]);
        }
        map.add(key);
      }
      if (length !== map.size) {
        this[_modifications$2] = this[_modifications$2] + 1 & 67108863;
      }
    }
    remove(key) {
      if (key == null) {
        key = null;
      } else if (key[$_equals] !== dart.identityEquals) {
        let k = key;
        let hash = dart.hashCode(k) & 0x3ffffff;
        let buckets = this[_keyMap$].get(hash);
        if (buckets == null) return false;
        for (let i = 0, n = buckets.length;;) {
          k = buckets[i];
          if (dart.equals(k, key)) {
            key = k;
            if (n === 1) {
              this[_keyMap$].delete(hash);
            } else {
              buckets.splice(i, 1);
            }
            break;
          }
          if ((i = i + 1) >= n) return false;
        }
      }
      let map = this[_map$4];
      if (map.delete(key)) {
        this[_modifications$2] = this[_modifications$2] + 1 & 67108863;
        return true;
      }
      return false;
    }
    clear() {
      let map = this[_map$4];
      if (map.size > 0) {
        map.clear();
        this[_keyMap$].clear();
        this[_modifications$2] = this[_modifications$2] + 1 & 67108863;
      }
    }
  }
  (_HashSet.new = function() {
    this[_map$5] = new Set();
    this[_keyMap$] = new Map();
    this[_modifications$3] = 0;
    _HashSet.__proto__.new.call(this);
    ;
  }).prototype = _HashSet.prototype;
  dart.addTypeTests(_HashSet);
  _HashSet.prototype[_is__HashSet_default] = true;
  dart.addTypeCaches(_HashSet);
  _HashSet[dart.implements] = () => [collection.HashSet$(E), collection.LinkedHashSet$(E)];
  dart.setMethodSignature(_HashSet, () => ({
    __proto__: dart.getMethods(_HashSet.__proto__),
    [_newSet]: dart.fnType(core.Set$(E), []),
    [_newSimilarSet]: dart.gFnType(R => [core.Set$(R), []]),
    contains: dart.fnType(core.bool, [core.Object]),
    [$contains]: dart.fnType(core.bool, [core.Object]),
    lookup: dart.fnType(E, [core.Object]),
    add: dart.fnType(core.bool, [core.Object]),
    remove: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(_HashSet, L9);
  dart.setFieldSignature(_HashSet, () => ({
    __proto__: dart.getFields(_HashSet.__proto__),
    [_map$4]: dart.finalFieldType(dart.dynamic),
    [_keyMap$]: dart.finalFieldType(core.Object),
    [_modifications$2]: dart.fieldType(core.int)
  }));
  dart.defineExtensionMethods(_HashSet, ['contains']);
  return _HashSet;
});
collection._HashSet = collection._HashSet$();
dart.addTypeTests(collection._HashSet, _is__HashSet_default);
const _is__ImmutableSet_default = Symbol('_is__ImmutableSet_default');
collection._ImmutableSet$ = dart.generic(E => {
  class _ImmutableSet extends collection._HashSet$(E) {
    add(other) {
      return dart.throw(collection._ImmutableSet._unsupported());
    }
    addAll(other) {
      return dart.throw(collection._ImmutableSet._unsupported());
    }
    clear() {
      return dart.throw(collection._ImmutableSet._unsupported());
    }
    remove(key) {
      return dart.throw(collection._ImmutableSet._unsupported());
    }
    static _unsupported() {
      return new core.UnsupportedError.new("Cannot modify unmodifiable set");
    }
  }
  (_ImmutableSet.from = function(entries) {
    _ImmutableSet.__proto__.new.call(this);
    let map = this[_map$4];
    for (let key of entries) {
      if (key == null) {
        key = null;
      } else if (key[$_equals] !== dart.identityEquals) {
        key = _js_helper.putLinkedMapKey(key, this[_keyMap$]);
      }
      map.add(key);
    }
  }).prototype = _ImmutableSet.prototype;
  dart.addTypeTests(_ImmutableSet);
  _ImmutableSet.prototype[_is__ImmutableSet_default] = true;
  dart.addTypeCaches(_ImmutableSet);
  dart.setLibraryUri(_ImmutableSet, L9);
  return _ImmutableSet;
});
collection._ImmutableSet = collection._ImmutableSet$();
dart.addTypeTests(collection._ImmutableSet, _is__ImmutableSet_default);
const _is__IdentityHashSet_default = Symbol('_is__IdentityHashSet_default');
var _map$6 = dart.privateName(collection, "_IdentityHashSet._map");
var _modifications$4 = dart.privateName(collection, "_IdentityHashSet._modifications");
collection._IdentityHashSet$ = dart.generic(E => {
  var _IdentityHashSetOfEL = () => (_IdentityHashSetOfEL = dart.constFn(collection._IdentityHashSet$(E)))();
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  class _IdentityHashSet extends collection._InternalSet$(E) {
    get [_map$4]() {
      return this[_map$6];
    }
    set [_map$4](value) {
      super[_map$4] = value;
    }
    get [_modifications$2]() {
      return this[_modifications$4];
    }
    set [_modifications$2](value) {
      this[_modifications$4] = value;
    }
    [_newSet]() {
      return new (_IdentityHashSetOfEL()).new();
    }
    [_newSimilarSet](R) {
      return new (collection._IdentityHashSet$(R)).new();
    }
    contains(element) {
      return this[_map$4].has(element);
    }
    lookup(element) {
      return E.as(dart.test(this[_map$4].has(element)) ? element : null);
    }
    add(element) {
      E.as(element);
      let map = this[_map$4];
      if (map.has(element)) return false;
      map.add(element);
      this[_modifications$2] = this[_modifications$2] + 1 & 67108863;
      return true;
    }
    addAll(objects) {
      IterableOfEL().as(objects);
      let map = this[_map$4];
      let length = map.size;
      for (let key of objects) {
        map.add(key);
      }
      if (length !== map.size) {
        this[_modifications$2] = this[_modifications$2] + 1 & 67108863;
      }
    }
    remove(element) {
      if (this[_map$4].delete(element)) {
        this[_modifications$2] = this[_modifications$2] + 1 & 67108863;
        return true;
      }
      return false;
    }
    clear() {
      let map = this[_map$4];
      if (map.size > 0) {
        map.clear();
        this[_modifications$2] = this[_modifications$2] + 1 & 67108863;
      }
    }
  }
  (_IdentityHashSet.new = function() {
    this[_map$6] = new Set();
    this[_modifications$4] = 0;
    _IdentityHashSet.__proto__.new.call(this);
    ;
  }).prototype = _IdentityHashSet.prototype;
  dart.addTypeTests(_IdentityHashSet);
  _IdentityHashSet.prototype[_is__IdentityHashSet_default] = true;
  dart.addTypeCaches(_IdentityHashSet);
  _IdentityHashSet[dart.implements] = () => [collection.HashSet$(E), collection.LinkedHashSet$(E)];
  dart.setMethodSignature(_IdentityHashSet, () => ({
    __proto__: dart.getMethods(_IdentityHashSet.__proto__),
    [_newSet]: dart.fnType(core.Set$(E), []),
    [_newSimilarSet]: dart.gFnType(R => [core.Set$(R), []]),
    contains: dart.fnType(core.bool, [core.Object]),
    [$contains]: dart.fnType(core.bool, [core.Object]),
    lookup: dart.fnType(E, [core.Object]),
    add: dart.fnType(core.bool, [core.Object]),
    remove: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(_IdentityHashSet, L9);
  dart.setFieldSignature(_IdentityHashSet, () => ({
    __proto__: dart.getFields(_IdentityHashSet.__proto__),
    [_map$4]: dart.finalFieldType(dart.dynamic),
    [_modifications$2]: dart.fieldType(core.int)
  }));
  dart.defineExtensionMethods(_IdentityHashSet, ['contains']);
  return _IdentityHashSet;
});
collection._IdentityHashSet = collection._IdentityHashSet$();
dart.addTypeTests(collection._IdentityHashSet, _is__IdentityHashSet_default);
var _validKey$0 = dart.privateName(collection, "_validKey");
var _equals$0 = dart.privateName(collection, "_equals");
var _hashCode$0 = dart.privateName(collection, "_hashCode");
const _is__CustomHashSet_default = Symbol('_is__CustomHashSet_default');
var _modifications$5 = dart.privateName(collection, "_CustomHashSet._modifications");
var _map$7 = dart.privateName(collection, "_CustomHashSet._map");
collection._CustomHashSet$ = dart.generic(E => {
  var _CustomHashSetOfEL = () => (_CustomHashSetOfEL = dart.constFn(collection._CustomHashSet$(E)))();
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  class _CustomHashSet extends collection._InternalSet$(E) {
    get [_modifications$2]() {
      return this[_modifications$5];
    }
    set [_modifications$2](value) {
      this[_modifications$5] = value;
    }
    get [_map$4]() {
      return this[_map$7];
    }
    set [_map$4](value) {
      super[_map$4] = value;
    }
    [_newSet]() {
      return new (_CustomHashSetOfEL()).new(this[_equals$0], this[_hashCode$0]);
    }
    [_newSimilarSet](R) {
      return new (collection._HashSet$(R)).new();
    }
    contains(key) {
      let t65;
      if (E.is(key)) {
        let buckets = this[_keyMap$].get((t65 = key, this[_hashCode$0](t65)) & 0x3ffffff);
        if (buckets != null) {
          let equals = this[_equals$0];
          for (let i = 0, n = buckets.length; i < n; i = i + 1) {
            let k = buckets[i];
            if (dart.test(equals(k, key))) return true;
          }
        }
      }
      return false;
    }
    lookup(key) {
      let t65;
      if (E.is(key)) {
        let buckets = this[_keyMap$].get((t65 = key, this[_hashCode$0](t65)) & 0x3ffffff);
        if (buckets != null) {
          let equals = this[_equals$0];
          for (let i = 0, n = buckets.length; i < n; i = i + 1) {
            let k = buckets[i];
            if (dart.test(equals(k, key))) return k;
          }
        }
      }
      return null;
    }
    add(key) {
      let t65;
      E.as(key);
      let keyMap = this[_keyMap$];
      let hash = (t65 = key, this[_hashCode$0](t65)) & 0x3ffffff;
      let buckets = keyMap.get(hash);
      if (buckets == null) {
        keyMap.set(hash, [key]);
      } else {
        let equals = this[_equals$0];
        for (let i = 0, n = buckets.length; i < n; i = i + 1) {
          let k = buckets[i];
          if (dart.test(equals(k, key))) return false;
        }
        buckets.push(key);
      }
      this[_map$4].add(key);
      this[_modifications$2] = this[_modifications$2] + 1 & 67108863;
      return true;
    }
    addAll(objects) {
      IterableOfEL().as(objects);
      for (let element of objects)
        this.add(element);
    }
    remove(key) {
      let t65;
      if (E.is(key)) {
        let hash = (t65 = key, this[_hashCode$0](t65)) & 0x3ffffff;
        let keyMap = this[_keyMap$];
        let buckets = keyMap.get(hash);
        if (buckets == null) return false;
        let equals = this[_equals$0];
        for (let i = 0, n = buckets.length; i < n; i = i + 1) {
          let k = buckets[i];
          if (dart.test(equals(k, key))) {
            if (n === 1) {
              keyMap.delete(hash);
            } else {
              buckets.splice(i, 1);
            }
            this[_map$4].delete(k);
            this[_modifications$2] = this[_modifications$2] + 1 & 67108863;
            return true;
          }
        }
      }
      return false;
    }
    clear() {
      let map = this[_map$4];
      if (map.size > 0) {
        map.clear();
        this[_keyMap$].clear();
        this[_modifications$2] = this[_modifications$2] + 1 & 67108863;
      }
    }
  }
  (_CustomHashSet.new = function(_equals, _hashCode) {
    this[_modifications$5] = 0;
    this[_map$7] = new Set();
    this[_keyMap$] = new Map();
    this[_equals$0] = _equals;
    this[_hashCode$0] = _hashCode;
    _CustomHashSet.__proto__.new.call(this);
    ;
  }).prototype = _CustomHashSet.prototype;
  dart.addTypeTests(_CustomHashSet);
  _CustomHashSet.prototype[_is__CustomHashSet_default] = true;
  dart.addTypeCaches(_CustomHashSet);
  _CustomHashSet[dart.implements] = () => [collection.HashSet$(E), collection.LinkedHashSet$(E)];
  dart.setMethodSignature(_CustomHashSet, () => ({
    __proto__: dart.getMethods(_CustomHashSet.__proto__),
    [_newSet]: dart.fnType(core.Set$(E), []),
    [_newSimilarSet]: dart.gFnType(R => [core.Set$(R), []]),
    contains: dart.fnType(core.bool, [core.Object]),
    [$contains]: dart.fnType(core.bool, [core.Object]),
    lookup: dart.fnType(E, [core.Object]),
    add: dart.fnType(core.bool, [core.Object]),
    remove: dart.fnType(core.bool, [core.Object])
  }));
  dart.setLibraryUri(_CustomHashSet, L9);
  dart.setFieldSignature(_CustomHashSet, () => ({
    __proto__: dart.getFields(_CustomHashSet.__proto__),
    [_equals$0]: dart.fieldType(dart.fnType(core.bool, [E, E])),
    [_hashCode$0]: dart.fieldType(dart.fnType(core.int, [E])),
    [_modifications$2]: dart.fieldType(core.int),
    [_map$4]: dart.finalFieldType(dart.dynamic),
    [_keyMap$]: dart.finalFieldType(core.Object)
  }));
  dart.defineExtensionMethods(_CustomHashSet, ['contains']);
  return _CustomHashSet;
});
collection._CustomHashSet = collection._CustomHashSet$();
dart.addTypeTests(collection._CustomHashSet, _is__CustomHashSet_default);
const _is__CustomKeyHashSet_default = Symbol('_is__CustomKeyHashSet_default');
collection._CustomKeyHashSet$ = dart.generic(E => {
  var _CustomKeyHashSetOfEL = () => (_CustomKeyHashSetOfEL = dart.constFn(collection._CustomKeyHashSet$(E)))();
  class _CustomKeyHashSet extends collection._CustomHashSet$(E) {
    [_newSet]() {
      return new (_CustomKeyHashSetOfEL()).new(this[_equals$0], this[_hashCode$0], this[_validKey$0]);
    }
    [_newSimilarSet](R) {
      return new (collection._HashSet$(R)).new();
    }
    contains(element) {
      let t65;
      if (!dart.test((t65 = element, this[_validKey$0](t65)))) return false;
      return super.contains(element);
    }
    lookup(element) {
      let t65;
      if (!dart.test((t65 = element, this[_validKey$0](t65)))) return null;
      return super.lookup(element);
    }
    remove(element) {
      let t65;
      if (!dart.test((t65 = element, this[_validKey$0](t65)))) return false;
      return super.remove(element);
    }
  }
  (_CustomKeyHashSet.new = function(equals, hashCode, _validKey) {
    this[_validKey$0] = _validKey;
    _CustomKeyHashSet.__proto__.new.call(this, equals, hashCode);
    ;
  }).prototype = _CustomKeyHashSet.prototype;
  dart.addTypeTests(_CustomKeyHashSet);
  _CustomKeyHashSet.prototype[_is__CustomKeyHashSet_default] = true;
  dart.addTypeCaches(_CustomKeyHashSet);
  dart.setMethodSignature(_CustomKeyHashSet, () => ({
    __proto__: dart.getMethods(_CustomKeyHashSet.__proto__),
    [_newSimilarSet]: dart.gFnType(R => [core.Set$(R), []])
  }));
  dart.setLibraryUri(_CustomKeyHashSet, L9);
  dart.setFieldSignature(_CustomKeyHashSet, () => ({
    __proto__: dart.getFields(_CustomKeyHashSet.__proto__),
    [_validKey$0]: dart.fieldType(dart.fnType(core.bool, [core.Object]))
  }));
  dart.defineExtensionMethods(_CustomKeyHashSet, ['contains']);
  return _CustomKeyHashSet;
});
collection._CustomKeyHashSet = collection._CustomKeyHashSet$();
dart.addTypeTests(collection._CustomKeyHashSet, _is__CustomKeyHashSet_default);
var _source = dart.privateName(collection, "_source");
const _is_UnmodifiableListView_default = Symbol('_is_UnmodifiableListView_default');
collection.UnmodifiableListView$ = dart.generic(E => {
  class UnmodifiableListView extends _internal.UnmodifiableListBase$(E) {
    cast(R) {
      return new (collection.UnmodifiableListView$(R)).new(this[_source][$cast](R));
    }
    get length() {
      return this[_source][$length];
    }
    set length(value) {
      super.length = value;
    }
    _get(index) {
      return this[_source][$elementAt](index);
    }
  }
  (UnmodifiableListView.new = function(source) {
    this[_source] = source;
    ;
  }).prototype = UnmodifiableListView.prototype;
  dart.addTypeTests(UnmodifiableListView);
  UnmodifiableListView.prototype[_is_UnmodifiableListView_default] = true;
  dart.addTypeCaches(UnmodifiableListView);
  dart.setMethodSignature(UnmodifiableListView, () => ({
    __proto__: dart.getMethods(UnmodifiableListView.__proto__),
    cast: dart.gFnType(R => [core.List$(R), []]),
    [$cast]: dart.gFnType(R => [core.List$(R), []]),
    _get: dart.fnType(E, [core.int]),
    [$_get]: dart.fnType(E, [core.int])
  }));
  dart.setGetterSignature(UnmodifiableListView, () => ({
    __proto__: dart.getGetters(UnmodifiableListView.__proto__),
    length: core.int,
    [$length]: core.int
  }));
  dart.setLibraryUri(UnmodifiableListView, L9);
  dart.setFieldSignature(UnmodifiableListView, () => ({
    __proto__: dart.getFields(UnmodifiableListView.__proto__),
    [_source]: dart.finalFieldType(core.Iterable$(E))
  }));
  dart.defineExtensionMethods(UnmodifiableListView, ['cast', '_get']);
  dart.defineExtensionAccessors(UnmodifiableListView, ['length']);
  return UnmodifiableListView;
});
collection.UnmodifiableListView = collection.UnmodifiableListView$();
dart.addTypeTests(collection.UnmodifiableListView, _is_UnmodifiableListView_default);
var C76;
var C77;
var C78;
var C79;
const _is_HashMap_default = Symbol('_is_HashMap_default');
collection.HashMap$ = dart.generic((K, V) => {
  class HashMap extends core.Object {
    static new(opts) {
      let t65, t65$, t65$0;
      let equals = opts && 'equals' in opts ? opts.equals : null;
      let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
      let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
      if (isValidKey == null) {
        if (hashCode == null) {
          if (equals == null) {
            if (dart.wrapType(K) === dart.wrapType(core.String) || dart.wrapType(K) === dart.wrapType(core.int)) {
              return new (_js_helper.IdentityMap$(K, V)).new();
            }
            return new (_js_helper.LinkedMap$(K, V)).new();
          }
          hashCode = C76 || CT.C76;
        } else if ((C77 || CT.C77) === hashCode && (C78 || CT.C78) === equals) {
          return new (_js_helper.IdentityMap$(K, V)).new();
        }
        return new (_js_helper.CustomHashMap$(K, V)).new((t65 = equals, t65 == null ? C79 || CT.C79 : t65), hashCode);
      }
      return new (_js_helper.CustomKeyHashMap$(K, V)).new((t65$ = equals, t65$ == null ? C79 || CT.C79 : t65$), (t65$0 = hashCode, t65$0 == null ? C76 || CT.C76 : t65$0), isValidKey);
    }
    static from(other) {
      let result = new (_js_helper.LinkedMap$(K, V)).new();
      other[$forEach](dart.fn((k, v) => {
        result[$_set](K.as(k), V.as(v));
      }, dynamicAnddynamicToNullN()));
      return collection.HashMap$(K, V).as(result);
    }
    static of(other) {
      let t65;
      t65 = new (_js_helper.LinkedMap$(K, V)).new();
      t65[$addAll](other);
      return t65;
    }
    static fromIterable(iterable, opts) {
      let key = opts && 'key' in opts ? opts.key : null;
      let value = opts && 'value' in opts ? opts.value : null;
      let map = new (_js_helper.LinkedMap$(K, V)).new();
      collection.MapBase._fillMapWithMappedIterable(map, iterable, key, value);
      return collection.HashMap$(K, V).as(map);
    }
    static fromIterables(keys, values) {
      let map = new (_js_helper.LinkedMap$(K, V)).new();
      collection.MapBase._fillMapWithIterables(map, keys, values);
      return collection.HashMap$(K, V).as(map);
    }
    static fromEntries(entries) {
      let t65;
      t65 = new (_js_helper.LinkedMap$(K, V)).new();
      t65[$addEntries](entries);
      return t65;
    }
  }
  (HashMap[dart.mixinNew] = function() {
  }).prototype = HashMap.prototype;
  HashMap.prototype[dart.isMap] = true;
  dart.addTypeTests(HashMap);
  HashMap.prototype[_is_HashMap_default] = true;
  dart.addTypeCaches(HashMap);
  HashMap[dart.implements] = () => [core.Map$(K, V)];
  dart.setLibraryUri(HashMap, L9);
  return HashMap;
});
collection.HashMap = collection.HashMap$();
dart.addTypeTests(collection.HashMap, _is_HashMap_default);
const _is_HashSet_default = Symbol('_is_HashSet_default');
collection.HashSet$ = dart.generic(E => {
  class HashSet extends core.Object {
    static new(opts) {
      let t65, t65$, t65$0, t65$1;
      let equals = opts && 'equals' in opts ? opts.equals : null;
      let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
      let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
      if (isValidKey == null) {
        if (hashCode == null) {
          if (equals == null) {
            if (dart.wrapType(E) === dart.wrapType(core.String) || dart.wrapType(E) === dart.wrapType(core.int)) {
              return new (collection._IdentityHashSet$(E)).new();
            }
            return new (collection._HashSet$(E)).new();
          }
          hashCode = C76 || CT.C76;
        } else if ((C77 || CT.C77) === hashCode && (C78 || CT.C78) === equals) {
          return new (collection._IdentityHashSet$(E)).new();
        }
        return new (collection._CustomHashSet$(E)).new((t65 = equals, t65 == null ? C79 || CT.C79 : t65), (t65$ = hashCode, t65$ == null ? C76 || CT.C76 : t65$));
      }
      return new (collection._CustomKeyHashSet$(E)).new((t65$0 = equals, t65$0 == null ? C79 || CT.C79 : t65$0), (t65$1 = hashCode, t65$1 == null ? C76 || CT.C76 : t65$1), isValidKey);
    }
    static from(elements) {
      let result = new (collection._HashSet$(E)).new();
      for (let e of elements) {
        result.add(E.as(e));
      }
      return result;
    }
    static of(elements) {
      let t65;
      t65 = new (collection._HashSet$(E)).new();
      t65.addAll(elements);
      return t65;
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  }
  (HashSet[dart.mixinNew] = function() {
  }).prototype = HashSet.prototype;
  dart.addTypeTests(HashSet);
  HashSet.prototype[_is_HashSet_default] = true;
  dart.addTypeCaches(HashSet);
  HashSet[dart.implements] = () => [core.Set$(E)];
  dart.setLibraryUri(HashSet, L9);
  return HashSet;
});
collection.HashSet = collection.HashSet$();
dart.addTypeTests(collection.HashSet, _is_HashSet_default);
const _is_IterableMixin_default = Symbol('_is_IterableMixin_default');
collection.IterableMixin$ = dart.generic(E => {
  var WhereIterableOfEL = () => (WhereIterableOfEL = dart.constFn(_internal.WhereIterable$(E)))();
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  var EfficientLengthIterableOfEL = () => (EfficientLengthIterableOfEL = dart.constFn(_internal.EfficientLengthIterable$(E)))();
  var FollowedByIterableOfEL = () => (FollowedByIterableOfEL = dart.constFn(_internal.FollowedByIterable$(E)))();
  var ELAndELToLEL = () => (ELAndELToLEL = dart.constFn(dart.fnType(E, [E, E])))();
  var ListOfEL = () => (ListOfEL = dart.constFn(core.List$(E)))();
  var LinkedHashSetOfEL = () => (LinkedHashSetOfEL = dart.constFn(collection.LinkedHashSet$(E)))();
  var TakeIterableOfEL = () => (TakeIterableOfEL = dart.constFn(_internal.TakeIterable$(E)))();
  var TakeWhileIterableOfEL = () => (TakeWhileIterableOfEL = dart.constFn(_internal.TakeWhileIterable$(E)))();
  var SkipIterableOfEL = () => (SkipIterableOfEL = dart.constFn(_internal.SkipIterable$(E)))();
  var SkipWhileIterableOfEL = () => (SkipWhileIterableOfEL = dart.constFn(_internal.SkipWhileIterable$(E)))();
  var VoidToLEL = () => (VoidToLEL = dart.constFn(dart.fnType(E, [])))();
  class IterableMixin extends core.Object {
    cast(R) {
      return core.Iterable.castFrom(E, R, this);
    }
    map(T, f) {
      return _internal.MappedIterable$(E, T).new(this, f);
    }
    where(f) {
      return new (WhereIterableOfEL()).new(this, f);
    }
    whereType(T) {
      return new (_internal.WhereTypeIterable$(T)).new(this);
    }
    expand(T, f) {
      return new (_internal.ExpandIterable$(E, T)).new(this, f);
    }
    followedBy(other) {
      IterableOfEL().as(other);
      let self = this;
      if (EfficientLengthIterableOfEL().is(self)) {
        return FollowedByIterableOfEL().firstEfficient(self, other);
      }
      return new (FollowedByIterableOfEL()).new(this, other);
    }
    contains(element) {
      for (let e of this) {
        if (dart.equals(e, element)) return true;
      }
      return false;
    }
    forEach(f) {
      for (let element of this)
        f(element);
    }
    reduce(combine) {
      ELAndELToLEL().as(combine);
      let iterator = this[$iterator];
      if (!dart.test(iterator.moveNext())) {
        dart.throw(_internal.IterableElementError.noElement());
      }
      let value = iterator.current;
      while (dart.test(iterator.moveNext())) {
        value = combine(value, iterator.current);
      }
      return value;
    }
    fold(T, initialValue, combine) {
      let value = initialValue;
      for (let element of this)
        value = combine(value, element);
      return value;
    }
    every(f) {
      for (let element of this) {
        if (!dart.test(f(element))) return false;
      }
      return true;
    }
    join(separator = "") {
      let iterator = this[$iterator];
      if (!dart.test(iterator.moveNext())) return "";
      let buffer = new core.StringBuffer.new();
      if (separator == null || separator === "") {
        do {
          buffer.write(dart.str(iterator.current));
        } while (dart.test(iterator.moveNext()));
      } else {
        buffer.write(dart.str(iterator.current));
        while (dart.test(iterator.moveNext())) {
          buffer.write(separator);
          buffer.write(dart.str(iterator.current));
        }
      }
      return buffer.toString();
    }
    any(test) {
      for (let element of this) {
        if (dart.test(test(element))) return true;
      }
      return false;
    }
    toList(opts) {
      let growable = opts && 'growable' in opts ? opts.growable : true;
      return ListOfEL().from(this, {growable: growable});
    }
    toSet() {
      return LinkedHashSetOfEL().from(this);
    }
    get length() {
      if (!!_internal.EfficientLengthIterable.is(this)) dart.assertFailed(null, L19, 105, 12, "this is! EfficientLengthIterable");
      let count = 0;
      let it = this[$iterator];
      while (dart.test(it.moveNext())) {
        count = count + 1;
      }
      return count;
    }
    get isEmpty() {
      return !dart.test(this[$iterator].moveNext());
    }
    get isNotEmpty() {
      return !dart.test(this.isEmpty);
    }
    take(count) {
      return TakeIterableOfEL().new(this, count);
    }
    takeWhile(test) {
      return new (TakeWhileIterableOfEL()).new(this, test);
    }
    skip(count) {
      return SkipIterableOfEL().new(this, count);
    }
    skipWhile(test) {
      return new (SkipWhileIterableOfEL()).new(this, test);
    }
    get first() {
      let it = this[$iterator];
      if (!dart.test(it.moveNext())) {
        dart.throw(_internal.IterableElementError.noElement());
      }
      return it.current;
    }
    get last() {
      let it = this[$iterator];
      if (!dart.test(it.moveNext())) {
        dart.throw(_internal.IterableElementError.noElement());
      }
      let result = null;
      do {
        result = it.current;
      } while (dart.test(it.moveNext()));
      return result;
    }
    get single() {
      let it = this[$iterator];
      if (!dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.noElement());
      let result = it.current;
      if (dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.tooMany());
      return result;
    }
    firstWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      for (let element of this) {
        if (dart.test(test(element))) return element;
      }
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    lastWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      let result = null;
      let foundMatching = false;
      for (let element of this) {
        if (dart.test(test(element))) {
          result = element;
          foundMatching = true;
        }
      }
      if (foundMatching) return result;
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    singleWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      let result = null;
      let foundMatching = false;
      for (let element of this) {
        if (dart.test(test(element))) {
          if (foundMatching) {
            dart.throw(_internal.IterableElementError.tooMany());
          }
          result = element;
          foundMatching = true;
        }
      }
      if (foundMatching) return result;
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    elementAt(index) {
      core.ArgumentError.checkNotNull(core.int, index, "index");
      core.RangeError.checkNotNegative(index, "index");
      let elementIndex = 0;
      for (let element of this) {
        if (index === elementIndex) return element;
        elementIndex = elementIndex + 1;
      }
      dart.throw(new core.IndexError.new(index, this, "index", null, elementIndex));
    }
    toString() {
      return collection.IterableBase.iterableToShortString(this, "(", ")");
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  }
  (IterableMixin.new = function() {
    ;
  }).prototype = IterableMixin.prototype;
  IterableMixin.prototype[dart.isIterable] = true;
  dart.addTypeTests(IterableMixin);
  IterableMixin.prototype[_is_IterableMixin_default] = true;
  dart.addTypeCaches(IterableMixin);
  IterableMixin[dart.implements] = () => [core.Iterable$(E)];
  dart.setMethodSignature(IterableMixin, () => ({
    __proto__: dart.getMethods(IterableMixin.__proto__),
    cast: dart.gFnType(R => [core.Iterable$(R), []]),
    [$cast]: dart.gFnType(R => [core.Iterable$(R), []]),
    map: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]]),
    [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]]),
    where: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    [$where]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    whereType: dart.gFnType(T => [core.Iterable$(T), []]),
    [$whereType]: dart.gFnType(T => [core.Iterable$(T), []]),
    expand: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]]),
    [$expand]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]]),
    followedBy: dart.fnType(core.Iterable$(E), [core.Object]),
    [$followedBy]: dart.fnType(core.Iterable$(E), [core.Object]),
    contains: dart.fnType(core.bool, [core.Object]),
    [$contains]: dart.fnType(core.bool, [core.Object]),
    forEach: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
    [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
    reduce: dart.fnType(E, [core.Object]),
    [$reduce]: dart.fnType(E, [core.Object]),
    fold: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]]),
    [$fold]: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]]),
    every: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    [$every]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    join: dart.fnType(core.String, [], [core.String]),
    [$join]: dart.fnType(core.String, [], [core.String]),
    any: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    [$any]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    toList: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
    [$toList]: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
    toSet: dart.fnType(core.Set$(E), []),
    [$toSet]: dart.fnType(core.Set$(E), []),
    take: dart.fnType(core.Iterable$(E), [core.int]),
    [$take]: dart.fnType(core.Iterable$(E), [core.int]),
    takeWhile: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    [$takeWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    skip: dart.fnType(core.Iterable$(E), [core.int]),
    [$skip]: dart.fnType(core.Iterable$(E), [core.int]),
    skipWhile: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    [$skipWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    firstWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    [$firstWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    lastWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    [$lastWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    singleWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    [$singleWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    elementAt: dart.fnType(E, [core.int]),
    [$elementAt]: dart.fnType(E, [core.int])
  }));
  dart.setGetterSignature(IterableMixin, () => ({
    __proto__: dart.getGetters(IterableMixin.__proto__),
    length: core.int,
    [$length]: core.int,
    isEmpty: core.bool,
    [$isEmpty]: core.bool,
    isNotEmpty: core.bool,
    [$isNotEmpty]: core.bool,
    first: E,
    [$first]: E,
    last: E,
    [$last]: E,
    single: E,
    [$single]: E
  }));
  dart.setLibraryUri(IterableMixin, L9);
  dart.defineExtensionMethods(IterableMixin, [
    'cast',
    'map',
    'where',
    'whereType',
    'expand',
    'followedBy',
    'contains',
    'forEach',
    'reduce',
    'fold',
    'every',
    'join',
    'any',
    'toList',
    'toSet',
    'take',
    'takeWhile',
    'skip',
    'skipWhile',
    'firstWhere',
    'lastWhere',
    'singleWhere',
    'elementAt',
    'toString'
  ]);
  dart.defineExtensionAccessors(IterableMixin, [
    'length',
    'isEmpty',
    'isNotEmpty',
    'first',
    'last',
    'single'
  ]);
  return IterableMixin;
});
collection.IterableMixin = collection.IterableMixin$();
dart.addTypeTests(collection.IterableMixin, _is_IterableMixin_default);
var _state$ = dart.privateName(collection, "_state");
var _iterator$0 = dart.privateName(collection, "_iterator");
var _move = dart.privateName(collection, "_move");
const _is_HasNextIterator_default = Symbol('_is_HasNextIterator_default');
collection.HasNextIterator$ = dart.generic(E => {
  class HasNextIterator extends core.Object {
    get hasNext() {
      if (this[_state$] === 2) this[_move]();
      return this[_state$] === 0;
    }
    next() {
      if (!dart.test(this.hasNext)) dart.throw(new core.StateError.new("No more elements"));
      if (!(this[_state$] === 0)) dart.assertFailed(null, L35, 32, 12, "_state == _HAS_NEXT_AND_NEXT_IN_CURRENT");
      let result = this[_iterator$0].current;
      this[_move]();
      return result;
    }
    [_move]() {
      if (dart.test(this[_iterator$0].moveNext())) {
        this[_state$] = 0;
      } else {
        this[_state$] = 1;
      }
    }
  }
  (HasNextIterator.new = function(_iterator) {
    this[_state$] = 2;
    this[_iterator$0] = _iterator;
    ;
  }).prototype = HasNextIterator.prototype;
  dart.addTypeTests(HasNextIterator);
  HasNextIterator.prototype[_is_HasNextIterator_default] = true;
  dart.addTypeCaches(HasNextIterator);
  dart.setMethodSignature(HasNextIterator, () => ({
    __proto__: dart.getMethods(HasNextIterator.__proto__),
    next: dart.fnType(E, []),
    [_move]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(HasNextIterator, () => ({
    __proto__: dart.getGetters(HasNextIterator.__proto__),
    hasNext: core.bool
  }));
  dart.setLibraryUri(HasNextIterator, L9);
  dart.setFieldSignature(HasNextIterator, () => ({
    __proto__: dart.getFields(HasNextIterator.__proto__),
    [_iterator$0]: dart.fieldType(core.Iterator$(E)),
    [_state$]: dart.fieldType(core.int)
  }));
  return HasNextIterator;
});
collection.HasNextIterator = collection.HasNextIterator$();
dart.defineLazy(collection.HasNextIterator, {
  /*collection.HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT*/get _HAS_NEXT_AND_NEXT_IN_CURRENT() {
    return 0;
  },
  /*collection.HasNextIterator._NO_NEXT*/get _NO_NEXT() {
    return 1;
  },
  /*collection.HasNextIterator._NOT_MOVED_YET*/get _NOT_MOVED_YET() {
    return 2;
  }
}, true);
dart.addTypeTests(collection.HasNextIterator, _is_HasNextIterator_default);
const _is_LinkedHashMap_default = Symbol('_is_LinkedHashMap_default');
collection.LinkedHashMap$ = dart.generic((K, V) => {
  class LinkedHashMap extends core.Object {
    static new(opts) {
      let t65, t65$, t65$0;
      let equals = opts && 'equals' in opts ? opts.equals : null;
      let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
      let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
      if (isValidKey == null) {
        if (hashCode == null) {
          if (equals == null) {
            if (dart.wrapType(K) === dart.wrapType(core.String) || dart.wrapType(K) === dart.wrapType(core.int)) {
              return new (_js_helper.IdentityMap$(K, V)).new();
            }
            return new (_js_helper.LinkedMap$(K, V)).new();
          }
          hashCode = C76 || CT.C76;
        } else if ((C77 || CT.C77) === hashCode && (C78 || CT.C78) === equals) {
          return new (_js_helper.IdentityMap$(K, V)).new();
        }
        return new (_js_helper.CustomHashMap$(K, V)).new((t65 = equals, t65 == null ? C79 || CT.C79 : t65), hashCode);
      }
      return new (_js_helper.CustomKeyHashMap$(K, V)).new((t65$ = equals, t65$ == null ? C79 || CT.C79 : t65$), (t65$0 = hashCode, t65$0 == null ? C76 || CT.C76 : t65$0), isValidKey);
    }
    static from(other) {
      let result = new (_js_helper.LinkedMap$(K, V)).new();
      other[$forEach](dart.fn((k, v) => {
        result[$_set](K.as(k), V.as(v));
      }, dynamicAnddynamicToNullN()));
      return result;
    }
    static of(other) {
      let t65;
      t65 = new (_js_helper.LinkedMap$(K, V)).new();
      t65[$addAll](other);
      return t65;
    }
    static fromIterable(iterable, opts) {
      let key = opts && 'key' in opts ? opts.key : null;
      let value = opts && 'value' in opts ? opts.value : null;
      let map = new (_js_helper.LinkedMap$(K, V)).new();
      collection.MapBase._fillMapWithMappedIterable(map, iterable, key, value);
      return map;
    }
    static fromIterables(keys, values) {
      let map = new (_js_helper.LinkedMap$(K, V)).new();
      collection.MapBase._fillMapWithIterables(map, keys, values);
      return map;
    }
    static fromEntries(entries) {
      let t65;
      return collection.LinkedHashMap$(K, V).as((t65 = new (_js_helper.LinkedMap$(K, V)).new(), t65[$addEntries](entries), t65));
    }
  }
  (LinkedHashMap[dart.mixinNew] = function() {
  }).prototype = LinkedHashMap.prototype;
  LinkedHashMap.prototype[dart.isMap] = true;
  dart.addTypeTests(LinkedHashMap);
  LinkedHashMap.prototype[_is_LinkedHashMap_default] = true;
  dart.addTypeCaches(LinkedHashMap);
  LinkedHashMap[dart.implements] = () => [core.Map$(K, V)];
  dart.setLibraryUri(LinkedHashMap, L9);
  return LinkedHashMap;
});
collection.LinkedHashMap = collection.LinkedHashMap$();
dart.addTypeTests(collection.LinkedHashMap, _is_LinkedHashMap_default);
const _is_LinkedHashSet_default = Symbol('_is_LinkedHashSet_default');
collection.LinkedHashSet$ = dart.generic(E => {
  class LinkedHashSet extends core.Object {
    static new(opts) {
      let t65, t65$, t65$0, t65$1;
      let equals = opts && 'equals' in opts ? opts.equals : null;
      let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
      let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
      if (isValidKey == null) {
        if (hashCode == null) {
          if (equals == null) {
            if (dart.wrapType(E) === dart.wrapType(core.String) || dart.wrapType(E) === dart.wrapType(core.int)) {
              return new (collection._IdentityHashSet$(E)).new();
            }
            return new (collection._HashSet$(E)).new();
          }
          hashCode = C76 || CT.C76;
        } else if ((C77 || CT.C77) === hashCode && (C78 || CT.C78) === equals) {
          return new (collection._IdentityHashSet$(E)).new();
        }
        return new (collection._CustomHashSet$(E)).new((t65 = equals, t65 == null ? C79 || CT.C79 : t65), (t65$ = hashCode, t65$ == null ? C76 || CT.C76 : t65$));
      }
      return new (collection._CustomKeyHashSet$(E)).new((t65$0 = equals, t65$0 == null ? C79 || CT.C79 : t65$0), (t65$1 = hashCode, t65$1 == null ? C76 || CT.C76 : t65$1), isValidKey);
    }
    static from(elements) {
      let result = new (collection._HashSet$(E)).new();
      for (let element of elements) {
        result.add(E.as(element));
      }
      return result;
    }
    static of(elements) {
      let t65;
      t65 = new (collection._HashSet$(E)).new();
      t65.addAll(elements);
      return t65;
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  }
  (LinkedHashSet[dart.mixinNew] = function() {
  }).prototype = LinkedHashSet.prototype;
  dart.addTypeTests(LinkedHashSet);
  LinkedHashSet.prototype[_is_LinkedHashSet_default] = true;
  dart.addTypeCaches(LinkedHashSet);
  LinkedHashSet[dart.implements] = () => [core.Set$(E)];
  dart.setLibraryUri(LinkedHashSet, L9);
  return LinkedHashSet;
});
collection.LinkedHashSet = collection.LinkedHashSet$();
dart.addTypeTests(collection.LinkedHashSet, _is_LinkedHashSet_default);
var _modificationCount = dart.privateName(collection, "_modificationCount");
var _length$0 = dart.privateName(collection, "_length");
var _first = dart.privateName(collection, "_first");
var _insertBefore = dart.privateName(collection, "_insertBefore");
var _list$0 = dart.privateName(collection, "_list");
var _unlink = dart.privateName(collection, "_unlink");
var _next$2 = dart.privateName(collection, "_next");
var _previous$2 = dart.privateName(collection, "_previous");
const _is_LinkedList_default$ = Symbol('_is_LinkedList_default');
collection.LinkedList$ = dart.generic(E => {
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  var _LinkedListIteratorOfEL = () => (_LinkedListIteratorOfEL = dart.constFn(collection._LinkedListIterator$(E)))();
  class LinkedList extends core.Iterable$(E) {
    addFirst(entry) {
      E.as(entry);
      this[_insertBefore](this[_first], entry, {updateFirst: true});
      this[_first] = entry;
    }
    add(entry) {
      E.as(entry);
      this[_insertBefore](this[_first], entry, {updateFirst: false});
    }
    addAll(entries) {
      IterableOfEL().as(entries);
      entries[$forEach](dart.bind(this, 'add'));
    }
    remove(entry) {
      E.as(entry);
      if (!dart.equals(entry[_list$0], this)) return false;
      this[_unlink](entry);
      return true;
    }
    get iterator() {
      return new (_LinkedListIteratorOfEL()).new(this);
    }
    get length() {
      return this[_length$0];
    }
    clear() {
      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
      if (dart.test(this.isEmpty)) return;
      let next = this[_first];
      do {
        let entry = next;
        next = entry[_next$2];
        entry[_next$2] = entry[_previous$2] = entry[_list$0] = null;
      } while (next != this[_first]);
      this[_first] = null;
      this[_length$0] = 0;
    }
    get first() {
      if (dart.test(this.isEmpty)) {
        dart.throw(new core.StateError.new("No such element"));
      }
      return this[_first];
    }
    get last() {
      if (dart.test(this.isEmpty)) {
        dart.throw(new core.StateError.new("No such element"));
      }
      return this[_first][_previous$2];
    }
    get single() {
      if (dart.test(this.isEmpty)) {
        dart.throw(new core.StateError.new("No such element"));
      }
      if (dart.notNull(this[_length$0]) > 1) {
        dart.throw(new core.StateError.new("Too many elements"));
      }
      return this[_first];
    }
    forEach(action) {
      let modificationCount = this[_modificationCount];
      if (dart.test(this.isEmpty)) return;
      let current = this[_first];
      do {
        action(current);
        if (modificationCount != this[_modificationCount]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
        current = current[_next$2];
      } while (current != this[_first]);
    }
    get isEmpty() {
      return this[_length$0] === 0;
    }
    [_insertBefore](entry, newEntry, opts) {
      E.as(entry);
      E.as(newEntry);
      let updateFirst = opts && 'updateFirst' in opts ? opts.updateFirst : null;
      if (newEntry.list != null) {
        dart.throw(new core.StateError.new("LinkedListEntry is already in a LinkedList"));
      }
      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
      newEntry[_list$0] = this;
      if (dart.test(this.isEmpty)) {
        if (!(entry == null)) dart.assertFailed(null, L36, 141, 14, "entry == null");
        newEntry[_previous$2] = newEntry[_next$2] = newEntry;
        this[_first] = newEntry;
        this[_length$0] = dart.notNull(this[_length$0]) + 1;
        return;
      }
      let predecessor = entry[_previous$2];
      let successor = entry;
      newEntry[_previous$2] = predecessor;
      newEntry[_next$2] = successor;
      predecessor[_next$2] = newEntry;
      successor[_previous$2] = newEntry;
      if (dart.test(updateFirst) && entry == this[_first]) {
        this[_first] = newEntry;
      }
      this[_length$0] = dart.notNull(this[_length$0]) + 1;
    }
    [_unlink](entry) {
      E.as(entry);
      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
      entry[_next$2][_previous$2] = entry[_previous$2];
      let next = entry[_previous$2][_next$2] = entry[_next$2];
      this[_length$0] = dart.notNull(this[_length$0]) - 1;
      entry[_list$0] = entry[_next$2] = entry[_previous$2] = null;
      if (dart.test(this.isEmpty)) {
        this[_first] = null;
      } else if (entry == this[_first]) {
        this[_first] = next;
      }
    }
  }
  (LinkedList.new = function() {
    this[_modificationCount] = 0;
    this[_length$0] = 0;
    this[_first] = null;
    LinkedList.__proto__.new.call(this);
    ;
  }).prototype = LinkedList.prototype;
  dart.addTypeTests(LinkedList);
  LinkedList.prototype[_is_LinkedList_default$] = true;
  dart.addTypeCaches(LinkedList);
  dart.setMethodSignature(LinkedList, () => ({
    __proto__: dart.getMethods(LinkedList.__proto__),
    addFirst: dart.fnType(dart.void, [core.Object]),
    add: dart.fnType(dart.void, [core.Object]),
    addAll: dart.fnType(dart.void, [core.Object]),
    remove: dart.fnType(core.bool, [core.Object]),
    clear: dart.fnType(dart.void, []),
    [_insertBefore]: dart.fnType(dart.void, [core.Object, core.Object], {updateFirst: core.bool}, {}),
    [_unlink]: dart.fnType(dart.void, [core.Object])
  }));
  dart.setGetterSignature(LinkedList, () => ({
    __proto__: dart.getGetters(LinkedList.__proto__),
    iterator: core.Iterator$(E),
    [$iterator]: core.Iterator$(E)
  }));
  dart.setLibraryUri(LinkedList, L9);
  dart.setFieldSignature(LinkedList, () => ({
    __proto__: dart.getFields(LinkedList.__proto__),
    [_modificationCount]: dart.fieldType(core.int),
    [_length$0]: dart.fieldType(core.int),
    [_first]: dart.fieldType(E)
  }));
  dart.defineExtensionMethods(LinkedList, ['forEach']);
  dart.defineExtensionAccessors(LinkedList, [
    'iterator',
    'length',
    'first',
    'last',
    'single',
    'isEmpty'
  ]);
  return LinkedList;
});
collection.LinkedList = collection.LinkedList$();
dart.addTypeTests(collection.LinkedList, _is_LinkedList_default$);
var _current$1 = dart.privateName(collection, "_current");
var _visitedFirst = dart.privateName(collection, "_visitedFirst");
const _is__LinkedListIterator_default$ = Symbol('_is__LinkedListIterator_default');
collection._LinkedListIterator$ = dart.generic(E => {
  class _LinkedListIterator extends core.Object {
    get current() {
      return this[_current$1];
    }
    moveNext() {
      if (this[_modificationCount] != this[_list$0][_modificationCount]) {
        dart.throw(new core.ConcurrentModificationError.new(this));
      }
      if (dart.test(this[_list$0].isEmpty) || dart.test(this[_visitedFirst]) && this[_next$2] == this[_list$0].first) {
        this[_current$1] = null;
        return false;
      }
      this[_visitedFirst] = true;
      this[_current$1] = E.as(this[_next$2]);
      this[_next$2] = this[_next$2][_next$2];
      return true;
    }
  }
  (_LinkedListIterator.new = function(list) {
    this[_current$1] = null;
    this[_list$0] = list;
    this[_modificationCount] = list[_modificationCount];
    this[_next$2] = list[_first];
    this[_visitedFirst] = false;
    ;
  }).prototype = _LinkedListIterator.prototype;
  dart.addTypeTests(_LinkedListIterator);
  _LinkedListIterator.prototype[_is__LinkedListIterator_default$] = true;
  dart.addTypeCaches(_LinkedListIterator);
  _LinkedListIterator[dart.implements] = () => [core.Iterator$(E)];
  dart.setMethodSignature(_LinkedListIterator, () => ({
    __proto__: dart.getMethods(_LinkedListIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(_LinkedListIterator, () => ({
    __proto__: dart.getGetters(_LinkedListIterator.__proto__),
    current: E
  }));
  dart.setLibraryUri(_LinkedListIterator, L9);
  dart.setFieldSignature(_LinkedListIterator, () => ({
    __proto__: dart.getFields(_LinkedListIterator.__proto__),
    [_list$0]: dart.finalFieldType(collection.LinkedList$(E)),
    [_modificationCount]: dart.finalFieldType(core.int),
    [_current$1]: dart.fieldType(E),
    [_next$2]: dart.fieldType(collection.LinkedListEntry$(E)),
    [_visitedFirst]: dart.fieldType(core.bool)
  }));
  return _LinkedListIterator;
});
collection._LinkedListIterator = collection._LinkedListIterator$();
dart.addTypeTests(collection._LinkedListIterator, _is__LinkedListIterator_default$);
const _is_LinkedListEntry_default$ = Symbol('_is_LinkedListEntry_default');
var _list$1 = dart.privateName(collection, "LinkedListEntry._list");
var _next$3 = dart.privateName(collection, "LinkedListEntry._next");
var _previous$3 = dart.privateName(collection, "LinkedListEntry._previous");
collection.LinkedListEntry$ = dart.generic(E => {
  var LinkedListOfEL = () => (LinkedListOfEL = dart.constFn(collection.LinkedList$(E)))();
  class LinkedListEntry extends core.Object {
    get [_list$0]() {
      return this[_list$1];
    }
    set [_list$0](value) {
      this[_list$1] = LinkedListOfEL().as(value);
    }
    get [_next$2]() {
      return this[_next$3];
    }
    set [_next$2](value) {
      this[_next$3] = E.as(value);
    }
    get [_previous$2]() {
      return this[_previous$3];
    }
    set [_previous$2](value) {
      this[_previous$3] = E.as(value);
    }
    get list() {
      return this[_list$0];
    }
    unlink() {
      this[_list$0][_unlink](E.as(this));
    }
    get next() {
      if (this[_list$0] == null || this[_list$0].first == this[_next$2]) return null;
      return this[_next$2];
    }
    get previous() {
      if (this[_list$0] == null || this === this[_list$0].first) return null;
      return this[_previous$2];
    }
    insertAfter(entry) {
      E.as(entry);
      this[_list$0][_insertBefore](this[_next$2], entry, {updateFirst: false});
    }
    insertBefore(entry) {
      E.as(entry);
      this[_list$0][_insertBefore](E.as(this), entry, {updateFirst: true});
    }
  }
  (LinkedListEntry.new = function() {
    this[_list$1] = null;
    this[_next$3] = null;
    this[_previous$3] = null;
    ;
  }).prototype = LinkedListEntry.prototype;
  dart.addTypeTests(LinkedListEntry);
  LinkedListEntry.prototype[_is_LinkedListEntry_default$] = true;
  dart.addTypeCaches(LinkedListEntry);
  dart.setMethodSignature(LinkedListEntry, () => ({
    __proto__: dart.getMethods(LinkedListEntry.__proto__),
    unlink: dart.fnType(dart.void, []),
    insertAfter: dart.fnType(dart.void, [core.Object]),
    insertBefore: dart.fnType(dart.void, [core.Object])
  }));
  dart.setGetterSignature(LinkedListEntry, () => ({
    __proto__: dart.getGetters(LinkedListEntry.__proto__),
    list: collection.LinkedList$(E),
    next: E,
    previous: E
  }));
  dart.setLibraryUri(LinkedListEntry, L9);
  dart.setFieldSignature(LinkedListEntry, () => ({
    __proto__: dart.getFields(LinkedListEntry.__proto__),
    [_list$0]: dart.fieldType(collection.LinkedList$(E)),
    [_next$2]: dart.fieldType(E),
    [_previous$2]: dart.fieldType(E)
  }));
  return LinkedListEntry;
});
collection.LinkedListEntry = collection.LinkedListEntry$();
dart.addTypeTests(collection.LinkedListEntry, _is_LinkedListEntry_default$);
const _is__MapBaseValueIterable_default = Symbol('_is__MapBaseValueIterable_default');
collection._MapBaseValueIterable$ = dart.generic((K, V) => {
  var _MapBaseValueIteratorOfKL$VL = () => (_MapBaseValueIteratorOfKL$VL = dart.constFn(collection._MapBaseValueIterator$(K, V)))();
  class _MapBaseValueIterable extends _internal.EfficientLengthIterable$(V) {
    get length() {
      return this[_map$4][$length];
    }
    get isEmpty() {
      return this[_map$4][$isEmpty];
    }
    get isNotEmpty() {
      return this[_map$4][$isNotEmpty];
    }
    get first() {
      return this[_map$4][$_get](this[_map$4][$keys][$first]);
    }
    get single() {
      return this[_map$4][$_get](this[_map$4][$keys][$single]);
    }
    get last() {
      return this[_map$4][$_get](this[_map$4][$keys][$last]);
    }
    get iterator() {
      return new (_MapBaseValueIteratorOfKL$VL()).new(this[_map$4]);
    }
  }
  (_MapBaseValueIterable.new = function(_map) {
    this[_map$4] = _map;
    _MapBaseValueIterable.__proto__.new.call(this);
    ;
  }).prototype = _MapBaseValueIterable.prototype;
  dart.addTypeTests(_MapBaseValueIterable);
  _MapBaseValueIterable.prototype[_is__MapBaseValueIterable_default] = true;
  dart.addTypeCaches(_MapBaseValueIterable);
  dart.setGetterSignature(_MapBaseValueIterable, () => ({
    __proto__: dart.getGetters(_MapBaseValueIterable.__proto__),
    iterator: core.Iterator$(V),
    [$iterator]: core.Iterator$(V)
  }));
  dart.setLibraryUri(_MapBaseValueIterable, L9);
  dart.setFieldSignature(_MapBaseValueIterable, () => ({
    __proto__: dart.getFields(_MapBaseValueIterable.__proto__),
    [_map$4]: dart.finalFieldType(core.Map$(K, V))
  }));
  dart.defineExtensionAccessors(_MapBaseValueIterable, [
    'length',
    'isEmpty',
    'isNotEmpty',
    'first',
    'single',
    'last',
    'iterator'
  ]);
  return _MapBaseValueIterable;
});
collection._MapBaseValueIterable = collection._MapBaseValueIterable$();
dart.addTypeTests(collection._MapBaseValueIterable, _is__MapBaseValueIterable_default);
var _keys = dart.privateName(collection, "_keys");
const _is__MapBaseValueIterator_default = Symbol('_is__MapBaseValueIterator_default');
collection._MapBaseValueIterator$ = dart.generic((K, V) => {
  class _MapBaseValueIterator extends core.Object {
    moveNext() {
      if (dart.test(this[_keys].moveNext())) {
        this[_current$1] = this[_map$4][$_get](this[_keys].current);
        return true;
      }
      this[_current$1] = null;
      return false;
    }
    get current() {
      return this[_current$1];
    }
  }
  (_MapBaseValueIterator.new = function(map) {
    this[_current$1] = null;
    this[_map$4] = map;
    this[_keys] = map[$keys][$iterator];
    ;
  }).prototype = _MapBaseValueIterator.prototype;
  dart.addTypeTests(_MapBaseValueIterator);
  _MapBaseValueIterator.prototype[_is__MapBaseValueIterator_default] = true;
  dart.addTypeCaches(_MapBaseValueIterator);
  _MapBaseValueIterator[dart.implements] = () => [core.Iterator$(V)];
  dart.setMethodSignature(_MapBaseValueIterator, () => ({
    __proto__: dart.getMethods(_MapBaseValueIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(_MapBaseValueIterator, () => ({
    __proto__: dart.getGetters(_MapBaseValueIterator.__proto__),
    current: V
  }));
  dart.setLibraryUri(_MapBaseValueIterator, L9);
  dart.setFieldSignature(_MapBaseValueIterator, () => ({
    __proto__: dart.getFields(_MapBaseValueIterator.__proto__),
    [_keys]: dart.finalFieldType(core.Iterator$(K)),
    [_map$4]: dart.finalFieldType(core.Map$(K, V)),
    [_current$1]: dart.fieldType(V)
  }));
  return _MapBaseValueIterator;
});
collection._MapBaseValueIterator = collection._MapBaseValueIterator$();
dart.addTypeTests(collection._MapBaseValueIterator, _is__MapBaseValueIterator_default);
const _is_MapView_default = Symbol('_is_MapView_default');
var _map$8 = dart.privateName(collection, "MapView._map");
collection.MapView$ = dart.generic((K, V) => {
  var MapOfKL$VL = () => (MapOfKL$VL = dart.constFn(core.Map$(K, V)))();
  var MapEntryOfKL$VL = () => (MapEntryOfKL$VL = dart.constFn(core.MapEntry$(K, V)))();
  var IterableOfMapEntryLOfKL$VL = () => (IterableOfMapEntryLOfKL$VL = dart.constFn(core.Iterable$(MapEntryOfKL$VL())))();
  var KLAndVLToLVL = () => (KLAndVLToLVL = dart.constFn(dart.fnType(V, [K, V])))();
  var VoidToLVL = () => (VoidToLVL = dart.constFn(dart.fnType(V, [])))();
  var VLToLVL = () => (VLToLVL = dart.constFn(dart.fnType(V, [V])))();
  class MapView extends core.Object {
    get [_map$4]() {
      return this[_map$8];
    }
    set [_map$4](value) {
      super[_map$4] = value;
    }
    cast(RK, RV) {
      return this[_map$4][$cast](RK, RV);
    }
    _get(key) {
      return this[_map$4][$_get](key);
    }
    _set(key, value$) {
      let value = value$;
      K.as(key);
      V.as(value);
      this[_map$4][$_set](key, value);
      return value$;
    }
    addAll(other) {
      MapOfKL$VL().as(other);
      this[_map$4][$addAll](other);
    }
    clear() {
      this[_map$4][$clear]();
    }
    putIfAbsent(key, ifAbsent) {
      K.as(key);
      VoidToLVL().as(ifAbsent);
      return this[_map$4][$putIfAbsent](key, ifAbsent);
    }
    containsKey(key) {
      return this[_map$4][$containsKey](key);
    }
    containsValue(value) {
      return this[_map$4][$containsValue](value);
    }
    forEach(action) {
      this[_map$4][$forEach](action);
    }
    get isEmpty() {
      return this[_map$4][$isEmpty];
    }
    get isNotEmpty() {
      return this[_map$4][$isNotEmpty];
    }
    get length() {
      return this[_map$4][$length];
    }
    get keys() {
      return this[_map$4][$keys];
    }
    remove(key) {
      return this[_map$4][$remove](key);
    }
    toString() {
      return dart.toString(this[_map$4]);
    }
    get values() {
      return this[_map$4][$values];
    }
    get entries() {
      return this[_map$4][$entries];
    }
    addEntries(entries) {
      IterableOfMapEntryLOfKL$VL().as(entries);
      this[_map$4][$addEntries](entries);
    }
    map(K2, V2, transform) {
      return this[_map$4][$map](K2, V2, transform);
    }
    update(key, update, opts) {
      K.as(key);
      VLToLVL().as(update);
      let ifAbsent = opts && 'ifAbsent' in opts ? opts.ifAbsent : null;
      VoidToLVL().as(ifAbsent);
      return this[_map$4][$update](key, update, {ifAbsent: ifAbsent});
    }
    updateAll(update) {
      KLAndVLToLVL().as(update);
      this[_map$4][$updateAll](update);
    }
    removeWhere(test) {
      this[_map$4][$removeWhere](test);
    }
  }
  (MapView.new = function(map) {
    this[_map$8] = map;
    ;
  }).prototype = MapView.prototype;
  MapView.prototype[dart.isMap] = true;
  dart.addTypeTests(MapView);
  MapView.prototype[_is_MapView_default] = true;
  dart.addTypeCaches(MapView);
  MapView[dart.implements] = () => [core.Map$(K, V)];
  dart.setMethodSignature(MapView, () => ({
    __proto__: dart.getMethods(MapView.__proto__),
    cast: dart.gFnType((RK, RV) => [core.Map$(RK, RV), []]),
    [$cast]: dart.gFnType((RK, RV) => [core.Map$(RK, RV), []]),
    _get: dart.fnType(V, [core.Object]),
    [$_get]: dart.fnType(V, [core.Object]),
    _set: dart.fnType(dart.void, [core.Object, core.Object]),
    [$_set]: dart.fnType(dart.void, [core.Object, core.Object]),
    addAll: dart.fnType(dart.void, [core.Object]),
    [$addAll]: dart.fnType(dart.void, [core.Object]),
    clear: dart.fnType(dart.void, []),
    [$clear]: dart.fnType(dart.void, []),
    putIfAbsent: dart.fnType(V, [core.Object, core.Object]),
    [$putIfAbsent]: dart.fnType(V, [core.Object, core.Object]),
    containsKey: dart.fnType(core.bool, [core.Object]),
    [$containsKey]: dart.fnType(core.bool, [core.Object]),
    containsValue: dart.fnType(core.bool, [core.Object]),
    [$containsValue]: dart.fnType(core.bool, [core.Object]),
    forEach: dart.fnType(dart.void, [dart.fnType(dart.void, [K, V])]),
    [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [K, V])]),
    remove: dart.fnType(V, [core.Object]),
    [$remove]: dart.fnType(V, [core.Object]),
    addEntries: dart.fnType(dart.void, [core.Object]),
    [$addEntries]: dart.fnType(dart.void, [core.Object]),
    map: dart.gFnType((K2, V2) => [core.Map$(K2, V2), [dart.fnType(core.MapEntry$(K2, V2), [K, V])]]),
    [$map]: dart.gFnType((K2, V2) => [core.Map$(K2, V2), [dart.fnType(core.MapEntry$(K2, V2), [K, V])]]),
    update: dart.fnType(V, [core.Object, core.Object], {ifAbsent: core.Object}, {}),
    [$update]: dart.fnType(V, [core.Object, core.Object], {ifAbsent: core.Object}, {}),
    updateAll: dart.fnType(dart.void, [core.Object]),
    [$updateAll]: dart.fnType(dart.void, [core.Object]),
    removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [K, V])]),
    [$removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [K, V])])
  }));
  dart.setGetterSignature(MapView, () => ({
    __proto__: dart.getGetters(MapView.__proto__),
    isEmpty: core.bool,
    [$isEmpty]: core.bool,
    isNotEmpty: core.bool,
    [$isNotEmpty]: core.bool,
    length: core.int,
    [$length]: core.int,
    keys: core.Iterable$(K),
    [$keys]: core.Iterable$(K),
    values: core.Iterable$(V),
    [$values]: core.Iterable$(V),
    entries: core.Iterable$(core.MapEntry$(K, V)),
    [$entries]: core.Iterable$(core.MapEntry$(K, V))
  }));
  dart.setLibraryUri(MapView, L9);
  dart.setFieldSignature(MapView, () => ({
    __proto__: dart.getFields(MapView.__proto__),
    [_map$4]: dart.finalFieldType(core.Map$(K, V))
  }));
  dart.defineExtensionMethods(MapView, [
    'cast',
    '_get',
    '_set',
    'addAll',
    'clear',
    'putIfAbsent',
    'containsKey',
    'containsValue',
    'forEach',
    'remove',
    'toString',
    'addEntries',
    'map',
    'update',
    'updateAll',
    'removeWhere'
  ]);
  dart.defineExtensionAccessors(MapView, [
    'isEmpty',
    'isNotEmpty',
    'length',
    'keys',
    'values',
    'entries'
  ]);
  return MapView;
});
collection.MapView = collection.MapView$();
dart.addTypeTests(collection.MapView, _is_MapView_default);
const _is_UnmodifiableMapView_default = Symbol('_is_UnmodifiableMapView_default');
collection.UnmodifiableMapView$ = dart.generic((K, V) => {
  const MapView__UnmodifiableMapMixin$36 = class MapView__UnmodifiableMapMixin extends collection.MapView$(K, V) {};
  (MapView__UnmodifiableMapMixin$36.new = function(map) {
    MapView__UnmodifiableMapMixin$36.__proto__.new.call(this, map);
  }).prototype = MapView__UnmodifiableMapMixin$36.prototype;
  dart.applyMixin(MapView__UnmodifiableMapMixin$36, collection._UnmodifiableMapMixin$(K, V));
  class UnmodifiableMapView extends MapView__UnmodifiableMapMixin$36 {
    cast(RK, RV) {
      return new (collection.UnmodifiableMapView$(RK, RV)).new(this[_map$4][$cast](RK, RV));
    }
  }
  (UnmodifiableMapView.new = function(map) {
    UnmodifiableMapView.__proto__.new.call(this, map);
    ;
  }).prototype = UnmodifiableMapView.prototype;
  dart.addTypeTests(UnmodifiableMapView);
  UnmodifiableMapView.prototype[_is_UnmodifiableMapView_default] = true;
  dart.addTypeCaches(UnmodifiableMapView);
  dart.setMethodSignature(UnmodifiableMapView, () => ({
    __proto__: dart.getMethods(UnmodifiableMapView.__proto__),
    cast: dart.gFnType((RK, RV) => [core.Map$(RK, RV), []]),
    [$cast]: dart.gFnType((RK, RV) => [core.Map$(RK, RV), []])
  }));
  dart.setLibraryUri(UnmodifiableMapView, L9);
  dart.defineExtensionMethods(UnmodifiableMapView, ['cast']);
  return UnmodifiableMapView;
});
collection.UnmodifiableMapView = collection.UnmodifiableMapView$();
dart.addTypeTests(collection.UnmodifiableMapView, _is_UnmodifiableMapView_default);
const _is_Queue_default = Symbol('_is_Queue_default');
collection.Queue$ = dart.generic(E => {
  class Queue extends core.Object {
    static castFrom(S, T, source) {
      return new (_internal.CastQueue$(S, T)).new(source);
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  }
  (Queue[dart.mixinNew] = function() {
  }).prototype = Queue.prototype;
  dart.addTypeTests(Queue);
  Queue.prototype[_is_Queue_default] = true;
  dart.addTypeCaches(Queue);
  Queue[dart.implements] = () => [_internal.EfficientLengthIterable$(E)];
  dart.setLibraryUri(Queue, L9);
  return Queue;
});
collection.Queue = collection.Queue$();
dart.addTypeTests(collection.Queue, _is_Queue_default);
var _previousLink = dart.privateName(collection, "_previousLink");
var _nextLink = dart.privateName(collection, "_nextLink");
var _link = dart.privateName(collection, "_link");
const _is__DoubleLink_default = Symbol('_is__DoubleLink_default');
var _previousLink$ = dart.privateName(collection, "_DoubleLink._previousLink");
var _nextLink$ = dart.privateName(collection, "_DoubleLink._nextLink");
collection._DoubleLink$ = dart.generic(Link => {
  class _DoubleLink extends core.Object {
    get [_previousLink]() {
      return this[_previousLink$];
    }
    set [_previousLink](value) {
      this[_previousLink$] = Link.as(value);
    }
    get [_nextLink]() {
      return this[_nextLink$];
    }
    set [_nextLink](value) {
      this[_nextLink$] = Link.as(value);
    }
    [_link](previous, next) {
      this[_nextLink] = next;
      this[_previousLink] = previous;
      if (previous != null) previous[_nextLink] = Link.as(this);
      if (next != null) next[_previousLink] = Link.as(this);
    }
    [_unlink]() {
      if (this[_previousLink] != null) this[_previousLink][_nextLink] = this[_nextLink];
      if (this[_nextLink] != null) this[_nextLink][_previousLink] = this[_previousLink];
      this[_nextLink] = null;
      this[_previousLink] = null;
    }
  }
  (_DoubleLink.new = function() {
    this[_previousLink$] = null;
    this[_nextLink$] = null;
    ;
  }).prototype = _DoubleLink.prototype;
  dart.addTypeTests(_DoubleLink);
  _DoubleLink.prototype[_is__DoubleLink_default] = true;
  dart.addTypeCaches(_DoubleLink);
  dart.setMethodSignature(_DoubleLink, () => ({
    __proto__: dart.getMethods(_DoubleLink.__proto__),
    [_link]: dart.fnType(dart.void, [Link, Link]),
    [_unlink]: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(_DoubleLink, L9);
  dart.setFieldSignature(_DoubleLink, () => ({
    __proto__: dart.getFields(_DoubleLink.__proto__),
    [_previousLink]: dart.fieldType(Link),
    [_nextLink]: dart.fieldType(Link)
  }));
  return _DoubleLink;
});
collection._DoubleLink = collection._DoubleLink$();
dart.addTypeTests(collection._DoubleLink, _is__DoubleLink_default);
const _is_DoubleLinkedQueueEntry_default = Symbol('_is_DoubleLinkedQueueEntry_default');
var element$ = dart.privateName(collection, "DoubleLinkedQueueEntry.element");
collection.DoubleLinkedQueueEntry$ = dart.generic(E => {
  var DoubleLinkedQueueEntryOfEL = () => (DoubleLinkedQueueEntryOfEL = dart.constFn(collection.DoubleLinkedQueueEntry$(E)))();
  class DoubleLinkedQueueEntry extends collection._DoubleLink {
    get element() {
      return this[element$];
    }
    set element(value) {
      this[element$] = E.as(value);
    }
    append(e) {
      E.as(e);
      new (DoubleLinkedQueueEntryOfEL()).new(e)[_link](this, this[_nextLink]);
    }
    prepend(e) {
      E.as(e);
      new (DoubleLinkedQueueEntryOfEL()).new(e)[_link](this[_previousLink], this);
    }
    remove() {
      this[_unlink]();
      return this.element;
    }
    previousEntry() {
      return this[_previousLink];
    }
    nextEntry() {
      return this[_nextLink];
    }
  }
  (DoubleLinkedQueueEntry.new = function(element) {
    this[element$] = element;
    DoubleLinkedQueueEntry.__proto__.new.call(this);
    ;
  }).prototype = DoubleLinkedQueueEntry.prototype;
  dart.addTypeTests(DoubleLinkedQueueEntry);
  DoubleLinkedQueueEntry.prototype[_is_DoubleLinkedQueueEntry_default] = true;
  dart.addTypeCaches(DoubleLinkedQueueEntry);
  dart.setMethodSignature(DoubleLinkedQueueEntry, () => ({
    __proto__: dart.getMethods(DoubleLinkedQueueEntry.__proto__),
    append: dart.fnType(dart.void, [core.Object]),
    prepend: dart.fnType(dart.void, [core.Object]),
    remove: dart.fnType(E, []),
    previousEntry: dart.fnType(collection.DoubleLinkedQueueEntry$(E), []),
    nextEntry: dart.fnType(collection.DoubleLinkedQueueEntry$(E), [])
  }));
  dart.setLibraryUri(DoubleLinkedQueueEntry, L9);
  dart.setFieldSignature(DoubleLinkedQueueEntry, () => ({
    __proto__: dart.getFields(DoubleLinkedQueueEntry.__proto__),
    element: dart.fieldType(E)
  }));
  return DoubleLinkedQueueEntry;
}, E => {
  dart.setBaseClass(collection.DoubleLinkedQueueEntry$(E), collection._DoubleLink$(collection.DoubleLinkedQueueEntry$(E)));
});
collection.DoubleLinkedQueueEntry = collection.DoubleLinkedQueueEntry$();
dart.addTypeTests(collection.DoubleLinkedQueueEntry, _is_DoubleLinkedQueueEntry_default);
var _queue$ = dart.privateName(collection, "_queue");
var _append = dart.privateName(collection, "_append");
var _prepend = dart.privateName(collection, "_prepend");
var _element = dart.privateName(collection, "_element");
var _asNonSentinelEntry = dart.privateName(collection, "_asNonSentinelEntry");
const _is__DoubleLinkedQueueEntry_default = Symbol('_is__DoubleLinkedQueueEntry_default');
collection._DoubleLinkedQueueEntry$ = dart.generic(E => {
  var _DoubleLinkedQueueElementOfEL = () => (_DoubleLinkedQueueElementOfEL = dart.constFn(collection._DoubleLinkedQueueElement$(E)))();
  var _DoubleLinkedQueueEntryOfEL = () => (_DoubleLinkedQueueEntryOfEL = dart.constFn(collection._DoubleLinkedQueueEntry$(E)))();
  class _DoubleLinkedQueueEntry extends collection.DoubleLinkedQueueEntry$(E) {
    [_append](e) {
      E.as(e);
      new (_DoubleLinkedQueueElementOfEL()).new(e, this[_queue$])[_link](this, this[_nextLink]);
    }
    [_prepend](e) {
      E.as(e);
      new (_DoubleLinkedQueueElementOfEL()).new(e, this[_queue$])[_link](this[_previousLink], this);
    }
    get [_element]() {
      return this.element;
    }
    nextEntry() {
      let entry = _DoubleLinkedQueueEntryOfEL().as(this[_nextLink]);
      return entry[_asNonSentinelEntry]();
    }
    previousEntry() {
      let entry = _DoubleLinkedQueueEntryOfEL().as(this[_previousLink]);
      return entry[_asNonSentinelEntry]();
    }
  }
  (_DoubleLinkedQueueEntry.new = function(element, _queue) {
    this[_queue$] = _queue;
    _DoubleLinkedQueueEntry.__proto__.new.call(this, element);
    ;
  }).prototype = _DoubleLinkedQueueEntry.prototype;
  dart.addTypeTests(_DoubleLinkedQueueEntry);
  _DoubleLinkedQueueEntry.prototype[_is__DoubleLinkedQueueEntry_default] = true;
  dart.addTypeCaches(_DoubleLinkedQueueEntry);
  dart.setMethodSignature(_DoubleLinkedQueueEntry, () => ({
    __proto__: dart.getMethods(_DoubleLinkedQueueEntry.__proto__),
    [_append]: dart.fnType(dart.void, [core.Object]),
    [_prepend]: dart.fnType(dart.void, [core.Object])
  }));
  dart.setGetterSignature(_DoubleLinkedQueueEntry, () => ({
    __proto__: dart.getGetters(_DoubleLinkedQueueEntry.__proto__),
    [_element]: E
  }));
  dart.setLibraryUri(_DoubleLinkedQueueEntry, L9);
  dart.setFieldSignature(_DoubleLinkedQueueEntry, () => ({
    __proto__: dart.getFields(_DoubleLinkedQueueEntry.__proto__),
    [_queue$]: dart.fieldType(collection.DoubleLinkedQueue$(E))
  }));
  return _DoubleLinkedQueueEntry;
});
collection._DoubleLinkedQueueEntry = collection._DoubleLinkedQueueEntry$();
dart.addTypeTests(collection._DoubleLinkedQueueEntry, _is__DoubleLinkedQueueEntry_default);
var _elementCount = dart.privateName(collection, "_elementCount");
var _remove = dart.privateName(collection, "_remove");
const _is__DoubleLinkedQueueElement_default = Symbol('_is__DoubleLinkedQueueElement_default');
collection._DoubleLinkedQueueElement$ = dart.generic(E => {
  class _DoubleLinkedQueueElement extends collection._DoubleLinkedQueueEntry$(E) {
    append(e) {
      let t65;
      E.as(e);
      this[_append](e);
      if (this[_queue$] != null) {
        t65 = this[_queue$];
        t65[_elementCount] = dart.notNull(t65[_elementCount]) + 1;
      }
    }
    prepend(e) {
      let t65;
      E.as(e);
      this[_prepend](e);
      if (this[_queue$] != null) {
        t65 = this[_queue$];
        t65[_elementCount] = dart.notNull(t65[_elementCount]) + 1;
      }
    }
    [_remove]() {
      this[_queue$] = null;
      this[_unlink]();
      return this.element;
    }
    remove() {
      let t65;
      if (this[_queue$] != null) {
        t65 = this[_queue$];
        t65[_elementCount] = dart.notNull(t65[_elementCount]) - 1;
      }
      return this[_remove]();
    }
    [_asNonSentinelEntry]() {
      return this;
    }
  }
  (_DoubleLinkedQueueElement.new = function(element, queue) {
    _DoubleLinkedQueueElement.__proto__.new.call(this, element, queue);
    ;
  }).prototype = _DoubleLinkedQueueElement.prototype;
  dart.addTypeTests(_DoubleLinkedQueueElement);
  _DoubleLinkedQueueElement.prototype[_is__DoubleLinkedQueueElement_default] = true;
  dart.addTypeCaches(_DoubleLinkedQueueElement);
  dart.setMethodSignature(_DoubleLinkedQueueElement, () => ({
    __proto__: dart.getMethods(_DoubleLinkedQueueElement.__proto__),
    [_remove]: dart.fnType(E, []),
    [_asNonSentinelEntry]: dart.fnType(collection._DoubleLinkedQueueElement$(E), [])
  }));
  dart.setLibraryUri(_DoubleLinkedQueueElement, L9);
  return _DoubleLinkedQueueElement;
});
collection._DoubleLinkedQueueElement = collection._DoubleLinkedQueueElement$();
dart.addTypeTests(collection._DoubleLinkedQueueElement, _is__DoubleLinkedQueueElement_default);
const _is__DoubleLinkedQueueSentinel_default = Symbol('_is__DoubleLinkedQueueSentinel_default');
collection._DoubleLinkedQueueSentinel$ = dart.generic(E => {
  class _DoubleLinkedQueueSentinel extends collection._DoubleLinkedQueueEntry$(E) {
    [_asNonSentinelEntry]() {
      return null;
    }
    [_remove]() {
      dart.throw(_internal.IterableElementError.noElement());
    }
    get [_element]() {
      dart.throw(_internal.IterableElementError.noElement());
    }
  }
  (_DoubleLinkedQueueSentinel.new = function(queue) {
    _DoubleLinkedQueueSentinel.__proto__.new.call(this, null, queue);
    this[_previousLink] = this;
    this[_nextLink] = this;
  }).prototype = _DoubleLinkedQueueSentinel.prototype;
  dart.addTypeTests(_DoubleLinkedQueueSentinel);
  _DoubleLinkedQueueSentinel.prototype[_is__DoubleLinkedQueueSentinel_default] = true;
  dart.addTypeCaches(_DoubleLinkedQueueSentinel);
  dart.setMethodSignature(_DoubleLinkedQueueSentinel, () => ({
    __proto__: dart.getMethods(_DoubleLinkedQueueSentinel.__proto__),
    [_asNonSentinelEntry]: dart.fnType(collection.DoubleLinkedQueueEntry$(E), []),
    [_remove]: dart.fnType(E, [])
  }));
  dart.setLibraryUri(_DoubleLinkedQueueSentinel, L9);
  return _DoubleLinkedQueueSentinel;
});
collection._DoubleLinkedQueueSentinel = collection._DoubleLinkedQueueSentinel$();
dart.addTypeTests(collection._DoubleLinkedQueueSentinel, _is__DoubleLinkedQueueSentinel_default);
var _sentinel = dart.privateName(collection, "_sentinel");
const _is_DoubleLinkedQueue_default = Symbol('_is_DoubleLinkedQueue_default');
collection.DoubleLinkedQueue$ = dart.generic(E => {
  var _DoubleLinkedQueueSentinelOfEL = () => (_DoubleLinkedQueueSentinelOfEL = dart.constFn(collection._DoubleLinkedQueueSentinel$(E)))();
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  var _DoubleLinkedQueueEntryOfEL = () => (_DoubleLinkedQueueEntryOfEL = dart.constFn(collection._DoubleLinkedQueueEntry$(E)))();
  var _DoubleLinkedQueueElementOfEL = () => (_DoubleLinkedQueueElementOfEL = dart.constFn(collection._DoubleLinkedQueueElement$(E)))();
  var _DoubleLinkedQueueIteratorOfEL = () => (_DoubleLinkedQueueIteratorOfEL = dart.constFn(collection._DoubleLinkedQueueIterator$(E)))();
  class DoubleLinkedQueue extends core.Iterable$(E) {
    static from(elements) {
      let list = new (collection.DoubleLinkedQueue$(E)).new();
      for (let e of elements) {
        list.addLast(E.as(e));
      }
      return collection.DoubleLinkedQueue$(E).as(list);
    }
    static of(elements) {
      let t65;
      t65 = new (collection.DoubleLinkedQueue$(E)).new();
      t65.addAll(elements);
      return t65;
    }
    cast(R) {
      return collection.Queue.castFrom(E, R, this);
    }
    get length() {
      return this[_elementCount];
    }
    addLast(value) {
      E.as(value);
      this[_sentinel][_prepend](value);
      this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
    }
    addFirst(value) {
      E.as(value);
      this[_sentinel][_append](value);
      this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
    }
    add(value) {
      E.as(value);
      this[_sentinel][_prepend](value);
      this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
    }
    addAll(iterable) {
      IterableOfEL().as(iterable);
      for (let value of iterable) {
        this[_sentinel][_prepend](value);
        this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
      }
    }
    removeLast() {
      let lastEntry = _DoubleLinkedQueueEntryOfEL().as(this[_sentinel][_previousLink]);
      let result = lastEntry[_remove]();
      this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
      return result;
    }
    removeFirst() {
      let firstEntry = _DoubleLinkedQueueEntryOfEL().as(this[_sentinel][_nextLink]);
      let result = firstEntry[_remove]();
      this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
      return result;
    }
    remove(o) {
      let entry = _DoubleLinkedQueueEntryOfEL().as(this[_sentinel][_nextLink]);
      while (entry != this[_sentinel]) {
        let equals = dart.equals(entry[_element], o);
        if (this !== entry[_queue$]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
        if (equals) {
          entry[_remove]();
          this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
          return true;
        }
        entry = _DoubleLinkedQueueEntryOfEL().as(entry[_nextLink]);
      }
      return false;
    }
    [_filter](test, removeMatching) {
      let entry = _DoubleLinkedQueueEntryOfEL().as(this[_sentinel][_nextLink]);
      while (entry != this[_sentinel]) {
        let matches = test(entry[_element]);
        if (this !== entry[_queue$]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
        let next = _DoubleLinkedQueueEntryOfEL().as(entry[_nextLink]);
        if (removeMatching == matches) {
          entry[_remove]();
          this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
        }
        entry = next;
      }
    }
    removeWhere(test) {
      this[_filter](test, true);
    }
    retainWhere(test) {
      this[_filter](test, false);
    }
    get first() {
      let firstEntry = _DoubleLinkedQueueEntryOfEL().as(this[_sentinel][_nextLink]);
      return firstEntry[_element];
    }
    get last() {
      let lastEntry = _DoubleLinkedQueueEntryOfEL().as(this[_sentinel][_previousLink]);
      return lastEntry[_element];
    }
    get single() {
      if (this[_sentinel][_nextLink] == this[_sentinel][_previousLink]) {
        let entry = _DoubleLinkedQueueEntryOfEL().as(this[_sentinel][_nextLink]);
        return entry[_element];
      }
      dart.throw(_internal.IterableElementError.tooMany());
    }
    firstEntry() {
      return this[_sentinel].nextEntry();
    }
    lastEntry() {
      return this[_sentinel].previousEntry();
    }
    get isEmpty() {
      return this[_sentinel][_nextLink] == this[_sentinel];
    }
    clear() {
      this[_sentinel][_nextLink] = this[_sentinel];
      this[_sentinel][_previousLink] = this[_sentinel];
      this[_elementCount] = 0;
    }
    forEachEntry(action) {
      let entry = _DoubleLinkedQueueEntryOfEL().as(this[_sentinel][_nextLink]);
      while (entry != this[_sentinel]) {
        let element = _DoubleLinkedQueueElementOfEL().as(entry);
        let next = _DoubleLinkedQueueEntryOfEL().as(element[_nextLink]);
        action(element);
        if (this === entry[_queue$]) {
          next = _DoubleLinkedQueueEntryOfEL().as(entry[_nextLink]);
        } else if (this !== next[_queue$]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
        entry = next;
      }
    }
    get iterator() {
      return new (_DoubleLinkedQueueIteratorOfEL()).new(this[_sentinel]);
    }
    toString() {
      return collection.IterableBase.iterableToFullString(this, "{", "}");
    }
  }
  (DoubleLinkedQueue.new = function() {
    this[_sentinel] = null;
    this[_elementCount] = 0;
    DoubleLinkedQueue.__proto__.new.call(this);
    this[_sentinel] = new (_DoubleLinkedQueueSentinelOfEL()).new(this);
  }).prototype = DoubleLinkedQueue.prototype;
  dart.addTypeTests(DoubleLinkedQueue);
  DoubleLinkedQueue.prototype[_is_DoubleLinkedQueue_default] = true;
  dart.addTypeCaches(DoubleLinkedQueue);
  DoubleLinkedQueue[dart.implements] = () => [collection.Queue$(E)];
  dart.setMethodSignature(DoubleLinkedQueue, () => ({
    __proto__: dart.getMethods(DoubleLinkedQueue.__proto__),
    cast: dart.gFnType(R => [collection.Queue$(R), []]),
    [$cast]: dart.gFnType(R => [collection.Queue$(R), []]),
    addLast: dart.fnType(dart.void, [core.Object]),
    addFirst: dart.fnType(dart.void, [core.Object]),
    add: dart.fnType(dart.void, [core.Object]),
    addAll: dart.fnType(dart.void, [core.Object]),
    removeLast: dart.fnType(E, []),
    removeFirst: dart.fnType(E, []),
    remove: dart.fnType(core.bool, [core.Object]),
    [_filter]: dart.fnType(dart.void, [dart.fnType(core.bool, [E]), core.bool]),
    removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    firstEntry: dart.fnType(collection.DoubleLinkedQueueEntry$(E), []),
    lastEntry: dart.fnType(collection.DoubleLinkedQueueEntry$(E), []),
    clear: dart.fnType(dart.void, []),
    forEachEntry: dart.fnType(dart.void, [dart.fnType(dart.void, [collection.DoubleLinkedQueueEntry$(E)])])
  }));
  dart.setGetterSignature(DoubleLinkedQueue, () => ({
    __proto__: dart.getGetters(DoubleLinkedQueue.__proto__),
    iterator: collection._DoubleLinkedQueueIterator$(E),
    [$iterator]: collection._DoubleLinkedQueueIterator$(E)
  }));
  dart.setLibraryUri(DoubleLinkedQueue, L9);
  dart.setFieldSignature(DoubleLinkedQueue, () => ({
    __proto__: dart.getFields(DoubleLinkedQueue.__proto__),
    [_sentinel]: dart.fieldType(collection._DoubleLinkedQueueSentinel$(E)),
    [_elementCount]: dart.fieldType(core.int)
  }));
  dart.defineExtensionMethods(DoubleLinkedQueue, ['cast', 'toString']);
  dart.defineExtensionAccessors(DoubleLinkedQueue, [
    'length',
    'first',
    'last',
    'single',
    'isEmpty',
    'iterator'
  ]);
  return DoubleLinkedQueue;
});
collection.DoubleLinkedQueue = collection.DoubleLinkedQueue$();
dart.addTypeTests(collection.DoubleLinkedQueue, _is_DoubleLinkedQueue_default);
var _nextEntry = dart.privateName(collection, "_nextEntry");
const _is__DoubleLinkedQueueIterator_default = Symbol('_is__DoubleLinkedQueueIterator_default');
collection._DoubleLinkedQueueIterator$ = dart.generic(E => {
  var _DoubleLinkedQueueEntryOfEL = () => (_DoubleLinkedQueueEntryOfEL = dart.constFn(collection._DoubleLinkedQueueEntry$(E)))();
  var _DoubleLinkedQueueElementOfEL = () => (_DoubleLinkedQueueElementOfEL = dart.constFn(collection._DoubleLinkedQueueElement$(E)))();
  class _DoubleLinkedQueueIterator extends core.Object {
    moveNext() {
      if (this[_nextEntry] == this[_sentinel]) {
        this[_current$1] = null;
        this[_nextEntry] = null;
        this[_sentinel] = null;
        return false;
      }
      let elementEntry = _DoubleLinkedQueueElementOfEL().as(this[_nextEntry]);
      if (this[_sentinel][_queue$] != elementEntry[_queue$]) {
        dart.throw(new core.ConcurrentModificationError.new(this[_sentinel][_queue$]));
      }
      this[_current$1] = elementEntry[_element];
      this[_nextEntry] = _DoubleLinkedQueueEntryOfEL().as(elementEntry[_nextLink]);
      return true;
    }
    get current() {
      return this[_current$1];
    }
  }
  (_DoubleLinkedQueueIterator.new = function(sentinel) {
    this[_current$1] = null;
    this[_sentinel] = sentinel;
    this[_nextEntry] = _DoubleLinkedQueueEntryOfEL().as(sentinel[_nextLink]);
    ;
  }).prototype = _DoubleLinkedQueueIterator.prototype;
  dart.addTypeTests(_DoubleLinkedQueueIterator);
  _DoubleLinkedQueueIterator.prototype[_is__DoubleLinkedQueueIterator_default] = true;
  dart.addTypeCaches(_DoubleLinkedQueueIterator);
  _DoubleLinkedQueueIterator[dart.implements] = () => [core.Iterator$(E)];
  dart.setMethodSignature(_DoubleLinkedQueueIterator, () => ({
    __proto__: dart.getMethods(_DoubleLinkedQueueIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(_DoubleLinkedQueueIterator, () => ({
    __proto__: dart.getGetters(_DoubleLinkedQueueIterator.__proto__),
    current: E
  }));
  dart.setLibraryUri(_DoubleLinkedQueueIterator, L9);
  dart.setFieldSignature(_DoubleLinkedQueueIterator, () => ({
    __proto__: dart.getFields(_DoubleLinkedQueueIterator.__proto__),
    [_sentinel]: dart.fieldType(collection._DoubleLinkedQueueSentinel$(E)),
    [_nextEntry]: dart.fieldType(collection._DoubleLinkedQueueEntry$(E)),
    [_current$1]: dart.fieldType(E)
  }));
  return _DoubleLinkedQueueIterator;
});
collection._DoubleLinkedQueueIterator = collection._DoubleLinkedQueueIterator$();
dart.addTypeTests(collection._DoubleLinkedQueueIterator, _is__DoubleLinkedQueueIterator_default);
var _table = dart.privateName(collection, "_table");
var _head = dart.privateName(collection, "_head");
var _tail = dart.privateName(collection, "_tail");
var _checkModification = dart.privateName(collection, "_checkModification");
var _writeToList = dart.privateName(collection, "_writeToList");
var _add$ = dart.privateName(collection, "_add");
var _preGrow = dart.privateName(collection, "_preGrow");
var _filterWhere = dart.privateName(collection, "_filterWhere");
var _grow = dart.privateName(collection, "_grow");
const _is_ListQueue_default = Symbol('_is_ListQueue_default');
collection.ListQueue$ = dart.generic(E => {
  var ListOfEL = () => (ListOfEL = dart.constFn(core.List$(E)))();
  var _ListQueueIteratorOfEL = () => (_ListQueueIteratorOfEL = dart.constFn(collection._ListQueueIterator$(E)))();
  var JSArrayOfEL = () => (JSArrayOfEL = dart.constFn(_interceptors.JSArray$(E)))();
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  class ListQueue extends _internal.ListIterable$(E) {
    static from(elements) {
      if (core.List.is(elements)) {
        let length = elements[$length];
        let queue = new (collection.ListQueue$(E)).new(dart.notNull(length) + 1);
        if (!(dart.notNull(queue[_table][$length]) > dart.notNull(length))) dart.assertFailed(null, L37, 555, 14, "queue._table.length > length");
        for (let i = 0; i < dart.notNull(length); i = i + 1) {
          queue[_table][$_set](i, E.as(elements[$_get](i)));
        }
        queue[_tail] = length;
        return queue;
      } else {
        let capacity = 8;
        if (_internal.EfficientLengthIterable.is(elements)) {
          capacity = elements[$length];
        }
        let result = new (collection.ListQueue$(E)).new(capacity);
        for (let element of elements) {
          result.addLast(E.as(element));
        }
        return result;
      }
    }
    static of(elements) {
      let t65;
      t65 = new (collection.ListQueue$(E)).new();
      t65.addAll(elements);
      return t65;
    }
    cast(R) {
      return collection.Queue.castFrom(E, R, this);
    }
    get iterator() {
      return new (_ListQueueIteratorOfEL()).new(this);
    }
    forEach(f) {
      let modificationCount = this[_modificationCount];
      for (let i = this[_head]; i != this[_tail]; i = (dart.notNull(i) + 1 & dart.notNull(this[_table][$length]) - 1) >>> 0) {
        f(this[_table][$_get](i));
        this[_checkModification](modificationCount);
      }
    }
    get isEmpty() {
      return this[_head] == this[_tail];
    }
    get length() {
      return (dart.notNull(this[_tail]) - dart.notNull(this[_head]) & dart.notNull(this[_table][$length]) - 1) >>> 0;
    }
    get first() {
      if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
      return this[_table][$_get](this[_head]);
    }
    get last() {
      if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
      return this[_table][$_get]((dart.notNull(this[_tail]) - 1 & dart.notNull(this[_table][$length]) - 1) >>> 0);
    }
    get single() {
      if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
      if (dart.notNull(this.length) > 1) dart.throw(_internal.IterableElementError.tooMany());
      return this[_table][$_get](this[_head]);
    }
    elementAt(index) {
      core.RangeError.checkValidIndex(index, this);
      return this[_table][$_get]((dart.notNull(this[_head]) + dart.notNull(index) & dart.notNull(this[_table][$length]) - 1) >>> 0);
    }
    toList(opts) {
      let t65;
      let growable = opts && 'growable' in opts ? opts.growable : true;
      let list = null;
      if (dart.test(growable)) {
        list = (t65 = JSArrayOfEL().of([]), t65[$length] = this.length, t65);
      } else {
        list = ListOfEL().new(this.length);
      }
      this[_writeToList](list);
      return list;
    }
    add(value) {
      E.as(value);
      this[_add$](value);
    }
    addAll(elements) {
      IterableOfEL().as(elements);
      if (ListOfEL().is(elements)) {
        let list = elements;
        let addCount = list[$length];
        let length = this.length;
        if (dart.notNull(length) + dart.notNull(addCount) >= dart.notNull(this[_table][$length])) {
          this[_preGrow](dart.notNull(length) + dart.notNull(addCount));
          this[_table][$setRange](length, dart.notNull(length) + dart.notNull(addCount), list, 0);
          this[_tail] = dart.notNull(this[_tail]) + dart.notNull(addCount);
        } else {
          let endSpace = dart.notNull(this[_table][$length]) - dart.notNull(this[_tail]);
          if (dart.notNull(addCount) < endSpace) {
            this[_table][$setRange](this[_tail], dart.notNull(this[_tail]) + dart.notNull(addCount), list, 0);
            this[_tail] = dart.notNull(this[_tail]) + dart.notNull(addCount);
          } else {
            let preSpace = dart.notNull(addCount) - endSpace;
            this[_table][$setRange](this[_tail], dart.notNull(this[_tail]) + endSpace, list, 0);
            this[_table][$setRange](0, preSpace, list, endSpace);
            this[_tail] = preSpace;
          }
        }
        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
      } else {
        for (let element of elements)
          this[_add$](element);
      }
    }
    remove(value) {
      for (let i = this[_head]; i != this[_tail]; i = (dart.notNull(i) + 1 & dart.notNull(this[_table][$length]) - 1) >>> 0) {
        let element = this[_table][$_get](i);
        if (dart.equals(element, value)) {
          this[_remove](i);
          this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
          return true;
        }
      }
      return false;
    }
    [_filterWhere](test, removeMatching) {
      let modificationCount = this[_modificationCount];
      let i = this[_head];
      while (i != this[_tail]) {
        let element = this[_table][$_get](i);
        let remove = removeMatching == test(element);
        this[_checkModification](modificationCount);
        if (remove) {
          i = this[_remove](i);
          modificationCount = this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
        } else {
          i = (dart.notNull(i) + 1 & dart.notNull(this[_table][$length]) - 1) >>> 0;
        }
      }
    }
    removeWhere(test) {
      this[_filterWhere](test, true);
    }
    retainWhere(test) {
      this[_filterWhere](test, false);
    }
    clear() {
      if (this[_head] != this[_tail]) {
        for (let i = this[_head]; i != this[_tail]; i = (dart.notNull(i) + 1 & dart.notNull(this[_table][$length]) - 1) >>> 0) {
          this[_table][$_set](i, null);
        }
        this[_head] = this[_tail] = 0;
        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
      }
    }
    toString() {
      return collection.IterableBase.iterableToFullString(this, "{", "}");
    }
    addLast(value) {
      E.as(value);
      this[_add$](value);
    }
    addFirst(value) {
      E.as(value);
      this[_head] = (dart.notNull(this[_head]) - 1 & dart.notNull(this[_table][$length]) - 1) >>> 0;
      this[_table][$_set](this[_head], value);
      if (this[_head] == this[_tail]) this[_grow]();
      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
    }
    removeFirst() {
      if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
      let result = this[_table][$_get](this[_head]);
      this[_table][$_set](this[_head], null);
      this[_head] = (dart.notNull(this[_head]) + 1 & dart.notNull(this[_table][$length]) - 1) >>> 0;
      return result;
    }
    removeLast() {
      if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
      this[_tail] = (dart.notNull(this[_tail]) - 1 & dart.notNull(this[_table][$length]) - 1) >>> 0;
      let result = this[_table][$_get](this[_tail]);
      this[_table][$_set](this[_tail], null);
      return result;
    }
    static _isPowerOf2(number) {
      return (dart.notNull(number) & dart.notNull(number) - 1) === 0;
    }
    static _nextPowerOf2(number) {
      if (!(dart.notNull(number) > 0)) dart.assertFailed(null, L37, 765, 12, "number > 0");
      number = (dart.notNull(number) << 1 >>> 0) - 1;
      for (;;) {
        let nextNumber = (dart.notNull(number) & dart.notNull(number) - 1) >>> 0;
        if (nextNumber === 0) return number;
        number = nextNumber;
      }
    }
    [_checkModification](expectedModificationCount) {
      if (expectedModificationCount != this[_modificationCount]) {
        dart.throw(new core.ConcurrentModificationError.new(this));
      }
    }
    [_add$](element) {
      this[_table][$_set](this[_tail], element);
      this[_tail] = (dart.notNull(this[_tail]) + 1 & dart.notNull(this[_table][$length]) - 1) >>> 0;
      if (this[_head] == this[_tail]) this[_grow]();
      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
    }
    [_remove](offset) {
      let mask = dart.notNull(this[_table][$length]) - 1;
      let startDistance = (dart.notNull(offset) - dart.notNull(this[_head]) & mask) >>> 0;
      let endDistance = (dart.notNull(this[_tail]) - dart.notNull(offset) & mask) >>> 0;
      if (startDistance < endDistance) {
        let i = offset;
        while (i != this[_head]) {
          let prevOffset = (dart.notNull(i) - 1 & mask) >>> 0;
          this[_table][$_set](i, this[_table][$_get](prevOffset));
          i = prevOffset;
        }
        this[_table][$_set](this[_head], null);
        this[_head] = (dart.notNull(this[_head]) + 1 & mask) >>> 0;
        return (dart.notNull(offset) + 1 & mask) >>> 0;
      } else {
        this[_tail] = (dart.notNull(this[_tail]) - 1 & mask) >>> 0;
        let i = offset;
        while (i != this[_tail]) {
          let nextOffset = (dart.notNull(i) + 1 & mask) >>> 0;
          this[_table][$_set](i, this[_table][$_get](nextOffset));
          i = nextOffset;
        }
        this[_table][$_set](this[_tail], null);
        return offset;
      }
    }
    [_grow]() {
      let newTable = ListOfEL().new(dart.notNull(this[_table][$length]) * 2);
      let split = dart.notNull(this[_table][$length]) - dart.notNull(this[_head]);
      newTable[$setRange](0, split, this[_table], this[_head]);
      newTable[$setRange](split, split + dart.notNull(this[_head]), this[_table], 0);
      this[_head] = 0;
      this[_tail] = this[_table][$length];
      this[_table] = newTable;
    }
    [_writeToList](target) {
      if (!(dart.notNull(target[$length]) >= dart.notNull(this.length))) dart.assertFailed(null, L37, 837, 12, "target.length >= length");
      if (dart.notNull(this[_head]) <= dart.notNull(this[_tail])) {
        let length = dart.notNull(this[_tail]) - dart.notNull(this[_head]);
        target[$setRange](0, length, this[_table], this[_head]);
        return length;
      } else {
        let firstPartSize = dart.notNull(this[_table][$length]) - dart.notNull(this[_head]);
        target[$setRange](0, firstPartSize, this[_table], this[_head]);
        target[$setRange](firstPartSize, firstPartSize + dart.notNull(this[_tail]), this[_table], 0);
        return dart.notNull(this[_tail]) + firstPartSize;
      }
    }
    [_preGrow](newElementCount) {
      if (!(dart.notNull(newElementCount) >= dart.notNull(this.length))) dart.assertFailed(null, L37, 852, 12, "newElementCount >= length");
      newElementCount = dart.notNull(newElementCount) + newElementCount[$rightShift](1);
      let newCapacity = collection.ListQueue._nextPowerOf2(newElementCount);
      let newTable = ListOfEL().new(newCapacity);
      this[_tail] = this[_writeToList](newTable);
      this[_table] = newTable;
      this[_head] = 0;
    }
  }
  (ListQueue.new = function(initialCapacity = null) {
    this[_table] = null;
    this[_modificationCount] = 0;
    this[_head] = 0;
    this[_tail] = 0;
    ListQueue.__proto__.new.call(this);
    if (initialCapacity == null || dart.notNull(initialCapacity) < 8) {
      initialCapacity = 8;
    } else if (!dart.test(collection.ListQueue._isPowerOf2(initialCapacity))) {
      initialCapacity = collection.ListQueue._nextPowerOf2(initialCapacity);
    }
    if (!dart.test(collection.ListQueue._isPowerOf2(initialCapacity))) dart.assertFailed(null, L37, 534, 12, "_isPowerOf2(initialCapacity)");
    this[_table] = ListOfEL().new(initialCapacity);
  }).prototype = ListQueue.prototype;
  dart.addTypeTests(ListQueue);
  ListQueue.prototype[_is_ListQueue_default] = true;
  dart.addTypeCaches(ListQueue);
  ListQueue[dart.implements] = () => [collection.Queue$(E)];
  dart.setMethodSignature(ListQueue, () => ({
    __proto__: dart.getMethods(ListQueue.__proto__),
    cast: dart.gFnType(R => [collection.Queue$(R), []]),
    [$cast]: dart.gFnType(R => [collection.Queue$(R), []]),
    add: dart.fnType(dart.void, [core.Object]),
    addAll: dart.fnType(dart.void, [core.Object]),
    remove: dart.fnType(core.bool, [core.Object]),
    [_filterWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E]), core.bool]),
    removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    clear: dart.fnType(dart.void, []),
    addLast: dart.fnType(dart.void, [core.Object]),
    addFirst: dart.fnType(dart.void, [core.Object]),
    removeFirst: dart.fnType(E, []),
    removeLast: dart.fnType(E, []),
    [_checkModification]: dart.fnType(dart.void, [core.int]),
    [_add$]: dart.fnType(dart.void, [E]),
    [_remove]: dart.fnType(core.int, [core.int]),
    [_grow]: dart.fnType(dart.void, []),
    [_writeToList]: dart.fnType(core.int, [core.List$(E)]),
    [_preGrow]: dart.fnType(dart.void, [core.int])
  }));
  dart.setLibraryUri(ListQueue, L9);
  dart.setFieldSignature(ListQueue, () => ({
    __proto__: dart.getFields(ListQueue.__proto__),
    [_table]: dart.fieldType(core.List$(E)),
    [_head]: dart.fieldType(core.int),
    [_tail]: dart.fieldType(core.int),
    [_modificationCount]: dart.fieldType(core.int)
  }));
  dart.defineExtensionMethods(ListQueue, [
    'cast',
    'forEach',
    'elementAt',
    'toList',
    'toString'
  ]);
  dart.defineExtensionAccessors(ListQueue, [
    'iterator',
    'isEmpty',
    'length',
    'first',
    'last',
    'single'
  ]);
  return ListQueue;
});
collection.ListQueue = collection.ListQueue$();
dart.defineLazy(collection.ListQueue, {
  /*collection.ListQueue._INITIAL_CAPACITY*/get _INITIAL_CAPACITY() {
    return 8;
  }
}, true);
dart.addTypeTests(collection.ListQueue, _is_ListQueue_default);
var _end = dart.privateName(collection, "_end");
var _position = dart.privateName(collection, "_position");
const _is__ListQueueIterator_default = Symbol('_is__ListQueueIterator_default');
collection._ListQueueIterator$ = dart.generic(E => {
  class _ListQueueIterator extends core.Object {
    get current() {
      return this[_current$1];
    }
    moveNext() {
      this[_queue$][_checkModification](this[_modificationCount]);
      if (this[_position] == this[_end]) {
        this[_current$1] = null;
        return false;
      }
      this[_current$1] = this[_queue$][_table][$_get](this[_position]);
      this[_position] = (dart.notNull(this[_position]) + 1 & dart.notNull(this[_queue$][_table][$length]) - 1) >>> 0;
      return true;
    }
  }
  (_ListQueueIterator.new = function(queue) {
    this[_current$1] = null;
    this[_queue$] = queue;
    this[_end] = queue[_tail];
    this[_modificationCount] = queue[_modificationCount];
    this[_position] = queue[_head];
    ;
  }).prototype = _ListQueueIterator.prototype;
  dart.addTypeTests(_ListQueueIterator);
  _ListQueueIterator.prototype[_is__ListQueueIterator_default] = true;
  dart.addTypeCaches(_ListQueueIterator);
  _ListQueueIterator[dart.implements] = () => [core.Iterator$(E)];
  dart.setMethodSignature(_ListQueueIterator, () => ({
    __proto__: dart.getMethods(_ListQueueIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(_ListQueueIterator, () => ({
    __proto__: dart.getGetters(_ListQueueIterator.__proto__),
    current: E
  }));
  dart.setLibraryUri(_ListQueueIterator, L9);
  dart.setFieldSignature(_ListQueueIterator, () => ({
    __proto__: dart.getFields(_ListQueueIterator.__proto__),
    [_queue$]: dart.finalFieldType(collection.ListQueue$(E)),
    [_end]: dart.finalFieldType(core.int),
    [_modificationCount]: dart.finalFieldType(core.int),
    [_position]: dart.fieldType(core.int),
    [_current$1]: dart.fieldType(E)
  }));
  return _ListQueueIterator;
});
collection._ListQueueIterator = collection._ListQueueIterator$();
dart.addTypeTests(collection._ListQueueIterator, _is__ListQueueIterator_default);
const _is_SetMixin_default = Symbol('_is_SetMixin_default');
collection.SetMixin$ = dart.generic(E => {
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  var FollowedByIterableOfEL = () => (FollowedByIterableOfEL = dart.constFn(_internal.FollowedByIterable$(E)))();
  var SetOfEL = () => (SetOfEL = dart.constFn(core.Set$(E)))();
  var JSArrayOfEL = () => (JSArrayOfEL = dart.constFn(_interceptors.JSArray$(E)))();
  var ListOfEL = () => (ListOfEL = dart.constFn(core.List$(E)))();
  var WhereIterableOfEL = () => (WhereIterableOfEL = dart.constFn(_internal.WhereIterable$(E)))();
  var ELAndELToLEL = () => (ELAndELToLEL = dart.constFn(dart.fnType(E, [E, E])))();
  var TakeIterableOfEL = () => (TakeIterableOfEL = dart.constFn(_internal.TakeIterable$(E)))();
  var TakeWhileIterableOfEL = () => (TakeWhileIterableOfEL = dart.constFn(_internal.TakeWhileIterable$(E)))();
  var SkipIterableOfEL = () => (SkipIterableOfEL = dart.constFn(_internal.SkipIterable$(E)))();
  var SkipWhileIterableOfEL = () => (SkipWhileIterableOfEL = dart.constFn(_internal.SkipWhileIterable$(E)))();
  var VoidToLEL = () => (VoidToLEL = dart.constFn(dart.fnType(E, [])))();
  class SetMixin extends core.Object {
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
    get isEmpty() {
      return this.length === 0;
    }
    get isNotEmpty() {
      return this.length !== 0;
    }
    cast(R) {
      return core.Set.castFrom(E, R, this);
    }
    followedBy(other) {
      IterableOfEL().as(other);
      return FollowedByIterableOfEL().firstEfficient(this, other);
    }
    whereType(T) {
      return new (_internal.WhereTypeIterable$(T)).new(this);
    }
    clear() {
      this.removeAll(this.toList());
    }
    addAll(elements) {
      IterableOfEL().as(elements);
      for (let element of elements)
        this.add(element);
    }
    removeAll(elements) {
      for (let element of elements)
        this.remove(element);
    }
    retainAll(elements) {
      let toRemove = this.toSet();
      for (let o of elements) {
        toRemove.remove(o);
      }
      this.removeAll(toRemove);
    }
    removeWhere(test) {
      let toRemove = [];
      for (let element of this) {
        if (dart.test(test(element))) toRemove[$add](element);
      }
      this.removeAll(toRemove);
    }
    retainWhere(test) {
      let toRemove = [];
      for (let element of this) {
        if (!dart.test(test(element))) toRemove[$add](element);
      }
      this.removeAll(toRemove);
    }
    containsAll(other) {
      for (let o of other) {
        if (!dart.test(this.contains(o))) return false;
      }
      return true;
    }
    union(other) {
      let t65;
      SetOfEL().as(other);
      t65 = this.toSet();
      t65.addAll(other);
      return t65;
    }
    intersection(other) {
      let result = this.toSet();
      for (let element of this) {
        if (!dart.test(other.contains(element))) result.remove(element);
      }
      return result;
    }
    difference(other) {
      let result = this.toSet();
      for (let element of this) {
        if (dart.test(other.contains(element))) result.remove(element);
      }
      return result;
    }
    toList(opts) {
      let t65, t65$;
      let growable = opts && 'growable' in opts ? opts.growable : true;
      let result = dart.test(growable) ? (t65 = JSArrayOfEL().of([]), t65[$length] = this.length, t65) : ListOfEL().new(this.length);
      let i = 0;
      for (let element of this)
        result[$_set]((t65$ = i, i = t65$ + 1, t65$), element);
      return result;
    }
    map(T, f) {
      return new (_internal.EfficientLengthMappedIterable$(E, T)).new(this, f);
    }
    get single() {
      if (dart.notNull(this.length) > 1) dart.throw(_internal.IterableElementError.tooMany());
      let it = this.iterator;
      if (!dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.noElement());
      let result = it.current;
      return result;
    }
    toString() {
      return collection.IterableBase.iterableToFullString(this, "{", "}");
    }
    where(f) {
      return new (WhereIterableOfEL()).new(this, f);
    }
    expand(T, f) {
      return new (_internal.ExpandIterable$(E, T)).new(this, f);
    }
    forEach(f) {
      for (let element of this)
        f(element);
    }
    reduce(combine) {
      ELAndELToLEL().as(combine);
      let iterator = this.iterator;
      if (!dart.test(iterator.moveNext())) {
        dart.throw(_internal.IterableElementError.noElement());
      }
      let value = iterator.current;
      while (dart.test(iterator.moveNext())) {
        value = combine(value, iterator.current);
      }
      return value;
    }
    fold(T, initialValue, combine) {
      let value = initialValue;
      for (let element of this)
        value = combine(value, element);
      return value;
    }
    every(f) {
      for (let element of this) {
        if (!dart.test(f(element))) return false;
      }
      return true;
    }
    join(separator = "") {
      let iterator = this.iterator;
      if (!dart.test(iterator.moveNext())) return "";
      let buffer = new core.StringBuffer.new();
      if (separator == null || separator === "") {
        do {
          buffer.write(iterator.current);
        } while (dart.test(iterator.moveNext()));
      } else {
        buffer.write(iterator.current);
        while (dart.test(iterator.moveNext())) {
          buffer.write(separator);
          buffer.write(iterator.current);
        }
      }
      return buffer.toString();
    }
    any(test) {
      for (let element of this) {
        if (dart.test(test(element))) return true;
      }
      return false;
    }
    take(n) {
      return TakeIterableOfEL().new(this, n);
    }
    takeWhile(test) {
      return new (TakeWhileIterableOfEL()).new(this, test);
    }
    skip(n) {
      return SkipIterableOfEL().new(this, n);
    }
    skipWhile(test) {
      return new (SkipWhileIterableOfEL()).new(this, test);
    }
    get first() {
      let it = this.iterator;
      if (!dart.test(it.moveNext())) {
        dart.throw(_internal.IterableElementError.noElement());
      }
      return it.current;
    }
    get last() {
      let it = this.iterator;
      if (!dart.test(it.moveNext())) {
        dart.throw(_internal.IterableElementError.noElement());
      }
      let result = null;
      do {
        result = it.current;
      } while (dart.test(it.moveNext()));
      return result;
    }
    firstWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      for (let element of this) {
        if (dart.test(test(element))) return element;
      }
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    lastWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      let result = null;
      let foundMatching = false;
      for (let element of this) {
        if (dart.test(test(element))) {
          result = element;
          foundMatching = true;
        }
      }
      if (foundMatching) return result;
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    singleWhere(test, opts) {
      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
      VoidToLEL().as(orElse);
      let result = null;
      let foundMatching = false;
      for (let element of this) {
        if (dart.test(test(element))) {
          if (foundMatching) {
            dart.throw(_internal.IterableElementError.tooMany());
          }
          result = element;
          foundMatching = true;
        }
      }
      if (foundMatching) return result;
      if (orElse != null) return orElse();
      dart.throw(_internal.IterableElementError.noElement());
    }
    elementAt(index) {
      core.ArgumentError.checkNotNull(core.int, index, "index");
      core.RangeError.checkNotNegative(index, "index");
      let elementIndex = 0;
      for (let element of this) {
        if (index === elementIndex) return element;
        elementIndex = elementIndex + 1;
      }
      dart.throw(new core.IndexError.new(index, this, "index", null, elementIndex));
    }
  }
  (SetMixin.new = function() {
    ;
  }).prototype = SetMixin.prototype;
  dart.addTypeTests(SetMixin);
  SetMixin.prototype[_is_SetMixin_default] = true;
  dart.addTypeCaches(SetMixin);
  SetMixin[dart.implements] = () => [core.Set$(E)];
  dart.setMethodSignature(SetMixin, () => ({
    __proto__: dart.getMethods(SetMixin.__proto__),
    cast: dart.gFnType(R => [core.Set$(R), []]),
    [$cast]: dart.gFnType(R => [core.Set$(R), []]),
    followedBy: dart.fnType(core.Iterable$(E), [core.Object]),
    [$followedBy]: dart.fnType(core.Iterable$(E), [core.Object]),
    whereType: dart.gFnType(T => [core.Iterable$(T), []]),
    [$whereType]: dart.gFnType(T => [core.Iterable$(T), []]),
    clear: dart.fnType(dart.void, []),
    addAll: dart.fnType(dart.void, [core.Object]),
    removeAll: dart.fnType(dart.void, [core.Iterable$(core.Object)]),
    retainAll: dart.fnType(dart.void, [core.Iterable$(core.Object)]),
    removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    containsAll: dart.fnType(core.bool, [core.Iterable$(core.Object)]),
    union: dart.fnType(core.Set$(E), [core.Object]),
    intersection: dart.fnType(core.Set$(E), [core.Set$(core.Object)]),
    difference: dart.fnType(core.Set$(E), [core.Set$(core.Object)]),
    toList: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
    [$toList]: dart.fnType(core.List$(E), [], {growable: core.bool}, {}),
    map: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]]),
    [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [E])]]),
    where: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    [$where]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    expand: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]]),
    [$expand]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [E])]]),
    forEach: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
    [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [E])]),
    reduce: dart.fnType(E, [core.Object]),
    [$reduce]: dart.fnType(E, [core.Object]),
    fold: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]]),
    [$fold]: dart.gFnType(T => [T, [T, dart.fnType(T, [T, E])]]),
    every: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    [$every]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    join: dart.fnType(core.String, [], [core.String]),
    [$join]: dart.fnType(core.String, [], [core.String]),
    any: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    [$any]: dart.fnType(core.bool, [dart.fnType(core.bool, [E])]),
    take: dart.fnType(core.Iterable$(E), [core.int]),
    [$take]: dart.fnType(core.Iterable$(E), [core.int]),
    takeWhile: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    [$takeWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    skip: dart.fnType(core.Iterable$(E), [core.int]),
    [$skip]: dart.fnType(core.Iterable$(E), [core.int]),
    skipWhile: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    [$skipWhile]: dart.fnType(core.Iterable$(E), [dart.fnType(core.bool, [E])]),
    firstWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    [$firstWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    lastWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    [$lastWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    singleWhere: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    [$singleWhere]: dart.fnType(E, [dart.fnType(core.bool, [E])], {orElse: core.Object}, {}),
    elementAt: dart.fnType(E, [core.int]),
    [$elementAt]: dart.fnType(E, [core.int])
  }));
  dart.setGetterSignature(SetMixin, () => ({
    __proto__: dart.getGetters(SetMixin.__proto__),
    isEmpty: core.bool,
    [$isEmpty]: core.bool,
    isNotEmpty: core.bool,
    [$isNotEmpty]: core.bool,
    single: E,
    [$single]: E,
    first: E,
    [$first]: E,
    last: E,
    [$last]: E
  }));
  dart.setLibraryUri(SetMixin, L9);
  dart.defineExtensionMethods(SetMixin, [
    'cast',
    'followedBy',
    'whereType',
    'toList',
    'map',
    'toString',
    'where',
    'expand',
    'forEach',
    'reduce',
    'fold',
    'every',
    'join',
    'any',
    'take',
    'takeWhile',
    'skip',
    'skipWhile',
    'firstWhere',
    'lastWhere',
    'singleWhere',
    'elementAt'
  ]);
  dart.defineExtensionAccessors(SetMixin, [
    'isEmpty',
    'isNotEmpty',
    'single',
    'first',
    'last'
  ]);
  return SetMixin;
});
collection.SetMixin = collection.SetMixin$();
dart.addTypeTests(collection.SetMixin, _is_SetMixin_default);
const _is_SetBase_default = Symbol('_is_SetBase_default');
collection.SetBase$ = dart.generic(E => {
  const Object_SetMixin$36 = class Object_SetMixin extends core.Object {};
  (Object_SetMixin$36.new = function() {
  }).prototype = Object_SetMixin$36.prototype;
  dart.applyMixin(Object_SetMixin$36, collection.SetMixin$(E));
  class SetBase extends Object_SetMixin$36 {
    static setToString(set) {
      return collection.IterableBase.iterableToFullString(set, "{", "}");
    }
  }
  (SetBase.new = function() {
    ;
  }).prototype = SetBase.prototype;
  dart.addTypeTests(SetBase);
  SetBase.prototype[_is_SetBase_default] = true;
  dart.addTypeCaches(SetBase);
  dart.setLibraryUri(SetBase, L9);
  return SetBase;
});
collection.SetBase = collection.SetBase$();
dart.addTypeTests(collection.SetBase, _is_SetBase_default);
const _is__UnmodifiableSet_default = Symbol('_is__UnmodifiableSet_default');
var _map$9 = dart.privateName(collection, "_UnmodifiableSet._map");
collection._UnmodifiableSet$ = dart.generic(E => {
  var _HashSetOfEL = () => (_HashSetOfEL = dart.constFn(collection._HashSet$(E)))();
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  class _UnmodifiableSet extends collection._SetBase$(E) {
    get [_map$4]() {
      return this[_map$9];
    }
    set [_map$4](value) {
      super[_map$4] = value;
    }
    [_newSet]() {
      return new (_HashSetOfEL()).new();
    }
    [_newSimilarSet](R) {
      return new (collection._HashSet$(R)).new();
    }
    contains(element) {
      return this[_map$4][$containsKey](element);
    }
    get iterator() {
      return this[_map$4][$keys][$iterator];
    }
    get length() {
      return this[_map$4][$length];
    }
    lookup(element) {
      for (let key of this[_map$4][$keys]) {
        if (dart.equals(key, element)) return key;
      }
      return null;
    }
    add(value) {
      E.as(value);
      dart.throw(new core.UnsupportedError.new("Cannot change unmodifiable set"));
    }
    clear() {
      dart.throw(new core.UnsupportedError.new("Cannot change unmodifiable set"));
    }
    addAll(elements) {
      IterableOfEL().as(elements);
      dart.throw(new core.UnsupportedError.new("Cannot change unmodifiable set"));
    }
    removeAll(elements) {
      dart.throw(new core.UnsupportedError.new("Cannot change unmodifiable set"));
    }
    retainAll(elements) {
      dart.throw(new core.UnsupportedError.new("Cannot change unmodifiable set"));
    }
    removeWhere(test) {
      dart.throw(new core.UnsupportedError.new("Cannot change unmodifiable set"));
    }
    retainWhere(test) {
      dart.throw(new core.UnsupportedError.new("Cannot change unmodifiable set"));
    }
    remove(value) {
      dart.throw(new core.UnsupportedError.new("Cannot change unmodifiable set"));
    }
  }
  (_UnmodifiableSet.new = function(_map) {
    this[_map$9] = _map;
    _UnmodifiableSet.__proto__.new.call(this);
    ;
  }).prototype = _UnmodifiableSet.prototype;
  dart.addTypeTests(_UnmodifiableSet);
  _UnmodifiableSet.prototype[_is__UnmodifiableSet_default] = true;
  dart.addTypeCaches(_UnmodifiableSet);
  dart.setMethodSignature(_UnmodifiableSet, () => ({
    __proto__: dart.getMethods(_UnmodifiableSet.__proto__),
    [_newSet]: dart.fnType(core.Set$(E), []),
    [_newSimilarSet]: dart.gFnType(R => [core.Set$(R), []]),
    contains: dart.fnType(core.bool, [core.Object]),
    [$contains]: dart.fnType(core.bool, [core.Object]),
    lookup: dart.fnType(E, [core.Object]),
    add: dart.fnType(core.bool, [core.Object]),
    remove: dart.fnType(core.bool, [core.Object])
  }));
  dart.setGetterSignature(_UnmodifiableSet, () => ({
    __proto__: dart.getGetters(_UnmodifiableSet.__proto__),
    iterator: core.Iterator$(E),
    [$iterator]: core.Iterator$(E),
    length: core.int,
    [$length]: core.int
  }));
  dart.setLibraryUri(_UnmodifiableSet, L9);
  dart.setFieldSignature(_UnmodifiableSet, () => ({
    __proto__: dart.getFields(_UnmodifiableSet.__proto__),
    [_map$4]: dart.finalFieldType(core.Map$(E, core.Null))
  }));
  dart.defineExtensionMethods(_UnmodifiableSet, ['contains']);
  dart.defineExtensionAccessors(_UnmodifiableSet, ['iterator', 'length']);
  return _UnmodifiableSet;
});
collection._UnmodifiableSet = collection._UnmodifiableSet$();
dart.addTypeTests(collection._UnmodifiableSet, _is__UnmodifiableSet_default);
const _is__SplayTreeNode_default = Symbol('_is__SplayTreeNode_default');
var left = dart.privateName(collection, "_SplayTreeNode.left");
var right = dart.privateName(collection, "_SplayTreeNode.right");
collection._SplayTreeNode$ = dart.generic(K => {
  var _SplayTreeNodeOfKL = () => (_SplayTreeNodeOfKL = dart.constFn(collection._SplayTreeNode$(K)))();
  class _SplayTreeNode extends core.Object {
    get left() {
      return this[left];
    }
    set left(value) {
      this[left] = _SplayTreeNodeOfKL().as(value);
    }
    get right() {
      return this[right];
    }
    set right(value) {
      this[right] = _SplayTreeNodeOfKL().as(value);
    }
  }
  (_SplayTreeNode.new = function(key) {
    this[left] = null;
    this[right] = null;
    this.key = key;
    ;
  }).prototype = _SplayTreeNode.prototype;
  dart.addTypeTests(_SplayTreeNode);
  _SplayTreeNode.prototype[_is__SplayTreeNode_default] = true;
  dart.addTypeCaches(_SplayTreeNode);
  dart.setLibraryUri(_SplayTreeNode, L9);
  dart.setFieldSignature(_SplayTreeNode, () => ({
    __proto__: dart.getFields(_SplayTreeNode.__proto__),
    key: dart.finalFieldType(K),
    left: dart.fieldType(collection._SplayTreeNode$(K)),
    right: dart.fieldType(collection._SplayTreeNode$(K))
  }));
  return _SplayTreeNode;
});
collection._SplayTreeNode = collection._SplayTreeNode$();
dart.addTypeTests(collection._SplayTreeNode, _is__SplayTreeNode_default);
const _is__SplayTreeMapNode_default = Symbol('_is__SplayTreeMapNode_default');
var value$2 = dart.privateName(collection, "_SplayTreeMapNode.value");
collection._SplayTreeMapNode$ = dart.generic((K, V) => {
  class _SplayTreeMapNode extends collection._SplayTreeNode$(K) {
    get value() {
      return this[value$2];
    }
    set value(value) {
      this[value$2] = V.as(value);
    }
  }
  (_SplayTreeMapNode.new = function(key, value) {
    this[value$2] = value;
    _SplayTreeMapNode.__proto__.new.call(this, key);
    ;
  }).prototype = _SplayTreeMapNode.prototype;
  dart.addTypeTests(_SplayTreeMapNode);
  _SplayTreeMapNode.prototype[_is__SplayTreeMapNode_default] = true;
  dart.addTypeCaches(_SplayTreeMapNode);
  dart.setLibraryUri(_SplayTreeMapNode, L9);
  dart.setFieldSignature(_SplayTreeMapNode, () => ({
    __proto__: dart.getFields(_SplayTreeMapNode.__proto__),
    value: dart.fieldType(V)
  }));
  return _SplayTreeMapNode;
});
collection._SplayTreeMapNode = collection._SplayTreeMapNode$();
dart.addTypeTests(collection._SplayTreeMapNode, _is__SplayTreeMapNode_default);
var _count$ = dart.privateName(collection, "_count");
var _splayCount = dart.privateName(collection, "_splayCount");
var _root = dart.privateName(collection, "_root");
var _dummy = dart.privateName(collection, "_dummy");
var _compare = dart.privateName(collection, "_compare");
var _splay = dart.privateName(collection, "_splay");
var _splayMin = dart.privateName(collection, "_splayMin");
var _splayMax = dart.privateName(collection, "_splayMax");
var _addNewRoot = dart.privateName(collection, "_addNewRoot");
var _last = dart.privateName(collection, "_last");
var _clear = dart.privateName(collection, "_clear");
const _is__SplayTree_default = Symbol('_is__SplayTree_default');
collection._SplayTree$ = dart.generic((K, Node) => {
  class _SplayTree extends core.Object {
    [_splay](key) {
      K.as(key);
      if (this[_root] == null) return -1;
      let left = this[_dummy];
      let right = this[_dummy];
      let current = this[_root];
      let comp = null;
      while (true) {
        comp = this[_compare](current.key, key);
        if (dart.notNull(comp) > 0) {
          if (current.left == null) break;
          comp = this[_compare](current.left.key, key);
          if (dart.notNull(comp) > 0) {
            let tmp = current.left;
            current.left = tmp.right;
            tmp.right = current;
            current = Node.as(tmp);
            if (current.left == null) break;
          }
          right.left = current;
          right = current;
          current = Node.as(current.left);
        } else if (dart.notNull(comp) < 0) {
          if (current.right == null) break;
          comp = this[_compare](current.right.key, key);
          if (dart.notNull(comp) < 0) {
            let tmp = Node.as(current.right);
            current.right = tmp.left;
            tmp.left = current;
            current = tmp;
            if (current.right == null) break;
          }
          left.right = current;
          left = current;
          current = Node.as(current.right);
        } else {
          break;
        }
      }
      left.right = current.left;
      right.left = current.right;
      current.left = this[_dummy].right;
      current.right = this[_dummy].left;
      this[_root] = current;
      this[_dummy].right = null;
      this[_dummy].left = null;
      this[_splayCount] = dart.notNull(this[_splayCount]) + 1;
      return comp;
    }
    [_splayMin](node) {
      let current = node;
      while (current.left != null) {
        let left = Node.as(current.left);
        current.left = left.right;
        left.right = current;
        current = left;
      }
      return current;
    }
    [_splayMax](node) {
      let current = node;
      while (current.right != null) {
        let right = Node.as(current.right);
        current.right = right.left;
        right.left = current;
        current = right;
      }
      return current;
    }
    [_remove](key) {
      if (this[_root] == null) return null;
      let comp = this[_splay](key);
      if (comp !== 0) return null;
      let result = this[_root];
      this[_count$] = dart.notNull(this[_count$]) - 1;
      if (this[_root].left == null) {
        this[_root] = Node.as(this[_root].right);
      } else {
        let right = Node.as(this[_root].right);
        this[_root] = this[_splayMax](Node.as(this[_root].left));
        this[_root].right = right;
      }
      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
      return result;
    }
    [_addNewRoot](node, comp) {
      this[_count$] = dart.notNull(this[_count$]) + 1;
      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
      if (this[_root] == null) {
        this[_root] = node;
        return;
      }
      if (dart.notNull(comp) < 0) {
        node.left = this[_root];
        node.right = this[_root].right;
        this[_root].right = null;
      } else {
        node.right = this[_root];
        node.left = this[_root].left;
        this[_root].left = null;
      }
      this[_root] = node;
    }
    get [_first]() {
      if (this[_root] == null) return null;
      this[_root] = this[_splayMin](this[_root]);
      return this[_root];
    }
    get [_last]() {
      if (this[_root] == null) return null;
      this[_root] = this[_splayMax](this[_root]);
      return this[_root];
    }
    [_clear]() {
      this[_root] = null;
      this[_count$] = 0;
      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
    }
  }
  (_SplayTree.new = function() {
    this[_count$] = 0;
    this[_modificationCount] = 0;
    this[_splayCount] = 0;
    ;
  }).prototype = _SplayTree.prototype;
  dart.addTypeTests(_SplayTree);
  _SplayTree.prototype[_is__SplayTree_default] = true;
  dart.addTypeCaches(_SplayTree);
  dart.setMethodSignature(_SplayTree, () => ({
    __proto__: dart.getMethods(_SplayTree.__proto__),
    [_splay]: dart.fnType(core.int, [core.Object]),
    [_splayMin]: dart.fnType(Node, [Node]),
    [_splayMax]: dart.fnType(Node, [Node]),
    [_remove]: dart.fnType(Node, [K]),
    [_addNewRoot]: dart.fnType(dart.void, [Node, core.int]),
    [_clear]: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_SplayTree, () => ({
    __proto__: dart.getGetters(_SplayTree.__proto__),
    [_first]: Node,
    [_last]: Node
  }));
  dart.setLibraryUri(_SplayTree, L9);
  dart.setFieldSignature(_SplayTree, () => ({
    __proto__: dart.getFields(_SplayTree.__proto__),
    [_count$]: dart.fieldType(core.int),
    [_modificationCount]: dart.fieldType(core.int),
    [_splayCount]: dart.fieldType(core.int)
  }));
  return _SplayTree;
});
collection._SplayTree = collection._SplayTree$();
dart.addTypeTests(collection._SplayTree, _is__SplayTree_default);
const _is__TypeTest_default = Symbol('_is__TypeTest_default');
collection._TypeTest$ = dart.generic(T => {
  class _TypeTest extends core.Object {
    test(v) {
      return T.is(v);
    }
  }
  (_TypeTest.new = function() {
    ;
  }).prototype = _TypeTest.prototype;
  dart.addTypeTests(_TypeTest);
  _TypeTest.prototype[_is__TypeTest_default] = true;
  dart.addTypeCaches(_TypeTest);
  dart.setMethodSignature(_TypeTest, () => ({
    __proto__: dart.getMethods(_TypeTest.__proto__),
    test: dart.fnType(core.bool, [dart.dynamic])
  }));
  dart.setLibraryUri(_TypeTest, L9);
  return _TypeTest;
});
collection._TypeTest = collection._TypeTest$();
dart.addTypeTests(collection._TypeTest, _is__TypeTest_default);
var _comparator = dart.privateName(collection, "_comparator");
const _is_SplayTreeMap_default = Symbol('_is_SplayTreeMap_default');
var _root$ = dart.privateName(collection, "SplayTreeMap._root");
var _dummy$ = dart.privateName(collection, "SplayTreeMap._dummy");
var _comparator$ = dart.privateName(collection, "SplayTreeMap._comparator");
var _validKey = dart.privateName(collection, "SplayTreeMap._validKey");
collection.SplayTreeMap$ = dart.generic((K, V) => {
  var _SplayTreeMapNodeOfKL$VL = () => (_SplayTreeMapNodeOfKL$VL = dart.constFn(collection._SplayTreeMapNode$(K, V)))();
  var MapOfKL$VL = () => (MapOfKL$VL = dart.constFn(core.Map$(K, V)))();
  var KLAndVLToNullN = () => (KLAndVLToNullN = dart.constFn(dart.fnType(core.Null, [K, V])))();
  var _SplayTreeNodeIteratorOfKL = () => (_SplayTreeNodeIteratorOfKL = dart.constFn(collection._SplayTreeNodeIterator$(K)))();
  var _SplayTreeKeyIterableOfKL = () => (_SplayTreeKeyIterableOfKL = dart.constFn(collection._SplayTreeKeyIterable$(K)))();
  var _SplayTreeValueIterableOfKL$VL = () => (_SplayTreeValueIterableOfKL$VL = dart.constFn(collection._SplayTreeValueIterable$(K, V)))();
  var VoidToLVL = () => (VoidToLVL = dart.constFn(dart.fnType(V, [])))();
  const _SplayTree_MapMixin$36 = class _SplayTree_MapMixin extends collection._SplayTree$(K, collection._SplayTreeMapNode$(K, V)) {};
  (_SplayTree_MapMixin$36.new = function() {
    _SplayTree_MapMixin$36.__proto__.new.call(this);
  }).prototype = _SplayTree_MapMixin$36.prototype;
  dart.applyMixin(_SplayTree_MapMixin$36, collection.MapMixin$(K, V));
  class SplayTreeMap extends _SplayTree_MapMixin$36 {
    get [_root]() {
      return this[_root$];
    }
    set [_root](value) {
      this[_root$] = value;
    }
    get [_dummy]() {
      return this[_dummy$];
    }
    set [_dummy](value) {
      super[_dummy] = value;
    }
    get [_comparator]() {
      return this[_comparator$];
    }
    set [_comparator](value) {
      this[_comparator$] = value;
    }
    get [_validKey$0]() {
      return this[_validKey];
    }
    set [_validKey$0](value) {
      this[_validKey] = value;
    }
    static from(other, compare = null, isValidKey = null) {
      let result = new (collection.SplayTreeMap$(K, V)).new(compare, isValidKey);
      other[$forEach](dart.fn((k, v) => {
        result._set(K.as(k), V.as(v));
      }, dynamicAnddynamicToNullN()));
      return result;
    }
    static of(other, compare = null, isValidKey = null) {
      let t65;
      t65 = new (collection.SplayTreeMap$(K, V)).new(compare, isValidKey);
      t65.addAll(other);
      return t65;
    }
    static fromIterable(iterable, opts) {
      let key = opts && 'key' in opts ? opts.key : null;
      let value = opts && 'value' in opts ? opts.value : null;
      let compare = opts && 'compare' in opts ? opts.compare : null;
      let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
      let map = new (collection.SplayTreeMap$(K, V)).new(compare, isValidKey);
      collection.MapBase._fillMapWithMappedIterable(map, iterable, key, value);
      return map;
    }
    static fromIterables(keys, values, compare = null, isValidKey = null) {
      let map = new (collection.SplayTreeMap$(K, V)).new(compare, isValidKey);
      collection.MapBase._fillMapWithIterables(map, keys, values);
      return map;
    }
    [_compare](key1, key2) {
      let t66, t65;
      t65 = key1;
      t66 = key2;
      return this[_comparator](t65, t66);
    }
    _get(key) {
      let t65;
      if (!dart.test((t65 = key, this[_validKey$0](t65)))) return null;
      if (this[_root] != null) {
        let comp = this[_splay](K.as(key));
        if (comp === 0) {
          return this[_root].value;
        }
      }
      return null;
    }
    remove(key) {
      let t65;
      if (!dart.test((t65 = key, this[_validKey$0](t65)))) return null;
      let mapRoot = this[_remove](K.as(key));
      if (mapRoot != null) return mapRoot.value;
      return null;
    }
    _set(key, value$) {
      let value = value$;
      K.as(key);
      V.as(value);
      if (key == null) dart.throw(new core.ArgumentError.new(key));
      let comp = this[_splay](key);
      if (comp === 0) {
        this[_root].value = value;
        return value$;
      }
      this[_addNewRoot](new (_SplayTreeMapNodeOfKL$VL()).new(key, value), comp);
      return value$;
    }
    putIfAbsent(key, ifAbsent) {
      K.as(key);
      VoidToLVL().as(ifAbsent);
      if (key == null) dart.throw(new core.ArgumentError.new(key));
      let comp = this[_splay](key);
      if (comp === 0) {
        return this[_root].value;
      }
      let modificationCount = this[_modificationCount];
      let splayCount = this[_splayCount];
      let value = ifAbsent();
      if (modificationCount != this[_modificationCount]) {
        dart.throw(new core.ConcurrentModificationError.new(this));
      }
      if (splayCount != this[_splayCount]) {
        comp = this[_splay](key);
        if (!(comp !== 0)) dart.assertFailed(null, L38, 367, 14, "comp != 0");
      }
      this[_addNewRoot](new (_SplayTreeMapNodeOfKL$VL()).new(key, value), comp);
      return value;
    }
    addAll(other) {
      MapOfKL$VL().as(other);
      other[$forEach](dart.fn((key, value) => {
        this._set(key, value);
      }, KLAndVLToNullN()));
    }
    get isEmpty() {
      return this[_root] == null;
    }
    get isNotEmpty() {
      return !dart.test(this.isEmpty);
    }
    forEach(f) {
      let nodes = new (_SplayTreeNodeIteratorOfKL()).new(this);
      while (dart.test(nodes.moveNext())) {
        let node = _SplayTreeMapNodeOfKL$VL().as(nodes.current);
        f(node.key, node.value);
      }
    }
    get length() {
      return this[_count$];
    }
    clear() {
      this[_clear]();
    }
    containsKey(key) {
      let t65;
      return dart.test((t65 = key, this[_validKey$0](t65))) && this[_splay](K.as(key)) === 0;
    }
    containsValue(value) {
      let initialSplayCount = this[_splayCount];
      const visit = node => {
        while (node != null) {
          if (dart.equals(node.value, value)) return true;
          if (initialSplayCount != this[_splayCount]) {
            dart.throw(new core.ConcurrentModificationError.new(this));
          }
          if (node.right != null && dart.test(visit(collection._SplayTreeMapNode.as(node.right)))) return true;
          node = collection._SplayTreeMapNode.as(node.left);
        }
        return false;
      };
      dart.fn(visit, _SplayTreeMapNodeLToboolL());
      return visit(this[_root]);
    }
    get keys() {
      return new (_SplayTreeKeyIterableOfKL()).new(this);
    }
    get values() {
      return new (_SplayTreeValueIterableOfKL$VL()).new(this);
    }
    firstKey() {
      if (this[_root] == null) return null;
      return this[_first].key;
    }
    lastKey() {
      if (this[_root] == null) return null;
      return this[_last].key;
    }
    lastKeyBefore(key) {
      K.as(key);
      if (key == null) dart.throw(new core.ArgumentError.new(key));
      if (this[_root] == null) return null;
      let comp = this[_splay](key);
      if (dart.notNull(comp) < 0) return this[_root].key;
      let node = this[_root].left;
      if (node == null) return null;
      while (node.right != null) {
        node = node.right;
      }
      return node.key;
    }
    firstKeyAfter(key) {
      K.as(key);
      if (key == null) dart.throw(new core.ArgumentError.new(key));
      if (this[_root] == null) return null;
      let comp = this[_splay](key);
      if (dart.notNull(comp) > 0) return this[_root].key;
      let node = this[_root].right;
      if (node == null) return null;
      while (node.left != null) {
        node = node.left;
      }
      return node.key;
    }
  }
  (SplayTreeMap.new = function(compare = null, isValidKey = null) {
    let t65, t65$;
    this[_root$] = null;
    this[_dummy$] = new (_SplayTreeMapNodeOfKL$VL()).new(null, null);
    this[_comparator$] = (t65 = compare, t65 == null ? collection._defaultCompare(K) : t65);
    this[_validKey] = (t65$ = isValidKey, t65$ == null ? dart.fn(v => K.is(v), dynamicToboolL()) : t65$);
    SplayTreeMap.__proto__.new.call(this);
    ;
  }).prototype = SplayTreeMap.prototype;
  (SplayTreeMap._internal = function() {
    this[_root$] = null;
    this[_dummy$] = new (_SplayTreeMapNodeOfKL$VL()).new(null, null);
    this[_validKey] = null;
    this[_comparator$] = null;
    SplayTreeMap.__proto__.new.call(this);
    ;
  }).prototype = SplayTreeMap.prototype;
  dart.addTypeTests(SplayTreeMap);
  SplayTreeMap.prototype[_is_SplayTreeMap_default] = true;
  dart.addTypeCaches(SplayTreeMap);
  dart.setMethodSignature(SplayTreeMap, () => ({
    __proto__: dart.getMethods(SplayTreeMap.__proto__),
    [_compare]: dart.fnType(core.int, [K, K]),
    _get: dart.fnType(V, [core.Object]),
    [$_get]: dart.fnType(V, [core.Object]),
    remove: dart.fnType(V, [core.Object]),
    [$remove]: dart.fnType(V, [core.Object]),
    _set: dart.fnType(dart.void, [core.Object, core.Object]),
    [$_set]: dart.fnType(dart.void, [core.Object, core.Object]),
    clear: dart.fnType(dart.void, []),
    [$clear]: dart.fnType(dart.void, []),
    firstKey: dart.fnType(K, []),
    lastKey: dart.fnType(K, []),
    lastKeyBefore: dart.fnType(K, [core.Object]),
    firstKeyAfter: dart.fnType(K, [core.Object])
  }));
  dart.setGetterSignature(SplayTreeMap, () => ({
    __proto__: dart.getGetters(SplayTreeMap.__proto__),
    keys: core.Iterable$(K),
    [$keys]: core.Iterable$(K)
  }));
  dart.setLibraryUri(SplayTreeMap, L9);
  dart.setFieldSignature(SplayTreeMap, () => ({
    __proto__: dart.getFields(SplayTreeMap.__proto__),
    [_root]: dart.fieldType(collection._SplayTreeMapNode$(K, V)),
    [_dummy]: dart.finalFieldType(collection._SplayTreeMapNode$(K, V)),
    [_comparator]: dart.fieldType(dart.fnType(core.int, [K, K])),
    [_validKey$0]: dart.fieldType(dart.fnType(core.bool, [dart.dynamic]))
  }));
  dart.defineExtensionMethods(SplayTreeMap, [
    '_get',
    'remove',
    '_set',
    'putIfAbsent',
    'addAll',
    'forEach',
    'clear',
    'containsKey',
    'containsValue'
  ]);
  dart.defineExtensionAccessors(SplayTreeMap, [
    'isEmpty',
    'isNotEmpty',
    'length',
    'keys',
    'values'
  ]);
  return SplayTreeMap;
});
collection.SplayTreeMap = collection.SplayTreeMap$();
dart.addTypeTests(collection.SplayTreeMap, _is_SplayTreeMap_default);
var _workList = dart.privateName(collection, "_workList");
var _currentNode = dart.privateName(collection, "_currentNode");
var _tree$ = dart.privateName(collection, "_tree");
var _findLeftMostDescendent = dart.privateName(collection, "_findLeftMostDescendent");
var _getValue = dart.privateName(collection, "_getValue");
var _rebuildWorkList = dart.privateName(collection, "_rebuildWorkList");
const _is__SplayTreeIterator_default = Symbol('_is__SplayTreeIterator_default');
collection._SplayTreeIterator$ = dart.generic((K, T) => {
  var _SplayTreeNodeOfKL = () => (_SplayTreeNodeOfKL = dart.constFn(collection._SplayTreeNode$(K)))();
  var JSArrayOf_SplayTreeNodeLOfKL = () => (JSArrayOf_SplayTreeNodeLOfKL = dart.constFn(_interceptors.JSArray$(_SplayTreeNodeOfKL())))();
  class _SplayTreeIterator extends core.Object {
    get current() {
      if (this[_currentNode] == null) return null;
      return this[_getValue](this[_currentNode]);
    }
    [_findLeftMostDescendent](node) {
      while (node != null) {
        this[_workList][$add](node);
        node = node.left;
      }
    }
    [_rebuildWorkList](currentNode) {
      if (!dart.test(this[_workList][$isNotEmpty])) dart.assertFailed(null, L38, 539, 12, "_workList.isNotEmpty");
      this[_workList][$clear]();
      if (currentNode == null) {
        this[_findLeftMostDescendent](this[_tree$][_root]);
      } else {
        this[_tree$][_splay](currentNode.key);
        this[_findLeftMostDescendent](this[_tree$][_root].right);
        if (!dart.test(this[_workList][$isNotEmpty])) dart.assertFailed(null, L38, 546, 14, "_workList.isNotEmpty");
      }
    }
    moveNext() {
      if (this[_modificationCount] != this[_tree$][_modificationCount]) {
        dart.throw(new core.ConcurrentModificationError.new(this[_tree$]));
      }
      if (dart.test(this[_workList][$isEmpty])) {
        this[_currentNode] = null;
        return false;
      }
      if (this[_tree$][_splayCount] != this[_splayCount] && this[_currentNode] != null) {
        this[_rebuildWorkList](this[_currentNode]);
      }
      this[_currentNode] = this[_workList][$removeLast]();
      this[_findLeftMostDescendent](this[_currentNode].right);
      return true;
    }
  }
  (_SplayTreeIterator.new = function(tree) {
    this[_workList] = JSArrayOf_SplayTreeNodeLOfKL().of([]);
    this[_currentNode] = null;
    this[_tree$] = tree;
    this[_modificationCount] = tree[_modificationCount];
    this[_splayCount] = tree[_splayCount];
    this[_findLeftMostDescendent](tree[_root]);
  }).prototype = _SplayTreeIterator.prototype;
  (_SplayTreeIterator.startAt = function(tree, startKey) {
    this[_workList] = JSArrayOf_SplayTreeNodeLOfKL().of([]);
    this[_currentNode] = null;
    this[_splayCount] = null;
    this[_tree$] = tree;
    this[_modificationCount] = tree[_modificationCount];
    if (tree[_root] == null) return;
    let compare = tree[_splay](startKey);
    this[_splayCount] = tree[_splayCount];
    if (dart.notNull(compare) < 0) {
      this[_findLeftMostDescendent](tree[_root].right);
    } else {
      this[_workList][$add](tree[_root]);
    }
  }).prototype = _SplayTreeIterator.prototype;
  dart.addTypeTests(_SplayTreeIterator);
  _SplayTreeIterator.prototype[_is__SplayTreeIterator_default] = true;
  dart.addTypeCaches(_SplayTreeIterator);
  _SplayTreeIterator[dart.implements] = () => [core.Iterator$(T)];
  dart.setMethodSignature(_SplayTreeIterator, () => ({
    __proto__: dart.getMethods(_SplayTreeIterator.__proto__),
    [_findLeftMostDescendent]: dart.fnType(dart.void, [collection._SplayTreeNode$(K)]),
    [_rebuildWorkList]: dart.fnType(dart.void, [collection._SplayTreeNode$(K)]),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(_SplayTreeIterator, () => ({
    __proto__: dart.getGetters(_SplayTreeIterator.__proto__),
    current: T
  }));
  dart.setLibraryUri(_SplayTreeIterator, L9);
  dart.setFieldSignature(_SplayTreeIterator, () => ({
    __proto__: dart.getFields(_SplayTreeIterator.__proto__),
    [_tree$]: dart.finalFieldType(collection._SplayTree$(K, collection._SplayTreeNode$(K))),
    [_workList]: dart.finalFieldType(core.List$(collection._SplayTreeNode$(K))),
    [_modificationCount]: dart.fieldType(core.int),
    [_splayCount]: dart.fieldType(core.int),
    [_currentNode]: dart.fieldType(collection._SplayTreeNode$(K))
  }));
  return _SplayTreeIterator;
});
collection._SplayTreeIterator = collection._SplayTreeIterator$();
dart.addTypeTests(collection._SplayTreeIterator, _is__SplayTreeIterator_default);
var _copyNode = dart.privateName(collection, "_copyNode");
const _is__SplayTreeKeyIterable_default = Symbol('_is__SplayTreeKeyIterable_default');
collection._SplayTreeKeyIterable$ = dart.generic(K => {
  var _SplayTreeKeyIteratorOfKL = () => (_SplayTreeKeyIteratorOfKL = dart.constFn(collection._SplayTreeKeyIterator$(K)))();
  var SplayTreeSetOfKL = () => (SplayTreeSetOfKL = dart.constFn(collection.SplayTreeSet$(K)))();
  var KLAndKLToLintL = () => (KLAndKLToLintL = dart.constFn(dart.fnType(core.int, [K, K])))();
  class _SplayTreeKeyIterable extends _internal.EfficientLengthIterable$(K) {
    get length() {
      return this[_tree$][_count$];
    }
    get isEmpty() {
      return this[_tree$][_count$] === 0;
    }
    get iterator() {
      return new (_SplayTreeKeyIteratorOfKL()).new(this[_tree$]);
    }
    toSet() {
      let set = new (SplayTreeSetOfKL()).new(KLAndKLToLintL().as(this[_tree$][_comparator]), this[_tree$][_validKey$0]);
      set[_count$] = this[_tree$][_count$];
      set[_root] = set[_copyNode](this[_tree$][_root]);
      return set;
    }
  }
  (_SplayTreeKeyIterable.new = function(_tree) {
    this[_tree$] = _tree;
    _SplayTreeKeyIterable.__proto__.new.call(this);
    ;
  }).prototype = _SplayTreeKeyIterable.prototype;
  dart.addTypeTests(_SplayTreeKeyIterable);
  _SplayTreeKeyIterable.prototype[_is__SplayTreeKeyIterable_default] = true;
  dart.addTypeCaches(_SplayTreeKeyIterable);
  dart.setGetterSignature(_SplayTreeKeyIterable, () => ({
    __proto__: dart.getGetters(_SplayTreeKeyIterable.__proto__),
    iterator: core.Iterator$(K),
    [$iterator]: core.Iterator$(K)
  }));
  dart.setLibraryUri(_SplayTreeKeyIterable, L9);
  dart.setFieldSignature(_SplayTreeKeyIterable, () => ({
    __proto__: dart.getFields(_SplayTreeKeyIterable.__proto__),
    [_tree$]: dart.fieldType(collection._SplayTree$(K, collection._SplayTreeNode$(K)))
  }));
  dart.defineExtensionMethods(_SplayTreeKeyIterable, ['toSet']);
  dart.defineExtensionAccessors(_SplayTreeKeyIterable, ['length', 'isEmpty', 'iterator']);
  return _SplayTreeKeyIterable;
});
collection._SplayTreeKeyIterable = collection._SplayTreeKeyIterable$();
dart.addTypeTests(collection._SplayTreeKeyIterable, _is__SplayTreeKeyIterable_default);
const _is__SplayTreeValueIterable_default = Symbol('_is__SplayTreeValueIterable_default');
collection._SplayTreeValueIterable$ = dart.generic((K, V) => {
  var _SplayTreeValueIteratorOfKL$VL = () => (_SplayTreeValueIteratorOfKL$VL = dart.constFn(collection._SplayTreeValueIterator$(K, V)))();
  class _SplayTreeValueIterable extends _internal.EfficientLengthIterable$(V) {
    get length() {
      return this[_map$4][_count$];
    }
    get isEmpty() {
      return this[_map$4][_count$] === 0;
    }
    get iterator() {
      return new (_SplayTreeValueIteratorOfKL$VL()).new(this[_map$4]);
    }
  }
  (_SplayTreeValueIterable.new = function(_map) {
    this[_map$4] = _map;
    _SplayTreeValueIterable.__proto__.new.call(this);
    ;
  }).prototype = _SplayTreeValueIterable.prototype;
  dart.addTypeTests(_SplayTreeValueIterable);
  _SplayTreeValueIterable.prototype[_is__SplayTreeValueIterable_default] = true;
  dart.addTypeCaches(_SplayTreeValueIterable);
  dart.setGetterSignature(_SplayTreeValueIterable, () => ({
    __proto__: dart.getGetters(_SplayTreeValueIterable.__proto__),
    iterator: core.Iterator$(V),
    [$iterator]: core.Iterator$(V)
  }));
  dart.setLibraryUri(_SplayTreeValueIterable, L9);
  dart.setFieldSignature(_SplayTreeValueIterable, () => ({
    __proto__: dart.getFields(_SplayTreeValueIterable.__proto__),
    [_map$4]: dart.fieldType(collection.SplayTreeMap$(K, V))
  }));
  dart.defineExtensionAccessors(_SplayTreeValueIterable, ['length', 'isEmpty', 'iterator']);
  return _SplayTreeValueIterable;
});
collection._SplayTreeValueIterable = collection._SplayTreeValueIterable$();
dart.addTypeTests(collection._SplayTreeValueIterable, _is__SplayTreeValueIterable_default);
const _is__SplayTreeKeyIterator_default = Symbol('_is__SplayTreeKeyIterator_default');
collection._SplayTreeKeyIterator$ = dart.generic(K => {
  class _SplayTreeKeyIterator extends collection._SplayTreeIterator$(K, K) {
    [_getValue](node) {
      return node.key;
    }
  }
  (_SplayTreeKeyIterator.new = function(map) {
    _SplayTreeKeyIterator.__proto__.new.call(this, map);
    ;
  }).prototype = _SplayTreeKeyIterator.prototype;
  dart.addTypeTests(_SplayTreeKeyIterator);
  _SplayTreeKeyIterator.prototype[_is__SplayTreeKeyIterator_default] = true;
  dart.addTypeCaches(_SplayTreeKeyIterator);
  dart.setMethodSignature(_SplayTreeKeyIterator, () => ({
    __proto__: dart.getMethods(_SplayTreeKeyIterator.__proto__),
    [_getValue]: dart.fnType(K, [collection._SplayTreeNode$(K)])
  }));
  dart.setLibraryUri(_SplayTreeKeyIterator, L9);
  return _SplayTreeKeyIterator;
});
collection._SplayTreeKeyIterator = collection._SplayTreeKeyIterator$();
dart.addTypeTests(collection._SplayTreeKeyIterator, _is__SplayTreeKeyIterator_default);
const _is__SplayTreeValueIterator_default = Symbol('_is__SplayTreeValueIterator_default');
collection._SplayTreeValueIterator$ = dart.generic((K, V) => {
  var _SplayTreeMapNodeOfKL$VL = () => (_SplayTreeMapNodeOfKL$VL = dart.constFn(collection._SplayTreeMapNode$(K, V)))();
  class _SplayTreeValueIterator extends collection._SplayTreeIterator$(K, V) {
    [_getValue](node) {
      let mapNode = _SplayTreeMapNodeOfKL$VL().as(node);
      return mapNode.value;
    }
  }
  (_SplayTreeValueIterator.new = function(map) {
    _SplayTreeValueIterator.__proto__.new.call(this, map);
    ;
  }).prototype = _SplayTreeValueIterator.prototype;
  dart.addTypeTests(_SplayTreeValueIterator);
  _SplayTreeValueIterator.prototype[_is__SplayTreeValueIterator_default] = true;
  dart.addTypeCaches(_SplayTreeValueIterator);
  dart.setMethodSignature(_SplayTreeValueIterator, () => ({
    __proto__: dart.getMethods(_SplayTreeValueIterator.__proto__),
    [_getValue]: dart.fnType(V, [collection._SplayTreeNode$(K)])
  }));
  dart.setLibraryUri(_SplayTreeValueIterator, L9);
  return _SplayTreeValueIterator;
});
collection._SplayTreeValueIterator = collection._SplayTreeValueIterator$();
dart.addTypeTests(collection._SplayTreeValueIterator, _is__SplayTreeValueIterator_default);
const _is__SplayTreeNodeIterator_default = Symbol('_is__SplayTreeNodeIterator_default');
collection._SplayTreeNodeIterator$ = dart.generic(K => {
  class _SplayTreeNodeIterator extends collection._SplayTreeIterator$(K, collection._SplayTreeNode$(K)) {
    [_getValue](node) {
      return node;
    }
  }
  (_SplayTreeNodeIterator.new = function(tree) {
    _SplayTreeNodeIterator.__proto__.new.call(this, tree);
    ;
  }).prototype = _SplayTreeNodeIterator.prototype;
  (_SplayTreeNodeIterator.startAt = function(tree, startKey) {
    _SplayTreeNodeIterator.__proto__.startAt.call(this, tree, startKey);
    ;
  }).prototype = _SplayTreeNodeIterator.prototype;
  dart.addTypeTests(_SplayTreeNodeIterator);
  _SplayTreeNodeIterator.prototype[_is__SplayTreeNodeIterator_default] = true;
  dart.addTypeCaches(_SplayTreeNodeIterator);
  dart.setMethodSignature(_SplayTreeNodeIterator, () => ({
    __proto__: dart.getMethods(_SplayTreeNodeIterator.__proto__),
    [_getValue]: dart.fnType(collection._SplayTreeNode$(K), [collection._SplayTreeNode$(K)])
  }));
  dart.setLibraryUri(_SplayTreeNodeIterator, L9);
  return _SplayTreeNodeIterator;
});
collection._SplayTreeNodeIterator = collection._SplayTreeNodeIterator$();
dart.addTypeTests(collection._SplayTreeNodeIterator, _is__SplayTreeNodeIterator_default);
var _clone$ = dart.privateName(collection, "_clone");
const _is_SplayTreeSet_default = Symbol('_is_SplayTreeSet_default');
var _root$0 = dart.privateName(collection, "SplayTreeSet._root");
var _dummy$0 = dart.privateName(collection, "SplayTreeSet._dummy");
var _comparator$0 = dart.privateName(collection, "SplayTreeSet._comparator");
var _validKey$1 = dart.privateName(collection, "SplayTreeSet._validKey");
collection.SplayTreeSet$ = dart.generic(E => {
  var _SplayTreeNodeOfEL = () => (_SplayTreeNodeOfEL = dart.constFn(collection._SplayTreeNode$(E)))();
  var _SplayTreeKeyIteratorOfEL = () => (_SplayTreeKeyIteratorOfEL = dart.constFn(collection._SplayTreeKeyIterator$(E)))();
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  var SplayTreeSetOfEL = () => (SplayTreeSetOfEL = dart.constFn(collection.SplayTreeSet$(E)))();
  var SetOfEL = () => (SetOfEL = dart.constFn(core.Set$(E)))();
  const _SplayTree_IterableMixin$36 = class _SplayTree_IterableMixin extends collection._SplayTree$(E, collection._SplayTreeNode$(E)) {};
  (_SplayTree_IterableMixin$36.new = function() {
    _SplayTree_IterableMixin$36.__proto__.new.call(this);
  }).prototype = _SplayTree_IterableMixin$36.prototype;
  dart.applyMixin(_SplayTree_IterableMixin$36, collection.IterableMixin$(E));
  const _SplayTree_SetMixin$36 = class _SplayTree_SetMixin extends _SplayTree_IterableMixin$36 {};
  (_SplayTree_SetMixin$36.new = function() {
    _SplayTree_SetMixin$36.__proto__.new.call(this);
  }).prototype = _SplayTree_SetMixin$36.prototype;
  dart.applyMixin(_SplayTree_SetMixin$36, collection.SetMixin$(E));
  class SplayTreeSet extends _SplayTree_SetMixin$36 {
    get [_root]() {
      return this[_root$0];
    }
    set [_root](value) {
      this[_root$0] = _SplayTreeNodeOfEL().as(value);
    }
    get [_dummy]() {
      return this[_dummy$0];
    }
    set [_dummy](value) {
      super[_dummy] = value;
    }
    get [_comparator]() {
      return this[_comparator$0];
    }
    set [_comparator](value) {
      this[_comparator$0] = value;
    }
    get [_validKey$0]() {
      return this[_validKey$1];
    }
    set [_validKey$0](value) {
      this[_validKey$1] = value;
    }
    static from(elements, compare = null, isValidKey = null) {
      let result = new (collection.SplayTreeSet$(E)).new(compare, isValidKey);
      for (let element of elements) {
        let e = E.as(element);
        result.add(e);
      }
      return result;
    }
    static of(elements, compare = null, isValidKey = null) {
      let t65;
      t65 = new (collection.SplayTreeSet$(E)).new(compare, isValidKey);
      t65.addAll(elements);
      return t65;
    }
    [_newSet](T) {
      return new (collection.SplayTreeSet$(T)).new(dart.fn((a, b) => {
        let t66, t65;
        t65 = E.as(a);
        t66 = E.as(b);
        return this[_comparator](t65, t66);
      }, dart.fnType(core.int, [T, T])), this[_validKey$0]);
    }
    cast(R) {
      return core.Set.castFrom(E, R, this, {newSet: dart.bind(this, _newSet)});
    }
    [_compare](e1, e2) {
      let t66, t65;
      t65 = e1;
      t66 = e2;
      return this[_comparator](t65, t66);
    }
    get iterator() {
      return new (_SplayTreeKeyIteratorOfEL()).new(this);
    }
    get length() {
      return this[_count$];
    }
    get isEmpty() {
      return this[_root] == null;
    }
    get isNotEmpty() {
      return this[_root] != null;
    }
    get first() {
      if (this[_count$] === 0) dart.throw(_internal.IterableElementError.noElement());
      return this[_first].key;
    }
    get last() {
      if (this[_count$] === 0) dart.throw(_internal.IterableElementError.noElement());
      return this[_last].key;
    }
    get single() {
      if (this[_count$] === 0) dart.throw(_internal.IterableElementError.noElement());
      if (dart.notNull(this[_count$]) > 1) dart.throw(_internal.IterableElementError.tooMany());
      return this[_root].key;
    }
    contains(element) {
      let t65;
      return dart.test((t65 = element, this[_validKey$0](t65))) && this[_splay](E.as(element)) === 0;
    }
    add(element) {
      E.as(element);
      let compare = this[_splay](element);
      if (compare === 0) return false;
      this[_addNewRoot](new (_SplayTreeNodeOfEL()).new(element), compare);
      return true;
    }
    remove(object) {
      let t65;
      if (!dart.test((t65 = object, this[_validKey$0](t65)))) return false;
      return this[_remove](E.as(object)) != null;
    }
    addAll(elements) {
      IterableOfEL().as(elements);
      for (let element of elements) {
        let compare = this[_splay](element);
        if (compare !== 0) {
          this[_addNewRoot](new (_SplayTreeNodeOfEL()).new(element), compare);
        }
      }
    }
    removeAll(elements) {
      let t65;
      for (let element of elements) {
        if (dart.test((t65 = element, this[_validKey$0](t65)))) this[_remove](E.as(element));
      }
    }
    retainAll(elements) {
      let t65;
      let retainSet = new (SplayTreeSetOfEL()).new(this[_comparator], this[_validKey$0]);
      let modificationCount = this[_modificationCount];
      for (let object of elements) {
        if (modificationCount != this[_modificationCount]) {
          dart.throw(new core.ConcurrentModificationError.new(this));
        }
        if (dart.test((t65 = object, this[_validKey$0](t65))) && this[_splay](E.as(object)) === 0) {
          retainSet.add(this[_root].key);
        }
      }
      if (retainSet[_count$] != this[_count$]) {
        this[_root] = retainSet[_root];
        this[_count$] = retainSet[_count$];
        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
      }
    }
    lookup(object) {
      let t65;
      if (!dart.test((t65 = object, this[_validKey$0](t65)))) return null;
      let comp = this[_splay](E.as(object));
      if (comp !== 0) return null;
      return this[_root].key;
    }
    intersection(other) {
      let result = new (SplayTreeSetOfEL()).new(this[_comparator], this[_validKey$0]);
      for (let element of this) {
        if (dart.test(other.contains(element))) result.add(element);
      }
      return result;
    }
    difference(other) {
      let result = new (SplayTreeSetOfEL()).new(this[_comparator], this[_validKey$0]);
      for (let element of this) {
        if (!dart.test(other.contains(element))) result.add(element);
      }
      return result;
    }
    union(other) {
      let t65;
      SetOfEL().as(other);
      t65 = this[_clone$]();
      t65.addAll(other);
      return t65;
    }
    [_clone$]() {
      let set = new (SplayTreeSetOfEL()).new(this[_comparator], this[_validKey$0]);
      set[_count$] = this[_count$];
      set[_root] = this[_copyNode](this[_root]);
      return set;
    }
    [_copyNode](node) {
      let t65;
      _SplayTreeNodeOfEL().as(node);
      if (node == null) return null;
      t65 = new (_SplayTreeNodeOfEL()).new(node.key);
      t65.left = this[_copyNode](node.left);
      t65.right = this[_copyNode](node.right);
      return t65;
    }
    clear() {
      this[_clear]();
    }
    toSet() {
      return this[_clone$]();
    }
    toString() {
      return collection.IterableBase.iterableToFullString(this, "{", "}");
    }
  }
  (SplayTreeSet.new = function(compare = null, isValidKey = null) {
    let t65, t65$;
    this[_root$0] = null;
    this[_dummy$0] = new (_SplayTreeNodeOfEL()).new(null);
    this[_comparator$0] = (t65 = compare, t65 == null ? collection._defaultCompare(E) : t65);
    this[_validKey$1] = (t65$ = isValidKey, t65$ == null ? dart.fn(v => E.is(v), dynamicToboolL()) : t65$);
    SplayTreeSet.__proto__.new.call(this);
    ;
  }).prototype = SplayTreeSet.prototype;
  dart.addTypeTests(SplayTreeSet);
  SplayTreeSet.prototype[_is_SplayTreeSet_default] = true;
  dart.addTypeCaches(SplayTreeSet);
  dart.setMethodSignature(SplayTreeSet, () => ({
    __proto__: dart.getMethods(SplayTreeSet.__proto__),
    [_newSet]: dart.gFnType(T => [core.Set$(T), []]),
    cast: dart.gFnType(R => [core.Set$(R), []]),
    [$cast]: dart.gFnType(R => [core.Set$(R), []]),
    [_compare]: dart.fnType(core.int, [E, E]),
    add: dart.fnType(core.bool, [core.Object]),
    remove: dart.fnType(core.bool, [core.Object]),
    lookup: dart.fnType(E, [core.Object]),
    [_clone$]: dart.fnType(collection.SplayTreeSet$(E), []),
    [_copyNode]: dart.fnType(collection._SplayTreeNode$(E), [core.Object])
  }));
  dart.setGetterSignature(SplayTreeSet, () => ({
    __proto__: dart.getGetters(SplayTreeSet.__proto__),
    iterator: core.Iterator$(E),
    [$iterator]: core.Iterator$(E)
  }));
  dart.setLibraryUri(SplayTreeSet, L9);
  dart.setFieldSignature(SplayTreeSet, () => ({
    __proto__: dart.getFields(SplayTreeSet.__proto__),
    [_root]: dart.fieldType(collection._SplayTreeNode$(E)),
    [_dummy]: dart.finalFieldType(collection._SplayTreeNode$(E)),
    [_comparator]: dart.fieldType(dart.fnType(core.int, [E, E])),
    [_validKey$0]: dart.fieldType(dart.fnType(core.bool, [dart.dynamic]))
  }));
  dart.defineExtensionMethods(SplayTreeSet, ['cast', 'contains', 'toSet', 'toString']);
  dart.defineExtensionAccessors(SplayTreeSet, [
    'iterator',
    'length',
    'isEmpty',
    'isNotEmpty',
    'first',
    'last',
    'single'
  ]);
  return SplayTreeSet;
});
collection.SplayTreeSet = collection.SplayTreeSet$();
dart.addTypeTests(collection.SplayTreeSet, _is_SplayTreeSet_default);
var C80;
var C81;
collection._defaultEquals = function _defaultEquals(a, b) {
  return dart.equals(a, b);
};
collection._defaultHashCode = function _defaultHashCode(a) {
  return dart.hashCode(a);
};
collection._isToStringVisiting = function _isToStringVisiting(o) {
  for (let i = 0; i < dart.notNull(collection._toStringVisiting[$length]); i = i + 1) {
    if (core.identical(o, collection._toStringVisiting[$_get](i))) return true;
  }
  return false;
};
collection._iterablePartsToStrings = function _iterablePartsToStrings(iterable, parts) {
  let length = 0;
  let count = 0;
  let it = iterable[$iterator];
  while (length < 80 || count < 3) {
    if (!dart.test(it.moveNext())) return;
    let next = dart.str(it.current);
    parts[$add](next);
    length = length + (next.length + 2);
    count = count + 1;
  }
  let penultimateString = null;
  let ultimateString = null;
  let penultimate = null;
  let ultimate = null;
  if (!dart.test(it.moveNext())) {
    if (count <= 3 + 2) return;
    ultimateString = parts[$removeLast]();
    penultimateString = parts[$removeLast]();
  } else {
    penultimate = it.current;
    count = count + 1;
    if (!dart.test(it.moveNext())) {
      if (count <= 3 + 1) {
        parts[$add](dart.str(penultimate));
        return;
      }
      ultimateString = dart.str(penultimate);
      penultimateString = parts[$removeLast]();
      length = length + (ultimateString.length + 2);
    } else {
      ultimate = it.current;
      count = count + 1;
      if (!(count < 100)) dart.assertFailed(null, L19, 353, 14, "count < maxCount");
      while (dart.test(it.moveNext())) {
        penultimate = ultimate;
        ultimate = it.current;
        count = count + 1;
        if (count > 100) {
          while (length > 80 - 3 - 2 && count > 3) {
            length = length - (parts[$removeLast]().length + 2);
            count = count - 1;
          }
          parts[$add]("...");
          return;
        }
      }
      penultimateString = dart.str(penultimate);
      ultimateString = dart.str(ultimate);
      length = length + (ultimateString.length + penultimateString.length + 2 * 2);
    }
  }
  let elision = null;
  if (count > dart.notNull(parts[$length]) + 2) {
    elision = "...";
    length = length + (3 + 2);
  }
  while (length > 80 && dart.notNull(parts[$length]) > 3) {
    length = length - (parts[$removeLast]().length + 2);
    if (elision == null) {
      elision = "...";
      length = length + (3 + 2);
    }
  }
  if (elision != null) {
    parts[$add](elision);
  }
  parts[$add](penultimateString);
  parts[$add](ultimateString);
};
collection._dynamicCompare = function _dynamicCompare(a, b) {
  return core.Comparable.compare(core.Comparable.as(a), core.Comparable.as(b));
};
collection._defaultCompare = function _defaultCompare(K) {
  let compare = C80 || CT.C80;
  if (dart.fnType(core.int, [K, K]).is(compare)) {
    return compare;
  }
  return C81 || CT.C81;
};
dart.defineLazy(collection, {
  /*collection._toStringVisiting*/get _toStringVisiting() {
    return [];
  }
}, true);
var _processed = dart.privateName(convert, "_processed");
var _data = dart.privateName(convert, "_data");
var _original$ = dart.privateName(convert, "_original");
var _isUpgraded = dart.privateName(convert, "_isUpgraded");
var _upgradedMap = dart.privateName(convert, "_upgradedMap");
var _process = dart.privateName(convert, "_process");
var _computeKeys = dart.privateName(convert, "_computeKeys");
var _upgrade = dart.privateName(convert, "_upgrade");
core.String = class String extends core.Object {
  static _stringFromJSArray(list, start, endOrNull) {
    let len = core.int.as(dart.dload(list, 'length'));
    let end = core.RangeError.checkValidRange(start, endOrNull, len);
    if (dart.notNull(start) > 0 || dart.notNull(end) < dart.notNull(len)) {
      list = dart.dsend(list, 'sublist', [start, end]);
    }
    return _js_helper.Primitives.stringFromCharCodes(JSArrayOfintL().as(list));
  }
  static _stringFromUint8List(charCodes, start, endOrNull) {
    let len = charCodes[$length];
    let end = core.RangeError.checkValidRange(start, endOrNull, len);
    return _js_helper.Primitives.stringFromNativeUint8List(charCodes, start, end);
  }
  static _stringFromIterable(charCodes, start, end) {
    if (dart.notNull(start) < 0) dart.throw(new core.RangeError.range(start, 0, charCodes[$length]));
    if (end != null && dart.notNull(end) < dart.notNull(start)) {
      dart.throw(new core.RangeError.range(end, start, charCodes[$length]));
    }
    let it = charCodes[$iterator];
    for (let i = 0; i < dart.notNull(start); i = i + 1) {
      if (!dart.test(it.moveNext())) {
        dart.throw(new core.RangeError.range(start, 0, i));
      }
    }
    let list = JSArrayOfintL().of([]);
    if (end == null) {
      while (dart.test(it.moveNext()))
        list[$add](it.current);
    } else {
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        if (!dart.test(it.moveNext())) {
          dart.throw(new core.RangeError.range(end, start, i));
        }
        list[$add](it.current);
      }
    }
    return _js_helper.Primitives.stringFromCharCodes(JSArrayOfintL().as(list));
  }
  static is(o) {
    return typeof o == "string";
  }
  static as(o) {
    if (typeof o == "string" || o == null) return o;
    return dart.as(o, core.String);
  }
  static fromCharCodes(charCodes, start = 0, end = null) {
    if (_interceptors.JSArray.is(charCodes)) {
      return core.String._stringFromJSArray(charCodes, start, end);
    }
    if (_native_typed_data.NativeUint8List.is(charCodes)) {
      return core.String._stringFromUint8List(charCodes, start, end);
    }
    return core.String._stringFromIterable(charCodes, start, end);
  }
  static fromCharCode(charCode) {
    return _js_helper.Primitives.stringFromCharCode(charCode);
  }
  static fromEnvironment(name, opts) {
    let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : "";
    dart.throw(new core.UnsupportedError.new("String.fromEnvironment can only be used as a const constructor"));
  }
};
(core.String[dart.mixinNew] = function() {
}).prototype = core.String.prototype;
dart.addTypeCaches(core.String);
core.String[dart.implements] = () => [core.Comparable$(core.String), core.Pattern];
dart.setLibraryUri(core.String, L1$);
convert._JsonMap = class _JsonMap extends collection.MapBase$(core.String, dart.dynamic) {
  _get(key) {
    if (dart.test(this[_isUpgraded])) {
      return this[_upgradedMap][$_get](key);
    } else if (!(typeof key == 'string')) {
      return null;
    } else {
      let result = convert._JsonMap._getProperty(this[_processed], core.String.as(key));
      if (dart.test(convert._JsonMap._isUnprocessed(result))) result = this[_process](core.String.as(key));
      return result;
    }
  }
  get length() {
    return dart.test(this[_isUpgraded]) ? this[_upgradedMap][$length] : this[_computeKeys]()[$length];
  }
  get isEmpty() {
    return this.length === 0;
  }
  get isNotEmpty() {
    return dart.notNull(this.length) > 0;
  }
  get keys() {
    if (dart.test(this[_isUpgraded])) return this[_upgradedMap][$keys];
    return new convert._JsonMapKeyIterable.new(this);
  }
  get values() {
    if (dart.test(this[_isUpgraded])) return this[_upgradedMap][$values];
    return MappedIterableOfStringL$dynamic().new(this[_computeKeys](), dart.fn(each => this._get(each), dynamicTodynamic()));
  }
  _set(key, value$) {
    let value = value$;
    core.String.as(key);
    if (dart.test(this[_isUpgraded])) {
      this[_upgradedMap][$_set](key, value);
    } else if (dart.test(this.containsKey(key))) {
      let processed = this[_processed];
      convert._JsonMap._setProperty(processed, key, value);
      let original = this[_original$];
      if (!core.identical(original, processed)) {
        convert._JsonMap._setProperty(original, key, null);
      }
    } else {
      this[_upgrade]()[$_set](key, value);
    }
    return value$;
  }
  addAll(other) {
    MapOfStringL$dynamic().as(other);
    other[$forEach](dart.fn((key, value) => {
      this._set(key, value);
    }, StringLAnddynamicToNullN()));
  }
  containsValue(value) {
    if (dart.test(this[_isUpgraded])) return this[_upgradedMap][$containsValue](value);
    let keys = this[_computeKeys]();
    for (let i = 0; i < dart.notNull(keys[$length]); i = i + 1) {
      let key = keys[$_get](i);
      if (dart.equals(this._get(key), value)) return true;
    }
    return false;
  }
  containsKey(key) {
    if (dart.test(this[_isUpgraded])) return this[_upgradedMap][$containsKey](key);
    if (!(typeof key == 'string')) return false;
    return convert._JsonMap._hasProperty(this[_original$], core.String.as(key));
  }
  putIfAbsent(key, ifAbsent) {
    core.String.as(key);
    VoidToLdynamic().as(ifAbsent);
    if (dart.test(this.containsKey(key))) return this._get(key);
    let value = ifAbsent();
    this._set(key, value);
    return value;
  }
  remove(key) {
    if (!dart.test(this[_isUpgraded]) && !dart.test(this.containsKey(key))) return null;
    return this[_upgrade]()[$remove](key);
  }
  clear() {
    if (dart.test(this[_isUpgraded])) {
      this[_upgradedMap][$clear]();
    } else {
      if (this[_data] != null) {
        dart.dsend(this[_data], 'clear', []);
      }
      this[_original$] = this[_processed] = null;
      this[_data] = new _js_helper.LinkedMap.new();
    }
  }
  forEach(f) {
    if (dart.test(this[_isUpgraded])) return this[_upgradedMap][$forEach](f);
    let keys = this[_computeKeys]();
    for (let i = 0; i < dart.notNull(keys[$length]); i = i + 1) {
      let key = keys[$_get](i);
      let value = convert._JsonMap._getProperty(this[_processed], key);
      if (dart.test(convert._JsonMap._isUnprocessed(value))) {
        value = convert._convertJsonToDartLazy(convert._JsonMap._getProperty(this[_original$], key));
        convert._JsonMap._setProperty(this[_processed], key, value);
      }
      f(key, value);
      if (!core.identical(keys, this[_data])) {
        dart.throw(new core.ConcurrentModificationError.new(this));
      }
    }
  }
  get [_isUpgraded]() {
    return this[_processed] == null;
  }
  get [_upgradedMap]() {
    if (!dart.test(this[_isUpgraded])) dart.assertFailed(null, L39, 269, 12, "_isUpgraded");
    return this[_data];
  }
  [_computeKeys]() {
    if (!!dart.test(this[_isUpgraded])) dart.assertFailed(null, L39, 277, 12, "!_isUpgraded");
    let keys = core.List.as(this[_data]);
    if (keys == null) {
      keys = this[_data] = convert._JsonMap._getPropertyNames(this[_original$]);
    }
    return keys;
  }
  [_upgrade]() {
    if (dart.test(this[_isUpgraded])) return this[_upgradedMap];
    let result = new (IdentityMapOfStringL$dynamic()).new();
    let keys = this[_computeKeys]();
    for (let i = 0; i < dart.notNull(keys[$length]); i = i + 1) {
      let key = keys[$_get](i);
      result[$_set](key, this._get(key));
    }
    if (dart.test(keys[$isEmpty])) {
      keys[$add](null);
    } else {
      keys[$clear]();
    }
    this[_original$] = this[_processed] = null;
    this[_data] = result;
    if (!dart.test(this[_isUpgraded])) dart.assertFailed(null, L39, 310, 12, "_isUpgraded");
    return result;
  }
  [_process](key) {
    if (!dart.test(convert._JsonMap._hasProperty(this[_original$], key))) return null;
    let result = convert._convertJsonToDartLazy(convert._JsonMap._getProperty(this[_original$], key));
    return convert._JsonMap._setProperty(this[_processed], key, result);
  }
  static _hasProperty(object, key) {
    return Object.prototype.hasOwnProperty.call(object, key);
  }
  static _getProperty(object, key) {
    return object[key];
  }
  static _setProperty(object, key, value) {
    return object[key] = value;
  }
  static _getPropertyNames(object) {
    return Object.keys(object);
  }
  static _isUnprocessed(object) {
    return typeof object == "undefined";
  }
  static _newJavaScriptObject() {
    return Object.create(null);
  }
};
(convert._JsonMap.new = function(_original) {
  this[_processed] = convert._JsonMap._newJavaScriptObject();
  this[_data] = null;
  this[_original$] = _original;
  ;
}).prototype = convert._JsonMap.prototype;
dart.addTypeTests(convert._JsonMap);
dart.addTypeCaches(convert._JsonMap);
dart.setMethodSignature(convert._JsonMap, () => ({
  __proto__: dart.getMethods(convert._JsonMap.__proto__),
  _get: dart.fnType(dart.dynamic, [core.Object]),
  [$_get]: dart.fnType(dart.dynamic, [core.Object]),
  _set: dart.fnType(dart.void, [core.Object, core.Object]),
  [$_set]: dart.fnType(dart.void, [core.Object, core.Object]),
  remove: dart.fnType(dart.dynamic, [core.Object]),
  [$remove]: dart.fnType(dart.dynamic, [core.Object]),
  clear: dart.fnType(dart.void, []),
  [$clear]: dart.fnType(dart.void, []),
  [_computeKeys]: dart.fnType(core.List$(core.String), []),
  [_upgrade]: dart.fnType(core.Map$(core.String, dart.dynamic), []),
  [_process]: dart.fnType(dart.dynamic, [core.String])
}));
dart.setGetterSignature(convert._JsonMap, () => ({
  __proto__: dart.getGetters(convert._JsonMap.__proto__),
  keys: core.Iterable$(core.String),
  [$keys]: core.Iterable$(core.String),
  [_isUpgraded]: core.bool,
  [_upgradedMap]: core.Map$(core.String, dart.dynamic)
}));
dart.setLibraryUri(convert._JsonMap, L13);
dart.setFieldSignature(convert._JsonMap, () => ({
  __proto__: dart.getFields(convert._JsonMap.__proto__),
  [_original$]: dart.fieldType(dart.dynamic),
  [_processed]: dart.fieldType(dart.dynamic),
  [_data]: dart.fieldType(dart.dynamic)
}));
dart.defineExtensionMethods(convert._JsonMap, [
  '_get',
  '_set',
  'addAll',
  'containsValue',
  'containsKey',
  'putIfAbsent',
  'remove',
  'clear',
  'forEach'
]);
dart.defineExtensionAccessors(convert._JsonMap, [
  'length',
  'isEmpty',
  'isNotEmpty',
  'keys',
  'values'
]);
var _parent$ = dart.privateName(convert, "_parent");
convert._JsonMapKeyIterable = class _JsonMapKeyIterable extends _internal.ListIterable$(core.String) {
  get length() {
    return this[_parent$].length;
  }
  elementAt(index) {
    return dart.test(this[_parent$][_isUpgraded]) ? this[_parent$].keys[$elementAt](index) : this[_parent$][_computeKeys]()[$_get](index);
  }
  get iterator() {
    return dart.test(this[_parent$][_isUpgraded]) ? this[_parent$].keys[$iterator] : this[_parent$][_computeKeys]()[$iterator];
  }
  contains(key) {
    return this[_parent$].containsKey(key);
  }
};
(convert._JsonMapKeyIterable.new = function(_parent) {
  this[_parent$] = _parent;
  convert._JsonMapKeyIterable.__proto__.new.call(this);
  ;
}).prototype = convert._JsonMapKeyIterable.prototype;
dart.addTypeTests(convert._JsonMapKeyIterable);
dart.addTypeCaches(convert._JsonMapKeyIterable);
dart.setLibraryUri(convert._JsonMapKeyIterable, L13);
dart.setFieldSignature(convert._JsonMapKeyIterable, () => ({
  __proto__: dart.getFields(convert._JsonMapKeyIterable.__proto__),
  [_parent$]: dart.finalFieldType(convert._JsonMap)
}));
dart.defineExtensionMethods(convert._JsonMapKeyIterable, ['elementAt', 'contains']);
dart.defineExtensionAccessors(convert._JsonMapKeyIterable, ['length', 'iterator']);
var _reviver$ = dart.privateName(convert, "_reviver");
var _sink$0 = dart.privateName(convert, "_sink");
var _stringSink$ = dart.privateName(convert, "_stringSink");
convert.StringConversionSinkMixin = class StringConversionSinkMixin extends core.Object {
  add(str) {
    core.String.as(str);
    this.addSlice(str, 0, str.length, false);
  }
  asUtf8Sink(allowMalformed) {
    return new convert._Utf8ConversionSink.new(this, allowMalformed);
  }
  asStringSink() {
    return new convert._StringConversionSinkAsStringSinkAdapter.new(this);
  }
};
(convert.StringConversionSinkMixin.new = function() {
  ;
}).prototype = convert.StringConversionSinkMixin.prototype;
dart.addTypeTests(convert.StringConversionSinkMixin);
dart.addTypeCaches(convert.StringConversionSinkMixin);
convert.StringConversionSinkMixin[dart.implements] = () => [convert.StringConversionSink];
dart.setMethodSignature(convert.StringConversionSinkMixin, () => ({
  __proto__: dart.getMethods(convert.StringConversionSinkMixin.__proto__),
  add: dart.fnType(dart.void, [core.Object]),
  asUtf8Sink: dart.fnType(convert.ByteConversionSink, [core.bool]),
  asStringSink: dart.fnType(convert.ClosableStringSink, [])
}));
dart.setLibraryUri(convert.StringConversionSinkMixin, L13);
convert.StringConversionSinkBase = class StringConversionSinkBase extends convert.StringConversionSinkMixin {};
(convert.StringConversionSinkBase.new = function() {
  ;
}).prototype = convert.StringConversionSinkBase.prototype;
dart.addTypeTests(convert.StringConversionSinkBase);
dart.addTypeCaches(convert.StringConversionSinkBase);
dart.setLibraryUri(convert.StringConversionSinkBase, L13);
const _is__StringSinkConversionSink_default = Symbol('_is__StringSinkConversionSink_default');
convert._StringSinkConversionSink$ = dart.generic(TStringSink => {
  class _StringSinkConversionSink extends convert.StringConversionSinkBase {
    close() {
    }
    addSlice(str, start, end, isLast) {
      if (start !== 0 || end !== str.length) {
        for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
          this[_stringSink$].writeCharCode(str[$codeUnitAt](i));
        }
      } else {
        this[_stringSink$].write(str);
      }
      if (dart.test(isLast)) this.close();
    }
    add(str) {
      core.String.as(str);
      this[_stringSink$].write(str);
    }
    asUtf8Sink(allowMalformed) {
      return new convert._Utf8StringSinkAdapter.new(this, this[_stringSink$], allowMalformed);
    }
    asStringSink() {
      return new convert._ClosableStringSink.new(this[_stringSink$], dart.bind(this, 'close'));
    }
  }
  (_StringSinkConversionSink.new = function(_stringSink) {
    this[_stringSink$] = _stringSink;
    ;
  }).prototype = _StringSinkConversionSink.prototype;
  dart.addTypeTests(_StringSinkConversionSink);
  _StringSinkConversionSink.prototype[_is__StringSinkConversionSink_default] = true;
  dart.addTypeCaches(_StringSinkConversionSink);
  dart.setMethodSignature(_StringSinkConversionSink, () => ({
    __proto__: dart.getMethods(_StringSinkConversionSink.__proto__),
    close: dart.fnType(dart.void, []),
    addSlice: dart.fnType(dart.void, [core.String, core.int, core.int, core.bool])
  }));
  dart.setLibraryUri(_StringSinkConversionSink, L13);
  dart.setFieldSignature(_StringSinkConversionSink, () => ({
    __proto__: dart.getFields(_StringSinkConversionSink.__proto__),
    [_stringSink$]: dart.fieldType(TStringSink)
  }));
  return _StringSinkConversionSink;
});
convert._StringSinkConversionSink = convert._StringSinkConversionSink$();
dart.addTypeTests(convert._StringSinkConversionSink, _is__StringSinkConversionSink_default);
core.StringSink = class StringSink extends core.Object {};
(core.StringSink.new = function() {
  ;
}).prototype = core.StringSink.prototype;
dart.addTypeTests(core.StringSink);
dart.addTypeCaches(core.StringSink);
dart.setLibraryUri(core.StringSink, L1$);
convert._JsonDecoderSink = class _JsonDecoderSink extends convert._StringSinkConversionSink$(core.StringSink) {
  close() {
    super.close();
    let buffer = core.StringBuffer.as(this[_stringSink$]);
    let accumulated = dart.toString(buffer);
    buffer.clear();
    let decoded = convert._parseJson(accumulated, this[_reviver$]);
    this[_sink$0].add(decoded);
    this[_sink$0].close();
  }
};
(convert._JsonDecoderSink.new = function(_reviver, _sink) {
  this[_reviver$] = _reviver;
  this[_sink$0] = _sink;
  convert._JsonDecoderSink.__proto__.new.call(this, new core.StringBuffer.new(""));
  ;
}).prototype = convert._JsonDecoderSink.prototype;
dart.addTypeTests(convert._JsonDecoderSink);
dart.addTypeCaches(convert._JsonDecoderSink);
dart.setLibraryUri(convert._JsonDecoderSink, L13);
dart.setFieldSignature(convert._JsonDecoderSink, () => ({
  __proto__: dart.getFields(convert._JsonDecoderSink.__proto__),
  [_reviver$]: dart.finalFieldType(dart.fnType(dart.dynamic, [core.Object, core.Object])),
  [_sink$0]: dart.finalFieldType(core.Sink$(core.Object))
}));
var _allowInvalid = dart.privateName(convert, "_allowInvalid");
var _UnicodeSubsetDecoder__subsetMask = dart.privateName(convert, "_UnicodeSubsetDecoder._subsetMask");
var _UnicodeSubsetDecoder__allowInvalid = dart.privateName(convert, "_UnicodeSubsetDecoder._allowInvalid");
var C82;
var C83;
var _UnicodeSubsetEncoder__subsetMask = dart.privateName(convert, "_UnicodeSubsetEncoder._subsetMask");
var C84;
const _is_Codec_default = Symbol('_is_Codec_default');
convert.Codec$ = dart.generic((S, T) => {
  var _InvertedCodecOfTL$SL = () => (_InvertedCodecOfTL$SL = dart.constFn(convert._InvertedCodec$(T, S)))();
  class Codec extends core.Object {
    encode(input) {
      S.as(input);
      return this.encoder.convert(input);
    }
    decode(encoded) {
      T.as(encoded);
      return this.decoder.convert(encoded);
    }
    fuse(R, other) {
      convert.Codec$(T, R).as(other);
      return new (convert._FusedCodec$(S, T, R)).new(this, other);
    }
    get inverted() {
      return new (_InvertedCodecOfTL$SL()).new(this);
    }
  }
  (Codec.new = function() {
    ;
  }).prototype = Codec.prototype;
  dart.addTypeTests(Codec);
  Codec.prototype[_is_Codec_default] = true;
  dart.addTypeCaches(Codec);
  dart.setMethodSignature(Codec, () => ({
    __proto__: dart.getMethods(Codec.__proto__),
    encode: dart.fnType(T, [core.Object]),
    decode: dart.fnType(S, [core.Object]),
    fuse: dart.gFnType(R => [convert.Codec$(S, R), [core.Object]])
  }));
  dart.setGetterSignature(Codec, () => ({
    __proto__: dart.getGetters(Codec.__proto__),
    inverted: convert.Codec$(T, S)
  }));
  dart.setLibraryUri(Codec, L13);
  return Codec;
});
convert.Codec = convert.Codec$();
dart.addTypeTests(convert.Codec, _is_Codec_default);
core.List$ = dart.generic(E => {
  class List extends core.Object {
    static new(_length = null) {
      let list = null;
      if (_length === void 0) {
        list = [];
      } else {
        let length = _length;
        if (_length == null || length < 0) {
          dart.throw(new core.ArgumentError.new("Length must be a non-negative integer: " + dart.str(_length)));
        }
        list = new Array(length);
        list.fill(null);
        _interceptors.JSArray.markFixedList(list);
      }
      return _interceptors.JSArray$(E).of(list);
    }
    static filled(length, fill, opts) {
      if (length == null) dart.argumentError(length);
      let growable = opts && 'growable' in opts ? opts.growable : false;
      let list = _interceptors.JSArray$(E).of(new Array(length));
      list.fill(fill);
      if (!dart.test(growable)) _interceptors.JSArray.markFixedList(list);
      return list;
    }
    static from(elements, opts) {
      let growable = opts && 'growable' in opts ? opts.growable : true;
      let list = _interceptors.JSArray$(E).of([]);
      if (core.Iterable$(E).is(elements)) {
        for (let e of elements) {
          list[$add](e);
        }
      } else {
        for (let e of elements) {
          list[$add](E.as(e));
        }
      }
      if (!dart.test(growable)) _interceptors.JSArray.markFixedList(list);
      return list;
    }
    static of(elements, opts) {
      let growable = opts && 'growable' in opts ? opts.growable : true;
      return core.List$(E).from(elements, {growable: growable});
    }
    static generate(length, generator, opts) {
      let t65;
      let growable = opts && 'growable' in opts ? opts.growable : true;
      let result = null;
      if (dart.test(growable)) {
        result = (t65 = _interceptors.JSArray$(E).of([]), t65[$length] = length, t65);
      } else {
        result = core.List$(E).new(length);
      }
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        result[$_set](i, generator(i));
      }
      return result;
    }
    static unmodifiable(elements) {
      let list = core.List$(E).from(elements);
      _interceptors.JSArray.markUnmodifiableList(list);
      return list;
    }
    static castFrom(S, T, source) {
      return new (_internal.CastList$(S, T)).new(source);
    }
    static copyRange(T, target, at, source, start = null, end = null) {
      start == null ? start = 0 : null;
      end = core.RangeError.checkValidRange(start, end, source[$length]);
      let length = dart.notNull(end) - dart.notNull(start);
      if (dart.notNull(target[$length]) < dart.notNull(at) + length) {
        dart.throw(new core.ArgumentError.value(target, "target", "Not big enough to hold " + dart.str(length) + " elements at position " + dart.str(at)));
      }
      if (source != target || dart.notNull(start) >= dart.notNull(at)) {
        for (let i = 0; i < length; i = i + 1) {
          target[$_set](dart.notNull(at) + i, source[$_get](dart.notNull(start) + i));
        }
      } else {
        for (let i = length; (i = i - 1) >= 0;) {
          target[$_set](dart.notNull(at) + i, source[$_get](dart.notNull(start) + i));
        }
      }
    }
    static writeIterable(T, target, at, source) {
      core.RangeError.checkValueInInterval(at, 0, target[$length], "at");
      let index = at;
      let targetLength = target[$length];
      for (let element of source) {
        if (index == targetLength) {
          dart.throw(new core.IndexError.new(targetLength, target));
        }
        target[$_set](index, element);
        index = dart.notNull(index) + 1;
      }
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
  }
  (List[dart.mixinNew] = function() {
  }).prototype = List.prototype;
  dart.addTypeTests(List);
  List.prototype[dart.isList] = true;
  dart.addTypeCaches(List);
  List[dart.implements] = () => [_internal.EfficientLengthIterable$(E)];
  dart.setLibraryUri(List, L1$);
  return List;
});
core.List = core.List$();
dart.addTypeTests(core.List, dart.isList);
convert.Encoding = class Encoding extends convert.Codec$(core.String, core.List$(core.int)) {
  decodeStream(byteStream) {
    return this.decoder.bind(byteStream).fold(core.StringBuffer, new core.StringBuffer.new(), dart.fn((buffer, string) => {
      let t65;
      t65 = buffer;
      t65.write(string);
      return t65;
    }, StringBufferLAndStringLToStringBufferL())).then(core.String, dart.fn(buffer => dart.toString(buffer), StringBufferLToStringL()));
  }
  static getByName(name) {
    if (name == null) return null;
    name = name[$toLowerCase]();
    return convert.Encoding._nameToEncoding[$_get](name);
  }
};
(convert.Encoding.new = function() {
  convert.Encoding.__proto__.new.call(this);
  ;
}).prototype = convert.Encoding.prototype;
dart.addTypeTests(convert.Encoding);
dart.addTypeCaches(convert.Encoding);
dart.setMethodSignature(convert.Encoding, () => ({
  __proto__: dart.getMethods(convert.Encoding.__proto__),
  decodeStream: dart.fnType(async.Future$(core.String), [async.Stream$(core.List$(core.int))])
}));
dart.setLibraryUri(convert.Encoding, L13);
dart.defineLazy(convert.Encoding, {
  /*convert.Encoding._nameToEncoding*/get _nameToEncoding() {
    return new (IdentityMapOfStringL$EncodingL()).from(["iso_8859-1:1987", convert.latin1, "iso-ir-100", convert.latin1, "iso_8859-1", convert.latin1, "iso-8859-1", convert.latin1, "latin1", convert.latin1, "l1", convert.latin1, "ibm819", convert.latin1, "cp819", convert.latin1, "csisolatin1", convert.latin1, "iso-ir-6", convert.ascii, "ansi_x3.4-1968", convert.ascii, "ansi_x3.4-1986", convert.ascii, "iso_646.irv:1991", convert.ascii, "iso646-us", convert.ascii, "us-ascii", convert.ascii, "us", convert.ascii, "ibm367", convert.ascii, "cp367", convert.ascii, "csascii", convert.ascii, "ascii", convert.ascii, "csutf8", convert.utf8, "utf-8", convert.utf8]);
  }
}, true);
var _allowInvalid$ = dart.privateName(convert, "AsciiCodec._allowInvalid");
convert.AsciiCodec = class AsciiCodec extends convert.Encoding {
  get [_allowInvalid]() {
    return this[_allowInvalid$];
  }
  set [_allowInvalid](value) {
    super[_allowInvalid] = value;
  }
  get name() {
    return "us-ascii";
  }
  encode(source) {
    core.String.as(source);
    return this.encoder.convert(source);
  }
  decode(bytes, opts) {
    ListOfintL().as(bytes);
    let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : null;
    allowInvalid == null ? allowInvalid = this[_allowInvalid] : null;
    if (dart.test(allowInvalid)) {
      return (C82 || CT.C82).convert(bytes);
    } else {
      return (C83 || CT.C83).convert(bytes);
    }
  }
  get encoder() {
    return C84 || CT.C84;
  }
  get decoder() {
    return dart.test(this[_allowInvalid]) ? C82 || CT.C82 : C83 || CT.C83;
  }
};
(convert.AsciiCodec.new = function(opts) {
  let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
  this[_allowInvalid$] = allowInvalid;
  convert.AsciiCodec.__proto__.new.call(this);
  ;
}).prototype = convert.AsciiCodec.prototype;
dart.addTypeTests(convert.AsciiCodec);
dart.addTypeCaches(convert.AsciiCodec);
dart.setMethodSignature(convert.AsciiCodec, () => ({
  __proto__: dart.getMethods(convert.AsciiCodec.__proto__),
  encode: dart.fnType(typed_data.Uint8List, [core.Object]),
  decode: dart.fnType(core.String, [core.Object], {allowInvalid: core.bool}, {})
}));
dart.setGetterSignature(convert.AsciiCodec, () => ({
  __proto__: dart.getGetters(convert.AsciiCodec.__proto__),
  name: core.String,
  encoder: convert.AsciiEncoder,
  decoder: convert.AsciiDecoder
}));
dart.setLibraryUri(convert.AsciiCodec, L13);
dart.setFieldSignature(convert.AsciiCodec, () => ({
  __proto__: dart.getFields(convert.AsciiCodec.__proto__),
  [_allowInvalid]: dart.finalFieldType(core.bool)
}));
var _subsetMask$ = dart.privateName(convert, "_subsetMask");
convert._UnicodeSubsetEncoder = class _UnicodeSubsetEncoder extends convert.Converter$(core.String, core.List$(core.int)) {
  get [_subsetMask$]() {
    return this[_subsetMask$0];
  }
  set [_subsetMask$](value) {
    super[_subsetMask$] = value;
  }
  convert(string, start = 0, end = null) {
    core.String.as(string);
    let stringLength = string.length;
    end = core.RangeError.checkValidRange(start, end, stringLength);
    let length = dart.notNull(end) - dart.notNull(start);
    let result = _native_typed_data.NativeUint8List.new(length);
    for (let i = 0; i < length; i = i + 1) {
      let codeUnit = string[$codeUnitAt](dart.notNull(start) + i);
      if ((codeUnit & ~dart.notNull(this[_subsetMask$]) >>> 0) !== 0) {
        dart.throw(new core.ArgumentError.value(string, "string", "Contains invalid characters."));
      }
      result[$_set](i, codeUnit);
    }
    return result;
  }
  startChunkedConversion(sink) {
    SinkOfListLOfintL().as(sink);
    return new convert._UnicodeSubsetEncoderSink.new(this[_subsetMask$], convert.ByteConversionSink.is(sink) ? sink : new convert._ByteAdapterSink.new(sink));
  }
  bind(stream) {
    StreamOfStringL().as(stream);
    return super.bind(stream);
  }
};
(convert._UnicodeSubsetEncoder.new = function(_subsetMask) {
  this[_subsetMask$0] = _subsetMask;
  convert._UnicodeSubsetEncoder.__proto__.new.call(this);
  ;
}).prototype = convert._UnicodeSubsetEncoder.prototype;
dart.addTypeTests(convert._UnicodeSubsetEncoder);
dart.addTypeCaches(convert._UnicodeSubsetEncoder);
const _subsetMask$0 = _UnicodeSubsetEncoder__subsetMask;
dart.setMethodSignature(convert._UnicodeSubsetEncoder, () => ({
  __proto__: dart.getMethods(convert._UnicodeSubsetEncoder.__proto__),
  convert: dart.fnType(typed_data.Uint8List, [core.Object], [core.int, core.int]),
  startChunkedConversion: dart.fnType(convert.StringConversionSink, [core.Object])
}));
dart.setLibraryUri(convert._UnicodeSubsetEncoder, L13);
dart.setFieldSignature(convert._UnicodeSubsetEncoder, () => ({
  __proto__: dart.getFields(convert._UnicodeSubsetEncoder.__proto__),
  [_subsetMask$]: dart.finalFieldType(core.int)
}));
convert.AsciiEncoder = class AsciiEncoder extends convert._UnicodeSubsetEncoder {};
(convert.AsciiEncoder.new = function() {
  convert.AsciiEncoder.__proto__.new.call(this, 127);
  ;
}).prototype = convert.AsciiEncoder.prototype;
dart.addTypeTests(convert.AsciiEncoder);
dart.addTypeCaches(convert.AsciiEncoder);
dart.setLibraryUri(convert.AsciiEncoder, L13);
convert._UnicodeSubsetEncoderSink = class _UnicodeSubsetEncoderSink extends convert.StringConversionSinkBase {
  close() {
    this[_sink$0].close();
  }
  addSlice(source, start, end, isLast) {
    core.RangeError.checkValidRange(start, end, source.length);
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      let codeUnit = source[$codeUnitAt](i);
      if ((codeUnit & ~dart.notNull(this[_subsetMask$]) >>> 0) !== 0) {
        dart.throw(new core.ArgumentError.new("Source contains invalid character with code point: " + dart.str(codeUnit) + "."));
      }
    }
    this[_sink$0].add(source[$codeUnits][$sublist](start, end));
    if (dart.test(isLast)) {
      this.close();
    }
  }
};
(convert._UnicodeSubsetEncoderSink.new = function(_subsetMask, _sink) {
  this[_subsetMask$] = _subsetMask;
  this[_sink$0] = _sink;
  ;
}).prototype = convert._UnicodeSubsetEncoderSink.prototype;
dart.addTypeTests(convert._UnicodeSubsetEncoderSink);
dart.addTypeCaches(convert._UnicodeSubsetEncoderSink);
dart.setMethodSignature(convert._UnicodeSubsetEncoderSink, () => ({
  __proto__: dart.getMethods(convert._UnicodeSubsetEncoderSink.__proto__),
  close: dart.fnType(dart.void, []),
  addSlice: dart.fnType(dart.void, [core.String, core.int, core.int, core.bool])
}));
dart.setLibraryUri(convert._UnicodeSubsetEncoderSink, L13);
dart.setFieldSignature(convert._UnicodeSubsetEncoderSink, () => ({
  __proto__: dart.getFields(convert._UnicodeSubsetEncoderSink.__proto__),
  [_sink$0]: dart.finalFieldType(convert.ByteConversionSink),
  [_subsetMask$]: dart.finalFieldType(core.int)
}));
var _convertInvalid = dart.privateName(convert, "_convertInvalid");
convert._UnicodeSubsetDecoder = class _UnicodeSubsetDecoder extends convert.Converter$(core.List$(core.int), core.String) {
  get [_allowInvalid]() {
    return this[_allowInvalid$0];
  }
  set [_allowInvalid](value) {
    super[_allowInvalid] = value;
  }
  get [_subsetMask$]() {
    return this[_subsetMask$1];
  }
  set [_subsetMask$](value) {
    super[_subsetMask$] = value;
  }
  convert(bytes, start = 0, end = null) {
    ListOfintL().as(bytes);
    let byteCount = bytes[$length];
    core.RangeError.checkValidRange(start, end, byteCount);
    end == null ? end = byteCount : null;
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      let byte = bytes[$_get](i);
      if ((dart.notNull(byte) & ~dart.notNull(this[_subsetMask$]) >>> 0) !== 0) {
        if (!dart.test(this[_allowInvalid])) {
          dart.throw(new core.FormatException.new("Invalid value in input: " + dart.str(byte)));
        }
        return this[_convertInvalid](bytes, start, end);
      }
    }
    return core.String.fromCharCodes(bytes, start, end);
  }
  [_convertInvalid](bytes, start, end) {
    let buffer = new core.StringBuffer.new();
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      let value = bytes[$_get](i);
      if ((dart.notNull(value) & ~dart.notNull(this[_subsetMask$]) >>> 0) !== 0) value = 65533;
      buffer.writeCharCode(value);
    }
    return buffer.toString();
  }
  bind(stream) {
    StreamOfListLOfintL().as(stream);
    return super.bind(stream);
  }
};
(convert._UnicodeSubsetDecoder.new = function(_allowInvalid, _subsetMask) {
  this[_allowInvalid$0] = _allowInvalid;
  this[_subsetMask$1] = _subsetMask;
  convert._UnicodeSubsetDecoder.__proto__.new.call(this);
  ;
}).prototype = convert._UnicodeSubsetDecoder.prototype;
dart.addTypeTests(convert._UnicodeSubsetDecoder);
dart.addTypeCaches(convert._UnicodeSubsetDecoder);
const _allowInvalid$0 = _UnicodeSubsetDecoder__allowInvalid;
const _subsetMask$1 = _UnicodeSubsetDecoder__subsetMask;
dart.setMethodSignature(convert._UnicodeSubsetDecoder, () => ({
  __proto__: dart.getMethods(convert._UnicodeSubsetDecoder.__proto__),
  convert: dart.fnType(core.String, [core.Object], [core.int, core.int]),
  [_convertInvalid]: dart.fnType(core.String, [core.List$(core.int), core.int, core.int])
}));
dart.setLibraryUri(convert._UnicodeSubsetDecoder, L13);
dart.setFieldSignature(convert._UnicodeSubsetDecoder, () => ({
  __proto__: dart.getFields(convert._UnicodeSubsetDecoder.__proto__),
  [_allowInvalid]: dart.finalFieldType(core.bool),
  [_subsetMask$]: dart.finalFieldType(core.int)
}));
convert.AsciiDecoder = class AsciiDecoder extends convert._UnicodeSubsetDecoder {
  startChunkedConversion(sink) {
    SinkOfStringL().as(sink);
    let stringSink = null;
    if (convert.StringConversionSink.is(sink)) {
      stringSink = sink;
    } else {
      stringSink = new convert._StringAdapterSink.new(sink);
    }
    if (dart.test(this[_allowInvalid])) {
      return new convert._ErrorHandlingAsciiDecoderSink.new(stringSink.asUtf8Sink(false));
    } else {
      return new convert._SimpleAsciiDecoderSink.new(stringSink);
    }
  }
};
(convert.AsciiDecoder.new = function(opts) {
  let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
  convert.AsciiDecoder.__proto__.new.call(this, allowInvalid, 127);
  ;
}).prototype = convert.AsciiDecoder.prototype;
dart.addTypeTests(convert.AsciiDecoder);
dart.addTypeCaches(convert.AsciiDecoder);
dart.setMethodSignature(convert.AsciiDecoder, () => ({
  __proto__: dart.getMethods(convert.AsciiDecoder.__proto__),
  startChunkedConversion: dart.fnType(convert.ByteConversionSink, [core.Object])
}));
dart.setLibraryUri(convert.AsciiDecoder, L13);
var _utf8Sink$ = dart.privateName(convert, "_utf8Sink");
var C85;
const _is_ChunkedConversionSink_default = Symbol('_is_ChunkedConversionSink_default');
convert.ChunkedConversionSink$ = dart.generic(T => {
  class ChunkedConversionSink extends core.Object {}
  (ChunkedConversionSink.new = function() {
    ;
  }).prototype = ChunkedConversionSink.prototype;
  dart.addTypeTests(ChunkedConversionSink);
  ChunkedConversionSink.prototype[_is_ChunkedConversionSink_default] = true;
  dart.addTypeCaches(ChunkedConversionSink);
  ChunkedConversionSink[dart.implements] = () => [core.Sink$(T)];
  dart.setLibraryUri(ChunkedConversionSink, L13);
  return ChunkedConversionSink;
});
convert.ChunkedConversionSink = convert.ChunkedConversionSink$();
dart.addTypeTests(convert.ChunkedConversionSink, _is_ChunkedConversionSink_default);
convert.ByteConversionSink = class ByteConversionSink extends convert.ChunkedConversionSink$(core.List$(core.int)) {};
(convert.ByteConversionSink.new = function() {
  convert.ByteConversionSink.__proto__.new.call(this);
  ;
}).prototype = convert.ByteConversionSink.prototype;
dart.addTypeTests(convert.ByteConversionSink);
dart.addTypeCaches(convert.ByteConversionSink);
dart.setLibraryUri(convert.ByteConversionSink, L13);
convert.ByteConversionSinkBase = class ByteConversionSinkBase extends convert.ByteConversionSink {
  addSlice(chunk, start, end, isLast) {
    this.add(chunk[$sublist](start, end));
    if (dart.test(isLast)) this.close();
  }
};
(convert.ByteConversionSinkBase.new = function() {
  convert.ByteConversionSinkBase.__proto__.new.call(this);
  ;
}).prototype = convert.ByteConversionSinkBase.prototype;
dart.addTypeTests(convert.ByteConversionSinkBase);
dart.addTypeCaches(convert.ByteConversionSinkBase);
dart.setMethodSignature(convert.ByteConversionSinkBase, () => ({
  __proto__: dart.getMethods(convert.ByteConversionSinkBase.__proto__),
  addSlice: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int, core.bool])
}));
dart.setLibraryUri(convert.ByteConversionSinkBase, L13);
convert._ErrorHandlingAsciiDecoderSink = class _ErrorHandlingAsciiDecoderSink extends convert.ByteConversionSinkBase {
  close() {
    this[_utf8Sink$].close();
  }
  add(source) {
    ListOfintL().as(source);
    this.addSlice(source, 0, source[$length], false);
  }
  addSlice(source, start, end, isLast) {
    core.RangeError.checkValidRange(start, end, source[$length]);
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      if ((dart.notNull(source[$_get](i)) & ~127 >>> 0) !== 0) {
        if (dart.notNull(i) > dart.notNull(start)) this[_utf8Sink$].addSlice(source, start, i, false);
        this[_utf8Sink$].add(C85 || CT.C85);
        start = dart.notNull(i) + 1;
      }
    }
    if (dart.notNull(start) < dart.notNull(end)) {
      this[_utf8Sink$].addSlice(source, start, end, isLast);
    } else if (dart.test(isLast)) {
      this.close();
    }
  }
};
(convert._ErrorHandlingAsciiDecoderSink.new = function(_utf8Sink) {
  this[_utf8Sink$] = _utf8Sink;
  convert._ErrorHandlingAsciiDecoderSink.__proto__.new.call(this);
  ;
}).prototype = convert._ErrorHandlingAsciiDecoderSink.prototype;
dart.addTypeTests(convert._ErrorHandlingAsciiDecoderSink);
dart.addTypeCaches(convert._ErrorHandlingAsciiDecoderSink);
dart.setMethodSignature(convert._ErrorHandlingAsciiDecoderSink, () => ({
  __proto__: dart.getMethods(convert._ErrorHandlingAsciiDecoderSink.__proto__),
  close: dart.fnType(dart.void, []),
  add: dart.fnType(dart.void, [core.Object])
}));
dart.setLibraryUri(convert._ErrorHandlingAsciiDecoderSink, L13);
dart.setFieldSignature(convert._ErrorHandlingAsciiDecoderSink, () => ({
  __proto__: dart.getFields(convert._ErrorHandlingAsciiDecoderSink.__proto__),
  [_utf8Sink$]: dart.fieldType(convert.ByteConversionSink)
}));
convert._SimpleAsciiDecoderSink = class _SimpleAsciiDecoderSink extends convert.ByteConversionSinkBase {
  close() {
    this[_sink$0].close();
  }
  add(source) {
    ListOfintL().as(source);
    for (let i = 0; i < dart.notNull(source[$length]); i = i + 1) {
      if ((dart.notNull(source[$_get](i)) & ~127 >>> 0) !== 0) {
        dart.throw(new core.FormatException.new("Source contains non-ASCII bytes."));
      }
    }
    this[_sink$0].add(core.String.fromCharCodes(source));
  }
  addSlice(source, start, end, isLast) {
    let length = source[$length];
    core.RangeError.checkValidRange(start, end, length);
    if (dart.notNull(start) < dart.notNull(end)) {
      if (start !== 0 || end != length) {
        source = source[$sublist](start, end);
      }
      this.add(source);
    }
    if (dart.test(isLast)) this.close();
  }
};
(convert._SimpleAsciiDecoderSink.new = function(_sink) {
  this[_sink$0] = _sink;
  convert._SimpleAsciiDecoderSink.__proto__.new.call(this);
  ;
}).prototype = convert._SimpleAsciiDecoderSink.prototype;
dart.addTypeTests(convert._SimpleAsciiDecoderSink);
dart.addTypeCaches(convert._SimpleAsciiDecoderSink);
dart.setMethodSignature(convert._SimpleAsciiDecoderSink, () => ({
  __proto__: dart.getMethods(convert._SimpleAsciiDecoderSink.__proto__),
  close: dart.fnType(dart.void, []),
  add: dart.fnType(dart.void, [core.Object])
}));
dart.setLibraryUri(convert._SimpleAsciiDecoderSink, L13);
dart.setFieldSignature(convert._SimpleAsciiDecoderSink, () => ({
  __proto__: dart.getFields(convert._SimpleAsciiDecoderSink.__proto__),
  [_sink$0]: dart.fieldType(core.Sink)
}));
var Base64Encoder__urlSafe = dart.privateName(convert, "Base64Encoder._urlSafe");
var C86;
var C87;
var _encoder = dart.privateName(convert, "_encoder");
var C88;
var _encoder$ = dart.privateName(convert, "Base64Codec._encoder");
convert.Base64Codec = class Base64Codec extends convert.Codec$(core.List$(core.int), core.String) {
  get [_encoder]() {
    return this[_encoder$];
  }
  set [_encoder](value) {
    super[_encoder] = value;
  }
  get encoder() {
    return this[_encoder];
  }
  get decoder() {
    return C88 || CT.C88;
  }
  decode(encoded) {
    core.String.as(encoded);
    return this.decoder.convert(encoded);
  }
  normalize(source, start = 0, end = null) {
    let t65, t65$, t65$0;
    end = core.RangeError.checkValidRange(start, end, source.length);
    let buffer = null;
    let sliceStart = start;
    let alphabet = convert._Base64Encoder._base64Alphabet;
    let inverseAlphabet = convert._Base64Decoder._inverseAlphabet;
    let firstPadding = -1;
    let firstPaddingSourceIndex = -1;
    let paddingCount = 0;
    for (let i = start; dart.notNull(i) < dart.notNull(end);) {
      let sliceEnd = i;
      let char = source[$codeUnitAt]((t65 = i, i = dart.notNull(t65) + 1, t65));
      let originalChar = char;
      if (char === 37) {
        if (dart.notNull(i) + 2 <= dart.notNull(end)) {
          char = _internal.parseHexByte(source, i);
          i = dart.notNull(i) + 2;
          if (char === 37) char = -1;
        } else {
          char = -1;
        }
      }
      if (0 <= dart.notNull(char) && dart.notNull(char) <= 127) {
        let value = inverseAlphabet[$_get](char);
        if (dart.notNull(value) >= 0) {
          char = alphabet[$codeUnitAt](value);
          if (char == originalChar) continue;
        } else if (value === -1) {
          if (firstPadding < 0) {
            firstPadding = dart.notNull((t65$0 = (t65$ = buffer, t65$ == null ? null : t65$.length), t65$0 == null ? 0 : t65$0)) + (dart.notNull(sliceEnd) - dart.notNull(sliceStart));
            firstPaddingSourceIndex = sliceEnd;
          }
          paddingCount = paddingCount + 1;
          if (originalChar === 61) continue;
        }
        if (value !== -2) {
          buffer == null ? buffer = new core.StringBuffer.new() : null;
          buffer.write(source[$substring](sliceStart, sliceEnd));
          buffer.writeCharCode(char);
          sliceStart = i;
          continue;
        }
      }
      dart.throw(new core.FormatException.new("Invalid base64 data", source, sliceEnd));
    }
    if (buffer != null) {
      buffer.write(source[$substring](sliceStart, end));
      if (firstPadding >= 0) {
        convert.Base64Codec._checkPadding(source, firstPaddingSourceIndex, end, firstPadding, paddingCount, buffer.length);
      } else {
        let endLength = (dart.notNull(buffer.length) - 1)[$modulo](4) + 1;
        if (endLength === 1) {
          dart.throw(new core.FormatException.new("Invalid base64 encoding length ", source, end));
        }
        while (endLength < 4) {
          buffer.write("=");
          endLength = endLength + 1;
        }
      }
      return source[$replaceRange](start, end, dart.toString(buffer));
    }
    let length = dart.notNull(end) - dart.notNull(start);
    if (firstPadding >= 0) {
      convert.Base64Codec._checkPadding(source, firstPaddingSourceIndex, end, firstPadding, paddingCount, length);
    } else {
      let endLength = length[$modulo](4);
      if (endLength === 1) {
        dart.throw(new core.FormatException.new("Invalid base64 encoding length ", source, end));
      }
      if (endLength > 1) {
        source = source[$replaceRange](end, end, endLength === 2 ? "==" : "=");
      }
    }
    return source;
  }
  static _checkPadding(source, sourceIndex, sourceEnd, firstPadding, paddingCount, length) {
    if (length[$modulo](4) !== 0) {
      dart.throw(new core.FormatException.new("Invalid base64 padding, padded length must be multiple of four, " + "is " + dart.str(length), source, sourceEnd));
    }
    if (dart.notNull(firstPadding) + dart.notNull(paddingCount) !== length) {
      dart.throw(new core.FormatException.new("Invalid base64 padding, '=' not at the end", source, sourceIndex));
    }
    if (dart.notNull(paddingCount) > 2) {
      dart.throw(new core.FormatException.new("Invalid base64 padding, more than two '=' characters", source, sourceIndex));
    }
  }
};
(convert.Base64Codec.new = function() {
  this[_encoder$] = C86 || CT.C86;
  convert.Base64Codec.__proto__.new.call(this);
  ;
}).prototype = convert.Base64Codec.prototype;
(convert.Base64Codec.urlSafe = function() {
  this[_encoder$] = C87 || CT.C87;
  convert.Base64Codec.__proto__.new.call(this);
  ;
}).prototype = convert.Base64Codec.prototype;
dart.addTypeTests(convert.Base64Codec);
dart.addTypeCaches(convert.Base64Codec);
dart.setMethodSignature(convert.Base64Codec, () => ({
  __proto__: dart.getMethods(convert.Base64Codec.__proto__),
  decode: dart.fnType(typed_data.Uint8List, [core.Object]),
  normalize: dart.fnType(core.String, [core.String], [core.int, core.int])
}));
dart.setGetterSignature(convert.Base64Codec, () => ({
  __proto__: dart.getGetters(convert.Base64Codec.__proto__),
  encoder: convert.Base64Encoder,
  decoder: convert.Base64Decoder
}));
dart.setLibraryUri(convert.Base64Codec, L13);
dart.setFieldSignature(convert.Base64Codec, () => ({
  __proto__: dart.getFields(convert.Base64Codec.__proto__),
  [_encoder]: dart.finalFieldType(convert.Base64Encoder)
}));
var _urlSafe = dart.privateName(convert, "_urlSafe");
convert.Base64Encoder = class Base64Encoder extends convert.Converter$(core.List$(core.int), core.String) {
  get [_urlSafe]() {
    return this[_urlSafe$];
  }
  set [_urlSafe](value) {
    super[_urlSafe] = value;
  }
  convert(input) {
    ListOfintL().as(input);
    if (dart.test(input[$isEmpty])) return "";
    let encoder = new convert._Base64Encoder.new(this[_urlSafe]);
    let buffer = encoder.encode(input, 0, input[$length], true);
    return core.String.fromCharCodes(buffer);
  }
  startChunkedConversion(sink) {
    SinkOfStringL().as(sink);
    if (convert.StringConversionSink.is(sink)) {
      return new convert._Utf8Base64EncoderSink.new(sink.asUtf8Sink(false), this[_urlSafe]);
    }
    return new convert._AsciiBase64EncoderSink.new(sink, this[_urlSafe]);
  }
};
(convert.Base64Encoder.new = function() {
  this[_urlSafe$] = false;
  convert.Base64Encoder.__proto__.new.call(this);
  ;
}).prototype = convert.Base64Encoder.prototype;
(convert.Base64Encoder.urlSafe = function() {
  this[_urlSafe$] = true;
  convert.Base64Encoder.__proto__.new.call(this);
  ;
}).prototype = convert.Base64Encoder.prototype;
dart.addTypeTests(convert.Base64Encoder);
dart.addTypeCaches(convert.Base64Encoder);
const _urlSafe$ = Base64Encoder__urlSafe;
dart.setMethodSignature(convert.Base64Encoder, () => ({
  __proto__: dart.getMethods(convert.Base64Encoder.__proto__),
  convert: dart.fnType(core.String, [core.Object]),
  startChunkedConversion: dart.fnType(convert.ByteConversionSink, [core.Object])
}));
dart.setLibraryUri(convert.Base64Encoder, L13);
dart.setFieldSignature(convert.Base64Encoder, () => ({
  __proto__: dart.getFields(convert.Base64Encoder.__proto__),
  [_urlSafe]: dart.finalFieldType(core.bool)
}));
var _state$0 = dart.privateName(convert, "_state");
var _alphabet = dart.privateName(convert, "_alphabet");
convert._Base64Encoder = class _Base64Encoder extends core.Object {
  static _encodeState(count, bits) {
    if (!(dart.notNull(count) <= 3)) dart.assertFailed(null, L40, 281, 12, "count <= _countMask");
    return (bits[$leftShift](2) | dart.notNull(count)) >>> 0;
  }
  static _stateBits(state) {
    return state[$rightShift](2);
  }
  static _stateCount(state) {
    return (dart.notNull(state) & 3) >>> 0;
  }
  createBuffer(bufferLength) {
    return _native_typed_data.NativeUint8List.new(bufferLength);
  }
  encode(bytes, start, end, isLast) {
    if (!(0 <= dart.notNull(start))) dart.assertFailed(null, L40, 306, 12, "0 <= start");
    if (!(dart.notNull(start) <= dart.notNull(end))) dart.assertFailed(null, L40, 307, 12, "start <= end");
    if (!(bytes == null || dart.notNull(end) <= dart.notNull(bytes[$length]))) dart.assertFailed(null, L40, 308, 12, "bytes == null || end <= bytes.length");
    let length = dart.notNull(end) - dart.notNull(start);
    let count = convert._Base64Encoder._stateCount(this[_state$0]);
    let byteCount = dart.notNull(count) + length;
    let fullChunks = (byteCount / 3)[$truncate]();
    let partialChunkLength = byteCount - fullChunks * 3;
    let bufferLength = fullChunks * 4;
    if (dart.test(isLast) && partialChunkLength > 0) {
      bufferLength = bufferLength + 4;
    }
    let output = this.createBuffer(bufferLength);
    this[_state$0] = convert._Base64Encoder.encodeChunk(this[_alphabet], bytes, start, end, isLast, output, 0, this[_state$0]);
    if (bufferLength > 0) return output;
    return null;
  }
  static encodeChunk(alphabet, bytes, start, end, isLast, output, outputIndex, state) {
    let t65, t65$, t65$0, t65$1;
    let bits = convert._Base64Encoder._stateBits(state);
    let expectedChars = 3 - dart.notNull(convert._Base64Encoder._stateCount(state));
    let byteOr = 0;
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      let byte = bytes[$_get](i);
      byteOr = (byteOr | dart.notNull(byte)) >>> 0;
      bits = (dart.notNull(bits) << 8 | dart.notNull(byte)) & 16777215;
      expectedChars = expectedChars - 1;
      if (expectedChars === 0) {
        output[$_set]((t65 = outputIndex, outputIndex = dart.notNull(t65) + 1, t65), alphabet[$codeUnitAt]((bits[$rightShift](18) & 63) >>> 0));
        output[$_set]((t65$ = outputIndex, outputIndex = dart.notNull(t65$) + 1, t65$), alphabet[$codeUnitAt]((bits[$rightShift](12) & 63) >>> 0));
        output[$_set]((t65$0 = outputIndex, outputIndex = dart.notNull(t65$0) + 1, t65$0), alphabet[$codeUnitAt]((bits[$rightShift](6) & 63) >>> 0));
        output[$_set]((t65$1 = outputIndex, outputIndex = dart.notNull(t65$1) + 1, t65$1), alphabet[$codeUnitAt]((dart.notNull(bits) & 63) >>> 0));
        expectedChars = 3;
        bits = 0;
      }
    }
    if (byteOr >= 0 && byteOr <= 255) {
      if (dart.test(isLast) && expectedChars < 3) {
        convert._Base64Encoder.writeFinalChunk(alphabet, output, outputIndex, 3 - expectedChars, bits);
        return 0;
      }
      return convert._Base64Encoder._encodeState(3 - expectedChars, bits);
    }
    let i = start;
    while (dart.notNull(i) < dart.notNull(end)) {
      let byte = bytes[$_get](i);
      if (dart.notNull(byte) < 0 || dart.notNull(byte) > 255) break;
      i = dart.notNull(i) + 1;
    }
    dart.throw(new core.ArgumentError.value(bytes, "Not a byte value at index " + dart.str(i) + ": 0x" + bytes[$_get](i)[$toRadixString](16)));
  }
  static writeFinalChunk(alphabet, output, outputIndex, count, bits) {
    let t65, t65$, t65$0, t65$1, t65$2, t65$3, t65$4, t65$5;
    if (!(dart.notNull(count) > 0)) dart.assertFailed(null, L40, 377, 12, "count > 0");
    if (count === 1) {
      output[$_set]((t65 = outputIndex, outputIndex = dart.notNull(t65) + 1, t65), alphabet[$codeUnitAt]((bits[$rightShift](2) & 63) >>> 0));
      output[$_set]((t65$ = outputIndex, outputIndex = dart.notNull(t65$) + 1, t65$), alphabet[$codeUnitAt]((dart.notNull(bits) << 4 & 63) >>> 0));
      output[$_set]((t65$0 = outputIndex, outputIndex = dart.notNull(t65$0) + 1, t65$0), 61);
      output[$_set]((t65$1 = outputIndex, outputIndex = dart.notNull(t65$1) + 1, t65$1), 61);
    } else {
      if (!(count === 2)) dart.assertFailed(null, L40, 384, 14, "count == 2");
      output[$_set]((t65$2 = outputIndex, outputIndex = dart.notNull(t65$2) + 1, t65$2), alphabet[$codeUnitAt]((bits[$rightShift](10) & 63) >>> 0));
      output[$_set]((t65$3 = outputIndex, outputIndex = dart.notNull(t65$3) + 1, t65$3), alphabet[$codeUnitAt]((bits[$rightShift](4) & 63) >>> 0));
      output[$_set]((t65$4 = outputIndex, outputIndex = dart.notNull(t65$4) + 1, t65$4), alphabet[$codeUnitAt]((dart.notNull(bits) << 2 & 63) >>> 0));
      output[$_set]((t65$5 = outputIndex, outputIndex = dart.notNull(t65$5) + 1, t65$5), 61);
    }
  }
};
(convert._Base64Encoder.new = function(urlSafe) {
  this[_state$0] = 0;
  this[_alphabet] = dart.test(urlSafe) ? convert._Base64Encoder._base64UrlAlphabet : convert._Base64Encoder._base64Alphabet;
  ;
}).prototype = convert._Base64Encoder.prototype;
dart.addTypeTests(convert._Base64Encoder);
dart.addTypeCaches(convert._Base64Encoder);
dart.setMethodSignature(convert._Base64Encoder, () => ({
  __proto__: dart.getMethods(convert._Base64Encoder.__proto__),
  createBuffer: dart.fnType(typed_data.Uint8List, [core.int]),
  encode: dart.fnType(typed_data.Uint8List, [core.List$(core.int), core.int, core.int, core.bool])
}));
dart.setLibraryUri(convert._Base64Encoder, L13);
dart.setFieldSignature(convert._Base64Encoder, () => ({
  __proto__: dart.getFields(convert._Base64Encoder.__proto__),
  [_state$0]: dart.fieldType(core.int),
  [_alphabet]: dart.finalFieldType(core.String)
}));
dart.defineLazy(convert._Base64Encoder, {
  /*convert._Base64Encoder._base64Alphabet*/get _base64Alphabet() {
    return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  },
  /*convert._Base64Encoder._base64UrlAlphabet*/get _base64UrlAlphabet() {
    return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
  },
  /*convert._Base64Encoder._valueShift*/get _valueShift() {
    return 2;
  },
  /*convert._Base64Encoder._countMask*/get _countMask() {
    return 3;
  },
  /*convert._Base64Encoder._sixBitMask*/get _sixBitMask() {
    return 63;
  }
}, true);
convert._BufferCachingBase64Encoder = class _BufferCachingBase64Encoder extends convert._Base64Encoder {
  createBuffer(bufferLength) {
    if (this.bufferCache == null || dart.notNull(this.bufferCache[$length]) < dart.notNull(bufferLength)) {
      this.bufferCache = _native_typed_data.NativeUint8List.new(bufferLength);
    }
    return typed_data.Uint8List.view(this.bufferCache[$buffer], this.bufferCache[$offsetInBytes], bufferLength);
  }
};
(convert._BufferCachingBase64Encoder.new = function(urlSafe) {
  this.bufferCache = null;
  convert._BufferCachingBase64Encoder.__proto__.new.call(this, urlSafe);
  ;
}).prototype = convert._BufferCachingBase64Encoder.prototype;
dart.addTypeTests(convert._BufferCachingBase64Encoder);
dart.addTypeCaches(convert._BufferCachingBase64Encoder);
dart.setLibraryUri(convert._BufferCachingBase64Encoder, L13);
dart.setFieldSignature(convert._BufferCachingBase64Encoder, () => ({
  __proto__: dart.getFields(convert._BufferCachingBase64Encoder.__proto__),
  bufferCache: dart.fieldType(typed_data.Uint8List)
}));
var _add$0 = dart.privateName(convert, "_add");
convert._Base64EncoderSink = class _Base64EncoderSink extends convert.ByteConversionSinkBase {
  add(source) {
    ListOfintL().as(source);
    this[_add$0](source, 0, source[$length], false);
  }
  close() {
    this[_add$0](null, 0, 0, true);
  }
  addSlice(source, start, end, isLast) {
    if (end == null) dart.throw(new core.ArgumentError.notNull("end"));
    core.RangeError.checkValidRange(start, end, source[$length]);
    this[_add$0](source, start, end, isLast);
  }
};
(convert._Base64EncoderSink.new = function() {
  convert._Base64EncoderSink.__proto__.new.call(this);
  ;
}).prototype = convert._Base64EncoderSink.prototype;
dart.addTypeTests(convert._Base64EncoderSink);
dart.addTypeCaches(convert._Base64EncoderSink);
dart.setMethodSignature(convert._Base64EncoderSink, () => ({
  __proto__: dart.getMethods(convert._Base64EncoderSink.__proto__),
  add: dart.fnType(dart.void, [core.Object]),
  close: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(convert._Base64EncoderSink, L13);
convert._AsciiBase64EncoderSink = class _AsciiBase64EncoderSink extends convert._Base64EncoderSink {
  [_add$0](source, start, end, isLast) {
    let buffer = this[_encoder].encode(source, start, end, isLast);
    if (buffer != null) {
      let string = core.String.fromCharCodes(buffer);
      this[_sink$0].add(string);
    }
    if (dart.test(isLast)) {
      this[_sink$0].close();
    }
  }
};
(convert._AsciiBase64EncoderSink.new = function(_sink, urlSafe) {
  this[_sink$0] = _sink;
  this[_encoder] = new convert._BufferCachingBase64Encoder.new(urlSafe);
  convert._AsciiBase64EncoderSink.__proto__.new.call(this);
  ;
}).prototype = convert._AsciiBase64EncoderSink.prototype;
dart.addTypeTests(convert._AsciiBase64EncoderSink);
dart.addTypeCaches(convert._AsciiBase64EncoderSink);
dart.setMethodSignature(convert._AsciiBase64EncoderSink, () => ({
  __proto__: dart.getMethods(convert._AsciiBase64EncoderSink.__proto__),
  [_add$0]: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int, core.bool])
}));
dart.setLibraryUri(convert._AsciiBase64EncoderSink, L13);
dart.setFieldSignature(convert._AsciiBase64EncoderSink, () => ({
  __proto__: dart.getFields(convert._AsciiBase64EncoderSink.__proto__),
  [_sink$0]: dart.finalFieldType(core.Sink$(core.String)),
  [_encoder]: dart.finalFieldType(convert._Base64Encoder)
}));
convert._Utf8Base64EncoderSink = class _Utf8Base64EncoderSink extends convert._Base64EncoderSink {
  [_add$0](source, start, end, isLast) {
    let buffer = this[_encoder].encode(source, start, end, isLast);
    if (buffer != null) {
      this[_sink$0].addSlice(buffer, 0, buffer[$length], isLast);
    }
  }
};
(convert._Utf8Base64EncoderSink.new = function(_sink, urlSafe) {
  this[_sink$0] = _sink;
  this[_encoder] = new convert._Base64Encoder.new(urlSafe);
  convert._Utf8Base64EncoderSink.__proto__.new.call(this);
  ;
}).prototype = convert._Utf8Base64EncoderSink.prototype;
dart.addTypeTests(convert._Utf8Base64EncoderSink);
dart.addTypeCaches(convert._Utf8Base64EncoderSink);
dart.setMethodSignature(convert._Utf8Base64EncoderSink, () => ({
  __proto__: dart.getMethods(convert._Utf8Base64EncoderSink.__proto__),
  [_add$0]: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int, core.bool])
}));
dart.setLibraryUri(convert._Utf8Base64EncoderSink, L13);
dart.setFieldSignature(convert._Utf8Base64EncoderSink, () => ({
  __proto__: dart.getFields(convert._Utf8Base64EncoderSink.__proto__),
  [_sink$0]: dart.finalFieldType(convert.ByteConversionSink),
  [_encoder]: dart.finalFieldType(convert._Base64Encoder)
}));
convert.Base64Decoder = class Base64Decoder extends convert.Converter$(core.String, core.List$(core.int)) {
  convert(input, start = 0, end = null) {
    core.String.as(input);
    end = core.RangeError.checkValidRange(start, end, input.length);
    if (start == end) return _native_typed_data.NativeUint8List.new(0);
    let decoder = new convert._Base64Decoder.new();
    let buffer = decoder.decode(input, start, end);
    decoder.close(input, end);
    return buffer;
  }
  startChunkedConversion(sink) {
    SinkOfListLOfintL().as(sink);
    return new convert._Base64DecoderSink.new(sink);
  }
};
(convert.Base64Decoder.new = function() {
  convert.Base64Decoder.__proto__.new.call(this);
  ;
}).prototype = convert.Base64Decoder.prototype;
dart.addTypeTests(convert.Base64Decoder);
dart.addTypeCaches(convert.Base64Decoder);
dart.setMethodSignature(convert.Base64Decoder, () => ({
  __proto__: dart.getMethods(convert.Base64Decoder.__proto__),
  convert: dart.fnType(typed_data.Uint8List, [core.Object], [core.int, core.int]),
  startChunkedConversion: dart.fnType(convert.StringConversionSink, [core.Object])
}));
dart.setLibraryUri(convert.Base64Decoder, L13);
convert._Base64Decoder = class _Base64Decoder extends core.Object {
  static _encodeCharacterState(count, bits) {
    if (!(count === (dart.notNull(count) & 3) >>> 0)) dart.assertFailed(null, L40, 562, 12, "count == (count & _countMask)");
    return (bits[$leftShift](2) | dart.notNull(count)) >>> 0;
  }
  static _stateCount(state) {
    if (!(dart.notNull(state) >= 0)) dart.assertFailed(null, L40, 568, 12, "state >= 0");
    return (dart.notNull(state) & 3) >>> 0;
  }
  static _stateBits(state) {
    if (!(dart.notNull(state) >= 0)) dart.assertFailed(null, L40, 574, 12, "state >= 0");
    return state[$rightShift](2);
  }
  static _encodePaddingState(expectedPadding) {
    if (!(dart.notNull(expectedPadding) >= 0)) dart.assertFailed(null, L40, 580, 12, "expectedPadding >= 0");
    if (!(dart.notNull(expectedPadding) <= 5)) dart.assertFailed(null, L40, 581, 12, "expectedPadding <= 5");
    return -dart.notNull(expectedPadding) - 1;
  }
  static _statePadding(state) {
    if (!(dart.notNull(state) < 0)) dart.assertFailed(null, L40, 587, 12, "state < 0");
    return -dart.notNull(state) - 1;
  }
  static _hasSeenPadding(state) {
    return dart.notNull(state) < 0;
  }
  decode(input, start, end) {
    if (!(0 <= dart.notNull(start))) dart.assertFailed(null, L40, 599, 12, "0 <= start");
    if (!(dart.notNull(start) <= dart.notNull(end))) dart.assertFailed(null, L40, 600, 12, "start <= end");
    if (!(dart.notNull(end) <= input.length)) dart.assertFailed(null, L40, 601, 12, "end <= input.length");
    if (dart.test(convert._Base64Decoder._hasSeenPadding(this[_state$0]))) {
      this[_state$0] = convert._Base64Decoder._checkPadding(input, start, end, this[_state$0]);
      return null;
    }
    if (start == end) return _native_typed_data.NativeUint8List.new(0);
    let buffer = convert._Base64Decoder._allocateBuffer(input, start, end, this[_state$0]);
    this[_state$0] = convert._Base64Decoder.decodeChunk(input, start, end, buffer, 0, this[_state$0]);
    return buffer;
  }
  close(input, end) {
    if (dart.notNull(this[_state$0]) < dart.notNull(convert._Base64Decoder._encodePaddingState(0))) {
      dart.throw(new core.FormatException.new("Missing padding character", input, end));
    }
    if (dart.notNull(this[_state$0]) > 0) {
      dart.throw(new core.FormatException.new("Invalid length, must be multiple of four", input, end));
    }
    this[_state$0] = convert._Base64Decoder._encodePaddingState(0);
  }
  static decodeChunk(input, start, end, output, outIndex, state) {
    let t65, t65$, t65$0, t65$1, t65$2, t65$3;
    if (!!dart.test(convert._Base64Decoder._hasSeenPadding(state))) dart.assertFailed(null, L40, 631, 12, "!_hasSeenPadding(state)");
    let bits = convert._Base64Decoder._stateBits(state);
    let count = convert._Base64Decoder._stateCount(state);
    let charOr = 0;
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      let char = input[$codeUnitAt](i);
      charOr = (charOr | char) >>> 0;
      let code = convert._Base64Decoder._inverseAlphabet[$_get]((char & 127) >>> 0);
      if (dart.notNull(code) >= 0) {
        bits = (bits[$leftShift](6) | dart.notNull(code)) & 16777215;
        count = dart.notNull(count) + 1 & 3;
        if (count === 0) {
          if (!(dart.notNull(outIndex) + 3 <= dart.notNull(output[$length]))) dart.assertFailed(null, L40, 652, 18, "outIndex + 3 <= output.length");
          output[$_set]((t65 = outIndex, outIndex = dart.notNull(t65) + 1, t65), (bits[$rightShift](16) & 255) >>> 0);
          output[$_set]((t65$ = outIndex, outIndex = dart.notNull(t65$) + 1, t65$), (bits[$rightShift](8) & 255) >>> 0);
          output[$_set]((t65$0 = outIndex, outIndex = dart.notNull(t65$0) + 1, t65$0), (dart.notNull(bits) & 255) >>> 0);
          bits = 0;
        }
        continue;
      } else if (code === -1 && dart.notNull(count) > 1) {
        if (charOr < 0 || charOr > 127) break;
        if (count === 3) {
          if ((dart.notNull(bits) & 3) !== 0) {
            dart.throw(new core.FormatException.new("Invalid encoding before padding", input, i));
          }
          output[$_set]((t65$1 = outIndex, outIndex = dart.notNull(t65$1) + 1, t65$1), bits[$rightShift](10));
          output[$_set]((t65$2 = outIndex, outIndex = dart.notNull(t65$2) + 1, t65$2), bits[$rightShift](2));
        } else {
          if ((dart.notNull(bits) & 15) !== 0) {
            dart.throw(new core.FormatException.new("Invalid encoding before padding", input, i));
          }
          output[$_set]((t65$3 = outIndex, outIndex = dart.notNull(t65$3) + 1, t65$3), bits[$rightShift](4));
        }
        let expectedPadding = (3 - dart.notNull(count)) * 3;
        if (char === 37) expectedPadding = expectedPadding + 2;
        state = convert._Base64Decoder._encodePaddingState(expectedPadding);
        return convert._Base64Decoder._checkPadding(input, dart.notNull(i) + 1, end, state);
      }
      dart.throw(new core.FormatException.new("Invalid character", input, i));
    }
    if (charOr >= 0 && charOr <= 127) {
      return convert._Base64Decoder._encodeCharacterState(count, bits);
    }
    let i = null;
    for (let t65$4 = i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      let char = input[$codeUnitAt](i);
      if (char < 0 || char > 127) break;
    }
    dart.throw(new core.FormatException.new("Invalid character", input, i));
  }
  static _allocateBuffer(input, start, end, state) {
    if (!(dart.notNull(state) >= 0)) dart.assertFailed(null, L40, 702, 12, "state >= 0");
    let paddingStart = convert._Base64Decoder._trimPaddingChars(input, start, end);
    let length = dart.notNull(convert._Base64Decoder._stateCount(state)) + (dart.notNull(paddingStart) - dart.notNull(start));
    let bufferLength = length[$rightShift](2) * 3;
    let remainderLength = length & 3;
    if (remainderLength !== 0 && dart.notNull(paddingStart) < dart.notNull(end)) {
      bufferLength = bufferLength + (remainderLength - 1);
    }
    if (bufferLength > 0) return _native_typed_data.NativeUint8List.new(bufferLength);
    return null;
  }
  static _trimPaddingChars(input, start, end) {
    let padding = 0;
    let index = end;
    let newEnd = end;
    while (dart.notNull(index) > dart.notNull(start) && padding < 2) {
      index = dart.notNull(index) - 1;
      let char = input[$codeUnitAt](index);
      if (char === 61) {
        padding = padding + 1;
        newEnd = index;
        continue;
      }
      if ((char | 32) >>> 0 === 100) {
        if (index == start) break;
        index = dart.notNull(index) - 1;
        char = input[$codeUnitAt](index);
      }
      if (char === 51) {
        if (index == start) break;
        index = dart.notNull(index) - 1;
        char = input[$codeUnitAt](index);
      }
      if (char === 37) {
        padding = padding + 1;
        newEnd = index;
        continue;
      }
      break;
    }
    return newEnd;
  }
  static _checkPadding(input, start, end, state) {
    if (!dart.test(convert._Base64Decoder._hasSeenPadding(state))) dart.assertFailed(null, L40, 783, 12, "_hasSeenPadding(state)");
    if (start == end) return state;
    let expectedPadding = convert._Base64Decoder._statePadding(state);
    if (!(dart.notNull(expectedPadding) >= 0)) dart.assertFailed(null, L40, 786, 12, "expectedPadding >= 0");
    if (!(dart.notNull(expectedPadding) < 6)) dart.assertFailed(null, L40, 787, 12, "expectedPadding < 6");
    while (dart.notNull(expectedPadding) > 0) {
      let char = input[$codeUnitAt](start);
      if (expectedPadding === 3) {
        if (char === 61) {
          expectedPadding = dart.notNull(expectedPadding) - 3;
          start = dart.notNull(start) + 1;
          break;
        }
        if (char === 37) {
          expectedPadding = dart.notNull(expectedPadding) - 1;
          start = dart.notNull(start) + 1;
          if (start == end) break;
          char = input[$codeUnitAt](start);
        } else {
          break;
        }
      }
      let expectedPartialPadding = expectedPadding;
      if (dart.notNull(expectedPartialPadding) > 3) expectedPartialPadding = dart.notNull(expectedPartialPadding) - 3;
      if (expectedPartialPadding === 2) {
        if (char !== 51) break;
        start = dart.notNull(start) + 1;
        expectedPadding = dart.notNull(expectedPadding) - 1;
        if (start == end) break;
        char = input[$codeUnitAt](start);
      }
      if ((char | 32) >>> 0 !== 100) break;
      start = dart.notNull(start) + 1;
      expectedPadding = dart.notNull(expectedPadding) - 1;
      if (start == end) break;
    }
    if (start != end) {
      dart.throw(new core.FormatException.new("Invalid padding character", input, start));
    }
    return convert._Base64Decoder._encodePaddingState(expectedPadding);
  }
};
(convert._Base64Decoder.new = function() {
  this[_state$0] = 0;
  ;
}).prototype = convert._Base64Decoder.prototype;
dart.addTypeTests(convert._Base64Decoder);
dart.addTypeCaches(convert._Base64Decoder);
dart.setMethodSignature(convert._Base64Decoder, () => ({
  __proto__: dart.getMethods(convert._Base64Decoder.__proto__),
  decode: dart.fnType(typed_data.Uint8List, [core.String, core.int, core.int]),
  close: dart.fnType(dart.void, [core.String, core.int])
}));
dart.setLibraryUri(convert._Base64Decoder, L13);
dart.setFieldSignature(convert._Base64Decoder, () => ({
  __proto__: dart.getFields(convert._Base64Decoder.__proto__),
  [_state$0]: dart.fieldType(core.int)
}));
dart.defineLazy(convert._Base64Decoder, {
  /*convert._Base64Decoder._valueShift*/get _valueShift() {
    return 2;
  },
  /*convert._Base64Decoder._countMask*/get _countMask() {
    return 3;
  },
  /*convert._Base64Decoder._invalid*/get _invalid() {
    return -2;
  },
  /*convert._Base64Decoder._padding*/get _padding() {
    return -1;
  },
  /*convert._Base64Decoder.___*/get ___() {
    return -2;
  },
  /*convert._Base64Decoder._p*/get _p() {
    return -1;
  },
  /*convert._Base64Decoder._inverseAlphabet*/get _inverseAlphabet() {
    return _native_typed_data.NativeInt8List.fromList(JSArrayOfintL().of([-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -2, -2, -2, -2, -2, 62, -2, 62, -2, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -2, -2, -2, -1, -2, -2, -2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -2, -2, -2, -2, 63, -2, 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, -2, -2, -2, -2, -2]));
  },
  /*convert._Base64Decoder._char_percent*/get _char_percent() {
    return 37;
  },
  /*convert._Base64Decoder._char_3*/get _char_3() {
    return 51;
  },
  /*convert._Base64Decoder._char_d*/get _char_d() {
    return 100;
  }
}, true);
var _decoder = dart.privateName(convert, "_decoder");
convert._Base64DecoderSink = class _Base64DecoderSink extends convert.StringConversionSinkBase {
  add(string) {
    core.String.as(string);
    if (string[$isEmpty]) return;
    let buffer = this[_decoder].decode(string, 0, string.length);
    if (buffer != null) this[_sink$0].add(buffer);
  }
  close() {
    this[_decoder].close(null, null);
    this[_sink$0].close();
  }
  addSlice(string, start, end, isLast) {
    end = core.RangeError.checkValidRange(start, end, string.length);
    if (start == end) return;
    let buffer = this[_decoder].decode(string, start, end);
    if (buffer != null) this[_sink$0].add(buffer);
    if (dart.test(isLast)) {
      this[_decoder].close(string, end);
      this[_sink$0].close();
    }
  }
};
(convert._Base64DecoderSink.new = function(_sink) {
  this[_decoder] = new convert._Base64Decoder.new();
  this[_sink$0] = _sink;
  ;
}).prototype = convert._Base64DecoderSink.prototype;
dart.addTypeTests(convert._Base64DecoderSink);
dart.addTypeCaches(convert._Base64DecoderSink);
dart.setMethodSignature(convert._Base64DecoderSink, () => ({
  __proto__: dart.getMethods(convert._Base64DecoderSink.__proto__),
  close: dart.fnType(dart.void, []),
  addSlice: dart.fnType(dart.void, [core.String, core.int, core.int, core.bool])
}));
dart.setLibraryUri(convert._Base64DecoderSink, L13);
dart.setFieldSignature(convert._Base64DecoderSink, () => ({
  __proto__: dart.getFields(convert._Base64DecoderSink.__proto__),
  [_sink$0]: dart.finalFieldType(core.Sink$(core.List$(core.int))),
  [_decoder]: dart.finalFieldType(convert._Base64Decoder)
}));
convert._ByteAdapterSink = class _ByteAdapterSink extends convert.ByteConversionSinkBase {
  add(chunk) {
    ListOfintL().as(chunk);
    this[_sink$0].add(chunk);
  }
  close() {
    this[_sink$0].close();
  }
};
(convert._ByteAdapterSink.new = function(_sink) {
  this[_sink$0] = _sink;
  convert._ByteAdapterSink.__proto__.new.call(this);
  ;
}).prototype = convert._ByteAdapterSink.prototype;
dart.addTypeTests(convert._ByteAdapterSink);
dart.addTypeCaches(convert._ByteAdapterSink);
dart.setMethodSignature(convert._ByteAdapterSink, () => ({
  __proto__: dart.getMethods(convert._ByteAdapterSink.__proto__),
  add: dart.fnType(dart.void, [core.Object]),
  close: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(convert._ByteAdapterSink, L13);
dart.setFieldSignature(convert._ByteAdapterSink, () => ({
  __proto__: dart.getFields(convert._ByteAdapterSink.__proto__),
  [_sink$0]: dart.finalFieldType(core.Sink$(core.List$(core.int)))
}));
var _buffer = dart.privateName(convert, "_buffer");
var _bufferIndex = dart.privateName(convert, "_bufferIndex");
var _callback$ = dart.privateName(convert, "_callback");
convert._ByteCallbackSink = class _ByteCallbackSink extends convert.ByteConversionSinkBase {
  add(chunk) {
    IterableOfintL().as(chunk);
    let freeCount = dart.notNull(this[_buffer][$length]) - dart.notNull(this[_bufferIndex]);
    if (dart.notNull(chunk[$length]) > freeCount) {
      let oldLength = this[_buffer][$length];
      let newLength = dart.notNull(convert._ByteCallbackSink._roundToPowerOf2(dart.notNull(chunk[$length]) + dart.notNull(oldLength))) * 2;
      let grown = _native_typed_data.NativeUint8List.new(newLength);
      grown[$setRange](0, this[_buffer][$length], this[_buffer]);
      this[_buffer] = grown;
    }
    this[_buffer][$setRange](this[_bufferIndex], dart.notNull(this[_bufferIndex]) + dart.notNull(chunk[$length]), chunk);
    this[_bufferIndex] = dart.notNull(this[_bufferIndex]) + dart.notNull(chunk[$length]);
  }
  static _roundToPowerOf2(v) {
    if (!(dart.notNull(v) > 0)) dart.assertFailed(null, L41, 97, 12, "v > 0");
    v = dart.notNull(v) - 1;
    v = (dart.notNull(v) | v[$rightShift](1)) >>> 0;
    v = (dart.notNull(v) | v[$rightShift](2)) >>> 0;
    v = (dart.notNull(v) | v[$rightShift](4)) >>> 0;
    v = (dart.notNull(v) | v[$rightShift](8)) >>> 0;
    v = (dart.notNull(v) | v[$rightShift](16)) >>> 0;
    v = dart.notNull(v) + 1;
    return v;
  }
  close() {
    let t66;
    t66 = this[_buffer][$sublist](0, this[_bufferIndex]);
    this[_callback$](t66);
  }
};
(convert._ByteCallbackSink.new = function(callback) {
  this[_buffer] = _native_typed_data.NativeUint8List.new(1024);
  this[_bufferIndex] = 0;
  this[_callback$] = callback;
  convert._ByteCallbackSink.__proto__.new.call(this);
  ;
}).prototype = convert._ByteCallbackSink.prototype;
dart.addTypeTests(convert._ByteCallbackSink);
dart.addTypeCaches(convert._ByteCallbackSink);
dart.setMethodSignature(convert._ByteCallbackSink, () => ({
  __proto__: dart.getMethods(convert._ByteCallbackSink.__proto__),
  add: dart.fnType(dart.void, [core.Object]),
  close: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(convert._ByteCallbackSink, L13);
dart.setFieldSignature(convert._ByteCallbackSink, () => ({
  __proto__: dart.getFields(convert._ByteCallbackSink.__proto__),
  [_callback$]: dart.finalFieldType(dart.fnType(dart.void, [core.List$(core.int)])),
  [_buffer]: dart.fieldType(core.List$(core.int)),
  [_bufferIndex]: dart.fieldType(core.int)
}));
dart.defineLazy(convert._ByteCallbackSink, {
  /*convert._ByteCallbackSink._INITIAL_BUFFER_SIZE*/get _INITIAL_BUFFER_SIZE() {
    return 1024;
  }
}, true);
var _accumulated = dart.privateName(convert, "_accumulated");
const _is__SimpleCallbackSink_default = Symbol('_is__SimpleCallbackSink_default');
convert._SimpleCallbackSink$ = dart.generic(T => {
  var JSArrayOfTL = () => (JSArrayOfTL = dart.constFn(_interceptors.JSArray$(T)))();
  class _SimpleCallbackSink extends convert.ChunkedConversionSink$(T) {
    add(chunk) {
      T.as(chunk);
      this[_accumulated][$add](chunk);
    }
    close() {
      let t66;
      t66 = this[_accumulated];
      this[_callback$](t66);
    }
  }
  (_SimpleCallbackSink.new = function(_callback) {
    this[_accumulated] = JSArrayOfTL().of([]);
    this[_callback$] = _callback;
    _SimpleCallbackSink.__proto__.new.call(this);
    ;
  }).prototype = _SimpleCallbackSink.prototype;
  dart.addTypeTests(_SimpleCallbackSink);
  _SimpleCallbackSink.prototype[_is__SimpleCallbackSink_default] = true;
  dart.addTypeCaches(_SimpleCallbackSink);
  dart.setMethodSignature(_SimpleCallbackSink, () => ({
    __proto__: dart.getMethods(_SimpleCallbackSink.__proto__),
    add: dart.fnType(dart.void, [core.Object]),
    close: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(_SimpleCallbackSink, L13);
  dart.setFieldSignature(_SimpleCallbackSink, () => ({
    __proto__: dart.getFields(_SimpleCallbackSink.__proto__),
    [_callback$]: dart.finalFieldType(dart.fnType(dart.void, [core.List$(T)])),
    [_accumulated]: dart.finalFieldType(core.List$(T))
  }));
  return _SimpleCallbackSink;
});
convert._SimpleCallbackSink = convert._SimpleCallbackSink$();
dart.addTypeTests(convert._SimpleCallbackSink, _is__SimpleCallbackSink_default);
var _eventSink = dart.privateName(convert, "_eventSink");
var _chunkedSink$ = dart.privateName(convert, "_chunkedSink");
const _is__ConverterStreamEventSink_default = Symbol('_is__ConverterStreamEventSink_default');
convert._ConverterStreamEventSink$ = dart.generic((S, T) => {
  class _ConverterStreamEventSink extends core.Object {
    add(o) {
      S.as(o);
      this[_chunkedSink$].add(o);
    }
    addError(error, stackTrace = null) {
      core.ArgumentError.checkNotNull(core.Object, error, "error");
      this[_eventSink].addError(error, stackTrace);
    }
    close() {
      this[_chunkedSink$].close();
    }
  }
  (_ConverterStreamEventSink.new = function(converter, sink) {
    this[_eventSink] = sink;
    this[_chunkedSink$] = converter.startChunkedConversion(sink);
    ;
  }).prototype = _ConverterStreamEventSink.prototype;
  dart.addTypeTests(_ConverterStreamEventSink);
  _ConverterStreamEventSink.prototype[_is__ConverterStreamEventSink_default] = true;
  dart.addTypeCaches(_ConverterStreamEventSink);
  _ConverterStreamEventSink[dart.implements] = () => [async.EventSink$(S)];
  dart.setMethodSignature(_ConverterStreamEventSink, () => ({
    __proto__: dart.getMethods(_ConverterStreamEventSink.__proto__),
    add: dart.fnType(dart.void, [core.Object]),
    addError: dart.fnType(dart.void, [core.Object], [core.StackTrace]),
    close: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(_ConverterStreamEventSink, L13);
  dart.setFieldSignature(_ConverterStreamEventSink, () => ({
    __proto__: dart.getFields(_ConverterStreamEventSink.__proto__),
    [_eventSink]: dart.finalFieldType(async.EventSink$(T)),
    [_chunkedSink$]: dart.finalFieldType(core.Sink$(S))
  }));
  return _ConverterStreamEventSink;
});
convert._ConverterStreamEventSink = convert._ConverterStreamEventSink$();
dart.addTypeTests(convert._ConverterStreamEventSink, _is__ConverterStreamEventSink_default);
var _first$0 = dart.privateName(convert, "_first");
var _second$0 = dart.privateName(convert, "_second");
const _is__FusedCodec_default = Symbol('_is__FusedCodec_default');
convert._FusedCodec$ = dart.generic((S, M, T) => {
  class _FusedCodec extends convert.Codec$(S, T) {
    get encoder() {
      return this[_first$0].encoder.fuse(T, this[_second$0].encoder);
    }
    get decoder() {
      return this[_second$0].decoder.fuse(S, this[_first$0].decoder);
    }
  }
  (_FusedCodec.new = function(_first, _second) {
    this[_first$0] = _first;
    this[_second$0] = _second;
    _FusedCodec.__proto__.new.call(this);
    ;
  }).prototype = _FusedCodec.prototype;
  dart.addTypeTests(_FusedCodec);
  _FusedCodec.prototype[_is__FusedCodec_default] = true;
  dart.addTypeCaches(_FusedCodec);
  dart.setGetterSignature(_FusedCodec, () => ({
    __proto__: dart.getGetters(_FusedCodec.__proto__),
    encoder: convert.Converter$(S, T),
    decoder: convert.Converter$(T, S)
  }));
  dart.setLibraryUri(_FusedCodec, L13);
  dart.setFieldSignature(_FusedCodec, () => ({
    __proto__: dart.getFields(_FusedCodec.__proto__),
    [_first$0]: dart.finalFieldType(convert.Codec$(S, M)),
    [_second$0]: dart.finalFieldType(convert.Codec$(M, T))
  }));
  return _FusedCodec;
});
convert._FusedCodec = convert._FusedCodec$();
dart.addTypeTests(convert._FusedCodec, _is__FusedCodec_default);
var _codec = dart.privateName(convert, "_codec");
const _is__InvertedCodec_default = Symbol('_is__InvertedCodec_default');
convert._InvertedCodec$ = dart.generic((T, S) => {
  class _InvertedCodec extends convert.Codec$(T, S) {
    get encoder() {
      return this[_codec].decoder;
    }
    get decoder() {
      return this[_codec].encoder;
    }
    get inverted() {
      return this[_codec];
    }
  }
  (_InvertedCodec.new = function(codec) {
    this[_codec] = codec;
    _InvertedCodec.__proto__.new.call(this);
    ;
  }).prototype = _InvertedCodec.prototype;
  dart.addTypeTests(_InvertedCodec);
  _InvertedCodec.prototype[_is__InvertedCodec_default] = true;
  dart.addTypeCaches(_InvertedCodec);
  dart.setGetterSignature(_InvertedCodec, () => ({
    __proto__: dart.getGetters(_InvertedCodec.__proto__),
    encoder: convert.Converter$(T, S),
    decoder: convert.Converter$(S, T)
  }));
  dart.setLibraryUri(_InvertedCodec, L13);
  dart.setFieldSignature(_InvertedCodec, () => ({
    __proto__: dart.getFields(_InvertedCodec.__proto__),
    [_codec]: dart.finalFieldType(convert.Codec$(S, T))
  }));
  return _InvertedCodec;
});
convert._InvertedCodec = convert._InvertedCodec$();
dart.addTypeTests(convert._InvertedCodec, _is__InvertedCodec_default);
const _is__FusedConverter_default = Symbol('_is__FusedConverter_default');
convert._FusedConverter$ = dart.generic((S, M, T) => {
  var SinkOfTL = () => (SinkOfTL = dart.constFn(core.Sink$(T)))();
  class _FusedConverter extends convert.Converter$(S, T) {
    convert(input) {
      S.as(input);
      return this[_second$0].convert(this[_first$0].convert(input));
    }
    startChunkedConversion(sink) {
      SinkOfTL().as(sink);
      return this[_first$0].startChunkedConversion(this[_second$0].startChunkedConversion(sink));
    }
  }
  (_FusedConverter.new = function(_first, _second) {
    this[_first$0] = _first;
    this[_second$0] = _second;
    _FusedConverter.__proto__.new.call(this);
    ;
  }).prototype = _FusedConverter.prototype;
  dart.addTypeTests(_FusedConverter);
  _FusedConverter.prototype[_is__FusedConverter_default] = true;
  dart.addTypeCaches(_FusedConverter);
  dart.setMethodSignature(_FusedConverter, () => ({
    __proto__: dart.getMethods(_FusedConverter.__proto__),
    convert: dart.fnType(T, [core.Object])
  }));
  dart.setLibraryUri(_FusedConverter, L13);
  dart.setFieldSignature(_FusedConverter, () => ({
    __proto__: dart.getFields(_FusedConverter.__proto__),
    [_first$0]: dart.finalFieldType(convert.Converter$(S, M)),
    [_second$0]: dart.finalFieldType(convert.Converter$(M, T))
  }));
  return _FusedConverter;
});
convert._FusedConverter = convert._FusedConverter$();
dart.addTypeTests(convert._FusedConverter, _is__FusedConverter_default);
var _name$2 = dart.privateName(convert, "_name");
var _name$3 = dart.privateName(convert, "HtmlEscapeMode._name");
var escapeLtGt$ = dart.privateName(convert, "HtmlEscapeMode.escapeLtGt");
var escapeQuot$ = dart.privateName(convert, "HtmlEscapeMode.escapeQuot");
var escapeApos$ = dart.privateName(convert, "HtmlEscapeMode.escapeApos");
var escapeSlash$ = dart.privateName(convert, "HtmlEscapeMode.escapeSlash");
var C89;
var C90;
var C91;
var C92;
convert.HtmlEscapeMode = class HtmlEscapeMode extends core.Object {
  get [_name$2]() {
    return this[_name$3];
  }
  set [_name$2](value) {
    super[_name$2] = value;
  }
  get escapeLtGt() {
    return this[escapeLtGt$];
  }
  set escapeLtGt(value) {
    super.escapeLtGt = value;
  }
  get escapeQuot() {
    return this[escapeQuot$];
  }
  set escapeQuot(value) {
    super.escapeQuot = value;
  }
  get escapeApos() {
    return this[escapeApos$];
  }
  set escapeApos(value) {
    super.escapeApos = value;
  }
  get escapeSlash() {
    return this[escapeSlash$];
  }
  set escapeSlash(value) {
    super.escapeSlash = value;
  }
  toString() {
    return this[_name$2];
  }
};
(convert.HtmlEscapeMode.__ = function(_name, escapeLtGt, escapeQuot, escapeApos, escapeSlash) {
  this[_name$3] = _name;
  this[escapeLtGt$] = escapeLtGt;
  this[escapeQuot$] = escapeQuot;
  this[escapeApos$] = escapeApos;
  this[escapeSlash$] = escapeSlash;
  ;
}).prototype = convert.HtmlEscapeMode.prototype;
(convert.HtmlEscapeMode.new = function(opts) {
  let name = opts && 'name' in opts ? opts.name : "custom";
  let escapeLtGt = opts && 'escapeLtGt' in opts ? opts.escapeLtGt : false;
  let escapeQuot = opts && 'escapeQuot' in opts ? opts.escapeQuot : false;
  let escapeApos = opts && 'escapeApos' in opts ? opts.escapeApos : false;
  let escapeSlash = opts && 'escapeSlash' in opts ? opts.escapeSlash : false;
  this[escapeLtGt$] = escapeLtGt;
  this[escapeQuot$] = escapeQuot;
  this[escapeApos$] = escapeApos;
  this[escapeSlash$] = escapeSlash;
  this[_name$3] = name;
  ;
}).prototype = convert.HtmlEscapeMode.prototype;
dart.addTypeTests(convert.HtmlEscapeMode);
dart.addTypeCaches(convert.HtmlEscapeMode);
dart.setLibraryUri(convert.HtmlEscapeMode, L13);
dart.setFieldSignature(convert.HtmlEscapeMode, () => ({
  __proto__: dart.getFields(convert.HtmlEscapeMode.__proto__),
  [_name$2]: dart.finalFieldType(core.String),
  escapeLtGt: dart.finalFieldType(core.bool),
  escapeQuot: dart.finalFieldType(core.bool),
  escapeApos: dart.finalFieldType(core.bool),
  escapeSlash: dart.finalFieldType(core.bool)
}));
dart.defineExtensionMethods(convert.HtmlEscapeMode, ['toString']);
dart.defineLazy(convert.HtmlEscapeMode, {
  /*convert.HtmlEscapeMode.unknown*/get unknown() {
    return C89 || CT.C89;
  },
  /*convert.HtmlEscapeMode.attribute*/get attribute() {
    return C90 || CT.C90;
  },
  /*convert.HtmlEscapeMode.sqAttribute*/get sqAttribute() {
    return C91 || CT.C91;
  },
  /*convert.HtmlEscapeMode.element*/get element() {
    return C92 || CT.C92;
  }
}, true);
var _convert = dart.privateName(convert, "_convert");
var mode$ = dart.privateName(convert, "HtmlEscape.mode");
convert.HtmlEscape = class HtmlEscape extends convert.Converter$(core.String, core.String) {
  get mode() {
    return this[mode$];
  }
  set mode(value) {
    super.mode = value;
  }
  convert(text) {
    core.String.as(text);
    let val = this[_convert](text, 0, text.length);
    return val == null ? text : val;
  }
  [_convert](text, start, end) {
    let result = null;
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      let ch = text[$_get](i);
      let replacement = null;
      switch (ch) {
        case "&":
        {
          replacement = "&amp;";
          break;
        }
        case "\"":
        {
          if (dart.test(this.mode.escapeQuot)) replacement = "&quot;";
          break;
        }
        case "'":
        {
          if (dart.test(this.mode.escapeApos)) replacement = "&#39;";
          break;
        }
        case "<":
        {
          if (dart.test(this.mode.escapeLtGt)) replacement = "&lt;";
          break;
        }
        case ">":
        {
          if (dart.test(this.mode.escapeLtGt)) replacement = "&gt;";
          break;
        }
        case "/":
        {
          if (dart.test(this.mode.escapeSlash)) replacement = "&#47;";
          break;
        }
      }
      if (replacement != null) {
        result == null ? result = new core.StringBuffer.new() : null;
        if (dart.notNull(i) > dart.notNull(start)) result.write(text[$substring](start, i));
        result.write(replacement);
        start = dart.notNull(i) + 1;
      }
    }
    if (result == null) return null;
    if (dart.notNull(end) > dart.notNull(start)) result.write(text[$substring](start, end));
    return dart.toString(result);
  }
  startChunkedConversion(sink) {
    SinkOfStringL().as(sink);
    return new convert._HtmlEscapeSink.new(this, convert.StringConversionSink.is(sink) ? sink : new convert._StringAdapterSink.new(sink));
  }
};
(convert.HtmlEscape.new = function(mode = C89 || CT.C89) {
  this[mode$] = mode;
  convert.HtmlEscape.__proto__.new.call(this);
  ;
}).prototype = convert.HtmlEscape.prototype;
dart.addTypeTests(convert.HtmlEscape);
dart.addTypeCaches(convert.HtmlEscape);
dart.setMethodSignature(convert.HtmlEscape, () => ({
  __proto__: dart.getMethods(convert.HtmlEscape.__proto__),
  convert: dart.fnType(core.String, [core.Object]),
  [_convert]: dart.fnType(core.String, [core.String, core.int, core.int]),
  startChunkedConversion: dart.fnType(convert.StringConversionSink, [core.Object])
}));
dart.setLibraryUri(convert.HtmlEscape, L13);
dart.setFieldSignature(convert.HtmlEscape, () => ({
  __proto__: dart.getFields(convert.HtmlEscape.__proto__),
  mode: dart.finalFieldType(convert.HtmlEscapeMode)
}));
var _escape$ = dart.privateName(convert, "_escape");
convert._HtmlEscapeSink = class _HtmlEscapeSink extends convert.StringConversionSinkBase {
  addSlice(chunk, start, end, isLast) {
    let val = this[_escape$][_convert](chunk, start, end);
    if (val == null) {
      this[_sink$0].addSlice(chunk, start, end, isLast);
    } else {
      this[_sink$0].add(val);
      if (dart.test(isLast)) this[_sink$0].close();
    }
  }
  close() {
    this[_sink$0].close();
  }
};
(convert._HtmlEscapeSink.new = function(_escape, _sink) {
  this[_escape$] = _escape;
  this[_sink$0] = _sink;
  ;
}).prototype = convert._HtmlEscapeSink.prototype;
dart.addTypeTests(convert._HtmlEscapeSink);
dart.addTypeCaches(convert._HtmlEscapeSink);
dart.setMethodSignature(convert._HtmlEscapeSink, () => ({
  __proto__: dart.getMethods(convert._HtmlEscapeSink.__proto__),
  addSlice: dart.fnType(dart.void, [core.String, core.int, core.int, core.bool]),
  close: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(convert._HtmlEscapeSink, L13);
dart.setFieldSignature(convert._HtmlEscapeSink, () => ({
  __proto__: dart.getFields(convert._HtmlEscapeSink.__proto__),
  [_escape$]: dart.finalFieldType(convert.HtmlEscape),
  [_sink$0]: dart.finalFieldType(convert.StringConversionSink)
}));
var unsupportedObject$ = dart.privateName(convert, "JsonUnsupportedObjectError.unsupportedObject");
var cause$ = dart.privateName(convert, "JsonUnsupportedObjectError.cause");
var partialResult$ = dart.privateName(convert, "JsonUnsupportedObjectError.partialResult");
convert.JsonUnsupportedObjectError = class JsonUnsupportedObjectError extends core.Error {
  get unsupportedObject() {
    return this[unsupportedObject$];
  }
  set unsupportedObject(value) {
    super.unsupportedObject = value;
  }
  get cause() {
    return this[cause$];
  }
  set cause(value) {
    super.cause = value;
  }
  get partialResult() {
    return this[partialResult$];
  }
  set partialResult(value) {
    super.partialResult = value;
  }
  toString() {
    let safeString = core.Error.safeToString(this.unsupportedObject);
    let prefix = null;
    if (this.cause != null) {
      prefix = "Converting object to an encodable object failed:";
    } else {
      prefix = "Converting object did not return an encodable object:";
    }
    return dart.str(prefix) + " " + dart.str(safeString);
  }
};
(convert.JsonUnsupportedObjectError.new = function(unsupportedObject, opts) {
  let cause = opts && 'cause' in opts ? opts.cause : null;
  let partialResult = opts && 'partialResult' in opts ? opts.partialResult : null;
  this[unsupportedObject$] = unsupportedObject;
  this[cause$] = cause;
  this[partialResult$] = partialResult;
  convert.JsonUnsupportedObjectError.__proto__.new.call(this);
  ;
}).prototype = convert.JsonUnsupportedObjectError.prototype;
dart.addTypeTests(convert.JsonUnsupportedObjectError);
dart.addTypeCaches(convert.JsonUnsupportedObjectError);
dart.setLibraryUri(convert.JsonUnsupportedObjectError, L13);
dart.setFieldSignature(convert.JsonUnsupportedObjectError, () => ({
  __proto__: dart.getFields(convert.JsonUnsupportedObjectError.__proto__),
  unsupportedObject: dart.finalFieldType(core.Object),
  cause: dart.finalFieldType(core.Object),
  partialResult: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(convert.JsonUnsupportedObjectError, ['toString']);
convert.JsonCyclicError = class JsonCyclicError extends convert.JsonUnsupportedObjectError {
  toString() {
    return "Cyclic error in JSON stringify";
  }
};
(convert.JsonCyclicError.new = function(object) {
  convert.JsonCyclicError.__proto__.new.call(this, object);
  ;
}).prototype = convert.JsonCyclicError.prototype;
dart.addTypeTests(convert.JsonCyclicError);
dart.addTypeCaches(convert.JsonCyclicError);
dart.setLibraryUri(convert.JsonCyclicError, L13);
dart.defineExtensionMethods(convert.JsonCyclicError, ['toString']);
var _toEncodable$ = dart.privateName(convert, "_toEncodable");
var JsonEncoder__toEncodable = dart.privateName(convert, "JsonEncoder._toEncodable");
var JsonEncoder_indent = dart.privateName(convert, "JsonEncoder.indent");
var C93;
var JsonDecoder__reviver = dart.privateName(convert, "JsonDecoder._reviver");
var C94;
var _reviver = dart.privateName(convert, "JsonCodec._reviver");
var _toEncodable = dart.privateName(convert, "JsonCodec._toEncodable");
convert.JsonCodec = class JsonCodec extends convert.Codec$(core.Object, core.String) {
  get [_reviver$]() {
    return this[_reviver];
  }
  set [_reviver$](value) {
    super[_reviver$] = value;
  }
  get [_toEncodable$]() {
    return this[_toEncodable];
  }
  set [_toEncodable$](value) {
    super[_toEncodable$] = value;
  }
  decode(source, opts) {
    core.String.as(source);
    let reviver = opts && 'reviver' in opts ? opts.reviver : null;
    reviver == null ? reviver = this[_reviver$] : null;
    if (reviver == null) return this.decoder.convert(source);
    return new convert.JsonDecoder.new(reviver).convert(source);
  }
  encode(value, opts) {
    let toEncodable = opts && 'toEncodable' in opts ? opts.toEncodable : null;
    toEncodable == null ? toEncodable = this[_toEncodable$] : null;
    if (toEncodable == null) return this.encoder.convert(value);
    return new convert.JsonEncoder.new(toEncodable).convert(value);
  }
  get encoder() {
    if (this[_toEncodable$] == null) return C93 || CT.C93;
    return new convert.JsonEncoder.new(this[_toEncodable$]);
  }
  get decoder() {
    if (this[_reviver$] == null) return C94 || CT.C94;
    return new convert.JsonDecoder.new(this[_reviver$]);
  }
};
(convert.JsonCodec.new = function(opts) {
  let reviver = opts && 'reviver' in opts ? opts.reviver : null;
  let toEncodable = opts && 'toEncodable' in opts ? opts.toEncodable : null;
  this[_reviver] = reviver;
  this[_toEncodable] = toEncodable;
  convert.JsonCodec.__proto__.new.call(this);
  ;
}).prototype = convert.JsonCodec.prototype;
(convert.JsonCodec.withReviver = function(reviver) {
  convert.JsonCodec.new.call(this, {reviver: reviver});
}).prototype = convert.JsonCodec.prototype;
dart.addTypeTests(convert.JsonCodec);
dart.addTypeCaches(convert.JsonCodec);
dart.setMethodSignature(convert.JsonCodec, () => ({
  __proto__: dart.getMethods(convert.JsonCodec.__proto__),
  decode: dart.fnType(dart.dynamic, [core.Object], {reviver: dart.fnType(dart.dynamic, [core.Object, core.Object])}, {}),
  encode: dart.fnType(core.String, [core.Object], {toEncodable: dart.fnType(dart.dynamic, [dart.dynamic])}, {})
}));
dart.setGetterSignature(convert.JsonCodec, () => ({
  __proto__: dart.getGetters(convert.JsonCodec.__proto__),
  encoder: convert.JsonEncoder,
  decoder: convert.JsonDecoder
}));
dart.setLibraryUri(convert.JsonCodec, L13);
dart.setFieldSignature(convert.JsonCodec, () => ({
  __proto__: dart.getFields(convert.JsonCodec.__proto__),
  [_reviver$]: dart.finalFieldType(dart.fnType(dart.dynamic, [core.Object, core.Object])),
  [_toEncodable$]: dart.finalFieldType(dart.fnType(dart.dynamic, [dart.dynamic]))
}));
convert.JsonEncoder = class JsonEncoder extends convert.Converter$(core.Object, core.String) {
  get indent() {
    return this[indent$];
  }
  set indent(value) {
    super.indent = value;
  }
  get [_toEncodable$]() {
    return this[_toEncodable$0];
  }
  set [_toEncodable$](value) {
    super[_toEncodable$] = value;
  }
  convert(object) {
    return convert._JsonStringStringifier.stringify(object, this[_toEncodable$], this.indent);
  }
  startChunkedConversion(sink) {
    SinkOfStringL().as(sink);
    if (convert._Utf8EncoderSink.is(sink)) {
      return new convert._JsonUtf8EncoderSink.new(sink[_sink$0], this[_toEncodable$], convert.JsonUtf8Encoder._utf8Encode(this.indent), 256);
    }
    return new convert._JsonEncoderSink.new(convert.StringConversionSink.is(sink) ? sink : new convert._StringAdapterSink.new(sink), this[_toEncodable$], this.indent);
  }
  bind(stream) {
    StreamOfObjectL().as(stream);
    return super.bind(stream);
  }
  fuse(T, other) {
    convert.Converter$(core.String, T).as(other);
    if (convert.Utf8Encoder.is(other)) {
      return convert.Converter$(core.Object, T).as(new convert.JsonUtf8Encoder.new(this.indent, this[_toEncodable$]));
    }
    return super.fuse(T, other);
  }
};
(convert.JsonEncoder.new = function(toEncodable = null) {
  this[indent$] = null;
  this[_toEncodable$0] = toEncodable;
  convert.JsonEncoder.__proto__.new.call(this);
  ;
}).prototype = convert.JsonEncoder.prototype;
(convert.JsonEncoder.withIndent = function(indent, toEncodable = null) {
  this[indent$] = indent;
  this[_toEncodable$0] = toEncodable;
  convert.JsonEncoder.__proto__.new.call(this);
  ;
}).prototype = convert.JsonEncoder.prototype;
dart.addTypeTests(convert.JsonEncoder);
dart.addTypeCaches(convert.JsonEncoder);
const indent$ = JsonEncoder_indent;
const _toEncodable$0 = JsonEncoder__toEncodable;
dart.setMethodSignature(convert.JsonEncoder, () => ({
  __proto__: dart.getMethods(convert.JsonEncoder.__proto__),
  convert: dart.fnType(core.String, [core.Object]),
  startChunkedConversion: dart.fnType(convert.ChunkedConversionSink$(core.Object), [core.Object]),
  fuse: dart.gFnType(T => [convert.Converter$(core.Object, T), [core.Object]])
}));
dart.setLibraryUri(convert.JsonEncoder, L13);
dart.setFieldSignature(convert.JsonEncoder, () => ({
  __proto__: dart.getFields(convert.JsonEncoder.__proto__),
  indent: dart.finalFieldType(core.String),
  [_toEncodable$]: dart.finalFieldType(dart.fnType(dart.dynamic, [dart.dynamic]))
}));
var _indent$ = dart.privateName(convert, "_indent");
var _bufferSize$ = dart.privateName(convert, "_bufferSize");
convert.JsonUtf8Encoder = class JsonUtf8Encoder extends convert.Converter$(core.Object, core.List$(core.int)) {
  static _utf8Encode(string) {
    if (string == null) return null;
    if (string[$isEmpty]) return _native_typed_data.NativeUint8List.new(0);
    L0: {
      for (let i = 0; i < string.length; i = i + 1) {
        if (string[$codeUnitAt](i) >= 128) break L0;
      }
      return string[$codeUnits];
    }
    return convert.utf8.encode(string);
  }
  convert(object) {
    let bytes = JSArrayOfListLOfintL().of([]);
    function addChunk(chunk, start, end) {
      if (dart.notNull(start) > 0 || dart.notNull(end) < dart.notNull(chunk[$length])) {
        let length = dart.notNull(end) - dart.notNull(start);
        chunk = typed_data.Uint8List.view(chunk[$buffer], dart.notNull(chunk[$offsetInBytes]) + dart.notNull(start), length);
      }
      bytes[$add](chunk);
    }
    dart.fn(addChunk, Uint8ListLAndintLAndintLTovoid());
    convert._JsonUtf8Stringifier.stringify(object, this[_indent$], this[_toEncodable$], this[_bufferSize$], addChunk);
    if (bytes[$length] === 1) return bytes[$_get](0);
    let length = 0;
    for (let i = 0; i < dart.notNull(bytes[$length]); i = i + 1) {
      length = length + dart.notNull(bytes[$_get](i)[$length]);
    }
    let result = _native_typed_data.NativeUint8List.new(length);
    for (let i = 0, offset = 0; i < dart.notNull(bytes[$length]); i = i + 1) {
      let byteList = bytes[$_get](i);
      let end = offset + dart.notNull(byteList[$length]);
      result[$setRange](offset, end, byteList);
      offset = end;
    }
    return result;
  }
  startChunkedConversion(sink) {
    SinkOfListLOfintL().as(sink);
    let byteSink = null;
    if (convert.ByteConversionSink.is(sink)) {
      byteSink = sink;
    } else {
      byteSink = new convert._ByteAdapterSink.new(sink);
    }
    return new convert._JsonUtf8EncoderSink.new(byteSink, this[_toEncodable$], this[_indent$], this[_bufferSize$]);
  }
  bind(stream) {
    StreamOfObjectL().as(stream);
    return super.bind(stream);
  }
};
(convert.JsonUtf8Encoder.new = function(indent = null, toEncodable = null, bufferSize = 256) {
  this[_indent$] = convert.JsonUtf8Encoder._utf8Encode(indent);
  this[_toEncodable$] = toEncodable;
  this[_bufferSize$] = bufferSize;
  convert.JsonUtf8Encoder.__proto__.new.call(this);
  ;
}).prototype = convert.JsonUtf8Encoder.prototype;
dart.addTypeTests(convert.JsonUtf8Encoder);
dart.addTypeCaches(convert.JsonUtf8Encoder);
dart.setMethodSignature(convert.JsonUtf8Encoder, () => ({
  __proto__: dart.getMethods(convert.JsonUtf8Encoder.__proto__),
  convert: dart.fnType(core.List$(core.int), [core.Object]),
  startChunkedConversion: dart.fnType(convert.ChunkedConversionSink$(core.Object), [core.Object])
}));
dart.setLibraryUri(convert.JsonUtf8Encoder, L13);
dart.setFieldSignature(convert.JsonUtf8Encoder, () => ({
  __proto__: dart.getFields(convert.JsonUtf8Encoder.__proto__),
  [_indent$]: dart.finalFieldType(core.List$(core.int)),
  [_toEncodable$]: dart.finalFieldType(dart.fnType(dart.dynamic, [dart.dynamic])),
  [_bufferSize$]: dart.finalFieldType(core.int)
}));
dart.defineLazy(convert.JsonUtf8Encoder, {
  /*convert.JsonUtf8Encoder._defaultBufferSize*/get _defaultBufferSize() {
    return 256;
  },
  /*convert.JsonUtf8Encoder.DEFAULT_BUFFER_SIZE*/get DEFAULT_BUFFER_SIZE() {
    return 256;
  }
}, true);
var _isDone = dart.privateName(convert, "_isDone");
convert._JsonEncoderSink = class _JsonEncoderSink extends convert.ChunkedConversionSink$(core.Object) {
  add(o) {
    if (dart.test(this[_isDone])) {
      dart.throw(new core.StateError.new("Only one call to add allowed"));
    }
    this[_isDone] = true;
    let stringSink = this[_sink$0].asStringSink();
    convert._JsonStringStringifier.printOn(o, stringSink, this[_toEncodable$], this[_indent$]);
    stringSink.close();
  }
  close() {
  }
};
(convert._JsonEncoderSink.new = function(_sink, _toEncodable, _indent) {
  this[_isDone] = false;
  this[_sink$0] = _sink;
  this[_toEncodable$] = _toEncodable;
  this[_indent$] = _indent;
  convert._JsonEncoderSink.__proto__.new.call(this);
  ;
}).prototype = convert._JsonEncoderSink.prototype;
dart.addTypeTests(convert._JsonEncoderSink);
dart.addTypeCaches(convert._JsonEncoderSink);
dart.setMethodSignature(convert._JsonEncoderSink, () => ({
  __proto__: dart.getMethods(convert._JsonEncoderSink.__proto__),
  add: dart.fnType(dart.void, [core.Object]),
  close: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(convert._JsonEncoderSink, L13);
dart.setFieldSignature(convert._JsonEncoderSink, () => ({
  __proto__: dart.getFields(convert._JsonEncoderSink.__proto__),
  [_indent$]: dart.finalFieldType(core.String),
  [_toEncodable$]: dart.finalFieldType(dart.fnType(dart.dynamic, [dart.dynamic])),
  [_sink$0]: dart.finalFieldType(convert.StringConversionSink),
  [_isDone]: dart.fieldType(core.bool)
}));
var _addChunk = dart.privateName(convert, "_addChunk");
convert._JsonUtf8EncoderSink = class _JsonUtf8EncoderSink extends convert.ChunkedConversionSink$(core.Object) {
  [_addChunk](chunk, start, end) {
    this[_sink$0].addSlice(chunk, start, end, false);
  }
  add(object) {
    if (dart.test(this[_isDone])) {
      dart.throw(new core.StateError.new("Only one call to add allowed"));
    }
    this[_isDone] = true;
    convert._JsonUtf8Stringifier.stringify(object, this[_indent$], this[_toEncodable$], this[_bufferSize$], dart.bind(this, _addChunk));
    this[_sink$0].close();
  }
  close() {
    if (!dart.test(this[_isDone])) {
      this[_isDone] = true;
      this[_sink$0].close();
    }
  }
};
(convert._JsonUtf8EncoderSink.new = function(_sink, _toEncodable, _indent, _bufferSize) {
  this[_isDone] = false;
  this[_sink$0] = _sink;
  this[_toEncodable$] = _toEncodable;
  this[_indent$] = _indent;
  this[_bufferSize$] = _bufferSize;
  convert._JsonUtf8EncoderSink.__proto__.new.call(this);
  ;
}).prototype = convert._JsonUtf8EncoderSink.prototype;
dart.addTypeTests(convert._JsonUtf8EncoderSink);
dart.addTypeCaches(convert._JsonUtf8EncoderSink);
dart.setMethodSignature(convert._JsonUtf8EncoderSink, () => ({
  __proto__: dart.getMethods(convert._JsonUtf8EncoderSink.__proto__),
  [_addChunk]: dart.fnType(dart.void, [typed_data.Uint8List, core.int, core.int]),
  add: dart.fnType(dart.void, [core.Object]),
  close: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(convert._JsonUtf8EncoderSink, L13);
dart.setFieldSignature(convert._JsonUtf8EncoderSink, () => ({
  __proto__: dart.getFields(convert._JsonUtf8EncoderSink.__proto__),
  [_sink$0]: dart.finalFieldType(convert.ByteConversionSink),
  [_indent$]: dart.finalFieldType(core.List$(core.int)),
  [_toEncodable$]: dart.finalFieldType(dart.fnType(dart.dynamic, [dart.dynamic])),
  [_bufferSize$]: dart.finalFieldType(core.int),
  [_isDone]: dart.fieldType(core.bool)
}));
convert.JsonDecoder = class JsonDecoder extends convert.Converter$(core.String, core.Object) {
  get [_reviver$]() {
    return this[_reviver$0];
  }
  set [_reviver$](value) {
    super[_reviver$] = value;
  }
  convert(input) {
    core.String.as(input);
    return convert._parseJson(input, this[_reviver$]);
  }
  startChunkedConversion(sink) {
    return new convert._JsonDecoderSink.new(this[_reviver$], sink);
  }
  bind(stream) {
    StreamOfStringL().as(stream);
    return super.bind(stream);
  }
};
(convert.JsonDecoder.new = function(reviver = null) {
  this[_reviver$0] = reviver;
  convert.JsonDecoder.__proto__.new.call(this);
  ;
}).prototype = convert.JsonDecoder.prototype;
dart.addTypeTests(convert.JsonDecoder);
dart.addTypeCaches(convert.JsonDecoder);
const _reviver$0 = JsonDecoder__reviver;
dart.setMethodSignature(convert.JsonDecoder, () => ({
  __proto__: dart.getMethods(convert.JsonDecoder.__proto__),
  convert: dart.fnType(dart.dynamic, [core.Object]),
  startChunkedConversion: dart.fnType(convert.StringConversionSink, [core.Sink$(core.Object)])
}));
dart.setLibraryUri(convert.JsonDecoder, L13);
dart.setFieldSignature(convert.JsonDecoder, () => ({
  __proto__: dart.getFields(convert.JsonDecoder.__proto__),
  [_reviver$]: dart.finalFieldType(dart.fnType(dart.dynamic, [core.Object, core.Object]))
}));
var _seen = dart.privateName(convert, "_seen");
var C95;
var _checkCycle = dart.privateName(convert, "_checkCycle");
var _removeSeen = dart.privateName(convert, "_removeSeen");
var _partialResult = dart.privateName(convert, "_partialResult");
convert._JsonStringifier = class _JsonStringifier extends core.Object {
  static hexDigit(x) {
    return dart.notNull(x) < 10 ? 48 + dart.notNull(x) : 87 + dart.notNull(x);
  }
  writeStringContent(s) {
    let offset = 0;
    let length = s.length;
    for (let i = 0; i < length; i = i + 1) {
      let charCode = s[$codeUnitAt](i);
      if (charCode > 92) continue;
      if (charCode < 32) {
        if (i > offset) this.writeStringSlice(s, offset, i);
        offset = i + 1;
        this.writeCharCode(92);
        switch (charCode) {
          case 8:
          {
            this.writeCharCode(98);
            break;
          }
          case 9:
          {
            this.writeCharCode(116);
            break;
          }
          case 10:
          {
            this.writeCharCode(110);
            break;
          }
          case 12:
          {
            this.writeCharCode(102);
            break;
          }
          case 13:
          {
            this.writeCharCode(114);
            break;
          }
          default:
          {
            this.writeCharCode(117);
            this.writeCharCode(48);
            this.writeCharCode(48);
            this.writeCharCode(convert._JsonStringifier.hexDigit(charCode >> 4 & 15));
            this.writeCharCode(convert._JsonStringifier.hexDigit(charCode & 15));
            break;
          }
        }
      } else if (charCode === 34 || charCode === 92) {
        if (i > offset) this.writeStringSlice(s, offset, i);
        offset = i + 1;
        this.writeCharCode(92);
        this.writeCharCode(charCode);
      }
    }
    if (offset === 0) {
      this.writeString(s);
    } else if (offset < length) {
      this.writeStringSlice(s, offset, length);
    }
  }
  [_checkCycle](object) {
    for (let i = 0; i < dart.notNull(this[_seen][$length]); i = i + 1) {
      if (core.identical(object, this[_seen][$_get](i))) {
        dart.throw(new convert.JsonCyclicError.new(object));
      }
    }
    this[_seen][$add](object);
  }
  [_removeSeen](object) {
    if (!dart.test(this[_seen][$isNotEmpty])) dart.assertFailed(null, L42, 637, 12, "_seen.isNotEmpty");
    if (!core.identical(this[_seen][$last], object)) dart.assertFailed(null, L42, 638, 12, "identical(_seen.last, object)");
    this[_seen][$removeLast]();
  }
  writeObject(object) {
    let t66;
    if (dart.test(this.writeJsonValue(object))) return;
    this[_checkCycle](object);
    try {
      let customJson = (t66 = object, this[_toEncodable$](t66));
      if (!dart.test(this.writeJsonValue(customJson))) {
        dart.throw(new convert.JsonUnsupportedObjectError.new(object, {partialResult: this[_partialResult]}));
      }
      this[_removeSeen](object);
    } catch (e$) {
      let e = dart.getThrown(e$);
      dart.throw(new convert.JsonUnsupportedObjectError.new(object, {cause: e, partialResult: this[_partialResult]}));
    }
  }
  writeJsonValue(object) {
    if (typeof object == 'number') {
      if (!object[$isFinite]) return false;
      this.writeNumber(object);
      return true;
    } else if (object === true) {
      this.writeString("true");
      return true;
    } else if (object === false) {
      this.writeString("false");
      return true;
    } else if (object == null) {
      this.writeString("null");
      return true;
    } else if (typeof object == 'string') {
      this.writeString("\"");
      this.writeStringContent(object);
      this.writeString("\"");
      return true;
    } else if (core.List.is(object)) {
      this[_checkCycle](object);
      this.writeList(object);
      this[_removeSeen](object);
      return true;
    } else if (core.Map.is(object)) {
      this[_checkCycle](object);
      let success = this.writeMap(object);
      this[_removeSeen](object);
      return success;
    } else {
      return false;
    }
  }
  writeList(list) {
    this.writeString("[");
    if (dart.test(list[$isNotEmpty])) {
      this.writeObject(list[$_get](0));
      for (let i = 1; i < dart.notNull(list[$length]); i = i + 1) {
        this.writeString(",");
        this.writeObject(list[$_get](i));
      }
    }
    this.writeString("]");
  }
  writeMap(map) {
    if (dart.test(map[$isEmpty])) {
      this.writeString("{}");
      return true;
    }
    let keyValueList = core.List.new(dart.notNull(map[$length]) * 2);
    let i = 0;
    let allStringKeys = true;
    map[$forEach](dart.fn((key, value) => {
      let t67, t67$;
      if (!(typeof key == 'string')) {
        allStringKeys = false;
      }
      keyValueList[$_set]((t67 = i, i = t67 + 1, t67), key);
      keyValueList[$_set]((t67$ = i, i = t67$ + 1, t67$), value);
    }, dynamicAnddynamicToNullN()));
    if (!allStringKeys) return false;
    this.writeString("{");
    let separator = "\"";
    for (let i = 0; i < dart.notNull(keyValueList[$length]); i = i + 2) {
      this.writeString(separator);
      separator = ",\"";
      this.writeStringContent(core.String.as(keyValueList[$_get](i)));
      this.writeString("\":");
      this.writeObject(keyValueList[$_get](i + 1));
    }
    this.writeString("}");
    return true;
  }
};
(convert._JsonStringifier.new = function(toEncodable) {
  let t66;
  this[_seen] = [];
  this[_toEncodable$] = (t66 = toEncodable, t66 == null ? C95 || CT.C95 : t66);
  ;
}).prototype = convert._JsonStringifier.prototype;
dart.addTypeTests(convert._JsonStringifier);
dart.addTypeCaches(convert._JsonStringifier);
dart.setMethodSignature(convert._JsonStringifier, () => ({
  __proto__: dart.getMethods(convert._JsonStringifier.__proto__),
  writeStringContent: dart.fnType(dart.void, [core.String]),
  [_checkCycle]: dart.fnType(dart.void, [dart.dynamic]),
  [_removeSeen]: dart.fnType(dart.void, [dart.dynamic]),
  writeObject: dart.fnType(dart.void, [dart.dynamic]),
  writeJsonValue: dart.fnType(core.bool, [dart.dynamic]),
  writeList: dart.fnType(dart.void, [core.List]),
  writeMap: dart.fnType(core.bool, [core.Map])
}));
dart.setLibraryUri(convert._JsonStringifier, L13);
dart.setFieldSignature(convert._JsonStringifier, () => ({
  __proto__: dart.getFields(convert._JsonStringifier.__proto__),
  [_seen]: dart.finalFieldType(core.List),
  [_toEncodable$]: dart.finalFieldType(dart.fnType(dart.dynamic, [dart.dynamic]))
}));
dart.defineLazy(convert._JsonStringifier, {
  /*convert._JsonStringifier.backspace*/get backspace() {
    return 8;
  },
  /*convert._JsonStringifier.tab*/get tab() {
    return 9;
  },
  /*convert._JsonStringifier.newline*/get newline() {
    return 10;
  },
  /*convert._JsonStringifier.carriageReturn*/get carriageReturn() {
    return 13;
  },
  /*convert._JsonStringifier.formFeed*/get formFeed() {
    return 12;
  },
  /*convert._JsonStringifier.quote*/get quote() {
    return 34;
  },
  /*convert._JsonStringifier.char_0*/get char_0() {
    return 48;
  },
  /*convert._JsonStringifier.backslash*/get backslash() {
    return 92;
  },
  /*convert._JsonStringifier.char_b*/get char_b() {
    return 98;
  },
  /*convert._JsonStringifier.char_f*/get char_f() {
    return 102;
  },
  /*convert._JsonStringifier.char_n*/get char_n() {
    return 110;
  },
  /*convert._JsonStringifier.char_r*/get char_r() {
    return 114;
  },
  /*convert._JsonStringifier.char_t*/get char_t() {
    return 116;
  },
  /*convert._JsonStringifier.char_u*/get char_u() {
    return 117;
  }
}, true);
var _indentLevel = dart.privateName(convert, "_indentLevel");
convert._JsonPrettyPrintMixin = class _JsonPrettyPrintMixin extends core.Object {
  writeList(list) {
    if (dart.test(list[$isEmpty])) {
      this.writeString("[]");
    } else {
      this.writeString("[\n");
      this[_indentLevel] = dart.notNull(this[_indentLevel]) + 1;
      this.writeIndentation(this[_indentLevel]);
      this.writeObject(list[$_get](0));
      for (let i = 1; i < dart.notNull(list[$length]); i = i + 1) {
        this.writeString(",\n");
        this.writeIndentation(this[_indentLevel]);
        this.writeObject(list[$_get](i));
      }
      this.writeString("\n");
      this[_indentLevel] = dart.notNull(this[_indentLevel]) - 1;
      this.writeIndentation(this[_indentLevel]);
      this.writeString("]");
    }
  }
  writeMap(map) {
    if (dart.test(map[$isEmpty])) {
      this.writeString("{}");
      return true;
    }
    let keyValueList = core.List.new(dart.notNull(map[$length]) * 2);
    let i = 0;
    let allStringKeys = true;
    map[$forEach](dart.fn((key, value) => {
      let t67, t67$;
      if (!(typeof key == 'string')) {
        allStringKeys = false;
      }
      keyValueList[$_set]((t67 = i, i = t67 + 1, t67), key);
      keyValueList[$_set]((t67$ = i, i = t67$ + 1, t67$), value);
    }, dynamicAnddynamicToNullN()));
    if (!allStringKeys) return false;
    this.writeString("{\n");
    this[_indentLevel] = dart.notNull(this[_indentLevel]) + 1;
    let separator = "";
    for (let i = 0; i < dart.notNull(keyValueList[$length]); i = i + 2) {
      this.writeString(separator);
      separator = ",\n";
      this.writeIndentation(this[_indentLevel]);
      this.writeString("\"");
      this.writeStringContent(core.String.as(keyValueList[$_get](i)));
      this.writeString("\": ");
      this.writeObject(keyValueList[$_get](i + 1));
    }
    this.writeString("\n");
    this[_indentLevel] = dart.notNull(this[_indentLevel]) - 1;
    this.writeIndentation(this[_indentLevel]);
    this.writeString("}");
    return true;
  }
};
(convert._JsonPrettyPrintMixin.new = function() {
  this[_indentLevel] = 0;
  ;
}).prototype = convert._JsonPrettyPrintMixin.prototype;
dart.addTypeTests(convert._JsonPrettyPrintMixin);
dart.addTypeCaches(convert._JsonPrettyPrintMixin);
convert._JsonPrettyPrintMixin[dart.implements] = () => [convert._JsonStringifier];
dart.setMethodSignature(convert._JsonPrettyPrintMixin, () => ({
  __proto__: dart.getMethods(convert._JsonPrettyPrintMixin.__proto__),
  writeList: dart.fnType(dart.void, [core.List]),
  writeMap: dart.fnType(core.bool, [core.Map])
}));
dart.setLibraryUri(convert._JsonPrettyPrintMixin, L13);
dart.setFieldSignature(convert._JsonPrettyPrintMixin, () => ({
  __proto__: dart.getFields(convert._JsonPrettyPrintMixin.__proto__),
  [_indentLevel]: dart.fieldType(core.int)
}));
convert._JsonStringStringifier = class _JsonStringStringifier extends convert._JsonStringifier {
  static stringify(object, toEncodable, indent) {
    let output = new core.StringBuffer.new();
    convert._JsonStringStringifier.printOn(object, output, toEncodable, indent);
    return output.toString();
  }
  static printOn(object, output, toEncodable, indent) {
    let stringifier = null;
    if (indent == null) {
      stringifier = new convert._JsonStringStringifier.new(output, toEncodable);
    } else {
      stringifier = new convert._JsonStringStringifierPretty.new(output, toEncodable, indent);
    }
    stringifier.writeObject(object);
  }
  get [_partialResult]() {
    return core.StringBuffer.is(this[_sink$0]) ? dart.toString(this[_sink$0]) : null;
  }
  writeNumber(number) {
    this[_sink$0].write(dart.toString(number));
  }
  writeString(string) {
    this[_sink$0].write(string);
  }
  writeStringSlice(string, start, end) {
    this[_sink$0].write(string[$substring](start, end));
  }
  writeCharCode(charCode) {
    this[_sink$0].writeCharCode(charCode);
  }
};
(convert._JsonStringStringifier.new = function(_sink, _toEncodable) {
  this[_sink$0] = _sink;
  convert._JsonStringStringifier.__proto__.new.call(this, _toEncodable);
  ;
}).prototype = convert._JsonStringStringifier.prototype;
dart.addTypeTests(convert._JsonStringStringifier);
dart.addTypeCaches(convert._JsonStringStringifier);
dart.setMethodSignature(convert._JsonStringStringifier, () => ({
  __proto__: dart.getMethods(convert._JsonStringStringifier.__proto__),
  writeNumber: dart.fnType(dart.void, [core.num]),
  writeString: dart.fnType(dart.void, [core.String]),
  writeStringSlice: dart.fnType(dart.void, [core.String, core.int, core.int]),
  writeCharCode: dart.fnType(dart.void, [core.int])
}));
dart.setGetterSignature(convert._JsonStringStringifier, () => ({
  __proto__: dart.getGetters(convert._JsonStringStringifier.__proto__),
  [_partialResult]: core.String
}));
dart.setLibraryUri(convert._JsonStringStringifier, L13);
dart.setFieldSignature(convert._JsonStringStringifier, () => ({
  __proto__: dart.getFields(convert._JsonStringStringifier.__proto__),
  [_sink$0]: dart.finalFieldType(core.StringSink)
}));
const _JsonStringStringifier__JsonPrettyPrintMixin$36 = class _JsonStringStringifier__JsonPrettyPrintMixin extends convert._JsonStringStringifier {};
(_JsonStringStringifier__JsonPrettyPrintMixin$36.new = function(_sink, _toEncodable) {
  convert._JsonPrettyPrintMixin.new.call(this);
  _JsonStringStringifier__JsonPrettyPrintMixin$36.__proto__.new.call(this, _sink, _toEncodable);
}).prototype = _JsonStringStringifier__JsonPrettyPrintMixin$36.prototype;
dart.applyMixin(_JsonStringStringifier__JsonPrettyPrintMixin$36, convert._JsonPrettyPrintMixin);
convert._JsonStringStringifierPretty = class _JsonStringStringifierPretty extends _JsonStringStringifier__JsonPrettyPrintMixin$36 {
  writeIndentation(count) {
    for (let i = 0; i < dart.notNull(count); i = i + 1)
      this.writeString(this[_indent$]);
  }
};
(convert._JsonStringStringifierPretty.new = function(sink, toEncodable, _indent) {
  this[_indent$] = _indent;
  convert._JsonStringStringifierPretty.__proto__.new.call(this, sink, toEncodable);
  ;
}).prototype = convert._JsonStringStringifierPretty.prototype;
dart.addTypeTests(convert._JsonStringStringifierPretty);
dart.addTypeCaches(convert._JsonStringStringifierPretty);
dart.setMethodSignature(convert._JsonStringStringifierPretty, () => ({
  __proto__: dart.getMethods(convert._JsonStringStringifierPretty.__proto__),
  writeIndentation: dart.fnType(dart.void, [core.int])
}));
dart.setLibraryUri(convert._JsonStringStringifierPretty, L13);
dart.setFieldSignature(convert._JsonStringStringifierPretty, () => ({
  __proto__: dart.getFields(convert._JsonStringStringifierPretty.__proto__),
  [_indent$]: dart.finalFieldType(core.String)
}));
convert._JsonUtf8Stringifier = class _JsonUtf8Stringifier extends convert._JsonStringifier {
  static stringify(object, indent, toEncodable, bufferSize, addChunk) {
    let stringifier = null;
    if (indent != null) {
      stringifier = new convert._JsonUtf8StringifierPretty.new(toEncodable, indent, bufferSize, addChunk);
    } else {
      stringifier = new convert._JsonUtf8Stringifier.new(toEncodable, bufferSize, addChunk);
    }
    stringifier.writeObject(object);
    stringifier.flush();
  }
  flush() {
    let t69, t68, t67;
    if (dart.notNull(this.index) > 0) {
      t67 = this.buffer;
      t68 = 0;
      t69 = this.index;
      this.addChunk(t67, t68, t69);
    }
    this.buffer = null;
    this.index = 0;
  }
  get [_partialResult]() {
    return null;
  }
  writeNumber(number) {
    this.writeAsciiString(dart.toString(number));
  }
  writeAsciiString(string) {
    for (let i = 0; i < string.length; i = i + 1) {
      let char = string[$codeUnitAt](i);
      if (!(char <= 127)) dart.assertFailed(null, L42, 938, 14, "char <= 0x7f");
      this.writeByte(char);
    }
  }
  writeString(string) {
    this.writeStringSlice(string, 0, string.length);
  }
  writeStringSlice(string, start, end) {
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      let char = string[$codeUnitAt](i);
      if (char <= 127) {
        this.writeByte(char);
      } else {
        if ((char & 64512) === 55296 && dart.notNull(i) + 1 < dart.notNull(end)) {
          let nextChar = string[$codeUnitAt](dart.notNull(i) + 1);
          if ((nextChar & 64512) === 56320) {
            char = 65536 + ((char & 1023) << 10) + (nextChar & 1023);
            this.writeFourByteCharCode(char);
            i = dart.notNull(i) + 1;
            continue;
          }
        }
        this.writeMultiByteCharCode(char);
      }
    }
  }
  writeCharCode(charCode) {
    if (dart.notNull(charCode) <= 127) {
      this.writeByte(charCode);
      return;
    }
    this.writeMultiByteCharCode(charCode);
  }
  writeMultiByteCharCode(charCode) {
    if (dart.notNull(charCode) <= 2047) {
      this.writeByte((192 | charCode[$rightShift](6)) >>> 0);
      this.writeByte(128 | dart.notNull(charCode) & 63);
      return;
    }
    if (dart.notNull(charCode) <= 65535) {
      this.writeByte((224 | charCode[$rightShift](12)) >>> 0);
      this.writeByte(128 | dart.notNull(charCode) >> 6 & 63);
      this.writeByte(128 | dart.notNull(charCode) & 63);
      return;
    }
    this.writeFourByteCharCode(charCode);
  }
  writeFourByteCharCode(charCode) {
    if (!(dart.notNull(charCode) <= 1114111)) dart.assertFailed(null, L42, 996, 12, "charCode <= 0x10ffff");
    this.writeByte((240 | charCode[$rightShift](18)) >>> 0);
    this.writeByte(128 | dart.notNull(charCode) >> 12 & 63);
    this.writeByte(128 | dart.notNull(charCode) >> 6 & 63);
    this.writeByte(128 | dart.notNull(charCode) & 63);
  }
  writeByte(byte) {
    let t69, t68, t67, t67$;
    if (!(dart.notNull(byte) <= 255)) dart.assertFailed(null, L42, 1004, 12, "byte <= 0xff");
    if (this.index == this.buffer[$length]) {
      t67 = this.buffer;
      t68 = 0;
      t69 = this.index;
      this.addChunk(t67, t68, t69);
      this.buffer = _native_typed_data.NativeUint8List.new(this.bufferSize);
      this.index = 0;
    }
    this.buffer[$_set]((t67$ = this.index, this.index = dart.notNull(t67$) + 1, t67$), byte);
  }
};
(convert._JsonUtf8Stringifier.new = function(toEncodable, bufferSize, addChunk) {
  this.index = 0;
  this.bufferSize = bufferSize;
  this.addChunk = addChunk;
  this.buffer = _native_typed_data.NativeUint8List.new(bufferSize);
  convert._JsonUtf8Stringifier.__proto__.new.call(this, toEncodable);
  ;
}).prototype = convert._JsonUtf8Stringifier.prototype;
dart.addTypeTests(convert._JsonUtf8Stringifier);
dart.addTypeCaches(convert._JsonUtf8Stringifier);
dart.setMethodSignature(convert._JsonUtf8Stringifier, () => ({
  __proto__: dart.getMethods(convert._JsonUtf8Stringifier.__proto__),
  flush: dart.fnType(dart.void, []),
  writeNumber: dart.fnType(dart.void, [core.num]),
  writeAsciiString: dart.fnType(dart.void, [core.String]),
  writeString: dart.fnType(dart.void, [core.String]),
  writeStringSlice: dart.fnType(dart.void, [core.String, core.int, core.int]),
  writeCharCode: dart.fnType(dart.void, [core.int]),
  writeMultiByteCharCode: dart.fnType(dart.void, [core.int]),
  writeFourByteCharCode: dart.fnType(dart.void, [core.int]),
  writeByte: dart.fnType(dart.void, [core.int])
}));
dart.setGetterSignature(convert._JsonUtf8Stringifier, () => ({
  __proto__: dart.getGetters(convert._JsonUtf8Stringifier.__proto__),
  [_partialResult]: core.String
}));
dart.setLibraryUri(convert._JsonUtf8Stringifier, L13);
dart.setFieldSignature(convert._JsonUtf8Stringifier, () => ({
  __proto__: dart.getFields(convert._JsonUtf8Stringifier.__proto__),
  bufferSize: dart.finalFieldType(core.int),
  addChunk: dart.finalFieldType(dart.fnType(dart.void, [typed_data.Uint8List, core.int, core.int])),
  buffer: dart.fieldType(typed_data.Uint8List),
  index: dart.fieldType(core.int)
}));
const _JsonUtf8Stringifier__JsonPrettyPrintMixin$36 = class _JsonUtf8Stringifier__JsonPrettyPrintMixin extends convert._JsonUtf8Stringifier {};
(_JsonUtf8Stringifier__JsonPrettyPrintMixin$36.new = function(toEncodable, bufferSize, addChunk) {
  convert._JsonPrettyPrintMixin.new.call(this);
  _JsonUtf8Stringifier__JsonPrettyPrintMixin$36.__proto__.new.call(this, toEncodable, bufferSize, addChunk);
}).prototype = _JsonUtf8Stringifier__JsonPrettyPrintMixin$36.prototype;
dart.applyMixin(_JsonUtf8Stringifier__JsonPrettyPrintMixin$36, convert._JsonPrettyPrintMixin);
convert._JsonUtf8StringifierPretty = class _JsonUtf8StringifierPretty extends _JsonUtf8Stringifier__JsonPrettyPrintMixin$36 {
  writeIndentation(count) {
    let indent = this.indent;
    let indentLength = indent[$length];
    if (indentLength === 1) {
      let char = indent[$_get](0);
      while (dart.notNull(count) > 0) {
        this.writeByte(char);
        count = dart.notNull(count) - 1;
      }
      return;
    }
    while (dart.notNull(count) > 0) {
      count = dart.notNull(count) - 1;
      let end = dart.notNull(this.index) + dart.notNull(indentLength);
      if (end <= dart.notNull(this.buffer[$length])) {
        this.buffer[$setRange](this.index, end, indent);
        this.index = end;
      } else {
        for (let i = 0; i < dart.notNull(indentLength); i = i + 1) {
          this.writeByte(indent[$_get](i));
        }
      }
    }
  }
};
(convert._JsonUtf8StringifierPretty.new = function(toEncodable, indent, bufferSize, addChunk) {
  this.indent = indent;
  convert._JsonUtf8StringifierPretty.__proto__.new.call(this, toEncodable, bufferSize, addChunk);
  ;
}).prototype = convert._JsonUtf8StringifierPretty.prototype;
dart.addTypeTests(convert._JsonUtf8StringifierPretty);
dart.addTypeCaches(convert._JsonUtf8StringifierPretty);
dart.setMethodSignature(convert._JsonUtf8StringifierPretty, () => ({
  __proto__: dart.getMethods(convert._JsonUtf8StringifierPretty.__proto__),
  writeIndentation: dart.fnType(dart.void, [core.int])
}));
dart.setLibraryUri(convert._JsonUtf8StringifierPretty, L13);
dart.setFieldSignature(convert._JsonUtf8StringifierPretty, () => ({
  __proto__: dart.getFields(convert._JsonUtf8StringifierPretty.__proto__),
  indent: dart.finalFieldType(core.List$(core.int))
}));
var C96;
var C97;
var C98;
var _allowInvalid$1 = dart.privateName(convert, "Latin1Codec._allowInvalid");
convert.Latin1Codec = class Latin1Codec extends convert.Encoding {
  get [_allowInvalid]() {
    return this[_allowInvalid$1];
  }
  set [_allowInvalid](value) {
    super[_allowInvalid] = value;
  }
  get name() {
    return "iso-8859-1";
  }
  encode(source) {
    core.String.as(source);
    return this.encoder.convert(source);
  }
  decode(bytes, opts) {
    ListOfintL().as(bytes);
    let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : null;
    allowInvalid == null ? allowInvalid = this[_allowInvalid] : null;
    if (dart.test(allowInvalid)) {
      return (C96 || CT.C96).convert(bytes);
    } else {
      return (C97 || CT.C97).convert(bytes);
    }
  }
  get encoder() {
    return C98 || CT.C98;
  }
  get decoder() {
    return dart.test(this[_allowInvalid]) ? C96 || CT.C96 : C97 || CT.C97;
  }
};
(convert.Latin1Codec.new = function(opts) {
  let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
  this[_allowInvalid$1] = allowInvalid;
  convert.Latin1Codec.__proto__.new.call(this);
  ;
}).prototype = convert.Latin1Codec.prototype;
dart.addTypeTests(convert.Latin1Codec);
dart.addTypeCaches(convert.Latin1Codec);
dart.setMethodSignature(convert.Latin1Codec, () => ({
  __proto__: dart.getMethods(convert.Latin1Codec.__proto__),
  encode: dart.fnType(typed_data.Uint8List, [core.Object]),
  decode: dart.fnType(core.String, [core.Object], {allowInvalid: core.bool}, {})
}));
dart.setGetterSignature(convert.Latin1Codec, () => ({
  __proto__: dart.getGetters(convert.Latin1Codec.__proto__),
  name: core.String,
  encoder: convert.Latin1Encoder,
  decoder: convert.Latin1Decoder
}));
dart.setLibraryUri(convert.Latin1Codec, L13);
dart.setFieldSignature(convert.Latin1Codec, () => ({
  __proto__: dart.getFields(convert.Latin1Codec.__proto__),
  [_allowInvalid]: dart.finalFieldType(core.bool)
}));
convert.Latin1Encoder = class Latin1Encoder extends convert._UnicodeSubsetEncoder {};
(convert.Latin1Encoder.new = function() {
  convert.Latin1Encoder.__proto__.new.call(this, 255);
  ;
}).prototype = convert.Latin1Encoder.prototype;
dart.addTypeTests(convert.Latin1Encoder);
dart.addTypeCaches(convert.Latin1Encoder);
dart.setLibraryUri(convert.Latin1Encoder, L13);
convert.Latin1Decoder = class Latin1Decoder extends convert._UnicodeSubsetDecoder {
  startChunkedConversion(sink) {
    SinkOfStringL().as(sink);
    let stringSink = null;
    if (convert.StringConversionSink.is(sink)) {
      stringSink = sink;
    } else {
      stringSink = new convert._StringAdapterSink.new(sink);
    }
    if (!dart.test(this[_allowInvalid])) return new convert._Latin1DecoderSink.new(stringSink);
    return new convert._Latin1AllowInvalidDecoderSink.new(stringSink);
  }
};
(convert.Latin1Decoder.new = function(opts) {
  let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
  convert.Latin1Decoder.__proto__.new.call(this, allowInvalid, 255);
  ;
}).prototype = convert.Latin1Decoder.prototype;
dart.addTypeTests(convert.Latin1Decoder);
dart.addTypeCaches(convert.Latin1Decoder);
dart.setMethodSignature(convert.Latin1Decoder, () => ({
  __proto__: dart.getMethods(convert.Latin1Decoder.__proto__),
  startChunkedConversion: dart.fnType(convert.ByteConversionSink, [core.Object])
}));
dart.setLibraryUri(convert.Latin1Decoder, L13);
var _addSliceToSink = dart.privateName(convert, "_addSliceToSink");
convert._Latin1DecoderSink = class _Latin1DecoderSink extends convert.ByteConversionSinkBase {
  close() {
    this[_sink$0].close();
    this[_sink$0] = null;
  }
  add(source) {
    ListOfintL().as(source);
    this.addSlice(source, 0, source[$length], false);
  }
  [_addSliceToSink](source, start, end, isLast) {
    this[_sink$0].add(core.String.fromCharCodes(source, start, end));
    if (dart.test(isLast)) this.close();
  }
  addSlice(source, start, end, isLast) {
    end = core.RangeError.checkValidRange(start, end, source[$length]);
    if (start == end) return;
    if (!typed_data.Uint8List.is(source)) {
      convert._Latin1DecoderSink._checkValidLatin1(source, start, end);
    }
    this[_addSliceToSink](source, start, end, isLast);
  }
  static _checkValidLatin1(source, start, end) {
    let mask = 0;
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      mask = (mask | dart.notNull(source[$_get](i))) >>> 0;
    }
    if (mask >= 0 && mask <= 255) {
      return;
    }
    convert._Latin1DecoderSink._reportInvalidLatin1(source, start, end);
  }
  static _reportInvalidLatin1(source, start, end) {
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      let char = source[$_get](i);
      if (dart.notNull(char) < 0 || dart.notNull(char) > 255) {
        dart.throw(new core.FormatException.new("Source contains non-Latin-1 characters.", source, i));
      }
    }
    if (!false) dart.assertFailed(null, L43, 159, 12, "false");
  }
};
(convert._Latin1DecoderSink.new = function(_sink) {
  this[_sink$0] = _sink;
  convert._Latin1DecoderSink.__proto__.new.call(this);
  ;
}).prototype = convert._Latin1DecoderSink.prototype;
dart.addTypeTests(convert._Latin1DecoderSink);
dart.addTypeCaches(convert._Latin1DecoderSink);
dart.setMethodSignature(convert._Latin1DecoderSink, () => ({
  __proto__: dart.getMethods(convert._Latin1DecoderSink.__proto__),
  close: dart.fnType(dart.void, []),
  add: dart.fnType(dart.void, [core.Object]),
  [_addSliceToSink]: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int, core.bool])
}));
dart.setLibraryUri(convert._Latin1DecoderSink, L13);
dart.setFieldSignature(convert._Latin1DecoderSink, () => ({
  __proto__: dart.getFields(convert._Latin1DecoderSink.__proto__),
  [_sink$0]: dart.fieldType(convert.StringConversionSink)
}));
var C99;
convert._Latin1AllowInvalidDecoderSink = class _Latin1AllowInvalidDecoderSink extends convert._Latin1DecoderSink {
  addSlice(source, start, end, isLast) {
    core.RangeError.checkValidRange(start, end, source[$length]);
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      let char = source[$_get](i);
      if (dart.notNull(char) > 255 || dart.notNull(char) < 0) {
        if (dart.notNull(i) > dart.notNull(start)) this[_addSliceToSink](source, start, i, false);
        this[_addSliceToSink](C99 || CT.C99, 0, 1, false);
        start = dart.notNull(i) + 1;
      }
    }
    if (dart.notNull(start) < dart.notNull(end)) {
      this[_addSliceToSink](source, start, end, isLast);
    }
    if (dart.test(isLast)) {
      this.close();
    }
  }
};
(convert._Latin1AllowInvalidDecoderSink.new = function(sink) {
  convert._Latin1AllowInvalidDecoderSink.__proto__.new.call(this, sink);
  ;
}).prototype = convert._Latin1AllowInvalidDecoderSink.prototype;
dart.addTypeTests(convert._Latin1AllowInvalidDecoderSink);
dart.addTypeCaches(convert._Latin1AllowInvalidDecoderSink);
dart.setLibraryUri(convert._Latin1AllowInvalidDecoderSink, L13);
convert.LineSplitter = class LineSplitter extends async.StreamTransformerBase$(core.String, core.String) {
  static split(lines, start = 0, end = null) {
    return new (SyncIterableOfStringL()).new(() => (function* split(end) {
      end = core.RangeError.checkValidRange(start, end, lines.length);
      let sliceStart = start;
      let char = 0;
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        let previousChar = char;
        char = lines[$codeUnitAt](i);
        if (char !== 13) {
          if (char !== 10) continue;
          if (previousChar === 13) {
            sliceStart = dart.notNull(i) + 1;
            continue;
          }
        }
        yield lines[$substring](sliceStart, i);
        sliceStart = dart.notNull(i) + 1;
      }
      if (dart.notNull(sliceStart) < dart.notNull(end)) {
        yield lines[$substring](sliceStart, end);
      }
    })(end));
  }
  convert(data) {
    let lines = JSArrayOfStringL().of([]);
    let end = data.length;
    let sliceStart = 0;
    let char = 0;
    for (let i = 0; i < end; i = i + 1) {
      let previousChar = char;
      char = data[$codeUnitAt](i);
      if (char !== 13) {
        if (char !== 10) continue;
        if (previousChar === 13) {
          sliceStart = i + 1;
          continue;
        }
      }
      lines[$add](data[$substring](sliceStart, i));
      sliceStart = i + 1;
    }
    if (sliceStart < end) {
      lines[$add](data[$substring](sliceStart, end));
    }
    return lines;
  }
  startChunkedConversion(sink) {
    return new convert._LineSplitterSink.new(convert.StringConversionSink.is(sink) ? sink : new convert._StringAdapterSink.new(sink));
  }
  bind(stream) {
    StreamOfStringL().as(stream);
    return StreamOfStringL().eventTransformed(stream, dart.fn(sink => new convert._LineSplitterEventSink.new(sink), EventSinkLOfStringLTo_LineSplitterEventSinkL()));
  }
};
(convert.LineSplitter.new = function() {
  convert.LineSplitter.__proto__.new.call(this);
  ;
}).prototype = convert.LineSplitter.prototype;
dart.addTypeTests(convert.LineSplitter);
dart.addTypeCaches(convert.LineSplitter);
dart.setMethodSignature(convert.LineSplitter, () => ({
  __proto__: dart.getMethods(convert.LineSplitter.__proto__),
  convert: dart.fnType(core.List$(core.String), [core.String]),
  startChunkedConversion: dart.fnType(convert.StringConversionSink, [core.Sink$(core.String)]),
  bind: dart.fnType(async.Stream$(core.String), [core.Object])
}));
dart.setLibraryUri(convert.LineSplitter, L13);
var _carry = dart.privateName(convert, "_carry");
var _skipLeadingLF = dart.privateName(convert, "_skipLeadingLF");
var _addLines = dart.privateName(convert, "_addLines");
convert._LineSplitterSink = class _LineSplitterSink extends convert.StringConversionSinkBase {
  addSlice(chunk, start, end, isLast) {
    end = core.RangeError.checkValidRange(start, end, chunk.length);
    if (dart.notNull(start) >= dart.notNull(end)) {
      if (dart.test(isLast)) this.close();
      return;
    }
    if (this[_carry] != null) {
      if (!!dart.test(this[_skipLeadingLF])) dart.assertFailed(null, L44, 116, 14, "!_skipLeadingLF");
      chunk = dart.notNull(this[_carry]) + chunk[$substring](start, end);
      start = 0;
      end = chunk.length;
      this[_carry] = null;
    } else if (dart.test(this[_skipLeadingLF])) {
      if (chunk[$codeUnitAt](start) === 10) {
        start = dart.notNull(start) + 1;
      }
      this[_skipLeadingLF] = false;
    }
    this[_addLines](chunk, start, end);
    if (dart.test(isLast)) this.close();
  }
  close() {
    if (this[_carry] != null) {
      this[_sink$0].add(this[_carry]);
      this[_carry] = null;
    }
    this[_sink$0].close();
  }
  [_addLines](lines, start, end) {
    let sliceStart = start;
    let char = 0;
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      let previousChar = char;
      char = lines[$codeUnitAt](i);
      if (char !== 13) {
        if (char !== 10) continue;
        if (previousChar === 13) {
          sliceStart = dart.notNull(i) + 1;
          continue;
        }
      }
      this[_sink$0].add(lines[$substring](sliceStart, i));
      sliceStart = dart.notNull(i) + 1;
    }
    if (dart.notNull(sliceStart) < dart.notNull(end)) {
      this[_carry] = lines[$substring](sliceStart, end);
    } else {
      this[_skipLeadingLF] = char === 13;
    }
  }
};
(convert._LineSplitterSink.new = function(_sink) {
  this[_carry] = null;
  this[_skipLeadingLF] = false;
  this[_sink$0] = _sink;
  ;
}).prototype = convert._LineSplitterSink.prototype;
dart.addTypeTests(convert._LineSplitterSink);
dart.addTypeCaches(convert._LineSplitterSink);
dart.setMethodSignature(convert._LineSplitterSink, () => ({
  __proto__: dart.getMethods(convert._LineSplitterSink.__proto__),
  addSlice: dart.fnType(dart.void, [core.String, core.int, core.int, core.bool]),
  close: dart.fnType(dart.void, []),
  [_addLines]: dart.fnType(dart.void, [core.String, core.int, core.int])
}));
dart.setLibraryUri(convert._LineSplitterSink, L13);
dart.setFieldSignature(convert._LineSplitterSink, () => ({
  __proto__: dart.getFields(convert._LineSplitterSink.__proto__),
  [_sink$0]: dart.finalFieldType(convert.StringConversionSink),
  [_carry]: dart.fieldType(core.String),
  [_skipLeadingLF]: dart.fieldType(core.bool)
}));
convert._LineSplitterEventSink = class _LineSplitterEventSink extends convert._LineSplitterSink {
  addError(o, stackTrace = null) {
    this[_eventSink].addError(o, stackTrace);
  }
};
(convert._LineSplitterEventSink.new = function(eventSink) {
  this[_eventSink] = eventSink;
  convert._LineSplitterEventSink.__proto__.new.call(this, new convert._StringAdapterSink.new(eventSink));
  ;
}).prototype = convert._LineSplitterEventSink.prototype;
dart.addTypeTests(convert._LineSplitterEventSink);
dart.addTypeCaches(convert._LineSplitterEventSink);
convert._LineSplitterEventSink[dart.implements] = () => [async.EventSink$(core.String)];
dart.setMethodSignature(convert._LineSplitterEventSink, () => ({
  __proto__: dart.getMethods(convert._LineSplitterEventSink.__proto__),
  addError: dart.fnType(dart.void, [core.Object], [core.StackTrace])
}));
dart.setLibraryUri(convert._LineSplitterEventSink, L13);
dart.setFieldSignature(convert._LineSplitterEventSink, () => ({
  __proto__: dart.getFields(convert._LineSplitterEventSink.__proto__),
  [_eventSink]: dart.finalFieldType(async.EventSink$(core.String))
}));
convert.StringConversionSink = class StringConversionSink extends convert.ChunkedConversionSink$(core.String) {};
(convert.StringConversionSink.new = function() {
  convert.StringConversionSink.__proto__.new.call(this);
  ;
}).prototype = convert.StringConversionSink.prototype;
dart.addTypeTests(convert.StringConversionSink);
dart.addTypeCaches(convert.StringConversionSink);
dart.setLibraryUri(convert.StringConversionSink, L13);
convert.ClosableStringSink = class ClosableStringSink extends core.StringSink {};
dart.addTypeTests(convert.ClosableStringSink);
dart.addTypeCaches(convert.ClosableStringSink);
dart.setLibraryUri(convert.ClosableStringSink, L13);
convert._ClosableStringSink = class _ClosableStringSink extends core.Object {
  close() {
    this[_callback$]();
  }
  writeCharCode(charCode) {
    this[_sink$0].writeCharCode(charCode);
  }
  write(o) {
    this[_sink$0].write(o);
  }
  writeln(o = "") {
    this[_sink$0].writeln(o);
  }
  writeAll(objects, separator = "") {
    this[_sink$0].writeAll(objects, separator);
  }
};
(convert._ClosableStringSink.new = function(_sink, _callback) {
  this[_sink$0] = _sink;
  this[_callback$] = _callback;
  ;
}).prototype = convert._ClosableStringSink.prototype;
dart.addTypeTests(convert._ClosableStringSink);
dart.addTypeCaches(convert._ClosableStringSink);
convert._ClosableStringSink[dart.implements] = () => [convert.ClosableStringSink];
dart.setMethodSignature(convert._ClosableStringSink, () => ({
  __proto__: dart.getMethods(convert._ClosableStringSink.__proto__),
  close: dart.fnType(dart.void, []),
  writeCharCode: dart.fnType(dart.void, [core.int]),
  write: dart.fnType(dart.void, [core.Object]),
  writeln: dart.fnType(dart.void, [], [core.Object]),
  writeAll: dart.fnType(dart.void, [core.Iterable], [core.String])
}));
dart.setLibraryUri(convert._ClosableStringSink, L13);
dart.setFieldSignature(convert._ClosableStringSink, () => ({
  __proto__: dart.getFields(convert._ClosableStringSink.__proto__),
  [_callback$]: dart.finalFieldType(dart.fnType(dart.void, [])),
  [_sink$0]: dart.finalFieldType(core.StringSink)
}));
var _flush = dart.privateName(convert, "_flush");
convert._StringConversionSinkAsStringSinkAdapter = class _StringConversionSinkAsStringSinkAdapter extends core.Object {
  close() {
    if (dart.test(this[_buffer].isNotEmpty)) this[_flush]();
    this[_chunkedSink$].close();
  }
  writeCharCode(charCode) {
    this[_buffer].writeCharCode(charCode);
    if (dart.notNull(this[_buffer].length) > 16) this[_flush]();
  }
  write(o) {
    if (dart.test(this[_buffer].isNotEmpty)) this[_flush]();
    this[_chunkedSink$].add(dart.toString(o));
  }
  writeln(o = "") {
    this[_buffer].writeln(o);
    if (dart.notNull(this[_buffer].length) > 16) this[_flush]();
  }
  writeAll(objects, separator = "") {
    if (dart.test(this[_buffer].isNotEmpty)) this[_flush]();
    let iterator = objects[$iterator];
    if (!dart.test(iterator.moveNext())) return;
    if (separator[$isEmpty]) {
      do {
        this[_chunkedSink$].add(dart.toString(iterator.current));
      } while (dart.test(iterator.moveNext()));
    } else {
      this[_chunkedSink$].add(dart.toString(iterator.current));
      while (dart.test(iterator.moveNext())) {
        this.write(separator);
        this[_chunkedSink$].add(dart.toString(iterator.current));
      }
    }
  }
  [_flush]() {
    let accumulated = dart.toString(this[_buffer]);
    this[_buffer].clear();
    this[_chunkedSink$].add(accumulated);
  }
};
(convert._StringConversionSinkAsStringSinkAdapter.new = function(_chunkedSink) {
  this[_chunkedSink$] = _chunkedSink;
  this[_buffer] = new core.StringBuffer.new();
  ;
}).prototype = convert._StringConversionSinkAsStringSinkAdapter.prototype;
dart.addTypeTests(convert._StringConversionSinkAsStringSinkAdapter);
dart.addTypeCaches(convert._StringConversionSinkAsStringSinkAdapter);
convert._StringConversionSinkAsStringSinkAdapter[dart.implements] = () => [convert.ClosableStringSink];
dart.setMethodSignature(convert._StringConversionSinkAsStringSinkAdapter, () => ({
  __proto__: dart.getMethods(convert._StringConversionSinkAsStringSinkAdapter.__proto__),
  close: dart.fnType(dart.void, []),
  writeCharCode: dart.fnType(dart.void, [core.int]),
  write: dart.fnType(dart.void, [core.Object]),
  writeln: dart.fnType(dart.void, [], [core.Object]),
  writeAll: dart.fnType(dart.void, [core.Iterable], [core.String]),
  [_flush]: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(convert._StringConversionSinkAsStringSinkAdapter, L13);
dart.setFieldSignature(convert._StringConversionSinkAsStringSinkAdapter, () => ({
  __proto__: dart.getFields(convert._StringConversionSinkAsStringSinkAdapter.__proto__),
  [_buffer]: dart.fieldType(core.StringBuffer),
  [_chunkedSink$]: dart.fieldType(convert.StringConversionSink)
}));
dart.defineLazy(convert._StringConversionSinkAsStringSinkAdapter, {
  /*convert._StringConversionSinkAsStringSinkAdapter._MIN_STRING_SIZE*/get _MIN_STRING_SIZE() {
    return 16;
  }
}, true);
var _contents = dart.privateName(core, "_contents");
var _writeString = dart.privateName(core, "_writeString");
core.StringBuffer = class StringBuffer extends core.Object {
  [_writeString](str) {
    this[_contents] = _js_helper.Primitives.stringConcatUnchecked(this[_contents], core.String.as(str));
  }
  static _writeAll(string, objects, separator) {
    let iterator = objects[$iterator];
    if (!dart.test(iterator.moveNext())) return string;
    if (separator[$isEmpty]) {
      do {
        string = core.StringBuffer._writeOne(string, iterator.current);
      } while (dart.test(iterator.moveNext()));
    } else {
      string = core.StringBuffer._writeOne(string, iterator.current);
      while (dart.test(iterator.moveNext())) {
        string = core.StringBuffer._writeOne(string, separator);
        string = core.StringBuffer._writeOne(string, iterator.current);
      }
    }
    return string;
  }
  static _writeOne(string, obj) {
    return _js_helper.Primitives.stringConcatUnchecked(string, dart.str(obj));
  }
  get length() {
    return this[_contents].length;
  }
  get isEmpty() {
    return this.length === 0;
  }
  get isNotEmpty() {
    return !dart.test(this.isEmpty);
  }
  write(obj) {
    this[_writeString](dart.str(obj));
  }
  writeCharCode(charCode) {
    this[_writeString](core.String.fromCharCode(charCode));
  }
  writeAll(objects, separator = "") {
    this[_contents] = core.StringBuffer._writeAll(this[_contents], objects, separator);
  }
  writeln(obj = "") {
    this[_writeString](dart.str(obj) + "\n");
  }
  clear() {
    this[_contents] = "";
  }
  toString() {
    return _js_helper.Primitives.flattenString(this[_contents]);
  }
};
(core.StringBuffer.new = function(content = "") {
  this[_contents] = dart.str(content);
  ;
}).prototype = core.StringBuffer.prototype;
dart.addTypeTests(core.StringBuffer);
dart.addTypeCaches(core.StringBuffer);
core.StringBuffer[dart.implements] = () => [core.StringSink];
dart.setMethodSignature(core.StringBuffer, () => ({
  __proto__: dart.getMethods(core.StringBuffer.__proto__),
  [_writeString]: dart.fnType(dart.void, [dart.dynamic]),
  write: dart.fnType(dart.void, [core.Object]),
  writeCharCode: dart.fnType(dart.void, [core.int]),
  writeAll: dart.fnType(dart.void, [core.Iterable], [core.String]),
  writeln: dart.fnType(dart.void, [], [core.Object]),
  clear: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(core.StringBuffer, () => ({
  __proto__: dart.getGetters(core.StringBuffer.__proto__),
  length: core.int,
  isEmpty: core.bool,
  isNotEmpty: core.bool
}));
dart.setLibraryUri(core.StringBuffer, L1$);
dart.setFieldSignature(core.StringBuffer, () => ({
  __proto__: dart.getFields(core.StringBuffer.__proto__),
  [_contents]: dart.fieldType(core.String)
}));
dart.defineExtensionMethods(core.StringBuffer, ['toString']);
convert._StringCallbackSink = class _StringCallbackSink extends convert._StringSinkConversionSink$(core.StringBuffer) {
  close() {
    let t67;
    let accumulated = dart.toString(this[_stringSink$]);
    this[_stringSink$].clear();
    t67 = accumulated;
    this[_callback$](t67);
  }
  asUtf8Sink(allowMalformed) {
    return new convert._Utf8StringSinkAdapter.new(this, this[_stringSink$], allowMalformed);
  }
};
(convert._StringCallbackSink.new = function(_callback) {
  this[_callback$] = _callback;
  convert._StringCallbackSink.__proto__.new.call(this, new core.StringBuffer.new());
  ;
}).prototype = convert._StringCallbackSink.prototype;
dart.addTypeTests(convert._StringCallbackSink);
dart.addTypeCaches(convert._StringCallbackSink);
dart.setLibraryUri(convert._StringCallbackSink, L13);
dart.setFieldSignature(convert._StringCallbackSink, () => ({
  __proto__: dart.getFields(convert._StringCallbackSink.__proto__),
  [_callback$]: dart.finalFieldType(dart.fnType(dart.void, [core.String]))
}));
convert._StringAdapterSink = class _StringAdapterSink extends convert.StringConversionSinkBase {
  add(str) {
    core.String.as(str);
    this[_sink$0].add(str);
  }
  addSlice(str, start, end, isLast) {
    if (start === 0 && end === str.length) {
      this.add(str);
    } else {
      this.add(str[$substring](start, end));
    }
    if (dart.test(isLast)) this.close();
  }
  close() {
    this[_sink$0].close();
  }
};
(convert._StringAdapterSink.new = function(_sink) {
  this[_sink$0] = _sink;
  ;
}).prototype = convert._StringAdapterSink.prototype;
dart.addTypeTests(convert._StringAdapterSink);
dart.addTypeCaches(convert._StringAdapterSink);
dart.setMethodSignature(convert._StringAdapterSink, () => ({
  __proto__: dart.getMethods(convert._StringAdapterSink.__proto__),
  addSlice: dart.fnType(dart.void, [core.String, core.int, core.int, core.bool]),
  close: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(convert._StringAdapterSink, L13);
dart.setFieldSignature(convert._StringAdapterSink, () => ({
  __proto__: dart.getFields(convert._StringAdapterSink.__proto__),
  [_sink$0]: dart.finalFieldType(core.Sink$(core.String))
}));
convert._Utf8StringSinkAdapter = class _Utf8StringSinkAdapter extends convert.ByteConversionSink {
  close() {
    this[_decoder].close();
    if (this[_sink$0] != null) this[_sink$0].close();
  }
  add(chunk) {
    ListOfintL().as(chunk);
    this.addSlice(chunk, 0, chunk[$length], false);
  }
  addSlice(codeUnits, startIndex, endIndex, isLast) {
    this[_decoder].convert(codeUnits, startIndex, endIndex);
    if (dart.test(isLast)) this.close();
  }
};
(convert._Utf8StringSinkAdapter.new = function(_sink, stringSink, allowMalformed) {
  this[_sink$0] = _sink;
  this[_decoder] = new convert._Utf8Decoder.new(stringSink, allowMalformed);
  convert._Utf8StringSinkAdapter.__proto__.new.call(this);
  ;
}).prototype = convert._Utf8StringSinkAdapter.prototype;
dart.addTypeTests(convert._Utf8StringSinkAdapter);
dart.addTypeCaches(convert._Utf8StringSinkAdapter);
dart.setMethodSignature(convert._Utf8StringSinkAdapter, () => ({
  __proto__: dart.getMethods(convert._Utf8StringSinkAdapter.__proto__),
  close: dart.fnType(dart.void, []),
  add: dart.fnType(dart.void, [core.Object]),
  addSlice: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int, core.bool])
}));
dart.setLibraryUri(convert._Utf8StringSinkAdapter, L13);
dart.setFieldSignature(convert._Utf8StringSinkAdapter, () => ({
  __proto__: dart.getFields(convert._Utf8StringSinkAdapter.__proto__),
  [_decoder]: dart.finalFieldType(convert._Utf8Decoder),
  [_sink$0]: dart.finalFieldType(core.Sink)
}));
convert._Utf8ConversionSink = class _Utf8ConversionSink extends convert.ByteConversionSink {
  close() {
    this[_decoder].close();
    if (dart.test(this[_buffer].isNotEmpty)) {
      let accumulated = dart.toString(this[_buffer]);
      this[_buffer].clear();
      this[_chunkedSink$].addSlice(accumulated, 0, accumulated.length, true);
    } else {
      this[_chunkedSink$].close();
    }
  }
  add(chunk) {
    ListOfintL().as(chunk);
    this.addSlice(chunk, 0, chunk[$length], false);
  }
  addSlice(chunk, startIndex, endIndex, isLast) {
    this[_decoder].convert(chunk, startIndex, endIndex);
    if (dart.test(this[_buffer].isNotEmpty)) {
      let accumulated = dart.toString(this[_buffer]);
      this[_chunkedSink$].addSlice(accumulated, 0, accumulated.length, isLast);
      this[_buffer].clear();
      return;
    }
    if (dart.test(isLast)) this.close();
  }
};
(convert._Utf8ConversionSink.new = function(sink, allowMalformed) {
  convert._Utf8ConversionSink.__.call(this, sink, new core.StringBuffer.new(), allowMalformed);
}).prototype = convert._Utf8ConversionSink.prototype;
(convert._Utf8ConversionSink.__ = function(_chunkedSink, stringBuffer, allowMalformed) {
  this[_chunkedSink$] = _chunkedSink;
  this[_decoder] = new convert._Utf8Decoder.new(stringBuffer, allowMalformed);
  this[_buffer] = stringBuffer;
  convert._Utf8ConversionSink.__proto__.new.call(this);
  ;
}).prototype = convert._Utf8ConversionSink.prototype;
dart.addTypeTests(convert._Utf8ConversionSink);
dart.addTypeCaches(convert._Utf8ConversionSink);
dart.setMethodSignature(convert._Utf8ConversionSink, () => ({
  __proto__: dart.getMethods(convert._Utf8ConversionSink.__proto__),
  close: dart.fnType(dart.void, []),
  add: dart.fnType(dart.void, [core.Object]),
  addSlice: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int, core.bool])
}));
dart.setLibraryUri(convert._Utf8ConversionSink, L13);
dart.setFieldSignature(convert._Utf8ConversionSink, () => ({
  __proto__: dart.getFields(convert._Utf8ConversionSink.__proto__),
  [_decoder]: dart.finalFieldType(convert._Utf8Decoder),
  [_chunkedSink$]: dart.finalFieldType(convert.StringConversionSink),
  [_buffer]: dart.finalFieldType(core.StringBuffer)
}));
var _allowMalformed$ = dart.privateName(convert, "_allowMalformed");
var C100;
var _allowMalformed = dart.privateName(convert, "Utf8Codec._allowMalformed");
convert.Utf8Codec = class Utf8Codec extends convert.Encoding {
  get [_allowMalformed$]() {
    return this[_allowMalformed];
  }
  set [_allowMalformed$](value) {
    super[_allowMalformed$] = value;
  }
  get name() {
    return "utf-8";
  }
  decode(codeUnits, opts) {
    ListOfintL().as(codeUnits);
    let allowMalformed = opts && 'allowMalformed' in opts ? opts.allowMalformed : null;
    allowMalformed == null ? allowMalformed = this[_allowMalformed$] : null;
    return new convert.Utf8Decoder.new({allowMalformed: allowMalformed}).convert(codeUnits);
  }
  get encoder() {
    return C100 || CT.C100;
  }
  get decoder() {
    return new convert.Utf8Decoder.new({allowMalformed: this[_allowMalformed$]});
  }
};
(convert.Utf8Codec.new = function(opts) {
  let allowMalformed = opts && 'allowMalformed' in opts ? opts.allowMalformed : false;
  this[_allowMalformed] = allowMalformed;
  convert.Utf8Codec.__proto__.new.call(this);
  ;
}).prototype = convert.Utf8Codec.prototype;
dart.addTypeTests(convert.Utf8Codec);
dart.addTypeCaches(convert.Utf8Codec);
dart.setMethodSignature(convert.Utf8Codec, () => ({
  __proto__: dart.getMethods(convert.Utf8Codec.__proto__),
  decode: dart.fnType(core.String, [core.Object], {allowMalformed: core.bool}, {})
}));
dart.setGetterSignature(convert.Utf8Codec, () => ({
  __proto__: dart.getGetters(convert.Utf8Codec.__proto__),
  name: core.String,
  encoder: convert.Utf8Encoder,
  decoder: convert.Utf8Decoder
}));
dart.setLibraryUri(convert.Utf8Codec, L13);
dart.setFieldSignature(convert.Utf8Codec, () => ({
  __proto__: dart.getFields(convert.Utf8Codec.__proto__),
  [_allowMalformed$]: dart.finalFieldType(core.bool)
}));
var _fillBuffer = dart.privateName(convert, "_fillBuffer");
var _writeSurrogate = dart.privateName(convert, "_writeSurrogate");
convert.Utf8Encoder = class Utf8Encoder extends convert.Converter$(core.String, core.List$(core.int)) {
  convert(string, start = 0, end = null) {
    core.String.as(string);
    let stringLength = string.length;
    end = core.RangeError.checkValidRange(start, end, stringLength);
    let length = dart.notNull(end) - dart.notNull(start);
    if (length === 0) return _native_typed_data.NativeUint8List.new(0);
    let encoder = new convert._Utf8Encoder.withBufferSize(length * 3);
    let endPosition = encoder[_fillBuffer](string, start, end);
    if (!(dart.notNull(endPosition) >= dart.notNull(end) - 1)) dart.assertFailed(null, L45, 89, 12, "endPosition >= end - 1");
    if (endPosition != end) {
      let lastCodeUnit = string[$codeUnitAt](dart.notNull(end) - 1);
      if (!dart.test(convert._isLeadSurrogate(lastCodeUnit))) dart.assertFailed(null, L45, 95, 14, "_isLeadSurrogate(lastCodeUnit)");
      let wasCombined = encoder[_writeSurrogate](lastCodeUnit, 0);
      if (!!dart.test(wasCombined)) dart.assertFailed(null, L45, 99, 14, "!wasCombined");
    }
    return encoder[_buffer][$sublist](0, encoder[_bufferIndex]);
  }
  startChunkedConversion(sink) {
    SinkOfListLOfintL().as(sink);
    return new convert._Utf8EncoderSink.new(convert.ByteConversionSink.is(sink) ? sink : new convert._ByteAdapterSink.new(sink));
  }
  bind(stream) {
    StreamOfStringL().as(stream);
    return super.bind(stream);
  }
};
(convert.Utf8Encoder.new = function() {
  convert.Utf8Encoder.__proto__.new.call(this);
  ;
}).prototype = convert.Utf8Encoder.prototype;
dart.addTypeTests(convert.Utf8Encoder);
dart.addTypeCaches(convert.Utf8Encoder);
dart.setMethodSignature(convert.Utf8Encoder, () => ({
  __proto__: dart.getMethods(convert.Utf8Encoder.__proto__),
  convert: dart.fnType(typed_data.Uint8List, [core.Object], [core.int, core.int]),
  startChunkedConversion: dart.fnType(convert.StringConversionSink, [core.Object])
}));
dart.setLibraryUri(convert.Utf8Encoder, L13);
convert._Utf8Encoder = class _Utf8Encoder extends core.Object {
  static _createBuffer(size) {
    return _native_typed_data.NativeUint8List.new(size);
  }
  [_writeSurrogate](leadingSurrogate, nextCodeUnit) {
    let t67, t67$, t67$0, t67$1, t67$2, t67$3, t67$4;
    if (dart.test(convert._isTailSurrogate(nextCodeUnit))) {
      let rune = convert._combineSurrogatePair(leadingSurrogate, nextCodeUnit);
      if (!(dart.notNull(rune) > 65535)) dart.assertFailed(null, L45, 148, 14, "rune > _THREE_BYTE_LIMIT");
      if (!(dart.notNull(rune) <= 1114111)) dart.assertFailed(null, L45, 149, 14, "rune <= _FOUR_BYTE_LIMIT");
      this[_buffer][$_set]((t67 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t67) + 1, t67), (240 | rune[$rightShift](18)) >>> 0);
      this[_buffer][$_set]((t67$ = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t67$) + 1, t67$), 128 | dart.notNull(rune) >> 12 & 63);
      this[_buffer][$_set]((t67$0 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t67$0) + 1, t67$0), 128 | dart.notNull(rune) >> 6 & 63);
      this[_buffer][$_set]((t67$1 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t67$1) + 1, t67$1), 128 | dart.notNull(rune) & 63);
      return true;
    } else {
      this[_buffer][$_set]((t67$2 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t67$2) + 1, t67$2), (224 | leadingSurrogate[$rightShift](12)) >>> 0);
      this[_buffer][$_set]((t67$3 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t67$3) + 1, t67$3), 128 | dart.notNull(leadingSurrogate) >> 6 & 63);
      this[_buffer][$_set]((t67$4 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t67$4) + 1, t67$4), 128 | dart.notNull(leadingSurrogate) & 63);
      return false;
    }
  }
  [_fillBuffer](str, start, end) {
    let t68, t68$, t68$0, t68$1, t68$2, t68$3;
    if (start != end && dart.test(convert._isLeadSurrogate(str[$codeUnitAt](dart.notNull(end) - 1)))) {
      end = dart.notNull(end) - 1;
    }
    let stringIndex = null;
    for (let t67 = stringIndex = start; dart.notNull(stringIndex) < dart.notNull(end); stringIndex = dart.notNull(stringIndex) + 1) {
      let codeUnit = str[$codeUnitAt](stringIndex);
      if (codeUnit <= 127) {
        if (dart.notNull(this[_bufferIndex]) >= dart.notNull(this[_buffer][$length])) break;
        this[_buffer][$_set]((t68 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t68) + 1, t68), codeUnit);
      } else if (dart.test(convert._isLeadSurrogate(codeUnit))) {
        if (dart.notNull(this[_bufferIndex]) + 3 >= dart.notNull(this[_buffer][$length])) break;
        let nextCodeUnit = str[$codeUnitAt](dart.notNull(stringIndex) + 1);
        let wasCombined = this[_writeSurrogate](codeUnit, nextCodeUnit);
        if (dart.test(wasCombined)) stringIndex = dart.notNull(stringIndex) + 1;
      } else {
        let rune = codeUnit;
        if (rune <= 2047) {
          if (dart.notNull(this[_bufferIndex]) + 1 >= dart.notNull(this[_buffer][$length])) break;
          this[_buffer][$_set]((t68$ = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t68$) + 1, t68$), (192 | rune[$rightShift](6)) >>> 0);
          this[_buffer][$_set]((t68$0 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t68$0) + 1, t68$0), 128 | rune & 63);
        } else {
          if (!(rune <= 65535)) dart.assertFailed(null, L45, 202, 18, "rune <= _THREE_BYTE_LIMIT");
          if (dart.notNull(this[_bufferIndex]) + 2 >= dart.notNull(this[_buffer][$length])) break;
          this[_buffer][$_set]((t68$1 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t68$1) + 1, t68$1), (224 | rune[$rightShift](12)) >>> 0);
          this[_buffer][$_set]((t68$2 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t68$2) + 1, t68$2), 128 | rune >> 6 & 63);
          this[_buffer][$_set]((t68$3 = this[_bufferIndex], this[_bufferIndex] = dart.notNull(t68$3) + 1, t68$3), 128 | rune & 63);
        }
      }
    }
    return stringIndex;
  }
};
(convert._Utf8Encoder.new = function() {
  convert._Utf8Encoder.withBufferSize.call(this, 1024);
}).prototype = convert._Utf8Encoder.prototype;
(convert._Utf8Encoder.withBufferSize = function(bufferSize) {
  this[_carry] = 0;
  this[_bufferIndex] = 0;
  this[_buffer] = convert._Utf8Encoder._createBuffer(bufferSize);
  ;
}).prototype = convert._Utf8Encoder.prototype;
dart.addTypeTests(convert._Utf8Encoder);
dart.addTypeCaches(convert._Utf8Encoder);
dart.setMethodSignature(convert._Utf8Encoder, () => ({
  __proto__: dart.getMethods(convert._Utf8Encoder.__proto__),
  [_writeSurrogate]: dart.fnType(core.bool, [core.int, core.int]),
  [_fillBuffer]: dart.fnType(core.int, [core.String, core.int, core.int])
}));
dart.setLibraryUri(convert._Utf8Encoder, L13);
dart.setFieldSignature(convert._Utf8Encoder, () => ({
  __proto__: dart.getFields(convert._Utf8Encoder.__proto__),
  [_carry]: dart.fieldType(core.int),
  [_bufferIndex]: dart.fieldType(core.int),
  [_buffer]: dart.finalFieldType(typed_data.Uint8List)
}));
dart.defineLazy(convert._Utf8Encoder, {
  /*convert._Utf8Encoder._DEFAULT_BYTE_BUFFER_SIZE*/get _DEFAULT_BYTE_BUFFER_SIZE() {
    return 1024;
  }
}, true);
const _Utf8Encoder_StringConversionSinkMixin$36 = class _Utf8Encoder_StringConversionSinkMixin extends convert._Utf8Encoder {};
(_Utf8Encoder_StringConversionSinkMixin$36.new = function() {
  _Utf8Encoder_StringConversionSinkMixin$36.__proto__.new.call(this);
}).prototype = _Utf8Encoder_StringConversionSinkMixin$36.prototype;
(_Utf8Encoder_StringConversionSinkMixin$36.withBufferSize = function(bufferSize) {
  _Utf8Encoder_StringConversionSinkMixin$36.__proto__.withBufferSize.call(this, bufferSize);
}).prototype = _Utf8Encoder_StringConversionSinkMixin$36.prototype;
dart.applyMixin(_Utf8Encoder_StringConversionSinkMixin$36, convert.StringConversionSinkMixin);
convert._Utf8EncoderSink = class _Utf8EncoderSink extends _Utf8Encoder_StringConversionSinkMixin$36 {
  close() {
    if (this[_carry] !== 0) {
      this.addSlice("", 0, 0, true);
      return;
    }
    this[_sink$0].close();
  }
  addSlice(str, start, end, isLast) {
    this[_bufferIndex] = 0;
    if (start == end && !dart.test(isLast)) {
      return;
    }
    if (this[_carry] !== 0) {
      let nextCodeUnit = 0;
      if (start != end) {
        nextCodeUnit = str[$codeUnitAt](start);
      } else {
        if (!dart.test(isLast)) dart.assertFailed(null, L45, 242, 16, "isLast");
      }
      let wasCombined = this[_writeSurrogate](this[_carry], nextCodeUnit);
      if (!(!dart.test(wasCombined) || start != end)) dart.assertFailed(null, L45, 246, 14, "!wasCombined || start != end");
      if (dart.test(wasCombined)) start = dart.notNull(start) + 1;
      this[_carry] = 0;
    }
    do {
      start = this[_fillBuffer](str, start, end);
      let isLastSlice = dart.test(isLast) && start == end;
      if (start === dart.notNull(end) - 1 && dart.test(convert._isLeadSurrogate(str[$codeUnitAt](start)))) {
        if (dart.test(isLast) && dart.notNull(this[_bufferIndex]) < dart.notNull(this[_buffer][$length]) - 3) {
          let hasBeenCombined = this[_writeSurrogate](str[$codeUnitAt](start), 0);
          if (!!dart.test(hasBeenCombined)) dart.assertFailed(null, L45, 259, 18, "!hasBeenCombined");
        } else {
          this[_carry] = str[$codeUnitAt](start);
        }
        start = dart.notNull(start) + 1;
      }
      this[_sink$0].addSlice(this[_buffer], 0, this[_bufferIndex], isLastSlice);
      this[_bufferIndex] = 0;
    } while (dart.notNull(start) < dart.notNull(end));
    if (dart.test(isLast)) this.close();
  }
};
(convert._Utf8EncoderSink.new = function(_sink) {
  this[_sink$0] = _sink;
  convert._Utf8EncoderSink.__proto__.new.call(this);
  ;
}).prototype = convert._Utf8EncoderSink.prototype;
dart.addTypeTests(convert._Utf8EncoderSink);
dart.addTypeCaches(convert._Utf8EncoderSink);
dart.setMethodSignature(convert._Utf8EncoderSink, () => ({
  __proto__: dart.getMethods(convert._Utf8EncoderSink.__proto__),
  close: dart.fnType(dart.void, []),
  addSlice: dart.fnType(dart.void, [core.String, core.int, core.int, core.bool])
}));
dart.setLibraryUri(convert._Utf8EncoderSink, L13);
dart.setFieldSignature(convert._Utf8EncoderSink, () => ({
  __proto__: dart.getFields(convert._Utf8EncoderSink.__proto__),
  [_sink$0]: dart.finalFieldType(convert.ByteConversionSink)
}));
var _isFirstCharacter = dart.privateName(convert, "_isFirstCharacter");
var _allowMalformed$0 = dart.privateName(convert, "Utf8Decoder._allowMalformed");
convert.Utf8Decoder = class Utf8Decoder extends convert.Converter$(core.List$(core.int), core.String) {
  get [_allowMalformed$]() {
    return this[_allowMalformed$0];
  }
  set [_allowMalformed$](value) {
    super[_allowMalformed$] = value;
  }
  static _convertInterceptedUint8List(allowMalformed, codeUnits, start, end) {
    if (dart.test(allowMalformed)) {
      return null;
    }
    let decoder = convert.Utf8Decoder._decoder;
    if (decoder == null) return null;
    if (0 === start && end == null) {
      return convert.Utf8Decoder._useTextDecoderChecked(decoder, codeUnits);
    }
    let length = codeUnits[$length];
    end = core.RangeError.checkValidRange(start, end, length);
    if (0 === start && end == codeUnits[$length]) {
      return convert.Utf8Decoder._useTextDecoderChecked(decoder, codeUnits);
    }
    return convert.Utf8Decoder._useTextDecoderChecked(decoder, codeUnits.subarray(start, end));
  }
  static _useTextDecoderChecked(decoder, codeUnits) {
    if (dart.test(convert.Utf8Decoder._unsafe(codeUnits))) return null;
    return convert.Utf8Decoder._useTextDecoderUnchecked(decoder, codeUnits);
  }
  static _useTextDecoderUnchecked(decoder, codeUnits) {
    try {
      return decoder.decode(codeUnits);
    } catch (e$) {
      let e = dart.getThrown(e$);
    }
    return null;
  }
  static _unsafe(codeUnits) {
    let limit = dart.notNull(codeUnits[$length]) - 2;
    for (let i = 0; i < limit; i = i + 1) {
      let unit1 = codeUnits[$_get](i);
      if (unit1 === 237) {
        let unit2 = codeUnits[$_get](i + 1);
        if ((unit2 & 224) === 160) return true;
      }
    }
    return false;
  }
  convert(codeUnits, start = 0, end = null) {
    ListOfintL().as(codeUnits);
    let result = convert.Utf8Decoder._convertIntercepted(this[_allowMalformed$], codeUnits, start, end);
    if (result != null) {
      return result;
    }
    let length = codeUnits[$length];
    end = core.RangeError.checkValidRange(start, end, length);
    let oneBytes = convert._scanOneByteCharacters(codeUnits, start, end);
    let buffer = null;
    let isFirstCharacter = true;
    if (dart.notNull(oneBytes) > 0) {
      let firstPart = core.String.fromCharCodes(codeUnits, start, dart.notNull(start) + dart.notNull(oneBytes));
      start = dart.notNull(start) + dart.notNull(oneBytes);
      if (start == end) {
        return firstPart;
      }
      buffer = new core.StringBuffer.new(firstPart);
      isFirstCharacter = false;
    }
    buffer == null ? buffer = new core.StringBuffer.new() : null;
    let decoder = new convert._Utf8Decoder.new(buffer, this[_allowMalformed$]);
    decoder[_isFirstCharacter] = isFirstCharacter;
    decoder.convert(codeUnits, start, end);
    decoder.flush(codeUnits, end);
    return dart.toString(buffer);
  }
  startChunkedConversion(sink) {
    SinkOfStringL().as(sink);
    let stringSink = null;
    if (convert.StringConversionSink.is(sink)) {
      stringSink = sink;
    } else {
      stringSink = new convert._StringAdapterSink.new(sink);
    }
    return stringSink.asUtf8Sink(this[_allowMalformed$]);
  }
  bind(stream) {
    StreamOfListLOfintL().as(stream);
    return super.bind(stream);
  }
  fuse(T, next) {
    return super.fuse(T, next);
  }
  static _convertIntercepted(allowMalformed, codeUnits, start, end) {
    if (codeUnits instanceof Uint8Array) {
      let casted = codeUnits;
      return convert.Utf8Decoder._convertInterceptedUint8List(allowMalformed, casted, start, end);
    }
  }
};
(convert.Utf8Decoder.new = function(opts) {
  let allowMalformed = opts && 'allowMalformed' in opts ? opts.allowMalformed : false;
  this[_allowMalformed$0] = allowMalformed;
  convert.Utf8Decoder.__proto__.new.call(this);
  ;
}).prototype = convert.Utf8Decoder.prototype;
dart.addTypeTests(convert.Utf8Decoder);
dart.addTypeCaches(convert.Utf8Decoder);
dart.setMethodSignature(convert.Utf8Decoder, () => ({
  __proto__: dart.getMethods(convert.Utf8Decoder.__proto__),
  convert: dart.fnType(core.String, [core.Object], [core.int, core.int]),
  startChunkedConversion: dart.fnType(convert.ByteConversionSink, [core.Object]),
  fuse: dart.gFnType(T => [convert.Converter$(core.List$(core.int), T), [convert.Converter$(core.String, T)]])
}));
dart.setLibraryUri(convert.Utf8Decoder, L13);
dart.setFieldSignature(convert.Utf8Decoder, () => ({
  __proto__: dart.getFields(convert.Utf8Decoder.__proto__),
  [_allowMalformed$]: dart.finalFieldType(core.bool)
}));
dart.defineLazy(convert.Utf8Decoder, {
  /*convert.Utf8Decoder._decoder*/get _decoder() {
    return dart.fn(() => {
      try {
        return new TextDecoder("utf-8", {fatal: true});
      } catch (e$) {
        let e = dart.getThrown(e$);
      }
      return null;
    }, VoidToObjectL())();
  }
}, true);
var _value$ = dart.privateName(convert, "_value");
var _expectedUnits = dart.privateName(convert, "_expectedUnits");
var _extraUnits = dart.privateName(convert, "_extraUnits");
var C101;
convert._Utf8Decoder = class _Utf8Decoder extends core.Object {
  get hasPartialInput() {
    return dart.notNull(this[_expectedUnits]) > 0;
  }
  close() {
    this.flush();
  }
  flush(source = null, offset = null) {
    if (dart.test(this.hasPartialInput)) {
      if (!dart.test(this[_allowMalformed$])) {
        dart.throw(new core.FormatException.new("Unfinished UTF-8 octet sequence", source, offset));
      }
      this[_stringSink$].writeCharCode(65533);
      this[_value$] = 0;
      this[_expectedUnits] = 0;
      this[_extraUnits] = 0;
    }
  }
  convert(codeUnits, startIndex, endIndex) {
    let t70;
    let value = this[_value$];
    let expectedUnits = this[_expectedUnits];
    let extraUnits = this[_extraUnits];
    this[_value$] = 0;
    this[_expectedUnits] = 0;
    this[_extraUnits] = 0;
    let i = startIndex;
    L1:
      while (true) {
        L2:
          if (dart.notNull(expectedUnits) > 0) {
            do {
              if (i == endIndex) {
                break L1;
              }
              let unit = codeUnits[$_get](i);
              if ((dart.notNull(unit) & 192) !== 128) {
                expectedUnits = 0;
                if (!dart.test(this[_allowMalformed$])) {
                  dart.throw(new core.FormatException.new("Bad UTF-8 encoding 0x" + unit[$toRadixString](16), codeUnits, i));
                }
                this[_isFirstCharacter] = false;
                this[_stringSink$].writeCharCode(65533);
                break L2;
              } else {
                value = (dart.notNull(value) << 6 | dart.notNull(unit) & 63) >>> 0;
                expectedUnits = dart.notNull(expectedUnits) - 1;
                i = dart.notNull(i) + 1;
              }
            } while (dart.notNull(expectedUnits) > 0);
            if (dart.notNull(value) <= dart.notNull(convert._Utf8Decoder._LIMITS[$_get](dart.notNull(extraUnits) - 1))) {
              if (!dart.test(this[_allowMalformed$])) {
                dart.throw(new core.FormatException.new("Overlong encoding of 0x" + value[$toRadixString](16), codeUnits, dart.notNull(i) - dart.notNull(extraUnits) - 1));
              }
              expectedUnits = extraUnits = 0;
              value = 65533;
            }
            if (dart.notNull(value) > 1114111) {
              if (!dart.test(this[_allowMalformed$])) {
                dart.throw(new core.FormatException.new("Character outside valid Unicode range: " + "0x" + value[$toRadixString](16), codeUnits, dart.notNull(i) - dart.notNull(extraUnits) - 1));
              }
              value = 65533;
            }
            if (!dart.test(this[_isFirstCharacter]) || value !== 65279) {
              this[_stringSink$].writeCharCode(value);
            }
            this[_isFirstCharacter] = false;
          }
        while (dart.notNull(i) < dart.notNull(endIndex)) {
          let oneBytes = convert._scanOneByteCharacters(codeUnits, i, endIndex);
          if (dart.notNull(oneBytes) > 0) {
            this[_isFirstCharacter] = false;
            if (!(dart.notNull(i) + dart.notNull(oneBytes) <= dart.notNull(endIndex))) dart.assertFailed(null, L45, 492, 18, "i + oneBytes <= endIndex");
            this[_stringSink$].write(core.String.fromCharCodes(codeUnits, i, dart.notNull(i) + dart.notNull(oneBytes)));
            i = dart.notNull(i) + dart.notNull(oneBytes);
            if (i == endIndex) break;
          }
          let unit = codeUnits[$_get]((t70 = i, i = dart.notNull(t70) + 1, t70));
          if (dart.notNull(unit) < 0) {
            if (!dart.test(this[_allowMalformed$])) {
              dart.throw(new core.FormatException.new("Negative UTF-8 code unit: -0x" + (-dart.notNull(unit))[$toRadixString](16), codeUnits, dart.notNull(i) - 1));
            }
            this[_stringSink$].writeCharCode(65533);
          } else {
            if (!(dart.notNull(unit) > 127)) dart.assertFailed(null, L45, 514, 18, "unit > _ONE_BYTE_LIMIT");
            if ((dart.notNull(unit) & 224) === 192) {
              value = dart.notNull(unit) & 31;
              expectedUnits = extraUnits = 1;
              continue L1;
            }
            if ((dart.notNull(unit) & 240) === 224) {
              value = dart.notNull(unit) & 15;
              expectedUnits = extraUnits = 2;
              continue L1;
            }
            if ((dart.notNull(unit) & 248) === 240 && dart.notNull(unit) < 245) {
              value = dart.notNull(unit) & 7;
              expectedUnits = extraUnits = 3;
              continue L1;
            }
            if (!dart.test(this[_allowMalformed$])) {
              dart.throw(new core.FormatException.new("Bad UTF-8 encoding 0x" + unit[$toRadixString](16), codeUnits, dart.notNull(i) - 1));
            }
            value = 65533;
            expectedUnits = extraUnits = 0;
            this[_isFirstCharacter] = false;
            this[_stringSink$].writeCharCode(value);
          }
        }
        break;
      }
    if (dart.notNull(expectedUnits) > 0) {
      this[_value$] = value;
      this[_expectedUnits] = expectedUnits;
      this[_extraUnits] = extraUnits;
    }
  }
};
(convert._Utf8Decoder.new = function(_stringSink, _allowMalformed) {
  this[_isFirstCharacter] = true;
  this[_value$] = 0;
  this[_expectedUnits] = 0;
  this[_extraUnits] = 0;
  this[_stringSink$] = _stringSink;
  this[_allowMalformed$] = _allowMalformed;
  ;
}).prototype = convert._Utf8Decoder.prototype;
dart.addTypeTests(convert._Utf8Decoder);
dart.addTypeCaches(convert._Utf8Decoder);
dart.setMethodSignature(convert._Utf8Decoder, () => ({
  __proto__: dart.getMethods(convert._Utf8Decoder.__proto__),
  close: dart.fnType(dart.void, []),
  flush: dart.fnType(dart.void, [], [core.List$(core.int), core.int]),
  convert: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int])
}));
dart.setGetterSignature(convert._Utf8Decoder, () => ({
  __proto__: dart.getGetters(convert._Utf8Decoder.__proto__),
  hasPartialInput: core.bool
}));
dart.setLibraryUri(convert._Utf8Decoder, L13);
dart.setFieldSignature(convert._Utf8Decoder, () => ({
  __proto__: dart.getFields(convert._Utf8Decoder.__proto__),
  [_allowMalformed$]: dart.finalFieldType(core.bool),
  [_stringSink$]: dart.finalFieldType(core.StringSink),
  [_isFirstCharacter]: dart.fieldType(core.bool),
  [_value$]: dart.fieldType(core.int),
  [_expectedUnits]: dart.fieldType(core.int),
  [_extraUnits]: dart.fieldType(core.int)
}));
dart.defineLazy(convert._Utf8Decoder, {
  /*convert._Utf8Decoder._LIMITS*/get _LIMITS() {
    return C101 || CT.C101;
  }
}, true);
convert._convertJsonToDart = function _convertJsonToDart(json, reviver) {
  if (!(reviver != null)) dart.assertFailed(null, L39, 57, 10, "reviver != null");
  function walk(e) {
    if (e == null || typeof e != "object") {
      return e;
    }
    if (Object.getPrototypeOf(e) === Array.prototype) {
      for (let i = 0; i < e.length; i = i + 1) {
        let item = e[i];
        e[i] = reviver(i, walk(item));
      }
      return e;
    }
    let map = new convert._JsonMap.new(e);
    let processed = map[_processed];
    let keys = map[_computeKeys]();
    for (let i = 0; i < dart.notNull(keys[$length]); i = i + 1) {
      let key = keys[$_get](i);
      let revived = reviver(key, walk(e[key]));
      processed[key] = revived;
    }
    map[_original$] = processed;
    return map;
  }
  dart.fn(walk, dynamicTodynamic());
  return reviver(null, walk(json));
};
convert._convertJsonToDartLazy = function _convertJsonToDartLazy(object) {
  if (object == null) return null;
  if (typeof object != "object") {
    return object;
  }
  if (Object.getPrototypeOf(object) !== Array.prototype) {
    return new convert._JsonMap.new(object);
  }
  for (let i = 0; i < object.length; i = i + 1) {
    let item = object[i];
    object[i] = convert._convertJsonToDartLazy(item);
  }
  return object;
};
convert.base64Encode = function base64Encode(bytes) {
  return convert.base64.encode(bytes);
};
convert.base64UrlEncode = function base64UrlEncode(bytes) {
  return convert.base64Url.encode(bytes);
};
convert.base64Decode = function base64Decode(source) {
  return convert.base64.decode(source);
};
convert.jsonEncode = function jsonEncode(value, opts) {
  let toEncodable = opts && 'toEncodable' in opts ? opts.toEncodable : null;
  return convert.json.encode(value, {toEncodable: toEncodable});
};
convert.jsonDecode = function jsonDecode(source, opts) {
  let reviver = opts && 'reviver' in opts ? opts.reviver : null;
  return convert.json.decode(source, {reviver: reviver});
};
convert._parseJson = function _parseJson(source, reviver) {
  if (!(typeof source == 'string')) dart.throw(_js_helper.argumentErrorValue(source));
  let parsed = null;
  try {
    parsed = JSON.parse(source);
  } catch (e$) {
    let e = dart.getThrown(e$);
    dart.throw(new core.FormatException.new(String(e)));
  }
  if (reviver == null) {
    return convert._convertJsonToDartLazy(parsed);
  } else {
    return convert._convertJsonToDart(parsed, reviver);
  }
};
convert._defaultToEncodable = function _defaultToEncodable(object) {
  return dart.dsend(object, 'toJson', []);
};
convert._isLeadSurrogate = function _isLeadSurrogate(codeUnit) {
  return (dart.notNull(codeUnit) & 64512) >>> 0 === 55296;
};
convert._isTailSurrogate = function _isTailSurrogate(codeUnit) {
  return (dart.notNull(codeUnit) & 64512) >>> 0 === 56320;
};
convert._combineSurrogatePair = function _combineSurrogatePair(lead, tail) {
  return (65536 + ((dart.notNull(lead) & 1023) >>> 0 << 10 >>> 0) | (dart.notNull(tail) & 1023) >>> 0) >>> 0;
};
convert._scanOneByteCharacters = function _scanOneByteCharacters(units, from, endIndex) {
  let to = endIndex;
  for (let i = from; dart.notNull(i) < dart.notNull(to); i = dart.notNull(i) + 1) {
    let unit = units[$_get](i);
    if ((dart.notNull(unit) & 127) >>> 0 !== unit) return dart.notNull(i) - dart.notNull(from);
  }
  return dart.notNull(to) - dart.notNull(from);
};
var C102;
var C103;
var C104;
var C105;
var C106;
var C107;
var C108;
dart.defineLazy(convert, {
  /*convert.ascii*/get ascii() {
    return C102 || CT.C102;
  },
  /*convert._asciiMask*/get _asciiMask() {
    return 127;
  },
  /*convert.base64*/get base64() {
    return C103 || CT.C103;
  },
  /*convert.base64Url*/get base64Url() {
    return C104 || CT.C104;
  },
  /*convert._paddingChar*/get _paddingChar() {
    return 61;
  },
  /*convert.htmlEscape*/get htmlEscape() {
    return C105 || CT.C105;
  },
  /*convert.json*/get json() {
    return C106 || CT.C106;
  },
  /*convert.latin1*/get latin1() {
    return C107 || CT.C107;
  },
  /*convert._latin1Mask*/get _latin1Mask() {
    return 255;
  },
  /*convert._LF*/get _LF() {
    return 10;
  },
  /*convert._CR*/get _CR() {
    return 13;
  },
  /*convert.unicodeReplacementCharacterRune*/get unicodeReplacementCharacterRune() {
    return 65533;
  },
  /*convert.unicodeBomCharacterRune*/get unicodeBomCharacterRune() {
    return 65279;
  },
  /*convert.utf8*/get utf8() {
    return C108 || CT.C108;
  },
  /*convert._ONE_BYTE_LIMIT*/get _ONE_BYTE_LIMIT() {
    return 127;
  },
  /*convert._TWO_BYTE_LIMIT*/get _TWO_BYTE_LIMIT() {
    return 2047;
  },
  /*convert._THREE_BYTE_LIMIT*/get _THREE_BYTE_LIMIT() {
    return 65535;
  },
  /*convert._FOUR_BYTE_LIMIT*/get _FOUR_BYTE_LIMIT() {
    return 1114111;
  },
  /*convert._SURROGATE_TAG_MASK*/get _SURROGATE_TAG_MASK() {
    return 64512;
  },
  /*convert._SURROGATE_VALUE_MASK*/get _SURROGATE_VALUE_MASK() {
    return 1023;
  },
  /*convert._LEAD_SURROGATE_MIN*/get _LEAD_SURROGATE_MIN() {
    return 55296;
  },
  /*convert._TAIL_SURROGATE_MIN*/get _TAIL_SURROGATE_MIN() {
    return 56320;
  }
}, true);
developer._FakeUserTag = class _FakeUserTag extends core.Object {
  static new(label) {
    let existingTag = developer._FakeUserTag._instances[$_get](label);
    if (existingTag != null) {
      return developer._FakeUserTag.as(existingTag);
    }
    if (developer._FakeUserTag._instances[$length] === 64) {
      dart.throw(new core.UnsupportedError.new("UserTag instance limit (" + dart.str(64) + ") reached."));
    }
    let instance = new developer._FakeUserTag.real(label);
    developer._FakeUserTag._instances[$_set](label, instance);
    return instance;
  }
  makeCurrent() {
    let old = developer._currentTag;
    developer._currentTag = this;
    return old;
  }
};
(developer._FakeUserTag.real = function(label) {
  this.label = label;
  ;
}).prototype = developer._FakeUserTag.prototype;
dart.addTypeTests(developer._FakeUserTag);
dart.addTypeCaches(developer._FakeUserTag);
developer._FakeUserTag[dart.implements] = () => [developer.UserTag];
dart.setMethodSignature(developer._FakeUserTag, () => ({
  __proto__: dart.getMethods(developer._FakeUserTag.__proto__),
  makeCurrent: dart.fnType(developer.UserTag, [])
}));
dart.setLibraryUri(developer._FakeUserTag, L46);
dart.setFieldSignature(developer._FakeUserTag, () => ({
  __proto__: dart.getFields(developer._FakeUserTag.__proto__),
  label: dart.finalFieldType(core.String)
}));
dart.defineLazy(developer._FakeUserTag, {
  /*developer._FakeUserTag._instances*/get _instances() {
    return new _js_helper.LinkedMap.new();
  },
  set _instances(_) {},
  /*developer._FakeUserTag._defaultTag*/get _defaultTag() {
    return developer._FakeUserTag.new("Default");
  }
}, true);
var _toString$ = dart.privateName(developer, "_toString");
var result$ = dart.privateName(developer, "ServiceExtensionResponse.result");
var errorCode$ = dart.privateName(developer, "ServiceExtensionResponse.errorCode");
var errorDetail$ = dart.privateName(developer, "ServiceExtensionResponse.errorDetail");
developer.ServiceExtensionResponse = class ServiceExtensionResponse extends core.Object {
  get result() {
    return this[result$];
  }
  set result(value) {
    super.result = value;
  }
  get errorCode() {
    return this[errorCode$];
  }
  set errorCode(value) {
    super.errorCode = value;
  }
  get errorDetail() {
    return this[errorDetail$];
  }
  set errorDetail(value) {
    super.errorDetail = value;
  }
  static _errorCodeMessage(errorCode) {
    developer.ServiceExtensionResponse._validateErrorCode(errorCode);
    if (errorCode === -32602) {
      return "Invalid params";
    }
    return "Server error";
  }
  static _validateErrorCode(errorCode) {
    core.ArgumentError.checkNotNull(core.int, errorCode, "errorCode");
    if (errorCode === -32602) return;
    if (dart.notNull(errorCode) >= -32016 && dart.notNull(errorCode) <= -32000) {
      return;
    }
    dart.throw(new core.ArgumentError.value(errorCode, "errorCode", "Out of range"));
  }
  isError() {
    return this.errorCode != null && this.errorDetail != null;
  }
  [_toString$]() {
    if (this.result != null) {
      return this.result;
    } else {
      if (!(this.errorCode != null)) dart.assertFailed(null, L47, 101, 14, "errorCode != null");
      if (!(this.errorDetail != null)) dart.assertFailed(null, L47, 102, 14, "errorDetail != null");
      return convert.json.encode(new (IdentityMapOfStringL$ObjectL()).from(["code", this.errorCode, "message", developer.ServiceExtensionResponse._errorCodeMessage(this.errorCode), "data", new (IdentityMapOfStringL$StringL()).from(["details", this.errorDetail])]));
    }
  }
};
(developer.ServiceExtensionResponse.result = function(result) {
  this[result$] = result;
  this[errorCode$] = null;
  this[errorDetail$] = null;
  core.ArgumentError.checkNotNull(core.String, result, "result");
}).prototype = developer.ServiceExtensionResponse.prototype;
(developer.ServiceExtensionResponse.error = function(errorCode, errorDetail) {
  this[result$] = null;
  this[errorCode$] = errorCode;
  this[errorDetail$] = errorDetail;
  developer.ServiceExtensionResponse._validateErrorCode(errorCode);
  core.ArgumentError.checkNotNull(core.String, errorDetail, "errorDetail");
}).prototype = developer.ServiceExtensionResponse.prototype;
dart.addTypeTests(developer.ServiceExtensionResponse);
dart.addTypeCaches(developer.ServiceExtensionResponse);
dart.setMethodSignature(developer.ServiceExtensionResponse, () => ({
  __proto__: dart.getMethods(developer.ServiceExtensionResponse.__proto__),
  isError: dart.fnType(core.bool, []),
  [_toString$]: dart.fnType(core.String, [])
}));
dart.setLibraryUri(developer.ServiceExtensionResponse, L46);
dart.setFieldSignature(developer.ServiceExtensionResponse, () => ({
  __proto__: dart.getFields(developer.ServiceExtensionResponse.__proto__),
  result: dart.finalFieldType(core.String),
  errorCode: dart.finalFieldType(core.int),
  errorDetail: dart.finalFieldType(core.String)
}));
dart.defineLazy(developer.ServiceExtensionResponse, {
  /*developer.ServiceExtensionResponse.kInvalidParams*/get kInvalidParams() {
    return -32602;
  },
  /*developer.ServiceExtensionResponse.kExtensionError*/get kExtensionError() {
    return -32000;
  },
  /*developer.ServiceExtensionResponse.kExtensionErrorMax*/get kExtensionErrorMax() {
    return -32000;
  },
  /*developer.ServiceExtensionResponse.kExtensionErrorMin*/get kExtensionErrorMin() {
    return -32016;
  },
  /*developer.ServiceExtensionResponse.invalidParams*/get invalidParams() {
    return -32602;
  },
  /*developer.ServiceExtensionResponse.extensionError*/get extensionError() {
    return -32000;
  },
  /*developer.ServiceExtensionResponse.extensionErrorMax*/get extensionErrorMax() {
    return -32000;
  },
  /*developer.ServiceExtensionResponse.extensionErrorMin*/get extensionErrorMin() {
    return -32016;
  }
}, true);
developer.UserTag = class UserTag extends core.Object {
  static get defaultTag() {
    return developer._FakeUserTag._defaultTag;
  }
};
(developer.UserTag[dart.mixinNew] = function() {
}).prototype = developer.UserTag.prototype;
dart.addTypeTests(developer.UserTag);
dart.addTypeCaches(developer.UserTag);
dart.setLibraryUri(developer.UserTag, L46);
dart.defineLazy(developer.UserTag, {
  /*developer.UserTag.MAX_USER_TAGS*/get MAX_USER_TAGS() {
    return 64;
  }
}, true);
var name$10 = dart.privateName(developer, "Metric.name");
var description$ = dart.privateName(developer, "Metric.description");
developer.Metric = class Metric extends core.Object {
  get name() {
    return this[name$10];
  }
  set name(value) {
    super.name = value;
  }
  get description() {
    return this[description$];
  }
  set description(value) {
    super.description = value;
  }
};
(developer.Metric.new = function(name, description) {
  this[name$10] = name;
  this[description$] = description;
  if (this.name === "vm" || this.name[$contains]("/")) {
    dart.throw(new core.ArgumentError.new("Invalid Metric name."));
  }
}).prototype = developer.Metric.prototype;
dart.addTypeTests(developer.Metric);
dart.addTypeCaches(developer.Metric);
dart.setLibraryUri(developer.Metric, L46);
dart.setFieldSignature(developer.Metric, () => ({
  __proto__: dart.getFields(developer.Metric.__proto__),
  name: dart.finalFieldType(core.String),
  description: dart.finalFieldType(core.String)
}));
var _value$0 = dart.privateName(developer, "_value");
var _toJSON = dart.privateName(developer, "_toJSON");
var min$ = dart.privateName(developer, "Gauge.min");
var max$ = dart.privateName(developer, "Gauge.max");
developer.Gauge = class Gauge extends developer.Metric {
  get min() {
    return this[min$];
  }
  set min(value) {
    super.min = value;
  }
  get max() {
    return this[max$];
  }
  set max(value) {
    super.max = value;
  }
  get value() {
    return this[_value$0];
  }
  set value(v) {
    if (dart.notNull(v) < dart.notNull(this.min)) {
      v = this.min;
    } else if (dart.notNull(v) > dart.notNull(this.max)) {
      v = this.max;
    }
    this[_value$0] = v;
  }
  [_toJSON]() {
    let map = new (IdentityMapOfStringL$ObjectL()).from(["type", "Gauge", "id", "metrics/" + dart.str(this.name), "name", this.name, "description", this.description, "value", this.value, "min", this.min, "max", this.max]);
    return map;
  }
};
(developer.Gauge.new = function(name, description, min, max) {
  this[_value$0] = null;
  this[min$] = min;
  this[max$] = max;
  developer.Gauge.__proto__.new.call(this, name, description);
  core.ArgumentError.checkNotNull(core.double, this.min, "min");
  core.ArgumentError.checkNotNull(core.double, this.max, "max");
  if (!(dart.notNull(this.min) < dart.notNull(this.max))) dart.throw(new core.ArgumentError.new("min must be less than max"));
  this[_value$0] = this.min;
}).prototype = developer.Gauge.prototype;
dart.addTypeTests(developer.Gauge);
dart.addTypeCaches(developer.Gauge);
dart.setMethodSignature(developer.Gauge, () => ({
  __proto__: dart.getMethods(developer.Gauge.__proto__),
  [_toJSON]: dart.fnType(core.Map, [])
}));
dart.setGetterSignature(developer.Gauge, () => ({
  __proto__: dart.getGetters(developer.Gauge.__proto__),
  value: core.double
}));
dart.setSetterSignature(developer.Gauge, () => ({
  __proto__: dart.getSetters(developer.Gauge.__proto__),
  value: core.double
}));
dart.setLibraryUri(developer.Gauge, L46);
dart.setFieldSignature(developer.Gauge, () => ({
  __proto__: dart.getFields(developer.Gauge.__proto__),
  min: dart.finalFieldType(core.double),
  max: dart.finalFieldType(core.double),
  [_value$0]: dart.fieldType(core.double)
}));
developer.Counter = class Counter extends developer.Metric {
  get value() {
    return this[_value$0];
  }
  set value(v) {
    this[_value$0] = v;
  }
  [_toJSON]() {
    let map = new (IdentityMapOfStringL$ObjectL()).from(["type", "Counter", "id", "metrics/" + dart.str(this.name), "name", this.name, "description", this.description, "value", this.value]);
    return map;
  }
};
(developer.Counter.new = function(name, description) {
  this[_value$0] = 0.0;
  developer.Counter.__proto__.new.call(this, name, description);
  ;
}).prototype = developer.Counter.prototype;
dart.addTypeTests(developer.Counter);
dart.addTypeCaches(developer.Counter);
dart.setMethodSignature(developer.Counter, () => ({
  __proto__: dart.getMethods(developer.Counter.__proto__),
  [_toJSON]: dart.fnType(core.Map, [])
}));
dart.setGetterSignature(developer.Counter, () => ({
  __proto__: dart.getGetters(developer.Counter.__proto__),
  value: core.double
}));
dart.setSetterSignature(developer.Counter, () => ({
  __proto__: dart.getSetters(developer.Counter.__proto__),
  value: core.double
}));
dart.setLibraryUri(developer.Counter, L46);
dart.setFieldSignature(developer.Counter, () => ({
  __proto__: dart.getFields(developer.Counter.__proto__),
  [_value$0]: dart.fieldType(core.double)
}));
developer.Metrics = class Metrics extends core.Object {
  static register(metric) {
    core.ArgumentError.checkNotNull(developer.Metric, metric, "metric");
    if (developer.Metrics._metrics[$_get](metric.name) != null) {
      dart.throw(new core.ArgumentError.new("Registered metrics have unique names"));
    }
    developer.Metrics._metrics[$_set](metric.name, metric);
  }
  static deregister(metric) {
    core.ArgumentError.checkNotNull(developer.Metric, metric, "metric");
    developer.Metrics._metrics[$remove](metric.name);
  }
  static _printMetric(id) {
    let metric = developer.Metrics._metrics[$_get](id);
    if (metric == null) {
      return null;
    }
    return convert.json.encode(metric[_toJSON]());
  }
  static _printMetrics() {
    let metrics = [];
    for (let metric of developer.Metrics._metrics[$values]) {
      metrics[$add](metric[_toJSON]());
    }
    let map = new (IdentityMapOfStringL$ObjectL()).from(["type", "MetricList", "metrics", metrics]);
    return convert.json.encode(map);
  }
};
(developer.Metrics.new = function() {
  ;
}).prototype = developer.Metrics.prototype;
dart.addTypeTests(developer.Metrics);
dart.addTypeCaches(developer.Metrics);
dart.setLibraryUri(developer.Metrics, L46);
dart.defineLazy(developer.Metrics, {
  /*developer.Metrics._metrics*/get _metrics() {
    return new (LinkedMapOfStringL$MetricL()).new();
  }
}, true);
var majorVersion = dart.privateName(developer, "ServiceProtocolInfo.majorVersion");
var minorVersion = dart.privateName(developer, "ServiceProtocolInfo.minorVersion");
var serverUri$ = dart.privateName(developer, "ServiceProtocolInfo.serverUri");
developer.ServiceProtocolInfo = class ServiceProtocolInfo extends core.Object {
  get majorVersion() {
    return this[majorVersion];
  }
  set majorVersion(value) {
    super.majorVersion = value;
  }
  get minorVersion() {
    return this[minorVersion];
  }
  set minorVersion(value) {
    super.minorVersion = value;
  }
  get serverUri() {
    return this[serverUri$];
  }
  set serverUri(value) {
    super.serverUri = value;
  }
  toString() {
    if (this.serverUri != null) {
      return "Dart VM Service Protocol v" + dart.str(this.majorVersion) + "." + dart.str(this.minorVersion) + " " + "listening on " + dart.str(this.serverUri);
    } else {
      return "Dart VM Service Protocol v" + dart.str(this.majorVersion) + "." + dart.str(this.minorVersion);
    }
  }
};
(developer.ServiceProtocolInfo.new = function(serverUri) {
  this[majorVersion] = developer._getServiceMajorVersion();
  this[minorVersion] = developer._getServiceMinorVersion();
  this[serverUri$] = serverUri;
  ;
}).prototype = developer.ServiceProtocolInfo.prototype;
dart.addTypeTests(developer.ServiceProtocolInfo);
dart.addTypeCaches(developer.ServiceProtocolInfo);
dart.setLibraryUri(developer.ServiceProtocolInfo, L46);
dart.setFieldSignature(developer.ServiceProtocolInfo, () => ({
  __proto__: dart.getFields(developer.ServiceProtocolInfo.__proto__),
  majorVersion: dart.finalFieldType(core.int),
  minorVersion: dart.finalFieldType(core.int),
  serverUri: dart.finalFieldType(core.Uri)
}));
dart.defineExtensionMethods(developer.ServiceProtocolInfo, ['toString']);
developer.Service = class Service extends core.Object {
  static getInfo() {
    return async.async(developer.ServiceProtocolInfo, function* getInfo() {
      let receivePort = isolate$.RawReceivePort.new();
      let uriCompleter = CompleterOfUriL().new();
      receivePort.handler = dart.fn(uri => uriCompleter.complete(uri), UriLTovoid());
      developer._getServerInfo(receivePort.sendPort);
      let uri = (yield uriCompleter.future);
      receivePort.close();
      return new developer.ServiceProtocolInfo.new(uri);
    });
  }
  static controlWebServer(opts) {
    let enable = opts && 'enable' in opts ? opts.enable : false;
    return async.async(developer.ServiceProtocolInfo, function* controlWebServer() {
      core.ArgumentError.checkNotNull(core.bool, enable, "enable");
      let receivePort = isolate$.RawReceivePort.new();
      let uriCompleter = CompleterOfUriL().new();
      receivePort.handler = dart.fn(uri => uriCompleter.complete(uri), UriLTovoid());
      developer._webServerControl(receivePort.sendPort, enable);
      let uri = (yield uriCompleter.future);
      receivePort.close();
      return new developer.ServiceProtocolInfo.new(uri);
    });
  }
  static getIsolateID(isolate) {
    core.ArgumentError.checkNotNull(isolate$.Isolate, isolate, "isolate");
    return developer._getIsolateIDFromSendPort(isolate.controlPort);
  }
};
(developer.Service.new = function() {
  ;
}).prototype = developer.Service.prototype;
dart.addTypeTests(developer.Service);
dart.addTypeCaches(developer.Service);
dart.setLibraryUri(developer.Service, L46);
var _type$0 = dart.privateName(developer, "_type");
var id$ = dart.privateName(developer, "Flow.id");
developer.Flow = class Flow extends core.Object {
  get id() {
    return this[id$];
  }
  set id(value) {
    super.id = value;
  }
  static begin(opts) {
    let t71;
    let id = opts && 'id' in opts ? opts.id : null;
    return new developer.Flow.__(9, (t71 = id, t71 == null ? developer._getNextAsyncId() : t71));
  }
  static step(id) {
    return new developer.Flow.__(10, id);
  }
  static end(id) {
    return new developer.Flow.__(11, id);
  }
};
(developer.Flow.__ = function(_type, id) {
  this[_type$0] = _type;
  this[id$] = id;
  ;
}).prototype = developer.Flow.prototype;
dart.addTypeTests(developer.Flow);
dart.addTypeCaches(developer.Flow);
dart.setLibraryUri(developer.Flow, L46);
dart.setFieldSignature(developer.Flow, () => ({
  __proto__: dart.getFields(developer.Flow.__proto__),
  [_type$0]: dart.finalFieldType(core.int),
  id: dart.finalFieldType(core.int)
}));
dart.defineLazy(developer.Flow, {
  /*developer.Flow._begin*/get _begin() {
    return 9;
  },
  /*developer.Flow._step*/get _step() {
    return 10;
  },
  /*developer.Flow._end*/get _end() {
    return 11;
  }
}, true);
var _arguments$1 = dart.privateName(developer, "_arguments");
var _startSync = dart.privateName(developer, "_startSync");
developer.Timeline = class Timeline extends core.Object {
  static startSync(name, opts) {
    let $arguments = opts && 'arguments' in opts ? opts.arguments : null;
    let flow = opts && 'flow' in opts ? opts.flow : null;
    if (!true) return;
    core.ArgumentError.checkNotNull(core.String, name, "name");
    if (!dart.test(developer._isDartStreamEnabled())) {
      developer.Timeline._stack[$add](null);
      return;
    }
    let block = new developer._SyncBlock.__(name);
    if ($arguments != null) {
      block[_arguments$1] = $arguments;
    }
    if (flow != null) {
      block.flow = flow;
    }
    developer.Timeline._stack[$add](block);
    block[_startSync]();
  }
  static finishSync() {
    if (!true) {
      return;
    }
    if (developer.Timeline._stack[$length] === 0) {
      dart.throw(new core.StateError.new("Uneven calls to startSync and finishSync"));
    }
    let block = developer.Timeline._stack[$removeLast]();
    if (block == null) {
      return;
    }
    block.finish();
  }
  static instantSync(name, opts) {
    let $arguments = opts && 'arguments' in opts ? opts.arguments : null;
    if (!true) return;
    core.ArgumentError.checkNotNull(core.String, name, "name");
    if (!dart.test(developer._isDartStreamEnabled())) {
      return;
    }
    let instantArguments = null;
    if ($arguments != null) {
      instantArguments = collection.LinkedHashMap.from($arguments);
    }
    developer._reportInstantEvent("Dart", name, developer._argumentsAsJson(instantArguments));
  }
  static timeSync(T, name, $function, opts) {
    let $arguments = opts && 'arguments' in opts ? opts.arguments : null;
    let flow = opts && 'flow' in opts ? opts.flow : null;
    developer.Timeline.startSync(name, {arguments: $arguments, flow: flow});
    try {
      return $function();
    } finally {
      developer.Timeline.finishSync();
    }
  }
  static get now() {
    return developer._getTraceClock();
  }
};
(developer.Timeline.new = function() {
  ;
}).prototype = developer.Timeline.prototype;
dart.addTypeTests(developer.Timeline);
dart.addTypeCaches(developer.Timeline);
dart.setLibraryUri(developer.Timeline, L46);
dart.defineLazy(developer.Timeline, {
  /*developer.Timeline._stack*/get _stack() {
    return JSArrayOf_SyncBlockL().of([]);
  }
}, true);
var _stack = dart.privateName(developer, "_stack");
var _parent = dart.privateName(developer, "_parent");
var _filterKey = dart.privateName(developer, "_filterKey");
var _taskId$ = dart.privateName(developer, "_taskId");
var _start = dart.privateName(developer, "_start");
var _finish = dart.privateName(developer, "_finish");
developer.TimelineTask = class TimelineTask extends core.Object {
  start(name, opts) {
    let $arguments = opts && 'arguments' in opts ? opts.arguments : null;
    if (!true) return;
    core.ArgumentError.checkNotNull(core.String, name, "name");
    let block = new developer._AsyncBlock.__(name, this[_taskId$]);
    this[_stack][$add](block);
    block[_start]((() => {
      let t71 = new _js_helper.LinkedMap.new();
      if ($arguments != null) for (let t72 of $arguments[$entries])
        t71[$_set](t72.key, t72.value);
      if (this[_parent] != null) t71[$_set]("parentId", this[_parent][_taskId$][$toRadixString](16));
      if (this[_filterKey] != null) t71[$_set]("filterKey", this[_filterKey]);
      return t71;
    })());
  }
  instant(name, opts) {
    let $arguments = opts && 'arguments' in opts ? opts.arguments : null;
    if (!true) return;
    core.ArgumentError.checkNotNull(core.String, name, "name");
    let instantArguments = null;
    if ($arguments != null) {
      instantArguments = collection.LinkedHashMap.from($arguments);
    }
    if (this[_filterKey] != null) {
      instantArguments == null ? instantArguments = new _js_helper.LinkedMap.new() : null;
      instantArguments[$_set]("filterKey", this[_filterKey]);
    }
    developer._reportTaskEvent(this[_taskId$], "n", "Dart", name, developer._argumentsAsJson(instantArguments));
  }
  finish(opts) {
    let $arguments = opts && 'arguments' in opts ? opts.arguments : null;
    if (!true) {
      return;
    }
    if (this[_stack][$length] === 0) {
      dart.throw(new core.StateError.new("Uneven calls to start and finish"));
    }
    if (this[_filterKey] != null) {
      $arguments == null ? $arguments = new _js_helper.LinkedMap.new() : null;
      $arguments[$_set]("filterKey", this[_filterKey]);
    }
    let block = this[_stack][$removeLast]();
    block[_finish]($arguments);
  }
  pass() {
    if (dart.notNull(this[_stack][$length]) > 0) {
      dart.throw(new core.StateError.new("You cannot pass a TimelineTask without finishing all started " + "operations"));
    }
    let r = this[_taskId$];
    return r;
  }
};
(developer.TimelineTask.new = function(opts) {
  let parent = opts && 'parent' in opts ? opts.parent : null;
  let filterKey = opts && 'filterKey' in opts ? opts.filterKey : null;
  this[_stack] = JSArrayOf_AsyncBlockL().of([]);
  this[_parent] = parent;
  this[_filterKey] = filterKey;
  this[_taskId$] = developer._getNextAsyncId();
}).prototype = developer.TimelineTask.prototype;
(developer.TimelineTask.withTaskId = function(taskId, opts) {
  let filterKey = opts && 'filterKey' in opts ? opts.filterKey : null;
  this[_stack] = JSArrayOf_AsyncBlockL().of([]);
  this[_parent] = null;
  this[_filterKey] = filterKey;
  this[_taskId$] = taskId;
  core.ArgumentError.checkNotNull(core.int, taskId, "taskId");
}).prototype = developer.TimelineTask.prototype;
dart.addTypeTests(developer.TimelineTask);
dart.addTypeCaches(developer.TimelineTask);
dart.setMethodSignature(developer.TimelineTask, () => ({
  __proto__: dart.getMethods(developer.TimelineTask.__proto__),
  start: dart.fnType(dart.void, [core.String], {arguments: core.Map}, {}),
  instant: dart.fnType(dart.void, [core.String], {arguments: core.Map}, {}),
  finish: dart.fnType(dart.void, [], {arguments: core.Map}, {}),
  pass: dart.fnType(core.int, [])
}));
dart.setLibraryUri(developer.TimelineTask, L46);
dart.setFieldSignature(developer.TimelineTask, () => ({
  __proto__: dart.getFields(developer.TimelineTask.__proto__),
  [_parent]: dart.finalFieldType(developer.TimelineTask),
  [_filterKey]: dart.finalFieldType(core.String),
  [_taskId$]: dart.finalFieldType(core.int),
  [_stack]: dart.finalFieldType(core.List$(developer._AsyncBlock))
}));
dart.defineLazy(developer.TimelineTask, {
  /*developer.TimelineTask._kFilterKey*/get _kFilterKey() {
    return "filterKey";
  }
}, true);
developer._AsyncBlock = class _AsyncBlock extends core.Object {
  [_start]($arguments) {
    developer._reportTaskEvent(this[_taskId$], "b", this.category, this.name, developer._argumentsAsJson($arguments));
  }
  [_finish]($arguments) {
    developer._reportTaskEvent(this[_taskId$], "e", this.category, this.name, developer._argumentsAsJson($arguments));
  }
};
(developer._AsyncBlock.__ = function(name, _taskId) {
  this.category = "Dart";
  this.name = name;
  this[_taskId$] = _taskId;
  ;
}).prototype = developer._AsyncBlock.prototype;
dart.addTypeTests(developer._AsyncBlock);
dart.addTypeCaches(developer._AsyncBlock);
dart.setMethodSignature(developer._AsyncBlock, () => ({
  __proto__: dart.getMethods(developer._AsyncBlock.__proto__),
  [_start]: dart.fnType(dart.void, [core.Map]),
  [_finish]: dart.fnType(dart.void, [core.Map])
}));
dart.setLibraryUri(developer._AsyncBlock, L46);
dart.setFieldSignature(developer._AsyncBlock, () => ({
  __proto__: dart.getFields(developer._AsyncBlock.__proto__),
  category: dart.finalFieldType(core.String),
  name: dart.finalFieldType(core.String),
  [_taskId$]: dart.finalFieldType(core.int)
}));
var _flow = dart.privateName(developer, "_flow");
developer._SyncBlock = class _SyncBlock extends core.Object {
  [_startSync]() {
    developer._reportTaskEvent(0, "B", this.category, this.name, developer._argumentsAsJson(this[_arguments$1]));
  }
  finish() {
    developer._reportTaskEvent(0, "E", this.category, this.name, developer._argumentsAsJson(this[_arguments$1]));
    if (this[_flow] != null) {
      developer._reportFlowEvent(this.category, dart.str(this[_flow].id), this[_flow][_type$0], this[_flow].id, developer._argumentsAsJson(null));
    }
  }
  set flow(f) {
    this[_flow] = f;
  }
};
(developer._SyncBlock.__ = function(name) {
  this.category = "Dart";
  this[_arguments$1] = null;
  this[_flow] = null;
  this.name = name;
  ;
}).prototype = developer._SyncBlock.prototype;
dart.addTypeTests(developer._SyncBlock);
dart.addTypeCaches(developer._SyncBlock);
dart.setMethodSignature(developer._SyncBlock, () => ({
  __proto__: dart.getMethods(developer._SyncBlock.__proto__),
  [_startSync]: dart.fnType(dart.void, []),
  finish: dart.fnType(dart.void, [])
}));
dart.setSetterSignature(developer._SyncBlock, () => ({
  __proto__: dart.getSetters(developer._SyncBlock.__proto__),
  flow: developer.Flow
}));
dart.setLibraryUri(developer._SyncBlock, L46);
dart.setFieldSignature(developer._SyncBlock, () => ({
  __proto__: dart.getFields(developer._SyncBlock.__proto__),
  category: dart.finalFieldType(core.String),
  name: dart.finalFieldType(core.String),
  [_arguments$1]: dart.fieldType(core.Map),
  [_flow]: dart.fieldType(developer.Flow)
}));
developer.invokeExtension = function _invokeExtension(methodName, encodedJson) {
  return new dart.global.Promise((resolve, reject) => async.async(core.Null, function*() {
    try {
      let method = developer._lookupExtension(methodName);
      let parameters = core.Map.as(convert.json.decode(encodedJson))[$cast](core.String, core.String);
      let result = (yield method(methodName, parameters));
      resolve(result[_toString$]());
    } catch (e$) {
      let e = dart.getThrown(e$);
      reject(dart.str(e));
    }
  }));
};
developer.debugger = function $debugger(opts) {
  let when = opts && 'when' in opts ? opts.when : true;
  let message = opts && 'message' in opts ? opts.message : null;
  if (dart.test(when)) {
    debugger;
  }
  return when;
};
developer.inspect = function inspect(object) {
  console.debug("dart.developer.inspect", object);
  return object;
};
developer.log = function log(message, opts) {
  let time = opts && 'time' in opts ? opts.time : null;
  let sequenceNumber = opts && 'sequenceNumber' in opts ? opts.sequenceNumber : null;
  let level = opts && 'level' in opts ? opts.level : 0;
  let name = opts && 'name' in opts ? opts.name : "";
  let zone = opts && 'zone' in opts ? opts.zone : null;
  let error = opts && 'error' in opts ? opts.error : null;
  let stackTrace = opts && 'stackTrace' in opts ? opts.stackTrace : null;
  let items = {message: message, name: name, level: level};
  if (time != null) items.time = time;
  if (sequenceNumber != null) {
    items.sequenceNumber = sequenceNumber;
  }
  if (zone != null) items.zone = zone;
  if (error != null) items.error = error;
  if (stackTrace != null) items.stackTrace = stackTrace;
  console.debug("dart.developer.log", items);
};
developer.registerExtension = function registerExtension$(method, handler) {
  core.ArgumentError.checkNotNull(core.String, method, "method");
  if (!method[$startsWith]("ext.")) {
    dart.throw(new core.ArgumentError.value(method, "method", "Must begin with ext."));
  }
  if (developer._lookupExtension(method) != null) {
    dart.throw(new core.ArgumentError.new("Extension already registered: " + dart.str(method)));
  }
  core.ArgumentError.checkNotNull(StringLAndMapLOfStringL$StringLToLFutureLOfServiceExtensionResponseL(), handler, "handler");
  developer._registerExtension(method, handler);
};
developer.postEvent = function postEvent(eventKind, eventData) {
  core.ArgumentError.checkNotNull(core.String, eventKind, "eventKind");
  core.ArgumentError.checkNotNull(core.Map, eventData, "eventData");
  let eventDataAsString = convert.json.encode(eventData);
  developer._postEvent(eventKind, eventDataAsString);
};
developer._postEvent = function _postEvent(eventKind, eventData) {
  console.debug("dart.developer.postEvent", eventKind, eventData);
};
developer._lookupExtension = function _lookupExtension(method) {
  return developer._extensions[$_get](method);
};
developer._registerExtension = function _registerExtension(method, handler) {
  developer._extensions[$_set](method, handler);
  console.debug("dart.developer.registerExtension", method);
};
developer.getCurrentTag = function getCurrentTag() {
  return developer._currentTag;
};
developer._getServerInfo = function _getServerInfo(sendPort) {
  sendPort.send(null);
};
developer._webServerControl = function _webServerControl(sendPort, enable) {
  sendPort.send(null);
};
developer._getServiceMajorVersion = function _getServiceMajorVersion() {
  return 0;
};
developer._getServiceMinorVersion = function _getServiceMinorVersion() {
  return 0;
};
developer._getIsolateIDFromSendPort = function _getIsolateIDFromSendPort(sendPort) {
  return null;
};
developer._argumentsAsJson = function _argumentsAsJson($arguments) {
  if ($arguments == null || $arguments[$length] === 0) {
    return "{}";
  }
  return convert.json.encode($arguments);
};
developer._isDartStreamEnabled = function _isDartStreamEnabled() {
  return false;
};
developer._getNextAsyncId = function _getNextAsyncId() {
  return 0;
};
developer._getTraceClock = function _getTraceClock() {
  let t74;
  t74 = developer._clockValue;
  developer._clockValue = dart.notNull(t74) + 1;
  return t74;
};
developer._reportTaskEvent = function _reportTaskEvent(taskId, phase, category, name, argumentsAsJson) {
};
developer._reportFlowEvent = function _reportFlowEvent(category, name, type, id, argumentsAsJson) {
};
developer._reportInstantEvent = function _reportInstantEvent(category, name, argumentsAsJson) {
};
dart.defineLazy(developer, {
  /*developer._extensions*/get _extensions() {
    return new (LinkedMapOfStringL$StringLAndMapLOfStringL$StringLToLFutureLOfServiceExtensionResponseL()).new();
  },
  /*developer._clockValue*/get _clockValue() {
    return 0;
  },
  set _clockValue(_) {},
  /*developer._currentTag*/get _currentTag() {
    return developer._FakeUserTag._defaultTag;
  },
  set _currentTag(_) {},
  /*developer._hasTimeline*/get _hasTimeline() {
    return true;
  }
}, true);
io.BytesBuilder = class BytesBuilder extends core.Object {
  static new(opts) {
    let copy = opts && 'copy' in opts ? opts.copy : true;
    if (dart.test(copy)) {
      return new io._CopyingBytesBuilder.new();
    } else {
      return new io._BytesBuilder.new();
    }
  }
};
(io.BytesBuilder[dart.mixinNew] = function() {
}).prototype = io.BytesBuilder.prototype;
dart.addTypeTests(io.BytesBuilder);
dart.addTypeCaches(io.BytesBuilder);
dart.setLibraryUri(io.BytesBuilder, L48);
var _length$1 = dart.privateName(io, "_length");
var _buffer$ = dart.privateName(io, "_buffer");
var _grow$ = dart.privateName(io, "_grow");
io._CopyingBytesBuilder = class _CopyingBytesBuilder extends core.Object {
  add(bytes) {
    let bytesLength = bytes[$length];
    if (bytesLength === 0) return;
    let required = dart.notNull(this[_length$1]) + dart.notNull(bytesLength);
    if (dart.notNull(this[_buffer$][$length]) < required) {
      this[_grow$](required);
    }
    if (!(dart.notNull(this[_buffer$][$length]) >= required)) dart.assertFailed(null, L49, 105, 12, "_buffer.length >= required");
    if (typed_data.Uint8List.is(bytes)) {
      this[_buffer$][$setRange](this[_length$1], required, bytes);
    } else {
      for (let i = 0; i < dart.notNull(bytesLength); i = i + 1) {
        this[_buffer$][$_set](dart.notNull(this[_length$1]) + i, bytes[$_get](i));
      }
    }
    this[_length$1] = required;
  }
  addByte(byte) {
    if (this[_buffer$][$length] == this[_length$1]) {
      this[_grow$](this[_length$1]);
    }
    if (!(dart.notNull(this[_buffer$][$length]) > dart.notNull(this[_length$1]))) dart.assertFailed(null, L49, 122, 12, "_buffer.length > _length");
    this[_buffer$][$_set](this[_length$1], byte);
    this[_length$1] = dart.notNull(this[_length$1]) + 1;
  }
  [_grow$](required) {
    let newSize = dart.notNull(required) * 2;
    if (dart.notNull(newSize) < 1024) {
      newSize = 1024;
    } else {
      newSize = io._CopyingBytesBuilder._pow2roundup(newSize);
    }
    let newBuffer = _native_typed_data.NativeUint8List.new(newSize);
    newBuffer[$setRange](0, this[_buffer$][$length], this[_buffer$]);
    this[_buffer$] = newBuffer;
  }
  takeBytes() {
    if (this[_length$1] === 0) return io._CopyingBytesBuilder._emptyList;
    let buffer = typed_data.Uint8List.view(this[_buffer$][$buffer], this[_buffer$][$offsetInBytes], this[_length$1]);
    this.clear();
    return buffer;
  }
  toBytes() {
    if (this[_length$1] === 0) return io._CopyingBytesBuilder._emptyList;
    return _native_typed_data.NativeUint8List.fromList(typed_data.Uint8List.view(this[_buffer$][$buffer], this[_buffer$][$offsetInBytes], this[_length$1]));
  }
  get length() {
    return this[_length$1];
  }
  get isEmpty() {
    return this[_length$1] === 0;
  }
  get isNotEmpty() {
    return this[_length$1] !== 0;
  }
  clear() {
    this[_length$1] = 0;
    this[_buffer$] = io._CopyingBytesBuilder._emptyList;
  }
  static _pow2roundup(x) {
    if (!(dart.notNull(x) > 0)) dart.assertFailed(null, L49, 167, 12, "x > 0");
    x = dart.notNull(x) - 1;
    x = (dart.notNull(x) | x[$rightShift](1)) >>> 0;
    x = (dart.notNull(x) | x[$rightShift](2)) >>> 0;
    x = (dart.notNull(x) | x[$rightShift](4)) >>> 0;
    x = (dart.notNull(x) | x[$rightShift](8)) >>> 0;
    x = (dart.notNull(x) | x[$rightShift](16)) >>> 0;
    return dart.notNull(x) + 1;
  }
};
(io._CopyingBytesBuilder.new = function(initialCapacity = 0) {
  this[_length$1] = 0;
  this[_buffer$] = dart.notNull(initialCapacity) <= 0 ? io._CopyingBytesBuilder._emptyList : _native_typed_data.NativeUint8List.new(io._CopyingBytesBuilder._pow2roundup(initialCapacity));
  ;
}).prototype = io._CopyingBytesBuilder.prototype;
dart.addTypeTests(io._CopyingBytesBuilder);
dart.addTypeCaches(io._CopyingBytesBuilder);
io._CopyingBytesBuilder[dart.implements] = () => [io.BytesBuilder];
dart.setMethodSignature(io._CopyingBytesBuilder, () => ({
  __proto__: dart.getMethods(io._CopyingBytesBuilder.__proto__),
  add: dart.fnType(dart.void, [core.List$(core.int)]),
  addByte: dart.fnType(dart.void, [core.int]),
  [_grow$]: dart.fnType(dart.void, [core.int]),
  takeBytes: dart.fnType(typed_data.Uint8List, []),
  toBytes: dart.fnType(typed_data.Uint8List, []),
  clear: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(io._CopyingBytesBuilder, () => ({
  __proto__: dart.getGetters(io._CopyingBytesBuilder.__proto__),
  length: core.int,
  isEmpty: core.bool,
  isNotEmpty: core.bool
}));
dart.setLibraryUri(io._CopyingBytesBuilder, L48);
dart.setFieldSignature(io._CopyingBytesBuilder, () => ({
  __proto__: dart.getFields(io._CopyingBytesBuilder.__proto__),
  [_length$1]: dart.fieldType(core.int),
  [_buffer$]: dart.fieldType(typed_data.Uint8List)
}));
dart.defineLazy(io._CopyingBytesBuilder, {
  /*io._CopyingBytesBuilder._initSize*/get _initSize() {
    return 1024;
  },
  /*io._CopyingBytesBuilder._emptyList*/get _emptyList() {
    return _native_typed_data.NativeUint8List.new(0);
  }
}, true);
var _chunks = dart.privateName(io, "_chunks");
io._BytesBuilder = class _BytesBuilder extends core.Object {
  add(bytes) {
    let typedBytes = null;
    if (typed_data.Uint8List.is(bytes)) {
      typedBytes = bytes;
    } else {
      typedBytes = _native_typed_data.NativeUint8List.fromList(bytes);
    }
    this[_chunks][$add](typedBytes);
    this[_length$1] = dart.notNull(this[_length$1]) + dart.notNull(typedBytes[$length]);
  }
  addByte(byte) {
    let t74;
    this[_chunks][$add]((t74 = _native_typed_data.NativeUint8List.new(1), t74[$_set](0, byte), t74));
    this[_length$1] = dart.notNull(this[_length$1]) + 1;
  }
  takeBytes() {
    if (this[_length$1] === 0) return io._CopyingBytesBuilder._emptyList;
    if (this[_chunks][$length] === 1) {
      let buffer = this[_chunks][$_get](0);
      this.clear();
      return buffer;
    }
    let buffer = _native_typed_data.NativeUint8List.new(this[_length$1]);
    let offset = 0;
    for (let chunk of this[_chunks]) {
      buffer[$setRange](offset, offset + dart.notNull(chunk[$length]), chunk);
      offset = offset + dart.notNull(chunk[$length]);
    }
    this.clear();
    return buffer;
  }
  toBytes() {
    if (this[_length$1] === 0) return io._CopyingBytesBuilder._emptyList;
    let buffer = _native_typed_data.NativeUint8List.new(this[_length$1]);
    let offset = 0;
    for (let chunk of this[_chunks]) {
      buffer[$setRange](offset, offset + dart.notNull(chunk[$length]), chunk);
      offset = offset + dart.notNull(chunk[$length]);
    }
    return buffer;
  }
  get length() {
    return this[_length$1];
  }
  get isEmpty() {
    return this[_length$1] === 0;
  }
  get isNotEmpty() {
    return this[_length$1] !== 0;
  }
  clear() {
    this[_length$1] = 0;
    this[_chunks][$clear]();
  }
};
(io._BytesBuilder.new = function() {
  this[_length$1] = 0;
  this[_chunks] = JSArrayOfUint8ListL().of([]);
  ;
}).prototype = io._BytesBuilder.prototype;
dart.addTypeTests(io._BytesBuilder);
dart.addTypeCaches(io._BytesBuilder);
io._BytesBuilder[dart.implements] = () => [io.BytesBuilder];
dart.setMethodSignature(io._BytesBuilder, () => ({
  __proto__: dart.getMethods(io._BytesBuilder.__proto__),
  add: dart.fnType(dart.void, [core.List$(core.int)]),
  addByte: dart.fnType(dart.void, [core.int]),
  takeBytes: dart.fnType(typed_data.Uint8List, []),
  toBytes: dart.fnType(typed_data.Uint8List, []),
  clear: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(io._BytesBuilder, () => ({
  __proto__: dart.getGetters(io._BytesBuilder.__proto__),
  length: core.int,
  isEmpty: core.bool,
  isNotEmpty: core.bool
}));
dart.setLibraryUri(io._BytesBuilder, L48);
dart.setFieldSignature(io._BytesBuilder, () => ({
  __proto__: dart.getFields(io._BytesBuilder.__proto__),
  [_length$1]: dart.fieldType(core.int),
  [_chunks]: dart.finalFieldType(core.List$(typed_data.Uint8List))
}));
io.IOException = class IOException extends core.Object {
  toString() {
    return "IOException";
  }
};
(io.IOException.new = function() {
  ;
}).prototype = io.IOException.prototype;
dart.addTypeTests(io.IOException);
dart.addTypeCaches(io.IOException);
io.IOException[dart.implements] = () => [core.Exception];
dart.setLibraryUri(io.IOException, L48);
dart.defineExtensionMethods(io.IOException, ['toString']);
var message$2 = dart.privateName(io, "OSError.message");
var errorCode$0 = dart.privateName(io, "OSError.errorCode");
io.OSError = class OSError extends core.Object {
  get message() {
    return this[message$2];
  }
  set message(value) {
    super.message = value;
  }
  get errorCode() {
    return this[errorCode$0];
  }
  set errorCode(value) {
    super.errorCode = value;
  }
  toString() {
    let t74, t74$, t74$0;
    let sb = new core.StringBuffer.new();
    sb.write("OS Error");
    if (this.message[$isNotEmpty]) {
      t74 = sb;
      t74.write(": ");
      t74.write(this.message);
      t74;
      if (this.errorCode !== -1) {
        t74$ = sb;
        t74$.write(", errno = ");
        t74$.write(dart.toString(this.errorCode));
        t74$;
      }
    } else if (this.errorCode !== -1) {
      t74$0 = sb;
      t74$0.write(": errno = ");
      t74$0.write(dart.toString(this.errorCode));
      t74$0;
    }
    return sb.toString();
  }
};
(io.OSError.new = function(message = "", errorCode = -1) {
  this[message$2] = message;
  this[errorCode$0] = errorCode;
  ;
}).prototype = io.OSError.prototype;
dart.addTypeTests(io.OSError);
dart.addTypeCaches(io.OSError);
dart.setLibraryUri(io.OSError, L48);
dart.setFieldSignature(io.OSError, () => ({
  __proto__: dart.getFields(io.OSError.__proto__),
  message: dart.finalFieldType(core.String),
  errorCode: dart.finalFieldType(core.int)
}));
dart.defineExtensionMethods(io.OSError, ['toString']);
dart.defineLazy(io.OSError, {
  /*io.OSError.noErrorCode*/get noErrorCode() {
    return -1;
  }
}, true);
io._BufferAndStart = class _BufferAndStart extends core.Object {};
(io._BufferAndStart.new = function(buffer, start) {
  this.buffer = buffer;
  this.start = start;
  ;
}).prototype = io._BufferAndStart.prototype;
dart.addTypeTests(io._BufferAndStart);
dart.addTypeCaches(io._BufferAndStart);
dart.setLibraryUri(io._BufferAndStart, L48);
dart.setFieldSignature(io._BufferAndStart, () => ({
  __proto__: dart.getFields(io._BufferAndStart.__proto__),
  buffer: dart.fieldType(core.List$(core.int)),
  start: dart.fieldType(core.int)
}));
io._IOCrypto = class _IOCrypto extends core.Object {
  static getRandomBytes(count) {
    dart.throw(new core.UnsupportedError.new("_IOCrypto.getRandomBytes"));
  }
};
(io._IOCrypto.new = function() {
  ;
}).prototype = io._IOCrypto.prototype;
dart.addTypeTests(io._IOCrypto);
dart.addTypeCaches(io._IOCrypto);
dart.setLibraryUri(io._IOCrypto, L48);
io.ZLibOption = class ZLibOption extends core.Object {};
(io.ZLibOption.new = function() {
  ;
}).prototype = io.ZLibOption.prototype;
dart.addTypeTests(io.ZLibOption);
dart.addTypeCaches(io.ZLibOption);
dart.setLibraryUri(io.ZLibOption, L48);
dart.defineLazy(io.ZLibOption, {
  /*io.ZLibOption.minWindowBits*/get minWindowBits() {
    return 8;
  },
  /*io.ZLibOption.MIN_WINDOW_BITS*/get MIN_WINDOW_BITS() {
    return 8;
  },
  /*io.ZLibOption.maxWindowBits*/get maxWindowBits() {
    return 15;
  },
  /*io.ZLibOption.MAX_WINDOW_BITS*/get MAX_WINDOW_BITS() {
    return 15;
  },
  /*io.ZLibOption.defaultWindowBits*/get defaultWindowBits() {
    return 15;
  },
  /*io.ZLibOption.DEFAULT_WINDOW_BITS*/get DEFAULT_WINDOW_BITS() {
    return 15;
  },
  /*io.ZLibOption.minLevel*/get minLevel() {
    return -1;
  },
  /*io.ZLibOption.MIN_LEVEL*/get MIN_LEVEL() {
    return -1;
  },
  /*io.ZLibOption.maxLevel*/get maxLevel() {
    return 9;
  },
  /*io.ZLibOption.MAX_LEVEL*/get MAX_LEVEL() {
    return 9;
  },
  /*io.ZLibOption.defaultLevel*/get defaultLevel() {
    return 6;
  },
  /*io.ZLibOption.DEFAULT_LEVEL*/get DEFAULT_LEVEL() {
    return 6;
  },
  /*io.ZLibOption.minMemLevel*/get minMemLevel() {
    return 1;
  },
  /*io.ZLibOption.MIN_MEM_LEVEL*/get MIN_MEM_LEVEL() {
    return 1;
  },
  /*io.ZLibOption.maxMemLevel*/get maxMemLevel() {
    return 9;
  },
  /*io.ZLibOption.MAX_MEM_LEVEL*/get MAX_MEM_LEVEL() {
    return 9;
  },
  /*io.ZLibOption.defaultMemLevel*/get defaultMemLevel() {
    return 8;
  },
  /*io.ZLibOption.DEFAULT_MEM_LEVEL*/get DEFAULT_MEM_LEVEL() {
    return 8;
  },
  /*io.ZLibOption.strategyFiltered*/get strategyFiltered() {
    return 1;
  },
  /*io.ZLibOption.STRATEGY_FILTERED*/get STRATEGY_FILTERED() {
    return 1;
  },
  /*io.ZLibOption.strategyHuffmanOnly*/get strategyHuffmanOnly() {
    return 2;
  },
  /*io.ZLibOption.STRATEGY_HUFFMAN_ONLY*/get STRATEGY_HUFFMAN_ONLY() {
    return 2;
  },
  /*io.ZLibOption.strategyRle*/get strategyRle() {
    return 3;
  },
  /*io.ZLibOption.STRATEGY_RLE*/get STRATEGY_RLE() {
    return 3;
  },
  /*io.ZLibOption.strategyFixed*/get strategyFixed() {
    return 4;
  },
  /*io.ZLibOption.STRATEGY_FIXED*/get STRATEGY_FIXED() {
    return 4;
  },
  /*io.ZLibOption.strategyDefault*/get strategyDefault() {
    return 0;
  },
  /*io.ZLibOption.STRATEGY_DEFAULT*/get STRATEGY_DEFAULT() {
    return 0;
  }
}, true);
var gzip$ = dart.privateName(io, "ZLibCodec.gzip");
var level$ = dart.privateName(io, "ZLibCodec.level");
var memLevel$ = dart.privateName(io, "ZLibCodec.memLevel");
var strategy$ = dart.privateName(io, "ZLibCodec.strategy");
var windowBits$ = dart.privateName(io, "ZLibCodec.windowBits");
var raw$ = dart.privateName(io, "ZLibCodec.raw");
var dictionary$ = dart.privateName(io, "ZLibCodec.dictionary");
io.ZLibCodec = class ZLibCodec extends convert.Codec$(core.List$(core.int), core.List$(core.int)) {
  get gzip() {
    return this[gzip$];
  }
  set gzip(value) {
    super.gzip = value;
  }
  get level() {
    return this[level$];
  }
  set level(value) {
    super.level = value;
  }
  get memLevel() {
    return this[memLevel$];
  }
  set memLevel(value) {
    super.memLevel = value;
  }
  get strategy() {
    return this[strategy$];
  }
  set strategy(value) {
    super.strategy = value;
  }
  get windowBits() {
    return this[windowBits$];
  }
  set windowBits(value) {
    super.windowBits = value;
  }
  get raw() {
    return this[raw$];
  }
  set raw(value) {
    super.raw = value;
  }
  get dictionary() {
    return this[dictionary$];
  }
  set dictionary(value) {
    super.dictionary = value;
  }
  get encoder() {
    return new io.ZLibEncoder.new({gzip: false, level: this.level, windowBits: this.windowBits, memLevel: this.memLevel, strategy: this.strategy, dictionary: this.dictionary, raw: this.raw});
  }
  get decoder() {
    return new io.ZLibDecoder.new({windowBits: this.windowBits, dictionary: this.dictionary, raw: this.raw});
  }
};
(io.ZLibCodec.new = function(opts) {
  let level = opts && 'level' in opts ? opts.level : 6;
  let windowBits = opts && 'windowBits' in opts ? opts.windowBits : 15;
  let memLevel = opts && 'memLevel' in opts ? opts.memLevel : 8;
  let strategy = opts && 'strategy' in opts ? opts.strategy : 0;
  let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
  let raw = opts && 'raw' in opts ? opts.raw : false;
  let gzip = opts && 'gzip' in opts ? opts.gzip : false;
  this[level$] = level;
  this[windowBits$] = windowBits;
  this[memLevel$] = memLevel;
  this[strategy$] = strategy;
  this[dictionary$] = dictionary;
  this[raw$] = raw;
  this[gzip$] = gzip;
  io.ZLibCodec.__proto__.new.call(this);
  io._validateZLibeLevel(this.level);
  io._validateZLibMemLevel(this.memLevel);
  io._validateZLibStrategy(this.strategy);
  io._validateZLibWindowBits(this.windowBits);
}).prototype = io.ZLibCodec.prototype;
(io.ZLibCodec._default = function() {
  this[level$] = 6;
  this[windowBits$] = 15;
  this[memLevel$] = 8;
  this[strategy$] = 0;
  this[raw$] = false;
  this[gzip$] = false;
  this[dictionary$] = null;
  io.ZLibCodec.__proto__.new.call(this);
  ;
}).prototype = io.ZLibCodec.prototype;
dart.addTypeTests(io.ZLibCodec);
dart.addTypeCaches(io.ZLibCodec);
dart.setGetterSignature(io.ZLibCodec, () => ({
  __proto__: dart.getGetters(io.ZLibCodec.__proto__),
  encoder: io.ZLibEncoder,
  decoder: io.ZLibDecoder
}));
dart.setLibraryUri(io.ZLibCodec, L48);
dart.setFieldSignature(io.ZLibCodec, () => ({
  __proto__: dart.getFields(io.ZLibCodec.__proto__),
  gzip: dart.finalFieldType(core.bool),
  level: dart.finalFieldType(core.int),
  memLevel: dart.finalFieldType(core.int),
  strategy: dart.finalFieldType(core.int),
  windowBits: dart.finalFieldType(core.int),
  raw: dart.finalFieldType(core.bool),
  dictionary: dart.finalFieldType(core.List$(core.int))
}));
var gzip$0 = dart.privateName(io, "GZipCodec.gzip");
var level$0 = dart.privateName(io, "GZipCodec.level");
var memLevel$0 = dart.privateName(io, "GZipCodec.memLevel");
var strategy$0 = dart.privateName(io, "GZipCodec.strategy");
var windowBits$0 = dart.privateName(io, "GZipCodec.windowBits");
var dictionary$0 = dart.privateName(io, "GZipCodec.dictionary");
var raw$0 = dart.privateName(io, "GZipCodec.raw");
io.GZipCodec = class GZipCodec extends convert.Codec$(core.List$(core.int), core.List$(core.int)) {
  get gzip() {
    return this[gzip$0];
  }
  set gzip(value) {
    super.gzip = value;
  }
  get level() {
    return this[level$0];
  }
  set level(value) {
    super.level = value;
  }
  get memLevel() {
    return this[memLevel$0];
  }
  set memLevel(value) {
    super.memLevel = value;
  }
  get strategy() {
    return this[strategy$0];
  }
  set strategy(value) {
    super.strategy = value;
  }
  get windowBits() {
    return this[windowBits$0];
  }
  set windowBits(value) {
    super.windowBits = value;
  }
  get dictionary() {
    return this[dictionary$0];
  }
  set dictionary(value) {
    super.dictionary = value;
  }
  get raw() {
    return this[raw$0];
  }
  set raw(value) {
    super.raw = value;
  }
  get encoder() {
    return new io.ZLibEncoder.new({gzip: true, level: this.level, windowBits: this.windowBits, memLevel: this.memLevel, strategy: this.strategy, dictionary: this.dictionary, raw: this.raw});
  }
  get decoder() {
    return new io.ZLibDecoder.new({windowBits: this.windowBits, dictionary: this.dictionary, raw: this.raw});
  }
};
(io.GZipCodec.new = function(opts) {
  let level = opts && 'level' in opts ? opts.level : 6;
  let windowBits = opts && 'windowBits' in opts ? opts.windowBits : 15;
  let memLevel = opts && 'memLevel' in opts ? opts.memLevel : 8;
  let strategy = opts && 'strategy' in opts ? opts.strategy : 0;
  let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
  let raw = opts && 'raw' in opts ? opts.raw : false;
  let gzip = opts && 'gzip' in opts ? opts.gzip : true;
  this[level$0] = level;
  this[windowBits$0] = windowBits;
  this[memLevel$0] = memLevel;
  this[strategy$0] = strategy;
  this[dictionary$0] = dictionary;
  this[raw$0] = raw;
  this[gzip$0] = gzip;
  io.GZipCodec.__proto__.new.call(this);
  io._validateZLibeLevel(this.level);
  io._validateZLibMemLevel(this.memLevel);
  io._validateZLibStrategy(this.strategy);
  io._validateZLibWindowBits(this.windowBits);
}).prototype = io.GZipCodec.prototype;
(io.GZipCodec._default = function() {
  this[level$0] = 6;
  this[windowBits$0] = 15;
  this[memLevel$0] = 8;
  this[strategy$0] = 0;
  this[raw$0] = false;
  this[gzip$0] = true;
  this[dictionary$0] = null;
  io.GZipCodec.__proto__.new.call(this);
  ;
}).prototype = io.GZipCodec.prototype;
dart.addTypeTests(io.GZipCodec);
dart.addTypeCaches(io.GZipCodec);
dart.setGetterSignature(io.GZipCodec, () => ({
  __proto__: dart.getGetters(io.GZipCodec.__proto__),
  encoder: io.ZLibEncoder,
  decoder: io.ZLibDecoder
}));
dart.setLibraryUri(io.GZipCodec, L48);
dart.setFieldSignature(io.GZipCodec, () => ({
  __proto__: dart.getFields(io.GZipCodec.__proto__),
  gzip: dart.finalFieldType(core.bool),
  level: dart.finalFieldType(core.int),
  memLevel: dart.finalFieldType(core.int),
  strategy: dart.finalFieldType(core.int),
  windowBits: dart.finalFieldType(core.int),
  dictionary: dart.finalFieldType(core.List$(core.int)),
  raw: dart.finalFieldType(core.bool)
}));
var gzip$1 = dart.privateName(io, "ZLibEncoder.gzip");
var level$1 = dart.privateName(io, "ZLibEncoder.level");
var memLevel$1 = dart.privateName(io, "ZLibEncoder.memLevel");
var strategy$1 = dart.privateName(io, "ZLibEncoder.strategy");
var windowBits$1 = dart.privateName(io, "ZLibEncoder.windowBits");
var dictionary$1 = dart.privateName(io, "ZLibEncoder.dictionary");
var raw$1 = dart.privateName(io, "ZLibEncoder.raw");
io.ZLibEncoder = class ZLibEncoder extends convert.Converter$(core.List$(core.int), core.List$(core.int)) {
  get gzip() {
    return this[gzip$1];
  }
  set gzip(value) {
    super.gzip = value;
  }
  get level() {
    return this[level$1];
  }
  set level(value) {
    super.level = value;
  }
  get memLevel() {
    return this[memLevel$1];
  }
  set memLevel(value) {
    super.memLevel = value;
  }
  get strategy() {
    return this[strategy$1];
  }
  set strategy(value) {
    super.strategy = value;
  }
  get windowBits() {
    return this[windowBits$1];
  }
  set windowBits(value) {
    super.windowBits = value;
  }
  get dictionary() {
    return this[dictionary$1];
  }
  set dictionary(value) {
    super.dictionary = value;
  }
  get raw() {
    return this[raw$1];
  }
  set raw(value) {
    super.raw = value;
  }
  convert(bytes) {
    let t74;
    ListOfintL().as(bytes);
    let sink = new io._BufferSink.new();
    t74 = this.startChunkedConversion(sink);
    t74.add(bytes);
    t74.close();
    t74;
    return sink.builder.takeBytes();
  }
  startChunkedConversion(sink) {
    SinkOfListLOfintL().as(sink);
    if (!convert.ByteConversionSink.is(sink)) {
      sink = new convert._ByteAdapterSink.new(sink);
    }
    return new io._ZLibEncoderSink.__(convert.ByteConversionSink.as(sink), this.gzip, this.level, this.windowBits, this.memLevel, this.strategy, this.dictionary, this.raw);
  }
};
(io.ZLibEncoder.new = function(opts) {
  let gzip = opts && 'gzip' in opts ? opts.gzip : false;
  let level = opts && 'level' in opts ? opts.level : 6;
  let windowBits = opts && 'windowBits' in opts ? opts.windowBits : 15;
  let memLevel = opts && 'memLevel' in opts ? opts.memLevel : 8;
  let strategy = opts && 'strategy' in opts ? opts.strategy : 0;
  let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
  let raw = opts && 'raw' in opts ? opts.raw : false;
  this[gzip$1] = gzip;
  this[level$1] = level;
  this[windowBits$1] = windowBits;
  this[memLevel$1] = memLevel;
  this[strategy$1] = strategy;
  this[dictionary$1] = dictionary;
  this[raw$1] = raw;
  io.ZLibEncoder.__proto__.new.call(this);
  io._validateZLibeLevel(this.level);
  io._validateZLibMemLevel(this.memLevel);
  io._validateZLibStrategy(this.strategy);
  io._validateZLibWindowBits(this.windowBits);
}).prototype = io.ZLibEncoder.prototype;
dart.addTypeTests(io.ZLibEncoder);
dart.addTypeCaches(io.ZLibEncoder);
dart.setMethodSignature(io.ZLibEncoder, () => ({
  __proto__: dart.getMethods(io.ZLibEncoder.__proto__),
  convert: dart.fnType(core.List$(core.int), [core.Object]),
  startChunkedConversion: dart.fnType(convert.ByteConversionSink, [core.Object])
}));
dart.setLibraryUri(io.ZLibEncoder, L48);
dart.setFieldSignature(io.ZLibEncoder, () => ({
  __proto__: dart.getFields(io.ZLibEncoder.__proto__),
  gzip: dart.finalFieldType(core.bool),
  level: dart.finalFieldType(core.int),
  memLevel: dart.finalFieldType(core.int),
  strategy: dart.finalFieldType(core.int),
  windowBits: dart.finalFieldType(core.int),
  dictionary: dart.finalFieldType(core.List$(core.int)),
  raw: dart.finalFieldType(core.bool)
}));
var windowBits$2 = dart.privateName(io, "ZLibDecoder.windowBits");
var dictionary$2 = dart.privateName(io, "ZLibDecoder.dictionary");
var raw$2 = dart.privateName(io, "ZLibDecoder.raw");
io.ZLibDecoder = class ZLibDecoder extends convert.Converter$(core.List$(core.int), core.List$(core.int)) {
  get windowBits() {
    return this[windowBits$2];
  }
  set windowBits(value) {
    super.windowBits = value;
  }
  get dictionary() {
    return this[dictionary$2];
  }
  set dictionary(value) {
    super.dictionary = value;
  }
  get raw() {
    return this[raw$2];
  }
  set raw(value) {
    super.raw = value;
  }
  convert(bytes) {
    let t74;
    ListOfintL().as(bytes);
    let sink = new io._BufferSink.new();
    t74 = this.startChunkedConversion(sink);
    t74.add(bytes);
    t74.close();
    t74;
    return sink.builder.takeBytes();
  }
  startChunkedConversion(sink) {
    SinkOfListLOfintL().as(sink);
    if (!convert.ByteConversionSink.is(sink)) {
      sink = new convert._ByteAdapterSink.new(sink);
    }
    return new io._ZLibDecoderSink.__(convert.ByteConversionSink.as(sink), this.windowBits, this.dictionary, this.raw);
  }
};
(io.ZLibDecoder.new = function(opts) {
  let windowBits = opts && 'windowBits' in opts ? opts.windowBits : 15;
  let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
  let raw = opts && 'raw' in opts ? opts.raw : false;
  this[windowBits$2] = windowBits;
  this[dictionary$2] = dictionary;
  this[raw$2] = raw;
  io.ZLibDecoder.__proto__.new.call(this);
  io._validateZLibWindowBits(this.windowBits);
}).prototype = io.ZLibDecoder.prototype;
dart.addTypeTests(io.ZLibDecoder);
dart.addTypeCaches(io.ZLibDecoder);
dart.setMethodSignature(io.ZLibDecoder, () => ({
  __proto__: dart.getMethods(io.ZLibDecoder.__proto__),
  convert: dart.fnType(core.List$(core.int), [core.Object]),
  startChunkedConversion: dart.fnType(convert.ByteConversionSink, [core.Object])
}));
dart.setLibraryUri(io.ZLibDecoder, L48);
dart.setFieldSignature(io.ZLibDecoder, () => ({
  __proto__: dart.getFields(io.ZLibDecoder.__proto__),
  windowBits: dart.finalFieldType(core.int),
  dictionary: dart.finalFieldType(core.List$(core.int)),
  raw: dart.finalFieldType(core.bool)
}));
io.RawZLibFilter = class RawZLibFilter extends core.Object {
  static deflateFilter(opts) {
    let gzip = opts && 'gzip' in opts ? opts.gzip : false;
    let level = opts && 'level' in opts ? opts.level : 6;
    let windowBits = opts && 'windowBits' in opts ? opts.windowBits : 15;
    let memLevel = opts && 'memLevel' in opts ? opts.memLevel : 8;
    let strategy = opts && 'strategy' in opts ? opts.strategy : 0;
    let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
    let raw = opts && 'raw' in opts ? opts.raw : false;
    return io.RawZLibFilter._makeZLibDeflateFilter(gzip, level, windowBits, memLevel, strategy, dictionary, raw);
  }
  static inflateFilter(opts) {
    let windowBits = opts && 'windowBits' in opts ? opts.windowBits : 15;
    let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
    let raw = opts && 'raw' in opts ? opts.raw : false;
    return io.RawZLibFilter._makeZLibInflateFilter(windowBits, dictionary, raw);
  }
  static _makeZLibDeflateFilter(gzip, level, windowBits, memLevel, strategy, dictionary, raw) {
    dart.throw(new core.UnsupportedError.new("_newZLibDeflateFilter"));
  }
  static _makeZLibInflateFilter(windowBits, dictionary, raw) {
    dart.throw(new core.UnsupportedError.new("_newZLibInflateFilter"));
  }
};
(io.RawZLibFilter[dart.mixinNew] = function() {
}).prototype = io.RawZLibFilter.prototype;
dart.addTypeTests(io.RawZLibFilter);
dart.addTypeCaches(io.RawZLibFilter);
dart.setLibraryUri(io.RawZLibFilter, L48);
io._BufferSink = class _BufferSink extends convert.ByteConversionSink {
  add(chunk) {
    ListOfintL().as(chunk);
    this.builder.add(chunk);
  }
  addSlice(chunk, start, end, isLast) {
    if (typed_data.Uint8List.is(chunk)) {
      let list = chunk;
      this.builder.add(typed_data.Uint8List.view(list[$buffer], dart.notNull(list[$offsetInBytes]) + dart.notNull(start), dart.notNull(end) - dart.notNull(start)));
    } else {
      this.builder.add(chunk[$sublist](start, end));
    }
  }
  close() {
  }
};
(io._BufferSink.new = function() {
  this.builder = io.BytesBuilder.new({copy: false});
  io._BufferSink.__proto__.new.call(this);
  ;
}).prototype = io._BufferSink.prototype;
dart.addTypeTests(io._BufferSink);
dart.addTypeCaches(io._BufferSink);
dart.setMethodSignature(io._BufferSink, () => ({
  __proto__: dart.getMethods(io._BufferSink.__proto__),
  add: dart.fnType(dart.void, [core.Object]),
  addSlice: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int, core.bool]),
  close: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(io._BufferSink, L48);
dart.setFieldSignature(io._BufferSink, () => ({
  __proto__: dart.getFields(io._BufferSink.__proto__),
  builder: dart.finalFieldType(io.BytesBuilder)
}));
var _closed = dart.privateName(io, "_closed");
var _empty = dart.privateName(io, "_empty");
var _sink$1 = dart.privateName(io, "_sink");
var _filter$ = dart.privateName(io, "_filter");
var C109;
io._FilterSink = class _FilterSink extends convert.ByteConversionSink {
  add(data) {
    ListOfintL().as(data);
    this.addSlice(data, 0, data[$length], false);
  }
  addSlice(data, start, end, isLast) {
    if (dart.test(this[_closed])) return;
    if (end == null) dart.throw(new core.ArgumentError.notNull("end"));
    core.RangeError.checkValidRange(start, end, data[$length]);
    try {
      this[_empty] = false;
      let bufferAndStart = io._ensureFastAndSerializableByteData(data, start, end);
      this[_filter$].process(bufferAndStart.buffer, bufferAndStart.start, dart.notNull(end) - (dart.notNull(start) - dart.notNull(bufferAndStart.start)));
      let out = null;
      while ((out = this[_filter$].processed({flush: false})) != null) {
        this[_sink$1].add(out);
      }
    } catch (e$) {
      let e = dart.getThrown(e$);
      this[_closed] = true;
      dart.rethrow(e$);
    }
    if (dart.test(isLast)) this.close();
  }
  close() {
    if (dart.test(this[_closed])) return;
    if (dart.test(this[_empty])) this[_filter$].process(C109 || CT.C109, 0, 0);
    try {
      let out = null;
      while ((out = this[_filter$].processed({end: true})) != null) {
        this[_sink$1].add(out);
      }
    } catch (e$) {
      let e = dart.getThrown(e$);
      this[_closed] = true;
      dart.throw(e);
    }
    this[_closed] = true;
    this[_sink$1].close();
  }
};
(io._FilterSink.new = function(_sink, _filter) {
  this[_closed] = false;
  this[_empty] = true;
  this[_sink$1] = _sink;
  this[_filter$] = _filter;
  io._FilterSink.__proto__.new.call(this);
  ;
}).prototype = io._FilterSink.prototype;
dart.addTypeTests(io._FilterSink);
dart.addTypeCaches(io._FilterSink);
dart.setMethodSignature(io._FilterSink, () => ({
  __proto__: dart.getMethods(io._FilterSink.__proto__),
  add: dart.fnType(dart.void, [core.Object]),
  addSlice: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int, core.bool]),
  close: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(io._FilterSink, L48);
dart.setFieldSignature(io._FilterSink, () => ({
  __proto__: dart.getFields(io._FilterSink.__proto__),
  [_filter$]: dart.finalFieldType(io.RawZLibFilter),
  [_sink$1]: dart.finalFieldType(convert.ByteConversionSink),
  [_closed]: dart.fieldType(core.bool),
  [_empty]: dart.fieldType(core.bool)
}));
io._ZLibEncoderSink = class _ZLibEncoderSink extends io._FilterSink {};
(io._ZLibEncoderSink.__ = function(sink, gzip, level, windowBits, memLevel, strategy, dictionary, raw) {
  io._ZLibEncoderSink.__proto__.new.call(this, sink, io.RawZLibFilter._makeZLibDeflateFilter(gzip, level, windowBits, memLevel, strategy, dictionary, raw));
  ;
}).prototype = io._ZLibEncoderSink.prototype;
dart.addTypeTests(io._ZLibEncoderSink);
dart.addTypeCaches(io._ZLibEncoderSink);
dart.setLibraryUri(io._ZLibEncoderSink, L48);
io._ZLibDecoderSink = class _ZLibDecoderSink extends io._FilterSink {};
(io._ZLibDecoderSink.__ = function(sink, windowBits, dictionary, raw) {
  io._ZLibDecoderSink.__proto__.new.call(this, sink, io.RawZLibFilter._makeZLibInflateFilter(windowBits, dictionary, raw));
  ;
}).prototype = io._ZLibDecoderSink.prototype;
dart.addTypeTests(io._ZLibDecoderSink);
dart.addTypeCaches(io._ZLibDecoderSink);
dart.setLibraryUri(io._ZLibDecoderSink, L48);
io.Directory = class Directory extends core.Object {
  static new(path) {
    let overrides = io.IOOverrides.current;
    if (overrides == null) {
      return new io._Directory.new(path);
    }
    return overrides.createDirectory(path);
  }
  static fromRawPath(path) {
    return new io._Directory.fromRawPath(path);
  }
  static fromUri(uri) {
    return io.Directory.new(uri.toFilePath());
  }
  static get current() {
    let overrides = io.IOOverrides.current;
    if (overrides == null) {
      return io._Directory.current;
    }
    return overrides.getCurrentDirectory();
  }
  static set current(path) {
    let overrides = io.IOOverrides.current;
    if (overrides == null) {
      io._Directory.current = path;
      return;
    }
    overrides.setCurrentDirectory(core.String.as(path));
  }
  static get systemTemp() {
    let overrides = io.IOOverrides.current;
    if (overrides == null) {
      return io._Directory.systemTemp;
    }
    return overrides.getSystemTempDirectory();
  }
};
(io.Directory[dart.mixinNew] = function() {
}).prototype = io.Directory.prototype;
dart.addTypeTests(io.Directory);
dart.addTypeCaches(io.Directory);
io.Directory[dart.implements] = () => [io.FileSystemEntity];
dart.setLibraryUri(io.Directory, L48);
var _path$ = dart.privateName(io, "_path");
var _rawPath$ = dart.privateName(io, "_rawPath");
var _isErrorResponse = dart.privateName(io, "_isErrorResponse");
var _exceptionOrErrorFromResponse = dart.privateName(io, "_exceptionOrErrorFromResponse");
var _absolutePath = dart.privateName(io, "_absolutePath");
var _delete = dart.privateName(io, "_delete");
var _deleteSync = dart.privateName(io, "_deleteSync");
var _rawAbsolutePath = dart.privateName(io, "_rawAbsolutePath");
var _path = dart.privateName(io, "FileSystemEntity._path");
var _rawPath = dart.privateName(io, "FileSystemEntity._rawPath");
io.FileSystemEntity = class FileSystemEntity extends core.Object {
  get [_path$]() {
    return this[_path];
  }
  set [_path$](value) {
    this[_path] = value;
  }
  get [_rawPath$]() {
    return this[_rawPath];
  }
  set [_rawPath$](value) {
    this[_rawPath] = value;
  }
  get uri() {
    return core._Uri.file(this.path);
  }
  resolveSymbolicLinks() {
    return io._File._dispatchWithNamespace(6, [null, this[_rawPath$]]).then(core.String, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "Cannot resolve symbolic links", this.path));
      }
      return FutureOrOfStringL().as(response);
    }, dynamicToFutureOrLOfStringL()));
  }
  resolveSymbolicLinksSync() {
    let result = io.FileSystemEntity._resolveSymbolicLinks(io._Namespace._namespace, this[_rawPath$]);
    io.FileSystemEntity._throwIfError(result, "Cannot resolve symbolic links", this.path);
    return core.String.as(result);
  }
  stat() {
    return io.FileStat.stat(this.path);
  }
  statSync() {
    return io.FileStat.statSync(this.path);
  }
  delete(opts) {
    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
    return this[_delete]({recursive: recursive});
  }
  deleteSync(opts) {
    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
    return this[_deleteSync]({recursive: recursive});
  }
  watch(opts) {
    let events = opts && 'events' in opts ? opts.events : 15;
    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
    let trimmedPath = io.FileSystemEntity._trimTrailingPathSeparators(this.path);
    let overrides = io.IOOverrides.current;
    if (overrides == null) {
      return io._FileSystemWatcher._watch(trimmedPath, events, recursive);
    }
    return overrides.fsWatch(trimmedPath, events, recursive);
  }
  static _identical(path1, path2) {
    return io._File._dispatchWithNamespace(28, [null, path1, path2]).then(core.bool, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "Error in FileSystemEntity.identical(" + dart.str(path1) + ", " + dart.str(path2) + ")", ""));
      }
      return FutureOrOfboolL().as(response);
    }, dynamicToFutureOrLOfboolL()));
  }
  static identical(path1, path2) {
    let overrides = io.IOOverrides.current;
    if (overrides == null) {
      return io.FileSystemEntity._identical(path1, path2);
    }
    return overrides.fseIdentical(path1, path2);
  }
  get isAbsolute() {
    if (dart.test(io.Platform.isWindows)) {
      return this.path[$startsWith](io.FileSystemEntity._absoluteWindowsPathPattern);
    } else {
      return this.path[$startsWith]("/");
    }
  }
  get [_absolutePath]() {
    if (dart.test(this.isAbsolute)) return this.path;
    let current = io.Directory.current.path;
    if (current[$endsWith]("/") || dart.test(io.Platform.isWindows) && current[$endsWith]("\\")) {
      return dart.str(current) + dart.str(this.path);
    } else {
      return dart.str(current) + dart.str(io.Platform.pathSeparator) + dart.str(this.path);
    }
  }
  get [_rawAbsolutePath]() {
    if (dart.test(this.isAbsolute)) return this[_rawPath$];
    let current = io.Directory.current[_rawPath$][$toList]();
    if (!(current[$last] === 0)) dart.assertFailed(null, L51, 585, 12, "current.last == 0");
    current[$removeLast]();
    if (current[$last] === "/"[$codeUnitAt](0) || dart.test(io.Platform.isWindows) && current[$last] === "\\"[$codeUnitAt](0)) {
      current[$addAll](this[_rawPath$]);
      return _native_typed_data.NativeUint8List.fromList(current);
    } else {
      current[$addAll](convert.utf8.encode(io.Platform.pathSeparator));
      current[$addAll](this[_rawPath$]);
      return _native_typed_data.NativeUint8List.fromList(current);
    }
  }
  static _identicalSync(path1, path2) {
    let result = io.FileSystemEntity._identicalNative(io._Namespace._namespace, path1, path2);
    io.FileSystemEntity._throwIfError(result, "Error in FileSystemEntity.identicalSync");
    return core.bool.as(result);
  }
  static identicalSync(path1, path2) {
    let overrides = io.IOOverrides.current;
    if (overrides == null) {
      return io.FileSystemEntity._identicalSync(path1, path2);
    }
    return overrides.fseIdenticalSync(path1, path2);
  }
  static get isWatchSupported() {
    let overrides = io.IOOverrides.current;
    if (overrides == null) {
      return io._FileSystemWatcher.isSupported;
    }
    return overrides.fsWatchIsSupported();
  }
  static _toUtf8Array(s) {
    return io.FileSystemEntity._toNullTerminatedUtf8Array(typed_data.Uint8List.as(convert.utf8.encode(s)));
  }
  static _toNullTerminatedUtf8Array(l) {
    if (l == null) {
      return null;
    }
    if (dart.test(l[$isNotEmpty]) && l[$last] !== 0) {
      let tmp = _native_typed_data.NativeUint8List.new(dart.notNull(l[$length]) + 1);
      tmp[$setRange](0, l[$length], l);
      return tmp;
    } else {
      return l;
    }
  }
  static _toStringFromUtf8Array(l) {
    if (l == null) {
      return "";
    }
    let nonNullTerminated = l;
    if (l[$last] === 0) {
      nonNullTerminated = typed_data.Uint8List.view(l[$buffer], l[$offsetInBytes], dart.notNull(l[$length]) - 1);
    }
    return convert.utf8.decode(nonNullTerminated, {allowMalformed: true});
  }
  static type(path, opts) {
    let followLinks = opts && 'followLinks' in opts ? opts.followLinks : true;
    return io.FileSystemEntity._getType(io.FileSystemEntity._toUtf8Array(path), followLinks);
  }
  static typeSync(path, opts) {
    let followLinks = opts && 'followLinks' in opts ? opts.followLinks : true;
    return io.FileSystemEntity._getTypeSync(io.FileSystemEntity._toUtf8Array(path), followLinks);
  }
  static isLink(path) {
    return io.FileSystemEntity._isLinkRaw(io.FileSystemEntity._toUtf8Array(path));
  }
  static _isLinkRaw(rawPath) {
    return io.FileSystemEntity._getType(rawPath, false).then(core.bool, dart.fn(type => dart.equals(type, io.FileSystemEntityType.link), FileSystemEntityTypeLToboolL()));
  }
  static isFile(path) {
    return io.FileSystemEntity._getType(io.FileSystemEntity._toUtf8Array(path), true).then(core.bool, dart.fn(type => dart.equals(type, io.FileSystemEntityType.file), FileSystemEntityTypeLToboolL()));
  }
  static isDirectory(path) {
    return io.FileSystemEntity._getType(io.FileSystemEntity._toUtf8Array(path), true).then(core.bool, dart.fn(type => dart.equals(type, io.FileSystemEntityType.directory), FileSystemEntityTypeLToboolL()));
  }
  static isLinkSync(path) {
    return io.FileSystemEntity._isLinkRawSync(io.FileSystemEntity._toUtf8Array(path));
  }
  static _isLinkRawSync(rawPath) {
    return dart.equals(io.FileSystemEntity._getTypeSync(typed_data.Uint8List.as(rawPath), false), io.FileSystemEntityType.link);
  }
  static isFileSync(path) {
    return dart.equals(io.FileSystemEntity._getTypeSync(io.FileSystemEntity._toUtf8Array(path), true), io.FileSystemEntityType.file);
  }
  static isDirectorySync(path) {
    return dart.equals(io.FileSystemEntity._getTypeSync(io.FileSystemEntity._toUtf8Array(path), true), io.FileSystemEntityType.directory);
  }
  static _getTypeNative(namespace, rawPath, followLinks) {
    dart.throw(new core.UnsupportedError.new("FileSystemEntity._getType"));
  }
  static _identicalNative(namespace, path1, path2) {
    dart.throw(new core.UnsupportedError.new("FileSystemEntity._identical"));
  }
  static _resolveSymbolicLinks(namespace, rawPath) {
    dart.throw(new core.UnsupportedError.new("FileSystemEntity._resolveSymbolicLinks"));
  }
  static parentOf(path) {
    let rootEnd = -1;
    if (dart.test(io.Platform.isWindows)) {
      if (path[$startsWith](io.FileSystemEntity._absoluteWindowsPathPattern)) {
        rootEnd = path[$indexOf](core.RegExp.new("[/\\\\]"), 2);
        if (rootEnd === -1) return path;
      } else if (path[$startsWith]("\\") || path[$startsWith]("/")) {
        rootEnd = 0;
      }
    } else if (path[$startsWith]("/")) {
      rootEnd = 0;
    }
    let pos = path[$lastIndexOf](io.FileSystemEntity._parentRegExp);
    if (pos > rootEnd) {
      return path[$substring](0, pos + 1);
    } else if (rootEnd > -1) {
      return path[$substring](0, rootEnd + 1);
    } else {
      return ".";
    }
  }
  get parent() {
    return io.Directory.new(io.FileSystemEntity.parentOf(this.path));
  }
  static _getTypeSyncHelper(rawPath, followLinks) {
    let result = io.FileSystemEntity._getTypeNative(io._Namespace._namespace, rawPath, followLinks);
    io.FileSystemEntity._throwIfError(result, "Error getting type of FileSystemEntity");
    return io.FileSystemEntityType._lookup(core.int.as(result));
  }
  static _getTypeSync(rawPath, followLinks) {
    let overrides = io.IOOverrides.current;
    if (overrides == null) {
      return io.FileSystemEntity._getTypeSyncHelper(rawPath, followLinks);
    }
    return overrides.fseGetTypeSync(convert.utf8.decode(rawPath, {allowMalformed: true}), followLinks);
  }
  static _getTypeRequest(rawPath, followLinks) {
    return io._File._dispatchWithNamespace(27, [null, rawPath, followLinks]).then(io.FileSystemEntityType, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "Error getting type", convert.utf8.decode(rawPath, {allowMalformed: true})));
      }
      return io.FileSystemEntityType._lookup(core.int.as(response));
    }, dynamicToFileSystemEntityTypeL()));
  }
  static _getType(rawPath, followLinks) {
    let overrides = io.IOOverrides.current;
    if (overrides == null) {
      return io.FileSystemEntity._getTypeRequest(rawPath, followLinks);
    }
    return overrides.fseGetType(convert.utf8.decode(rawPath, {allowMalformed: true}), followLinks);
  }
  static _throwIfError(result, msg, path = null) {
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new(msg, path, result));
    } else if (core.ArgumentError.is(result)) {
      dart.throw(result);
    }
  }
  static _trimTrailingPathSeparators(path) {
    if (path == null) return path;
    if (dart.test(io.Platform.isWindows)) {
      while (path.length > 1 && (path[$endsWith](io.Platform.pathSeparator) || path[$endsWith]("/"))) {
        path = path[$substring](0, path.length - 1);
      }
    } else {
      while (path.length > 1 && path[$endsWith](io.Platform.pathSeparator)) {
        path = path[$substring](0, path.length - 1);
      }
    }
    return path;
  }
  static _ensureTrailingPathSeparators(path) {
    if (path == null) return path;
    if (path[$isEmpty]) path = ".";
    if (dart.test(io.Platform.isWindows)) {
      while (!path[$endsWith](io.Platform.pathSeparator) && !path[$endsWith]("/")) {
        path = dart.str(path) + dart.str(io.Platform.pathSeparator);
      }
    } else {
      while (!path[$endsWith](io.Platform.pathSeparator)) {
        path = dart.str(path) + dart.str(io.Platform.pathSeparator);
      }
    }
    return path;
  }
};
(io.FileSystemEntity.new = function() {
  this[_path] = null;
  this[_rawPath] = null;
  ;
}).prototype = io.FileSystemEntity.prototype;
dart.addTypeTests(io.FileSystemEntity);
dart.addTypeCaches(io.FileSystemEntity);
dart.setMethodSignature(io.FileSystemEntity, () => ({
  __proto__: dart.getMethods(io.FileSystemEntity.__proto__),
  resolveSymbolicLinks: dart.fnType(async.Future$(core.String), []),
  resolveSymbolicLinksSync: dart.fnType(core.String, []),
  stat: dart.fnType(async.Future$(io.FileStat), []),
  statSync: dart.fnType(io.FileStat, []),
  delete: dart.fnType(async.Future$(io.FileSystemEntity), [], {recursive: core.bool}, {}),
  deleteSync: dart.fnType(dart.void, [], {recursive: core.bool}, {}),
  watch: dart.fnType(async.Stream$(io.FileSystemEvent), [], {events: core.int, recursive: core.bool}, {})
}));
dart.setGetterSignature(io.FileSystemEntity, () => ({
  __proto__: dart.getGetters(io.FileSystemEntity.__proto__),
  uri: core.Uri,
  isAbsolute: core.bool,
  [_absolutePath]: core.String,
  [_rawAbsolutePath]: typed_data.Uint8List,
  parent: io.Directory
}));
dart.setLibraryUri(io.FileSystemEntity, L48);
dart.setFieldSignature(io.FileSystemEntity, () => ({
  __proto__: dart.getFields(io.FileSystemEntity.__proto__),
  [_path$]: dart.fieldType(core.String),
  [_rawPath$]: dart.fieldType(typed_data.Uint8List)
}));
dart.defineLazy(io.FileSystemEntity, {
  /*io.FileSystemEntity._absoluteWindowsPathPattern*/get _absoluteWindowsPathPattern() {
    return core.RegExp.new("^(\\\\\\\\|[a-zA-Z]:[/\\\\])");
  },
  /*io.FileSystemEntity._parentRegExp*/get _parentRegExp() {
    return dart.test(io.Platform.isWindows) ? core.RegExp.new("[^/\\\\][/\\\\]+[^/\\\\]") : core.RegExp.new("[^/]/+[^/]");
  }
}, true);
var _path$0 = dart.privateName(io, "_Directory._path");
var _rawPath$0 = dart.privateName(io, "_Directory._rawPath");
io._Directory = class _Directory extends io.FileSystemEntity {
  get [_path$]() {
    return this[_path$0];
  }
  set [_path$](value) {
    this[_path$0] = value;
  }
  get [_rawPath$]() {
    return this[_rawPath$0];
  }
  set [_rawPath$](value) {
    this[_rawPath$0] = value;
  }
  get path() {
    return this[_path$];
  }
  static _current(namespace) {
    dart.throw(new core.UnsupportedError.new("Directory._current"));
  }
  static _setCurrent(namespace, rawPath) {
    dart.throw(new core.UnsupportedError.new("Directory_SetCurrent"));
  }
  static _createTemp(namespace, rawPath) {
    dart.throw(new core.UnsupportedError.new("Directory._createTemp"));
  }
  static _systemTemp(namespace) {
    dart.throw(new core.UnsupportedError.new("Directory._systemTemp"));
  }
  static _exists(namespace, rawPath) {
    dart.throw(new core.UnsupportedError.new("Directory._exists"));
  }
  static _create(namespace, rawPath) {
    dart.throw(new core.UnsupportedError.new("Directory._create"));
  }
  static _deleteNative(namespace, rawPath, recursive) {
    dart.throw(new core.UnsupportedError.new("Directory._deleteNative"));
  }
  static _rename(namespace, rawPath, newPath) {
    dart.throw(new core.UnsupportedError.new("Directory._rename"));
  }
  static _fillWithDirectoryListing(namespace, list, rawPath, recursive, followLinks) {
    dart.throw(new core.UnsupportedError.new("Directory._fillWithDirectoryListing"));
  }
  static get current() {
    let result = io._Directory._current(io._Namespace._namespace);
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("Getting current working directory failed", "", result));
    }
    return new io._Directory.new(core.String.as(result));
  }
  static set current(path) {
    let _rawPath = null;
    if (io._Directory.is(path)) {
      _rawPath = path[_rawPath$];
    } else if (io.Directory.is(path)) {
      _rawPath = io.FileSystemEntity._toUtf8Array(path.path);
    } else if (typeof path == 'string') {
      _rawPath = io.FileSystemEntity._toUtf8Array(path);
    } else {
      dart.throw(new core.ArgumentError.new(dart.str(core.Error.safeToString(path)) + " is not a String or" + " Directory"));
    }
    if (!dart.test(io._EmbedderConfig._mayChdir)) {
      dart.throw(new core.UnsupportedError.new("This embedder disallows setting Directory.current"));
    }
    let result = io._Directory._setCurrent(io._Namespace._namespace, _rawPath);
    if (core.ArgumentError.is(result)) dart.throw(result);
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("Setting current working directory failed", core.String.as(path), result));
    }
  }
  get uri() {
    return core._Uri.directory(this.path);
  }
  exists() {
    return io._File._dispatchWithNamespace(36, [null, this[_rawPath$]]).then(core.bool, dart.fn(response => {
      if (dart.test(this[_isErrorResponse](response))) {
        dart.throw(this[_exceptionOrErrorFromResponse](response, "Exists failed"));
      }
      return dart.equals(response, 1);
    }, dynamicToboolL()));
  }
  existsSync() {
    let result = io._Directory._exists(io._Namespace._namespace, this[_rawPath$]);
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("Exists failed", this.path, result));
    }
    return dart.equals(result, 1);
  }
  get absolute() {
    return io.Directory.new(this[_absolutePath]);
  }
  create(opts) {
    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
    if (dart.test(recursive)) {
      return this.exists().then(io.Directory, dart.fn(exists => {
        if (dart.test(exists)) return this;
        if (this.path != this.parent.path) {
          return this.parent.create({recursive: true}).then(io.Directory, dart.fn(_ => this.create(), DirectoryLToFutureLOfDirectoryL()));
        } else {
          return this.create();
        }
      }, boolLToFutureOrLOfDirectoryL()));
    } else {
      return io._File._dispatchWithNamespace(34, [null, this[_rawPath$]]).then(io.Directory, dart.fn(response => {
        if (dart.test(this[_isErrorResponse](response))) {
          dart.throw(this[_exceptionOrErrorFromResponse](response, "Creation failed"));
        }
        return this;
      }, dynamicTo_DirectoryL()));
    }
  }
  createSync(opts) {
    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
    if (dart.test(recursive)) {
      if (dart.test(this.existsSync())) return;
      if (this.path != this.parent.path) {
        this.parent.createSync({recursive: true});
      }
    }
    let result = io._Directory._create(io._Namespace._namespace, this[_rawPath$]);
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("Creation failed", this.path, result));
    }
  }
  static get systemTemp() {
    return io.Directory.new(io._Directory._systemTemp(io._Namespace._namespace));
  }
  createTemp(prefix = null) {
    prefix == null ? prefix = "" : null;
    if (this.path === "") {
      dart.throw(new core.ArgumentError.new("Directory.createTemp called with an empty path. " + "To use the system temp directory, use Directory.systemTemp"));
    }
    let fullPrefix = null;
    if (this.path[$endsWith]("/") || dart.test(io.Platform.isWindows) && this.path[$endsWith]("\\")) {
      fullPrefix = dart.str(this.path) + dart.str(prefix);
    } else {
      fullPrefix = dart.str(this.path) + dart.str(io.Platform.pathSeparator) + dart.str(prefix);
    }
    return io._File._dispatchWithNamespace(37, [null, io.FileSystemEntity._toUtf8Array(fullPrefix)]).then(io.Directory, dart.fn(response => {
      if (dart.test(this[_isErrorResponse](response))) {
        dart.throw(this[_exceptionOrErrorFromResponse](response, "Creation of temporary directory failed"));
      }
      return io.Directory.new(core.String.as(response));
    }, dynamicToDirectoryL()));
  }
  createTempSync(prefix = null) {
    prefix == null ? prefix = "" : null;
    if (this.path === "") {
      dart.throw(new core.ArgumentError.new("Directory.createTemp called with an empty path. " + "To use the system temp directory, use Directory.systemTemp"));
    }
    let fullPrefix = null;
    if (this.path[$endsWith]("/") || dart.test(io.Platform.isWindows) && this.path[$endsWith]("\\")) {
      fullPrefix = dart.str(this.path) + dart.str(prefix);
    } else {
      fullPrefix = dart.str(this.path) + dart.str(io.Platform.pathSeparator) + dart.str(prefix);
    }
    let result = io._Directory._createTemp(io._Namespace._namespace, io.FileSystemEntity._toUtf8Array(fullPrefix));
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("Creation of temporary directory failed", fullPrefix, result));
    }
    return io.Directory.new(core.String.as(result));
  }
  [_delete](opts) {
    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
    return io._File._dispatchWithNamespace(35, [null, this[_rawPath$], recursive]).then(io.Directory, dart.fn(response => {
      if (dart.test(this[_isErrorResponse](response))) {
        dart.throw(this[_exceptionOrErrorFromResponse](response, "Deletion failed"));
      }
      return this;
    }, dynamicTo_DirectoryL()));
  }
  [_deleteSync](opts) {
    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
    let result = io._Directory._deleteNative(io._Namespace._namespace, this[_rawPath$], recursive);
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("Deletion failed", this.path, result));
    }
  }
  rename(newPath) {
    return io._File._dispatchWithNamespace(41, [null, this[_rawPath$], newPath]).then(io.Directory, dart.fn(response => {
      if (dart.test(this[_isErrorResponse](response))) {
        dart.throw(this[_exceptionOrErrorFromResponse](response, "Rename failed"));
      }
      return io.Directory.new(newPath);
    }, dynamicToDirectoryL()));
  }
  renameSync(newPath) {
    if (!(typeof newPath == 'string')) {
      dart.throw(new core.ArgumentError.new());
    }
    let result = io._Directory._rename(io._Namespace._namespace, this[_rawPath$], newPath);
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("Rename failed", this.path, result));
    }
    return io.Directory.new(newPath);
  }
  list(opts) {
    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
    let followLinks = opts && 'followLinks' in opts ? opts.followLinks : true;
    return new io._AsyncDirectoryLister.new(io.FileSystemEntity._toUtf8Array(io.FileSystemEntity._ensureTrailingPathSeparators(this.path)), recursive, followLinks).stream;
  }
  listSync(opts) {
    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
    let followLinks = opts && 'followLinks' in opts ? opts.followLinks : true;
    if (!(typeof recursive == 'boolean') || !(typeof followLinks == 'boolean')) {
      dart.throw(new core.ArgumentError.new());
    }
    let result = JSArrayOfFileSystemEntityL().of([]);
    io._Directory._fillWithDirectoryListing(io._Namespace._namespace, result, io.FileSystemEntity._toUtf8Array(io.FileSystemEntity._ensureTrailingPathSeparators(this.path)), recursive, followLinks);
    return result;
  }
  toString() {
    return "Directory: '" + dart.str(this.path) + "'";
  }
  [_isErrorResponse](response) {
    return core.List.is(response) && !dart.equals(response[$_get](0), 0);
  }
  [_exceptionOrErrorFromResponse](response, message) {
    if (!dart.test(this[_isErrorResponse](response))) dart.assertFailed(null, L50, 269, 12, "_isErrorResponse(response)");
    switch (dart.dsend(response, '_get', [0])) {
      case 1:
      {
        return new core.ArgumentError.new();
      }
      case 2:
      {
        let err = new io.OSError.new(core.String.as(dart.dsend(response, '_get', [2])), core.int.as(dart.dsend(response, '_get', [1])));
        return new io.FileSystemException.new(message, this.path, err);
      }
      default:
      {
        return core.Exception.new("Unknown error");
      }
    }
  }
};
(io._Directory.new = function(path) {
  this[_path$0] = null;
  this[_rawPath$0] = null;
  io._Directory.__proto__.new.call(this);
  core.ArgumentError.checkNotNull(core.String, path, "path");
  this[_path$] = path;
  this[_rawPath$] = io.FileSystemEntity._toUtf8Array(this[_path$]);
}).prototype = io._Directory.prototype;
(io._Directory.fromRawPath = function(rawPath) {
  this[_path$0] = null;
  this[_rawPath$0] = null;
  io._Directory.__proto__.new.call(this);
  if (rawPath == null) {
    dart.throw(new core.ArgumentError.new("rawPath cannot be null"));
  }
  this[_rawPath$] = io.FileSystemEntity._toNullTerminatedUtf8Array(rawPath);
  this[_path$] = io.FileSystemEntity._toStringFromUtf8Array(rawPath);
}).prototype = io._Directory.prototype;
dart.addTypeTests(io._Directory);
dart.addTypeCaches(io._Directory);
io._Directory[dart.implements] = () => [io.Directory];
dart.setMethodSignature(io._Directory, () => ({
  __proto__: dart.getMethods(io._Directory.__proto__),
  exists: dart.fnType(async.Future$(core.bool), []),
  existsSync: dart.fnType(core.bool, []),
  create: dart.fnType(async.Future$(io.Directory), [], {recursive: core.bool}, {}),
  createSync: dart.fnType(dart.void, [], {recursive: core.bool}, {}),
  createTemp: dart.fnType(async.Future$(io.Directory), [], [core.String]),
  createTempSync: dart.fnType(io.Directory, [], [core.String]),
  [_delete]: dart.fnType(async.Future$(io.Directory), [], {recursive: core.bool}, {}),
  [_deleteSync]: dart.fnType(dart.void, [], {recursive: core.bool}, {}),
  rename: dart.fnType(async.Future$(io.Directory), [core.String]),
  renameSync: dart.fnType(io.Directory, [core.String]),
  list: dart.fnType(async.Stream$(io.FileSystemEntity), [], {followLinks: core.bool, recursive: core.bool}, {}),
  listSync: dart.fnType(core.List$(io.FileSystemEntity), [], {followLinks: core.bool, recursive: core.bool}, {}),
  [_isErrorResponse]: dart.fnType(core.bool, [dart.dynamic]),
  [_exceptionOrErrorFromResponse]: dart.fnType(dart.dynamic, [dart.dynamic, core.String])
}));
dart.setGetterSignature(io._Directory, () => ({
  __proto__: dart.getGetters(io._Directory.__proto__),
  path: core.String,
  absolute: io.Directory
}));
dart.setLibraryUri(io._Directory, L48);
dart.setFieldSignature(io._Directory, () => ({
  __proto__: dart.getFields(io._Directory.__proto__),
  [_path$]: dart.fieldType(core.String),
  [_rawPath$]: dart.fieldType(typed_data.Uint8List)
}));
dart.defineExtensionMethods(io._Directory, ['toString']);
io._AsyncDirectoryListerOps = class _AsyncDirectoryListerOps extends core.Object {
  static new(pointer) {
    dart.throw(new core.UnsupportedError.new("Directory._list"));
  }
};
(io._AsyncDirectoryListerOps[dart.mixinNew] = function() {
}).prototype = io._AsyncDirectoryListerOps.prototype;
dart.addTypeTests(io._AsyncDirectoryListerOps);
dart.addTypeCaches(io._AsyncDirectoryListerOps);
dart.setLibraryUri(io._AsyncDirectoryListerOps, L48);
var _ops = dart.privateName(io, "_ops");
var _pointer = dart.privateName(io, "_pointer");
var _cleanup = dart.privateName(io, "_cleanup");
io._AsyncDirectoryLister = class _AsyncDirectoryLister extends core.Object {
  [_pointer]() {
    return this[_ops] == null ? null : this[_ops].getPointer();
  }
  get stream() {
    return this.controller.stream;
  }
  onListen() {
    io._File._dispatchWithNamespace(38, [null, this.rawPath, this.recursive, this.followLinks]).then(core.Null, dart.fn(response => {
      if (core.int.is(response)) {
        this[_ops] = io._AsyncDirectoryListerOps.new(response);
        this.next();
      } else if (core.Error.is(response)) {
        this.controller.addError(response, response[$stackTrace]);
        this.close();
      } else {
        this.error(response);
        this.close();
      }
    }, dynamicToNullN()));
  }
  onResume() {
    if (!dart.test(this.nextRunning)) {
      this.next();
    }
  }
  onCancel() {
    this.canceled = true;
    if (!dart.test(this.nextRunning)) {
      this.close();
    }
    return this.closeCompleter.future;
  }
  next() {
    if (dart.test(this.canceled)) {
      this.close();
      return;
    }
    if (dart.test(this.controller.isPaused) || dart.test(this.nextRunning)) {
      return;
    }
    let pointer = this[_pointer]();
    if (pointer == null) {
      return;
    }
    this.nextRunning = true;
    io._IOService._dispatch(39, [pointer]).then(core.Null, dart.fn(result => {
      let t76;
      this.nextRunning = false;
      if (core.List.is(result)) {
        this.next();
        if (!(result[$length][$modulo](2) === 0)) dart.assertFailed(null, L50, 378, 16, "result.length % 2 == 0");
        for (let i = 0; i < dart.notNull(result[$length]); i = i + 1) {
          if (!(i[$modulo](2) === 0)) dart.assertFailed(null, L50, 380, 18, "i % 2 == 0");
          switch (result[$_get]((t76 = i, i = t76 + 1, t76))) {
            case 0:
            {
              this.controller.add(io.File.fromRawPath(typed_data.Uint8List.as(result[$_get](i))));
              break;
            }
            case 1:
            {
              this.controller.add(io.Directory.fromRawPath(typed_data.Uint8List.as(result[$_get](i))));
              break;
            }
            case 2:
            {
              this.controller.add(io.Link.fromRawPath(typed_data.Uint8List.as(result[$_get](i))));
              break;
            }
            case 3:
            {
              this.error(result[$_get](i));
              break;
            }
            case 4:
            {
              this.canceled = true;
              return;
            }
          }
        }
      } else {
        this.controller.addError(new io.FileSystemException.new("Internal error"));
      }
    }, dynamicToNullN()));
  }
  [_cleanup]() {
    this.controller.close();
    this.closeCompleter.complete();
    this[_ops] = null;
  }
  close() {
    if (dart.test(this.closed)) {
      return;
    }
    if (dart.test(this.nextRunning)) {
      return;
    }
    this.closed = true;
    let pointer = this[_pointer]();
    if (pointer == null) {
      this[_cleanup]();
    } else {
      io._IOService._dispatch(40, [pointer]).whenComplete(dart.bind(this, _cleanup));
    }
  }
  error(message) {
    let errorType = dart.dsend(dart.dsend(message, '_get', [2]), '_get', [0]);
    if (dart.equals(errorType, 1)) {
      this.controller.addError(new core.ArgumentError.new());
    } else if (dart.equals(errorType, 2)) {
      let responseErrorInfo = dart.dsend(message, '_get', [2]);
      let err = new io.OSError.new(core.String.as(dart.dsend(responseErrorInfo, '_get', [2])), core.int.as(dart.dsend(responseErrorInfo, '_get', [1])));
      let errorPath = dart.dsend(message, '_get', [1]);
      if (errorPath == null) {
        errorPath = convert.utf8.decode(this.rawPath, {allowMalformed: true});
      } else if (typed_data.Uint8List.is(errorPath)) {
        errorPath = convert.utf8.decode(ListOfintL().as(dart.dsend(message, '_get', [1])), {allowMalformed: true});
      }
      this.controller.addError(new io.FileSystemException.new("Directory listing failed", core.String.as(errorPath), err));
    } else {
      this.controller.addError(new io.FileSystemException.new("Internal error"));
    }
  }
};
(io._AsyncDirectoryLister.new = function(rawPath, recursive, followLinks) {
  this.controller = null;
  this.canceled = false;
  this.nextRunning = false;
  this.closed = false;
  this[_ops] = null;
  this.closeCompleter = async.Completer.new();
  this.rawPath = rawPath;
  this.recursive = recursive;
  this.followLinks = followLinks;
  this.controller = StreamControllerOfFileSystemEntityL().new({onListen: dart.bind(this, 'onListen'), onResume: dart.bind(this, 'onResume'), onCancel: dart.bind(this, 'onCancel'), sync: true});
}).prototype = io._AsyncDirectoryLister.prototype;
dart.addTypeTests(io._AsyncDirectoryLister);
dart.addTypeCaches(io._AsyncDirectoryLister);
dart.setMethodSignature(io._AsyncDirectoryLister, () => ({
  __proto__: dart.getMethods(io._AsyncDirectoryLister.__proto__),
  [_pointer]: dart.fnType(core.int, []),
  onListen: dart.fnType(dart.void, []),
  onResume: dart.fnType(dart.void, []),
  onCancel: dart.fnType(async.Future, []),
  next: dart.fnType(dart.void, []),
  [_cleanup]: dart.fnType(dart.void, []),
  close: dart.fnType(dart.void, []),
  error: dart.fnType(dart.void, [dart.dynamic])
}));
dart.setGetterSignature(io._AsyncDirectoryLister, () => ({
  __proto__: dart.getGetters(io._AsyncDirectoryLister.__proto__),
  stream: async.Stream$(io.FileSystemEntity)
}));
dart.setLibraryUri(io._AsyncDirectoryLister, L48);
dart.setFieldSignature(io._AsyncDirectoryLister, () => ({
  __proto__: dart.getFields(io._AsyncDirectoryLister.__proto__),
  rawPath: dart.finalFieldType(typed_data.Uint8List),
  recursive: dart.finalFieldType(core.bool),
  followLinks: dart.finalFieldType(core.bool),
  controller: dart.fieldType(async.StreamController$(io.FileSystemEntity)),
  canceled: dart.fieldType(core.bool),
  nextRunning: dart.fieldType(core.bool),
  closed: dart.fieldType(core.bool),
  [_ops]: dart.fieldType(io._AsyncDirectoryListerOps),
  closeCompleter: dart.fieldType(async.Completer)
}));
dart.defineLazy(io._AsyncDirectoryLister, {
  /*io._AsyncDirectoryLister.listFile*/get listFile() {
    return 0;
  },
  /*io._AsyncDirectoryLister.listDirectory*/get listDirectory() {
    return 1;
  },
  /*io._AsyncDirectoryLister.listLink*/get listLink() {
    return 2;
  },
  /*io._AsyncDirectoryLister.listError*/get listError() {
    return 3;
  },
  /*io._AsyncDirectoryLister.listDone*/get listDone() {
    return 4;
  },
  /*io._AsyncDirectoryLister.responseType*/get responseType() {
    return 0;
  },
  /*io._AsyncDirectoryLister.responsePath*/get responsePath() {
    return 1;
  },
  /*io._AsyncDirectoryLister.responseComplete*/get responseComplete() {
    return 1;
  },
  /*io._AsyncDirectoryLister.responseError*/get responseError() {
    return 2;
  }
}, true);
io._EmbedderConfig = class _EmbedderConfig extends core.Object {};
(io._EmbedderConfig.new = function() {
  ;
}).prototype = io._EmbedderConfig.prototype;
dart.addTypeTests(io._EmbedderConfig);
dart.addTypeCaches(io._EmbedderConfig);
dart.setLibraryUri(io._EmbedderConfig, L48);
dart.defineLazy(io._EmbedderConfig, {
  /*io._EmbedderConfig._mayChdir*/get _mayChdir() {
    return true;
  },
  set _mayChdir(_) {},
  /*io._EmbedderConfig._mayExit*/get _mayExit() {
    return true;
  },
  set _mayExit(_) {},
  /*io._EmbedderConfig._maySetEchoMode*/get _maySetEchoMode() {
    return true;
  },
  set _maySetEchoMode(_) {},
  /*io._EmbedderConfig._maySetLineMode*/get _maySetLineMode() {
    return true;
  },
  set _maySetLineMode(_) {},
  /*io._EmbedderConfig._maySleep*/get _maySleep() {
    return true;
  },
  set _maySleep(_) {}
}, true);
io._EventHandler = class _EventHandler extends core.Object {
  static _sendData(sender, sendPort, data) {
    dart.throw(new core.UnsupportedError.new("EventHandler._sendData"));
  }
};
(io._EventHandler.new = function() {
  ;
}).prototype = io._EventHandler.prototype;
dart.addTypeTests(io._EventHandler);
dart.addTypeCaches(io._EventHandler);
dart.setLibraryUri(io._EventHandler, L48);
var _mode = dart.privateName(io, "_mode");
var _mode$ = dart.privateName(io, "FileMode._mode");
var C110;
var C111;
var C112;
var C113;
var C114;
io.FileMode = class FileMode extends core.Object {
  get [_mode]() {
    return this[_mode$];
  }
  set [_mode](value) {
    super[_mode] = value;
  }
};
(io.FileMode._internal = function(_mode) {
  this[_mode$] = _mode;
  ;
}).prototype = io.FileMode.prototype;
dart.addTypeTests(io.FileMode);
dart.addTypeCaches(io.FileMode);
dart.setLibraryUri(io.FileMode, L48);
dart.setFieldSignature(io.FileMode, () => ({
  __proto__: dart.getFields(io.FileMode.__proto__),
  [_mode]: dart.finalFieldType(core.int)
}));
dart.defineLazy(io.FileMode, {
  /*io.FileMode.read*/get read() {
    return C110 || CT.C110;
  },
  /*io.FileMode.READ*/get READ() {
    return C110 || CT.C110;
  },
  /*io.FileMode.write*/get write() {
    return C111 || CT.C111;
  },
  /*io.FileMode.WRITE*/get WRITE() {
    return C111 || CT.C111;
  },
  /*io.FileMode.append*/get append() {
    return C112 || CT.C112;
  },
  /*io.FileMode.APPEND*/get APPEND() {
    return C112 || CT.C112;
  },
  /*io.FileMode.writeOnly*/get writeOnly() {
    return C113 || CT.C113;
  },
  /*io.FileMode.WRITE_ONLY*/get WRITE_ONLY() {
    return C113 || CT.C113;
  },
  /*io.FileMode.writeOnlyAppend*/get writeOnlyAppend() {
    return C114 || CT.C114;
  },
  /*io.FileMode.WRITE_ONLY_APPEND*/get WRITE_ONLY_APPEND() {
    return C114 || CT.C114;
  }
}, true);
var _type = dart.privateName(io, "_type");
var _type$1 = dart.privateName(io, "FileLock._type");
var C115;
var C116;
var C117;
var C118;
io.FileLock = class FileLock extends core.Object {
  get [_type]() {
    return this[_type$1];
  }
  set [_type](value) {
    super[_type] = value;
  }
};
(io.FileLock._internal = function(_type) {
  this[_type$1] = _type;
  ;
}).prototype = io.FileLock.prototype;
dart.addTypeTests(io.FileLock);
dart.addTypeCaches(io.FileLock);
dart.setLibraryUri(io.FileLock, L48);
dart.setFieldSignature(io.FileLock, () => ({
  __proto__: dart.getFields(io.FileLock.__proto__),
  [_type]: dart.finalFieldType(core.int)
}));
dart.defineLazy(io.FileLock, {
  /*io.FileLock.shared*/get shared() {
    return C115 || CT.C115;
  },
  /*io.FileLock.SHARED*/get SHARED() {
    return C115 || CT.C115;
  },
  /*io.FileLock.exclusive*/get exclusive() {
    return C116 || CT.C116;
  },
  /*io.FileLock.EXCLUSIVE*/get EXCLUSIVE() {
    return C116 || CT.C116;
  },
  /*io.FileLock.blockingShared*/get blockingShared() {
    return C117 || CT.C117;
  },
  /*io.FileLock.BLOCKING_SHARED*/get BLOCKING_SHARED() {
    return C117 || CT.C117;
  },
  /*io.FileLock.blockingExclusive*/get blockingExclusive() {
    return C118 || CT.C118;
  },
  /*io.FileLock.BLOCKING_EXCLUSIVE*/get BLOCKING_EXCLUSIVE() {
    return C118 || CT.C118;
  }
}, true);
io.File = class File extends core.Object {
  static new(path) {
    let overrides = io.IOOverrides.current;
    if (overrides == null) {
      return new io._File.new(path);
    }
    return overrides.createFile(path);
  }
  static fromUri(uri) {
    return io.File.new(uri.toFilePath());
  }
  static fromRawPath(rawPath) {
    return new io._File.fromRawPath(rawPath);
  }
};
(io.File[dart.mixinNew] = function() {
}).prototype = io.File.prototype;
dart.addTypeTests(io.File);
dart.addTypeCaches(io.File);
io.File[dart.implements] = () => [io.FileSystemEntity];
dart.setLibraryUri(io.File, L48);
io.RandomAccessFile = class RandomAccessFile extends core.Object {};
(io.RandomAccessFile.new = function() {
  ;
}).prototype = io.RandomAccessFile.prototype;
dart.addTypeTests(io.RandomAccessFile);
dart.addTypeCaches(io.RandomAccessFile);
dart.setLibraryUri(io.RandomAccessFile, L48);
var message$3 = dart.privateName(io, "FileSystemException.message");
var path$ = dart.privateName(io, "FileSystemException.path");
var osError$ = dart.privateName(io, "FileSystemException.osError");
io.FileSystemException = class FileSystemException extends core.Object {
  get message() {
    return this[message$3];
  }
  set message(value) {
    super.message = value;
  }
  get path() {
    return this[path$];
  }
  set path(value) {
    super.path = value;
  }
  get osError() {
    return this[osError$];
  }
  set osError(value) {
    super.osError = value;
  }
  toString() {
    let sb = new core.StringBuffer.new();
    sb.write("FileSystemException");
    if (this.message[$isNotEmpty]) {
      sb.write(": " + dart.str(this.message));
      if (this.path != null) {
        sb.write(", path = '" + dart.str(this.path) + "'");
      }
      if (this.osError != null) {
        sb.write(" (" + dart.str(this.osError) + ")");
      }
    } else if (this.osError != null) {
      sb.write(": " + dart.str(this.osError));
      if (this.path != null) {
        sb.write(", path = '" + dart.str(this.path) + "'");
      }
    } else if (this.path != null) {
      sb.write(": " + dart.str(this.path));
    }
    return sb.toString();
  }
};
(io.FileSystemException.new = function(message = "", path = "", osError = null) {
  this[message$3] = message;
  this[path$] = path;
  this[osError$] = osError;
  ;
}).prototype = io.FileSystemException.prototype;
dart.addTypeTests(io.FileSystemException);
dart.addTypeCaches(io.FileSystemException);
io.FileSystemException[dart.implements] = () => [io.IOException];
dart.setLibraryUri(io.FileSystemException, L48);
dart.setFieldSignature(io.FileSystemException, () => ({
  __proto__: dart.getFields(io.FileSystemException.__proto__),
  message: dart.finalFieldType(core.String),
  path: dart.finalFieldType(core.String),
  osError: dart.finalFieldType(io.OSError)
}));
dart.defineExtensionMethods(io.FileSystemException, ['toString']);
var _controller = dart.privateName(io, "_controller");
var _openedFile = dart.privateName(io, "_openedFile");
var _closeCompleter = dart.privateName(io, "_closeCompleter");
var _unsubscribed = dart.privateName(io, "_unsubscribed");
var _readInProgress = dart.privateName(io, "_readInProgress");
var _atEnd = dart.privateName(io, "_atEnd");
var _position$ = dart.privateName(io, "_position");
var _end$ = dart.privateName(io, "_end");
var _setupController = dart.privateName(io, "_setupController");
var _start$1 = dart.privateName(io, "_start");
var _readBlock = dart.privateName(io, "_readBlock");
var _closeFile = dart.privateName(io, "_closeFile");
io._FileStream = class _FileStream extends async.Stream$(core.List$(core.int)) {
  listen(onData, opts) {
    let onError = opts && 'onError' in opts ? opts.onError : null;
    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
    this[_setupController]();
    return this[_controller].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
  }
  [_setupController]() {
    this[_controller] = StreamControllerOfUint8ListL().new({sync: true, onListen: dart.bind(this, _start$1), onResume: dart.bind(this, _readBlock), onCancel: dart.fn(() => {
        this[_unsubscribed] = true;
        return this[_closeFile]();
      }, VoidToFutureL())});
  }
  [_closeFile]() {
    if (dart.test(this[_readInProgress]) || dart.test(this[_closed])) {
      return this[_closeCompleter].future;
    }
    this[_closed] = true;
    const done = () => {
      this[_closeCompleter].complete();
      this[_controller].close();
    };
    dart.fn(done, VoidTovoid());
    this[_openedFile].close().catchError(dart.bind(this[_controller], 'addError')).whenComplete(done);
    return this[_closeCompleter].future;
  }
  [_readBlock]() {
    if (dart.test(this[_readInProgress])) return;
    if (dart.test(this[_atEnd])) {
      this[_closeFile]();
      return;
    }
    this[_readInProgress] = true;
    let readBytes = 65536;
    if (this[_end$] != null) {
      readBytes = math.min(core.int, readBytes, dart.notNull(this[_end$]) - dart.notNull(this[_position$]));
      if (readBytes < 0) {
        this[_readInProgress] = false;
        if (!dart.test(this[_unsubscribed])) {
          this[_controller].addError(new core.RangeError.new("Bad end position: " + dart.str(this[_end$])));
          this[_closeFile]();
          this[_unsubscribed] = true;
        }
        return;
      }
    }
    this[_openedFile].read(readBytes).then(core.Null, dart.fn(block => {
      this[_readInProgress] = false;
      if (dart.test(this[_unsubscribed])) {
        this[_closeFile]();
        return;
      }
      this[_position$] = dart.notNull(this[_position$]) + dart.notNull(block[$length]);
      if (dart.notNull(block[$length]) < readBytes || this[_end$] != null && this[_position$] == this[_end$]) {
        this[_atEnd] = true;
      }
      if (!dart.test(this[_atEnd]) && !dart.test(this[_controller].isPaused)) {
        this[_readBlock]();
      }
      this[_controller].add(block);
      if (dart.test(this[_atEnd])) {
        this[_closeFile]();
      }
    }, Uint8ListLToNullN())).catchError(dart.fn((e, s) => {
      if (!dart.test(this[_unsubscribed])) {
        this[_controller].addError(e, core.StackTrace.as(s));
        this[_closeFile]();
        this[_unsubscribed] = true;
      }
    }, dynamicAnddynamicToNullN()));
  }
  [_start$1]() {
    if (dart.notNull(this[_position$]) < 0) {
      this[_controller].addError(new core.RangeError.new("Bad start position: " + dart.str(this[_position$])));
      this[_controller].close();
      this[_closeCompleter].complete();
      return;
    }
    const onReady = file => {
      this[_openedFile] = file;
      this[_readInProgress] = false;
      this[_readBlock]();
    };
    dart.fn(onReady, RandomAccessFileLTovoid());
    const onOpenFile = file => {
      if (dart.notNull(this[_position$]) > 0) {
        file.setPosition(this[_position$]).then(dart.void, onReady, {onError: dart.fn((e, s) => {
            this[_controller].addError(e, core.StackTrace.as(s));
            this[_readInProgress] = false;
            this[_closeFile]();
          }, dynamicAnddynamicToNullN())});
      } else {
        onReady(file);
      }
    };
    dart.fn(onOpenFile, RandomAccessFileLTovoid());
    const openFailed = (error, stackTrace) => {
      this[_controller].addError(error, core.StackTrace.as(stackTrace));
      this[_controller].close();
      this[_closeCompleter].complete();
    };
    dart.fn(openFailed, dynamicAnddynamicTovoid());
    if (this[_path$] != null) {
      io.File.new(this[_path$]).open({mode: io.FileMode.read}).then(dart.void, onOpenFile, {onError: openFailed});
    } else {
      try {
        onOpenFile(io._File._openStdioSync(0));
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        openFailed(e, s);
      }
    }
  }
};
(io._FileStream.new = function(_path, _position, _end) {
  this[_controller] = null;
  this[_openedFile] = null;
  this[_closeCompleter] = async.Completer.new();
  this[_unsubscribed] = false;
  this[_readInProgress] = true;
  this[_closed] = false;
  this[_atEnd] = false;
  this[_path$] = _path;
  this[_position$] = _position;
  this[_end$] = _end;
  io._FileStream.__proto__.new.call(this);
  this[_position$] == null ? this[_position$] = 0 : null;
}).prototype = io._FileStream.prototype;
(io._FileStream.forStdin = function() {
  this[_controller] = null;
  this[_openedFile] = null;
  this[_closeCompleter] = async.Completer.new();
  this[_unsubscribed] = false;
  this[_readInProgress] = true;
  this[_closed] = false;
  this[_atEnd] = false;
  this[_end$] = null;
  this[_path$] = null;
  this[_position$] = 0;
  io._FileStream.__proto__.new.call(this);
  ;
}).prototype = io._FileStream.prototype;
dart.addTypeTests(io._FileStream);
dart.addTypeCaches(io._FileStream);
dart.setMethodSignature(io._FileStream, () => ({
  __proto__: dart.getMethods(io._FileStream.__proto__),
  listen: dart.fnType(async.StreamSubscription$(typed_data.Uint8List), [dart.fnType(dart.void, [typed_data.Uint8List])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {}),
  [_setupController]: dart.fnType(dart.void, []),
  [_closeFile]: dart.fnType(async.Future, []),
  [_readBlock]: dart.fnType(dart.void, []),
  [_start$1]: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(io._FileStream, L48);
dart.setFieldSignature(io._FileStream, () => ({
  __proto__: dart.getFields(io._FileStream.__proto__),
  [_controller]: dart.fieldType(async.StreamController$(typed_data.Uint8List)),
  [_path$]: dart.fieldType(core.String),
  [_openedFile]: dart.fieldType(io.RandomAccessFile),
  [_position$]: dart.fieldType(core.int),
  [_end$]: dart.fieldType(core.int),
  [_closeCompleter]: dart.finalFieldType(async.Completer),
  [_unsubscribed]: dart.fieldType(core.bool),
  [_readInProgress]: dart.fieldType(core.bool),
  [_closed]: dart.fieldType(core.bool),
  [_atEnd]: dart.fieldType(core.bool)
}));
var _openFuture = dart.privateName(io, "_openFuture");
var _file$ = dart.privateName(io, "_file");
io._FileStreamConsumer = class _FileStreamConsumer extends async.StreamConsumer$(core.List$(core.int)) {
  addStream(stream) {
    StreamOfListLOfintL().as(stream);
    let completer = CompleterOfFileL().sync();
    this[_openFuture].then(core.Null, dart.fn(openedFile => {
      let _subscription = null;
      function error(e, stackTrace = null) {
        dart.dsend(_subscription, 'cancel', []);
        openedFile.close();
        completer.completeError(e, stackTrace);
      }
      dart.fn(error, dynamicAndStackTraceLTovoid$());
      _subscription = stream.listen(dart.fn(d => {
        dart.dsend(_subscription, 'pause', []);
        try {
          openedFile.writeFrom(d, 0, d[$length]).then(dart.dynamic, dart.fn(_ => dart.dsend(_subscription, 'resume', []), RandomAccessFileLTodynamic()), {onError: error});
        } catch (e$) {
          let e = dart.getThrown(e$);
          let stackTrace = dart.stackTrace(e$);
          error(e, stackTrace);
        }
      }, ListLOfintLToNullN()), {onDone: dart.fn(() => {
          completer.complete(this[_file$]);
        }, VoidToNullN()), onError: error, cancelOnError: true});
    }, RandomAccessFileLToNullN())).catchError(dart.bind(completer, 'completeError'));
    return completer.future;
  }
  close() {
    return this[_openFuture].then(dart.void, dart.fn(openedFile => openedFile.close(), RandomAccessFileLToFutureLOfvoid())).then(io.File, dart.fn(_ => this[_file$], voidToFileL()));
  }
};
(io._FileStreamConsumer.new = function(_file, mode) {
  this[_openFuture] = null;
  this[_file$] = _file;
  this[_openFuture] = this[_file$].open({mode: mode});
}).prototype = io._FileStreamConsumer.prototype;
(io._FileStreamConsumer.fromStdio = function(fd) {
  this[_openFuture] = null;
  this[_file$] = null;
  this[_openFuture] = FutureOfRandomAccessFileL().value(io._File._openStdioSync(fd));
}).prototype = io._FileStreamConsumer.prototype;
dart.addTypeTests(io._FileStreamConsumer);
dart.addTypeCaches(io._FileStreamConsumer);
dart.setMethodSignature(io._FileStreamConsumer, () => ({
  __proto__: dart.getMethods(io._FileStreamConsumer.__proto__),
  addStream: dart.fnType(async.Future$(io.File), [core.Object]),
  close: dart.fnType(async.Future$(io.File), [])
}));
dart.setLibraryUri(io._FileStreamConsumer, L48);
dart.setFieldSignature(io._FileStreamConsumer, () => ({
  __proto__: dart.getFields(io._FileStreamConsumer.__proto__),
  [_file$]: dart.fieldType(io.File),
  [_openFuture]: dart.fieldType(async.Future$(io.RandomAccessFile))
}));
var _tryDecode = dart.privateName(io, "_tryDecode");
var C119;
var _path$1 = dart.privateName(io, "_File._path");
var _rawPath$1 = dart.privateName(io, "_File._rawPath");
io._File = class _File extends io.FileSystemEntity {
  get [_path$]() {
    return this[_path$1];
  }
  set [_path$](value) {
    this[_path$1] = value;
  }
  get [_rawPath$]() {
    return this[_rawPath$1];
  }
  set [_rawPath$](value) {
    this[_rawPath$1] = value;
  }
  get path() {
    return this[_path$];
  }
  static _namespacePointer() {
    return io._Namespace._namespacePointer;
  }
  static _dispatchWithNamespace(request, data) {
    data[$_set](0, io._File._namespacePointer());
    return io._IOService._dispatch(request, data);
  }
  exists() {
    return io._File._dispatchWithNamespace(0, [null, this[_rawPath$]]).then(core.bool, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "Cannot check existence", this.path));
      }
      return FutureOrOfboolL().as(response);
    }, dynamicToFutureOrLOfboolL()));
  }
  static _exists(namespace, rawPath) {
    dart.throw(new core.UnsupportedError.new("File._exists"));
  }
  existsSync() {
    let result = io._File._exists(io._Namespace._namespace, this[_rawPath$]);
    io._File.throwIfError(result, "Cannot check existence of file", this.path);
    return core.bool.as(result);
  }
  get absolute() {
    return io.File.new(this[_absolutePath]);
  }
  create(opts) {
    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
    let result = dart.test(recursive) ? this.parent.create({recursive: true}) : FutureOfNullN().value(null);
    return result.then(dart.dynamic, dart.fn(_ => io._File._dispatchWithNamespace(1, [null, this[_rawPath$]]), DirectoryLToFutureL())).then(io.File, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "Cannot create file", this.path));
      }
      return this;
    }, dynamicTo_FileL()));
  }
  static _create(namespace, rawPath) {
    dart.throw(new core.UnsupportedError.new("File._create"));
  }
  static _createLink(namespace, rawPath, target) {
    dart.throw(new core.UnsupportedError.new("File._createLink"));
  }
  static _linkTarget(namespace, rawPath) {
    dart.throw(new core.UnsupportedError.new("File._linkTarget"));
  }
  createSync(opts) {
    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
    if (dart.test(recursive)) {
      this.parent.createSync({recursive: true});
    }
    let result = io._File._create(io._Namespace._namespace, this[_rawPath$]);
    io._File.throwIfError(result, "Cannot create file", this.path);
  }
  [_delete](opts) {
    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
    if (dart.test(recursive)) {
      return io.Directory.new(this.path).delete({recursive: true}).then(io.File, dart.fn(_ => this, FileSystemEntityLTo_FileL()));
    }
    return io._File._dispatchWithNamespace(2, [null, this[_rawPath$]]).then(io.File, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "Cannot delete file", this.path));
      }
      return this;
    }, dynamicTo_FileL()));
  }
  static _deleteNative(namespace, rawPath) {
    dart.throw(new core.UnsupportedError.new("File._deleteNative"));
  }
  static _deleteLinkNative(namespace, rawPath) {
    dart.throw(new core.UnsupportedError.new("File._deleteLinkNative"));
  }
  [_deleteSync](opts) {
    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
    if (dart.test(recursive)) {
      return io.Directory.fromRawPath(this[_rawPath$]).deleteSync({recursive: true});
    }
    let result = io._File._deleteNative(io._Namespace._namespace, this[_rawPath$]);
    io._File.throwIfError(result, "Cannot delete file", this.path);
  }
  rename(newPath) {
    return io._File._dispatchWithNamespace(3, [null, this[_rawPath$], newPath]).then(io.File, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "Cannot rename file to '" + dart.str(newPath) + "'", this.path));
      }
      return io.File.new(newPath);
    }, dynamicToFileL()));
  }
  static _rename(namespace, oldPath, newPath) {
    dart.throw(new core.UnsupportedError.new("File._rename"));
  }
  static _renameLink(namespace, oldPath, newPath) {
    dart.throw(new core.UnsupportedError.new("File._renameLink"));
  }
  renameSync(newPath) {
    let result = io._File._rename(io._Namespace._namespace, this[_rawPath$], newPath);
    io._File.throwIfError(result, "Cannot rename file to '" + dart.str(newPath) + "'", this.path);
    return io.File.new(newPath);
  }
  copy(newPath) {
    return io._File._dispatchWithNamespace(4, [null, this[_rawPath$], newPath]).then(io.File, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "Cannot copy file to '" + dart.str(newPath) + "'", this.path));
      }
      return io.File.new(newPath);
    }, dynamicToFileL()));
  }
  static _copy(namespace, oldPath, newPath) {
    dart.throw(new core.UnsupportedError.new("File._copy"));
  }
  copySync(newPath) {
    let result = io._File._copy(io._Namespace._namespace, this[_rawPath$], newPath);
    io._File.throwIfError(result, "Cannot copy file to '" + dart.str(newPath) + "'", this.path);
    return io.File.new(newPath);
  }
  open(opts) {
    let mode = opts && 'mode' in opts ? opts.mode : C110 || CT.C110;
    if (!dart.equals(mode, io.FileMode.read) && !dart.equals(mode, io.FileMode.write) && !dart.equals(mode, io.FileMode.append) && !dart.equals(mode, io.FileMode.writeOnly) && !dart.equals(mode, io.FileMode.writeOnlyAppend)) {
      return FutureOfRandomAccessFileL().error(new core.ArgumentError.new("Invalid file mode for this operation"));
    }
    return io._File._dispatchWithNamespace(5, [null, this[_rawPath$], mode[_mode]]).then(io.RandomAccessFile, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "Cannot open file", this.path));
      }
      return new io._RandomAccessFile.new(core.int.as(response), this.path);
    }, dynamicTo_RandomAccessFileL()));
  }
  length() {
    return io._File._dispatchWithNamespace(12, [null, this[_rawPath$]]).then(core.int, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "Cannot retrieve length of file", this.path));
      }
      return FutureOrOfintL().as(response);
    }, dynamicToFutureOrLOfintL()));
  }
  static _lengthFromPath(namespace, rawPath) {
    dart.throw(new core.UnsupportedError.new("File._lengthFromPath"));
  }
  lengthSync() {
    let result = io._File._lengthFromPath(io._Namespace._namespace, this[_rawPath$]);
    io._File.throwIfError(result, "Cannot retrieve length of file", this.path);
    return core.int.as(result);
  }
  lastAccessed() {
    return io._File._dispatchWithNamespace(13, [null, this[_rawPath$]]).then(core.DateTime, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "Cannot retrieve access time", this.path));
      }
      return new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(response));
    }, dynamicToDateTimeL()));
  }
  static _lastAccessed(namespace, rawPath) {
    dart.throw(new core.UnsupportedError.new("File._lastAccessed"));
  }
  lastAccessedSync() {
    let ms = io._File._lastAccessed(io._Namespace._namespace, this[_rawPath$]);
    io._File.throwIfError(ms, "Cannot retrieve access time", this.path);
    return new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(ms));
  }
  setLastAccessed(time) {
    let millis = time.millisecondsSinceEpoch;
    return io._File._dispatchWithNamespace(14, [null, this[_rawPath$], millis]).then(dart.dynamic, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "Cannot set access time", this.path));
      }
      return null;
    }, dynamicToNullN()));
  }
  static _setLastAccessed(namespace, rawPath, millis) {
    dart.throw(new core.UnsupportedError.new("File._setLastAccessed"));
  }
  setLastAccessedSync(time) {
    let millis = time.millisecondsSinceEpoch;
    let result = io._File._setLastAccessed(io._Namespace._namespace, this[_rawPath$], millis);
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("Failed to set file access time", this.path, result));
    }
  }
  lastModified() {
    return io._File._dispatchWithNamespace(15, [null, this[_rawPath$]]).then(core.DateTime, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "Cannot retrieve modification time", this.path));
      }
      return new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(response));
    }, dynamicToDateTimeL()));
  }
  static _lastModified(namespace, rawPath) {
    dart.throw(new core.UnsupportedError.new("File._lastModified"));
  }
  lastModifiedSync() {
    let ms = io._File._lastModified(io._Namespace._namespace, this[_rawPath$]);
    io._File.throwIfError(ms, "Cannot retrieve modification time", this.path);
    return new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(ms));
  }
  setLastModified(time) {
    let millis = time.millisecondsSinceEpoch;
    return io._File._dispatchWithNamespace(16, [null, this[_rawPath$], millis]).then(dart.dynamic, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "Cannot set modification time", this.path));
      }
      return null;
    }, dynamicToNullN()));
  }
  static _setLastModified(namespace, rawPath, millis) {
    dart.throw(new core.UnsupportedError.new("File._setLastModified"));
  }
  setLastModifiedSync(time) {
    let millis = time.millisecondsSinceEpoch;
    let result = io._File._setLastModified(io._Namespace._namespace, this[_rawPath$], millis);
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("Failed to set file modification time", this.path, result));
    }
  }
  static _open(namespace, rawPath, mode) {
    dart.throw(new core.UnsupportedError.new("File._open"));
  }
  openSync(opts) {
    let mode = opts && 'mode' in opts ? opts.mode : C110 || CT.C110;
    if (!dart.equals(mode, io.FileMode.read) && !dart.equals(mode, io.FileMode.write) && !dart.equals(mode, io.FileMode.append) && !dart.equals(mode, io.FileMode.writeOnly) && !dart.equals(mode, io.FileMode.writeOnlyAppend)) {
      dart.throw(new core.ArgumentError.new("Invalid file mode for this operation"));
    }
    let id = io._File._open(io._Namespace._namespace, this[_rawPath$], mode[_mode]);
    io._File.throwIfError(id, "Cannot open file", this.path);
    return new io._RandomAccessFile.new(core.int.as(id), this[_path$]);
  }
  static _openStdio(fd) {
    dart.throw(new core.UnsupportedError.new("File._openStdio"));
  }
  static _openStdioSync(fd) {
    let id = io._File._openStdio(fd);
    if (id === 0) {
      dart.throw(new io.FileSystemException.new("Cannot open stdio file for: " + dart.str(fd)));
    }
    return new io._RandomAccessFile.new(id, "");
  }
  openRead(start = null, end = null) {
    return new io._FileStream.new(this.path, start, end);
  }
  openWrite(opts) {
    let mode = opts && 'mode' in opts ? opts.mode : C111 || CT.C111;
    let encoding = opts && 'encoding' in opts ? opts.encoding : C108 || CT.C108;
    if (!dart.equals(mode, io.FileMode.write) && !dart.equals(mode, io.FileMode.append) && !dart.equals(mode, io.FileMode.writeOnly) && !dart.equals(mode, io.FileMode.writeOnlyAppend)) {
      dart.throw(new core.ArgumentError.new("Invalid file mode for this operation"));
    }
    let consumer = new io._FileStreamConsumer.new(this, mode);
    return io.IOSink.new(consumer, {encoding: encoding});
  }
  readAsBytes() {
    function readDataChunked(file) {
      let builder = io.BytesBuilder.new({copy: false});
      let completer = CompleterOfUint8ListL().new();
      function read() {
        file.read(65536).then(core.Null, dart.fn(data => {
          if (dart.notNull(data[$length]) > 0) {
            builder.add(data);
            read();
          } else {
            completer.complete(builder.takeBytes());
          }
        }, Uint8ListLToNullN()), {onError: dart.bind(completer, 'completeError')});
      }
      dart.fn(read, VoidTovoid());
      read();
      return completer.future;
    }
    dart.fn(readDataChunked, RandomAccessFileLToFutureLOfUint8ListL());
    return this.open().then(typed_data.Uint8List, dart.fn(file => file.length().then(typed_data.Uint8List, dart.fn(length => {
      if (length === 0) {
        return readDataChunked(file);
      }
      return file.read(length);
    }, intLToFutureLOfUint8ListL())).whenComplete(dart.bind(file, 'close')), RandomAccessFileLToFutureLOfUint8ListL()));
  }
  readAsBytesSync() {
    let opened = this.openSync();
    try {
      let data = null;
      let length = opened.lengthSync();
      if (length === 0) {
        let builder = io.BytesBuilder.new({copy: false});
        do {
          data = opened.readSync(65536);
          if (dart.notNull(data[$length]) > 0) builder.add(data);
        } while (dart.notNull(data[$length]) > 0);
        data = builder.takeBytes();
      } else {
        data = opened.readSync(length);
      }
      return data;
    } finally {
      opened.closeSync();
    }
  }
  [_tryDecode](bytes, encoding) {
    try {
      return encoding.decode(bytes);
    } catch (e) {
      let _ = dart.getThrown(e);
      dart.throw(new io.FileSystemException.new("Failed to decode data using encoding '" + dart.str(encoding.name) + "'", this.path));
    }
  }
  readAsString(opts) {
    let encoding = opts && 'encoding' in opts ? opts.encoding : C108 || CT.C108;
    let stack = core.StackTrace.current;
    return this.readAsBytes().then(core.String, dart.fn(bytes => {
      try {
        return this[_tryDecode](bytes, encoding);
      } catch (e$) {
        let e = dart.getThrown(e$);
        return FutureOfStringL().error(e, stack);
      }
    }, Uint8ListLToFutureOrLOfStringL()));
  }
  readAsStringSync(opts) {
    let encoding = opts && 'encoding' in opts ? opts.encoding : C108 || CT.C108;
    return this[_tryDecode](this.readAsBytesSync(), encoding);
  }
  readAsLines(opts) {
    let encoding = opts && 'encoding' in opts ? opts.encoding : C108 || CT.C108;
    return this.readAsString({encoding: encoding}).then(ListOfStringL(), dart.bind(C119 || CT.C119, 'convert'));
  }
  readAsLinesSync(opts) {
    let encoding = opts && 'encoding' in opts ? opts.encoding : C108 || CT.C108;
    return (C119 || CT.C119).convert(this.readAsStringSync({encoding: encoding}));
  }
  writeAsBytes(bytes, opts) {
    let mode = opts && 'mode' in opts ? opts.mode : C111 || CT.C111;
    let flush = opts && 'flush' in opts ? opts.flush : false;
    return this.open({mode: mode}).then(io.File, dart.fn(file => file.writeFrom(bytes, 0, bytes[$length]).then(io.File, dart.fn(_ => {
      if (dart.test(flush)) return file.flush().then(io.File, dart.fn(_ => this, RandomAccessFileLTo_FileL()));
      return this;
    }, RandomAccessFileLToFutureOrLOfFileL())).whenComplete(dart.bind(file, 'close')), RandomAccessFileLToFutureLOfFileL()));
  }
  writeAsBytesSync(bytes, opts) {
    let mode = opts && 'mode' in opts ? opts.mode : C111 || CT.C111;
    let flush = opts && 'flush' in opts ? opts.flush : false;
    let opened = this.openSync({mode: mode});
    try {
      opened.writeFromSync(bytes, 0, bytes[$length]);
      if (dart.test(flush)) opened.flushSync();
    } finally {
      opened.closeSync();
    }
  }
  writeAsString(contents, opts) {
    let mode = opts && 'mode' in opts ? opts.mode : C111 || CT.C111;
    let encoding = opts && 'encoding' in opts ? opts.encoding : C108 || CT.C108;
    let flush = opts && 'flush' in opts ? opts.flush : false;
    try {
      return this.writeAsBytes(encoding.encode(contents), {mode: mode, flush: flush});
    } catch (e$) {
      let e = dart.getThrown(e$);
      return FutureOfFileL().error(e);
    }
  }
  writeAsStringSync(contents, opts) {
    let mode = opts && 'mode' in opts ? opts.mode : C111 || CT.C111;
    let encoding = opts && 'encoding' in opts ? opts.encoding : C108 || CT.C108;
    let flush = opts && 'flush' in opts ? opts.flush : false;
    this.writeAsBytesSync(encoding.encode(contents), {mode: mode, flush: flush});
  }
  toString() {
    return "File: '" + dart.str(this.path) + "'";
  }
  static throwIfError(result, msg, path) {
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new(msg, path, result));
    }
  }
};
(io._File.new = function(path) {
  this[_path$1] = null;
  this[_rawPath$1] = null;
  io._File.__proto__.new.call(this);
  core.ArgumentError.checkNotNull(core.String, path, "path");
  this[_path$] = path;
  this[_rawPath$] = io.FileSystemEntity._toUtf8Array(path);
}).prototype = io._File.prototype;
(io._File.fromRawPath = function(rawPath) {
  this[_path$1] = null;
  this[_rawPath$1] = null;
  io._File.__proto__.new.call(this);
  core.ArgumentError.checkNotNull(typed_data.Uint8List, rawPath, "rawPath");
  this[_rawPath$] = io.FileSystemEntity._toNullTerminatedUtf8Array(rawPath);
  this[_path$] = io.FileSystemEntity._toStringFromUtf8Array(rawPath);
}).prototype = io._File.prototype;
dart.addTypeTests(io._File);
dart.addTypeCaches(io._File);
io._File[dart.implements] = () => [io.File];
dart.setMethodSignature(io._File, () => ({
  __proto__: dart.getMethods(io._File.__proto__),
  exists: dart.fnType(async.Future$(core.bool), []),
  existsSync: dart.fnType(core.bool, []),
  create: dart.fnType(async.Future$(io.File), [], {recursive: core.bool}, {}),
  createSync: dart.fnType(dart.void, [], {recursive: core.bool}, {}),
  [_delete]: dart.fnType(async.Future$(io.File), [], {recursive: core.bool}, {}),
  [_deleteSync]: dart.fnType(dart.void, [], {recursive: core.bool}, {}),
  rename: dart.fnType(async.Future$(io.File), [core.String]),
  renameSync: dart.fnType(io.File, [core.String]),
  copy: dart.fnType(async.Future$(io.File), [core.String]),
  copySync: dart.fnType(io.File, [core.String]),
  open: dart.fnType(async.Future$(io.RandomAccessFile), [], {mode: io.FileMode}, {}),
  length: dart.fnType(async.Future$(core.int), []),
  lengthSync: dart.fnType(core.int, []),
  lastAccessed: dart.fnType(async.Future$(core.DateTime), []),
  lastAccessedSync: dart.fnType(core.DateTime, []),
  setLastAccessed: dart.fnType(async.Future, [core.DateTime]),
  setLastAccessedSync: dart.fnType(dart.void, [core.DateTime]),
  lastModified: dart.fnType(async.Future$(core.DateTime), []),
  lastModifiedSync: dart.fnType(core.DateTime, []),
  setLastModified: dart.fnType(async.Future, [core.DateTime]),
  setLastModifiedSync: dart.fnType(dart.void, [core.DateTime]),
  openSync: dart.fnType(io.RandomAccessFile, [], {mode: io.FileMode}, {}),
  openRead: dart.fnType(async.Stream$(core.List$(core.int)), [], [core.int, core.int]),
  openWrite: dart.fnType(io.IOSink, [], {encoding: convert.Encoding, mode: io.FileMode}, {}),
  readAsBytes: dart.fnType(async.Future$(typed_data.Uint8List), []),
  readAsBytesSync: dart.fnType(typed_data.Uint8List, []),
  [_tryDecode]: dart.fnType(core.String, [core.List$(core.int), convert.Encoding]),
  readAsString: dart.fnType(async.Future$(core.String), [], {encoding: convert.Encoding}, {}),
  readAsStringSync: dart.fnType(core.String, [], {encoding: convert.Encoding}, {}),
  readAsLines: dart.fnType(async.Future$(core.List$(core.String)), [], {encoding: convert.Encoding}, {}),
  readAsLinesSync: dart.fnType(core.List$(core.String), [], {encoding: convert.Encoding}, {}),
  writeAsBytes: dart.fnType(async.Future$(io.File), [core.List$(core.int)], {flush: core.bool, mode: io.FileMode}, {}),
  writeAsBytesSync: dart.fnType(dart.void, [core.List$(core.int)], {flush: core.bool, mode: io.FileMode}, {}),
  writeAsString: dart.fnType(async.Future$(io.File), [core.String], {encoding: convert.Encoding, flush: core.bool, mode: io.FileMode}, {}),
  writeAsStringSync: dart.fnType(dart.void, [core.String], {encoding: convert.Encoding, flush: core.bool, mode: io.FileMode}, {})
}));
dart.setGetterSignature(io._File, () => ({
  __proto__: dart.getGetters(io._File.__proto__),
  path: core.String,
  absolute: io.File
}));
dart.setLibraryUri(io._File, L48);
dart.setFieldSignature(io._File, () => ({
  __proto__: dart.getFields(io._File.__proto__),
  [_path$]: dart.fieldType(core.String),
  [_rawPath$]: dart.fieldType(typed_data.Uint8List)
}));
dart.defineExtensionMethods(io._File, ['toString']);
io._RandomAccessFileOps = class _RandomAccessFileOps extends core.Object {
  static new(pointer) {
    dart.throw(new core.UnsupportedError.new("RandomAccessFile"));
  }
};
(io._RandomAccessFileOps[dart.mixinNew] = function() {
}).prototype = io._RandomAccessFileOps.prototype;
dart.addTypeTests(io._RandomAccessFileOps);
dart.addTypeCaches(io._RandomAccessFileOps);
dart.setLibraryUri(io._RandomAccessFileOps, L48);
var _asyncDispatched = dart.privateName(io, "_asyncDispatched");
var _fileService = dart.privateName(io, "_fileService");
var _resourceInfo = dart.privateName(io, "_resourceInfo");
var _maybeConnectHandler = dart.privateName(io, "_maybeConnectHandler");
var _maybePerformCleanup = dart.privateName(io, "_maybePerformCleanup");
var C120;
var C121;
var _dispatch = dart.privateName(io, "_dispatch");
var _checkAvailable = dart.privateName(io, "_checkAvailable");
var _fileLockValue = dart.privateName(io, "_fileLockValue");
io._RandomAccessFile = class _RandomAccessFile extends core.Object {
  [_maybePerformCleanup]() {
    if (dart.test(this.closed)) {
      io._FileResourceInfo.FileClosed(this[_resourceInfo]);
    }
  }
  [_maybeConnectHandler]() {
    if (!dart.test(io._RandomAccessFile._connectedResourceHandler)) {
      developer.registerExtension("ext.dart.io.getOpenFiles", C120 || CT.C120);
      developer.registerExtension("ext.dart.io.getFileByID", C121 || CT.C121);
      io._RandomAccessFile._connectedResourceHandler = true;
    }
  }
  close() {
    return this[_dispatch](7, [null], {markClosed: true}).then(dart.void, dart.fn(result => {
      if (dart.equals(result, -1)) {
        dart.throw(new io.FileSystemException.new("Cannot close file", this.path));
      }
      this.closed = dart.test(this.closed) || dart.equals(result, 0);
      this[_maybePerformCleanup]();
    }, dynamicToNullN()));
  }
  closeSync() {
    this[_checkAvailable]();
    let id = this[_ops].close();
    if (id === -1) {
      dart.throw(new io.FileSystemException.new("Cannot close file", this.path));
    }
    this.closed = dart.test(this.closed) || id === 0;
    this[_maybePerformCleanup]();
  }
  readByte() {
    return this[_dispatch](18, [null]).then(core.int, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "readByte failed", this.path));
      }
      this[_resourceInfo].addRead(1);
      return FutureOrOfintL().as(response);
    }, dynamicToFutureOrLOfintL()));
  }
  readByteSync() {
    this[_checkAvailable]();
    let result = this[_ops].readByte();
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("readByte failed", this.path, result));
    }
    this[_resourceInfo].addRead(1);
    return core.int.as(result);
  }
  read(bytes) {
    core.ArgumentError.checkNotNull(core.int, bytes, "bytes");
    return this[_dispatch](20, [null, bytes]).then(typed_data.Uint8List, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "read failed", this.path));
      }
      this[_resourceInfo].addRead(core.int.as(dart.dload(dart.dsend(response, '_get', [1]), 'length')));
      let result = typed_data.Uint8List.as(dart.dsend(response, '_get', [1]));
      return result;
    }, dynamicToUint8ListL()));
  }
  readSync(bytes) {
    this[_checkAvailable]();
    core.ArgumentError.checkNotNull(core.int, bytes, "bytes");
    let result = this[_ops].read(bytes);
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("readSync failed", this.path, result));
    }
    this[_resourceInfo].addRead(core.int.as(dart.dload(result, 'length')));
    return typed_data.Uint8List.as(result);
  }
  readInto(buffer, start = 0, end = null) {
    if (!core.List.is(buffer) || start != null && !core.int.is(start) || end != null && !core.int.is(end)) {
      dart.throw(new core.ArgumentError.new());
    }
    end = core.RangeError.checkValidRange(start, end, buffer[$length]);
    if (end == start) {
      return FutureOfintL().value(0);
    }
    let length = dart.notNull(end) - dart.notNull(start);
    return this[_dispatch](21, [null, length]).then(core.int, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "readInto failed", this.path));
      }
      let read = core.int.as(dart.dsend(response, '_get', [1]));
      let data = ListOfintL().as(dart.dsend(response, '_get', [2]));
      buffer[$setRange](start, dart.notNull(start) + dart.notNull(read), data);
      this[_resourceInfo].addRead(read);
      return read;
    }, dynamicTointL()));
  }
  readIntoSync(buffer, start = 0, end = null) {
    this[_checkAvailable]();
    if (!core.List.is(buffer) || start != null && !core.int.is(start) || end != null && !core.int.is(end)) {
      dart.throw(new core.ArgumentError.new());
    }
    end = core.RangeError.checkValidRange(start, end, buffer[$length]);
    if (end == start) {
      return 0;
    }
    let result = this[_ops].readInto(buffer, start, end);
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("readInto failed", this.path, result));
    }
    this[_resourceInfo].addRead(core.int.as(result));
    return core.int.as(result);
  }
  writeByte(value) {
    core.ArgumentError.checkNotNull(core.int, value, "value");
    return this[_dispatch](19, [null, value]).then(io.RandomAccessFile, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "writeByte failed", this.path));
      }
      this[_resourceInfo].addWrite(1);
      return this;
    }, dynamicTo_RandomAccessFileL()));
  }
  writeByteSync(value) {
    this[_checkAvailable]();
    core.ArgumentError.checkNotNull(core.int, value, "value");
    let result = this[_ops].writeByte(value);
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("writeByte failed", this.path, result));
    }
    this[_resourceInfo].addWrite(1);
    return core.int.as(result);
  }
  writeFrom(buffer, start = 0, end = null) {
    if (!core.List.is(buffer) || start != null && !core.int.is(start) || end != null && !core.int.is(end)) {
      dart.throw(new core.ArgumentError.new("Invalid arguments to writeFrom"));
    }
    end = core.RangeError.checkValidRange(start, end, buffer[$length]);
    if (end == start) {
      return FutureOfRandomAccessFileL().value(this);
    }
    let result = null;
    try {
      result = io._ensureFastAndSerializableByteData(buffer, start, end);
    } catch (e$) {
      let e = dart.getThrown(e$);
      return FutureOfRandomAccessFileL().error(e);
    }
    let request = core.List.new(4);
    request[$_set](0, null);
    request[$_set](1, result.buffer);
    request[$_set](2, result.start);
    request[$_set](3, dart.notNull(end) - (dart.notNull(start) - dart.notNull(result.start)));
    return this[_dispatch](22, request).then(io.RandomAccessFile, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "writeFrom failed", this.path));
      }
      this[_resourceInfo].addWrite(dart.notNull(end) - (dart.notNull(start) - dart.notNull(result.start)));
      return this;
    }, dynamicTo_RandomAccessFileL()));
  }
  writeFromSync(buffer, start = 0, end = null) {
    this[_checkAvailable]();
    if (!core.List.is(buffer) || start != null && !core.int.is(start) || end != null && !core.int.is(end)) {
      dart.throw(new core.ArgumentError.new("Invalid arguments to writeFromSync"));
    }
    end = core.RangeError.checkValidRange(start, end, buffer[$length]);
    if (end == start) {
      return;
    }
    let bufferAndStart = io._ensureFastAndSerializableByteData(buffer, start, end);
    let result = this[_ops].writeFrom(bufferAndStart.buffer, bufferAndStart.start, dart.notNull(end) - (dart.notNull(start) - dart.notNull(bufferAndStart.start)));
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("writeFrom failed", this.path, result));
    }
    this[_resourceInfo].addWrite(dart.notNull(end) - (dart.notNull(start) - dart.notNull(bufferAndStart.start)));
  }
  writeString(string, opts) {
    let encoding = opts && 'encoding' in opts ? opts.encoding : C108 || CT.C108;
    core.ArgumentError.checkNotNull(convert.Encoding, encoding, "encoding");
    let data = encoding.encode(string);
    return this.writeFrom(data, 0, data[$length]);
  }
  writeStringSync(string, opts) {
    let encoding = opts && 'encoding' in opts ? opts.encoding : C108 || CT.C108;
    core.ArgumentError.checkNotNull(convert.Encoding, encoding, "encoding");
    let data = encoding.encode(string);
    this.writeFromSync(data, 0, data[$length]);
  }
  position() {
    return this[_dispatch](8, [null]).then(core.int, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "position failed", this.path));
      }
      return FutureOrOfintL().as(response);
    }, dynamicToFutureOrLOfintL()));
  }
  positionSync() {
    this[_checkAvailable]();
    let result = this[_ops].position();
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("position failed", this.path, result));
    }
    return core.int.as(result);
  }
  setPosition(position) {
    return this[_dispatch](9, [null, position]).then(io.RandomAccessFile, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "setPosition failed", this.path));
      }
      return this;
    }, dynamicTo_RandomAccessFileL()));
  }
  setPositionSync(position) {
    this[_checkAvailable]();
    let result = this[_ops].setPosition(position);
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("setPosition failed", this.path, result));
    }
  }
  truncate(length) {
    return this[_dispatch](10, [null, length]).then(io.RandomAccessFile, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "truncate failed", this.path));
      }
      return this;
    }, dynamicTo_RandomAccessFileL()));
  }
  truncateSync(length) {
    this[_checkAvailable]();
    let result = this[_ops].truncate(length);
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("truncate failed", this.path, result));
    }
  }
  length() {
    return this[_dispatch](11, [null]).then(core.int, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "length failed", this.path));
      }
      return FutureOrOfintL().as(response);
    }, dynamicToFutureOrLOfintL()));
  }
  lengthSync() {
    this[_checkAvailable]();
    let result = this[_ops].length();
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("length failed", this.path, result));
    }
    return core.int.as(result);
  }
  flush() {
    return this[_dispatch](17, [null]).then(io.RandomAccessFile, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "flush failed", this.path));
      }
      return this;
    }, dynamicTo_RandomAccessFileL()));
  }
  flushSync() {
    this[_checkAvailable]();
    let result = this[_ops].flush();
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("flush failed", this.path, result));
    }
  }
  [_fileLockValue](fl) {
    return fl[_type];
  }
  lock(mode = C116 || CT.C116, start = 0, end = -1) {
    if (!io.FileLock.is(mode) || !core.int.is(start) || !core.int.is(end)) {
      dart.throw(new core.ArgumentError.new());
    }
    if (dart.notNull(start) < 0 || dart.notNull(end) < -1 || end !== -1 && dart.notNull(start) >= dart.notNull(end)) {
      dart.throw(new core.ArgumentError.new());
    }
    let lock = this[_fileLockValue](mode);
    return this[_dispatch](30, [null, lock, start, end]).then(io.RandomAccessFile, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "lock failed", this.path));
      }
      return this;
    }, dynamicTo_RandomAccessFileL()));
  }
  unlock(start = 0, end = -1) {
    if (!core.int.is(start) || !core.int.is(end)) {
      dart.throw(new core.ArgumentError.new());
    }
    if (start == end) {
      dart.throw(new core.ArgumentError.new());
    }
    return this[_dispatch](30, [null, 0, start, end]).then(io.RandomAccessFile, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        dart.throw(io._exceptionFromResponse(response, "unlock failed", this.path));
      }
      return this;
    }, dynamicTo_RandomAccessFileL()));
  }
  lockSync(mode = C116 || CT.C116, start = 0, end = -1) {
    this[_checkAvailable]();
    if (!io.FileLock.is(mode) || !core.int.is(start) || !core.int.is(end)) {
      dart.throw(new core.ArgumentError.new());
    }
    if (dart.notNull(start) < 0 || dart.notNull(end) < -1 || end !== -1 && dart.notNull(start) >= dart.notNull(end)) {
      dart.throw(new core.ArgumentError.new());
    }
    let lock = this[_fileLockValue](mode);
    let result = this[_ops].lock(lock, start, end);
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("lock failed", this.path, result));
    }
  }
  unlockSync(start = 0, end = -1) {
    this[_checkAvailable]();
    if (!core.int.is(start) || !core.int.is(end)) {
      dart.throw(new core.ArgumentError.new());
    }
    if (start == end) {
      dart.throw(new core.ArgumentError.new());
    }
    let result = this[_ops].lock(0, start, end);
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new("unlock failed", this.path, result));
    }
  }
  [_pointer]() {
    return this[_ops].getPointer();
  }
  [_dispatch](request, data, opts) {
    let markClosed = opts && 'markClosed' in opts ? opts.markClosed : false;
    if (dart.test(this.closed)) {
      return async.Future.error(new io.FileSystemException.new("File closed", this.path));
    }
    if (dart.test(this[_asyncDispatched])) {
      let msg = "An async operation is currently pending";
      return async.Future.error(new io.FileSystemException.new(msg, this.path));
    }
    if (dart.test(markClosed)) {
      this.closed = true;
    }
    this[_asyncDispatched] = true;
    data[$_set](0, this[_pointer]());
    return io._IOService._dispatch(request, data).whenComplete(dart.fn(() => {
      this[_asyncDispatched] = false;
    }, VoidToNullN()));
  }
  [_checkAvailable]() {
    if (dart.test(this[_asyncDispatched])) {
      dart.throw(new io.FileSystemException.new("An async operation is currently pending", this.path));
    }
    if (dart.test(this.closed)) {
      dart.throw(new io.FileSystemException.new("File closed", this.path));
    }
  }
};
(io._RandomAccessFile.new = function(pointer, path) {
  this[_asyncDispatched] = false;
  this[_fileService] = null;
  this[_resourceInfo] = null;
  this[_ops] = null;
  this.closed = false;
  this.path = path;
  this[_ops] = io._RandomAccessFileOps.new(pointer);
  this[_resourceInfo] = new io._FileResourceInfo.new(this);
  this[_maybeConnectHandler]();
}).prototype = io._RandomAccessFile.prototype;
dart.addTypeTests(io._RandomAccessFile);
dart.addTypeCaches(io._RandomAccessFile);
io._RandomAccessFile[dart.implements] = () => [io.RandomAccessFile];
dart.setMethodSignature(io._RandomAccessFile, () => ({
  __proto__: dart.getMethods(io._RandomAccessFile.__proto__),
  [_maybePerformCleanup]: dart.fnType(dart.void, []),
  [_maybeConnectHandler]: dart.fnType(dart.dynamic, []),
  close: dart.fnType(async.Future$(dart.void), []),
  closeSync: dart.fnType(dart.void, []),
  readByte: dart.fnType(async.Future$(core.int), []),
  readByteSync: dart.fnType(core.int, []),
  read: dart.fnType(async.Future$(typed_data.Uint8List), [core.int]),
  readSync: dart.fnType(typed_data.Uint8List, [core.int]),
  readInto: dart.fnType(async.Future$(core.int), [core.List$(core.int)], [core.int, core.int]),
  readIntoSync: dart.fnType(core.int, [core.List$(core.int)], [core.int, core.int]),
  writeByte: dart.fnType(async.Future$(io.RandomAccessFile), [core.int]),
  writeByteSync: dart.fnType(core.int, [core.int]),
  writeFrom: dart.fnType(async.Future$(io.RandomAccessFile), [core.List$(core.int)], [core.int, core.int]),
  writeFromSync: dart.fnType(dart.void, [core.List$(core.int)], [core.int, core.int]),
  writeString: dart.fnType(async.Future$(io.RandomAccessFile), [core.String], {encoding: convert.Encoding}, {}),
  writeStringSync: dart.fnType(dart.void, [core.String], {encoding: convert.Encoding}, {}),
  position: dart.fnType(async.Future$(core.int), []),
  positionSync: dart.fnType(core.int, []),
  setPosition: dart.fnType(async.Future$(io.RandomAccessFile), [core.int]),
  setPositionSync: dart.fnType(dart.void, [core.int]),
  truncate: dart.fnType(async.Future$(io.RandomAccessFile), [core.int]),
  truncateSync: dart.fnType(dart.void, [core.int]),
  length: dart.fnType(async.Future$(core.int), []),
  lengthSync: dart.fnType(core.int, []),
  flush: dart.fnType(async.Future$(io.RandomAccessFile), []),
  flushSync: dart.fnType(dart.void, []),
  [_fileLockValue]: dart.fnType(core.int, [io.FileLock]),
  lock: dart.fnType(async.Future$(io.RandomAccessFile), [], [io.FileLock, core.int, core.int]),
  unlock: dart.fnType(async.Future$(io.RandomAccessFile), [], [core.int, core.int]),
  lockSync: dart.fnType(dart.void, [], [io.FileLock, core.int, core.int]),
  unlockSync: dart.fnType(dart.void, [], [core.int, core.int]),
  [_pointer]: dart.fnType(core.int, []),
  [_dispatch]: dart.fnType(async.Future, [core.int, core.List], {markClosed: core.bool}, {}),
  [_checkAvailable]: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(io._RandomAccessFile, L48);
dart.setFieldSignature(io._RandomAccessFile, () => ({
  __proto__: dart.getFields(io._RandomAccessFile.__proto__),
  path: dart.finalFieldType(core.String),
  [_asyncDispatched]: dart.fieldType(core.bool),
  [_fileService]: dart.fieldType(isolate$.SendPort),
  [_resourceInfo]: dart.fieldType(io._FileResourceInfo),
  [_ops]: dart.fieldType(io._RandomAccessFileOps),
  closed: dart.fieldType(core.bool)
}));
dart.defineLazy(io._RandomAccessFile, {
  /*io._RandomAccessFile._connectedResourceHandler*/get _connectedResourceHandler() {
    return false;
  },
  set _connectedResourceHandler(_) {},
  /*io._RandomAccessFile.lockUnlock*/get lockUnlock() {
    return 0;
  }
}, true);
var C122;
var _type$2 = dart.privateName(io, "FileSystemEntityType._type");
var C123;
var C124;
var C125;
var C126;
var C127;
io.FileSystemEntityType = class FileSystemEntityType extends core.Object {
  get [_type]() {
    return this[_type$2];
  }
  set [_type](value) {
    super[_type] = value;
  }
  static _lookup(type) {
    return io.FileSystemEntityType._typeList[$_get](type);
  }
  toString() {
    return (C122 || CT.C122)[$_get](this[_type]);
  }
};
(io.FileSystemEntityType._internal = function(_type) {
  this[_type$2] = _type;
  ;
}).prototype = io.FileSystemEntityType.prototype;
dart.addTypeTests(io.FileSystemEntityType);
dart.addTypeCaches(io.FileSystemEntityType);
dart.setLibraryUri(io.FileSystemEntityType, L48);
dart.setFieldSignature(io.FileSystemEntityType, () => ({
  __proto__: dart.getFields(io.FileSystemEntityType.__proto__),
  [_type]: dart.finalFieldType(core.int)
}));
dart.defineExtensionMethods(io.FileSystemEntityType, ['toString']);
dart.defineLazy(io.FileSystemEntityType, {
  /*io.FileSystemEntityType.file*/get file() {
    return C123 || CT.C123;
  },
  /*io.FileSystemEntityType.FILE*/get FILE() {
    return C123 || CT.C123;
  },
  /*io.FileSystemEntityType.directory*/get directory() {
    return C124 || CT.C124;
  },
  /*io.FileSystemEntityType.DIRECTORY*/get DIRECTORY() {
    return C124 || CT.C124;
  },
  /*io.FileSystemEntityType.link*/get link() {
    return C125 || CT.C125;
  },
  /*io.FileSystemEntityType.LINK*/get LINK() {
    return C125 || CT.C125;
  },
  /*io.FileSystemEntityType.notFound*/get notFound() {
    return C126 || CT.C126;
  },
  /*io.FileSystemEntityType.NOT_FOUND*/get NOT_FOUND() {
    return C126 || CT.C126;
  },
  /*io.FileSystemEntityType._typeList*/get _typeList() {
    return C127 || CT.C127;
  }
}, true);
var C128;
var changed$ = dart.privateName(io, "FileStat.changed");
var modified$ = dart.privateName(io, "FileStat.modified");
var accessed$ = dart.privateName(io, "FileStat.accessed");
var type$ = dart.privateName(io, "FileStat.type");
var mode$0 = dart.privateName(io, "FileStat.mode");
var size$ = dart.privateName(io, "FileStat.size");
io.FileStat = class FileStat extends core.Object {
  get changed() {
    return this[changed$];
  }
  set changed(value) {
    super.changed = value;
  }
  get modified() {
    return this[modified$];
  }
  set modified(value) {
    super.modified = value;
  }
  get accessed() {
    return this[accessed$];
  }
  set accessed(value) {
    super.accessed = value;
  }
  get type() {
    return this[type$];
  }
  set type(value) {
    super.type = value;
  }
  get mode() {
    return this[mode$0];
  }
  set mode(value) {
    super.mode = value;
  }
  get size() {
    return this[size$];
  }
  set size(value) {
    super.size = value;
  }
  static _statSync(namespace, path) {
    dart.throw(new core.UnsupportedError.new("FileStat.stat"));
  }
  static statSync(path) {
    let overrides = io.IOOverrides.current;
    if (overrides == null) {
      return io.FileStat._statSyncInternal(path);
    }
    return overrides.statSync(path);
  }
  static _statSyncInternal(path) {
    if (dart.test(io.Platform.isWindows)) {
      path = io.FileSystemEntity._trimTrailingPathSeparators(path);
    }
    let data = io.FileStat._statSync(io._Namespace._namespace, path);
    if (io.OSError.is(data)) return io.FileStat._notFound;
    return new io.FileStat._internal(new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(dart.dsend(data, '_get', [1]))), new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(dart.dsend(data, '_get', [2]))), new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(dart.dsend(data, '_get', [3]))), io.FileSystemEntityType._lookup(core.int.as(dart.dsend(data, '_get', [0]))), core.int.as(dart.dsend(data, '_get', [4])), core.int.as(dart.dsend(data, '_get', [5])));
  }
  static stat(path) {
    let overrides = io.IOOverrides.current;
    if (overrides == null) {
      return io.FileStat._stat(path);
    }
    return overrides.stat(path);
  }
  static _stat(path) {
    if (dart.test(io.Platform.isWindows)) {
      path = io.FileSystemEntity._trimTrailingPathSeparators(path);
    }
    return io._File._dispatchWithNamespace(29, [null, path]).then(io.FileStat, dart.fn(response => {
      if (dart.test(io._isErrorResponse(response))) {
        return io.FileStat._notFound;
      }
      let data = core.List.as(dart.dsend(response, '_get', [1]));
      return new io.FileStat._internal(new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(data[$_get](1))), new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(data[$_get](2))), new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(data[$_get](3))), io.FileSystemEntityType._lookup(core.int.as(data[$_get](0))), core.int.as(data[$_get](4)), core.int.as(data[$_get](5)));
    }, dynamicToFileStatL()));
  }
  toString() {
    return "FileStat: type " + dart.str(this.type) + "\n          changed " + dart.str(this.changed) + "\n          modified " + dart.str(this.modified) + "\n          accessed " + dart.str(this.accessed) + "\n          mode " + dart.str(this.modeString()) + "\n          size " + dart.str(this.size);
  }
  modeString() {
    let t82;
    let permissions = dart.notNull(this.mode) & 4095;
    let codes = C128 || CT.C128;
    let result = [];
    if ((permissions & 2048) !== 0) result[$add]("(suid) ");
    if ((permissions & 1024) !== 0) result[$add]("(guid) ");
    if ((permissions & 512) !== 0) result[$add]("(sticky) ");
    t82 = result;
    t82[$add](codes[$_get](permissions >> 6 & 7));
    t82[$add](codes[$_get](permissions >> 3 & 7));
    t82[$add](codes[$_get](permissions & 7));
    t82;
    return result[$join]();
  }
};
(io.FileStat._internal = function(changed, modified, accessed, type, mode, size) {
  this[changed$] = changed;
  this[modified$] = modified;
  this[accessed$] = accessed;
  this[type$] = type;
  this[mode$0] = mode;
  this[size$] = size;
  ;
}).prototype = io.FileStat.prototype;
dart.addTypeTests(io.FileStat);
dart.addTypeCaches(io.FileStat);
dart.setMethodSignature(io.FileStat, () => ({
  __proto__: dart.getMethods(io.FileStat.__proto__),
  modeString: dart.fnType(core.String, [])
}));
dart.setLibraryUri(io.FileStat, L48);
dart.setFieldSignature(io.FileStat, () => ({
  __proto__: dart.getFields(io.FileStat.__proto__),
  changed: dart.finalFieldType(core.DateTime),
  modified: dart.finalFieldType(core.DateTime),
  accessed: dart.finalFieldType(core.DateTime),
  type: dart.finalFieldType(io.FileSystemEntityType),
  mode: dart.finalFieldType(core.int),
  size: dart.finalFieldType(core.int)
}));
dart.defineExtensionMethods(io.FileStat, ['toString']);
dart.defineLazy(io.FileStat, {
  /*io.FileStat._type*/get _type() {
    return 0;
  },
  /*io.FileStat._changedTime*/get _changedTime() {
    return 1;
  },
  /*io.FileStat._modifiedTime*/get _modifiedTime() {
    return 2;
  },
  /*io.FileStat._accessedTime*/get _accessedTime() {
    return 3;
  },
  /*io.FileStat._mode*/get _mode() {
    return 4;
  },
  /*io.FileStat._size*/get _size() {
    return 5;
  },
  /*io.FileStat._epoch*/get _epoch() {
    return new core.DateTime.fromMillisecondsSinceEpoch(0, {isUtc: true});
  },
  /*io.FileStat._notFound*/get _notFound() {
    return new io.FileStat._internal(io.FileStat._epoch, io.FileStat._epoch, io.FileStat._epoch, io.FileSystemEntityType.notFound, 0, -1);
  }
}, true);
var type$0 = dart.privateName(io, "FileSystemEvent.type");
var path$0 = dart.privateName(io, "FileSystemEvent.path");
var isDirectory$ = dart.privateName(io, "FileSystemEvent.isDirectory");
io.FileSystemEvent = class FileSystemEvent extends core.Object {
  get type() {
    return this[type$0];
  }
  set type(value) {
    super.type = value;
  }
  get path() {
    return this[path$0];
  }
  set path(value) {
    super.path = value;
  }
  get isDirectory() {
    return this[isDirectory$];
  }
  set isDirectory(value) {
    super.isDirectory = value;
  }
};
(io.FileSystemEvent.__ = function(type, path, isDirectory) {
  this[type$0] = type;
  this[path$0] = path;
  this[isDirectory$] = isDirectory;
  ;
}).prototype = io.FileSystemEvent.prototype;
dart.addTypeTests(io.FileSystemEvent);
dart.addTypeCaches(io.FileSystemEvent);
dart.setLibraryUri(io.FileSystemEvent, L48);
dart.setFieldSignature(io.FileSystemEvent, () => ({
  __proto__: dart.getFields(io.FileSystemEvent.__proto__),
  type: dart.finalFieldType(core.int),
  path: dart.finalFieldType(core.String),
  isDirectory: dart.finalFieldType(core.bool)
}));
dart.defineLazy(io.FileSystemEvent, {
  /*io.FileSystemEvent.create*/get create() {
    return 1;
  },
  /*io.FileSystemEvent.CREATE*/get CREATE() {
    return 1;
  },
  /*io.FileSystemEvent.modify*/get modify() {
    return 2;
  },
  /*io.FileSystemEvent.MODIFY*/get MODIFY() {
    return 2;
  },
  /*io.FileSystemEvent.delete*/get delete() {
    return 4;
  },
  /*io.FileSystemEvent.DELETE*/get DELETE() {
    return 4;
  },
  /*io.FileSystemEvent.move*/get move() {
    return 8;
  },
  /*io.FileSystemEvent.MOVE*/get MOVE() {
    return 8;
  },
  /*io.FileSystemEvent.all*/get all() {
    return 15;
  },
  /*io.FileSystemEvent.ALL*/get ALL() {
    return 15;
  },
  /*io.FileSystemEvent._modifyAttributes*/get _modifyAttributes() {
    return 16;
  },
  /*io.FileSystemEvent._deleteSelf*/get _deleteSelf() {
    return 32;
  },
  /*io.FileSystemEvent._isDir*/get _isDir() {
    return 64;
  }
}, true);
io.FileSystemCreateEvent = class FileSystemCreateEvent extends io.FileSystemEvent {
  toString() {
    return "FileSystemCreateEvent('" + dart.str(this.path) + "')";
  }
};
(io.FileSystemCreateEvent.__ = function(path, isDirectory) {
  io.FileSystemCreateEvent.__proto__.__.call(this, 1, core.String.as(path), core.bool.as(isDirectory));
  ;
}).prototype = io.FileSystemCreateEvent.prototype;
dart.addTypeTests(io.FileSystemCreateEvent);
dart.addTypeCaches(io.FileSystemCreateEvent);
dart.setLibraryUri(io.FileSystemCreateEvent, L48);
dart.defineExtensionMethods(io.FileSystemCreateEvent, ['toString']);
var contentChanged$ = dart.privateName(io, "FileSystemModifyEvent.contentChanged");
io.FileSystemModifyEvent = class FileSystemModifyEvent extends io.FileSystemEvent {
  get contentChanged() {
    return this[contentChanged$];
  }
  set contentChanged(value) {
    super.contentChanged = value;
  }
  toString() {
    return "FileSystemModifyEvent('" + dart.str(this.path) + "', contentChanged=" + dart.str(this.contentChanged) + ")";
  }
};
(io.FileSystemModifyEvent.__ = function(path, isDirectory, contentChanged) {
  this[contentChanged$] = contentChanged;
  io.FileSystemModifyEvent.__proto__.__.call(this, 2, core.String.as(path), core.bool.as(isDirectory));
  ;
}).prototype = io.FileSystemModifyEvent.prototype;
dart.addTypeTests(io.FileSystemModifyEvent);
dart.addTypeCaches(io.FileSystemModifyEvent);
dart.setLibraryUri(io.FileSystemModifyEvent, L48);
dart.setFieldSignature(io.FileSystemModifyEvent, () => ({
  __proto__: dart.getFields(io.FileSystemModifyEvent.__proto__),
  contentChanged: dart.finalFieldType(core.bool)
}));
dart.defineExtensionMethods(io.FileSystemModifyEvent, ['toString']);
io.FileSystemDeleteEvent = class FileSystemDeleteEvent extends io.FileSystemEvent {
  toString() {
    return "FileSystemDeleteEvent('" + dart.str(this.path) + "')";
  }
};
(io.FileSystemDeleteEvent.__ = function(path, isDirectory) {
  io.FileSystemDeleteEvent.__proto__.__.call(this, 4, core.String.as(path), core.bool.as(isDirectory));
  ;
}).prototype = io.FileSystemDeleteEvent.prototype;
dart.addTypeTests(io.FileSystemDeleteEvent);
dart.addTypeCaches(io.FileSystemDeleteEvent);
dart.setLibraryUri(io.FileSystemDeleteEvent, L48);
dart.defineExtensionMethods(io.FileSystemDeleteEvent, ['toString']);
var destination$ = dart.privateName(io, "FileSystemMoveEvent.destination");
io.FileSystemMoveEvent = class FileSystemMoveEvent extends io.FileSystemEvent {
  get destination() {
    return this[destination$];
  }
  set destination(value) {
    super.destination = value;
  }
  toString() {
    let buffer = new core.StringBuffer.new();
    buffer.write("FileSystemMoveEvent('" + dart.str(this.path) + "'");
    if (this.destination != null) buffer.write(", '" + dart.str(this.destination) + "'");
    buffer.write(")");
    return buffer.toString();
  }
};
(io.FileSystemMoveEvent.__ = function(path, isDirectory, destination) {
  this[destination$] = destination;
  io.FileSystemMoveEvent.__proto__.__.call(this, 8, core.String.as(path), core.bool.as(isDirectory));
  ;
}).prototype = io.FileSystemMoveEvent.prototype;
dart.addTypeTests(io.FileSystemMoveEvent);
dart.addTypeCaches(io.FileSystemMoveEvent);
dart.setLibraryUri(io.FileSystemMoveEvent, L48);
dart.setFieldSignature(io.FileSystemMoveEvent, () => ({
  __proto__: dart.getFields(io.FileSystemMoveEvent.__proto__),
  destination: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(io.FileSystemMoveEvent, ['toString']);
io._FileSystemWatcher = class _FileSystemWatcher extends core.Object {
  static _watch(path, events, recursive) {
    dart.throw(new core.UnsupportedError.new("_FileSystemWatcher.watch"));
  }
  static get isSupported() {
    dart.throw(new core.UnsupportedError.new("_FileSystemWatcher.isSupported"));
  }
};
(io._FileSystemWatcher.new = function() {
  ;
}).prototype = io._FileSystemWatcher.prototype;
dart.addTypeTests(io._FileSystemWatcher);
dart.addTypeCaches(io._FileSystemWatcher);
dart.setLibraryUri(io._FileSystemWatcher, L48);
io._IOResourceInfo = class _IOResourceInfo extends core.Object {
  static get timestamp() {
    return dart.notNull(io._IOResourceInfo._startTime) + dart.notNull(io._IOResourceInfo._sw.elapsedMicroseconds) / 1000;
  }
  get referenceValueMap() {
    return new (IdentityMapOfStringL$dynamic()).from(["type", "@" + dart.str(this.type), "id", this.id, "name", this.name]);
  }
  static getNextID() {
    let t82;
    t82 = io._IOResourceInfo._count;
    io._IOResourceInfo._count = dart.notNull(t82) + 1;
    return t82;
  }
};
(io._IOResourceInfo.new = function(type) {
  this.type = type;
  this.id = io._IOResourceInfo.getNextID();
  ;
}).prototype = io._IOResourceInfo.prototype;
dart.addTypeTests(io._IOResourceInfo);
dart.addTypeCaches(io._IOResourceInfo);
dart.setGetterSignature(io._IOResourceInfo, () => ({
  __proto__: dart.getGetters(io._IOResourceInfo.__proto__),
  referenceValueMap: core.Map$(core.String, dart.dynamic)
}));
dart.setLibraryUri(io._IOResourceInfo, L48);
dart.setFieldSignature(io._IOResourceInfo, () => ({
  __proto__: dart.getFields(io._IOResourceInfo.__proto__),
  type: dart.finalFieldType(core.String),
  id: dart.finalFieldType(core.int)
}));
dart.defineLazy(io._IOResourceInfo, {
  /*io._IOResourceInfo._count*/get _count() {
    return 0;
  },
  set _count(_) {},
  /*io._IOResourceInfo._sw*/get _sw() {
    let t82;
    return t82 = new core.Stopwatch.new(), t82.start(), t82;
  },
  /*io._IOResourceInfo._startTime*/get _startTime() {
    return new core.DateTime.now().millisecondsSinceEpoch;
  }
}, true);
io._ReadWriteResourceInfo = class _ReadWriteResourceInfo extends io._IOResourceInfo {
  addRead(bytes) {
    this.totalRead = dart.notNull(this.totalRead) + dart.notNull(bytes);
    this.readCount = dart.notNull(this.readCount) + 1;
    this.lastRead = io._IOResourceInfo.timestamp;
  }
  didRead() {
    this.addRead(0);
  }
  addWrite(bytes) {
    this.totalWritten = dart.notNull(this.totalWritten) + dart.notNull(bytes);
    this.writeCount = dart.notNull(this.writeCount) + 1;
    this.lastWrite = io._IOResourceInfo.timestamp;
  }
  get fullValueMap() {
    return new (IdentityMapOfStringL$dynamic()).from(["type", this.type, "id", this.id, "name", this.name, "totalRead", this.totalRead, "totalWritten", this.totalWritten, "readCount", this.readCount, "writeCount", this.writeCount, "lastRead", this.lastRead, "lastWrite", this.lastWrite]);
  }
};
(io._ReadWriteResourceInfo.new = function(type) {
  this.totalRead = 0;
  this.totalWritten = 0;
  this.readCount = 0;
  this.writeCount = 0;
  this.lastRead = 0.0;
  this.lastWrite = 0.0;
  io._ReadWriteResourceInfo.__proto__.new.call(this, type);
  ;
}).prototype = io._ReadWriteResourceInfo.prototype;
dart.addTypeTests(io._ReadWriteResourceInfo);
dart.addTypeCaches(io._ReadWriteResourceInfo);
dart.setMethodSignature(io._ReadWriteResourceInfo, () => ({
  __proto__: dart.getMethods(io._ReadWriteResourceInfo.__proto__),
  addRead: dart.fnType(dart.void, [core.int]),
  didRead: dart.fnType(dart.void, []),
  addWrite: dart.fnType(dart.void, [core.int])
}));
dart.setGetterSignature(io._ReadWriteResourceInfo, () => ({
  __proto__: dart.getGetters(io._ReadWriteResourceInfo.__proto__),
  fullValueMap: core.Map$(core.String, dart.dynamic)
}));
dart.setLibraryUri(io._ReadWriteResourceInfo, L48);
dart.setFieldSignature(io._ReadWriteResourceInfo, () => ({
  __proto__: dart.getFields(io._ReadWriteResourceInfo.__proto__),
  totalRead: dart.fieldType(core.int),
  totalWritten: dart.fieldType(core.int),
  readCount: dart.fieldType(core.int),
  writeCount: dart.fieldType(core.int),
  lastRead: dart.fieldType(core.double),
  lastWrite: dart.fieldType(core.double)
}));
io._FileResourceInfo = class _FileResourceInfo extends io._ReadWriteResourceInfo {
  static FileOpened(info) {
    if (!!dart.test(io._FileResourceInfo.openFiles[$containsKey](info.id))) dart.assertFailed(null, L52, 103, 12, "!openFiles.containsKey(info.id)");
    io._FileResourceInfo.openFiles[$_set](info.id, info);
  }
  static FileClosed(info) {
    if (!dart.test(io._FileResourceInfo.openFiles[$containsKey](info.id))) dart.assertFailed(null, L52, 108, 12, "openFiles.containsKey(info.id)");
    io._FileResourceInfo.openFiles[$remove](info.id);
  }
  static getOpenFilesList() {
    return ListOfMapLOfStringL$dynamic().from(io._FileResourceInfo.openFiles[$values][$map](dart.dynamic, dart.fn(e => e.referenceValueMap, _FileResourceInfoLToMapLOfStringL$dynamic())));
  }
  static getOpenFiles($function, params) {
    if (!dart.equals($function, "ext.dart.io.getOpenFiles")) dart.assertFailed(null, L52, 117, 12, "function == 'ext.dart.io.getOpenFiles'");
    let data = new (IdentityMapOfStringL$ObjectL()).from(["type", "_openfiles", "data", io._FileResourceInfo.getOpenFilesList()]);
    let jsonValue = convert.json.encode(data);
    return FutureOfServiceExtensionResponseL().value(new developer.ServiceExtensionResponse.result(jsonValue));
  }
  getFileInfoMap() {
    return this.fullValueMap;
  }
  static getFileInfoMapByID($function, params) {
    if (!dart.test(core.bool.as(dart.dsend(params, 'containsKey', ["id"])))) dart.assertFailed(null, L52, 128, 12, "params.containsKey('id')");
    let id = core.int.parse(core.String.as(dart.dsend(params, '_get', ["id"])));
    let result = dart.test(io._FileResourceInfo.openFiles[$containsKey](id)) ? io._FileResourceInfo.openFiles[$_get](id).getFileInfoMap() : new _js_helper.LinkedMap.new();
    let jsonValue = convert.json.encode(result);
    return FutureOfServiceExtensionResponseL().value(new developer.ServiceExtensionResponse.result(jsonValue));
  }
  get name() {
    return dart.str(dart.dload(this.file, 'path'));
  }
};
(io._FileResourceInfo.new = function(file) {
  this.file = file;
  io._FileResourceInfo.__proto__.new.call(this, "_file");
  io._FileResourceInfo.FileOpened(this);
}).prototype = io._FileResourceInfo.prototype;
dart.addTypeTests(io._FileResourceInfo);
dart.addTypeCaches(io._FileResourceInfo);
dart.setMethodSignature(io._FileResourceInfo, () => ({
  __proto__: dart.getMethods(io._FileResourceInfo.__proto__),
  getFileInfoMap: dart.fnType(core.Map$(core.String, dart.dynamic), [])
}));
dart.setGetterSignature(io._FileResourceInfo, () => ({
  __proto__: dart.getGetters(io._FileResourceInfo.__proto__),
  name: core.String
}));
dart.setLibraryUri(io._FileResourceInfo, L48);
dart.setFieldSignature(io._FileResourceInfo, () => ({
  __proto__: dart.getFields(io._FileResourceInfo.__proto__),
  file: dart.finalFieldType(dart.dynamic)
}));
dart.defineLazy(io._FileResourceInfo, {
  /*io._FileResourceInfo._type*/get _type() {
    return "_file";
  },
  /*io._FileResourceInfo.openFiles*/get openFiles() {
    return new (LinkedMapOfintL$_FileResourceInfoL()).new();
  },
  set openFiles(_) {}
}, true);
var _arguments$2 = dart.privateName(io, "_arguments");
var _workingDirectory = dart.privateName(io, "_workingDirectory");
io._ProcessResourceInfo = class _ProcessResourceInfo extends io._IOResourceInfo {
  get name() {
    return core.String.as(dart.dload(this.process, _path$));
  }
  stopped() {
    io._ProcessResourceInfo.ProcessStopped(this);
  }
  get fullValueMap() {
    return new (IdentityMapOfStringL$dynamic()).from(["type", this.type, "id", this.id, "name", this.name, "pid", dart.dload(this.process, 'pid'), "startedAt", this.startedAt, "arguments", dart.dload(this.process, _arguments$2), "workingDirectory", dart.dload(this.process, _workingDirectory) == null ? "." : dart.dload(this.process, _workingDirectory)]);
  }
  static ProcessStarted(info) {
    if (!!dart.test(io._ProcessResourceInfo.startedProcesses[$containsKey](info.id))) dart.assertFailed(null, L52, 173, 12, "!startedProcesses.containsKey(info.id)");
    io._ProcessResourceInfo.startedProcesses[$_set](info.id, info);
  }
  static ProcessStopped(info) {
    if (!dart.test(io._ProcessResourceInfo.startedProcesses[$containsKey](info.id))) dart.assertFailed(null, L52, 178, 12, "startedProcesses.containsKey(info.id)");
    io._ProcessResourceInfo.startedProcesses[$remove](info.id);
  }
  static getStartedProcessesList() {
    return ListOfMapLOfStringL$dynamic().from(io._ProcessResourceInfo.startedProcesses[$values][$map](dart.dynamic, dart.fn(e => e.referenceValueMap, _ProcessResourceInfoLToMapLOfStringL$dynamic())));
  }
  static getStartedProcesses($function, params) {
    if (!($function === "ext.dart.io.getProcesses")) dart.assertFailed(null, L52, 187, 12, "function == 'ext.dart.io.getProcesses'");
    let data = new (IdentityMapOfStringL$ObjectL()).from(["type", "_startedprocesses", "data", io._ProcessResourceInfo.getStartedProcessesList()]);
    let jsonValue = convert.json.encode(data);
    return FutureOfServiceExtensionResponseL().value(new developer.ServiceExtensionResponse.result(jsonValue));
  }
  static getProcessInfoMapById($function, params) {
    let id = core.int.parse(params[$_get]("id"));
    let result = dart.test(io._ProcessResourceInfo.startedProcesses[$containsKey](id)) ? io._ProcessResourceInfo.startedProcesses[$_get](id).fullValueMap : new _js_helper.LinkedMap.new();
    let jsonValue = convert.json.encode(result);
    return FutureOfServiceExtensionResponseL().value(new developer.ServiceExtensionResponse.result(jsonValue));
  }
};
(io._ProcessResourceInfo.new = function(process) {
  this.process = process;
  this.startedAt = io._IOResourceInfo.timestamp;
  io._ProcessResourceInfo.__proto__.new.call(this, "_process");
  io._ProcessResourceInfo.ProcessStarted(this);
}).prototype = io._ProcessResourceInfo.prototype;
dart.addTypeTests(io._ProcessResourceInfo);
dart.addTypeCaches(io._ProcessResourceInfo);
dart.setMethodSignature(io._ProcessResourceInfo, () => ({
  __proto__: dart.getMethods(io._ProcessResourceInfo.__proto__),
  stopped: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(io._ProcessResourceInfo, () => ({
  __proto__: dart.getGetters(io._ProcessResourceInfo.__proto__),
  name: core.String,
  fullValueMap: core.Map$(core.String, dart.dynamic)
}));
dart.setLibraryUri(io._ProcessResourceInfo, L48);
dart.setFieldSignature(io._ProcessResourceInfo, () => ({
  __proto__: dart.getFields(io._ProcessResourceInfo.__proto__),
  process: dart.finalFieldType(dart.dynamic),
  startedAt: dart.finalFieldType(core.double)
}));
dart.defineLazy(io._ProcessResourceInfo, {
  /*io._ProcessResourceInfo._type*/get _type() {
    return "_process";
  },
  /*io._ProcessResourceInfo.startedProcesses*/get startedProcesses() {
    return new (LinkedMapOfintL$_ProcessResourceInfoL()).new();
  },
  set startedProcesses(_) {}
}, true);
io._SocketResourceInfo = class _SocketResourceInfo extends io._ReadWriteResourceInfo {
  get name() {
    if (dart.dtest(dart.dload(this.socket, 'isListening'))) {
      return "listening:" + dart.str(dart.dload(dart.dload(this.socket, 'address'), 'host')) + ":" + dart.str(dart.dload(this.socket, 'port'));
    }
    let remote = "";
    try {
      let remoteHost = dart.dload(dart.dload(this.socket, 'remoteAddress'), 'host');
      let remotePort = dart.dload(this.socket, 'remotePort');
      remote = " -> " + dart.str(remoteHost) + ":" + dart.str(remotePort);
    } catch (e$) {
      let e = dart.getThrown(e$);
    }
    return dart.str(dart.dload(dart.dload(this.socket, 'address'), 'host')) + ":" + dart.str(dart.dload(this.socket, 'port')) + remote;
  }
  static getOpenSocketsList() {
    return ListOfMapLOfStringL$dynamic().from(io._SocketResourceInfo.openSockets[$values][$map](dart.dynamic, dart.fn(e => e.referenceValueMap, _SocketResourceInfoLToMapLOfStringL$dynamic())));
  }
  getSocketInfoMap() {
    let result = this.fullValueMap;
    result[$_set]("socketType", dart.dtest(dart.dload(this.socket, 'isTcp')) ? "TCP" : "UDP");
    result[$_set]("listening", dart.dload(this.socket, 'isListening'));
    result[$_set]("host", dart.dload(dart.dload(this.socket, 'address'), 'host'));
    result[$_set]("port", dart.dload(this.socket, 'port'));
    if (!dart.dtest(dart.dload(this.socket, 'isListening'))) {
      try {
        result[$_set]("remoteHost", dart.dload(dart.dload(this.socket, 'remoteAddress'), 'host'));
        result[$_set]("remotePort", dart.dload(this.socket, 'remotePort'));
      } catch (e$) {
        let e = dart.getThrown(e$);
        result[$_set]("remotePort", "NA");
        result[$_set]("remoteHost", "NA");
      }
    } else {
      result[$_set]("remotePort", "NA");
      result[$_set]("remoteHost", "NA");
    }
    result[$_set]("addressType", dart.dload(dart.dload(dart.dload(this.socket, 'address'), 'type'), 'name'));
    return result;
  }
  static getSocketInfoMapByID($function, params) {
    if (!dart.test(params[$containsKey]("id"))) dart.assertFailed(null, L52, 260, 12, "params.containsKey('id')");
    let id = core.int.parse(params[$_get]("id"));
    let result = dart.test(io._SocketResourceInfo.openSockets[$containsKey](id)) ? io._SocketResourceInfo.openSockets[$_get](id).getSocketInfoMap() : new _js_helper.LinkedMap.new();
    let jsonValue = convert.json.encode(result);
    return FutureOfServiceExtensionResponseL().value(new developer.ServiceExtensionResponse.result(jsonValue));
  }
  static getOpenSockets($function, params) {
    if (!dart.equals($function, "ext.dart.io.getOpenSockets")) dart.assertFailed(null, L52, 269, 12, "function == 'ext.dart.io.getOpenSockets'");
    let data = new (IdentityMapOfStringL$ObjectL()).from(["type", "_opensockets", "data", io._SocketResourceInfo.getOpenSocketsList()]);
    let jsonValue = convert.json.encode(data);
    return FutureOfServiceExtensionResponseL().value(new developer.ServiceExtensionResponse.result(jsonValue));
  }
  static SocketOpened(info) {
    if (!!dart.test(io._SocketResourceInfo.openSockets[$containsKey](info.id))) dart.assertFailed(null, L52, 276, 12, "!openSockets.containsKey(info.id)");
    io._SocketResourceInfo.openSockets[$_set](info.id, info);
  }
  static SocketClosed(info) {
    if (!dart.test(io._SocketResourceInfo.openSockets[$containsKey](info.id))) dart.assertFailed(null, L52, 281, 12, "openSockets.containsKey(info.id)");
    io._SocketResourceInfo.openSockets[$remove](info.id);
  }
};
(io._SocketResourceInfo.new = function(socket) {
  this.socket = socket;
  io._SocketResourceInfo.__proto__.new.call(this, "_socket");
  io._SocketResourceInfo.SocketOpened(this);
}).prototype = io._SocketResourceInfo.prototype;
dart.addTypeTests(io._SocketResourceInfo);
dart.addTypeCaches(io._SocketResourceInfo);
dart.setMethodSignature(io._SocketResourceInfo, () => ({
  __proto__: dart.getMethods(io._SocketResourceInfo.__proto__),
  getSocketInfoMap: dart.fnType(core.Map$(core.String, dart.dynamic), [])
}));
dart.setGetterSignature(io._SocketResourceInfo, () => ({
  __proto__: dart.getGetters(io._SocketResourceInfo.__proto__),
  name: core.String
}));
dart.setLibraryUri(io._SocketResourceInfo, L48);
dart.setFieldSignature(io._SocketResourceInfo, () => ({
  __proto__: dart.getFields(io._SocketResourceInfo.__proto__),
  socket: dart.finalFieldType(dart.dynamic)
}));
dart.defineLazy(io._SocketResourceInfo, {
  /*io._SocketResourceInfo._tcpString*/get _tcpString() {
    return "TCP";
  },
  /*io._SocketResourceInfo._udpString*/get _udpString() {
    return "UDP";
  },
  /*io._SocketResourceInfo._type*/get _type() {
    return "_socket";
  },
  /*io._SocketResourceInfo.openSockets*/get openSockets() {
    return new (LinkedMapOfintL$_SocketResourceInfoL()).new();
  },
  set openSockets(_) {}
}, true);
var encoding = dart.privateName(io, "IOSink.encoding");
io.IOSink = class IOSink extends core.Object {
  get encoding() {
    return this[encoding];
  }
  set encoding(value) {
    this[encoding] = value;
  }
  static new(target, opts) {
    let encoding = opts && 'encoding' in opts ? opts.encoding : C108 || CT.C108;
    return new io._IOSinkImpl.new(target, encoding);
  }
};
(io.IOSink[dart.mixinNew] = function() {
  this[encoding] = null;
}).prototype = io.IOSink.prototype;
dart.addTypeTests(io.IOSink);
dart.addTypeCaches(io.IOSink);
io.IOSink[dart.implements] = () => [async.StreamSink$(core.List$(core.int)), core.StringSink];
dart.setLibraryUri(io.IOSink, L48);
dart.setFieldSignature(io.IOSink, () => ({
  __proto__: dart.getFields(io.IOSink.__proto__),
  encoding: dart.fieldType(convert.Encoding)
}));
var _doneCompleter = dart.privateName(io, "_doneCompleter");
var _controllerInstance = dart.privateName(io, "_controllerInstance");
var _controllerCompleter = dart.privateName(io, "_controllerCompleter");
var _isClosed$ = dart.privateName(io, "_isClosed");
var _isBound = dart.privateName(io, "_isBound");
var _hasError$ = dart.privateName(io, "_hasError");
var _target$0 = dart.privateName(io, "_target");
var _closeTarget = dart.privateName(io, "_closeTarget");
var _completeDoneValue = dart.privateName(io, "_completeDoneValue");
var _completeDoneError = dart.privateName(io, "_completeDoneError");
const _is__StreamSinkImpl_default = Symbol('_is__StreamSinkImpl_default');
io._StreamSinkImpl$ = dart.generic(T => {
  var StreamOfTL = () => (StreamOfTL = dart.constFn(async.Stream$(T)))();
  var StreamControllerOfTL = () => (StreamControllerOfTL = dart.constFn(async.StreamController$(T)))();
  class _StreamSinkImpl extends core.Object {
    add(data) {
      T.as(data);
      if (dart.test(this[_isClosed$])) {
        dart.throw(new core.StateError.new("StreamSink is closed"));
      }
      this[_controller].add(data);
    }
    addError(error, stackTrace = null) {
      if (dart.test(this[_isClosed$])) {
        dart.throw(new core.StateError.new("StreamSink is closed"));
      }
      this[_controller].addError(error, stackTrace);
    }
    addStream(stream) {
      let t84;
      StreamOfTL().as(stream);
      if (dart.test(this[_isBound])) {
        dart.throw(new core.StateError.new("StreamSink is already bound to a stream"));
      }
      if (dart.test(this[_hasError$])) return this.done;
      this[_isBound] = true;
      let future = this[_controllerCompleter] == null ? this[_target$0].addStream(stream) : this[_controllerCompleter].future.then(dart.dynamic, dart.fn(_ => this[_target$0].addStream(stream), dynamicToFutureL()));
      t84 = this[_controllerInstance];
      t84 == null ? null : t84.close();
      return future.whenComplete(dart.fn(() => {
        this[_isBound] = false;
      }, VoidToNullN()));
    }
    flush() {
      if (dart.test(this[_isBound])) {
        dart.throw(new core.StateError.new("StreamSink is bound to a stream"));
      }
      if (this[_controllerInstance] == null) return async.Future.value(this);
      this[_isBound] = true;
      let future = this[_controllerCompleter].future;
      this[_controllerInstance].close();
      return future.whenComplete(dart.fn(() => {
        this[_isBound] = false;
      }, VoidToNullN()));
    }
    close() {
      if (dart.test(this[_isBound])) {
        dart.throw(new core.StateError.new("StreamSink is bound to a stream"));
      }
      if (!dart.test(this[_isClosed$])) {
        this[_isClosed$] = true;
        if (this[_controllerInstance] != null) {
          this[_controllerInstance].close();
        } else {
          this[_closeTarget]();
        }
      }
      return this.done;
    }
    [_closeTarget]() {
      this[_target$0].close().then(dart.void, dart.bind(this, _completeDoneValue), {onError: dart.bind(this, _completeDoneError)});
    }
    get done() {
      return this[_doneCompleter].future;
    }
    [_completeDoneValue](value) {
      if (!dart.test(this[_doneCompleter].isCompleted)) {
        this[_doneCompleter].complete(value);
      }
    }
    [_completeDoneError](error, stackTrace) {
      if (!dart.test(this[_doneCompleter].isCompleted)) {
        this[_hasError$] = true;
        this[_doneCompleter].completeError(error, stackTrace);
      }
    }
    get [_controller]() {
      if (dart.test(this[_isBound])) {
        dart.throw(new core.StateError.new("StreamSink is bound to a stream"));
      }
      if (dart.test(this[_isClosed$])) {
        dart.throw(new core.StateError.new("StreamSink is closed"));
      }
      if (this[_controllerInstance] == null) {
        this[_controllerInstance] = StreamControllerOfTL().new({sync: true});
        this[_controllerCompleter] = async.Completer.new();
        this[_target$0].addStream(this[_controller].stream).then(core.Null, dart.fn(_ => {
          if (dart.test(this[_isBound])) {
            this[_controllerCompleter].complete(this);
            this[_controllerCompleter] = null;
            this[_controllerInstance] = null;
          } else {
            this[_closeTarget]();
          }
        }, dynamicToNullN()), {onError: dart.fn((error, stackTrace) => {
            if (dart.test(this[_isBound])) {
              this[_controllerCompleter].completeError(error, core.StackTrace.as(stackTrace));
              this[_controllerCompleter] = null;
              this[_controllerInstance] = null;
            } else {
              this[_completeDoneError](error, core.StackTrace.as(stackTrace));
            }
          }, dynamicAnddynamicToNullN())});
      }
      return this[_controllerInstance];
    }
  }
  (_StreamSinkImpl.new = function(_target) {
    this[_doneCompleter] = async.Completer.new();
    this[_controllerInstance] = null;
    this[_controllerCompleter] = null;
    this[_isClosed$] = false;
    this[_isBound] = false;
    this[_hasError$] = false;
    this[_target$0] = _target;
    ;
  }).prototype = _StreamSinkImpl.prototype;
  dart.addTypeTests(_StreamSinkImpl);
  _StreamSinkImpl.prototype[_is__StreamSinkImpl_default] = true;
  dart.addTypeCaches(_StreamSinkImpl);
  _StreamSinkImpl[dart.implements] = () => [async.StreamSink$(T)];
  dart.setMethodSignature(_StreamSinkImpl, () => ({
    __proto__: dart.getMethods(_StreamSinkImpl.__proto__),
    add: dart.fnType(dart.void, [core.Object]),
    addError: dart.fnType(dart.void, [core.Object], [core.StackTrace]),
    addStream: dart.fnType(async.Future, [core.Object]),
    flush: dart.fnType(async.Future, []),
    close: dart.fnType(async.Future, []),
    [_closeTarget]: dart.fnType(dart.void, []),
    [_completeDoneValue]: dart.fnType(dart.void, [dart.dynamic]),
    [_completeDoneError]: dart.fnType(dart.void, [dart.dynamic, core.StackTrace])
  }));
  dart.setGetterSignature(_StreamSinkImpl, () => ({
    __proto__: dart.getGetters(_StreamSinkImpl.__proto__),
    done: async.Future,
    [_controller]: async.StreamController$(T)
  }));
  dart.setLibraryUri(_StreamSinkImpl, L48);
  dart.setFieldSignature(_StreamSinkImpl, () => ({
    __proto__: dart.getFields(_StreamSinkImpl.__proto__),
    [_target$0]: dart.finalFieldType(async.StreamConsumer$(T)),
    [_doneCompleter]: dart.finalFieldType(async.Completer),
    [_controllerInstance]: dart.fieldType(async.StreamController$(T)),
    [_controllerCompleter]: dart.fieldType(async.Completer),
    [_isClosed$]: dart.fieldType(core.bool),
    [_isBound]: dart.fieldType(core.bool),
    [_hasError$]: dart.fieldType(core.bool)
  }));
  return _StreamSinkImpl;
});
io._StreamSinkImpl = io._StreamSinkImpl$();
dart.addTypeTests(io._StreamSinkImpl, _is__StreamSinkImpl_default);
var _encodingMutable = dart.privateName(io, "_encodingMutable");
var _encoding$ = dart.privateName(io, "_encoding");
io._IOSinkImpl = class _IOSinkImpl extends io._StreamSinkImpl$(core.List$(core.int)) {
  get encoding() {
    return this[_encoding$];
  }
  set encoding(value) {
    if (!dart.test(this[_encodingMutable])) {
      dart.throw(new core.StateError.new("IOSink encoding is not mutable"));
    }
    this[_encoding$] = value;
  }
  write(obj) {
    let string = dart.str(obj);
    if (string[$isEmpty]) return;
    this.add(this[_encoding$].encode(string));
  }
  writeAll(objects, separator = "") {
    let iterator = objects[$iterator];
    if (!dart.test(iterator.moveNext())) return;
    if (separator[$isEmpty]) {
      do {
        this.write(iterator.current);
      } while (dart.test(iterator.moveNext()));
    } else {
      this.write(iterator.current);
      while (dart.test(iterator.moveNext())) {
        this.write(separator);
        this.write(iterator.current);
      }
    }
  }
  writeln(object = "") {
    this.write(object);
    this.write("\n");
  }
  writeCharCode(charCode) {
    this.write(core.String.fromCharCode(charCode));
  }
};
(io._IOSinkImpl.new = function(target, _encoding) {
  this[_encodingMutable] = true;
  this[_encoding$] = _encoding;
  io._IOSinkImpl.__proto__.new.call(this, target);
  ;
}).prototype = io._IOSinkImpl.prototype;
dart.addTypeTests(io._IOSinkImpl);
dart.addTypeCaches(io._IOSinkImpl);
io._IOSinkImpl[dart.implements] = () => [io.IOSink];
dart.setMethodSignature(io._IOSinkImpl, () => ({
  __proto__: dart.getMethods(io._IOSinkImpl.__proto__),
  write: dart.fnType(dart.void, [core.Object]),
  writeAll: dart.fnType(dart.void, [core.Iterable], [core.String]),
  writeln: dart.fnType(dart.void, [], [core.Object]),
  writeCharCode: dart.fnType(dart.void, [core.int])
}));
dart.setGetterSignature(io._IOSinkImpl, () => ({
  __proto__: dart.getGetters(io._IOSinkImpl.__proto__),
  encoding: convert.Encoding
}));
dart.setSetterSignature(io._IOSinkImpl, () => ({
  __proto__: dart.getSetters(io._IOSinkImpl.__proto__),
  encoding: convert.Encoding
}));
dart.setLibraryUri(io._IOSinkImpl, L48);
dart.setFieldSignature(io._IOSinkImpl, () => ({
  __proto__: dart.getFields(io._IOSinkImpl.__proto__),
  [_encoding$]: dart.fieldType(convert.Encoding),
  [_encodingMutable]: dart.fieldType(core.bool)
}));
io._IOService = class _IOService extends core.Object {
  static _dispatch(request, data) {
    dart.throw(new core.UnsupportedError.new("_IOService._dispatch"));
  }
};
(io._IOService.new = function() {
  ;
}).prototype = io._IOService.prototype;
dart.addTypeTests(io._IOService);
dart.addTypeCaches(io._IOService);
dart.setLibraryUri(io._IOService, L48);
dart.defineLazy(io._IOService, {
  /*io._IOService.fileExists*/get fileExists() {
    return 0;
  },
  /*io._IOService.fileCreate*/get fileCreate() {
    return 1;
  },
  /*io._IOService.fileDelete*/get fileDelete() {
    return 2;
  },
  /*io._IOService.fileRename*/get fileRename() {
    return 3;
  },
  /*io._IOService.fileCopy*/get fileCopy() {
    return 4;
  },
  /*io._IOService.fileOpen*/get fileOpen() {
    return 5;
  },
  /*io._IOService.fileResolveSymbolicLinks*/get fileResolveSymbolicLinks() {
    return 6;
  },
  /*io._IOService.fileClose*/get fileClose() {
    return 7;
  },
  /*io._IOService.filePosition*/get filePosition() {
    return 8;
  },
  /*io._IOService.fileSetPosition*/get fileSetPosition() {
    return 9;
  },
  /*io._IOService.fileTruncate*/get fileTruncate() {
    return 10;
  },
  /*io._IOService.fileLength*/get fileLength() {
    return 11;
  },
  /*io._IOService.fileLengthFromPath*/get fileLengthFromPath() {
    return 12;
  },
  /*io._IOService.fileLastAccessed*/get fileLastAccessed() {
    return 13;
  },
  /*io._IOService.fileSetLastAccessed*/get fileSetLastAccessed() {
    return 14;
  },
  /*io._IOService.fileLastModified*/get fileLastModified() {
    return 15;
  },
  /*io._IOService.fileSetLastModified*/get fileSetLastModified() {
    return 16;
  },
  /*io._IOService.fileFlush*/get fileFlush() {
    return 17;
  },
  /*io._IOService.fileReadByte*/get fileReadByte() {
    return 18;
  },
  /*io._IOService.fileWriteByte*/get fileWriteByte() {
    return 19;
  },
  /*io._IOService.fileRead*/get fileRead() {
    return 20;
  },
  /*io._IOService.fileReadInto*/get fileReadInto() {
    return 21;
  },
  /*io._IOService.fileWriteFrom*/get fileWriteFrom() {
    return 22;
  },
  /*io._IOService.fileCreateLink*/get fileCreateLink() {
    return 23;
  },
  /*io._IOService.fileDeleteLink*/get fileDeleteLink() {
    return 24;
  },
  /*io._IOService.fileRenameLink*/get fileRenameLink() {
    return 25;
  },
  /*io._IOService.fileLinkTarget*/get fileLinkTarget() {
    return 26;
  },
  /*io._IOService.fileType*/get fileType() {
    return 27;
  },
  /*io._IOService.fileIdentical*/get fileIdentical() {
    return 28;
  },
  /*io._IOService.fileStat*/get fileStat() {
    return 29;
  },
  /*io._IOService.fileLock*/get fileLock() {
    return 30;
  },
  /*io._IOService.socketLookup*/get socketLookup() {
    return 31;
  },
  /*io._IOService.socketListInterfaces*/get socketListInterfaces() {
    return 32;
  },
  /*io._IOService.socketReverseLookup*/get socketReverseLookup() {
    return 33;
  },
  /*io._IOService.directoryCreate*/get directoryCreate() {
    return 34;
  },
  /*io._IOService.directoryDelete*/get directoryDelete() {
    return 35;
  },
  /*io._IOService.directoryExists*/get directoryExists() {
    return 36;
  },
  /*io._IOService.directoryCreateTemp*/get directoryCreateTemp() {
    return 37;
  },
  /*io._IOService.directoryListStart*/get directoryListStart() {
    return 38;
  },
  /*io._IOService.directoryListNext*/get directoryListNext() {
    return 39;
  },
  /*io._IOService.directoryListStop*/get directoryListStop() {
    return 40;
  },
  /*io._IOService.directoryRename*/get directoryRename() {
    return 41;
  },
  /*io._IOService.sslProcessFilter*/get sslProcessFilter() {
    return 42;
  }
}, true);
io.Link = class Link extends core.Object {
  static new(path) {
    let overrides = io.IOOverrides.current;
    if (overrides == null) {
      return new io._Link.new(path);
    }
    return overrides.createLink(path);
  }
  static fromRawPath(rawPath) {
    return new io._Link.fromRawPath(rawPath);
  }
  static fromUri(uri) {
    return io.Link.new(uri.toFilePath());
  }
};
(io.Link[dart.mixinNew] = function() {
}).prototype = io.Link.prototype;
dart.addTypeTests(io.Link);
dart.addTypeCaches(io.Link);
io.Link[dart.implements] = () => [io.FileSystemEntity];
dart.setLibraryUri(io.Link, L48);
var _exceptionFromResponse = dart.privateName(io, "_exceptionFromResponse");
var _path$2 = dart.privateName(io, "_Link._path");
var _rawPath$2 = dart.privateName(io, "_Link._rawPath");
io._Link = class _Link extends io.FileSystemEntity {
  get [_path$]() {
    return this[_path$2];
  }
  set [_path$](value) {
    this[_path$2] = value;
  }
  get [_rawPath$]() {
    return this[_rawPath$2];
  }
  set [_rawPath$](value) {
    this[_rawPath$2] = value;
  }
  get path() {
    return this[_path$];
  }
  toString() {
    return "Link: '" + dart.str(this.path) + "'";
  }
  exists() {
    return io.FileSystemEntity._isLinkRaw(this[_rawPath$]);
  }
  existsSync() {
    return io.FileSystemEntity._isLinkRawSync(this[_rawPath$]);
  }
  get absolute() {
    return io.Link.fromRawPath(this[_rawAbsolutePath]);
  }
  create(target, opts) {
    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
    let result = dart.test(recursive) ? this.parent.create({recursive: true}) : FutureOfNullN().value(null);
    return result.then(dart.dynamic, dart.fn(_ => io._File._dispatchWithNamespace(23, [null, this[_rawPath$], target]), DirectoryLToFutureL())).then(io.Link, dart.fn(response => {
      if (dart.test(this[_isErrorResponse](response))) {
        dart.throw(this[_exceptionFromResponse](response, "Cannot create link to target '" + dart.str(target) + "'", this.path));
      }
      return this;
    }, dynamicTo_LinkL()));
  }
  createSync(target, opts) {
    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
    if (dart.test(recursive)) {
      this.parent.createSync({recursive: true});
    }
    let result = io._File._createLink(io._Namespace._namespace, this[_rawPath$], target);
    io._Link.throwIfError(result, "Cannot create link", this.path);
  }
  updateSync(target) {
    this.deleteSync();
    this.createSync(target);
  }
  update(target) {
    return this.delete().then(io.Link, dart.fn(_ => this.create(target), FileSystemEntityLToFutureLOfLinkL()));
  }
  [_delete](opts) {
    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
    if (dart.test(recursive)) {
      return io.Directory.fromRawPath(this[_rawPath$]).delete({recursive: true}).then(io.Link, dart.fn(_ => this, FileSystemEntityLTo_LinkL()));
    }
    return io._File._dispatchWithNamespace(24, [null, this[_rawPath$]]).then(io.Link, dart.fn(response => {
      if (dart.test(this[_isErrorResponse](response))) {
        dart.throw(this[_exceptionFromResponse](response, "Cannot delete link", this.path));
      }
      return this;
    }, dynamicTo_LinkL()));
  }
  [_deleteSync](opts) {
    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
    if (dart.test(recursive)) {
      return io.Directory.fromRawPath(this[_rawPath$]).deleteSync({recursive: true});
    }
    let result = io._File._deleteLinkNative(io._Namespace._namespace, this[_rawPath$]);
    io._Link.throwIfError(result, "Cannot delete link", this.path);
  }
  rename(newPath) {
    return io._File._dispatchWithNamespace(25, [null, this[_rawPath$], newPath]).then(io.Link, dart.fn(response => {
      if (dart.test(this[_isErrorResponse](response))) {
        dart.throw(this[_exceptionFromResponse](response, "Cannot rename link to '" + dart.str(newPath) + "'", this.path));
      }
      return io.Link.new(newPath);
    }, dynamicToLinkL()));
  }
  renameSync(newPath) {
    let result = io._File._renameLink(io._Namespace._namespace, this[_rawPath$], newPath);
    io._Link.throwIfError(result, "Cannot rename link '" + dart.str(this.path) + "' to '" + dart.str(newPath) + "'");
    return io.Link.new(newPath);
  }
  target() {
    return io._File._dispatchWithNamespace(26, [null, this[_rawPath$]]).then(core.String, dart.fn(response => {
      if (dart.test(this[_isErrorResponse](response))) {
        dart.throw(this[_exceptionFromResponse](response, "Cannot get target of link", this.path));
      }
      return FutureOrOfStringL().as(response);
    }, dynamicToFutureOrLOfStringL()));
  }
  targetSync() {
    let result = io._File._linkTarget(io._Namespace._namespace, this[_rawPath$]);
    io._Link.throwIfError(result, "Cannot read link", this.path);
    return core.String.as(result);
  }
  static throwIfError(result, msg, path = "") {
    if (io.OSError.is(result)) {
      dart.throw(new io.FileSystemException.new(msg, path, result));
    }
  }
  [_isErrorResponse](response) {
    return core.List.is(response) && !dart.equals(response[$_get](0), 0);
  }
  [_exceptionFromResponse](response, message, path) {
    if (!dart.test(this[_isErrorResponse](response))) dart.assertFailed(null, L53, 290, 12, "_isErrorResponse(response)");
    switch (dart.dsend(response, '_get', [0])) {
      case 1:
      {
        return new core.ArgumentError.new();
      }
      case 2:
      {
        let err = new io.OSError.new(core.String.as(dart.dsend(response, '_get', [2])), core.int.as(dart.dsend(response, '_get', [1])));
        return new io.FileSystemException.new(message, path, err);
      }
      default:
      {
        return core.Exception.new("Unknown error");
      }
    }
  }
};
(io._Link.new = function(path) {
  this[_path$2] = null;
  this[_rawPath$2] = null;
  io._Link.__proto__.new.call(this);
  core.ArgumentError.checkNotNull(core.String, path, "path");
  this[_path$] = path;
  this[_rawPath$] = io.FileSystemEntity._toUtf8Array(path);
}).prototype = io._Link.prototype;
(io._Link.fromRawPath = function(rawPath) {
  this[_path$2] = null;
  this[_rawPath$2] = null;
  io._Link.__proto__.new.call(this);
  this[_rawPath$] = io.FileSystemEntity._toNullTerminatedUtf8Array(rawPath);
  this[_path$] = io.FileSystemEntity._toStringFromUtf8Array(rawPath);
}).prototype = io._Link.prototype;
dart.addTypeTests(io._Link);
dart.addTypeCaches(io._Link);
io._Link[dart.implements] = () => [io.Link];
dart.setMethodSignature(io._Link, () => ({
  __proto__: dart.getMethods(io._Link.__proto__),
  exists: dart.fnType(async.Future$(core.bool), []),
  existsSync: dart.fnType(core.bool, []),
  create: dart.fnType(async.Future$(io.Link), [core.String], {recursive: core.bool}, {}),
  createSync: dart.fnType(dart.void, [core.String], {recursive: core.bool}, {}),
  updateSync: dart.fnType(dart.void, [core.String]),
  update: dart.fnType(async.Future$(io.Link), [core.String]),
  [_delete]: dart.fnType(async.Future$(io.Link), [], {recursive: core.bool}, {}),
  [_deleteSync]: dart.fnType(dart.void, [], {recursive: core.bool}, {}),
  rename: dart.fnType(async.Future$(io.Link), [core.String]),
  renameSync: dart.fnType(io.Link, [core.String]),
  target: dart.fnType(async.Future$(core.String), []),
  targetSync: dart.fnType(core.String, []),
  [_isErrorResponse]: dart.fnType(core.bool, [dart.dynamic]),
  [_exceptionFromResponse]: dart.fnType(dart.dynamic, [dart.dynamic, core.String, core.String])
}));
dart.setGetterSignature(io._Link, () => ({
  __proto__: dart.getGetters(io._Link.__proto__),
  path: core.String,
  absolute: io.Link
}));
dart.setLibraryUri(io._Link, L48);
dart.setFieldSignature(io._Link, () => ({
  __proto__: dart.getFields(io._Link.__proto__),
  [_path$]: dart.fieldType(core.String),
  [_rawPath$]: dart.fieldType(typed_data.Uint8List)
}));
dart.defineExtensionMethods(io._Link, ['toString']);
io._Namespace = class _Namespace extends core.Object {
  static get _namespace() {
    dart.throw(new core.UnsupportedError.new("_Namespace"));
  }
  static get _namespacePointer() {
    dart.throw(new core.UnsupportedError.new("_Namespace"));
  }
  static _setupNamespace(namespace) {
    dart.throw(new core.UnsupportedError.new("_Namespace"));
  }
};
(io._Namespace.new = function() {
  ;
}).prototype = io._Namespace.prototype;
dart.addTypeTests(io._Namespace);
dart.addTypeCaches(io._Namespace);
dart.setLibraryUri(io._Namespace, L48);
var C129;
io._NetworkProfiling = class _NetworkProfiling extends core.Object {
  static _registerServiceExtension() {
    developer.registerExtension(io._NetworkProfiling._kGetHttpEnableTimelineLogging, C129 || CT.C129);
    developer.registerExtension(io._NetworkProfiling._kSetHttpEnableTimelineLogging, C129 || CT.C129);
    developer.registerExtension("ext.dart.io.getSocketProfile", C129 || CT.C129);
    developer.registerExtension(io._NetworkProfiling._kStartSocketProfilingRPC, C129 || CT.C129);
    developer.registerExtension(io._NetworkProfiling._kPauseSocketProfilingRPC, C129 || CT.C129);
    developer.registerExtension("ext.dart.io.clearSocketProfile", C129 || CT.C129);
    developer.registerExtension("ext.dart.io.getVersion", C129 || CT.C129);
  }
  static _serviceExtensionHandler(method, parameters) {
    try {
      let responseJson = null;
      switch (method) {
        case "ext.dart.io.getHttpEnableTimelineLogging":
        {
          responseJson = io._getHttpEnableTimelineLogging();
          break;
        }
        case "ext.dart.io.setHttpEnableTimelineLogging":
        {
          responseJson = io._setHttpEnableTimelineLogging(parameters);
          break;
        }
        case "ext.dart.io.getSocketProfile":
        {
          responseJson = io._SocketProfile.toJson();
          break;
        }
        case "ext.dart.io.startSocketProfiling":
        {
          responseJson = io._SocketProfile.start();
          break;
        }
        case "ext.dart.io.pauseSocketProfiling":
        {
          responseJson = io._SocketProfile.pause();
          break;
        }
        case "ext.dart.io.clearSocketProfile":
        {
          responseJson = io._SocketProfile.clear();
          break;
        }
        case "ext.dart.io.getVersion":
        {
          responseJson = io._NetworkProfiling.getVersion();
          break;
        }
        default:
        {
          return FutureOfServiceExtensionResponseL().value(new developer.ServiceExtensionResponse.error(-32000, "Method " + dart.str(method) + " does not exist"));
        }
      }
      return FutureOfServiceExtensionResponseL().value(new developer.ServiceExtensionResponse.result(responseJson));
    } catch (e) {
      let errorMessage = dart.getThrown(e);
      return FutureOfServiceExtensionResponseL().value(new developer.ServiceExtensionResponse.error(-32602, core.String.as(errorMessage)));
    }
  }
  static getVersion() {
    return convert.json.encode(new (IdentityMapOfStringL$ObjectL()).from(["type", "Version", "major", 1, "minor", 1]));
  }
};
(io._NetworkProfiling.new = function() {
  ;
}).prototype = io._NetworkProfiling.prototype;
dart.addTypeTests(io._NetworkProfiling);
dart.addTypeCaches(io._NetworkProfiling);
dart.setLibraryUri(io._NetworkProfiling, L48);
dart.defineLazy(io._NetworkProfiling, {
  /*io._NetworkProfiling._kGetHttpEnableTimelineLogging*/get _kGetHttpEnableTimelineLogging() {
    return "ext.dart.io.getHttpEnableTimelineLogging";
  },
  /*io._NetworkProfiling._kSetHttpEnableTimelineLogging*/get _kSetHttpEnableTimelineLogging() {
    return "ext.dart.io.setHttpEnableTimelineLogging";
  },
  /*io._NetworkProfiling._kClearSocketProfileRPC*/get _kClearSocketProfileRPC() {
    return "ext.dart.io.clearSocketProfile";
  },
  /*io._NetworkProfiling._kGetSocketProfileRPC*/get _kGetSocketProfileRPC() {
    return "ext.dart.io.getSocketProfile";
  },
  /*io._NetworkProfiling._kPauseSocketProfilingRPC*/get _kPauseSocketProfilingRPC() {
    return "ext.dart.io.pauseSocketProfiling";
  },
  /*io._NetworkProfiling._kStartSocketProfilingRPC*/get _kStartSocketProfilingRPC() {
    return "ext.dart.io.startSocketProfiling";
  },
  /*io._NetworkProfiling._kGetVersionRPC*/get _kGetVersionRPC() {
    return "ext.dart.io.getVersion";
  }
}, true);
var _name$4 = dart.privateName(io, "_name");
var C130;
var C131;
var C132;
var C133;
var C134;
var C135;
var C136;
io._SocketProfile = class _SocketProfile extends core.Object {
  static toJson() {
    return convert.json.encode(new (IdentityMapOfStringL$ObjectL()).from(["type", "SocketProfile", "sockets", io._SocketProfile._idToSocketStatistic[$values][$map](MapOfStringL$dynamic(), dart.fn(f => f.toMap(), _SocketStatisticLToMapLOfStringL$dynamic()))[$toList]()]));
  }
  static collectNewSocket(id, type, addr, port) {
    io._SocketProfile.collectStatistic(id, io._SocketProfileType.startTime);
    io._SocketProfile.collectStatistic(id, io._SocketProfileType.socketType, type);
    io._SocketProfile.collectStatistic(id, io._SocketProfileType.address, addr);
    io._SocketProfile.collectStatistic(id, io._SocketProfileType.port, port);
  }
  static collectStatistic(id, type, object = null) {
    let t86, t85, t85$, t85$0, t85$1, t85$2;
    if (!dart.test(io._SocketProfile._enableSocketProfiling)) {
      return;
    }
    if (!dart.test(io._SocketProfile._idToSocketStatistic[$containsKey](id)) && !dart.equals(type, io._SocketProfileType.startTime)) return;
    t85 = io._SocketProfile._idToSocketStatistic;
    t86 = id;
    t85[$_get](t86) == null ? t85[$_set](t86, new io._SocketStatistic.new(id)) : null;
    let stats = io._SocketProfile._idToSocketStatistic[$_get](id);
    switch (type) {
      case C130 || CT.C130:
      {
        stats.startTime = developer.Timeline.now;
        break;
      }
      case C131 || CT.C131:
      {
        stats.endTime = developer.Timeline.now;
        break;
      }
      case C132 || CT.C132:
      {
        if (!io.InternetAddress.is(object)) dart.assertFailed(null, L54, 152, 16, "object is InternetAddress");
        stats.address = dart.toString(io.InternetAddress.as(object));
        break;
      }
      case C133 || CT.C133:
      {
        if (!core.int.is(object)) dart.assertFailed(null, L54, 156, 16, "object is int");
        stats.port = core.int.as(object);
        break;
      }
      case C134 || CT.C134:
      {
        if (!(typeof object == 'string')) dart.assertFailed(null, L54, 160, 16, "object is String");
        stats.socketType = core.String.as(object);
        break;
      }
      case C135 || CT.C135:
      {
        if (object == null) return;
        if (!core.int.is(object)) dart.assertFailed(null, L54, 165, 16, "object is int");
        t85$ = stats;
        t85$.readBytes == null ? t85$.readBytes = 0 : null;
        t85$0 = stats;
        t85$0.readBytes = dart.asNullableInt(dart.notNull(t85$0.readBytes) + dart.notNull(core.num.as(object)));
        stats.lastReadTime = developer.Timeline.now;
        break;
      }
      case C136 || CT.C136:
      {
        if (object == null) return;
        if (!core.int.is(object)) dart.assertFailed(null, L54, 172, 16, "object is int");
        t85$1 = stats;
        t85$1.writeBytes == null ? t85$1.writeBytes = 0 : null;
        t85$2 = stats;
        t85$2.writeBytes = dart.asNullableInt(dart.notNull(t85$2.writeBytes) + dart.notNull(core.num.as(object)));
        stats.lastWriteTime = developer.Timeline.now;
        break;
      }
      default:
      {
        dart.throw(new core.ArgumentError.new("type " + dart.str(type) + " does not exist"));
        break;
      }
    }
  }
  static start() {
    io._SocketProfile._enableSocketProfiling = true;
    return io._success();
  }
  static pause() {
    io._SocketProfile._enableSocketProfiling = false;
    return io._success();
  }
  static clear() {
    let t85;
    t85 = io._SocketProfile._idToSocketStatistic;
    t85 == null ? null : t85[$clear]();
    return io._success();
  }
};
(io._SocketProfile.new = function() {
  ;
}).prototype = io._SocketProfile.prototype;
dart.addTypeTests(io._SocketProfile);
dart.addTypeCaches(io._SocketProfile);
dart.setLibraryUri(io._SocketProfile, L48);
dart.defineLazy(io._SocketProfile, {
  /*io._SocketProfile._kType*/get _kType() {
    return "SocketProfile";
  },
  /*io._SocketProfile._enableSocketProfiling*/get _enableSocketProfiling() {
    return false;
  },
  set _enableSocketProfiling(_) {},
  /*io._SocketProfile._idToSocketStatistic*/get _idToSocketStatistic() {
    return new (IdentityMapOfintL$_SocketStatisticL()).new();
  },
  set _idToSocketStatistic(_) {}
}, true);
var C137;
io._SocketProfileType = class _SocketProfileType extends core.Object {
  toString() {
    return this[_name$4];
  }
};
(io._SocketProfileType.new = function(index, _name) {
  this.index = index;
  this[_name$4] = _name;
  ;
}).prototype = io._SocketProfileType.prototype;
dart.addTypeTests(io._SocketProfileType);
dart.addTypeCaches(io._SocketProfileType);
dart.setLibraryUri(io._SocketProfileType, L48);
dart.setFieldSignature(io._SocketProfileType, () => ({
  __proto__: dart.getFields(io._SocketProfileType.__proto__),
  index: dart.finalFieldType(core.int),
  [_name$4]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(io._SocketProfileType, ['toString']);
io._SocketProfileType.startTime = C130 || CT.C130;
io._SocketProfileType.endTime = C131 || CT.C131;
io._SocketProfileType.address = C132 || CT.C132;
io._SocketProfileType.port = C133 || CT.C133;
io._SocketProfileType.socketType = C134 || CT.C134;
io._SocketProfileType.readBytes = C135 || CT.C135;
io._SocketProfileType.writeBytes = C136 || CT.C136;
io._SocketProfileType.values = C137 || CT.C137;
var _setIfNotNull = dart.privateName(io, "_setIfNotNull");
io._SocketStatistic = class _SocketStatistic extends core.Object {
  toMap() {
    let map = new (IdentityMapOfStringL$dynamic()).from(["id", this.id]);
    this[_setIfNotNull](map, "startTime", dart.toString(this.startTime));
    this[_setIfNotNull](map, "endTime", dart.toString(this.endTime));
    this[_setIfNotNull](map, "address", this.address);
    this[_setIfNotNull](map, "port", this.port);
    this[_setIfNotNull](map, "socketType", this.socketType);
    this[_setIfNotNull](map, "readBytes", this.readBytes);
    this[_setIfNotNull](map, "writeBytes", this.writeBytes);
    this[_setIfNotNull](map, "lastWriteTime", this.lastWriteTime);
    this[_setIfNotNull](map, "lastReadTime", this.lastReadTime);
    return map;
  }
  [_setIfNotNull](json, key, value) {
    if (value == null) return;
    json[$_set](key, value);
  }
};
(io._SocketStatistic.new = function(id) {
  this.startTime = null;
  this.endTime = null;
  this.address = null;
  this.port = null;
  this.socketType = null;
  this.readBytes = 0;
  this.writeBytes = 0;
  this.lastWriteTime = null;
  this.lastReadTime = null;
  this.id = id;
  ;
}).prototype = io._SocketStatistic.prototype;
dart.addTypeTests(io._SocketStatistic);
dart.addTypeCaches(io._SocketStatistic);
dart.setMethodSignature(io._SocketStatistic, () => ({
  __proto__: dart.getMethods(io._SocketStatistic.__proto__),
  toMap: dart.fnType(core.Map$(core.String, dart.dynamic), []),
  [_setIfNotNull]: dart.fnType(dart.void, [core.Map$(core.String, core.Object), core.String, core.Object])
}));
dart.setLibraryUri(io._SocketStatistic, L48);
dart.setFieldSignature(io._SocketStatistic, () => ({
  __proto__: dart.getFields(io._SocketStatistic.__proto__),
  id: dart.finalFieldType(core.int),
  startTime: dart.fieldType(core.int),
  endTime: dart.fieldType(core.int),
  address: dart.fieldType(core.String),
  port: dart.fieldType(core.int),
  socketType: dart.fieldType(core.String),
  readBytes: dart.fieldType(core.int),
  writeBytes: dart.fieldType(core.int),
  lastWriteTime: dart.fieldType(core.int),
  lastReadTime: dart.fieldType(core.int)
}));
io.IOOverrides = class IOOverrides extends core.Object {
  static get current() {
    let t85;
    return io.IOOverrides.as((t85 = async.Zone.current._get(io._ioOverridesToken), t85 == null ? io.IOOverrides._global : t85));
  }
  static set global(overrides) {
    io.IOOverrides._global = overrides;
  }
  static runZoned(R, body, opts) {
    let createDirectory = opts && 'createDirectory' in opts ? opts.createDirectory : null;
    let getCurrentDirectory = opts && 'getCurrentDirectory' in opts ? opts.getCurrentDirectory : null;
    let setCurrentDirectory = opts && 'setCurrentDirectory' in opts ? opts.setCurrentDirectory : null;
    let getSystemTempDirectory = opts && 'getSystemTempDirectory' in opts ? opts.getSystemTempDirectory : null;
    let createFile = opts && 'createFile' in opts ? opts.createFile : null;
    let stat = opts && 'stat' in opts ? opts.stat : null;
    let statSync = opts && 'statSync' in opts ? opts.statSync : null;
    let fseIdentical = opts && 'fseIdentical' in opts ? opts.fseIdentical : null;
    let fseIdenticalSync = opts && 'fseIdenticalSync' in opts ? opts.fseIdenticalSync : null;
    let fseGetType = opts && 'fseGetType' in opts ? opts.fseGetType : null;
    let fseGetTypeSync = opts && 'fseGetTypeSync' in opts ? opts.fseGetTypeSync : null;
    let fsWatch = opts && 'fsWatch' in opts ? opts.fsWatch : null;
    let fsWatchIsSupported = opts && 'fsWatchIsSupported' in opts ? opts.fsWatchIsSupported : null;
    let createLink = opts && 'createLink' in opts ? opts.createLink : null;
    let socketConnect = opts && 'socketConnect' in opts ? opts.socketConnect : null;
    let socketStartConnect = opts && 'socketStartConnect' in opts ? opts.socketStartConnect : null;
    let serverSocketBind = opts && 'serverSocketBind' in opts ? opts.serverSocketBind : null;
    let overrides = new io._IOOverridesScope.new(createDirectory, getCurrentDirectory, setCurrentDirectory, getSystemTempDirectory, createFile, stat, statSync, fseIdentical, fseIdenticalSync, fseGetType, fseGetTypeSync, fsWatch, fsWatchIsSupported, createLink, socketConnect, socketStartConnect, serverSocketBind);
    return io._asyncRunZoned(R, body, {zoneValues: new _js_helper.LinkedMap.from([io._ioOverridesToken, overrides])});
  }
  static runWithIOOverrides(R, body, overrides) {
    return io._asyncRunZoned(R, body, {zoneValues: new _js_helper.LinkedMap.from([io._ioOverridesToken, overrides])});
  }
  createDirectory(path) {
    return new io._Directory.new(path);
  }
  getCurrentDirectory() {
    return io._Directory.current;
  }
  setCurrentDirectory(path) {
    io._Directory.current = path;
  }
  getSystemTempDirectory() {
    return io._Directory.systemTemp;
  }
  createFile(path) {
    return new io._File.new(path);
  }
  stat(path) {
    return io.FileStat._stat(path);
  }
  statSync(path) {
    return io.FileStat._statSyncInternal(path);
  }
  fseIdentical(path1, path2) {
    return io.FileSystemEntity._identical(path1, path2);
  }
  fseIdenticalSync(path1, path2) {
    return io.FileSystemEntity._identicalSync(path1, path2);
  }
  fseGetType(path, followLinks) {
    return io.FileSystemEntity._getTypeRequest(typed_data.Uint8List.as(convert.utf8.encode(path)), followLinks);
  }
  fseGetTypeSync(path, followLinks) {
    return io.FileSystemEntity._getTypeSyncHelper(typed_data.Uint8List.as(convert.utf8.encode(path)), followLinks);
  }
  fsWatch(path, events, recursive) {
    return io._FileSystemWatcher._watch(path, events, recursive);
  }
  fsWatchIsSupported() {
    return io._FileSystemWatcher.isSupported;
  }
  createLink(path) {
    return new io._Link.new(path);
  }
  socketConnect(host, port, opts) {
    let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
    let timeout = opts && 'timeout' in opts ? opts.timeout : null;
    return io.Socket._connect(host, port, {sourceAddress: sourceAddress, timeout: timeout});
  }
  socketStartConnect(host, port, opts) {
    let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
    return io.Socket._startConnect(host, port, {sourceAddress: sourceAddress});
  }
  serverSocketBind(address, port, opts) {
    let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
    let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
    let shared = opts && 'shared' in opts ? opts.shared : false;
    return io.ServerSocket._bind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared});
  }
};
(io.IOOverrides.new = function() {
  ;
}).prototype = io.IOOverrides.prototype;
dart.addTypeTests(io.IOOverrides);
dart.addTypeCaches(io.IOOverrides);
dart.setMethodSignature(io.IOOverrides, () => ({
  __proto__: dart.getMethods(io.IOOverrides.__proto__),
  createDirectory: dart.fnType(io.Directory, [core.String]),
  getCurrentDirectory: dart.fnType(io.Directory, []),
  setCurrentDirectory: dart.fnType(dart.void, [core.String]),
  getSystemTempDirectory: dart.fnType(io.Directory, []),
  createFile: dart.fnType(io.File, [core.String]),
  stat: dart.fnType(async.Future$(io.FileStat), [core.String]),
  statSync: dart.fnType(io.FileStat, [core.String]),
  fseIdentical: dart.fnType(async.Future$(core.bool), [core.String, core.String]),
  fseIdenticalSync: dart.fnType(core.bool, [core.String, core.String]),
  fseGetType: dart.fnType(async.Future$(io.FileSystemEntityType), [core.String, core.bool]),
  fseGetTypeSync: dart.fnType(io.FileSystemEntityType, [core.String, core.bool]),
  fsWatch: dart.fnType(async.Stream$(io.FileSystemEvent), [core.String, core.int, core.bool]),
  fsWatchIsSupported: dart.fnType(core.bool, []),
  createLink: dart.fnType(io.Link, [core.String]),
  socketConnect: dart.fnType(async.Future$(io.Socket), [dart.dynamic, core.int], {sourceAddress: dart.dynamic, timeout: core.Duration}, {}),
  socketStartConnect: dart.fnType(async.Future$(io.ConnectionTask$(io.Socket)), [dart.dynamic, core.int], {sourceAddress: dart.dynamic}, {}),
  serverSocketBind: dart.fnType(async.Future$(io.ServerSocket), [dart.dynamic, core.int], {backlog: core.int, shared: core.bool, v6Only: core.bool}, {})
}));
dart.setLibraryUri(io.IOOverrides, L48);
dart.defineLazy(io.IOOverrides, {
  /*io.IOOverrides._global*/get _global() {
    return null;
  },
  set _global(_) {}
}, true);
var _previous$4 = dart.privateName(io, "_previous");
var _createDirectory$ = dart.privateName(io, "_createDirectory");
var _getCurrentDirectory$ = dart.privateName(io, "_getCurrentDirectory");
var _setCurrentDirectory$ = dart.privateName(io, "_setCurrentDirectory");
var _getSystemTempDirectory$ = dart.privateName(io, "_getSystemTempDirectory");
var _createFile$ = dart.privateName(io, "_createFile");
var _stat$ = dart.privateName(io, "_stat");
var _statSync$ = dart.privateName(io, "_statSync");
var _fseIdentical$ = dart.privateName(io, "_fseIdentical");
var _fseIdenticalSync$ = dart.privateName(io, "_fseIdenticalSync");
var _fseGetType$ = dart.privateName(io, "_fseGetType");
var _fseGetTypeSync$ = dart.privateName(io, "_fseGetTypeSync");
var _fsWatch$ = dart.privateName(io, "_fsWatch");
var _fsWatchIsSupported$ = dart.privateName(io, "_fsWatchIsSupported");
var _createLink$ = dart.privateName(io, "_createLink");
var _socketConnect$ = dart.privateName(io, "_socketConnect");
var _socketStartConnect$ = dart.privateName(io, "_socketStartConnect");
var _serverSocketBind$ = dart.privateName(io, "_serverSocketBind");
io._IOOverridesScope = class _IOOverridesScope extends io.IOOverrides {
  createDirectory(path) {
    let t85;
    if (this[_createDirectory$] != null) {
      t85 = path;
      return this[_createDirectory$](t85);
    }
    if (this[_previous$4] != null) return this[_previous$4].createDirectory(path);
    return super.createDirectory(path);
  }
  getCurrentDirectory() {
    if (this[_getCurrentDirectory$] != null) return this[_getCurrentDirectory$]();
    if (this[_previous$4] != null) return this[_previous$4].getCurrentDirectory();
    return super.getCurrentDirectory();
  }
  setCurrentDirectory(path) {
    let t85;
    if (this[_setCurrentDirectory$] != null) {
      t85 = path;
      this[_setCurrentDirectory$](t85);
    } else if (this[_previous$4] != null)
      this[_previous$4].setCurrentDirectory(path);
    else
      super.setCurrentDirectory(path);
  }
  getSystemTempDirectory() {
    if (this[_getSystemTempDirectory$] != null) return this[_getSystemTempDirectory$]();
    if (this[_previous$4] != null) return this[_previous$4].getSystemTempDirectory();
    return super.getSystemTempDirectory();
  }
  createFile(path) {
    let t85;
    if (this[_createFile$] != null) {
      t85 = path;
      return this[_createFile$](t85);
    }
    if (this[_previous$4] != null) return this[_previous$4].createFile(path);
    return super.createFile(path);
  }
  stat(path) {
    let t85;
    if (this[_stat$] != null) {
      t85 = path;
      return this[_stat$](t85);
    }
    if (this[_previous$4] != null) return this[_previous$4].stat(path);
    return super.stat(path);
  }
  statSync(path) {
    let t85;
    if (this[_stat$] != null) {
      t85 = path;
      return this[_statSync$](t85);
    }
    if (this[_previous$4] != null) return this[_previous$4].statSync(path);
    return super.statSync(path);
  }
  fseIdentical(path1, path2) {
    let t86, t85;
    if (this[_fseIdentical$] != null) {
      t85 = path1;
      t86 = path2;
      return this[_fseIdentical$](t85, t86);
    }
    if (this[_previous$4] != null) return this[_previous$4].fseIdentical(path1, path2);
    return super.fseIdentical(path1, path2);
  }
  fseIdenticalSync(path1, path2) {
    let t86, t85;
    if (this[_fseIdenticalSync$] != null) {
      t85 = path1;
      t86 = path2;
      return this[_fseIdenticalSync$](t85, t86);
    }
    if (this[_previous$4] != null) return this[_previous$4].fseIdenticalSync(path1, path2);
    return super.fseIdenticalSync(path1, path2);
  }
  fseGetType(path, followLinks) {
    let t86, t85;
    if (this[_fseGetType$] != null) {
      t85 = path;
      t86 = followLinks;
      return this[_fseGetType$](t85, t86);
    }
    if (this[_previous$4] != null) return this[_previous$4].fseGetType(path, followLinks);
    return super.fseGetType(path, followLinks);
  }
  fseGetTypeSync(path, followLinks) {
    let t86, t85;
    if (this[_fseGetTypeSync$] != null) {
      t85 = path;
      t86 = followLinks;
      return this[_fseGetTypeSync$](t85, t86);
    }
    if (this[_previous$4] != null) return this[_previous$4].fseGetTypeSync(path, followLinks);
    return super.fseGetTypeSync(path, followLinks);
  }
  fsWatch(path, events, recursive) {
    let t87, t86, t85;
    if (this[_fsWatch$] != null) {
      t85 = path;
      t86 = events;
      t87 = recursive;
      return this[_fsWatch$](t85, t86, t87);
    }
    if (this[_previous$4] != null) return this[_previous$4].fsWatch(path, events, recursive);
    return super.fsWatch(path, events, recursive);
  }
  fsWatchIsSupported() {
    if (this[_fsWatchIsSupported$] != null) return this[_fsWatchIsSupported$]();
    if (this[_previous$4] != null) return this[_previous$4].fsWatchIsSupported();
    return super.fsWatchIsSupported();
  }
  createLink(path) {
    let t85;
    if (this[_createLink$] != null) {
      t85 = path;
      return this[_createLink$](t85);
    }
    if (this[_previous$4] != null) return this[_previous$4].createLink(path);
    return super.createLink(path);
  }
  socketConnect(host, port, opts) {
    let t88, t87, t86, t85;
    let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
    let timeout = opts && 'timeout' in opts ? opts.timeout : null;
    if (this[_socketConnect$] != null) {
      t85 = host;
      t86 = port;
      t87 = sourceAddress;
      t88 = timeout;
      return this[_socketConnect$](t85, t86, {sourceAddress: t87, timeout: t88});
    }
    if (this[_previous$4] != null) {
      return this[_previous$4].socketConnect(host, port, {sourceAddress: sourceAddress, timeout: timeout});
    }
    return super.socketConnect(host, port, {sourceAddress: sourceAddress, timeout: timeout});
  }
  socketStartConnect(host, port, opts) {
    let t87, t86, t85;
    let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
    if (this[_socketStartConnect$] != null) {
      t85 = host;
      t86 = port;
      t87 = sourceAddress;
      return this[_socketStartConnect$](t85, t86, {sourceAddress: t87});
    }
    if (this[_previous$4] != null) {
      return this[_previous$4].socketStartConnect(host, port, {sourceAddress: sourceAddress});
    }
    return super.socketStartConnect(host, port, {sourceAddress: sourceAddress});
  }
  serverSocketBind(address, port, opts) {
    let t89, t88, t87, t86, t85;
    let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
    let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
    let shared = opts && 'shared' in opts ? opts.shared : false;
    if (this[_serverSocketBind$] != null) {
      t85 = address;
      t86 = port;
      t87 = backlog;
      t88 = v6Only;
      t89 = shared;
      return this[_serverSocketBind$](t85, t86, {backlog: t87, v6Only: t88, shared: t89});
    }
    if (this[_previous$4] != null) {
      return this[_previous$4].serverSocketBind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared});
    }
    return super.serverSocketBind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared});
  }
};
(io._IOOverridesScope.new = function(_createDirectory, _getCurrentDirectory, _setCurrentDirectory, _getSystemTempDirectory, _createFile, _stat, _statSync, _fseIdentical, _fseIdenticalSync, _fseGetType, _fseGetTypeSync, _fsWatch, _fsWatchIsSupported, _createLink, _socketConnect, _socketStartConnect, _serverSocketBind) {
  this[_previous$4] = io.IOOverrides.current;
  this[_createDirectory$] = _createDirectory;
  this[_getCurrentDirectory$] = _getCurrentDirectory;
  this[_setCurrentDirectory$] = _setCurrentDirectory;
  this[_getSystemTempDirectory$] = _getSystemTempDirectory;
  this[_createFile$] = _createFile;
  this[_stat$] = _stat;
  this[_statSync$] = _statSync;
  this[_fseIdentical$] = _fseIdentical;
  this[_fseIdenticalSync$] = _fseIdenticalSync;
  this[_fseGetType$] = _fseGetType;
  this[_fseGetTypeSync$] = _fseGetTypeSync;
  this[_fsWatch$] = _fsWatch;
  this[_fsWatchIsSupported$] = _fsWatchIsSupported;
  this[_createLink$] = _createLink;
  this[_socketConnect$] = _socketConnect;
  this[_socketStartConnect$] = _socketStartConnect;
  this[_serverSocketBind$] = _serverSocketBind;
  ;
}).prototype = io._IOOverridesScope.prototype;
dart.addTypeTests(io._IOOverridesScope);
dart.addTypeCaches(io._IOOverridesScope);
dart.setLibraryUri(io._IOOverridesScope, L48);
dart.setFieldSignature(io._IOOverridesScope, () => ({
  __proto__: dart.getFields(io._IOOverridesScope.__proto__),
  [_previous$4]: dart.finalFieldType(io.IOOverrides),
  [_createDirectory$]: dart.fieldType(dart.fnType(io.Directory, [core.String])),
  [_getCurrentDirectory$]: dart.fieldType(dart.fnType(io.Directory, [])),
  [_setCurrentDirectory$]: dart.fieldType(dart.fnType(dart.void, [core.String])),
  [_getSystemTempDirectory$]: dart.fieldType(dart.fnType(io.Directory, [])),
  [_createFile$]: dart.fieldType(dart.fnType(io.File, [core.String])),
  [_stat$]: dart.fieldType(dart.fnType(async.Future$(io.FileStat), [core.String])),
  [_statSync$]: dart.fieldType(dart.fnType(io.FileStat, [core.String])),
  [_fseIdentical$]: dart.fieldType(dart.fnType(async.Future$(core.bool), [core.String, core.String])),
  [_fseIdenticalSync$]: dart.fieldType(dart.fnType(core.bool, [core.String, core.String])),
  [_fseGetType$]: dart.fieldType(dart.fnType(async.Future$(io.FileSystemEntityType), [core.String, core.bool])),
  [_fseGetTypeSync$]: dart.fieldType(dart.fnType(io.FileSystemEntityType, [core.String, core.bool])),
  [_fsWatch$]: dart.fieldType(dart.fnType(async.Stream$(io.FileSystemEvent), [core.String, core.int, core.bool])),
  [_fsWatchIsSupported$]: dart.fieldType(dart.fnType(core.bool, [])),
  [_createLink$]: dart.fieldType(dart.fnType(io.Link, [core.String])),
  [_socketConnect$]: dart.fieldType(dart.fnType(async.Future$(io.Socket), [dart.dynamic, core.int], {sourceAddress: dart.dynamic, timeout: core.Duration}, {})),
  [_socketStartConnect$]: dart.fieldType(dart.fnType(async.Future$(io.ConnectionTask$(io.Socket)), [dart.dynamic, core.int], {sourceAddress: dart.dynamic}, {})),
  [_serverSocketBind$]: dart.fieldType(dart.fnType(async.Future$(io.ServerSocket), [dart.dynamic, core.int], {backlog: core.int, shared: core.bool, v6Only: core.bool}, {}))
}));
io.Platform = class Platform extends core.Object {
  static get numberOfProcessors() {
    return io.Platform._numberOfProcessors;
  }
  static get pathSeparator() {
    return io.Platform._pathSeparator;
  }
  static get localeName() {
    return io._Platform.localeName();
  }
  static get operatingSystem() {
    return io.Platform._operatingSystem;
  }
  static get operatingSystemVersion() {
    return io.Platform._operatingSystemVersion;
  }
  static get localHostname() {
    return io.Platform._localHostname;
  }
  static get environment() {
    return io._Platform.environment;
  }
  static get executable() {
    return io._Platform.executable;
  }
  static get resolvedExecutable() {
    return io._Platform.resolvedExecutable;
  }
  static get script() {
    return io._Platform.script;
  }
  static get executableArguments() {
    return io._Platform.executableArguments;
  }
  static get packageRoot() {
    return null;
  }
  static get packageConfig() {
    return io._Platform.packageConfig;
  }
  static get version() {
    return io.Platform._version;
  }
};
(io.Platform.new = function() {
  ;
}).prototype = io.Platform.prototype;
dart.addTypeTests(io.Platform);
dart.addTypeCaches(io.Platform);
dart.setLibraryUri(io.Platform, L48);
dart.defineLazy(io.Platform, {
  /*io.Platform._numberOfProcessors*/get _numberOfProcessors() {
    return io._Platform.numberOfProcessors;
  },
  /*io.Platform._pathSeparator*/get _pathSeparator() {
    return io._Platform.pathSeparator;
  },
  /*io.Platform._operatingSystem*/get _operatingSystem() {
    return io._Platform.operatingSystem;
  },
  /*io.Platform._operatingSystemVersion*/get _operatingSystemVersion() {
    return io._Platform.operatingSystemVersion;
  },
  /*io.Platform._localHostname*/get _localHostname() {
    return io._Platform.localHostname;
  },
  /*io.Platform._version*/get _version() {
    return io._Platform.version;
  },
  /*io.Platform.isLinux*/get isLinux() {
    return io.Platform._operatingSystem === "linux";
  },
  /*io.Platform.isMacOS*/get isMacOS() {
    return io.Platform._operatingSystem === "macos";
  },
  /*io.Platform.isWindows*/get isWindows() {
    return io.Platform._operatingSystem === "windows";
  },
  /*io.Platform.isAndroid*/get isAndroid() {
    return io.Platform._operatingSystem === "android";
  },
  /*io.Platform.isIOS*/get isIOS() {
    return io.Platform._operatingSystem === "ios";
  },
  /*io.Platform.isFuchsia*/get isFuchsia() {
    return io.Platform._operatingSystem === "fuchsia";
  }
}, true);
io._Platform = class _Platform extends core.Object {
  static _numberOfProcessors() {
    dart.throw(new core.UnsupportedError.new("Platform._numberOfProcessors"));
  }
  static _pathSeparator() {
    dart.throw(new core.UnsupportedError.new("Platform._pathSeparator"));
  }
  static _operatingSystem() {
    dart.throw(new core.UnsupportedError.new("Platform._operatingSystem"));
  }
  static _operatingSystemVersion() {
    dart.throw(new core.UnsupportedError.new("Platform._operatingSystemVersion"));
  }
  static _localHostname() {
    dart.throw(new core.UnsupportedError.new("Platform._localHostname"));
  }
  static _executable() {
    dart.throw(new core.UnsupportedError.new("Platform._executable"));
  }
  static _resolvedExecutable() {
    dart.throw(new core.UnsupportedError.new("Platform._resolvedExecutable"));
  }
  static _environment() {
    dart.throw(new core.UnsupportedError.new("Platform._environment"));
  }
  static _executableArguments() {
    dart.throw(new core.UnsupportedError.new("Platform._executableArguments"));
  }
  static _packageRoot() {
    dart.throw(new core.UnsupportedError.new("Platform._packageRoot"));
  }
  static _packageConfig() {
    dart.throw(new core.UnsupportedError.new("Platform._packageConfig"));
  }
  static _version() {
    dart.throw(new core.UnsupportedError.new("Platform._version"));
  }
  static _localeName() {
    dart.throw(new core.UnsupportedError.new("Platform._localeName"));
  }
  static _script() {
    dart.throw(new core.UnsupportedError.new("Platform._script"));
  }
  static localeName() {
    let result = io._Platform._localeClosure == null ? io._Platform._localeName() : io._Platform._localeClosure();
    if (io.OSError.is(result)) {
      dart.throw(result);
    }
    return result;
  }
  static get numberOfProcessors() {
    return io._Platform._numberOfProcessors();
  }
  static get pathSeparator() {
    return io._Platform._pathSeparator();
  }
  static get operatingSystem() {
    return io._Platform._operatingSystem();
  }
  static get script() {
    return io._Platform._script();
  }
  static get operatingSystemVersion() {
    if (io._Platform._cachedOSVersion == null) {
      let result = io._Platform._operatingSystemVersion();
      if (io.OSError.is(result)) {
        dart.throw(result);
      }
      io._Platform._cachedOSVersion = core.String.as(result);
    }
    return io._Platform._cachedOSVersion;
  }
  static get localHostname() {
    let result = io._Platform._localHostname();
    if (io.OSError.is(result)) {
      dart.throw(result);
    }
    return core.String.as(result);
  }
  static get executableArguments() {
    return io._Platform._executableArguments();
  }
  static get environment() {
    if (io._Platform._environmentCache == null) {
      let env = io._Platform._environment();
      if (!io.OSError.is(env)) {
        let isWindows = io._Platform.operatingSystem === "windows";
        let result = isWindows ? new (_CaseInsensitiveStringMapOfStringL()).new() : new (LinkedMapOfStringL$StringL()).new();
        for (let str of core.Iterable.as(env)) {
          if (str == null) {
            continue;
          }
          let equalsIndex = dart.dsend(str, 'indexOf', ["="]);
          if (dart.dtest(dart.dsend(equalsIndex, '>', [0]))) {
            result[$_set](core.String.as(dart.dsend(str, 'substring', [0, equalsIndex])), core.String.as(dart.dsend(str, 'substring', [dart.dsend(equalsIndex, '+', [1])])));
          }
        }
        io._Platform._environmentCache = new (UnmodifiableMapViewOfStringL$StringL()).new(result);
      } else {
        io._Platform._environmentCache = env;
      }
    }
    if (io.OSError.is(io._Platform._environmentCache)) {
      dart.throw(io._Platform._environmentCache);
    } else {
      return MapOfStringL$StringL().as(io._Platform._environmentCache);
    }
  }
  static get version() {
    return io._Platform._version();
  }
};
(io._Platform.new = function() {
  ;
}).prototype = io._Platform.prototype;
dart.addTypeTests(io._Platform);
dart.addTypeCaches(io._Platform);
dart.setLibraryUri(io._Platform, L48);
dart.defineLazy(io._Platform, {
  /*io._Platform.executable*/get executable() {
    return core.String.as(io._Platform._executable());
  },
  set executable(_) {},
  /*io._Platform.resolvedExecutable*/get resolvedExecutable() {
    return core.String.as(io._Platform._resolvedExecutable());
  },
  set resolvedExecutable(_) {},
  /*io._Platform.packageRoot*/get packageRoot() {
    return null;
  },
  set packageRoot(_) {},
  /*io._Platform.packageConfig*/get packageConfig() {
    return io._Platform._packageConfig();
  },
  set packageConfig(_) {},
  /*io._Platform._localeClosure*/get _localeClosure() {
    return null;
  },
  set _localeClosure(_) {},
  /*io._Platform._environmentCache*/get _environmentCache() {
    return null;
  },
  set _environmentCache(_) {},
  /*io._Platform._cachedOSVersion*/get _cachedOSVersion() {
    return null;
  },
  set _cachedOSVersion(_) {}
}, true);
var _map$10 = dart.privateName(io, "_map");
const _is__CaseInsensitiveStringMap_default = Symbol('_is__CaseInsensitiveStringMap_default');
io._CaseInsensitiveStringMap$ = dart.generic(V => {
  var LinkedMapOfStringL$VL = () => (LinkedMapOfStringL$VL = dart.constFn(_js_helper.LinkedMap$(core.String, V)))();
  var VoidToLVL = () => (VoidToLVL = dart.constFn(dart.fnType(V, [])))();
  var MapOfStringL$VL = () => (MapOfStringL$VL = dart.constFn(core.Map$(core.String, V)))();
  var StringLAndVLToVL = () => (StringLAndVLToVL = dart.constFn(dart.fnType(V, [core.String, V])))();
  var VLToLVL = () => (VLToLVL = dart.constFn(dart.fnType(V, [V])))();
  var StringLAndVLToLVL = () => (StringLAndVLToLVL = dart.constFn(dart.fnType(V, [core.String, V])))();
  class _CaseInsensitiveStringMap extends collection.MapBase$(core.String, V) {
    containsKey(key) {
      return typeof key == 'string' && dart.test(this[_map$10][$containsKey](key[$toUpperCase]()));
    }
    containsValue(value) {
      return this[_map$10][$containsValue](value);
    }
    _get(key) {
      return typeof key == 'string' ? this[_map$10][$_get](key[$toUpperCase]()) : null;
    }
    _set(key, value$) {
      let value = value$;
      core.String.as(key);
      V.as(value);
      this[_map$10][$_set](key[$toUpperCase](), value);
      return value$;
    }
    putIfAbsent(key, ifAbsent) {
      core.String.as(key);
      VoidToLVL().as(ifAbsent);
      return this[_map$10][$putIfAbsent](key[$toUpperCase](), ifAbsent);
    }
    addAll(other) {
      MapOfStringL$VL().as(other);
      other[$forEach](dart.fn((key, value) => {
        let t86, t85;
        t85 = key[$toUpperCase]();
        t86 = value;
        this._set(t85, t86);
        return t86;
      }, StringLAndVLToVL()));
    }
    remove(key) {
      return typeof key == 'string' ? this[_map$10][$remove](key[$toUpperCase]()) : null;
    }
    clear() {
      this[_map$10][$clear]();
    }
    forEach(f) {
      this[_map$10][$forEach](f);
    }
    get keys() {
      return this[_map$10][$keys];
    }
    get values() {
      return this[_map$10][$values];
    }
    get length() {
      return this[_map$10][$length];
    }
    get isEmpty() {
      return this[_map$10][$isEmpty];
    }
    get isNotEmpty() {
      return this[_map$10][$isNotEmpty];
    }
    get entries() {
      return this[_map$10][$entries];
    }
    map(K2, V2, transform) {
      return this[_map$10][$map](K2, V2, transform);
    }
    update(key, update, opts) {
      core.String.as(key);
      VLToLVL().as(update);
      let ifAbsent = opts && 'ifAbsent' in opts ? opts.ifAbsent : null;
      VoidToLVL().as(ifAbsent);
      return this[_map$10][$update](key[$toUpperCase](), update, {ifAbsent: ifAbsent});
    }
    updateAll(update) {
      StringLAndVLToLVL().as(update);
      this[_map$10][$updateAll](update);
    }
    removeWhere(test) {
      this[_map$10][$removeWhere](test);
    }
    toString() {
      return dart.toString(this[_map$10]);
    }
  }
  (_CaseInsensitiveStringMap.new = function() {
    this[_map$10] = new (LinkedMapOfStringL$VL()).new();
    ;
  }).prototype = _CaseInsensitiveStringMap.prototype;
  dart.addTypeTests(_CaseInsensitiveStringMap);
  _CaseInsensitiveStringMap.prototype[_is__CaseInsensitiveStringMap_default] = true;
  dart.addTypeCaches(_CaseInsensitiveStringMap);
  dart.setMethodSignature(_CaseInsensitiveStringMap, () => ({
    __proto__: dart.getMethods(_CaseInsensitiveStringMap.__proto__),
    _get: dart.fnType(V, [core.Object]),
    [$_get]: dart.fnType(V, [core.Object]),
    _set: dart.fnType(dart.void, [core.Object, core.Object]),
    [$_set]: dart.fnType(dart.void, [core.Object, core.Object]),
    remove: dart.fnType(V, [core.Object]),
    [$remove]: dart.fnType(V, [core.Object]),
    clear: dart.fnType(dart.void, []),
    [$clear]: dart.fnType(dart.void, []),
    map: dart.gFnType((K2, V2) => [core.Map$(K2, V2), [dart.fnType(core.MapEntry$(K2, V2), [core.String, V])]]),
    [$map]: dart.gFnType((K2, V2) => [core.Map$(K2, V2), [dart.fnType(core.MapEntry$(K2, V2), [core.String, V])]])
  }));
  dart.setGetterSignature(_CaseInsensitiveStringMap, () => ({
    __proto__: dart.getGetters(_CaseInsensitiveStringMap.__proto__),
    keys: core.Iterable$(core.String),
    [$keys]: core.Iterable$(core.String)
  }));
  dart.setLibraryUri(_CaseInsensitiveStringMap, L48);
  dart.setFieldSignature(_CaseInsensitiveStringMap, () => ({
    __proto__: dart.getFields(_CaseInsensitiveStringMap.__proto__),
    [_map$10]: dart.finalFieldType(core.Map$(core.String, V))
  }));
  dart.defineExtensionMethods(_CaseInsensitiveStringMap, [
    'containsKey',
    'containsValue',
    '_get',
    '_set',
    'putIfAbsent',
    'addAll',
    'remove',
    'clear',
    'forEach',
    'map',
    'update',
    'updateAll',
    'removeWhere',
    'toString'
  ]);
  dart.defineExtensionAccessors(_CaseInsensitiveStringMap, [
    'keys',
    'values',
    'length',
    'isEmpty',
    'isNotEmpty',
    'entries'
  ]);
  return _CaseInsensitiveStringMap;
});
io._CaseInsensitiveStringMap = io._CaseInsensitiveStringMap$();
dart.addTypeTests(io._CaseInsensitiveStringMap, _is__CaseInsensitiveStringMap_default);
io._ProcessUtils = class _ProcessUtils extends core.Object {
  static _exit(status) {
    dart.throw(new core.UnsupportedError.new("ProcessUtils._exit"));
  }
  static _setExitCode(status) {
    dart.throw(new core.UnsupportedError.new("ProcessUtils._setExitCode"));
  }
  static _getExitCode() {
    dart.throw(new core.UnsupportedError.new("ProcessUtils._getExitCode"));
  }
  static _sleep(millis) {
    dart.throw(new core.UnsupportedError.new("ProcessUtils._sleep"));
  }
  static _pid(process) {
    dart.throw(new core.UnsupportedError.new("ProcessUtils._pid"));
  }
  static _watchSignal(signal) {
    dart.throw(new core.UnsupportedError.new("ProcessUtils._watchSignal"));
  }
};
(io._ProcessUtils.new = function() {
  ;
}).prototype = io._ProcessUtils.prototype;
dart.addTypeTests(io._ProcessUtils);
dart.addTypeCaches(io._ProcessUtils);
dart.setLibraryUri(io._ProcessUtils, L48);
io.ProcessInfo = class ProcessInfo extends core.Object {
  static get currentRss() {
    dart.throw(new core.UnsupportedError.new("ProcessInfo.currentRss"));
  }
  static get maxRss() {
    dart.throw(new core.UnsupportedError.new("ProcessInfo.maxRss"));
  }
};
(io.ProcessInfo.new = function() {
  ;
}).prototype = io.ProcessInfo.prototype;
dart.addTypeTests(io.ProcessInfo);
dart.addTypeCaches(io.ProcessInfo);
dart.setLibraryUri(io.ProcessInfo, L48);
var ProcessStartMode__mode = dart.privateName(io, "ProcessStartMode._mode");
var C139;
var C140;
var C141;
var C142;
var C138;
var C143;
io.ProcessStartMode = class ProcessStartMode extends core.Object {
  get [_mode]() {
    return this[_mode$0];
  }
  set [_mode](value) {
    super[_mode] = value;
  }
  static get values() {
    return C138 || CT.C138;
  }
  toString() {
    return (C143 || CT.C143)[$_get](this[_mode]);
  }
};
(io.ProcessStartMode._internal = function(_mode) {
  this[_mode$0] = _mode;
  ;
}).prototype = io.ProcessStartMode.prototype;
dart.addTypeTests(io.ProcessStartMode);
dart.addTypeCaches(io.ProcessStartMode);
const _mode$0 = ProcessStartMode__mode;
dart.setLibraryUri(io.ProcessStartMode, L48);
dart.setFieldSignature(io.ProcessStartMode, () => ({
  __proto__: dart.getFields(io.ProcessStartMode.__proto__),
  [_mode]: dart.finalFieldType(core.int)
}));
dart.defineExtensionMethods(io.ProcessStartMode, ['toString']);
dart.defineLazy(io.ProcessStartMode, {
  /*io.ProcessStartMode.normal*/get normal() {
    return C139 || CT.C139;
  },
  /*io.ProcessStartMode.NORMAL*/get NORMAL() {
    return C139 || CT.C139;
  },
  /*io.ProcessStartMode.inheritStdio*/get inheritStdio() {
    return C140 || CT.C140;
  },
  /*io.ProcessStartMode.INHERIT_STDIO*/get INHERIT_STDIO() {
    return C140 || CT.C140;
  },
  /*io.ProcessStartMode.detached*/get detached() {
    return C141 || CT.C141;
  },
  /*io.ProcessStartMode.DETACHED*/get DETACHED() {
    return C141 || CT.C141;
  },
  /*io.ProcessStartMode.detachedWithStdio*/get detachedWithStdio() {
    return C142 || CT.C142;
  },
  /*io.ProcessStartMode.DETACHED_WITH_STDIO*/get DETACHED_WITH_STDIO() {
    return C142 || CT.C142;
  }
}, true);
var C144;
var ProcessSignal__name = dart.privateName(io, "ProcessSignal._name");
var ProcessSignal__signalNumber = dart.privateName(io, "ProcessSignal._signalNumber");
var C145;
io.Process = class Process extends core.Object {
  static start(executable, $arguments, opts) {
    let workingDirectory = opts && 'workingDirectory' in opts ? opts.workingDirectory : null;
    let environment = opts && 'environment' in opts ? opts.environment : null;
    let includeParentEnvironment = opts && 'includeParentEnvironment' in opts ? opts.includeParentEnvironment : true;
    let runInShell = opts && 'runInShell' in opts ? opts.runInShell : false;
    let mode = opts && 'mode' in opts ? opts.mode : C139 || CT.C139;
    dart.throw(new core.UnsupportedError.new("Process.start"));
  }
  static run(executable, $arguments, opts) {
    let workingDirectory = opts && 'workingDirectory' in opts ? opts.workingDirectory : null;
    let environment = opts && 'environment' in opts ? opts.environment : null;
    let includeParentEnvironment = opts && 'includeParentEnvironment' in opts ? opts.includeParentEnvironment : true;
    let runInShell = opts && 'runInShell' in opts ? opts.runInShell : false;
    let stdoutEncoding = opts && 'stdoutEncoding' in opts ? opts.stdoutEncoding : C144 || CT.C144;
    let stderrEncoding = opts && 'stderrEncoding' in opts ? opts.stderrEncoding : C144 || CT.C144;
    dart.throw(new core.UnsupportedError.new("Process.run"));
  }
  static runSync(executable, $arguments, opts) {
    let workingDirectory = opts && 'workingDirectory' in opts ? opts.workingDirectory : null;
    let environment = opts && 'environment' in opts ? opts.environment : null;
    let includeParentEnvironment = opts && 'includeParentEnvironment' in opts ? opts.includeParentEnvironment : true;
    let runInShell = opts && 'runInShell' in opts ? opts.runInShell : false;
    let stdoutEncoding = opts && 'stdoutEncoding' in opts ? opts.stdoutEncoding : C144 || CT.C144;
    let stderrEncoding = opts && 'stderrEncoding' in opts ? opts.stderrEncoding : C144 || CT.C144;
    dart.throw(new core.UnsupportedError.new("Process.runSync"));
  }
  static killPid(pid, signal = C145 || CT.C145) {
    dart.throw(new core.UnsupportedError.new("Process.killPid"));
  }
};
(io.Process.new = function() {
  ;
}).prototype = io.Process.prototype;
dart.addTypeTests(io.Process);
dart.addTypeCaches(io.Process);
dart.setLibraryUri(io.Process, L48);
var exitCode$ = dart.privateName(io, "ProcessResult.exitCode");
var stdout$ = dart.privateName(io, "ProcessResult.stdout");
var stderr$ = dart.privateName(io, "ProcessResult.stderr");
var pid$ = dart.privateName(io, "ProcessResult.pid");
io.ProcessResult = class ProcessResult extends core.Object {
  get exitCode() {
    return this[exitCode$];
  }
  set exitCode(value) {
    super.exitCode = value;
  }
  get stdout() {
    return this[stdout$];
  }
  set stdout(value) {
    super.stdout = value;
  }
  get stderr() {
    return this[stderr$];
  }
  set stderr(value) {
    super.stderr = value;
  }
  get pid() {
    return this[pid$];
  }
  set pid(value) {
    super.pid = value;
  }
};
(io.ProcessResult.new = function(pid, exitCode, stdout, stderr) {
  this[pid$] = pid;
  this[exitCode$] = exitCode;
  this[stdout$] = stdout;
  this[stderr$] = stderr;
  ;
}).prototype = io.ProcessResult.prototype;
dart.addTypeTests(io.ProcessResult);
dart.addTypeCaches(io.ProcessResult);
dart.setLibraryUri(io.ProcessResult, L48);
dart.setFieldSignature(io.ProcessResult, () => ({
  __proto__: dart.getFields(io.ProcessResult.__proto__),
  exitCode: dart.finalFieldType(core.int),
  stdout: dart.finalFieldType(dart.dynamic),
  stderr: dart.finalFieldType(dart.dynamic),
  pid: dart.finalFieldType(core.int)
}));
var _signalNumber = dart.privateName(io, "_signalNumber");
var C146;
var C147;
var C148;
var C149;
var C150;
var C151;
var C152;
var C153;
var C154;
var C155;
var C156;
var C157;
var C158;
var C159;
var C160;
var C161;
var C162;
var C163;
var C164;
var C165;
var C166;
var C167;
var C168;
var C169;
var C170;
var C171;
var C172;
var C173;
io.ProcessSignal = class ProcessSignal extends core.Object {
  get [_signalNumber]() {
    return this[_signalNumber$];
  }
  set [_signalNumber](value) {
    super[_signalNumber] = value;
  }
  get [_name$4]() {
    return this[_name$5];
  }
  set [_name$4](value) {
    super[_name$4] = value;
  }
  toString() {
    return this[_name$4];
  }
  watch() {
    return io._ProcessUtils._watchSignal(this);
  }
};
(io.ProcessSignal.__ = function(_signalNumber, _name) {
  this[_signalNumber$] = _signalNumber;
  this[_name$5] = _name;
  ;
}).prototype = io.ProcessSignal.prototype;
dart.addTypeTests(io.ProcessSignal);
dart.addTypeCaches(io.ProcessSignal);
const _signalNumber$ = ProcessSignal__signalNumber;
const _name$5 = ProcessSignal__name;
dart.setMethodSignature(io.ProcessSignal, () => ({
  __proto__: dart.getMethods(io.ProcessSignal.__proto__),
  watch: dart.fnType(async.Stream$(io.ProcessSignal), [])
}));
dart.setLibraryUri(io.ProcessSignal, L48);
dart.setFieldSignature(io.ProcessSignal, () => ({
  __proto__: dart.getFields(io.ProcessSignal.__proto__),
  [_signalNumber]: dart.finalFieldType(core.int),
  [_name$4]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(io.ProcessSignal, ['toString']);
dart.defineLazy(io.ProcessSignal, {
  /*io.ProcessSignal.sighup*/get sighup() {
    return C146 || CT.C146;
  },
  /*io.ProcessSignal.sigint*/get sigint() {
    return C147 || CT.C147;
  },
  /*io.ProcessSignal.sigquit*/get sigquit() {
    return C148 || CT.C148;
  },
  /*io.ProcessSignal.sigill*/get sigill() {
    return C149 || CT.C149;
  },
  /*io.ProcessSignal.sigtrap*/get sigtrap() {
    return C150 || CT.C150;
  },
  /*io.ProcessSignal.sigabrt*/get sigabrt() {
    return C151 || CT.C151;
  },
  /*io.ProcessSignal.sigbus*/get sigbus() {
    return C152 || CT.C152;
  },
  /*io.ProcessSignal.sigfpe*/get sigfpe() {
    return C153 || CT.C153;
  },
  /*io.ProcessSignal.sigkill*/get sigkill() {
    return C154 || CT.C154;
  },
  /*io.ProcessSignal.sigusr1*/get sigusr1() {
    return C155 || CT.C155;
  },
  /*io.ProcessSignal.sigsegv*/get sigsegv() {
    return C156 || CT.C156;
  },
  /*io.ProcessSignal.sigusr2*/get sigusr2() {
    return C157 || CT.C157;
  },
  /*io.ProcessSignal.sigpipe*/get sigpipe() {
    return C158 || CT.C158;
  },
  /*io.ProcessSignal.sigalrm*/get sigalrm() {
    return C159 || CT.C159;
  },
  /*io.ProcessSignal.sigterm*/get sigterm() {
    return C145 || CT.C145;
  },
  /*io.ProcessSignal.sigchld*/get sigchld() {
    return C160 || CT.C160;
  },
  /*io.ProcessSignal.sigcont*/get sigcont() {
    return C161 || CT.C161;
  },
  /*io.ProcessSignal.sigstop*/get sigstop() {
    return C162 || CT.C162;
  },
  /*io.ProcessSignal.sigtstp*/get sigtstp() {
    return C163 || CT.C163;
  },
  /*io.ProcessSignal.sigttin*/get sigttin() {
    return C164 || CT.C164;
  },
  /*io.ProcessSignal.sigttou*/get sigttou() {
    return C165 || CT.C165;
  },
  /*io.ProcessSignal.sigurg*/get sigurg() {
    return C166 || CT.C166;
  },
  /*io.ProcessSignal.sigxcpu*/get sigxcpu() {
    return C167 || CT.C167;
  },
  /*io.ProcessSignal.sigxfsz*/get sigxfsz() {
    return C168 || CT.C168;
  },
  /*io.ProcessSignal.sigvtalrm*/get sigvtalrm() {
    return C169 || CT.C169;
  },
  /*io.ProcessSignal.sigprof*/get sigprof() {
    return C170 || CT.C170;
  },
  /*io.ProcessSignal.sigwinch*/get sigwinch() {
    return C171 || CT.C171;
  },
  /*io.ProcessSignal.sigpoll*/get sigpoll() {
    return C172 || CT.C172;
  },
  /*io.ProcessSignal.sigsys*/get sigsys() {
    return C173 || CT.C173;
  },
  /*io.ProcessSignal.SIGHUP*/get SIGHUP() {
    return C146 || CT.C146;
  },
  /*io.ProcessSignal.SIGINT*/get SIGINT() {
    return C147 || CT.C147;
  },
  /*io.ProcessSignal.SIGQUIT*/get SIGQUIT() {
    return C148 || CT.C148;
  },
  /*io.ProcessSignal.SIGILL*/get SIGILL() {
    return C149 || CT.C149;
  },
  /*io.ProcessSignal.SIGTRAP*/get SIGTRAP() {
    return C150 || CT.C150;
  },
  /*io.ProcessSignal.SIGABRT*/get SIGABRT() {
    return C151 || CT.C151;
  },
  /*io.ProcessSignal.SIGBUS*/get SIGBUS() {
    return C152 || CT.C152;
  },
  /*io.ProcessSignal.SIGFPE*/get SIGFPE() {
    return C153 || CT.C153;
  },
  /*io.ProcessSignal.SIGKILL*/get SIGKILL() {
    return C154 || CT.C154;
  },
  /*io.ProcessSignal.SIGUSR1*/get SIGUSR1() {
    return C155 || CT.C155;
  },
  /*io.ProcessSignal.SIGSEGV*/get SIGSEGV() {
    return C156 || CT.C156;
  },
  /*io.ProcessSignal.SIGUSR2*/get SIGUSR2() {
    return C157 || CT.C157;
  },
  /*io.ProcessSignal.SIGPIPE*/get SIGPIPE() {
    return C158 || CT.C158;
  },
  /*io.ProcessSignal.SIGALRM*/get SIGALRM() {
    return C159 || CT.C159;
  },
  /*io.ProcessSignal.SIGTERM*/get SIGTERM() {
    return C145 || CT.C145;
  },
  /*io.ProcessSignal.SIGCHLD*/get SIGCHLD() {
    return C160 || CT.C160;
  },
  /*io.ProcessSignal.SIGCONT*/get SIGCONT() {
    return C161 || CT.C161;
  },
  /*io.ProcessSignal.SIGSTOP*/get SIGSTOP() {
    return C162 || CT.C162;
  },
  /*io.ProcessSignal.SIGTSTP*/get SIGTSTP() {
    return C163 || CT.C163;
  },
  /*io.ProcessSignal.SIGTTIN*/get SIGTTIN() {
    return C164 || CT.C164;
  },
  /*io.ProcessSignal.SIGTTOU*/get SIGTTOU() {
    return C165 || CT.C165;
  },
  /*io.ProcessSignal.SIGURG*/get SIGURG() {
    return C166 || CT.C166;
  },
  /*io.ProcessSignal.SIGXCPU*/get SIGXCPU() {
    return C167 || CT.C167;
  },
  /*io.ProcessSignal.SIGXFSZ*/get SIGXFSZ() {
    return C168 || CT.C168;
  },
  /*io.ProcessSignal.SIGVTALRM*/get SIGVTALRM() {
    return C169 || CT.C169;
  },
  /*io.ProcessSignal.SIGPROF*/get SIGPROF() {
    return C170 || CT.C170;
  },
  /*io.ProcessSignal.SIGWINCH*/get SIGWINCH() {
    return C171 || CT.C171;
  },
  /*io.ProcessSignal.SIGPOLL*/get SIGPOLL() {
    return C172 || CT.C172;
  },
  /*io.ProcessSignal.SIGSYS*/get SIGSYS() {
    return C173 || CT.C173;
  }
}, true);
var message$4 = dart.privateName(io, "SignalException.message");
var osError$0 = dart.privateName(io, "SignalException.osError");
io.SignalException = class SignalException extends core.Object {
  get message() {
    return this[message$4];
  }
  set message(value) {
    super.message = value;
  }
  get osError() {
    return this[osError$0];
  }
  set osError(value) {
    super.osError = value;
  }
  toString() {
    let msg = "";
    if (this.osError != null) {
      msg = ", osError: " + dart.str(this.osError);
    }
    return "SignalException: " + dart.str(this.message) + msg;
  }
};
(io.SignalException.new = function(message, osError = null) {
  this[message$4] = message;
  this[osError$0] = osError;
  ;
}).prototype = io.SignalException.prototype;
dart.addTypeTests(io.SignalException);
dart.addTypeCaches(io.SignalException);
io.SignalException[dart.implements] = () => [io.IOException];
dart.setLibraryUri(io.SignalException, L48);
dart.setFieldSignature(io.SignalException, () => ({
  __proto__: dart.getFields(io.SignalException.__proto__),
  message: dart.finalFieldType(core.String),
  osError: dart.finalFieldType(dart.dynamic)
}));
dart.defineExtensionMethods(io.SignalException, ['toString']);
var executable$ = dart.privateName(io, "ProcessException.executable");
var arguments$ = dart.privateName(io, "ProcessException.arguments");
var message$5 = dart.privateName(io, "ProcessException.message");
var errorCode$1 = dart.privateName(io, "ProcessException.errorCode");
io.ProcessException = class ProcessException extends core.Object {
  get executable() {
    return this[executable$];
  }
  set executable(value) {
    super.executable = value;
  }
  get arguments() {
    return this[arguments$];
  }
  set arguments(value) {
    super.arguments = value;
  }
  get message() {
    return this[message$5];
  }
  set message(value) {
    super.message = value;
  }
  get errorCode() {
    return this[errorCode$1];
  }
  set errorCode(value) {
    super.errorCode = value;
  }
  toString() {
    let msg = this.message == null ? "OS error code: " + dart.str(this.errorCode) : this.message;
    let args = this.arguments[$join](" ");
    return "ProcessException: " + dart.str(msg) + "\n  Command: " + dart.str(this.executable) + " " + dart.str(args);
  }
};
(io.ProcessException.new = function(executable, $arguments, message = "", errorCode = 0) {
  this[executable$] = executable;
  this[arguments$] = $arguments;
  this[message$5] = message;
  this[errorCode$1] = errorCode;
  ;
}).prototype = io.ProcessException.prototype;
dart.addTypeTests(io.ProcessException);
dart.addTypeCaches(io.ProcessException);
io.ProcessException[dart.implements] = () => [io.IOException];
dart.setLibraryUri(io.ProcessException, L48);
dart.setFieldSignature(io.ProcessException, () => ({
  __proto__: dart.getFields(io.ProcessException.__proto__),
  executable: dart.finalFieldType(core.String),
  arguments: dart.finalFieldType(core.List$(core.String)),
  message: dart.finalFieldType(core.String),
  errorCode: dart.finalFieldType(core.int)
}));
dart.defineExtensionMethods(io.ProcessException, ['toString']);
var _socket$ = dart.privateName(io, "_socket");
var _owner = dart.privateName(io, "_owner");
var _onCancel$ = dart.privateName(io, "_onCancel");
var _detachRaw = dart.privateName(io, "_detachRaw");
io.SecureSocket = class SecureSocket extends core.Object {
  static connect(host, port, opts) {
    let context = opts && 'context' in opts ? opts.context : null;
    let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
    let timeout = opts && 'timeout' in opts ? opts.timeout : null;
    return io.RawSecureSocket.connect(host, port, {context: context, onBadCertificate: onBadCertificate, supportedProtocols: supportedProtocols, timeout: timeout}).then(io.SecureSocket, dart.fn(rawSocket => io.SecureSocket.__(rawSocket), RawSecureSocketLToSecureSocketL()));
  }
  static startConnect(host, port, opts) {
    let context = opts && 'context' in opts ? opts.context : null;
    let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
    return io.RawSecureSocket.startConnect(host, port, {context: context, onBadCertificate: onBadCertificate, supportedProtocols: supportedProtocols}).then(ConnectionTaskOfSecureSocketL(), dart.fn(rawState => {
      let socket = rawState.socket.then(io.SecureSocket, dart.fn(rawSocket => io.SecureSocket.__(rawSocket), RawSecureSocketLToSecureSocketL()));
      return new (ConnectionTaskOfSecureSocketL()).__({socket: socket, onCancel: rawState[_onCancel$]});
    }, ConnectionTaskLOfRawSecureSocketLToConnectionTaskLOfSecureSocketL()));
  }
  static secure(socket, opts) {
    let host = opts && 'host' in opts ? opts.host : null;
    let context = opts && 'context' in opts ? opts.context : null;
    let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
    return async.Future.as(dart.dsend(socket, _detachRaw, [])).then(io.RawSecureSocket, dart.fn(detachedRaw => io.RawSecureSocket.secure(io.RawSocket.as(dart.dsend(detachedRaw, '_get', [0])), {subscription: StreamSubscriptionOfRawSocketEventL().as(dart.dsend(detachedRaw, '_get', [1])), host: host, context: context, onBadCertificate: onBadCertificate, supportedProtocols: supportedProtocols}), dynamicToFutureLOfRawSecureSocketL())).then(io.SecureSocket, dart.fn(raw => io.SecureSocket.__(raw), RawSecureSocketLToSecureSocketL()));
  }
  static secureServer(socket, context, opts) {
    let bufferedData = opts && 'bufferedData' in opts ? opts.bufferedData : null;
    let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
    let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
    return async.Future.as(dart.dsend(socket, _detachRaw, [])).then(io.RawSecureSocket, dart.fn(detachedRaw => io.RawSecureSocket.secureServer(io.RawSocket.as(dart.dsend(detachedRaw, '_get', [0])), context, {subscription: StreamSubscriptionOfRawSocketEventL().as(dart.dsend(detachedRaw, '_get', [1])), bufferedData: bufferedData, requestClientCertificate: requestClientCertificate, requireClientCertificate: requireClientCertificate, supportedProtocols: supportedProtocols}), dynamicToFutureLOfRawSecureSocketL())).then(io.SecureSocket, dart.fn(raw => io.SecureSocket.__(raw), RawSecureSocketLToSecureSocketL()));
  }
};
(io.SecureSocket[dart.mixinNew] = function() {
}).prototype = io.SecureSocket.prototype;
dart.addTypeTests(io.SecureSocket);
dart.addTypeCaches(io.SecureSocket);
io.SecureSocket[dart.implements] = () => [io.Socket];
dart.setLibraryUri(io.SecureSocket, L48);
io.SecureServerSocket = class SecureServerSocket extends async.Stream$(io.SecureSocket) {
  static bind(address, port, context, opts) {
    let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
    let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
    let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
    let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
    let shared = opts && 'shared' in opts ? opts.shared : false;
    return io.RawSecureServerSocket.bind(address, port, context, {backlog: backlog, v6Only: v6Only, requestClientCertificate: requestClientCertificate, requireClientCertificate: requireClientCertificate, supportedProtocols: supportedProtocols, shared: shared}).then(io.SecureServerSocket, dart.fn(serverSocket => new io.SecureServerSocket.__(serverSocket), RawSecureServerSocketLToSecureServerSocketL()));
  }
  listen(onData, opts) {
    let onError = opts && 'onError' in opts ? opts.onError : null;
    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
    return this[_socket$].map(io.SecureSocket, dart.fn(rawSocket => io.SecureSocket.__(rawSocket), RawSecureSocketLToSecureSocketL())).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
  }
  get port() {
    return this[_socket$].port;
  }
  get address() {
    return this[_socket$].address;
  }
  close() {
    return this[_socket$].close().then(io.SecureServerSocket, dart.fn(_ => this, RawSecureServerSocketLToSecureServerSocketL()));
  }
  set [_owner](owner) {
    this[_socket$][_owner] = owner;
  }
};
(io.SecureServerSocket.__ = function(_socket) {
  this[_socket$] = _socket;
  io.SecureServerSocket.__proto__.new.call(this);
  ;
}).prototype = io.SecureServerSocket.prototype;
dart.addTypeTests(io.SecureServerSocket);
dart.addTypeCaches(io.SecureServerSocket);
dart.setMethodSignature(io.SecureServerSocket, () => ({
  __proto__: dart.getMethods(io.SecureServerSocket.__proto__),
  listen: dart.fnType(async.StreamSubscription$(io.SecureSocket), [dart.fnType(dart.void, [io.SecureSocket])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {}),
  close: dart.fnType(async.Future$(io.SecureServerSocket), [])
}));
dart.setGetterSignature(io.SecureServerSocket, () => ({
  __proto__: dart.getGetters(io.SecureServerSocket.__proto__),
  port: core.int,
  address: io.InternetAddress
}));
dart.setSetterSignature(io.SecureServerSocket, () => ({
  __proto__: dart.getSetters(io.SecureServerSocket.__proto__),
  [_owner]: dart.dynamic
}));
dart.setLibraryUri(io.SecureServerSocket, L48);
dart.setFieldSignature(io.SecureServerSocket, () => ({
  __proto__: dart.getFields(io.SecureServerSocket.__proto__),
  [_socket$]: dart.finalFieldType(io.RawSecureServerSocket)
}));
var _subscription$ = dart.privateName(io, "_subscription");
var _context$ = dart.privateName(io, "_context");
var _onSubscriptionStateChange = dart.privateName(io, "_onSubscriptionStateChange");
var _onPauseStateChange = dart.privateName(io, "_onPauseStateChange");
var _onData$0 = dart.privateName(io, "_onData");
io.RawSecureSocket = class RawSecureSocket extends core.Object {
  static connect(host, port, opts) {
    let context = opts && 'context' in opts ? opts.context : null;
    let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
    let timeout = opts && 'timeout' in opts ? opts.timeout : null;
    io._RawSecureSocket._verifyFields(host, port, false, false, false, onBadCertificate);
    return io.RawSocket.connect(host, port, {timeout: timeout}).then(io.RawSecureSocket, dart.fn(socket => io.RawSecureSocket.secure(socket, {context: context, onBadCertificate: onBadCertificate, supportedProtocols: supportedProtocols}), RawSocketLToFutureLOfRawSecureSocketL()));
  }
  static startConnect(host, port, opts) {
    let context = opts && 'context' in opts ? opts.context : null;
    let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
    return io.RawSocket.startConnect(host, port).then(ConnectionTaskOfRawSecureSocketL(), dart.fn(rawState => {
      let socket = rawState.socket.then(io.RawSecureSocket, dart.fn(rawSocket => io.RawSecureSocket.secure(rawSocket, {context: context, onBadCertificate: onBadCertificate, supportedProtocols: supportedProtocols}), RawSocketLToFutureLOfRawSecureSocketL()));
      return new (ConnectionTaskOfRawSecureSocketL()).__({socket: socket, onCancel: rawState[_onCancel$]});
    }, ConnectionTaskLOfRawSocketLToConnectionTaskLOfRawSecureSocketL()));
  }
  static secure(socket, opts) {
    let subscription = opts && 'subscription' in opts ? opts.subscription : null;
    let host = opts && 'host' in opts ? opts.host : null;
    let context = opts && 'context' in opts ? opts.context : null;
    let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
    socket.readEventsEnabled = false;
    socket.writeEventsEnabled = false;
    return io._RawSecureSocket.connect(host != null ? host : socket.address.host, socket.port, {is_server: false, socket: socket, subscription: subscription, context: context, onBadCertificate: onBadCertificate, supportedProtocols: supportedProtocols});
  }
  static secureServer(socket, context, opts) {
    let subscription = opts && 'subscription' in opts ? opts.subscription : null;
    let bufferedData = opts && 'bufferedData' in opts ? opts.bufferedData : null;
    let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
    let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
    socket.readEventsEnabled = false;
    socket.writeEventsEnabled = false;
    return io._RawSecureSocket.connect(socket.address, socket.remotePort, {context: context, is_server: true, socket: socket, subscription: subscription, bufferedData: bufferedData, requestClientCertificate: requestClientCertificate, requireClientCertificate: requireClientCertificate, supportedProtocols: supportedProtocols});
  }
};
(io.RawSecureSocket.new = function() {
  ;
}).prototype = io.RawSecureSocket.prototype;
dart.addTypeTests(io.RawSecureSocket);
dart.addTypeCaches(io.RawSecureSocket);
io.RawSecureSocket[dart.implements] = () => [io.RawSocket];
dart.setLibraryUri(io.RawSecureSocket, L48);
var requestClientCertificate$ = dart.privateName(io, "RawSecureServerSocket.requestClientCertificate");
var requireClientCertificate$ = dart.privateName(io, "RawSecureServerSocket.requireClientCertificate");
var supportedProtocols$ = dart.privateName(io, "RawSecureServerSocket.supportedProtocols");
io.RawSecureServerSocket = class RawSecureServerSocket extends async.Stream$(io.RawSecureSocket) {
  get requestClientCertificate() {
    return this[requestClientCertificate$];
  }
  set requestClientCertificate(value) {
    super.requestClientCertificate = value;
  }
  get requireClientCertificate() {
    return this[requireClientCertificate$];
  }
  set requireClientCertificate(value) {
    super.requireClientCertificate = value;
  }
  get supportedProtocols() {
    return this[supportedProtocols$];
  }
  set supportedProtocols(value) {
    super.supportedProtocols = value;
  }
  static bind(address, port, context, opts) {
    let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
    let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
    let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
    let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
    let shared = opts && 'shared' in opts ? opts.shared : false;
    return io.RawServerSocket.bind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared}).then(io.RawSecureServerSocket, dart.fn(serverSocket => new io.RawSecureServerSocket.__(serverSocket, context, requestClientCertificate, requireClientCertificate, supportedProtocols), RawServerSocketLToRawSecureServerSocketL()));
  }
  listen(onData, opts) {
    let onError = opts && 'onError' in opts ? opts.onError : null;
    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
    return this[_controller].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
  }
  get port() {
    return this[_socket$].port;
  }
  get address() {
    return this[_socket$].address;
  }
  close() {
    this[_closed] = true;
    return this[_socket$].close().then(io.RawSecureServerSocket, dart.fn(_ => this, RawServerSocketLToRawSecureServerSocketL()));
  }
  [_onData$0](connection) {
    let remotePort = null;
    try {
      remotePort = connection.remotePort;
    } catch (e$) {
      let e = dart.getThrown(e$);
      return;
    }
    io._RawSecureSocket.connect(connection.address, core.int.as(remotePort), {context: this[_context$], is_server: true, socket: connection, requestClientCertificate: this.requestClientCertificate, requireClientCertificate: this.requireClientCertificate, supportedProtocols: this.supportedProtocols}).then(core.Null, dart.fn(secureConnection => {
      if (dart.test(this[_closed])) {
        secureConnection.close();
      } else {
        this[_controller].add(secureConnection);
      }
    }, RawSecureSocketLToNullN())).catchError(dart.fn((e, s) => {
      if (!dart.test(this[_closed])) {
        this[_controller].addError(e, core.StackTrace.as(s));
      }
    }, dynamicAnddynamicToNullN()));
  }
  [_onPauseStateChange]() {
    if (dart.test(this[_controller].isPaused)) {
      this[_subscription$].pause();
    } else {
      this[_subscription$].resume();
    }
  }
  [_onSubscriptionStateChange]() {
    if (dart.test(this[_controller].hasListener)) {
      this[_subscription$] = this[_socket$].listen(dart.bind(this, _onData$0), {onError: dart.bind(this[_controller], 'addError'), onDone: dart.bind(this[_controller], 'close')});
    } else {
      this.close();
    }
  }
  set [_owner](owner) {
    dart.dput(this[_socket$], _owner, owner);
  }
};
(io.RawSecureServerSocket.__ = function(_socket, _context, requestClientCertificate, requireClientCertificate, supportedProtocols) {
  this[_controller] = null;
  this[_subscription$] = null;
  this[_closed] = false;
  this[_socket$] = _socket;
  this[_context$] = _context;
  this[requestClientCertificate$] = requestClientCertificate;
  this[requireClientCertificate$] = requireClientCertificate;
  this[supportedProtocols$] = supportedProtocols;
  io.RawSecureServerSocket.__proto__.new.call(this);
  this[_controller] = StreamControllerOfRawSecureSocketL().new({sync: true, onListen: dart.bind(this, _onSubscriptionStateChange), onPause: dart.bind(this, _onPauseStateChange), onResume: dart.bind(this, _onPauseStateChange), onCancel: dart.bind(this, _onSubscriptionStateChange)});
}).prototype = io.RawSecureServerSocket.prototype;
dart.addTypeTests(io.RawSecureServerSocket);
dart.addTypeCaches(io.RawSecureServerSocket);
dart.setMethodSignature(io.RawSecureServerSocket, () => ({
  __proto__: dart.getMethods(io.RawSecureServerSocket.__proto__),
  listen: dart.fnType(async.StreamSubscription$(io.RawSecureSocket), [dart.fnType(dart.void, [io.RawSecureSocket])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {}),
  close: dart.fnType(async.Future$(io.RawSecureServerSocket), []),
  [_onData$0]: dart.fnType(dart.void, [io.RawSocket]),
  [_onPauseStateChange]: dart.fnType(dart.void, []),
  [_onSubscriptionStateChange]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(io.RawSecureServerSocket, () => ({
  __proto__: dart.getGetters(io.RawSecureServerSocket.__proto__),
  port: core.int,
  address: io.InternetAddress
}));
dart.setSetterSignature(io.RawSecureServerSocket, () => ({
  __proto__: dart.getSetters(io.RawSecureServerSocket.__proto__),
  [_owner]: dart.dynamic
}));
dart.setLibraryUri(io.RawSecureServerSocket, L48);
dart.setFieldSignature(io.RawSecureServerSocket, () => ({
  __proto__: dart.getFields(io.RawSecureServerSocket.__proto__),
  [_socket$]: dart.finalFieldType(io.RawServerSocket),
  [_controller]: dart.fieldType(async.StreamController$(io.RawSecureSocket)),
  [_subscription$]: dart.fieldType(async.StreamSubscription$(io.RawSocket)),
  [_context$]: dart.finalFieldType(io.SecurityContext),
  requestClientCertificate: dart.finalFieldType(core.bool),
  requireClientCertificate: dart.finalFieldType(core.bool),
  supportedProtocols: dart.finalFieldType(core.List$(core.String)),
  [_closed]: dart.fieldType(core.bool)
}));
io.X509Certificate = class X509Certificate extends core.Object {};
(io.X509Certificate[dart.mixinNew] = function() {
}).prototype = io.X509Certificate.prototype;
dart.addTypeTests(io.X509Certificate);
dart.addTypeCaches(io.X509Certificate);
dart.setLibraryUri(io.X509Certificate, L48);
io._FilterStatus = class _FilterStatus extends core.Object {};
(io._FilterStatus.new = function() {
  this.progress = false;
  this.readEmpty = true;
  this.writeEmpty = true;
  this.readPlaintextNoLongerEmpty = false;
  this.writePlaintextNoLongerFull = false;
  this.readEncryptedNoLongerFull = false;
  this.writeEncryptedNoLongerEmpty = false;
  ;
}).prototype = io._FilterStatus.prototype;
dart.addTypeTests(io._FilterStatus);
dart.addTypeCaches(io._FilterStatus);
dart.setLibraryUri(io._FilterStatus, L48);
dart.setFieldSignature(io._FilterStatus, () => ({
  __proto__: dart.getFields(io._FilterStatus.__proto__),
  progress: dart.fieldType(core.bool),
  readEmpty: dart.fieldType(core.bool),
  writeEmpty: dart.fieldType(core.bool),
  readPlaintextNoLongerEmpty: dart.fieldType(core.bool),
  writePlaintextNoLongerFull: dart.fieldType(core.bool),
  readEncryptedNoLongerFull: dart.fieldType(core.bool),
  writeEncryptedNoLongerEmpty: dart.fieldType(core.bool)
}));
var _handshakeComplete = dart.privateName(io, "_handshakeComplete");
var _stream$0 = dart.privateName(io, "_stream");
var _bufferedDataIndex = dart.privateName(io, "_bufferedDataIndex");
var _status = dart.privateName(io, "_status");
var _writeEventsEnabled = dart.privateName(io, "_writeEventsEnabled");
var _readEventsEnabled = dart.privateName(io, "_readEventsEnabled");
var _pauseCount = dart.privateName(io, "_pauseCount");
var _pendingReadEvent = dart.privateName(io, "_pendingReadEvent");
var _socketClosedRead = dart.privateName(io, "_socketClosedRead");
var _socketClosedWrite = dart.privateName(io, "_socketClosedWrite");
var _closedRead = dart.privateName(io, "_closedRead");
var _closedWrite = dart.privateName(io, "_closedWrite");
var _filterStatus = dart.privateName(io, "_filterStatus");
var _connectPending = dart.privateName(io, "_connectPending");
var _filterPending = dart.privateName(io, "_filterPending");
var _filterActive = dart.privateName(io, "_filterActive");
var _secureFilter = dart.privateName(io, "_secureFilter");
var _selectedProtocol = dart.privateName(io, "_selectedProtocol");
var _socketSubscription$ = dart.privateName(io, "_socketSubscription");
var _bufferedData$ = dart.privateName(io, "_bufferedData");
var _secureHandshakeCompleteHandler = dart.privateName(io, "_secureHandshakeCompleteHandler");
var _onBadCertificateWrapper = dart.privateName(io, "_onBadCertificateWrapper");
var _eventDispatcher = dart.privateName(io, "_eventDispatcher");
var _reportError = dart.privateName(io, "_reportError");
var _doneHandler = dart.privateName(io, "_doneHandler");
var _secureHandshake = dart.privateName(io, "_secureHandshake");
var _sendWriteEvent = dart.privateName(io, "_sendWriteEvent");
var _completeCloseCompleter = dart.privateName(io, "_completeCloseCompleter");
var _close$ = dart.privateName(io, "_close");
var _scheduleReadEvent = dart.privateName(io, "_scheduleReadEvent");
var _scheduleFilter = dart.privateName(io, "_scheduleFilter");
var _readHandler = dart.privateName(io, "_readHandler");
var _writeHandler = dart.privateName(io, "_writeHandler");
var _closeHandler = dart.privateName(io, "_closeHandler");
var _readSocket = dart.privateName(io, "_readSocket");
var _writeSocket = dart.privateName(io, "_writeSocket");
var _tryFilter = dart.privateName(io, "_tryFilter");
var _pushAllFilterStages = dart.privateName(io, "_pushAllFilterStages");
var _readSocketOrBufferedData = dart.privateName(io, "_readSocketOrBufferedData");
var _sendReadEvent = dart.privateName(io, "_sendReadEvent");
var _value$1 = dart.privateName(io, "_value");
var C174;
var _value$2 = dart.privateName(io, "RawSocketEvent._value");
var C175;
var C176;
var C177;
var C178;
io.RawSocketEvent = class RawSocketEvent extends core.Object {
  get [_value$1]() {
    return this[_value$2];
  }
  set [_value$1](value) {
    super[_value$1] = value;
  }
  toString() {
    return (C174 || CT.C174)[$_get](this[_value$1]);
  }
};
(io.RawSocketEvent.__ = function(_value) {
  this[_value$2] = _value;
  ;
}).prototype = io.RawSocketEvent.prototype;
dart.addTypeTests(io.RawSocketEvent);
dart.addTypeCaches(io.RawSocketEvent);
dart.setLibraryUri(io.RawSocketEvent, L48);
dart.setFieldSignature(io.RawSocketEvent, () => ({
  __proto__: dart.getFields(io.RawSocketEvent.__proto__),
  [_value$1]: dart.finalFieldType(core.int)
}));
dart.defineExtensionMethods(io.RawSocketEvent, ['toString']);
dart.defineLazy(io.RawSocketEvent, {
  /*io.RawSocketEvent.read*/get read() {
    return C175 || CT.C175;
  },
  /*io.RawSocketEvent.write*/get write() {
    return C176 || CT.C176;
  },
  /*io.RawSocketEvent.readClosed*/get readClosed() {
    return C177 || CT.C177;
  },
  /*io.RawSocketEvent.closed*/get closed() {
    return C178 || CT.C178;
  },
  /*io.RawSocketEvent.READ*/get READ() {
    return C175 || CT.C175;
  },
  /*io.RawSocketEvent.WRITE*/get WRITE() {
    return C176 || CT.C176;
  },
  /*io.RawSocketEvent.READ_CLOSED*/get READ_CLOSED() {
    return C177 || CT.C177;
  },
  /*io.RawSocketEvent.CLOSED*/get CLOSED() {
    return C178 || CT.C178;
  }
}, true);
io._RawSecureSocket = class _RawSecureSocket extends async.Stream$(io.RawSocketEvent) {
  static _isBufferEncrypted(identifier) {
    return dart.notNull(identifier) >= 2;
  }
  static connect(host, requestedPort, opts) {
    let is_server = opts && 'is_server' in opts ? opts.is_server : null;
    let context = opts && 'context' in opts ? opts.context : null;
    let socket = opts && 'socket' in opts ? opts.socket : null;
    let subscription = opts && 'subscription' in opts ? opts.subscription : null;
    let bufferedData = opts && 'bufferedData' in opts ? opts.bufferedData : null;
    let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
    let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
    let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
    io._RawSecureSocket._verifyFields(host, requestedPort, is_server, requestClientCertificate, requireClientCertificate, onBadCertificate);
    if (io.InternetAddress.is(host)) host = dart.dload(host, 'host');
    let address = socket.address;
    if (host != null) {
      address = io.InternetAddress._cloneWithNewHost(address, core.String.as(host));
    }
    return new io._RawSecureSocket.new(address, requestedPort, is_server, context, socket, subscription, bufferedData, requestClientCertificate, requireClientCertificate, onBadCertificate, supportedProtocols)[_handshakeComplete].future;
  }
  listen(onData, opts) {
    let onError = opts && 'onError' in opts ? opts.onError : null;
    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
    this[_sendWriteEvent]();
    return this[_stream$0].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
  }
  static _verifyFields(host, requestedPort, is_server, requestClientCertificate, requireClientCertificate, onBadCertificate) {
    if (!(typeof host == 'string') && !io.InternetAddress.is(host)) {
      dart.throw(new core.ArgumentError.new("host is not a String or an InternetAddress"));
    }
    core.ArgumentError.checkNotNull(core.int, requestedPort, "requestedPort");
    if (dart.notNull(requestedPort) < 0 || dart.notNull(requestedPort) > 65535) {
      dart.throw(new core.ArgumentError.new("requestedPort is not in the range 0..65535"));
    }
    core.ArgumentError.checkNotNull(core.bool, requestClientCertificate, "requestClientCertificate");
    core.ArgumentError.checkNotNull(core.bool, requireClientCertificate, "requireClientCertificate");
  }
  get port() {
    return this[_socket$].port;
  }
  get remoteAddress() {
    return this[_socket$].remoteAddress;
  }
  get remotePort() {
    return this[_socket$].remotePort;
  }
  set [_owner](owner) {
    dart.dput(this[_socket$], _owner, owner);
  }
  available() {
    return this[_status] !== 202 ? 0 : this[_secureFilter].buffers[$_get](0).length;
  }
  close() {
    this.shutdown(io.SocketDirection.both);
    return this[_closeCompleter].future;
  }
  [_completeCloseCompleter](dummy = null) {
    if (!dart.test(this[_closeCompleter].isCompleted)) this[_closeCompleter].complete(this);
  }
  [_close$]() {
    this[_closedWrite] = true;
    this[_closedRead] = true;
    if (this[_socket$] != null) {
      this[_socket$].close().then(dart.void, dart.bind(this, _completeCloseCompleter));
    } else {
      this[_completeCloseCompleter]();
    }
    this[_socketClosedWrite] = true;
    this[_socketClosedRead] = true;
    if (!dart.test(this[_filterActive]) && this[_secureFilter] != null) {
      this[_secureFilter].destroy();
      this[_secureFilter] = null;
    }
    if (this[_socketSubscription$] != null) {
      this[_socketSubscription$].cancel();
    }
    this[_controller].close();
    this[_status] = 203;
  }
  shutdown(direction) {
    if (dart.equals(direction, io.SocketDirection.send) || dart.equals(direction, io.SocketDirection.both)) {
      this[_closedWrite] = true;
      if (dart.test(this[_filterStatus].writeEmpty)) {
        this[_socket$].shutdown(io.SocketDirection.send);
        this[_socketClosedWrite] = true;
        if (dart.test(this[_closedRead])) {
          this[_close$]();
        }
      }
    }
    if (dart.equals(direction, io.SocketDirection.receive) || dart.equals(direction, io.SocketDirection.both)) {
      this[_closedRead] = true;
      this[_socketClosedRead] = true;
      this[_socket$].shutdown(io.SocketDirection.receive);
      if (dart.test(this[_socketClosedWrite])) {
        this[_close$]();
      }
    }
  }
  get writeEventsEnabled() {
    return this[_writeEventsEnabled];
  }
  set writeEventsEnabled(value) {
    this[_writeEventsEnabled] = value;
    if (dart.test(value)) {
      async.Timer.run(dart.fn(() => this[_sendWriteEvent](), VoidTodynamic()));
    }
  }
  get readEventsEnabled() {
    return this[_readEventsEnabled];
  }
  set readEventsEnabled(value) {
    this[_readEventsEnabled] = value;
    this[_scheduleReadEvent]();
  }
  read(length = null) {
    if (length != null && (!core.int.is(length) || dart.notNull(length) < 0)) {
      dart.throw(new core.ArgumentError.new("Invalid length parameter in SecureSocket.read (length: " + dart.str(length) + ")"));
    }
    if (dart.test(this[_closedRead])) {
      dart.throw(new io.SocketException.new("Reading from a closed socket"));
    }
    if (this[_status] !== 202) {
      return null;
    }
    let result = this[_secureFilter].buffers[$_get](0).read(length);
    this[_scheduleFilter]();
    return result;
  }
  write(data, offset = null, bytes = null) {
    if (bytes != null && (!core.int.is(bytes) || dart.notNull(bytes) < 0)) {
      dart.throw(new core.ArgumentError.new("Invalid bytes parameter in SecureSocket.read (bytes: " + dart.str(bytes) + ")"));
    }
    if (offset != null && (!core.int.is(offset) || dart.notNull(offset) < 0)) {
      dart.throw(new core.ArgumentError.new("Invalid offset parameter in SecureSocket.read (offset: " + dart.str(offset) + ")"));
    }
    if (dart.test(this[_closedWrite])) {
      this[_controller].addError(new io.SocketException.new("Writing to a closed socket"));
      return 0;
    }
    if (this[_status] !== 202) return 0;
    offset == null ? offset = 0 : null;
    bytes == null ? bytes = dart.notNull(data[$length]) - dart.notNull(offset) : null;
    let written = this[_secureFilter].buffers[$_get](1).write(data, offset, bytes);
    if (dart.notNull(written) > 0) {
      this[_filterStatus].writeEmpty = false;
    }
    this[_scheduleFilter]();
    return written;
  }
  get peerCertificate() {
    return this[_secureFilter].peerCertificate;
  }
  get selectedProtocol() {
    return this[_selectedProtocol];
  }
  [_onBadCertificateWrapper](certificate) {
    let t87;
    if (this.onBadCertificate == null) return false;
    let result = (t87 = certificate, dart.dsend(this, 'onBadCertificate', [t87]));
    if (typeof result == 'boolean') return result;
    dart.throw(new io.HandshakeException.new("onBadCertificate callback returned non-boolean " + dart.str(result)));
  }
  setOption(option, enabled) {
    if (this[_socket$] == null) return false;
    return this[_socket$].setOption(option, enabled);
  }
  getRawOption(option) {
    let t87;
    t87 = this[_socket$];
    return t87 == null ? null : t87.getRawOption(option);
  }
  setRawOption(option) {
    let t87;
    t87 = this[_socket$];
    t87 == null ? null : t87.setRawOption(option);
  }
  [_eventDispatcher](event) {
    try {
      if (dart.equals(event, io.RawSocketEvent.read)) {
        this[_readHandler]();
      } else if (dart.equals(event, io.RawSocketEvent.write)) {
        this[_writeHandler]();
      } else if (dart.equals(event, io.RawSocketEvent.readClosed)) {
        this[_closeHandler]();
      }
    } catch (e$) {
      let e = dart.getThrown(e$);
      let stackTrace = dart.stackTrace(e$);
      this[_reportError](e, stackTrace);
    }
  }
  [_readHandler]() {
    this[_readSocket]();
    this[_scheduleFilter]();
  }
  [_writeHandler]() {
    this[_writeSocket]();
    this[_scheduleFilter]();
  }
  [_doneHandler]() {
    if (dart.test(this[_filterStatus].readEmpty)) {
      this[_close$]();
    }
  }
  [_reportError](e, stackTrace = null) {
    if (this[_status] === 203) {
      return;
    } else if (dart.test(this[_connectPending])) {
      this[_handshakeComplete].completeError(e, stackTrace);
    } else {
      this[_controller].addError(e, stackTrace);
    }
    this[_close$]();
  }
  [_closeHandler]() {
    if (this[_status] === 202) {
      if (dart.test(this[_closedRead])) return;
      this[_socketClosedRead] = true;
      if (dart.test(this[_filterStatus].readEmpty)) {
        this[_closedRead] = true;
        this[_controller].add(io.RawSocketEvent.readClosed);
        if (dart.test(this[_socketClosedWrite])) {
          this[_close$]();
        }
      } else {
        this[_scheduleFilter]();
      }
    } else if (this[_status] === 201) {
      this[_socketClosedRead] = true;
      if (dart.test(this[_filterStatus].readEmpty)) {
        this[_reportError](new io.HandshakeException.new("Connection terminated during handshake"), null);
      } else {
        this[_secureHandshake]();
      }
    }
  }
  [_secureHandshake]() {
    try {
      this[_secureFilter].handshake();
      this[_filterStatus].writeEmpty = false;
      this[_readSocket]();
      this[_writeSocket]();
      this[_scheduleFilter]();
    } catch (e$) {
      let e = dart.getThrown(e$);
      let stackTrace = dart.stackTrace(e$);
      this[_reportError](e, stackTrace);
    }
  }
  renegotiate(opts) {
    let useSessionCache = opts && 'useSessionCache' in opts ? opts.useSessionCache : true;
    let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
    let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
    if (this[_status] !== 202) {
      dart.throw(new io.HandshakeException.new("Called renegotiate on a non-connected socket"));
    }
    this[_secureFilter].renegotiate(useSessionCache, requestClientCertificate, requireClientCertificate);
    this[_status] = 201;
    this[_filterStatus].writeEmpty = false;
    this[_scheduleFilter]();
  }
  [_secureHandshakeCompleteHandler]() {
    this[_status] = 202;
    if (dart.test(this[_connectPending])) {
      this[_connectPending] = false;
      try {
        this[_selectedProtocol] = this[_secureFilter].selectedProtocol();
        async.Timer.run(dart.fn(() => this[_handshakeComplete].complete(this), VoidTovoid()));
      } catch (e) {
        let error = dart.getThrown(e);
        let stack = dart.stackTrace(e);
        this[_handshakeComplete].completeError(error, stack);
      }
    }
  }
  [_onPauseStateChange]() {
    if (dart.test(this[_controller].isPaused)) {
      this[_pauseCount] = dart.notNull(this[_pauseCount]) + 1;
    } else {
      this[_pauseCount] = dart.notNull(this[_pauseCount]) - 1;
      if (this[_pauseCount] === 0) {
        this[_scheduleReadEvent]();
        this[_sendWriteEvent]();
      }
    }
    if (!dart.test(this[_socketClosedRead]) || !dart.test(this[_socketClosedWrite])) {
      if (dart.test(this[_controller].isPaused)) {
        this[_socketSubscription$].pause();
      } else {
        this[_socketSubscription$].resume();
      }
    }
  }
  [_onSubscriptionStateChange]() {
    if (dart.test(this[_controller].hasListener)) {
    }
  }
  [_scheduleFilter]() {
    this[_filterPending] = true;
    this[_tryFilter]();
  }
  [_tryFilter]() {
    if (this[_status] === 203) {
      return;
    }
    if (dart.test(this[_filterPending]) && !dart.test(this[_filterActive])) {
      this[_filterActive] = true;
      this[_filterPending] = false;
      this[_pushAllFilterStages]().then(core.Null, dart.fn(status => {
        this[_filterStatus] = status;
        this[_filterActive] = false;
        if (this[_status] === 203) {
          this[_secureFilter].destroy();
          this[_secureFilter] = null;
          return;
        }
        this[_socket$].readEventsEnabled = true;
        if (dart.test(this[_filterStatus].writeEmpty) && dart.test(this[_closedWrite]) && !dart.test(this[_socketClosedWrite])) {
          this.shutdown(io.SocketDirection.send);
          if (this[_status] === 203) {
            return;
          }
        }
        if (dart.test(this[_filterStatus].readEmpty) && dart.test(this[_socketClosedRead]) && !dart.test(this[_closedRead])) {
          if (this[_status] === 201) {
            this[_secureFilter].handshake();
            if (this[_status] === 201) {
              dart.throw(new io.HandshakeException.new("Connection terminated during handshake"));
            }
          }
          this[_closeHandler]();
        }
        if (this[_status] === 203) {
          return;
        }
        if (dart.test(this[_filterStatus].progress)) {
          this[_filterPending] = true;
          if (dart.test(this[_filterStatus].writeEncryptedNoLongerEmpty)) {
            this[_writeSocket]();
          }
          if (dart.test(this[_filterStatus].writePlaintextNoLongerFull)) {
            this[_sendWriteEvent]();
          }
          if (dart.test(this[_filterStatus].readEncryptedNoLongerFull)) {
            this[_readSocket]();
          }
          if (dart.test(this[_filterStatus].readPlaintextNoLongerEmpty)) {
            this[_scheduleReadEvent]();
          }
          if (this[_status] === 201) {
            this[_secureHandshake]();
          }
        }
        this[_tryFilter]();
      }, _FilterStatusLToNullN())).catchError(dart.bind(this, _reportError));
    }
  }
  [_readSocketOrBufferedData](bytes) {
    if (this[_bufferedData$] != null) {
      if (dart.notNull(bytes) > dart.notNull(this[_bufferedData$][$length]) - dart.notNull(this[_bufferedDataIndex])) {
        bytes = dart.notNull(this[_bufferedData$][$length]) - dart.notNull(this[_bufferedDataIndex]);
      }
      let result = this[_bufferedData$][$sublist](this[_bufferedDataIndex], dart.notNull(this[_bufferedDataIndex]) + dart.notNull(bytes));
      this[_bufferedDataIndex] = dart.notNull(this[_bufferedDataIndex]) + dart.notNull(bytes);
      if (this[_bufferedData$][$length] == this[_bufferedDataIndex]) {
        this[_bufferedData$] = null;
      }
      return result;
    } else if (!dart.test(this[_socketClosedRead])) {
      return this[_socket$].read(bytes);
    } else {
      return null;
    }
  }
  [_readSocket]() {
    if (this[_status] === 203) return;
    let buffer = this[_secureFilter].buffers[$_get](2);
    if (dart.notNull(buffer.writeFromSource(dart.bind(this, _readSocketOrBufferedData))) > 0) {
      this[_filterStatus].readEmpty = false;
    } else {
      this[_socket$].readEventsEnabled = false;
    }
  }
  [_writeSocket]() {
    if (dart.test(this[_socketClosedWrite])) return;
    let buffer = this[_secureFilter].buffers[$_get](3);
    if (dart.test(buffer.readToSocket(this[_socket$]))) {
      this[_socket$].writeEventsEnabled = true;
    }
  }
  [_scheduleReadEvent]() {
    if (!dart.test(this[_pendingReadEvent]) && dart.test(this[_readEventsEnabled]) && this[_pauseCount] === 0 && this[_secureFilter] != null && !dart.test(this[_secureFilter].buffers[$_get](0).isEmpty)) {
      this[_pendingReadEvent] = true;
      async.Timer.run(dart.bind(this, _sendReadEvent));
    }
  }
  [_sendReadEvent]() {
    this[_pendingReadEvent] = false;
    if (this[_status] !== 203 && dart.test(this[_readEventsEnabled]) && this[_pauseCount] === 0 && this[_secureFilter] != null && !dart.test(this[_secureFilter].buffers[$_get](0).isEmpty)) {
      this[_controller].add(io.RawSocketEvent.read);
      this[_scheduleReadEvent]();
    }
  }
  [_sendWriteEvent]() {
    if (!dart.test(this[_closedWrite]) && dart.test(this[_writeEventsEnabled]) && this[_pauseCount] === 0 && this[_secureFilter] != null && dart.notNull(this[_secureFilter].buffers[$_get](1).free) > 0) {
      this[_writeEventsEnabled] = false;
      this[_controller].add(io.RawSocketEvent.write);
    }
  }
  [_pushAllFilterStages]() {
    let wasInHandshake = this[_status] !== 202;
    let args = core.List.new(2 + 4 * 2);
    args[$_set](0, this[_secureFilter][_pointer]());
    args[$_set](1, wasInHandshake);
    let bufs = this[_secureFilter].buffers;
    for (let i = 0; i < 4; i = i + 1) {
      args[$_set](2 * i + 2, bufs[$_get](i).start);
      args[$_set](2 * i + 3, bufs[$_get](i).end);
    }
    return io._IOService._dispatch(42, args).then(io._FilterStatus, dart.fn(response => {
      if (dart.equals(dart.dload(response, 'length'), 2)) {
        if (wasInHandshake) {
          this[_reportError](new io.HandshakeException.new(dart.str(dart.dsend(response, '_get', [1])) + " error " + dart.str(dart.dsend(response, '_get', [0]))), null);
        } else {
          this[_reportError](new io.TlsException.new(dart.str(dart.dsend(response, '_get', [1])) + " error " + dart.str(dart.dsend(response, '_get', [0]))), null);
        }
      }
      function start(index) {
        return core.int.as(dart.dsend(response, '_get', [2 * dart.notNull(index)]));
      }
      dart.fn(start, intLTointL());
      function end(index) {
        return core.int.as(dart.dsend(response, '_get', [2 * dart.notNull(index) + 1]));
      }
      dart.fn(end, intLTointL());
      let status = new io._FilterStatus.new();
      status.writeEmpty = dart.test(bufs[$_get](1).isEmpty) && start(3) == end(3);
      if (wasInHandshake) status.writeEmpty = false;
      status.readEmpty = dart.test(bufs[$_get](2).isEmpty) && start(0) == end(0);
      let buffer = bufs[$_get](1);
      let new_start = start(1);
      if (new_start != buffer.start) {
        status.progress = true;
        if (buffer.free === 0) {
          status.writePlaintextNoLongerFull = true;
        }
        buffer.start = new_start;
      }
      buffer = bufs[$_get](2);
      new_start = start(2);
      if (new_start != buffer.start) {
        status.progress = true;
        if (buffer.free === 0) {
          status.readEncryptedNoLongerFull = true;
        }
        buffer.start = new_start;
      }
      buffer = bufs[$_get](3);
      let new_end = end(3);
      if (new_end != buffer.end) {
        status.progress = true;
        if (buffer.length === 0) {
          status.writeEncryptedNoLongerEmpty = true;
        }
        buffer.end = new_end;
      }
      buffer = bufs[$_get](0);
      new_end = end(0);
      if (new_end != buffer.end) {
        status.progress = true;
        if (buffer.length === 0) {
          status.readPlaintextNoLongerEmpty = true;
        }
        buffer.end = new_end;
      }
      return status;
    }, dynamicTo_FilterStatusL()));
  }
};
(io._RawSecureSocket.new = function(address, requestedPort, is_server, context, _socket, _socketSubscription, _bufferedData, requestClientCertificate, requireClientCertificate, onBadCertificate, supportedProtocols) {
  let t86;
  this[_handshakeComplete] = CompleterOf_RawSecureSocketL().new();
  this[_controller] = null;
  this[_stream$0] = null;
  this[_bufferedDataIndex] = 0;
  this[_status] = 201;
  this[_writeEventsEnabled] = true;
  this[_readEventsEnabled] = true;
  this[_pauseCount] = 0;
  this[_pendingReadEvent] = false;
  this[_socketClosedRead] = false;
  this[_socketClosedWrite] = false;
  this[_closedRead] = false;
  this[_closedWrite] = false;
  this[_closeCompleter] = CompleterOfRawSecureSocketL().new();
  this[_filterStatus] = new io._FilterStatus.new();
  this[_connectPending] = true;
  this[_filterPending] = false;
  this[_filterActive] = false;
  this[_secureFilter] = io._SecureFilter.__();
  this[_selectedProtocol] = null;
  this.address = address;
  this.is_server = is_server;
  this.context = context;
  this[_socket$] = _socket;
  this[_socketSubscription$] = _socketSubscription;
  this[_bufferedData$] = _bufferedData;
  this.requestClientCertificate = requestClientCertificate;
  this.requireClientCertificate = requireClientCertificate;
  this.onBadCertificate = onBadCertificate;
  io._RawSecureSocket.__proto__.new.call(this);
  this.context == null ? this.context = io.SecurityContext.defaultContext : null;
  this[_controller] = StreamControllerOfRawSocketEventL().new({sync: true, onListen: dart.bind(this, _onSubscriptionStateChange), onPause: dart.bind(this, _onPauseStateChange), onResume: dart.bind(this, _onPauseStateChange), onCancel: dart.bind(this, _onSubscriptionStateChange)});
  this[_stream$0] = this[_controller].stream;
  this[_secureFilter].init();
  this[_secureFilter].registerHandshakeCompleteCallback(dart.bind(this, _secureHandshakeCompleteHandler));
  if (this.onBadCertificate != null) {
    this[_secureFilter].registerBadCertificateCallback(dart.bind(this, _onBadCertificateWrapper));
  }
  this[_socket$].readEventsEnabled = true;
  this[_socket$].writeEventsEnabled = false;
  if (this[_socketSubscription$] == null) {
    this[_socketSubscription$] = this[_socket$].listen(dart.bind(this, _eventDispatcher), {onError: dart.bind(this, _reportError), onDone: dart.bind(this, _doneHandler)});
  } else {
    if (dart.test(this[_socketSubscription$].isPaused)) {
      this[_socket$].close();
      dart.throw(new core.ArgumentError.new("Subscription passed to TLS upgrade is paused"));
    }
    let s = this[_socket$];
    if (dart.dtest(dart.dload(dart.dload(s, _socket$), 'closedReadEventSent'))) {
      this[_eventDispatcher](io.RawSocketEvent.readClosed);
    }
    t86 = this[_socketSubscription$];
    t86.onData(dart.bind(this, _eventDispatcher));
    t86.onError(dart.bind(this, _reportError));
    t86.onDone(dart.bind(this, _doneHandler));
    t86;
  }
  try {
    let encodedProtocols = io.SecurityContext._protocolsToLengthEncoding(supportedProtocols);
    this[_secureFilter].connect(this.address.host, this.context, this.is_server, dart.test(this.requestClientCertificate) || dart.test(this.requireClientCertificate), this.requireClientCertificate, encodedProtocols);
    this[_secureHandshake]();
  } catch (e$) {
    let e = dart.getThrown(e$);
    let s = dart.stackTrace(e$);
    this[_reportError](e, s);
  }
}).prototype = io._RawSecureSocket.prototype;
dart.addTypeTests(io._RawSecureSocket);
dart.addTypeCaches(io._RawSecureSocket);
io._RawSecureSocket[dart.implements] = () => [io.RawSecureSocket];
dart.setMethodSignature(io._RawSecureSocket, () => ({
  __proto__: dart.getMethods(io._RawSecureSocket.__proto__),
  listen: dart.fnType(async.StreamSubscription$(io.RawSocketEvent), [dart.fnType(dart.void, [io.RawSocketEvent])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {}),
  available: dart.fnType(core.int, []),
  close: dart.fnType(async.Future$(io.RawSecureSocket), []),
  [_completeCloseCompleter]: dart.fnType(dart.void, [], [io.RawSocket]),
  [_close$]: dart.fnType(dart.void, []),
  shutdown: dart.fnType(dart.void, [io.SocketDirection]),
  read: dart.fnType(typed_data.Uint8List, [], [core.int]),
  write: dart.fnType(core.int, [core.List$(core.int)], [core.int, core.int]),
  [_onBadCertificateWrapper]: dart.fnType(core.bool, [io.X509Certificate]),
  setOption: dart.fnType(core.bool, [io.SocketOption, core.bool]),
  getRawOption: dart.fnType(typed_data.Uint8List, [io.RawSocketOption]),
  setRawOption: dart.fnType(dart.void, [io.RawSocketOption]),
  [_eventDispatcher]: dart.fnType(dart.void, [io.RawSocketEvent]),
  [_readHandler]: dart.fnType(dart.void, []),
  [_writeHandler]: dart.fnType(dart.void, []),
  [_doneHandler]: dart.fnType(dart.void, []),
  [_reportError]: dart.fnType(dart.void, [dart.dynamic], [core.StackTrace]),
  [_closeHandler]: dart.fnType(dart.void, []),
  [_secureHandshake]: dart.fnType(dart.void, []),
  renegotiate: dart.fnType(dart.void, [], {requestClientCertificate: core.bool, requireClientCertificate: core.bool, useSessionCache: core.bool}, {}),
  [_secureHandshakeCompleteHandler]: dart.fnType(dart.void, []),
  [_onPauseStateChange]: dart.fnType(dart.void, []),
  [_onSubscriptionStateChange]: dart.fnType(dart.void, []),
  [_scheduleFilter]: dart.fnType(dart.void, []),
  [_tryFilter]: dart.fnType(dart.void, []),
  [_readSocketOrBufferedData]: dart.fnType(core.List$(core.int), [core.int]),
  [_readSocket]: dart.fnType(dart.void, []),
  [_writeSocket]: dart.fnType(dart.void, []),
  [_scheduleReadEvent]: dart.fnType(dart.dynamic, []),
  [_sendReadEvent]: dart.fnType(dart.dynamic, []),
  [_sendWriteEvent]: dart.fnType(dart.dynamic, []),
  [_pushAllFilterStages]: dart.fnType(async.Future$(io._FilterStatus), [])
}));
dart.setGetterSignature(io._RawSecureSocket, () => ({
  __proto__: dart.getGetters(io._RawSecureSocket.__proto__),
  port: core.int,
  remoteAddress: io.InternetAddress,
  remotePort: core.int,
  writeEventsEnabled: core.bool,
  readEventsEnabled: core.bool,
  peerCertificate: io.X509Certificate,
  selectedProtocol: core.String
}));
dart.setSetterSignature(io._RawSecureSocket, () => ({
  __proto__: dart.getSetters(io._RawSecureSocket.__proto__),
  [_owner]: dart.dynamic,
  writeEventsEnabled: core.bool,
  readEventsEnabled: core.bool
}));
dart.setLibraryUri(io._RawSecureSocket, L48);
dart.setFieldSignature(io._RawSecureSocket, () => ({
  __proto__: dart.getFields(io._RawSecureSocket.__proto__),
  [_socket$]: dart.fieldType(io.RawSocket),
  [_handshakeComplete]: dart.finalFieldType(async.Completer$(io._RawSecureSocket)),
  [_controller]: dart.fieldType(async.StreamController$(io.RawSocketEvent)),
  [_stream$0]: dart.fieldType(async.Stream$(io.RawSocketEvent)),
  [_socketSubscription$]: dart.fieldType(async.StreamSubscription$(io.RawSocketEvent)),
  [_bufferedData$]: dart.fieldType(core.List$(core.int)),
  [_bufferedDataIndex]: dart.fieldType(core.int),
  address: dart.finalFieldType(io.InternetAddress),
  is_server: dart.finalFieldType(core.bool),
  context: dart.fieldType(io.SecurityContext),
  requestClientCertificate: dart.finalFieldType(core.bool),
  requireClientCertificate: dart.finalFieldType(core.bool),
  onBadCertificate: dart.finalFieldType(core.Function),
  [_status]: dart.fieldType(core.int),
  [_writeEventsEnabled]: dart.fieldType(core.bool),
  [_readEventsEnabled]: dart.fieldType(core.bool),
  [_pauseCount]: dart.fieldType(core.int),
  [_pendingReadEvent]: dart.fieldType(core.bool),
  [_socketClosedRead]: dart.fieldType(core.bool),
  [_socketClosedWrite]: dart.fieldType(core.bool),
  [_closedRead]: dart.fieldType(core.bool),
  [_closedWrite]: dart.fieldType(core.bool),
  [_closeCompleter]: dart.fieldType(async.Completer$(io.RawSecureSocket)),
  [_filterStatus]: dart.fieldType(io._FilterStatus),
  [_connectPending]: dart.fieldType(core.bool),
  [_filterPending]: dart.fieldType(core.bool),
  [_filterActive]: dart.fieldType(core.bool),
  [_secureFilter]: dart.fieldType(io._SecureFilter),
  [_selectedProtocol]: dart.fieldType(core.String)
}));
dart.defineLazy(io._RawSecureSocket, {
  /*io._RawSecureSocket.handshakeStatus*/get handshakeStatus() {
    return 201;
  },
  /*io._RawSecureSocket.connectedStatus*/get connectedStatus() {
    return 202;
  },
  /*io._RawSecureSocket.closedStatus*/get closedStatus() {
    return 203;
  },
  /*io._RawSecureSocket.readPlaintextId*/get readPlaintextId() {
    return 0;
  },
  /*io._RawSecureSocket.writePlaintextId*/get writePlaintextId() {
    return 1;
  },
  /*io._RawSecureSocket.readEncryptedId*/get readEncryptedId() {
    return 2;
  },
  /*io._RawSecureSocket.writeEncryptedId*/get writeEncryptedId() {
    return 3;
  },
  /*io._RawSecureSocket.bufferCount*/get bufferCount() {
    return 4;
  }
}, true);
io._ExternalBuffer = class _ExternalBuffer extends core.Object {
  advanceStart(bytes) {
    if (!(dart.notNull(this.start) > dart.notNull(this.end) || dart.notNull(this.start) + dart.notNull(bytes) <= dart.notNull(this.end))) dart.assertFailed(null, L55, 1141, 12, "start > end || start + bytes <= end");
    this.start = dart.notNull(this.start) + dart.notNull(bytes);
    if (dart.notNull(this.start) >= dart.notNull(core.num.as(this.size))) {
      this.start = dart.asNullableInt(dart.notNull(this.start) - dart.notNull(core.num.as(this.size)));
      if (!(dart.notNull(this.start) <= dart.notNull(this.end))) dart.assertFailed(null, L55, 1145, 14, "start <= end");
      if (!(dart.notNull(this.start) < dart.notNull(core.num.as(this.size)))) dart.assertFailed(null, L55, 1146, 14, "start < size");
    }
  }
  advanceEnd(bytes) {
    if (!(dart.notNull(this.start) <= dart.notNull(this.end) || dart.notNull(this.start) > dart.notNull(this.end) + dart.notNull(bytes))) dart.assertFailed(null, L55, 1151, 12, "start <= end || start > end + bytes");
    this.end = dart.notNull(this.end) + dart.notNull(bytes);
    if (dart.notNull(this.end) >= dart.notNull(core.num.as(this.size))) {
      this.end = dart.asNullableInt(dart.notNull(this.end) - dart.notNull(core.num.as(this.size)));
      if (!(dart.notNull(this.end) < dart.notNull(this.start))) dart.assertFailed(null, L55, 1155, 14, "end < start");
      if (!(dart.notNull(this.end) < dart.notNull(core.num.as(this.size)))) dart.assertFailed(null, L55, 1156, 14, "end < size");
    }
  }
  get isEmpty() {
    return this.end == this.start;
  }
  get length() {
    return core.int.as(dart.notNull(this.start) > dart.notNull(this.end) ? dart.dsend(dart.dsend(this.size, '+', [this.end]), '-', [this.start]) : dart.notNull(this.end) - dart.notNull(this.start));
  }
  get linearLength() {
    return core.int.as(dart.notNull(this.start) > dart.notNull(this.end) ? dart.dsend(this.size, '-', [this.start]) : dart.notNull(this.end) - dart.notNull(this.start));
  }
  get free() {
    return core.int.as(dart.notNull(this.start) > dart.notNull(this.end) ? dart.notNull(this.start) - dart.notNull(this.end) - 1 : dart.dsend(dart.dsend(dart.dsend(this.size, '+', [this.start]), '-', [this.end]), '-', [1]));
  }
  get linearFree() {
    if (dart.notNull(this.start) > dart.notNull(this.end)) return dart.notNull(this.start) - dart.notNull(this.end) - 1;
    if (this.start === 0) return core.int.as(dart.dsend(dart.dsend(this.size, '-', [this.end]), '-', [1]));
    return core.int.as(dart.dsend(this.size, '-', [this.end]));
  }
  read(bytes) {
    if (bytes == null) {
      bytes = this.length;
    } else {
      bytes = math.min(core.int, bytes, this.length);
    }
    if (bytes === 0) return null;
    let result = _native_typed_data.NativeUint8List.new(bytes);
    let bytesRead = 0;
    while (bytesRead < dart.notNull(bytes)) {
      let toRead = math.min(core.int, dart.notNull(bytes) - bytesRead, this.linearLength);
      result[$setRange](bytesRead, bytesRead + toRead, this.data, this.start);
      this.advanceStart(toRead);
      bytesRead = bytesRead + toRead;
    }
    return result;
  }
  write(inputData, offset, bytes) {
    if (dart.notNull(bytes) > dart.notNull(this.free)) {
      bytes = this.free;
    }
    let written = 0;
    let toWrite = math.min(core.int, bytes, this.linearFree);
    while (toWrite > 0) {
      this.data[$setRange](this.end, dart.notNull(this.end) + toWrite, inputData, offset);
      this.advanceEnd(toWrite);
      offset = dart.notNull(offset) + toWrite;
      written = written + toWrite;
      toWrite = math.min(core.int, dart.notNull(bytes) - written, this.linearFree);
    }
    return written;
  }
  writeFromSource(getData) {
    let written = 0;
    let toWrite = this.linearFree;
    while (dart.notNull(toWrite) > 0) {
      let inputData = getData(toWrite);
      if (inputData == null || inputData[$length] === 0) break;
      let len = inputData[$length];
      this.data[$setRange](this.end, dart.notNull(this.end) + dart.notNull(len), inputData);
      this.advanceEnd(len);
      written = written + dart.notNull(len);
      toWrite = this.linearFree;
    }
    return written;
  }
  readToSocket(socket) {
    while (true) {
      let toWrite = this.linearLength;
      if (toWrite === 0) return false;
      let bytes = socket.write(this.data, this.start, toWrite);
      this.advanceStart(bytes);
      if (dart.notNull(bytes) < dart.notNull(toWrite)) {
        return true;
      }
    }
  }
};
(io._ExternalBuffer.new = function(size) {
  this.data = null;
  this.start = null;
  this.end = null;
  this.size = size;
  this.start = dart.asNullableInt(this.end = core.int.as(dart.dsend(this.size, '~/', [2])));
}).prototype = io._ExternalBuffer.prototype;
dart.addTypeTests(io._ExternalBuffer);
dart.addTypeCaches(io._ExternalBuffer);
dart.setMethodSignature(io._ExternalBuffer, () => ({
  __proto__: dart.getMethods(io._ExternalBuffer.__proto__),
  advanceStart: dart.fnType(dart.void, [core.int]),
  advanceEnd: dart.fnType(dart.void, [core.int]),
  read: dart.fnType(typed_data.Uint8List, [core.int]),
  write: dart.fnType(core.int, [core.List$(core.int), core.int, core.int]),
  writeFromSource: dart.fnType(core.int, [dart.fnType(core.List$(core.int), [core.int])]),
  readToSocket: dart.fnType(core.bool, [io.RawSocket])
}));
dart.setGetterSignature(io._ExternalBuffer, () => ({
  __proto__: dart.getGetters(io._ExternalBuffer.__proto__),
  isEmpty: core.bool,
  length: core.int,
  linearLength: core.int,
  free: core.int,
  linearFree: core.int
}));
dart.setLibraryUri(io._ExternalBuffer, L48);
dart.setFieldSignature(io._ExternalBuffer, () => ({
  __proto__: dart.getFields(io._ExternalBuffer.__proto__),
  data: dart.fieldType(core.List$(core.int)),
  start: dart.fieldType(core.int),
  end: dart.fieldType(core.int),
  size: dart.finalFieldType(dart.dynamic)
}));
io._SecureFilter = class _SecureFilter extends core.Object {};
(io._SecureFilter[dart.mixinNew] = function() {
}).prototype = io._SecureFilter.prototype;
dart.addTypeTests(io._SecureFilter);
dart.addTypeCaches(io._SecureFilter);
dart.setLibraryUri(io._SecureFilter, L48);
var type$1 = dart.privateName(io, "TlsException.type");
var message$6 = dart.privateName(io, "TlsException.message");
var osError$1 = dart.privateName(io, "TlsException.osError");
io.TlsException = class TlsException extends core.Object {
  get type() {
    return this[type$1];
  }
  set type(value) {
    super.type = value;
  }
  get message() {
    return this[message$6];
  }
  set message(value) {
    super.message = value;
  }
  get osError() {
    return this[osError$1];
  }
  set osError(value) {
    super.osError = value;
  }
  toString() {
    let sb = new core.StringBuffer.new();
    sb.write(this.type);
    if (this.message[$isNotEmpty]) {
      sb.write(": " + dart.str(this.message));
      if (this.osError != null) {
        sb.write(" (" + dart.str(this.osError) + ")");
      }
    } else if (this.osError != null) {
      sb.write(": " + dart.str(this.osError));
    }
    return sb.toString();
  }
};
(io.TlsException.new = function(message = "", osError = null) {
  io.TlsException.__.call(this, "TlsException", message, osError);
}).prototype = io.TlsException.prototype;
(io.TlsException.__ = function(type, message, osError) {
  this[type$1] = type;
  this[message$6] = message;
  this[osError$1] = osError;
  ;
}).prototype = io.TlsException.prototype;
dart.addTypeTests(io.TlsException);
dart.addTypeCaches(io.TlsException);
io.TlsException[dart.implements] = () => [io.IOException];
dart.setLibraryUri(io.TlsException, L48);
dart.setFieldSignature(io.TlsException, () => ({
  __proto__: dart.getFields(io.TlsException.__proto__),
  type: dart.finalFieldType(core.String),
  message: dart.finalFieldType(core.String),
  osError: dart.finalFieldType(io.OSError)
}));
dart.defineExtensionMethods(io.TlsException, ['toString']);
io.HandshakeException = class HandshakeException extends io.TlsException {};
(io.HandshakeException.new = function(message = "", osError = null) {
  io.HandshakeException.__proto__.__.call(this, "HandshakeException", message, osError);
  ;
}).prototype = io.HandshakeException.prototype;
dart.addTypeTests(io.HandshakeException);
dart.addTypeCaches(io.HandshakeException);
dart.setLibraryUri(io.HandshakeException, L48);
io.CertificateException = class CertificateException extends io.TlsException {};
(io.CertificateException.new = function(message = "", osError = null) {
  io.CertificateException.__proto__.__.call(this, "CertificateException", message, osError);
  ;
}).prototype = io.CertificateException.prototype;
dart.addTypeTests(io.CertificateException);
dart.addTypeCaches(io.CertificateException);
dart.setLibraryUri(io.CertificateException, L48);
io.SecurityContext = class SecurityContext extends core.Object {
  static new(opts) {
    let withTrustedRoots = opts && 'withTrustedRoots' in opts ? opts.withTrustedRoots : false;
    dart.throw(new core.UnsupportedError.new("SecurityContext constructor"));
  }
  static get defaultContext() {
    dart.throw(new core.UnsupportedError.new("default SecurityContext getter"));
  }
  static get alpnSupported() {
    dart.throw(new core.UnsupportedError.new("SecurityContext alpnSupported getter"));
  }
  static _protocolsToLengthEncoding(protocols) {
    let t90, t90$;
    if (protocols == null || protocols[$length] === 0) {
      return _native_typed_data.NativeUint8List.new(0);
    }
    let protocolsLength = protocols[$length];
    let expectedLength = protocolsLength;
    for (let i = 0; i < dart.notNull(protocolsLength); i = i + 1) {
      let length = protocols[$_get](i).length;
      if (length > 0 && length <= 255) {
        expectedLength = dart.notNull(expectedLength) + length;
      } else {
        dart.throw(new core.ArgumentError.new("Length of protocol must be between 1 and 255 (was: " + dart.str(length) + ")."));
      }
    }
    if (dart.notNull(expectedLength) >= 1 << 13) {
      dart.throw(new core.ArgumentError.new("The maximum message length supported is 2^13-1."));
    }
    let bytes = _native_typed_data.NativeUint8List.new(expectedLength);
    let bytesOffset = 0;
    for (let i = 0; i < dart.notNull(protocolsLength); i = i + 1) {
      let proto = protocols[$_get](i);
      bytes[$_set]((t90 = bytesOffset, bytesOffset = t90 + 1, t90), proto.length);
      let bits = 0;
      for (let j = 0; j < proto.length; j = j + 1) {
        let char = proto[$codeUnitAt](j);
        bits = (bits | char) >>> 0;
        bytes[$_set]((t90$ = bytesOffset, bytesOffset = t90$ + 1, t90$), char & 255);
      }
      if (bits > 127) {
        return io.SecurityContext._protocolsToLengthEncodingNonAsciiBailout(protocols);
      }
    }
    return bytes;
  }
  static _protocolsToLengthEncodingNonAsciiBailout(protocols) {
    function addProtocol(outBytes, protocol) {
      let protocolBytes = convert.utf8.encode(protocol);
      let len = protocolBytes[$length];
      if (dart.notNull(len) > 255) {
        dart.throw(new core.ArgumentError.new("Length of protocol must be between 1 and 255 (was: " + dart.str(len) + ")"));
      }
      outBytes[$add](len);
      outBytes[$addAll](protocolBytes);
    }
    dart.fn(addProtocol, ListLOfintLAndStringLTovoid());
    let bytes = JSArrayOfintL().of([]);
    for (let i = 0; i < dart.notNull(protocols[$length]); i = i + 1) {
      addProtocol(bytes, protocols[$_get](i));
    }
    if (dart.notNull(bytes[$length]) >= 1 << 13) {
      dart.throw(new core.ArgumentError.new("The maximum message length supported is 2^13-1."));
    }
    return _native_typed_data.NativeUint8List.fromList(bytes);
  }
};
(io.SecurityContext[dart.mixinNew] = function() {
}).prototype = io.SecurityContext.prototype;
dart.addTypeTests(io.SecurityContext);
dart.addTypeCaches(io.SecurityContext);
dart.setLibraryUri(io.SecurityContext, L48);
var __serviceId = dart.privateName(io, "__serviceId");
var _serviceId = dart.privateName(io, "_serviceId");
var _serviceTypePath = dart.privateName(io, "_serviceTypePath");
var _servicePath = dart.privateName(io, "_servicePath");
var _serviceTypeName = dart.privateName(io, "_serviceTypeName");
var _serviceType = dart.privateName(io, "_serviceType");
io._ServiceObject = class _ServiceObject extends core.Object {
  get [_serviceId]() {
    let t90;
    if (this[__serviceId] === 0) this[__serviceId] = (t90 = io._nextServiceId, io._nextServiceId = dart.notNull(t90) + 1, t90);
    return this[__serviceId];
  }
  get [_servicePath]() {
    return dart.str(this[_serviceTypePath]) + "/" + dart.str(this[_serviceId]);
  }
  [_serviceType](ref) {
    if (dart.test(ref)) return "@" + dart.str(this[_serviceTypeName]);
    return this[_serviceTypeName];
  }
};
(io._ServiceObject.new = function() {
  this[__serviceId] = 0;
  ;
}).prototype = io._ServiceObject.prototype;
dart.addTypeTests(io._ServiceObject);
dart.addTypeCaches(io._ServiceObject);
dart.setMethodSignature(io._ServiceObject, () => ({
  __proto__: dart.getMethods(io._ServiceObject.__proto__),
  [_serviceType]: dart.fnType(core.String, [core.bool])
}));
dart.setGetterSignature(io._ServiceObject, () => ({
  __proto__: dart.getGetters(io._ServiceObject.__proto__),
  [_serviceId]: core.int,
  [_servicePath]: core.String
}));
dart.setLibraryUri(io._ServiceObject, L48);
dart.setFieldSignature(io._ServiceObject, () => ({
  __proto__: dart.getFields(io._ServiceObject.__proto__),
  [__serviceId]: dart.fieldType(core.int)
}));
var _value$3 = dart.privateName(io, "InternetAddressType._value");
var C179;
var C180;
var C181;
var C182;
io.InternetAddressType = class InternetAddressType extends core.Object {
  get [_value$1]() {
    return this[_value$3];
  }
  set [_value$1](value) {
    super[_value$1] = value;
  }
  static _from(value) {
    if (value == io.InternetAddressType.IPv4[_value$1]) return io.InternetAddressType.IPv4;
    if (value == io.InternetAddressType.IPv6[_value$1]) return io.InternetAddressType.IPv6;
    if (value == io.InternetAddressType.unix[_value$1]) return io.InternetAddressType.unix;
    dart.throw(new core.ArgumentError.new("Invalid type: " + dart.str(value)));
  }
  get name() {
    switch (this[_value$1]) {
      case -1:
      {
        return "ANY";
      }
      case 0:
      {
        return "IPv4";
      }
      case 1:
      {
        return "IPv6";
      }
      case 2:
      {
        return "Unix";
      }
      default:
      {
        dart.throw(new core.ArgumentError.new("Invalid InternetAddress"));
      }
    }
  }
  toString() {
    return "InternetAddressType: " + dart.str(this.name);
  }
};
(io.InternetAddressType.__ = function(_value) {
  this[_value$3] = _value;
  ;
}).prototype = io.InternetAddressType.prototype;
dart.addTypeTests(io.InternetAddressType);
dart.addTypeCaches(io.InternetAddressType);
dart.setGetterSignature(io.InternetAddressType, () => ({
  __proto__: dart.getGetters(io.InternetAddressType.__proto__),
  name: core.String
}));
dart.setLibraryUri(io.InternetAddressType, L48);
dart.setFieldSignature(io.InternetAddressType, () => ({
  __proto__: dart.getFields(io.InternetAddressType.__proto__),
  [_value$1]: dart.finalFieldType(core.int)
}));
dart.defineExtensionMethods(io.InternetAddressType, ['toString']);
dart.defineLazy(io.InternetAddressType, {
  /*io.InternetAddressType.IPv4*/get IPv4() {
    return C179 || CT.C179;
  },
  /*io.InternetAddressType.IPv6*/get IPv6() {
    return C180 || CT.C180;
  },
  /*io.InternetAddressType.unix*/get unix() {
    return C181 || CT.C181;
  },
  /*io.InternetAddressType.any*/get any() {
    return C182 || CT.C182;
  },
  /*io.InternetAddressType.IP_V4*/get IP_V4() {
    return C179 || CT.C179;
  },
  /*io.InternetAddressType.IP_V6*/get IP_V6() {
    return C180 || CT.C180;
  },
  /*io.InternetAddressType.ANY*/get ANY() {
    return C182 || CT.C182;
  }
}, true);
io.InternetAddress = class InternetAddress extends core.Object {
  static get loopbackIPv4() {
    return io.InternetAddress.LOOPBACK_IP_V4;
  }
  static get LOOPBACK_IP_V4() {
    dart.throw(new core.UnsupportedError.new("InternetAddress.LOOPBACK_IP_V4"));
  }
  static get loopbackIPv6() {
    return io.InternetAddress.LOOPBACK_IP_V6;
  }
  static get LOOPBACK_IP_V6() {
    dart.throw(new core.UnsupportedError.new("InternetAddress.LOOPBACK_IP_V6"));
  }
  static get anyIPv4() {
    return io.InternetAddress.ANY_IP_V4;
  }
  static get ANY_IP_V4() {
    dart.throw(new core.UnsupportedError.new("InternetAddress.ANY_IP_V4"));
  }
  static get anyIPv6() {
    return io.InternetAddress.ANY_IP_V6;
  }
  static get ANY_IP_V6() {
    dart.throw(new core.UnsupportedError.new("InternetAddress.ANY_IP_V6"));
  }
  static new(address, opts) {
    let type = opts && 'type' in opts ? opts.type : null;
    dart.throw(new core.UnsupportedError.new("InternetAddress"));
  }
  static fromRawAddress(rawAddress, opts) {
    let type = opts && 'type' in opts ? opts.type : null;
    dart.throw(new core.UnsupportedError.new("InternetAddress.fromRawAddress"));
  }
  static lookup(host, opts) {
    let type = opts && 'type' in opts ? opts.type : C182 || CT.C182;
    dart.throw(new core.UnsupportedError.new("InternetAddress.lookup"));
  }
  static _cloneWithNewHost(address, host) {
    dart.throw(new core.UnsupportedError.new("InternetAddress._cloneWithNewHost"));
  }
};
(io.InternetAddress[dart.mixinNew] = function() {
}).prototype = io.InternetAddress.prototype;
dart.addTypeTests(io.InternetAddress);
dart.addTypeCaches(io.InternetAddress);
dart.setLibraryUri(io.InternetAddress, L48);
io.NetworkInterface = class NetworkInterface extends core.Object {
  static get listSupported() {
    dart.throw(new core.UnsupportedError.new("NetworkInterface.listSupported"));
  }
  static list(opts) {
    let includeLoopback = opts && 'includeLoopback' in opts ? opts.includeLoopback : false;
    let includeLinkLocal = opts && 'includeLinkLocal' in opts ? opts.includeLinkLocal : false;
    let type = opts && 'type' in opts ? opts.type : C182 || CT.C182;
    dart.throw(new core.UnsupportedError.new("NetworkInterface.list"));
  }
};
(io.NetworkInterface.new = function() {
  ;
}).prototype = io.NetworkInterface.prototype;
dart.addTypeTests(io.NetworkInterface);
dart.addTypeCaches(io.NetworkInterface);
dart.setLibraryUri(io.NetworkInterface, L48);
io.RawServerSocket = class RawServerSocket extends core.Object {
  static bind(address, port, opts) {
    let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
    let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
    let shared = opts && 'shared' in opts ? opts.shared : false;
    dart.throw(new core.UnsupportedError.new("RawServerSocket.bind"));
  }
};
(io.RawServerSocket.new = function() {
  ;
}).prototype = io.RawServerSocket.prototype;
io.RawServerSocket.prototype[dart.isStream] = true;
dart.addTypeTests(io.RawServerSocket);
dart.addTypeCaches(io.RawServerSocket);
io.RawServerSocket[dart.implements] = () => [async.Stream$(io.RawSocket)];
dart.setLibraryUri(io.RawServerSocket, L48);
io.ServerSocket = class ServerSocket extends core.Object {
  static bind(address, port, opts) {
    let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
    let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
    let shared = opts && 'shared' in opts ? opts.shared : false;
    let overrides = io.IOOverrides.current;
    if (overrides == null) {
      return io.ServerSocket._bind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared});
    }
    return overrides.serverSocketBind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared});
  }
  static _bind(address, port, opts) {
    let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
    let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
    let shared = opts && 'shared' in opts ? opts.shared : false;
    dart.throw(new core.UnsupportedError.new("ServerSocket.bind"));
  }
};
(io.ServerSocket.new = function() {
  ;
}).prototype = io.ServerSocket.prototype;
io.ServerSocket.prototype[dart.isStream] = true;
dart.addTypeTests(io.ServerSocket);
dart.addTypeCaches(io.ServerSocket);
io.ServerSocket[dart.implements] = () => [async.Stream$(io.Socket)];
dart.setLibraryUri(io.ServerSocket, L48);
var _value$4 = dart.privateName(io, "SocketDirection._value");
var C183;
var C184;
var C185;
io.SocketDirection = class SocketDirection extends core.Object {
  get [_value$1]() {
    return this[_value$4];
  }
  set [_value$1](value) {
    super[_value$1] = value;
  }
};
(io.SocketDirection.__ = function(_value) {
  this[_value$4] = _value;
  ;
}).prototype = io.SocketDirection.prototype;
dart.addTypeTests(io.SocketDirection);
dart.addTypeCaches(io.SocketDirection);
dart.setLibraryUri(io.SocketDirection, L48);
dart.setFieldSignature(io.SocketDirection, () => ({
  __proto__: dart.getFields(io.SocketDirection.__proto__),
  [_value$1]: dart.finalFieldType(dart.dynamic)
}));
dart.defineLazy(io.SocketDirection, {
  /*io.SocketDirection.receive*/get receive() {
    return C183 || CT.C183;
  },
  /*io.SocketDirection.send*/get send() {
    return C184 || CT.C184;
  },
  /*io.SocketDirection.both*/get both() {
    return C185 || CT.C185;
  },
  /*io.SocketDirection.RECEIVE*/get RECEIVE() {
    return C183 || CT.C183;
  },
  /*io.SocketDirection.SEND*/get SEND() {
    return C184 || CT.C184;
  },
  /*io.SocketDirection.BOTH*/get BOTH() {
    return C185 || CT.C185;
  }
}, true);
var _value$5 = dart.privateName(io, "SocketOption._value");
var C186;
var C187;
var C188;
var C189;
var C190;
io.SocketOption = class SocketOption extends core.Object {
  get [_value$1]() {
    return this[_value$5];
  }
  set [_value$1](value) {
    super[_value$1] = value;
  }
};
(io.SocketOption.__ = function(_value) {
  this[_value$5] = _value;
  ;
}).prototype = io.SocketOption.prototype;
dart.addTypeTests(io.SocketOption);
dart.addTypeCaches(io.SocketOption);
dart.setLibraryUri(io.SocketOption, L48);
dart.setFieldSignature(io.SocketOption, () => ({
  __proto__: dart.getFields(io.SocketOption.__proto__),
  [_value$1]: dart.finalFieldType(dart.dynamic)
}));
dart.defineLazy(io.SocketOption, {
  /*io.SocketOption.tcpNoDelay*/get tcpNoDelay() {
    return C186 || CT.C186;
  },
  /*io.SocketOption.TCP_NODELAY*/get TCP_NODELAY() {
    return C186 || CT.C186;
  },
  /*io.SocketOption._ipMulticastLoop*/get _ipMulticastLoop() {
    return C187 || CT.C187;
  },
  /*io.SocketOption._ipMulticastHops*/get _ipMulticastHops() {
    return C188 || CT.C188;
  },
  /*io.SocketOption._ipMulticastIf*/get _ipMulticastIf() {
    return C189 || CT.C189;
  },
  /*io.SocketOption._ipBroadcast*/get _ipBroadcast() {
    return C190 || CT.C190;
  }
}, true);
var C191;
var C192;
var C193;
var C194;
var C195;
var C196;
var C197;
var C198;
io._RawSocketOptions = class _RawSocketOptions extends core.Object {
  toString() {
    return this[_name$4];
  }
};
(io._RawSocketOptions.new = function(index, _name) {
  this.index = index;
  this[_name$4] = _name;
  ;
}).prototype = io._RawSocketOptions.prototype;
dart.addTypeTests(io._RawSocketOptions);
dart.addTypeCaches(io._RawSocketOptions);
dart.setLibraryUri(io._RawSocketOptions, L48);
dart.setFieldSignature(io._RawSocketOptions, () => ({
  __proto__: dart.getFields(io._RawSocketOptions.__proto__),
  index: dart.finalFieldType(core.int),
  [_name$4]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(io._RawSocketOptions, ['toString']);
io._RawSocketOptions.SOL_SOCKET = C191 || CT.C191;
io._RawSocketOptions.IPPROTO_IP = C192 || CT.C192;
io._RawSocketOptions.IP_MULTICAST_IF = C193 || CT.C193;
io._RawSocketOptions.IPPROTO_IPV6 = C194 || CT.C194;
io._RawSocketOptions.IPV6_MULTICAST_IF = C195 || CT.C195;
io._RawSocketOptions.IPPROTO_TCP = C196 || CT.C196;
io._RawSocketOptions.IPPROTO_UDP = C197 || CT.C197;
io._RawSocketOptions.values = C198 || CT.C198;
var level$2 = dart.privateName(io, "RawSocketOption.level");
var option$ = dart.privateName(io, "RawSocketOption.option");
var value$3 = dart.privateName(io, "RawSocketOption.value");
io.RawSocketOption = class RawSocketOption extends core.Object {
  get level() {
    return this[level$2];
  }
  set level(value) {
    super.level = value;
  }
  get option() {
    return this[option$];
  }
  set option(value) {
    super.option = value;
  }
  get value() {
    return this[value$3];
  }
  set value(value) {
    super.value = value;
  }
  static fromInt(level, option, value) {
    if (value == null) {
      value = 0;
    }
    let list = _native_typed_data.NativeUint8List.new(4);
    let buffer = typed_data.ByteData.view(list[$buffer], list[$offsetInBytes]);
    buffer[$setInt32](0, value, typed_data.Endian.host);
    return new io.RawSocketOption.new(level, option, list);
  }
  static fromBool(level, option, value) {
    return io.RawSocketOption.fromInt(level, option, dart.equals(value, true) ? 1 : 0);
  }
  static get levelSocket() {
    return io.RawSocketOption._getOptionValue(io._RawSocketOptions.SOL_SOCKET.index);
  }
  static get levelIPv4() {
    return io.RawSocketOption._getOptionValue(io._RawSocketOptions.IPPROTO_IP.index);
  }
  static get IPv4MulticastInterface() {
    return io.RawSocketOption._getOptionValue(io._RawSocketOptions.IP_MULTICAST_IF.index);
  }
  static get levelIPv6() {
    return io.RawSocketOption._getOptionValue(io._RawSocketOptions.IPPROTO_IPV6.index);
  }
  static get IPv6MulticastInterface() {
    return io.RawSocketOption._getOptionValue(io._RawSocketOptions.IPV6_MULTICAST_IF.index);
  }
  static get levelTcp() {
    return io.RawSocketOption._getOptionValue(io._RawSocketOptions.IPPROTO_TCP.index);
  }
  static get levelUdp() {
    return io.RawSocketOption._getOptionValue(io._RawSocketOptions.IPPROTO_UDP.index);
  }
  static _getOptionValue(key) {
    dart.throw(new core.UnsupportedError.new("RawSocketOption._getOptionValue"));
  }
};
(io.RawSocketOption.new = function(level, option, value) {
  this[level$2] = level;
  this[option$] = option;
  this[value$3] = value;
  ;
}).prototype = io.RawSocketOption.prototype;
dart.addTypeTests(io.RawSocketOption);
dart.addTypeCaches(io.RawSocketOption);
dart.setLibraryUri(io.RawSocketOption, L48);
dart.setFieldSignature(io.RawSocketOption, () => ({
  __proto__: dart.getFields(io.RawSocketOption.__proto__),
  level: dart.finalFieldType(core.int),
  option: dart.finalFieldType(core.int),
  value: dart.finalFieldType(typed_data.Uint8List)
}));
const _is_ConnectionTask_default = Symbol('_is_ConnectionTask_default');
var socket$ = dart.privateName(io, "ConnectionTask.socket");
io.ConnectionTask$ = dart.generic(S => {
  class ConnectionTask extends core.Object {
    get socket() {
      return this[socket$];
    }
    set socket(value) {
      super.socket = value;
    }
    cancel() {
      this[_onCancel$]();
    }
  }
  (ConnectionTask.__ = function(opts) {
    let socket = opts && 'socket' in opts ? opts.socket : null;
    let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
    if (!(socket != null)) dart.assertFailed(null, L56, 604, 16, "socket != null");
    if (!(onCancel != null)) dart.assertFailed(null, L56, 605, 16, "onCancel != null");
    this[socket$] = socket;
    this[_onCancel$] = onCancel;
    ;
  }).prototype = ConnectionTask.prototype;
  dart.addTypeTests(ConnectionTask);
  ConnectionTask.prototype[_is_ConnectionTask_default] = true;
  dart.addTypeCaches(ConnectionTask);
  dart.setMethodSignature(ConnectionTask, () => ({
    __proto__: dart.getMethods(ConnectionTask.__proto__),
    cancel: dart.fnType(dart.void, [])
  }));
  dart.setLibraryUri(ConnectionTask, L48);
  dart.setFieldSignature(ConnectionTask, () => ({
    __proto__: dart.getFields(ConnectionTask.__proto__),
    socket: dart.finalFieldType(async.Future$(S)),
    [_onCancel$]: dart.finalFieldType(dart.fnType(dart.void, []))
  }));
  return ConnectionTask;
});
io.ConnectionTask = io.ConnectionTask$();
dart.addTypeTests(io.ConnectionTask, _is_ConnectionTask_default);
var readEventsEnabled = dart.privateName(io, "RawSocket.readEventsEnabled");
var writeEventsEnabled = dart.privateName(io, "RawSocket.writeEventsEnabled");
io.RawSocket = class RawSocket extends core.Object {
  get readEventsEnabled() {
    return this[readEventsEnabled];
  }
  set readEventsEnabled(value) {
    this[readEventsEnabled] = value;
  }
  get writeEventsEnabled() {
    return this[writeEventsEnabled];
  }
  set writeEventsEnabled(value) {
    this[writeEventsEnabled] = value;
  }
  static connect(host, port, opts) {
    let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
    let timeout = opts && 'timeout' in opts ? opts.timeout : null;
    dart.throw(new core.UnsupportedError.new("RawSocket constructor"));
  }
  static startConnect(host, port, opts) {
    let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
    dart.throw(new core.UnsupportedError.new("RawSocket constructor"));
  }
};
(io.RawSocket.new = function() {
  this[readEventsEnabled] = null;
  this[writeEventsEnabled] = null;
  ;
}).prototype = io.RawSocket.prototype;
io.RawSocket.prototype[dart.isStream] = true;
dart.addTypeTests(io.RawSocket);
dart.addTypeCaches(io.RawSocket);
io.RawSocket[dart.implements] = () => [async.Stream$(io.RawSocketEvent)];
dart.setLibraryUri(io.RawSocket, L48);
dart.setFieldSignature(io.RawSocket, () => ({
  __proto__: dart.getFields(io.RawSocket.__proto__),
  readEventsEnabled: dart.fieldType(core.bool),
  writeEventsEnabled: dart.fieldType(core.bool)
}));
io.Socket = class Socket extends core.Object {
  static connect(host, port, opts) {
    let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
    let timeout = opts && 'timeout' in opts ? opts.timeout : null;
    let overrides = io.IOOverrides.current;
    if (overrides == null) {
      return io.Socket._connect(host, port, {sourceAddress: sourceAddress, timeout: timeout});
    }
    return overrides.socketConnect(host, port, {sourceAddress: sourceAddress, timeout: timeout});
  }
  static startConnect(host, port, opts) {
    let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
    let overrides = io.IOOverrides.current;
    if (overrides == null) {
      return io.Socket._startConnect(host, port, {sourceAddress: sourceAddress});
    }
    return overrides.socketStartConnect(host, port, {sourceAddress: sourceAddress});
  }
  static _connect(host, port, opts) {
    let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
    let timeout = opts && 'timeout' in opts ? opts.timeout : null;
    dart.throw(new core.UnsupportedError.new("Socket constructor"));
  }
  static _startConnect(host, port, opts) {
    let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
    dart.throw(new core.UnsupportedError.new("Socket constructor"));
  }
};
(io.Socket.new = function() {
  ;
}).prototype = io.Socket.prototype;
io.Socket.prototype[dart.isStream] = true;
dart.addTypeTests(io.Socket);
dart.addTypeCaches(io.Socket);
io.Socket[dart.implements] = () => [async.Stream$(typed_data.Uint8List), io.IOSink];
dart.setLibraryUri(io.Socket, L48);
var data$ = dart.privateName(io, "Datagram.data");
var address$ = dart.privateName(io, "Datagram.address");
var port$ = dart.privateName(io, "Datagram.port");
io.Datagram = class Datagram extends core.Object {
  get data() {
    return this[data$];
  }
  set data(value) {
    this[data$] = value;
  }
  get address() {
    return this[address$];
  }
  set address(value) {
    this[address$] = value;
  }
  get port() {
    return this[port$];
  }
  set port(value) {
    this[port$] = value;
  }
};
(io.Datagram.new = function(data, address, port) {
  this[data$] = data;
  this[address$] = address;
  this[port$] = port;
  ;
}).prototype = io.Datagram.prototype;
dart.addTypeTests(io.Datagram);
dart.addTypeCaches(io.Datagram);
dart.setLibraryUri(io.Datagram, L48);
dart.setFieldSignature(io.Datagram, () => ({
  __proto__: dart.getFields(io.Datagram.__proto__),
  data: dart.fieldType(typed_data.Uint8List),
  address: dart.fieldType(io.InternetAddress),
  port: dart.fieldType(core.int)
}));
var readEventsEnabled$ = dart.privateName(io, "RawDatagramSocket.readEventsEnabled");
var writeEventsEnabled$ = dart.privateName(io, "RawDatagramSocket.writeEventsEnabled");
var multicastLoopback = dart.privateName(io, "RawDatagramSocket.multicastLoopback");
var multicastHops = dart.privateName(io, "RawDatagramSocket.multicastHops");
var multicastInterface = dart.privateName(io, "RawDatagramSocket.multicastInterface");
var broadcastEnabled = dart.privateName(io, "RawDatagramSocket.broadcastEnabled");
io.RawDatagramSocket = class RawDatagramSocket extends async.Stream$(io.RawSocketEvent) {
  get readEventsEnabled() {
    return this[readEventsEnabled$];
  }
  set readEventsEnabled(value) {
    this[readEventsEnabled$] = value;
  }
  get writeEventsEnabled() {
    return this[writeEventsEnabled$];
  }
  set writeEventsEnabled(value) {
    this[writeEventsEnabled$] = value;
  }
  get multicastLoopback() {
    return this[multicastLoopback];
  }
  set multicastLoopback(value) {
    this[multicastLoopback] = value;
  }
  get multicastHops() {
    return this[multicastHops];
  }
  set multicastHops(value) {
    this[multicastHops] = value;
  }
  get multicastInterface() {
    return this[multicastInterface];
  }
  set multicastInterface(value) {
    this[multicastInterface] = value;
  }
  get broadcastEnabled() {
    return this[broadcastEnabled];
  }
  set broadcastEnabled(value) {
    this[broadcastEnabled] = value;
  }
  static bind(host, port, opts) {
    let reuseAddress = opts && 'reuseAddress' in opts ? opts.reuseAddress : true;
    let reusePort = opts && 'reusePort' in opts ? opts.reusePort : false;
    let ttl = opts && 'ttl' in opts ? opts.ttl : 1;
    dart.throw(new core.UnsupportedError.new("RawDatagramSocket.bind"));
  }
};
(io.RawDatagramSocket.new = function() {
  this[readEventsEnabled$] = null;
  this[writeEventsEnabled$] = null;
  this[multicastLoopback] = null;
  this[multicastHops] = null;
  this[multicastInterface] = null;
  this[broadcastEnabled] = null;
  io.RawDatagramSocket.__proto__.new.call(this);
  ;
}).prototype = io.RawDatagramSocket.prototype;
dart.addTypeTests(io.RawDatagramSocket);
dart.addTypeCaches(io.RawDatagramSocket);
dart.setLibraryUri(io.RawDatagramSocket, L48);
dart.setFieldSignature(io.RawDatagramSocket, () => ({
  __proto__: dart.getFields(io.RawDatagramSocket.__proto__),
  readEventsEnabled: dart.fieldType(core.bool),
  writeEventsEnabled: dart.fieldType(core.bool),
  multicastLoopback: dart.fieldType(core.bool),
  multicastHops: dart.fieldType(core.int),
  multicastInterface: dart.fieldType(io.NetworkInterface),
  broadcastEnabled: dart.fieldType(core.bool)
}));
var message$7 = dart.privateName(io, "SocketException.message");
var osError$2 = dart.privateName(io, "SocketException.osError");
var address$0 = dart.privateName(io, "SocketException.address");
var port$0 = dart.privateName(io, "SocketException.port");
io.SocketException = class SocketException extends core.Object {
  get message() {
    return this[message$7];
  }
  set message(value) {
    super.message = value;
  }
  get osError() {
    return this[osError$2];
  }
  set osError(value) {
    super.osError = value;
  }
  get address() {
    return this[address$0];
  }
  set address(value) {
    super.address = value;
  }
  get port() {
    return this[port$0];
  }
  set port(value) {
    super.port = value;
  }
  toString() {
    let sb = new core.StringBuffer.new();
    sb.write("SocketException");
    if (this.message[$isNotEmpty]) {
      sb.write(": " + dart.str(this.message));
      if (this.osError != null) {
        sb.write(" (" + dart.str(this.osError) + ")");
      }
    } else if (this.osError != null) {
      sb.write(": " + dart.str(this.osError));
    }
    if (this.address != null) {
      sb.write(", address = " + dart.str(this.address.host));
    }
    if (this.port != null) {
      sb.write(", port = " + dart.str(this.port));
    }
    return sb.toString();
  }
};
(io.SocketException.new = function(message, opts) {
  let osError = opts && 'osError' in opts ? opts.osError : null;
  let address = opts && 'address' in opts ? opts.address : null;
  let port = opts && 'port' in opts ? opts.port : null;
  this[message$7] = message;
  this[osError$2] = osError;
  this[address$0] = address;
  this[port$0] = port;
  ;
}).prototype = io.SocketException.prototype;
(io.SocketException.closed = function() {
  this[message$7] = "Socket has been closed";
  this[osError$2] = null;
  this[address$0] = null;
  this[port$0] = null;
  ;
}).prototype = io.SocketException.prototype;
dart.addTypeTests(io.SocketException);
dart.addTypeCaches(io.SocketException);
io.SocketException[dart.implements] = () => [io.IOException];
dart.setLibraryUri(io.SocketException, L48);
dart.setFieldSignature(io.SocketException, () => ({
  __proto__: dart.getFields(io.SocketException.__proto__),
  message: dart.finalFieldType(core.String),
  osError: dart.finalFieldType(io.OSError),
  address: dart.finalFieldType(io.InternetAddress),
  port: dart.finalFieldType(core.int)
}));
dart.defineExtensionMethods(io.SocketException, ['toString']);
io._StdStream = class _StdStream extends async.Stream$(core.List$(core.int)) {
  listen(onData, opts) {
    let onError = opts && 'onError' in opts ? opts.onError : null;
    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
    return this[_stream$0].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
  }
};
(io._StdStream.new = function(_stream) {
  this[_stream$0] = _stream;
  io._StdStream.__proto__.new.call(this);
  ;
}).prototype = io._StdStream.prototype;
dart.addTypeTests(io._StdStream);
dart.addTypeCaches(io._StdStream);
dart.setMethodSignature(io._StdStream, () => ({
  __proto__: dart.getMethods(io._StdStream.__proto__),
  listen: dart.fnType(async.StreamSubscription$(core.List$(core.int)), [dart.fnType(dart.void, [core.List$(core.int)])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {})
}));
dart.setLibraryUri(io._StdStream, L48);
dart.setFieldSignature(io._StdStream, () => ({
  __proto__: dart.getFields(io._StdStream.__proto__),
  [_stream$0]: dart.finalFieldType(async.Stream$(core.List$(core.int)))
}));
var _fd$ = dart.privateName(io, "_fd");
io.Stdin = class Stdin extends io._StdStream {
  readLineSync(opts) {
    let encoding = opts && 'encoding' in opts ? opts.encoding : C144 || CT.C144;
    let retainNewlines = opts && 'retainNewlines' in opts ? opts.retainNewlines : false;
    let line = JSArrayOfintL().of([]);
    let crIsNewline = dart.test(io.Platform.isWindows) && dart.equals(io.stdioType(io.stdin), io.StdioType.terminal) && !dart.test(this.lineMode);
    if (dart.test(retainNewlines)) {
      let byte = null;
      do {
        byte = this.readByteSync();
        if (dart.notNull(byte) < 0) {
          break;
        }
        line[$add](byte);
      } while (byte !== 10 && !(byte === 13 && crIsNewline));
      if (dart.test(line[$isEmpty])) {
        return null;
      }
    } else if (crIsNewline) {
      while (true) {
        let byte = this.readByteSync();
        if (dart.notNull(byte) < 0) {
          if (dart.test(line[$isEmpty])) return null;
          break;
        }
        if (byte === 10 || byte === 13) break;
        line[$add](byte);
      }
    } else {
      L3:
        while (true) {
          let byte = this.readByteSync();
          if (byte === 10) break;
          if (byte === 13) {
            do {
              byte = this.readByteSync();
              if (byte === 10) break L3;
              line[$add](13);
            } while (byte === 13);
          }
          if (dart.notNull(byte) < 0) {
            if (dart.test(line[$isEmpty])) return null;
            break;
          }
          line[$add](byte);
        }
    }
    return encoding.decode(line);
  }
  get echoMode() {
    dart.throw(new core.UnsupportedError.new("Stdin.echoMode"));
  }
  set echoMode(enabled) {
    dart.throw(new core.UnsupportedError.new("Stdin.echoMode"));
  }
  get lineMode() {
    dart.throw(new core.UnsupportedError.new("Stdin.lineMode"));
  }
  set lineMode(enabled) {
    dart.throw(new core.UnsupportedError.new("Stdin.lineMode"));
  }
  get supportsAnsiEscapes() {
    dart.throw(new core.UnsupportedError.new("Stdin.supportsAnsiEscapes"));
  }
  readByteSync() {
    dart.throw(new core.UnsupportedError.new("Stdin.readByteSync"));
  }
  get hasTerminal() {
    try {
      return dart.equals(io.stdioType(this), io.StdioType.terminal);
    } catch (e) {
      let _ = dart.getThrown(e);
      if (io.FileSystemException.is(_)) {
        return false;
      } else
        throw e;
    }
  }
};
(io.Stdin.__ = function(stream, _fd) {
  this[_fd$] = _fd;
  io.Stdin.__proto__.new.call(this, stream);
  ;
}).prototype = io.Stdin.prototype;
io.Stdin.prototype[dart.isStream] = true;
dart.addTypeTests(io.Stdin);
dart.addTypeCaches(io.Stdin);
io.Stdin[dart.implements] = () => [async.Stream$(core.List$(core.int))];
dart.setMethodSignature(io.Stdin, () => ({
  __proto__: dart.getMethods(io.Stdin.__proto__),
  readLineSync: dart.fnType(core.String, [], {encoding: convert.Encoding, retainNewlines: core.bool}, {}),
  readByteSync: dart.fnType(core.int, [])
}));
dart.setGetterSignature(io.Stdin, () => ({
  __proto__: dart.getGetters(io.Stdin.__proto__),
  echoMode: core.bool,
  lineMode: core.bool,
  supportsAnsiEscapes: core.bool,
  hasTerminal: core.bool
}));
dart.setSetterSignature(io.Stdin, () => ({
  __proto__: dart.getSetters(io.Stdin.__proto__),
  echoMode: core.bool,
  lineMode: core.bool
}));
dart.setLibraryUri(io.Stdin, L48);
dart.setFieldSignature(io.Stdin, () => ({
  __proto__: dart.getFields(io.Stdin.__proto__),
  [_fd$]: dart.fieldType(core.int)
}));
var _nonBlocking = dart.privateName(io, "_nonBlocking");
var _hasTerminal = dart.privateName(io, "_hasTerminal");
var _terminalColumns = dart.privateName(io, "_terminalColumns");
var _terminalLines = dart.privateName(io, "_terminalLines");
io._StdSink = class _StdSink extends core.Object {
  get encoding() {
    return this[_sink$1].encoding;
  }
  set encoding(encoding) {
    this[_sink$1].encoding = encoding;
  }
  write(object) {
    this[_sink$1].write(object);
  }
  writeln(object = "") {
    this[_sink$1].writeln(object);
  }
  writeAll(objects, sep = "") {
    this[_sink$1].writeAll(objects, sep);
  }
  add(data) {
    ListOfintL().as(data);
    this[_sink$1].add(data);
  }
  addError(error, stackTrace = null) {
    this[_sink$1].addError(error, stackTrace);
  }
  writeCharCode(charCode) {
    this[_sink$1].writeCharCode(charCode);
  }
  addStream(stream) {
    StreamOfListLOfintL().as(stream);
    return this[_sink$1].addStream(stream);
  }
  flush() {
    return this[_sink$1].flush();
  }
  close() {
    return this[_sink$1].close();
  }
  get done() {
    return this[_sink$1].done;
  }
};
(io._StdSink.new = function(_sink) {
  this[_sink$1] = _sink;
  ;
}).prototype = io._StdSink.prototype;
dart.addTypeTests(io._StdSink);
dart.addTypeCaches(io._StdSink);
io._StdSink[dart.implements] = () => [io.IOSink];
dart.setMethodSignature(io._StdSink, () => ({
  __proto__: dart.getMethods(io._StdSink.__proto__),
  write: dart.fnType(dart.void, [core.Object]),
  writeln: dart.fnType(dart.void, [], [core.Object]),
  writeAll: dart.fnType(dart.void, [core.Iterable], [core.String]),
  add: dart.fnType(dart.void, [core.Object]),
  addError: dart.fnType(dart.void, [core.Object], [core.StackTrace]),
  writeCharCode: dart.fnType(dart.void, [core.int]),
  addStream: dart.fnType(async.Future, [core.Object]),
  flush: dart.fnType(async.Future, []),
  close: dart.fnType(async.Future, [])
}));
dart.setGetterSignature(io._StdSink, () => ({
  __proto__: dart.getGetters(io._StdSink.__proto__),
  encoding: convert.Encoding,
  done: async.Future
}));
dart.setSetterSignature(io._StdSink, () => ({
  __proto__: dart.getSetters(io._StdSink.__proto__),
  encoding: convert.Encoding
}));
dart.setLibraryUri(io._StdSink, L48);
dart.setFieldSignature(io._StdSink, () => ({
  __proto__: dart.getFields(io._StdSink.__proto__),
  [_sink$1]: dart.finalFieldType(io.IOSink)
}));
io.Stdout = class Stdout extends io._StdSink {
  get hasTerminal() {
    return this[_hasTerminal](this[_fd$]);
  }
  get terminalColumns() {
    return this[_terminalColumns](this[_fd$]);
  }
  get terminalLines() {
    return this[_terminalLines](this[_fd$]);
  }
  get supportsAnsiEscapes() {
    return io.Stdout._supportsAnsiEscapes(this[_fd$]);
  }
  [_hasTerminal](fd) {
    dart.throw(new core.UnsupportedError.new("Stdout.hasTerminal"));
  }
  [_terminalColumns](fd) {
    dart.throw(new core.UnsupportedError.new("Stdout.terminalColumns"));
  }
  [_terminalLines](fd) {
    dart.throw(new core.UnsupportedError.new("Stdout.terminalLines"));
  }
  static _supportsAnsiEscapes(fd) {
    dart.throw(new core.UnsupportedError.new("Stdout.supportsAnsiEscapes"));
  }
  get nonBlocking() {
    this[_nonBlocking] == null ? this[_nonBlocking] = io.IOSink.new(new io._FileStreamConsumer.fromStdio(this[_fd$])) : null;
    return this[_nonBlocking];
  }
};
(io.Stdout.__ = function(sink, _fd) {
  this[_nonBlocking] = null;
  this[_fd$] = _fd;
  io.Stdout.__proto__.new.call(this, sink);
  ;
}).prototype = io.Stdout.prototype;
dart.addTypeTests(io.Stdout);
dart.addTypeCaches(io.Stdout);
io.Stdout[dart.implements] = () => [io.IOSink];
dart.setMethodSignature(io.Stdout, () => ({
  __proto__: dart.getMethods(io.Stdout.__proto__),
  [_hasTerminal]: dart.fnType(core.bool, [core.int]),
  [_terminalColumns]: dart.fnType(core.int, [core.int]),
  [_terminalLines]: dart.fnType(core.int, [core.int])
}));
dart.setGetterSignature(io.Stdout, () => ({
  __proto__: dart.getGetters(io.Stdout.__proto__),
  hasTerminal: core.bool,
  terminalColumns: core.int,
  terminalLines: core.int,
  supportsAnsiEscapes: core.bool,
  nonBlocking: io.IOSink
}));
dart.setLibraryUri(io.Stdout, L48);
dart.setFieldSignature(io.Stdout, () => ({
  __proto__: dart.getFields(io.Stdout.__proto__),
  [_fd$]: dart.finalFieldType(core.int),
  [_nonBlocking]: dart.fieldType(io.IOSink)
}));
var message$8 = dart.privateName(io, "StdoutException.message");
var osError$3 = dart.privateName(io, "StdoutException.osError");
io.StdoutException = class StdoutException extends core.Object {
  get message() {
    return this[message$8];
  }
  set message(value) {
    super.message = value;
  }
  get osError() {
    return this[osError$3];
  }
  set osError(value) {
    super.osError = value;
  }
  toString() {
    return "StdoutException: " + dart.str(this.message) + (this.osError == null ? "" : ", " + dart.str(this.osError));
  }
};
(io.StdoutException.new = function(message, osError = null) {
  this[message$8] = message;
  this[osError$3] = osError;
  ;
}).prototype = io.StdoutException.prototype;
dart.addTypeTests(io.StdoutException);
dart.addTypeCaches(io.StdoutException);
io.StdoutException[dart.implements] = () => [io.IOException];
dart.setLibraryUri(io.StdoutException, L48);
dart.setFieldSignature(io.StdoutException, () => ({
  __proto__: dart.getFields(io.StdoutException.__proto__),
  message: dart.finalFieldType(core.String),
  osError: dart.finalFieldType(io.OSError)
}));
dart.defineExtensionMethods(io.StdoutException, ['toString']);
var message$9 = dart.privateName(io, "StdinException.message");
var osError$4 = dart.privateName(io, "StdinException.osError");
io.StdinException = class StdinException extends core.Object {
  get message() {
    return this[message$9];
  }
  set message(value) {
    super.message = value;
  }
  get osError() {
    return this[osError$4];
  }
  set osError(value) {
    super.osError = value;
  }
  toString() {
    return "StdinException: " + dart.str(this.message) + (this.osError == null ? "" : ", " + dart.str(this.osError));
  }
};
(io.StdinException.new = function(message, osError = null) {
  this[message$9] = message;
  this[osError$4] = osError;
  ;
}).prototype = io.StdinException.prototype;
dart.addTypeTests(io.StdinException);
dart.addTypeCaches(io.StdinException);
io.StdinException[dart.implements] = () => [io.IOException];
dart.setLibraryUri(io.StdinException, L48);
dart.setFieldSignature(io.StdinException, () => ({
  __proto__: dart.getFields(io.StdinException.__proto__),
  message: dart.finalFieldType(core.String),
  osError: dart.finalFieldType(io.OSError)
}));
dart.defineExtensionMethods(io.StdinException, ['toString']);
io._StdConsumer = class _StdConsumer extends core.Object {
  addStream(stream) {
    StreamOfListLOfintL().as(stream);
    let completer = async.Completer.new();
    let sub = null;
    sub = stream.listen(dart.fn(data => {
      try {
        dart.dsend(this[_file$], 'writeFromSync', [data]);
      } catch (e$) {
        let e = dart.getThrown(e$);
        let s = dart.stackTrace(e$);
        dart.dsend(sub, 'cancel', []);
        completer.completeError(e, s);
      }
    }, ListLOfintLToNullN()), {onError: dart.bind(completer, 'completeError'), onDone: dart.bind(completer, 'complete'), cancelOnError: true});
    return completer.future;
  }
  close() {
    dart.dsend(this[_file$], 'closeSync', []);
    return async.Future.value();
  }
};
(io._StdConsumer.new = function(fd) {
  this[_file$] = io._File._openStdioSync(fd);
  ;
}).prototype = io._StdConsumer.prototype;
dart.addTypeTests(io._StdConsumer);
dart.addTypeCaches(io._StdConsumer);
io._StdConsumer[dart.implements] = () => [async.StreamConsumer$(core.List$(core.int))];
dart.setMethodSignature(io._StdConsumer, () => ({
  __proto__: dart.getMethods(io._StdConsumer.__proto__),
  addStream: dart.fnType(async.Future, [core.Object]),
  close: dart.fnType(async.Future, [])
}));
dart.setLibraryUri(io._StdConsumer, L48);
dart.setFieldSignature(io._StdConsumer, () => ({
  __proto__: dart.getFields(io._StdConsumer.__proto__),
  [_file$]: dart.finalFieldType(dart.dynamic)
}));
var name$11 = dart.privateName(io, "StdioType.name");
var C199;
var C200;
var C201;
var C202;
io.StdioType = class StdioType extends core.Object {
  get name() {
    return this[name$11];
  }
  set name(value) {
    super.name = value;
  }
  toString() {
    return "StdioType: " + dart.str(this.name);
  }
};
(io.StdioType.__ = function(name) {
  this[name$11] = name;
  ;
}).prototype = io.StdioType.prototype;
dart.addTypeTests(io.StdioType);
dart.addTypeCaches(io.StdioType);
dart.setLibraryUri(io.StdioType, L48);
dart.setFieldSignature(io.StdioType, () => ({
  __proto__: dart.getFields(io.StdioType.__proto__),
  name: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(io.StdioType, ['toString']);
dart.defineLazy(io.StdioType, {
  /*io.StdioType.terminal*/get terminal() {
    return C199 || CT.C199;
  },
  /*io.StdioType.pipe*/get pipe() {
    return C200 || CT.C200;
  },
  /*io.StdioType.file*/get file() {
    return C201 || CT.C201;
  },
  /*io.StdioType.other*/get other() {
    return C202 || CT.C202;
  },
  /*io.StdioType.TERMINAL*/get TERMINAL() {
    return C199 || CT.C199;
  },
  /*io.StdioType.PIPE*/get PIPE() {
    return C200 || CT.C200;
  },
  /*io.StdioType.FILE*/get FILE() {
    return C201 || CT.C201;
  },
  /*io.StdioType.OTHER*/get OTHER() {
    return C202 || CT.C202;
  }
}, true);
io._StdIOUtils = class _StdIOUtils extends core.Object {
  static _getStdioOutputStream(fd) {
    dart.throw(new core.UnsupportedError.new("StdIOUtils._getStdioOutputStream"));
  }
  static _getStdioInputStream(fd) {
    dart.throw(new core.UnsupportedError.new("StdIOUtils._getStdioInputStream"));
  }
  static _socketType(socket) {
    dart.throw(new core.UnsupportedError.new("StdIOUtils._socketType"));
  }
  static _getStdioHandleType(fd) {
    dart.throw(new core.UnsupportedError.new("StdIOUtils._getStdioHandleType"));
  }
};
(io._StdIOUtils.new = function() {
  ;
}).prototype = io._StdIOUtils.prototype;
dart.addTypeTests(io._StdIOUtils);
dart.addTypeCaches(io._StdIOUtils);
dart.setLibraryUri(io._StdIOUtils, L48);
var C203;
var C204;
var C205;
io.SystemEncoding = class SystemEncoding extends convert.Encoding {
  get name() {
    return "system";
  }
  encode(input) {
    core.String.as(input);
    return this.encoder.convert(input);
  }
  decode(encoded) {
    ListOfintL().as(encoded);
    return this.decoder.convert(encoded);
  }
  get encoder() {
    if (io.Platform.operatingSystem === "windows") {
      return C203 || CT.C203;
    } else {
      return C100 || CT.C100;
    }
  }
  get decoder() {
    if (io.Platform.operatingSystem === "windows") {
      return C204 || CT.C204;
    } else {
      return C205 || CT.C205;
    }
  }
};
(io.SystemEncoding.new = function() {
  io.SystemEncoding.__proto__.new.call(this);
  ;
}).prototype = io.SystemEncoding.prototype;
dart.addTypeTests(io.SystemEncoding);
dart.addTypeCaches(io.SystemEncoding);
dart.setGetterSignature(io.SystemEncoding, () => ({
  __proto__: dart.getGetters(io.SystemEncoding.__proto__),
  name: core.String,
  encoder: convert.Converter$(core.String, core.List$(core.int)),
  decoder: convert.Converter$(core.List$(core.int), core.String)
}));
dart.setLibraryUri(io.SystemEncoding, L48);
io._WindowsCodePageEncoder = class _WindowsCodePageEncoder extends convert.Converter$(core.String, core.List$(core.int)) {
  convert(input) {
    core.String.as(input);
    let encoded = io._WindowsCodePageEncoder._encodeString(input);
    if (encoded == null) {
      dart.throw(new core.FormatException.new("Invalid character for encoding"));
    }
    return encoded;
  }
  startChunkedConversion(sink) {
    SinkOfListLOfintL().as(sink);
    return new io._WindowsCodePageEncoderSink.new(sink);
  }
  static _encodeString(string) {
    dart.throw(new core.UnsupportedError.new("_WindowsCodePageEncoder._encodeString"));
  }
};
(io._WindowsCodePageEncoder.new = function() {
  io._WindowsCodePageEncoder.__proto__.new.call(this);
  ;
}).prototype = io._WindowsCodePageEncoder.prototype;
dart.addTypeTests(io._WindowsCodePageEncoder);
dart.addTypeCaches(io._WindowsCodePageEncoder);
dart.setMethodSignature(io._WindowsCodePageEncoder, () => ({
  __proto__: dart.getMethods(io._WindowsCodePageEncoder.__proto__),
  convert: dart.fnType(core.List$(core.int), [core.Object]),
  startChunkedConversion: dart.fnType(convert.StringConversionSink, [core.Object])
}));
dart.setLibraryUri(io._WindowsCodePageEncoder, L48);
io._WindowsCodePageEncoderSink = class _WindowsCodePageEncoderSink extends convert.StringConversionSinkBase {
  close() {
    this[_sink$1].close();
  }
  add(string) {
    core.String.as(string);
    let encoded = io._WindowsCodePageEncoder._encodeString(string);
    if (encoded == null) {
      dart.throw(new core.FormatException.new("Invalid character for encoding"));
    }
    this[_sink$1].add(encoded);
  }
  addSlice(source, start, end, isLast) {
    if (start !== 0 || end !== source.length) {
      source = source[$substring](start, end);
    }
    this.add(source);
    if (dart.test(isLast)) this.close();
  }
};
(io._WindowsCodePageEncoderSink.new = function(_sink) {
  this[_sink$1] = _sink;
  ;
}).prototype = io._WindowsCodePageEncoderSink.prototype;
dart.addTypeTests(io._WindowsCodePageEncoderSink);
dart.addTypeCaches(io._WindowsCodePageEncoderSink);
dart.setMethodSignature(io._WindowsCodePageEncoderSink, () => ({
  __proto__: dart.getMethods(io._WindowsCodePageEncoderSink.__proto__),
  close: dart.fnType(dart.void, []),
  addSlice: dart.fnType(dart.void, [core.String, core.int, core.int, core.bool])
}));
dart.setLibraryUri(io._WindowsCodePageEncoderSink, L48);
dart.setFieldSignature(io._WindowsCodePageEncoderSink, () => ({
  __proto__: dart.getFields(io._WindowsCodePageEncoderSink.__proto__),
  [_sink$1]: dart.finalFieldType(core.Sink$(core.List$(core.int)))
}));
io._WindowsCodePageDecoder = class _WindowsCodePageDecoder extends convert.Converter$(core.List$(core.int), core.String) {
  convert(input) {
    ListOfintL().as(input);
    return io._WindowsCodePageDecoder._decodeBytes(input);
  }
  startChunkedConversion(sink) {
    SinkOfStringL().as(sink);
    return new io._WindowsCodePageDecoderSink.new(sink);
  }
  static _decodeBytes(bytes) {
    dart.throw(new core.UnsupportedError.new("_WindowsCodePageDecoder._decodeBytes"));
  }
};
(io._WindowsCodePageDecoder.new = function() {
  io._WindowsCodePageDecoder.__proto__.new.call(this);
  ;
}).prototype = io._WindowsCodePageDecoder.prototype;
dart.addTypeTests(io._WindowsCodePageDecoder);
dart.addTypeCaches(io._WindowsCodePageDecoder);
dart.setMethodSignature(io._WindowsCodePageDecoder, () => ({
  __proto__: dart.getMethods(io._WindowsCodePageDecoder.__proto__),
  convert: dart.fnType(core.String, [core.Object]),
  startChunkedConversion: dart.fnType(convert.ByteConversionSink, [core.Object])
}));
dart.setLibraryUri(io._WindowsCodePageDecoder, L48);
io._WindowsCodePageDecoderSink = class _WindowsCodePageDecoderSink extends convert.ByteConversionSinkBase {
  close() {
    this[_sink$1].close();
  }
  add(bytes) {
    ListOfintL().as(bytes);
    this[_sink$1].add(io._WindowsCodePageDecoder._decodeBytes(bytes));
  }
};
(io._WindowsCodePageDecoderSink.new = function(_sink) {
  this[_sink$1] = _sink;
  io._WindowsCodePageDecoderSink.__proto__.new.call(this);
  ;
}).prototype = io._WindowsCodePageDecoderSink.prototype;
dart.addTypeTests(io._WindowsCodePageDecoderSink);
dart.addTypeCaches(io._WindowsCodePageDecoderSink);
dart.setMethodSignature(io._WindowsCodePageDecoderSink, () => ({
  __proto__: dart.getMethods(io._WindowsCodePageDecoderSink.__proto__),
  close: dart.fnType(dart.void, []),
  add: dart.fnType(dart.void, [core.Object])
}));
dart.setLibraryUri(io._WindowsCodePageDecoderSink, L48);
dart.setFieldSignature(io._WindowsCodePageDecoderSink, () => ({
  __proto__: dart.getFields(io._WindowsCodePageDecoderSink.__proto__),
  [_sink$1]: dart.finalFieldType(core.Sink$(core.String))
}));
io.RawSynchronousSocket = class RawSynchronousSocket extends core.Object {
  static connectSync(host, port) {
    dart.throw(new core.UnsupportedError.new("RawSynchronousSocket.connectSync"));
  }
};
(io.RawSynchronousSocket.new = function() {
  ;
}).prototype = io.RawSynchronousSocket.prototype;
dart.addTypeTests(io.RawSynchronousSocket);
dart.addTypeCaches(io.RawSynchronousSocket);
dart.setLibraryUri(io.RawSynchronousSocket, L48);
var C206;
io._isErrorResponse = function _isErrorResponse$(response) {
  return core.List.is(response) && !dart.equals(response[$_get](0), 0);
};
io._exceptionFromResponse = function _exceptionFromResponse$(response, message, path) {
  if (!dart.test(io._isErrorResponse(response))) dart.assertFailed(null, L57, 28, 10, "_isErrorResponse(response)");
  switch (dart.dsend(response, '_get', [0])) {
    case 1:
    {
      return new core.ArgumentError.new(dart.str(message) + ": " + dart.str(path));
    }
    case 2:
    {
      let err = new io.OSError.new(core.String.as(dart.dsend(response, '_get', [2])), core.int.as(dart.dsend(response, '_get', [1])));
      return new io.FileSystemException.new(message, path, err);
    }
    case 3:
    {
      return new io.FileSystemException.new("File closed", path);
    }
    default:
    {
      return core.Exception.new("Unknown error");
    }
  }
};
io._ensureFastAndSerializableByteData = function _ensureFastAndSerializableByteData(buffer, start, end) {
  if (typed_data.Uint8List.is(buffer) || typed_data.Int8List.is(buffer)) {
    return new io._BufferAndStart.new(buffer, start);
  }
  let length = dart.notNull(end) - dart.notNull(start);
  let newBuffer = _native_typed_data.NativeUint8List.new(length);
  let j = start;
  for (let i = 0; i < length; i = i + 1) {
    newBuffer[$_set](i, buffer[$_get](j));
    j = dart.notNull(j) + 1;
  }
  return new io._BufferAndStart.new(newBuffer, 0);
};
io._validateZLibWindowBits = function _validateZLibWindowBits(windowBits) {
  if (8 > dart.notNull(windowBits) || 15 < dart.notNull(windowBits)) {
    dart.throw(new core.RangeError.range(windowBits, 8, 15));
  }
};
io._validateZLibeLevel = function _validateZLibeLevel(level) {
  if (-1 > dart.notNull(level) || 9 < dart.notNull(level)) {
    dart.throw(new core.RangeError.range(level, -1, 9));
  }
};
io._validateZLibMemLevel = function _validateZLibMemLevel(memLevel) {
  if (1 > dart.notNull(memLevel) || 9 < dart.notNull(memLevel)) {
    dart.throw(new core.RangeError.range(memLevel, 1, 9));
  }
};
io._validateZLibStrategy = function _validateZLibStrategy(strategy) {
  let strategies = C206 || CT.C206;
  if (strategies[$indexOf](strategy) === -1) {
    dart.throw(new core.ArgumentError.new("Unsupported 'strategy'"));
  }
};
io._success = function _success() {
  return convert.json.encode(new (IdentityMapOfStringL$StringL()).from(["type", "Success"]));
};
io._invalidArgument = function _invalidArgument(argument, value) {
  return "Value for parameter '" + dart.str(argument) + "' is not valid: " + dart.str(value);
};
io._missingArgument = function _missingArgument(argument) {
  return "Parameter '" + dart.str(argument) + "' is required";
};
io._getHttpEnableTimelineLogging = function _getHttpEnableTimelineLogging() {
  return convert.json.encode(new (IdentityMapOfStringL$ObjectL()).from(["type", "HttpTimelineLoggingState", "enabled", _http.HttpClient.enableTimelineLogging]));
};
io._setHttpEnableTimelineLogging = function _setHttpEnableTimelineLogging(parameters) {
  if (!dart.test(parameters[$containsKey]("enable"))) {
    dart.throw(io._missingArgument("enable"));
  }
  let enable = parameters[$_get]("enable")[$toLowerCase]();
  if (enable !== "true" && enable !== "false") {
    dart.throw(io._invalidArgument("enable", enable));
  }
  _http.HttpClient.enableTimelineLogging = enable === "true";
  return io._success();
};
io.exit = function exit(code) {
  core.ArgumentError.checkNotNull(core.int, code, "code");
  if (!dart.test(io._EmbedderConfig._mayExit)) {
    dart.throw(new core.UnsupportedError.new("This embedder disallows calling dart:io's exit()"));
  }
  io._ProcessUtils._exit(code);
};
io.sleep = function sleep(duration) {
  let milliseconds = duration.inMilliseconds;
  if (dart.notNull(milliseconds) < 0) {
    dart.throw(new core.ArgumentError.new("sleep: duration cannot be negative"));
  }
  if (!dart.test(io._EmbedderConfig._maySleep)) {
    dart.throw(new core.UnsupportedError.new("This embedder disallows calling dart:io's sleep()"));
  }
  io._ProcessUtils._sleep(milliseconds);
};
io._setStdioFDs = function _setStdioFDs(stdin, stdout, stderr) {
  io._stdinFD = stdin;
  io._stdoutFD = stdout;
  io._stderrFD = stderr;
};
io.stdioType = function stdioType(object) {
  if (io._StdStream.is(object)) {
    object = dart.dload(object, _stream$0);
  } else if (dart.equals(object, io.stdout) || dart.equals(object, io.stderr)) {
    let stdiofd = dart.equals(object, io.stdout) ? io._stdoutFD : io._stderrFD;
    let type = io._StdIOUtils._getStdioHandleType(stdiofd);
    if (io.OSError.is(type)) {
      dart.throw(new io.FileSystemException.new("Failed to get type of stdio handle (fd " + dart.str(stdiofd) + ")", "", type));
    }
    switch (type) {
      case 0:
      {
        return io.StdioType.terminal;
      }
      case 1:
      {
        return io.StdioType.pipe;
      }
      case 2:
      {
        return io.StdioType.file;
      }
    }
  }
  if (io._FileStream.is(object)) {
    return io.StdioType.file;
  }
  if (io.Socket.is(object)) {
    let socketType = io._StdIOUtils._socketType(object);
    if (socketType == null) return io.StdioType.other;
    switch (socketType) {
      case 0:
      {
        return io.StdioType.terminal;
      }
      case 1:
      {
        return io.StdioType.pipe;
      }
      case 2:
      {
        return io.StdioType.file;
      }
    }
  }
  if (io._IOSinkImpl.is(object)) {
    try {
      if (io._FileStreamConsumer.is(object[_target$0])) {
        return io.StdioType.file;
      }
    } catch (e$) {
      let e = dart.getThrown(e$);
    }
  }
  return io.StdioType.other;
};
dart.copyProperties(io, {
  set exitCode(code) {
    core.ArgumentError.checkNotNull(core.int, code, "code");
    io._ProcessUtils._setExitCode(code);
  },
  get exitCode() {
    return io._ProcessUtils._getExitCode();
  },
  get pid() {
    return io._ProcessUtils._pid(null);
  },
  get stdin() {
    io._stdin == null ? io._stdin = io._StdIOUtils._getStdioInputStream(io._stdinFD) : null;
    return io._stdin;
  },
  get stdout() {
    io._stdout == null ? io._stdout = io.Stdout.as(io._StdIOUtils._getStdioOutputStream(io._stdoutFD)) : null;
    return io._stdout;
  },
  get stderr() {
    io._stderr == null ? io._stderr = io.Stdout.as(io._StdIOUtils._getStdioOutputStream(io._stderrFD)) : null;
    return io._stderr;
  }
});
var C207;
var C208;
var C209;
dart.defineLazy(io, {
  /*io._successResponse*/get _successResponse() {
    return 0;
  },
  /*io._illegalArgumentResponse*/get _illegalArgumentResponse() {
    return 1;
  },
  /*io._osErrorResponse*/get _osErrorResponse() {
    return 2;
  },
  /*io._fileClosedResponse*/get _fileClosedResponse() {
    return 3;
  },
  /*io._errorResponseErrorType*/get _errorResponseErrorType() {
    return 0;
  },
  /*io._osErrorResponseErrorCode*/get _osErrorResponseErrorCode() {
    return 1;
  },
  /*io._osErrorResponseMessage*/get _osErrorResponseMessage() {
    return 2;
  },
  /*io.zlib*/get zlib() {
    return C207 || CT.C207;
  },
  /*io.ZLIB*/get ZLIB() {
    return C207 || CT.C207;
  },
  /*io.gzip*/get gzip() {
    return C208 || CT.C208;
  },
  /*io.GZIP*/get GZIP() {
    return C208 || CT.C208;
  },
  /*io.READ*/get READ() {
    return C110 || CT.C110;
  },
  /*io.WRITE*/get WRITE() {
    return C111 || CT.C111;
  },
  /*io.APPEND*/get APPEND() {
    return C112 || CT.C112;
  },
  /*io.WRITE_ONLY*/get WRITE_ONLY() {
    return C113 || CT.C113;
  },
  /*io.WRITE_ONLY_APPEND*/get WRITE_ONLY_APPEND() {
    return C114 || CT.C114;
  },
  /*io._blockSize*/get _blockSize() {
    return 65536;
  },
  /*io._versionMajor*/get _versionMajor() {
    return 1;
  },
  /*io._versionMinor*/get _versionMinor() {
    return 1;
  },
  /*io._tcpSocket*/get _tcpSocket() {
    return "tcp";
  },
  /*io._udpSocket*/get _udpSocket() {
    return "udp";
  },
  /*io._ioOverridesToken*/get _ioOverridesToken() {
    return new core.Object.new();
  },
  /*io._asyncRunZoned*/get _asyncRunZoned() {
    return C209 || CT.C209;
  },
  /*io._nextServiceId*/get _nextServiceId() {
    return 1;
  },
  set _nextServiceId(_) {},
  /*io._stdioHandleTypeTerminal*/get _stdioHandleTypeTerminal() {
    return 0;
  },
  /*io._stdioHandleTypePipe*/get _stdioHandleTypePipe() {
    return 1;
  },
  /*io._stdioHandleTypeFile*/get _stdioHandleTypeFile() {
    return 2;
  },
  /*io._stdioHandleTypeSocket*/get _stdioHandleTypeSocket() {
    return 3;
  },
  /*io._stdioHandleTypeOther*/get _stdioHandleTypeOther() {
    return 4;
  },
  /*io._stdioHandleTypeError*/get _stdioHandleTypeError() {
    return 5;
  },
  /*io._stdin*/get _stdin() {
    return null;
  },
  set _stdin(_) {},
  /*io._stdout*/get _stdout() {
    return null;
  },
  set _stdout(_) {},
  /*io._stderr*/get _stderr() {
    return null;
  },
  set _stderr(_) {},
  /*io._stdinFD*/get _stdinFD() {
    return 0;
  },
  set _stdinFD(_) {},
  /*io._stdoutFD*/get _stdoutFD() {
    return 1;
  },
  set _stdoutFD(_) {},
  /*io._stderrFD*/get _stderrFD() {
    return 2;
  },
  set _stderrFD(_) {},
  /*io.systemEncoding*/get systemEncoding() {
    return C144 || CT.C144;
  },
  /*io.SYSTEM_ENCODING*/get SYSTEM_ENCODING() {
    return C144 || CT.C144;
  }
}, true);
isolate$._ReceivePort = class _ReceivePort extends async.Stream {
  close() {
  }
  get sendPort() {
    return isolate$._unsupported();
  }
  listen(onData, opts) {
    let onError = opts && 'onError' in opts ? opts.onError : null;
    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
    return isolate$._unsupported();
  }
};
(isolate$._ReceivePort.new = function() {
  isolate$._ReceivePort.__proto__.new.call(this);
  ;
}).prototype = isolate$._ReceivePort.prototype;
dart.addTypeTests(isolate$._ReceivePort);
dart.addTypeCaches(isolate$._ReceivePort);
isolate$._ReceivePort[dart.implements] = () => [isolate$.ReceivePort];
dart.setMethodSignature(isolate$._ReceivePort, () => ({
  __proto__: dart.getMethods(isolate$._ReceivePort.__proto__),
  close: dart.fnType(dart.void, []),
  listen: dart.fnType(async.StreamSubscription, [dart.fnType(dart.void, [dart.dynamic])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {})
}));
dart.setGetterSignature(isolate$._ReceivePort, () => ({
  __proto__: dart.getGetters(isolate$._ReceivePort.__proto__),
  sendPort: isolate$.SendPort
}));
dart.setLibraryUri(isolate$._ReceivePort, L58);
var message$10 = dart.privateName(isolate$, "IsolateSpawnException.message");
isolate$.IsolateSpawnException = class IsolateSpawnException extends core.Object {
  get message() {
    return this[message$10];
  }
  set message(value) {
    super.message = value;
  }
  toString() {
    return "IsolateSpawnException: " + dart.str(this.message);
  }
};
(isolate$.IsolateSpawnException.new = function(message) {
  this[message$10] = message;
  ;
}).prototype = isolate$.IsolateSpawnException.prototype;
dart.addTypeTests(isolate$.IsolateSpawnException);
dart.addTypeCaches(isolate$.IsolateSpawnException);
isolate$.IsolateSpawnException[dart.implements] = () => [core.Exception];
dart.setLibraryUri(isolate$.IsolateSpawnException, L58);
dart.setFieldSignature(isolate$.IsolateSpawnException, () => ({
  __proto__: dart.getFields(isolate$.IsolateSpawnException.__proto__),
  message: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(isolate$.IsolateSpawnException, ['toString']);
var _pause = dart.privateName(isolate$, "_pause");
var controlPort$ = dart.privateName(isolate$, "Isolate.controlPort");
var pauseCapability$ = dart.privateName(isolate$, "Isolate.pauseCapability");
var terminateCapability$ = dart.privateName(isolate$, "Isolate.terminateCapability");
isolate$.Isolate = class Isolate extends core.Object {
  get controlPort() {
    return this[controlPort$];
  }
  set controlPort(value) {
    super.controlPort = value;
  }
  get pauseCapability() {
    return this[pauseCapability$];
  }
  set pauseCapability(value) {
    super.pauseCapability = value;
  }
  get terminateCapability() {
    return this[terminateCapability$];
  }
  set terminateCapability(value) {
    super.terminateCapability = value;
  }
  get debugName() {
    return isolate$._unsupported();
  }
  static get current() {
    return isolate$._unsupported();
  }
  static get packageRoot() {
    return isolate$._unsupported();
  }
  static get packageConfig() {
    return isolate$._unsupported();
  }
  static resolvePackageUri(packageUri) {
    return isolate$._unsupported();
  }
  static spawn(T, entryPoint, message, opts) {
    let paused = opts && 'paused' in opts ? opts.paused : false;
    let errorsAreFatal = opts && 'errorsAreFatal' in opts ? opts.errorsAreFatal : null;
    let onExit = opts && 'onExit' in opts ? opts.onExit : null;
    let onError = opts && 'onError' in opts ? opts.onError : null;
    return isolate$._unsupported();
  }
  static spawnUri(uri, args, message, opts) {
    let paused = opts && 'paused' in opts ? opts.paused : false;
    let onExit = opts && 'onExit' in opts ? opts.onExit : null;
    let onError = opts && 'onError' in opts ? opts.onError : null;
    let errorsAreFatal = opts && 'errorsAreFatal' in opts ? opts.errorsAreFatal : null;
    let checked = opts && 'checked' in opts ? opts.checked : null;
    let environment = opts && 'environment' in opts ? opts.environment : null;
    let packageRoot = opts && 'packageRoot' in opts ? opts.packageRoot : null;
    let packageConfig = opts && 'packageConfig' in opts ? opts.packageConfig : null;
    let automaticPackageResolution = opts && 'automaticPackageResolution' in opts ? opts.automaticPackageResolution : false;
    return isolate$._unsupported();
  }
  pause(resumeCapability = null) {
    resumeCapability == null ? resumeCapability = isolate$.Capability.new() : null;
    this[_pause](resumeCapability);
    return resumeCapability;
  }
  [_pause](resumeCapability) {
    return isolate$._unsupported();
  }
  resume(resumeCapability) {
    return isolate$._unsupported();
  }
  addOnExitListener(responsePort, opts) {
    let response = opts && 'response' in opts ? opts.response : null;
    return isolate$._unsupported();
  }
  removeOnExitListener(responsePort) {
    return isolate$._unsupported();
  }
  setErrorsFatal(errorsAreFatal) {
    return isolate$._unsupported();
  }
  kill(opts) {
    let priority = opts && 'priority' in opts ? opts.priority : 1;
    return isolate$._unsupported();
  }
  ping(responsePort, opts) {
    let response = opts && 'response' in opts ? opts.response : null;
    let priority = opts && 'priority' in opts ? opts.priority : 0;
    return isolate$._unsupported();
  }
  addErrorListener(port) {
    return isolate$._unsupported();
  }
  removeErrorListener(port) {
    return isolate$._unsupported();
  }
  get errors() {
    let controller = null;
    let port = null;
    function handleError(message) {
      let listMessage = core.List.as(message);
      let errorDescription = core.String.as(listMessage[$_get](0));
      let stackDescription = core.String.as(listMessage[$_get](1));
      let error = new isolate$.RemoteError.new(errorDescription, stackDescription);
      controller.addError(error, error.stackTrace);
    }
    dart.fn(handleError, dynamicTovoid());
    controller = async.StreamController.broadcast({sync: true, onListen: dart.fn(() => {
        port = isolate$.RawReceivePort.new(handleError);
        this.addErrorListener(port.sendPort);
      }, VoidToNullN()), onCancel: dart.fn(() => {
        this.removeErrorListener(port.sendPort);
        port.close();
        port = null;
      }, VoidToNullN())});
    return controller.stream;
  }
};
(isolate$.Isolate.new = function(controlPort, opts) {
  let pauseCapability = opts && 'pauseCapability' in opts ? opts.pauseCapability : null;
  let terminateCapability = opts && 'terminateCapability' in opts ? opts.terminateCapability : null;
  this[controlPort$] = controlPort;
  this[pauseCapability$] = pauseCapability;
  this[terminateCapability$] = terminateCapability;
  ;
}).prototype = isolate$.Isolate.prototype;
dart.addTypeTests(isolate$.Isolate);
dart.addTypeCaches(isolate$.Isolate);
dart.setMethodSignature(isolate$.Isolate, () => ({
  __proto__: dart.getMethods(isolate$.Isolate.__proto__),
  pause: dart.fnType(isolate$.Capability, [], [isolate$.Capability]),
  [_pause]: dart.fnType(dart.void, [isolate$.Capability]),
  resume: dart.fnType(dart.void, [isolate$.Capability]),
  addOnExitListener: dart.fnType(dart.void, [isolate$.SendPort], {response: core.Object}, {}),
  removeOnExitListener: dart.fnType(dart.void, [isolate$.SendPort]),
  setErrorsFatal: dart.fnType(dart.void, [core.bool]),
  kill: dart.fnType(dart.void, [], {priority: core.int}, {}),
  ping: dart.fnType(dart.void, [isolate$.SendPort], {priority: core.int, response: core.Object}, {}),
  addErrorListener: dart.fnType(dart.void, [isolate$.SendPort]),
  removeErrorListener: dart.fnType(dart.void, [isolate$.SendPort])
}));
dart.setGetterSignature(isolate$.Isolate, () => ({
  __proto__: dart.getGetters(isolate$.Isolate.__proto__),
  debugName: core.String,
  errors: async.Stream
}));
dart.setLibraryUri(isolate$.Isolate, L58);
dart.setFieldSignature(isolate$.Isolate, () => ({
  __proto__: dart.getFields(isolate$.Isolate.__proto__),
  controlPort: dart.finalFieldType(isolate$.SendPort),
  pauseCapability: dart.finalFieldType(isolate$.Capability),
  terminateCapability: dart.finalFieldType(isolate$.Capability)
}));
dart.defineLazy(isolate$.Isolate, {
  /*isolate$.Isolate.immediate*/get immediate() {
    return 0;
  },
  /*isolate$.Isolate.beforeNextEvent*/get beforeNextEvent() {
    return 1;
  }
}, true);
isolate$.SendPort = class SendPort extends core.Object {};
(isolate$.SendPort.new = function() {
  ;
}).prototype = isolate$.SendPort.prototype;
dart.addTypeTests(isolate$.SendPort);
dart.addTypeCaches(isolate$.SendPort);
isolate$.SendPort[dart.implements] = () => [isolate$.Capability];
dart.setLibraryUri(isolate$.SendPort, L58);
isolate$.ReceivePort = class ReceivePort extends core.Object {
  static fromRawReceivePort(rawPort) {
    return isolate$._unsupported();
  }
};
(isolate$.ReceivePort[dart.mixinNew] = function() {
}).prototype = isolate$.ReceivePort.prototype;
isolate$.ReceivePort.prototype[dart.isStream] = true;
dart.addTypeTests(isolate$.ReceivePort);
dart.addTypeCaches(isolate$.ReceivePort);
isolate$.ReceivePort[dart.implements] = () => [async.Stream];
dart.setLibraryUri(isolate$.ReceivePort, L58);
isolate$.RawReceivePort = class RawReceivePort extends core.Object {
  static new(handler = null) {
    return isolate$._unsupported();
  }
};
(isolate$.RawReceivePort[dart.mixinNew] = function() {
}).prototype = isolate$.RawReceivePort.prototype;
dart.addTypeTests(isolate$.RawReceivePort);
dart.addTypeCaches(isolate$.RawReceivePort);
dart.setLibraryUri(isolate$.RawReceivePort, L58);
var _description = dart.privateName(isolate$, "_description");
var stackTrace$0 = dart.privateName(isolate$, "RemoteError.stackTrace");
isolate$.RemoteError = class RemoteError extends core.Object {
  get stackTrace() {
    return this[stackTrace$0];
  }
  set stackTrace(value) {
    super.stackTrace = value;
  }
  toString() {
    return this[_description];
  }
};
(isolate$.RemoteError.new = function(description, stackDescription) {
  this[_description] = description;
  this[stackTrace$0] = new core._StringStackTrace.new(stackDescription);
  ;
}).prototype = isolate$.RemoteError.prototype;
dart.addTypeTests(isolate$.RemoteError);
dart.addTypeCaches(isolate$.RemoteError);
isolate$.RemoteError[dart.implements] = () => [core.Error];
dart.setLibraryUri(isolate$.RemoteError, L58);
dart.setFieldSignature(isolate$.RemoteError, () => ({
  __proto__: dart.getFields(isolate$.RemoteError.__proto__),
  [_description]: dart.finalFieldType(core.String),
  stackTrace: dart.finalFieldType(core.StackTrace)
}));
dart.defineExtensionMethods(isolate$.RemoteError, ['toString']);
dart.defineExtensionAccessors(isolate$.RemoteError, ['stackTrace']);
isolate$.TransferableTypedData = class TransferableTypedData extends core.Object {
  static fromList(list) {
    return isolate$._unsupported();
  }
};
(isolate$.TransferableTypedData[dart.mixinNew] = function() {
}).prototype = isolate$.TransferableTypedData.prototype;
dart.addTypeTests(isolate$.TransferableTypedData);
dart.addTypeCaches(isolate$.TransferableTypedData);
dart.setLibraryUri(isolate$.TransferableTypedData, L58);
isolate$.Capability = class Capability extends core.Object {
  static new() {
    return isolate$._unsupported();
  }
};
(isolate$.Capability[dart.mixinNew] = function() {
}).prototype = isolate$.Capability.prototype;
dart.addTypeTests(isolate$.Capability);
dart.addTypeCaches(isolate$.Capability);
dart.setLibraryUri(isolate$.Capability, L58);
isolate$._unsupported = function _unsupported() {
  dart.throw(new core.UnsupportedError.new("dart:isolate is not supported on dart4web"));
};
var _dartObj$ = dart.privateName(js, "_dartObj");
js._DartObject = class _DartObject extends core.Object {};
(js._DartObject.new = function(_dartObj) {
  this[_dartObj$] = _dartObj;
  ;
}).prototype = js._DartObject.prototype;
dart.addTypeTests(js._DartObject);
dart.addTypeCaches(js._DartObject);
dart.setLibraryUri(js._DartObject, L59);
dart.setFieldSignature(js._DartObject, () => ({
  __proto__: dart.getFields(js._DartObject.__proto__),
  [_dartObj$]: dart.finalFieldType(dart.dynamic)
}));
var _jsObject$ = dart.privateName(js, "_jsObject");
var C210;
js.JsObject = class JsObject extends core.Object {
  static _convertDataTree(data) {
    let _convertedObjects = new _js_helper.IdentityMap.new();
    function _convert(o) {
      if (dart.test(_convertedObjects[$containsKey](o))) {
        return _convertedObjects[$_get](o);
      }
      if (core.Map.is(o)) {
        let convertedMap = {};
        _convertedObjects[$_set](o, convertedMap);
        for (let key of o[$keys]) {
          convertedMap[key] = _convert(o[$_get](key));
        }
        return convertedMap;
      } else if (core.Iterable.is(o)) {
        let convertedList = [];
        _convertedObjects[$_set](o, convertedList);
        convertedList[$addAll](o[$map](dart.dynamic, _convert));
        return convertedList;
      } else {
        return js._convertToJS(o);
      }
    }
    dart.fn(_convert, dynamicTodynamic());
    return _convert(data);
  }
  static new(constructor, $arguments = null) {
    let ctor = constructor[_jsObject$];
    if ($arguments == null) {
      return js.JsObject.as(js._wrapToDart(new ctor()));
    }
    let unwrapped = core.List.from($arguments[$map](dart.dynamic, C210 || CT.C210));
    return js.JsObject.as(js._wrapToDart(new ctor(...unwrapped)));
  }
  static fromBrowserObject(object) {
    if (typeof object == 'number' || typeof object == 'string' || typeof object == 'boolean' || object == null) {
      dart.throw(new core.ArgumentError.new("object cannot be a num, string, bool, or null"));
    }
    return js.JsObject.as(js._wrapToDart(js._convertToJS(object)));
  }
  static jsify(object) {
    if (!core.Map.is(object) && !core.Iterable.is(object)) {
      dart.throw(new core.ArgumentError.new("object must be a Map or Iterable"));
    }
    return js.JsObject.as(js._wrapToDart(js.JsObject._convertDataTree(object)));
  }
  _get(property) {
    if (!(typeof property == 'string') && !(typeof property == 'number')) {
      dart.throw(new core.ArgumentError.new("property is not a String or num"));
    }
    return js._convertToDart(this[_jsObject$][property]);
  }
  _set(property, value$) {
    let value = value$;
    if (!(typeof property == 'string') && !(typeof property == 'number')) {
      dart.throw(new core.ArgumentError.new("property is not a String or num"));
    }
    this[_jsObject$][property] = js._convertToJS(value);
    return value$;
  }
  get hashCode() {
    return 0;
  }
  _equals(other) {
    if (other == null) return false;
    return js.JsObject.is(other) && this[_jsObject$] === other[_jsObject$];
  }
  hasProperty(property) {
    if (!(typeof property == 'string') && !(typeof property == 'number')) {
      dart.throw(new core.ArgumentError.new("property is not a String or num"));
    }
    return property in this[_jsObject$];
  }
  deleteProperty(property) {
    if (!(typeof property == 'string') && !(typeof property == 'number')) {
      dart.throw(new core.ArgumentError.new("property is not a String or num"));
    }
    delete this[_jsObject$][property];
  }
  instanceof(type) {
    return this[_jsObject$] instanceof js._convertToJS(type);
  }
  toString() {
    try {
      return String(this[_jsObject$]);
    } catch (e$) {
      let e = dart.getThrown(e$);
      return super[$toString]();
    }
  }
  callMethod(method, args = null) {
    if (!(typeof method == 'string') && !(typeof method == 'number')) {
      dart.throw(new core.ArgumentError.new("method is not a String or num"));
    }
    if (args != null) args = core.List.from(args[$map](dart.dynamic, C210 || CT.C210));
    let fn = this[_jsObject$][method];
    if (typeof fn !== "function") {
      dart.throw(new core.NoSuchMethodError.new(this[_jsObject$], new _internal.Symbol.new(core.String.as(method)), args, new (LinkedMapOfSymbolL$dynamic()).new()));
    }
    return js._convertToDart(fn.apply(this[_jsObject$], args));
  }
};
(js.JsObject._fromJs = function(_jsObject) {
  this[_jsObject$] = _jsObject;
  if (!(this[_jsObject$] != null)) dart.assertFailed(null, L60, 28, 12, "_jsObject != null");
}).prototype = js.JsObject.prototype;
dart.addTypeTests(js.JsObject);
dart.addTypeCaches(js.JsObject);
dart.setMethodSignature(js.JsObject, () => ({
  __proto__: dart.getMethods(js.JsObject.__proto__),
  _get: dart.fnType(dart.dynamic, [core.Object]),
  _set: dart.fnType(dart.void, [core.Object, dart.dynamic]),
  hasProperty: dart.fnType(core.bool, [dart.dynamic]),
  deleteProperty: dart.fnType(dart.void, [dart.dynamic]),
  instanceof: dart.fnType(core.bool, [js.JsFunction]),
  callMethod: dart.fnType(dart.dynamic, [dart.dynamic], [core.List])
}));
dart.setLibraryUri(js.JsObject, L59);
dart.setFieldSignature(js.JsObject, () => ({
  __proto__: dart.getFields(js.JsObject.__proto__),
  [_jsObject$]: dart.finalFieldType(dart.dynamic)
}));
dart.defineExtensionMethods(js.JsObject, ['_equals', 'toString']);
dart.defineExtensionAccessors(js.JsObject, ['hashCode']);
js.JsFunction = class JsFunction extends js.JsObject {
  static withThis(f) {
    return new js.JsFunction._fromJs(function() {
      let args = [js._convertToDart(this)];
      for (let arg of arguments) {
        args.push(js._convertToDart(arg));
      }
      return js._convertToJS(f(...args));
    });
  }
  apply(args, opts) {
    let thisArg = opts && 'thisArg' in opts ? opts.thisArg : null;
    return js._convertToDart(this[_jsObject$].apply(js._convertToJS(thisArg), args == null ? null : core.List.from(args[$map](dart.dynamic, js._convertToJS))));
  }
};
(js.JsFunction._fromJs = function(jsObject) {
  js.JsFunction.__proto__._fromJs.call(this, jsObject);
  ;
}).prototype = js.JsFunction.prototype;
dart.addTypeTests(js.JsFunction);
dart.addTypeCaches(js.JsFunction);
dart.setMethodSignature(js.JsFunction, () => ({
  __proto__: dart.getMethods(js.JsFunction.__proto__),
  apply: dart.fnType(dart.dynamic, [core.List], {thisArg: dart.dynamic}, {})
}));
dart.setLibraryUri(js.JsFunction, L59);
var _checkIndex = dart.privateName(js, "_checkIndex");
var _checkInsertIndex = dart.privateName(js, "_checkInsertIndex");
const _is_JsArray_default = Symbol('_is_JsArray_default');
js.JsArray$ = dart.generic(E => {
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  const JsObject_ListMixin$36 = class JsObject_ListMixin extends js.JsObject {};
  (JsObject_ListMixin$36._fromJs = function(_jsObject) {
    JsObject_ListMixin$36.__proto__._fromJs.call(this, _jsObject);
  }).prototype = JsObject_ListMixin$36.prototype;
  dart.applyMixin(JsObject_ListMixin$36, collection.ListMixin$(E));
  class JsArray extends JsObject_ListMixin$36 {
    [_checkIndex](index) {
      if (core.int.is(index) && (dart.notNull(index) < 0 || dart.notNull(index) >= dart.notNull(this.length))) {
        dart.throw(new core.RangeError.range(index, 0, this.length));
      }
    }
    [_checkInsertIndex](index) {
      if (core.int.is(index) && (dart.notNull(index) < 0 || dart.notNull(index) >= dart.notNull(this.length) + 1)) {
        dart.throw(new core.RangeError.range(index, 0, this.length));
      }
    }
    static _checkRange(start, end, length) {
      if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(length)) {
        dart.throw(new core.RangeError.range(start, 0, length));
      }
      if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dart.notNull(length)) {
        dart.throw(new core.RangeError.range(end, start, length));
      }
    }
    static new() {
      return new (js.JsArray$(E))._fromJs([]);
    }
    static from(other) {
      let t94;
      return new (js.JsArray$(E))._fromJs((t94 = [], t94[$addAll](other[$map](dart.dynamic, C210 || CT.C210)), t94));
    }
    _get(index) {
      if (typeof index == 'number' && index === index[$toInt]()) {
        this[_checkIndex](dart.asNullableInt(index));
      }
      return E.as(super._get(index));
    }
    _set(index, value$) {
      let value = value$;
      if (typeof index == 'number' && index === index[$toInt]()) {
        this[_checkIndex](dart.asNullableInt(index));
      }
      super._set(index, value);
      return value$;
    }
    get length() {
      let len = this[_jsObject$].length;
      if (typeof len === "number" && len >>> 0 === len) {
        return len;
      }
      dart.throw(new core.StateError.new("Bad JsArray length"));
    }
    set length(length) {
      super._set("length", length);
    }
    add(value) {
      E.as(value);
      this.callMethod("push", [value]);
    }
    addAll(iterable) {
      IterableOfEL().as(iterable);
      let list = iterable instanceof Array ? iterable : core.List.from(iterable);
      this.callMethod("push", core.List.as(list));
    }
    insert(index, element) {
      E.as(element);
      this[_checkInsertIndex](index);
      this.callMethod("splice", [index, 0, element]);
    }
    removeAt(index) {
      this[_checkIndex](index);
      return E.as(dart.dsend(this.callMethod("splice", [index, 1]), '_get', [0]));
    }
    removeLast() {
      if (this.length === 0) dart.throw(new core.RangeError.new(-1));
      return E.as(this.callMethod("pop"));
    }
    removeRange(start, end) {
      js.JsArray._checkRange(start, end, this.length);
      this.callMethod("splice", [start, dart.notNull(end) - dart.notNull(start)]);
    }
    setRange(start, end, iterable, skipCount = 0) {
      let t94;
      IterableOfEL().as(iterable);
      js.JsArray._checkRange(start, end, this.length);
      let length = dart.notNull(end) - dart.notNull(start);
      if (length === 0) return;
      if (dart.notNull(skipCount) < 0) dart.throw(new core.ArgumentError.new(skipCount));
      let args = (t94 = JSArrayOfObjectL().of([start, length]), t94[$addAll](iterable[$skip](skipCount)[$take](length)), t94);
      this.callMethod("splice", args);
    }
    sort(compare = null) {
      this.callMethod("sort", compare == null ? [] : [compare]);
    }
  }
  (JsArray._fromJs = function(jsObject) {
    JsArray.__proto__._fromJs.call(this, jsObject);
    ;
  }).prototype = JsArray.prototype;
  dart.addTypeTests(JsArray);
  JsArray.prototype[_is_JsArray_default] = true;
  dart.addTypeCaches(JsArray);
  dart.setMethodSignature(JsArray, () => ({
    __proto__: dart.getMethods(JsArray.__proto__),
    [_checkIndex]: dart.fnType(dart.dynamic, [core.int]),
    [_checkInsertIndex]: dart.fnType(dart.dynamic, [core.int]),
    _get: dart.fnType(E, [core.Object]),
    [$_get]: dart.fnType(E, [core.Object])
  }));
  dart.setGetterSignature(JsArray, () => ({
    __proto__: dart.getGetters(JsArray.__proto__),
    length: core.int,
    [$length]: core.int
  }));
  dart.setSetterSignature(JsArray, () => ({
    __proto__: dart.getSetters(JsArray.__proto__),
    length: core.int,
    [$length]: core.int
  }));
  dart.setLibraryUri(JsArray, L59);
  dart.defineExtensionMethods(JsArray, [
    '_get',
    '_set',
    'add',
    'addAll',
    'insert',
    'removeAt',
    'removeLast',
    'removeRange',
    'setRange',
    'sort'
  ]);
  dart.defineExtensionAccessors(JsArray, ['length']);
  return JsArray;
});
js.JsArray = js.JsArray$();
dart.addTypeTests(js.JsArray, _is_JsArray_default);
var C211;
var C212;
js._isBrowserType = function _isBrowserType(o) {
  return o instanceof Object && (o instanceof Blob || o instanceof Event || window.KeyRange && o instanceof KeyRange || window.IDBKeyRange && o instanceof IDBKeyRange || o instanceof ImageData || o instanceof Node || window.Int8Array && o instanceof Int8Array.__proto__ || o instanceof Window);
};
js._convertToJS = function _convertToJS(o) {
  if (o == null || typeof o == 'string' || typeof o == 'number' || typeof o == 'boolean' || dart.test(js._isBrowserType(o))) {
    return o;
  } else if (core.DateTime.is(o)) {
    return _js_helper.Primitives.lazyAsJsDate(o);
  } else if (js.JsObject.is(o)) {
    return o[_jsObject$];
  } else if (core.Function.is(o)) {
    return js._putIfAbsent(js._jsProxies, o, C211 || CT.C211);
  } else {
    return js._putIfAbsent(js._jsProxies, o, dart.fn(o => new js._DartObject.new(o), dynamicTo_DartObjectL()));
  }
};
js._wrapDartFunction = function _wrapDartFunction(f) {
  let wrapper = function() {
    let args = Array.prototype.map.call(arguments, js._convertToDart);
    return js._convertToJS(f(...args));
  };
  js._dartProxies.set(wrapper, f);
  return wrapper;
};
js._convertToDart = function _convertToDart(o) {
  if (o == null || typeof o == 'string' || typeof o == 'number' || typeof o == 'boolean' || dart.test(js._isBrowserType(o))) {
    return o;
  } else if (o instanceof Date) {
    let ms = o.getTime();
    return new core.DateTime.fromMillisecondsSinceEpoch(dart.asNullableInt(ms));
  } else if (js._DartObject.is(o) && !core.identical(dart.getReifiedType(o), dart.jsobject)) {
    return o[_dartObj$];
  } else {
    return js._wrapToDart(o);
  }
};
js._wrapToDart = function _wrapToDart(o) {
  return js._putIfAbsent(js._dartProxies, o, C212 || CT.C212);
};
js._wrapToDartHelper = function _wrapToDartHelper(o) {
  if (typeof o == "function") {
    return new js.JsFunction._fromJs(o);
  }
  if (o instanceof Array) {
    return new js.JsArray._fromJs(o);
  }
  return new js.JsObject._fromJs(o);
};
js._putIfAbsent = function _putIfAbsent(weakMap, o, getValue) {
  let value = weakMap.get(o);
  if (value == null) {
    value = getValue(o);
    weakMap.set(o, value);
  }
  return value;
};
js.allowInterop = function allowInterop(F, f) {
  if (!dart.test(dart.isDartFunction(f))) return f;
  let ret = js._interopExpando._get(f);
  if (ret == null) {
    ret = function(...args) {
      return dart.dcall(f, args);
    };
    js._interopExpando._set(f, ret);
  }
  return F.as(ret);
};
js.allowInteropCaptureThis = function allowInteropCaptureThis(f) {
  if (!dart.test(dart.isDartFunction(f))) return f;
  let ret = js._interopCaptureThisExpando._get(f);
  if (ret == null) {
    ret = function(...arguments$) {
      let args = [this];
      args.push.apply(args, arguments$);
      return dart.dcall(f, args);
    };
    js._interopCaptureThisExpando._set(f, ret);
  }
  return ret;
};
dart.copyProperties(js, {
  get context() {
    return js._context;
  }
});
dart.defineLazy(js, {
  /*js._context*/get _context() {
    return js.JsObject.as(js._wrapToDart(dart.global));
  },
  /*js._dartProxies*/get _dartProxies() {
    return new WeakMap();
  },
  /*js._jsProxies*/get _jsProxies() {
    return new WeakMap();
  },
  /*js._interopExpando*/get _interopExpando() {
    return new (ExpandoOfFunctionL()).new();
  },
  set _interopExpando(_) {},
  /*js._interopCaptureThisExpando*/get _interopCaptureThisExpando() {
    return new (ExpandoOfFunctionL()).new();
  },
  set _interopCaptureThisExpando(_) {}
}, true);
js_util.jsify = function jsify(object) {
  if (!core.Map.is(object) && !core.Iterable.is(object)) {
    dart.throw(new core.ArgumentError.new("object must be a Map or Iterable"));
  }
  return js_util._convertDataTree(object);
};
js_util._convertDataTree = function _convertDataTree(data) {
  let _convertedObjects = new _js_helper.IdentityMap.new();
  function _convert(o) {
    if (dart.test(_convertedObjects[$containsKey](o))) {
      return _convertedObjects[$_get](o);
    }
    if (core.Map.is(o)) {
      let convertedMap = {};
      _convertedObjects[$_set](o, convertedMap);
      for (let key of o[$keys]) {
        convertedMap[key] = _convert(o[$_get](key));
      }
      return convertedMap;
    } else if (core.Iterable.is(o)) {
      let convertedList = [];
      _convertedObjects[$_set](o, convertedList);
      convertedList[$addAll](o[$map](dart.dynamic, _convert));
      return convertedList;
    } else {
      return o;
    }
  }
  dart.fn(_convert, dynamicTodynamic());
  return _convert(data);
};
js_util.newObject = function newObject() {
  return {};
};
js_util.hasProperty = function hasProperty(o, name) {
  return name in o;
};
js_util.getProperty = function getProperty(o, name) {
  return o[name];
};
js_util.setProperty = function setProperty(o, name, value) {
  return o[name] = value;
};
js_util.callMethod = function callMethod$(o, method, args) {
  return o[method].apply(o, args);
};
js_util.instanceof = function $instanceof(o, type) {
  return o instanceof type;
};
js_util.callConstructor = function callConstructor(constr, $arguments) {
  let t94;
  if ($arguments == null) {
    return new constr();
  }
  if ($arguments instanceof Array) {
    let argumentCount = $arguments.length;
    switch (argumentCount) {
      case 0:
      {
        return new constr();
      }
      case 1:
      {
        let arg0 = $arguments[0];
        return new constr(arg0);
      }
      case 2:
      {
        let arg0 = $arguments[0];
        let arg1 = $arguments[1];
        return new constr(arg0, arg1);
      }
      case 3:
      {
        let arg0 = $arguments[0];
        let arg1 = $arguments[1];
        let arg2 = $arguments[2];
        return new constr(arg0, arg1, arg2);
      }
      case 4:
      {
        let arg0 = $arguments[0];
        let arg1 = $arguments[1];
        let arg2 = $arguments[2];
        let arg3 = $arguments[3];
        return new constr(arg0, arg1, arg2, arg3);
      }
    }
  }
  let args = (t94 = [null], t94[$addAll]($arguments), t94);
  let factoryFunction = constr.bind.apply(constr, args);
  String(factoryFunction);
  return new factoryFunction();
};
js_util.promiseToFuture = function promiseToFuture(T, jsPromise) {
  let completer = async.Completer$(T).new();
  let success = _js_helper.convertDartClosureToJS(dynamicToLvoid(), dart.fn(r => completer.complete(async.FutureOr$(T).as(r)), dynamicTovoid()), 1);
  let error = _js_helper.convertDartClosureToJS(dynamicToLvoid(), dart.fn(e => completer.completeError(e), dynamicTovoid()), 1);
  jsPromise.then(success, error);
  return completer.future;
};
math._JSRandom = class _JSRandom extends core.Object {
  nextInt(max) {
    if (dart.notNull(max) <= 0 || dart.notNull(max) > 4294967296.0) {
      dart.throw(new core.RangeError.new("max must be in range 0 < max ≤ 2^32, was " + dart.str(max)));
    }
    return Math.random() * max >>> 0;
  }
  nextDouble() {
    return Math.random();
  }
  nextBool() {
    return Math.random() < 0.5;
  }
};
(math._JSRandom.new = function() {
  ;
}).prototype = math._JSRandom.prototype;
dart.addTypeTests(math._JSRandom);
dart.addTypeCaches(math._JSRandom);
math._JSRandom[dart.implements] = () => [math.Random];
dart.setMethodSignature(math._JSRandom, () => ({
  __proto__: dart.getMethods(math._JSRandom.__proto__),
  nextInt: dart.fnType(core.int, [core.int]),
  nextDouble: dart.fnType(core.double, []),
  nextBool: dart.fnType(core.bool, [])
}));
dart.setLibraryUri(math._JSRandom, L61);
var _lo = dart.privateName(math, "_lo");
var _hi = dart.privateName(math, "_hi");
var _nextState = dart.privateName(math, "_nextState");
math._Random = class _Random extends core.Object {
  [_nextState]() {
    let tmpHi = 4294901760 * this[_lo];
    let tmpHiLo = (tmpHi & 4294967295.0) >>> 0;
    let tmpHiHi = tmpHi - tmpHiLo;
    let tmpLo = 55905 * this[_lo];
    let tmpLoLo = (tmpLo & 4294967295.0) >>> 0;
    let tmpLoHi = tmpLo - tmpLoLo;
    let newLo = tmpLoLo + tmpHiLo + this[_hi];
    this[_lo] = (newLo & 4294967295.0) >>> 0;
    let newLoHi = newLo - this[_lo];
    this[_hi] = (((tmpLoHi + tmpHiHi + newLoHi) / 4294967296.0)[$truncate]() & 4294967295.0) >>> 0;
    if (!(this[_lo] < 4294967296.0)) dart.assertFailed(null, L62, 223, 12, "_lo < _POW2_32");
    if (!(this[_hi] < 4294967296.0)) dart.assertFailed(null, L62, 224, 12, "_hi < _POW2_32");
  }
  nextInt(max) {
    if (max == null) dart.argumentError(max);
    if (max <= 0 || max > 4294967296.0) {
      dart.throw(new core.RangeError.new("max must be in range 0 < max ≤ 2^32, was " + dart.str(max)));
    }
    if ((max & max - 1) === 0) {
      this[_nextState]();
      return (this[_lo] & max - 1) >>> 0;
    }
    let rnd32 = null;
    let result = null;
    do {
      this[_nextState]();
      rnd32 = this[_lo];
      result = dart.asNullableInt(rnd32[$remainder](max));
    } while (dart.notNull(rnd32) - dart.notNull(result) + max >= 4294967296.0);
    return result;
  }
  nextDouble() {
    this[_nextState]();
    let bits26 = (this[_lo] & (1 << 26) - 1) >>> 0;
    this[_nextState]();
    let bits27 = (this[_lo] & (1 << 27) - 1) >>> 0;
    return (bits26 * 134217728 + bits27) / 9007199254740992.0;
  }
  nextBool() {
    this[_nextState]();
    return (this[_lo] & 1) === 0;
  }
};
(math._Random.new = function(seed) {
  this[_lo] = 0;
  this[_hi] = 0;
  let empty_seed = 0;
  if (dart.notNull(seed) < 0) {
    empty_seed = -1;
  }
  do {
    let low = (dart.notNull(seed) & 4294967295.0) >>> 0;
    seed = ((dart.notNull(seed) - low) / 4294967296.0)[$truncate]();
    let high = (dart.notNull(seed) & 4294967295.0) >>> 0;
    seed = ((dart.notNull(seed) - high) / 4294967296.0)[$truncate]();
    let tmplow = low << 21 >>> 0;
    let tmphigh = (high << 21 | low[$rightShift](11)) >>> 0;
    tmplow = ((~low & 4294967295.0) >>> 0) + tmplow;
    low = (tmplow & 4294967295.0) >>> 0;
    high = ((~high >>> 0) + tmphigh + ((tmplow - low) / 4294967296)[$truncate]() & 4294967295.0) >>> 0;
    tmphigh = high[$rightShift](24);
    tmplow = (low[$rightShift](24) | high << 8 >>> 0) >>> 0;
    low = (low ^ tmplow) >>> 0;
    high = (high ^ tmphigh) >>> 0;
    tmplow = low * 265;
    low = (tmplow & 4294967295.0) >>> 0;
    high = (high * 265 + ((tmplow - low) / 4294967296)[$truncate]() & 4294967295.0) >>> 0;
    tmphigh = high[$rightShift](14);
    tmplow = (low[$rightShift](14) | high << 18 >>> 0) >>> 0;
    low = (low ^ tmplow) >>> 0;
    high = (high ^ tmphigh) >>> 0;
    tmplow = low * 21;
    low = (tmplow & 4294967295.0) >>> 0;
    high = (high * 21 + ((tmplow - low) / 4294967296)[$truncate]() & 4294967295.0) >>> 0;
    tmphigh = high[$rightShift](28);
    tmplow = (low[$rightShift](28) | high << 4 >>> 0) >>> 0;
    low = (low ^ tmplow) >>> 0;
    high = (high ^ tmphigh) >>> 0;
    tmplow = low << 31 >>> 0;
    tmphigh = (high << 31 | low[$rightShift](1)) >>> 0;
    tmplow = tmplow + low;
    low = (tmplow & 4294967295.0) >>> 0;
    high = (high + tmphigh + ((tmplow - low) / 4294967296)[$truncate]() & 4294967295.0) >>> 0;
    tmplow = this[_lo] * 1037;
    this[_lo] = (tmplow & 4294967295.0) >>> 0;
    this[_hi] = (this[_hi] * 1037 + ((tmplow - this[_lo]) / 4294967296)[$truncate]() & 4294967295.0) >>> 0;
    this[_lo] = (this[_lo] ^ low) >>> 0;
    this[_hi] = (this[_hi] ^ high) >>> 0;
  } while (seed !== empty_seed);
  if (this[_hi] === 0 && this[_lo] === 0) {
    this[_lo] = 23063;
  }
  this[_nextState]();
  this[_nextState]();
  this[_nextState]();
  this[_nextState]();
}).prototype = math._Random.prototype;
dart.addTypeTests(math._Random);
dart.addTypeCaches(math._Random);
math._Random[dart.implements] = () => [math.Random];
dart.setMethodSignature(math._Random, () => ({
  __proto__: dart.getMethods(math._Random.__proto__),
  [_nextState]: dart.fnType(dart.void, []),
  nextInt: dart.fnType(core.int, [core.int]),
  nextDouble: dart.fnType(core.double, []),
  nextBool: dart.fnType(core.bool, [])
}));
dart.setLibraryUri(math._Random, L61);
dart.setFieldSignature(math._Random, () => ({
  __proto__: dart.getFields(math._Random.__proto__),
  [_lo]: dart.fieldType(core.int),
  [_hi]: dart.fieldType(core.int)
}));
dart.defineLazy(math._Random, {
  /*math._Random._POW2_53_D*/get _POW2_53_D() {
    return 9007199254740992.0;
  },
  /*math._Random._POW2_27_D*/get _POW2_27_D() {
    return 134217728;
  },
  /*math._Random._MASK32*/get _MASK32() {
    return 4294967295.0;
  }
}, true);
var _buffer$0 = dart.privateName(math, "_buffer");
var _getRandomBytes = dart.privateName(math, "_getRandomBytes");
math._JSSecureRandom = class _JSSecureRandom extends core.Object {
  [_getRandomBytes](start, length) {
    crypto.getRandomValues(this[_buffer$0][$buffer][$asUint8List](start, length));
  }
  nextBool() {
    this[_getRandomBytes](0, 1);
    return this[_buffer$0][$getUint8](0)[$isOdd];
  }
  nextDouble() {
    this[_getRandomBytes](1, 7);
    this[_buffer$0][$setUint8](0, 63);
    let highByte = this[_buffer$0][$getUint8](1);
    this[_buffer$0][$setUint8](1, (dart.notNull(highByte) | 240) >>> 0);
    let result = dart.notNull(this[_buffer$0][$getFloat64](0)) - 1.0;
    if ((dart.notNull(highByte) & 16) !== 0) {
      result = result + 1.1102230246251565e-16;
    }
    return result;
  }
  nextInt(max) {
    if (max == null) dart.argumentError(max);
    if (max <= 0 || max > 4294967296.0) {
      dart.throw(new core.RangeError.new("max must be in range 0 < max ≤ 2^32, was " + dart.str(max)));
    }
    let byteCount = 1;
    if (max > 255) {
      byteCount = byteCount + 1;
      if (max > 65535) {
        byteCount = byteCount + 1;
        if (max > 16777215) {
          byteCount = byteCount + 1;
        }
      }
    }
    this[_buffer$0][$setUint32](0, 0);
    let start = 4 - byteCount;
    let randomLimit = dart.asNullableInt(math.pow(256, byteCount));
    while (true) {
      this[_getRandomBytes](start, byteCount);
      let random = this[_buffer$0][$getUint32](0);
      if ((max & max - 1) === 0) {
        return (dart.notNull(random) & max - 1) >>> 0;
      }
      let result = dart.asNullableInt(random[$remainder](max));
      if (dart.notNull(random) - result + max < randomLimit) {
        return result;
      }
    }
  }
};
(math._JSSecureRandom.new = function() {
  this[_buffer$0] = _native_typed_data.NativeByteData.new(8);
  let crypto = self.crypto;
  if (crypto != null) {
    let getRandomValues = crypto.getRandomValues;
    if (getRandomValues != null) {
      return;
    }
  }
  dart.throw(new core.UnsupportedError.new("No source of cryptographically secure random numbers available."));
}).prototype = math._JSSecureRandom.prototype;
dart.addTypeTests(math._JSSecureRandom);
dart.addTypeCaches(math._JSSecureRandom);
math._JSSecureRandom[dart.implements] = () => [math.Random];
dart.setMethodSignature(math._JSSecureRandom, () => ({
  __proto__: dart.getMethods(math._JSSecureRandom.__proto__),
  [_getRandomBytes]: dart.fnType(dart.void, [core.int, core.int]),
  nextBool: dart.fnType(core.bool, []),
  nextDouble: dart.fnType(core.double, []),
  nextInt: dart.fnType(core.int, [core.int])
}));
dart.setLibraryUri(math._JSSecureRandom, L61);
dart.setFieldSignature(math._JSSecureRandom, () => ({
  __proto__: dart.getFields(math._JSSecureRandom.__proto__),
  [_buffer$0]: dart.finalFieldType(typed_data.ByteData)
}));
math._JenkinsSmiHash = class _JenkinsSmiHash extends core.Object {
  static combine(hash, value) {
    hash = 536870911 & dart.notNull(hash) + dart.notNull(value);
    hash = 536870911 & dart.notNull(hash) + ((524287 & dart.notNull(hash)) << 10);
    return (dart.notNull(hash) ^ hash[$rightShift](6)) >>> 0;
  }
  static finish(hash) {
    hash = 536870911 & dart.notNull(hash) + ((67108863 & dart.notNull(hash)) << 3);
    hash = (dart.notNull(hash) ^ hash[$rightShift](11)) >>> 0;
    return 536870911 & dart.notNull(hash) + ((16383 & dart.notNull(hash)) << 15);
  }
  static hash2(a, b) {
    return math._JenkinsSmiHash.finish(math._JenkinsSmiHash.combine(math._JenkinsSmiHash.combine(0, core.int.as(a)), core.int.as(b)));
  }
  static hash4(a, b, c, d) {
    return math._JenkinsSmiHash.finish(math._JenkinsSmiHash.combine(math._JenkinsSmiHash.combine(math._JenkinsSmiHash.combine(math._JenkinsSmiHash.combine(0, core.int.as(a)), core.int.as(b)), core.int.as(c)), core.int.as(d)));
  }
};
(math._JenkinsSmiHash.new = function() {
  ;
}).prototype = math._JenkinsSmiHash.prototype;
dart.addTypeTests(math._JenkinsSmiHash);
dart.addTypeCaches(math._JenkinsSmiHash);
dart.setLibraryUri(math._JenkinsSmiHash, L61);
const _is_Point_default = Symbol('_is_Point_default');
var x$2 = dart.privateName(math, "Point.x");
var y$2 = dart.privateName(math, "Point.y");
math.Point$ = dart.generic(T => {
  var PointOfTL = () => (PointOfTL = dart.constFn(math.Point$(T)))();
  class Point extends core.Object {
    get x() {
      return this[x$2];
    }
    set x(value) {
      super.x = value;
    }
    get y() {
      return this[y$2];
    }
    set y(value) {
      super.y = value;
    }
    toString() {
      return "Point(" + dart.str(this.x) + ", " + dart.str(this.y) + ")";
    }
    _equals(other) {
      if (other == null) return false;
      return PointOfnumL().is(other) && this.x == other.x && this.y == other.y;
    }
    get hashCode() {
      return math._JenkinsSmiHash.hash2(dart.hashCode(this.x), dart.hashCode(this.y));
    }
    ['+'](other) {
      PointOfTL().as(other);
      return new (PointOfTL()).new(T.as(dart.notNull(this.x) + dart.notNull(other.x)), T.as(dart.notNull(this.y) + dart.notNull(other.y)));
    }
    ['-'](other) {
      PointOfTL().as(other);
      return new (PointOfTL()).new(T.as(dart.notNull(this.x) - dart.notNull(other.x)), T.as(dart.notNull(this.y) - dart.notNull(other.y)));
    }
    ['*'](factor) {
      return new (PointOfTL()).new(T.as(dart.notNull(this.x) * dart.notNull(factor)), T.as(dart.notNull(this.y) * dart.notNull(factor)));
    }
    get magnitude() {
      return math.sqrt(dart.notNull(this.x) * dart.notNull(this.x) + dart.notNull(this.y) * dart.notNull(this.y));
    }
    distanceTo(other) {
      PointOfTL().as(other);
      let dx = dart.notNull(this.x) - dart.notNull(other.x);
      let dy = dart.notNull(this.y) - dart.notNull(other.y);
      return math.sqrt(dx * dx + dy * dy);
    }
    squaredDistanceTo(other) {
      PointOfTL().as(other);
      let dx = dart.notNull(this.x) - dart.notNull(other.x);
      let dy = dart.notNull(this.y) - dart.notNull(other.y);
      return T.as(dx * dx + dy * dy);
    }
  }
  (Point.new = function(x, y) {
    this[x$2] = x;
    this[y$2] = y;
    ;
  }).prototype = Point.prototype;
  dart.addTypeTests(Point);
  Point.prototype[_is_Point_default] = true;
  dart.addTypeCaches(Point);
  dart.setMethodSignature(Point, () => ({
    __proto__: dart.getMethods(Point.__proto__),
    '+': dart.fnType(math.Point$(T), [core.Object]),
    '-': dart.fnType(math.Point$(T), [core.Object]),
    '*': dart.fnType(math.Point$(T), [core.num]),
    distanceTo: dart.fnType(core.double, [core.Object]),
    squaredDistanceTo: dart.fnType(T, [core.Object])
  }));
  dart.setGetterSignature(Point, () => ({
    __proto__: dart.getGetters(Point.__proto__),
    magnitude: core.double
  }));
  dart.setLibraryUri(Point, L61);
  dart.setFieldSignature(Point, () => ({
    __proto__: dart.getFields(Point.__proto__),
    x: dart.finalFieldType(T),
    y: dart.finalFieldType(T)
  }));
  dart.defineExtensionMethods(Point, ['toString', '_equals']);
  dart.defineExtensionAccessors(Point, ['hashCode']);
  return Point;
});
math.Point = math.Point$();
dart.addTypeTests(math.Point, _is_Point_default);
var C213;
math.Random = class Random extends core.Object {
  static new(seed = null) {
    return seed == null ? C213 || CT.C213 : new math._Random.new(seed);
  }
  static secure() {
    let t94;
    t94 = math.Random._secureRandom;
    return t94 == null ? math.Random._secureRandom = new math._JSSecureRandom.new() : t94;
  }
};
(math.Random[dart.mixinNew] = function() {
}).prototype = math.Random.prototype;
dart.addTypeTests(math.Random);
dart.addTypeCaches(math.Random);
dart.setLibraryUri(math.Random, L61);
dart.defineLazy(math.Random, {
  /*math.Random._secureRandom*/get _secureRandom() {
    return null;
  },
  set _secureRandom(_) {}
}, true);
const _is__RectangleBase_default = Symbol('_is__RectangleBase_default');
math._RectangleBase$ = dart.generic(T => {
  var RectangleOfTL = () => (RectangleOfTL = dart.constFn(math.Rectangle$(T)))();
  var PointOfTL = () => (PointOfTL = dart.constFn(math.Point$(T)))();
  class _RectangleBase extends core.Object {
    get right() {
      return T.as(dart.notNull(this[$left]) + dart.notNull(this[$width]));
    }
    get bottom() {
      return T.as(dart.notNull(this[$top]) + dart.notNull(this[$height]));
    }
    toString() {
      return "Rectangle (" + dart.str(this[$left]) + ", " + dart.str(this[$top]) + ") " + dart.str(this[$width]) + " x " + dart.str(this[$height]);
    }
    _equals(other) {
      if (other == null) return false;
      return RectangleOfnumL().is(other) && this[$left] == other[$left] && this[$top] == other[$top] && this[$right] == other[$right] && this[$bottom] == other[$bottom];
    }
    get hashCode() {
      return math._JenkinsSmiHash.hash4(dart.hashCode(this[$left]), dart.hashCode(this[$top]), dart.hashCode(this[$right]), dart.hashCode(this[$bottom]));
    }
    intersection(other) {
      RectangleOfTL().as(other);
      let x0 = math.max(T, this[$left], other[$left]);
      let x1 = math.min(core.num, dart.notNull(this[$left]) + dart.notNull(this[$width]), dart.notNull(other[$left]) + dart.notNull(other[$width]));
      if (x0 <= x1) {
        let y0 = math.max(T, this[$top], other[$top]);
        let y1 = math.min(core.num, dart.notNull(this[$top]) + dart.notNull(this[$height]), dart.notNull(other[$top]) + dart.notNull(other[$height]));
        if (y0 <= y1) {
          return new (RectangleOfTL()).new(x0, y0, T.as(x1 - x0), T.as(y1 - y0));
        }
      }
      return null;
    }
    intersects(other) {
      return dart.notNull(this[$left]) <= dart.notNull(other[$left]) + dart.notNull(other[$width]) && dart.notNull(other[$left]) <= dart.notNull(this[$left]) + dart.notNull(this[$width]) && dart.notNull(this[$top]) <= dart.notNull(other[$top]) + dart.notNull(other[$height]) && dart.notNull(other[$top]) <= dart.notNull(this[$top]) + dart.notNull(this[$height]);
    }
    boundingBox(other) {
      RectangleOfTL().as(other);
      let right = math.max(core.num, dart.notNull(this[$left]) + dart.notNull(this[$width]), dart.notNull(other[$left]) + dart.notNull(other[$width]));
      let bottom = math.max(core.num, dart.notNull(this[$top]) + dart.notNull(this[$height]), dart.notNull(other[$top]) + dart.notNull(other[$height]));
      let left = math.min(T, this[$left], other[$left]);
      let top = math.min(T, this[$top], other[$top]);
      return new (RectangleOfTL()).new(left, top, T.as(right - left), T.as(bottom - top));
    }
    containsRectangle(another) {
      return dart.notNull(this[$left]) <= dart.notNull(another[$left]) && dart.notNull(this[$left]) + dart.notNull(this[$width]) >= dart.notNull(another[$left]) + dart.notNull(another[$width]) && dart.notNull(this[$top]) <= dart.notNull(another[$top]) && dart.notNull(this[$top]) + dart.notNull(this[$height]) >= dart.notNull(another[$top]) + dart.notNull(another[$height]);
    }
    containsPoint(another) {
      return dart.notNull(another.x) >= dart.notNull(this[$left]) && dart.notNull(another.x) <= dart.notNull(this[$left]) + dart.notNull(this[$width]) && dart.notNull(another.y) >= dart.notNull(this[$top]) && dart.notNull(another.y) <= dart.notNull(this[$top]) + dart.notNull(this[$height]);
    }
    get topLeft() {
      return new (PointOfTL()).new(this[$left], this[$top]);
    }
    get topRight() {
      return new (PointOfTL()).new(T.as(dart.notNull(this[$left]) + dart.notNull(this[$width])), this[$top]);
    }
    get bottomRight() {
      return new (PointOfTL()).new(T.as(dart.notNull(this[$left]) + dart.notNull(this[$width])), T.as(dart.notNull(this[$top]) + dart.notNull(this[$height])));
    }
    get bottomLeft() {
      return new (PointOfTL()).new(this[$left], T.as(dart.notNull(this[$top]) + dart.notNull(this[$height])));
    }
  }
  (_RectangleBase.new = function() {
    ;
  }).prototype = _RectangleBase.prototype;
  dart.addTypeTests(_RectangleBase);
  _RectangleBase.prototype[_is__RectangleBase_default] = true;
  dart.addTypeCaches(_RectangleBase);
  dart.setMethodSignature(_RectangleBase, () => ({
    __proto__: dart.getMethods(_RectangleBase.__proto__),
    intersection: dart.fnType(math.Rectangle$(T), [core.Object]),
    [$intersection]: dart.fnType(math.Rectangle$(T), [core.Object]),
    intersects: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
    [$intersects]: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
    boundingBox: dart.fnType(math.Rectangle$(T), [core.Object]),
    [$boundingBox]: dart.fnType(math.Rectangle$(T), [core.Object]),
    containsRectangle: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
    [$containsRectangle]: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
    containsPoint: dart.fnType(core.bool, [math.Point$(core.num)]),
    [$containsPoint]: dart.fnType(core.bool, [math.Point$(core.num)])
  }));
  dart.setGetterSignature(_RectangleBase, () => ({
    __proto__: dart.getGetters(_RectangleBase.__proto__),
    right: T,
    [$right]: T,
    bottom: T,
    [$bottom]: T,
    topLeft: math.Point$(T),
    [$topLeft]: math.Point$(T),
    topRight: math.Point$(T),
    [$topRight]: math.Point$(T),
    bottomRight: math.Point$(T),
    [$bottomRight]: math.Point$(T),
    bottomLeft: math.Point$(T),
    [$bottomLeft]: math.Point$(T)
  }));
  dart.setLibraryUri(_RectangleBase, L61);
  dart.defineExtensionMethods(_RectangleBase, [
    'toString',
    '_equals',
    'intersection',
    'intersects',
    'boundingBox',
    'containsRectangle',
    'containsPoint'
  ]);
  dart.defineExtensionAccessors(_RectangleBase, [
    'right',
    'bottom',
    'hashCode',
    'topLeft',
    'topRight',
    'bottomRight',
    'bottomLeft'
  ]);
  return _RectangleBase;
});
math._RectangleBase = math._RectangleBase$();
dart.addTypeTests(math._RectangleBase, _is__RectangleBase_default);
const _is_Rectangle_default = Symbol('_is_Rectangle_default');
var left$ = dart.privateName(math, "Rectangle.left");
var top$ = dart.privateName(math, "Rectangle.top");
var width$ = dart.privateName(math, "Rectangle.width");
var height$ = dart.privateName(math, "Rectangle.height");
math.Rectangle$ = dart.generic(T => {
  class Rectangle extends math._RectangleBase$(T) {
    get left() {
      return this[left$];
    }
    set left(value) {
      super.left = value;
    }
    get top() {
      return this[top$];
    }
    set top(value) {
      super.top = value;
    }
    get width() {
      return this[width$];
    }
    set width(value) {
      super.width = value;
    }
    get height() {
      return this[height$];
    }
    set height(value) {
      super.height = value;
    }
    static fromPoints(a, b) {
      let left = math.min(T, a.x, b.x);
      let width = T.as(math.max(T, a.x, b.x) - left);
      let top = math.min(T, a.y, b.y);
      let height = T.as(math.max(T, a.y, b.y) - top);
      return new (math.Rectangle$(T)).new(left, top, width, height);
    }
  }
  (Rectangle.new = function(left, top, width, height) {
    this[left$] = left;
    this[top$] = top;
    this[width$] = T.as(dart.notNull(width) < 0 ? -dart.notNull(width) * 0 : width);
    this[height$] = T.as(dart.notNull(height) < 0 ? -dart.notNull(height) * 0 : height);
    Rectangle.__proto__.new.call(this);
    ;
  }).prototype = Rectangle.prototype;
  dart.addTypeTests(Rectangle);
  Rectangle.prototype[_is_Rectangle_default] = true;
  dart.addTypeCaches(Rectangle);
  dart.setLibraryUri(Rectangle, L61);
  dart.setFieldSignature(Rectangle, () => ({
    __proto__: dart.getFields(Rectangle.__proto__),
    left: dart.finalFieldType(T),
    top: dart.finalFieldType(T),
    width: dart.finalFieldType(T),
    height: dart.finalFieldType(T)
  }));
  dart.defineExtensionAccessors(Rectangle, ['left', 'top', 'width', 'height']);
  return Rectangle;
});
math.Rectangle = math.Rectangle$();
dart.addTypeTests(math.Rectangle, _is_Rectangle_default);
var _width = dart.privateName(math, "_width");
var _height = dart.privateName(math, "_height");
const _is_MutableRectangle_default = Symbol('_is_MutableRectangle_default');
var left$0 = dart.privateName(math, "MutableRectangle.left");
var top$0 = dart.privateName(math, "MutableRectangle.top");
math.MutableRectangle$ = dart.generic(T => {
  class MutableRectangle extends math._RectangleBase$(T) {
    get left() {
      return this[left$0];
    }
    set left(value) {
      this[left$0] = T.as(value);
    }
    get top() {
      return this[top$0];
    }
    set top(value) {
      this[top$0] = T.as(value);
    }
    static fromPoints(a, b) {
      let left = math.min(T, a.x, b.x);
      let width = T.as(math.max(T, a.x, b.x) - left);
      let top = math.min(T, a.y, b.y);
      let height = T.as(math.max(T, a.y, b.y) - top);
      return new (math.MutableRectangle$(T)).new(left, top, width, height);
    }
    get width() {
      return this[_width];
    }
    set width(width) {
      T.as(width);
      if (dart.notNull(width) < 0) width = math._clampToZero(T, width);
      this[_width] = width;
    }
    get height() {
      return this[_height];
    }
    set height(height) {
      T.as(height);
      if (dart.notNull(height) < 0) height = math._clampToZero(T, height);
      this[_height] = height;
    }
  }
  (MutableRectangle.new = function(left, top, width, height) {
    this[left$0] = left;
    this[top$0] = top;
    this[_width] = dart.notNull(width) < 0 ? math._clampToZero(T, width) : width;
    this[_height] = dart.notNull(height) < 0 ? math._clampToZero(T, height) : height;
    MutableRectangle.__proto__.new.call(this);
    ;
  }).prototype = MutableRectangle.prototype;
  dart.addTypeTests(MutableRectangle);
  MutableRectangle.prototype[_is_MutableRectangle_default] = true;
  dart.addTypeCaches(MutableRectangle);
  MutableRectangle[dart.implements] = () => [math.Rectangle$(T)];
  dart.setGetterSignature(MutableRectangle, () => ({
    __proto__: dart.getGetters(MutableRectangle.__proto__),
    width: T,
    [$width]: T,
    height: T,
    [$height]: T
  }));
  dart.setSetterSignature(MutableRectangle, () => ({
    __proto__: dart.getSetters(MutableRectangle.__proto__),
    width: core.Object,
    [$width]: core.Object,
    height: core.Object,
    [$height]: core.Object
  }));
  dart.setLibraryUri(MutableRectangle, L61);
  dart.setFieldSignature(MutableRectangle, () => ({
    __proto__: dart.getFields(MutableRectangle.__proto__),
    left: dart.fieldType(T),
    top: dart.fieldType(T),
    [_width]: dart.fieldType(T),
    [_height]: dart.fieldType(T)
  }));
  dart.defineExtensionAccessors(MutableRectangle, ['left', 'top', 'width', 'height']);
  return MutableRectangle;
});
math.MutableRectangle = math.MutableRectangle$();
dart.addTypeTests(math.MutableRectangle, _is_MutableRectangle_default);
math.min = function min(T, a, b) {
  if (a == null) dart.argumentError(a);
  if (b == null) dart.argumentError(b);
  return Math.min(a, b);
};
math.max = function max(T, a, b) {
  if (a == null) dart.argumentError(a);
  if (b == null) dart.argumentError(b);
  return Math.max(a, b);
};
math.atan2 = function atan2(a, b) {
  if (a == null) dart.argumentError(a);
  if (b == null) dart.argumentError(b);
  return Math.atan2(a, b);
};
math.pow = function pow(x, exponent) {
  if (x == null) dart.argumentError(x);
  if (exponent == null) dart.argumentError(exponent);
  return Math.pow(x, exponent);
};
math.sin = function sin(radians) {
  if (radians == null) dart.argumentError(radians);
  return Math.sin(radians);
};
math.cos = function cos(radians) {
  if (radians == null) dart.argumentError(radians);
  return Math.cos(radians);
};
math.tan = function tan(radians) {
  if (radians == null) dart.argumentError(radians);
  return Math.tan(radians);
};
math.acos = function acos(x) {
  if (x == null) dart.argumentError(x);
  return Math.acos(x);
};
math.asin = function asin(x) {
  if (x == null) dart.argumentError(x);
  return Math.asin(x);
};
math.atan = function atan(x) {
  if (x == null) dart.argumentError(x);
  return Math.atan(x);
};
math.sqrt = function sqrt(x) {
  if (x == null) dart.argumentError(x);
  return Math.sqrt(x);
};
math.exp = function exp(x) {
  if (x == null) dart.argumentError(x);
  return Math.exp(x);
};
math.log = function log$(x) {
  if (x == null) dart.argumentError(x);
  return Math.log(x);
};
math._clampToZero = function _clampToZero(T, value) {
  if (!(dart.notNull(value) < 0)) dart.assertFailed(null, L63, 247, 10, "value < 0");
  return T.as(-dart.notNull(value) * 0);
};
dart.defineLazy(math, {
  /*math._POW2_32*/get _POW2_32() {
    return 4294967296.0;
  },
  /*math.e*/get e() {
    return 2.718281828459045;
  },
  /*math.ln10*/get ln10() {
    return 2.302585092994046;
  },
  /*math.ln2*/get ln2() {
    return 0.6931471805599453;
  },
  /*math.log2e*/get log2e() {
    return 1.4426950408889634;
  },
  /*math.log10e*/get log10e() {
    return 0.4342944819032518;
  },
  /*math.pi*/get pi() {
    return 3.141592653589793;
  },
  /*math.sqrt1_2*/get sqrt1_2() {
    return 0.7071067811865476;
  },
  /*math.sqrt2*/get sqrt2() {
    return 1.4142135623730951;
  }
}, true);
typed_data.ByteBuffer = class ByteBuffer extends core.Object {};
(typed_data.ByteBuffer.new = function() {
  ;
}).prototype = typed_data.ByteBuffer.prototype;
dart.addTypeTests(typed_data.ByteBuffer);
dart.addTypeCaches(typed_data.ByteBuffer);
dart.setLibraryUri(typed_data.ByteBuffer, L28);
typed_data.TypedData = class TypedData extends core.Object {};
(typed_data.TypedData.new = function() {
  ;
}).prototype = typed_data.TypedData.prototype;
dart.addTypeTests(typed_data.TypedData);
dart.addTypeCaches(typed_data.TypedData);
dart.setLibraryUri(typed_data.TypedData, L28);
typed_data._TypedIntList = class _TypedIntList extends typed_data.TypedData {};
(typed_data._TypedIntList.new = function() {
  ;
}).prototype = typed_data._TypedIntList.prototype;
dart.addTypeTests(typed_data._TypedIntList);
dart.addTypeCaches(typed_data._TypedIntList);
dart.setLibraryUri(typed_data._TypedIntList, L28);
typed_data._TypedFloatList = class _TypedFloatList extends typed_data.TypedData {};
(typed_data._TypedFloatList.new = function() {
  ;
}).prototype = typed_data._TypedFloatList.prototype;
dart.addTypeTests(typed_data._TypedFloatList);
dart.addTypeCaches(typed_data._TypedFloatList);
dart.setLibraryUri(typed_data._TypedFloatList, L28);
var _littleEndian = dart.privateName(typed_data, "_littleEndian");
var C214;
typed_data.Endian = class Endian extends core.Object {
  get [_littleEndian]() {
    return this[_littleEndian$];
  }
  set [_littleEndian](value) {
    super[_littleEndian] = value;
  }
};
(typed_data.Endian.__ = function(_littleEndian) {
  this[_littleEndian$] = _littleEndian;
  ;
}).prototype = typed_data.Endian.prototype;
dart.addTypeTests(typed_data.Endian);
dart.addTypeCaches(typed_data.Endian);
const _littleEndian$ = Endian__littleEndian;
dart.setLibraryUri(typed_data.Endian, L28);
dart.setFieldSignature(typed_data.Endian, () => ({
  __proto__: dart.getFields(typed_data.Endian.__proto__),
  [_littleEndian]: dart.finalFieldType(core.bool)
}));
dart.defineLazy(typed_data.Endian, {
  /*typed_data.Endian.big*/get big() {
    return C37 || CT.C37;
  },
  /*typed_data.Endian.little*/get little() {
    return C214 || CT.C214;
  },
  /*typed_data.Endian.host*/get host() {
    return typed_data.ByteData.view(_native_typed_data.NativeUint16List.fromList(JSArrayOfintL().of([1]))[$buffer])[$getInt8](0) === 1 ? typed_data.Endian.little : typed_data.Endian.big;
  }
}, true);
typed_data.ByteData = class ByteData extends core.Object {
  static view(buffer, offsetInBytes = 0, length = null) {
    return buffer[$asByteData](offsetInBytes, length);
  }
  static sublistView(data, start = 0, end = null) {
    let elementSize = data[$elementSizeInBytes];
    end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
    return data[$buffer][$asByteData](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize));
  }
};
(typed_data.ByteData[dart.mixinNew] = function() {
}).prototype = typed_data.ByteData.prototype;
dart.addTypeTests(typed_data.ByteData);
dart.addTypeCaches(typed_data.ByteData);
typed_data.ByteData[dart.implements] = () => [typed_data.TypedData];
dart.setLibraryUri(typed_data.ByteData, L28);
typed_data.Int8List = class Int8List extends core.Object {
  static view(buffer, offsetInBytes = 0, length = null) {
    return buffer[$asInt8List](offsetInBytes, length);
  }
  static sublistView(data, start = 0, end = null) {
    let elementSize = data[$elementSizeInBytes];
    end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
    return data[$buffer][$asInt8List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize));
  }
  [Symbol.iterator]() {
    return new dart.JsIterator(this[$iterator]);
  }
};
(typed_data.Int8List[dart.mixinNew] = function() {
}).prototype = typed_data.Int8List.prototype;
typed_data.Int8List.prototype[dart.isList] = true;
dart.addTypeTests(typed_data.Int8List);
dart.addTypeCaches(typed_data.Int8List);
typed_data.Int8List[dart.implements] = () => [core.List$(core.int), typed_data._TypedIntList];
dart.setLibraryUri(typed_data.Int8List, L28);
dart.defineLazy(typed_data.Int8List, {
  /*typed_data.Int8List.bytesPerElement*/get bytesPerElement() {
    return 1;
  }
}, true);
typed_data.Uint8List = class Uint8List extends core.Object {
  static view(buffer, offsetInBytes = 0, length = null) {
    return buffer[$asUint8List](offsetInBytes, length);
  }
  static sublistView(data, start = 0, end = null) {
    let elementSize = data[$elementSizeInBytes];
    end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
    return data[$buffer][$asUint8List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize));
  }
  [Symbol.iterator]() {
    return new dart.JsIterator(this[$iterator]);
  }
};
(typed_data.Uint8List[dart.mixinNew] = function() {
}).prototype = typed_data.Uint8List.prototype;
typed_data.Uint8List.prototype[dart.isList] = true;
dart.addTypeTests(typed_data.Uint8List);
dart.addTypeCaches(typed_data.Uint8List);
typed_data.Uint8List[dart.implements] = () => [core.List$(core.int), typed_data._TypedIntList];
dart.setLibraryUri(typed_data.Uint8List, L28);
dart.defineLazy(typed_data.Uint8List, {
  /*typed_data.Uint8List.bytesPerElement*/get bytesPerElement() {
    return 1;
  }
}, true);
typed_data.Uint8ClampedList = class Uint8ClampedList extends core.Object {
  static view(buffer, offsetInBytes = 0, length = null) {
    return buffer[$asUint8ClampedList](offsetInBytes, length);
  }
  static sublistView(data, start = 0, end = null) {
    let elementSize = data[$elementSizeInBytes];
    end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
    return data[$buffer][$asUint8ClampedList](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize));
  }
  [Symbol.iterator]() {
    return new dart.JsIterator(this[$iterator]);
  }
};
(typed_data.Uint8ClampedList[dart.mixinNew] = function() {
}).prototype = typed_data.Uint8ClampedList.prototype;
typed_data.Uint8ClampedList.prototype[dart.isList] = true;
dart.addTypeTests(typed_data.Uint8ClampedList);
dart.addTypeCaches(typed_data.Uint8ClampedList);
typed_data.Uint8ClampedList[dart.implements] = () => [core.List$(core.int), typed_data._TypedIntList];
dart.setLibraryUri(typed_data.Uint8ClampedList, L28);
dart.defineLazy(typed_data.Uint8ClampedList, {
  /*typed_data.Uint8ClampedList.bytesPerElement*/get bytesPerElement() {
    return 1;
  }
}, true);
typed_data.Int16List = class Int16List extends core.Object {
  static view(buffer, offsetInBytes = 0, length = null) {
    return buffer[$asInt16List](offsetInBytes, length);
  }
  static sublistView(data, start = 0, end = null) {
    let elementSize = data[$elementSizeInBytes];
    end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
    let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
    if (byteLength[$modulo](2) !== 0) {
      dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(2)));
    }
    return data[$buffer][$asInt16List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 2)[$truncate]());
  }
  [Symbol.iterator]() {
    return new dart.JsIterator(this[$iterator]);
  }
};
(typed_data.Int16List[dart.mixinNew] = function() {
}).prototype = typed_data.Int16List.prototype;
typed_data.Int16List.prototype[dart.isList] = true;
dart.addTypeTests(typed_data.Int16List);
dart.addTypeCaches(typed_data.Int16List);
typed_data.Int16List[dart.implements] = () => [core.List$(core.int), typed_data._TypedIntList];
dart.setLibraryUri(typed_data.Int16List, L28);
dart.defineLazy(typed_data.Int16List, {
  /*typed_data.Int16List.bytesPerElement*/get bytesPerElement() {
    return 2;
  }
}, true);
typed_data.Uint16List = class Uint16List extends core.Object {
  static view(buffer, offsetInBytes = 0, length = null) {
    return buffer[$asUint16List](offsetInBytes, length);
  }
  static sublistView(data, start = 0, end = null) {
    let elementSize = data[$elementSizeInBytes];
    end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
    let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
    if (byteLength[$modulo](2) !== 0) {
      dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(2)));
    }
    return data[$buffer][$asUint16List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 2)[$truncate]());
  }
  [Symbol.iterator]() {
    return new dart.JsIterator(this[$iterator]);
  }
};
(typed_data.Uint16List[dart.mixinNew] = function() {
}).prototype = typed_data.Uint16List.prototype;
typed_data.Uint16List.prototype[dart.isList] = true;
dart.addTypeTests(typed_data.Uint16List);
dart.addTypeCaches(typed_data.Uint16List);
typed_data.Uint16List[dart.implements] = () => [core.List$(core.int), typed_data._TypedIntList];
dart.setLibraryUri(typed_data.Uint16List, L28);
dart.defineLazy(typed_data.Uint16List, {
  /*typed_data.Uint16List.bytesPerElement*/get bytesPerElement() {
    return 2;
  }
}, true);
typed_data.Int32List = class Int32List extends core.Object {
  static view(buffer, offsetInBytes = 0, length = null) {
    return buffer[$asInt32List](offsetInBytes, length);
  }
  static sublistView(data, start = 0, end = null) {
    let elementSize = data[$elementSizeInBytes];
    end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
    let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
    if (byteLength[$modulo](4) !== 0) {
      dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(4)));
    }
    return data[$buffer][$asInt32List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 4)[$truncate]());
  }
  [Symbol.iterator]() {
    return new dart.JsIterator(this[$iterator]);
  }
};
(typed_data.Int32List[dart.mixinNew] = function() {
}).prototype = typed_data.Int32List.prototype;
typed_data.Int32List.prototype[dart.isList] = true;
dart.addTypeTests(typed_data.Int32List);
dart.addTypeCaches(typed_data.Int32List);
typed_data.Int32List[dart.implements] = () => [core.List$(core.int), typed_data._TypedIntList];
dart.setLibraryUri(typed_data.Int32List, L28);
dart.defineLazy(typed_data.Int32List, {
  /*typed_data.Int32List.bytesPerElement*/get bytesPerElement() {
    return 4;
  }
}, true);
typed_data.Uint32List = class Uint32List extends core.Object {
  static view(buffer, offsetInBytes = 0, length = null) {
    return buffer[$asUint32List](offsetInBytes, length);
  }
  static sublistView(data, start = 0, end = null) {
    let elementSize = data[$elementSizeInBytes];
    end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
    let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
    if (byteLength[$modulo](4) !== 0) {
      dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(4)));
    }
    return data[$buffer][$asUint32List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 4)[$truncate]());
  }
  [Symbol.iterator]() {
    return new dart.JsIterator(this[$iterator]);
  }
};
(typed_data.Uint32List[dart.mixinNew] = function() {
}).prototype = typed_data.Uint32List.prototype;
typed_data.Uint32List.prototype[dart.isList] = true;
dart.addTypeTests(typed_data.Uint32List);
dart.addTypeCaches(typed_data.Uint32List);
typed_data.Uint32List[dart.implements] = () => [core.List$(core.int), typed_data._TypedIntList];
dart.setLibraryUri(typed_data.Uint32List, L28);
dart.defineLazy(typed_data.Uint32List, {
  /*typed_data.Uint32List.bytesPerElement*/get bytesPerElement() {
    return 4;
  }
}, true);
typed_data.Int64List = class Int64List extends core.Object {
  static new(length) {
    dart.throw(new core.UnsupportedError.new("Int64List not supported on the web."));
  }
  static fromList(elements) {
    dart.throw(new core.UnsupportedError.new("Int64List not supported on the web."));
  }
  static view(buffer, offsetInBytes = 0, length = null) {
    return buffer[$asInt64List](offsetInBytes, length);
  }
  static sublistView(data, start = 0, end = null) {
    let elementSize = data[$elementSizeInBytes];
    end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
    let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
    if (byteLength[$modulo](8) !== 0) {
      dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(8)));
    }
    return data[$buffer][$asInt64List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 8)[$truncate]());
  }
  [Symbol.iterator]() {
    return new dart.JsIterator(this[$iterator]);
  }
};
(typed_data.Int64List[dart.mixinNew] = function() {
}).prototype = typed_data.Int64List.prototype;
typed_data.Int64List.prototype[dart.isList] = true;
dart.addTypeTests(typed_data.Int64List);
dart.addTypeCaches(typed_data.Int64List);
typed_data.Int64List[dart.implements] = () => [core.List$(core.int), typed_data._TypedIntList];
dart.setLibraryUri(typed_data.Int64List, L28);
dart.defineLazy(typed_data.Int64List, {
  /*typed_data.Int64List.bytesPerElement*/get bytesPerElement() {
    return 8;
  }
}, true);
typed_data.Uint64List = class Uint64List extends core.Object {
  static new(length) {
    dart.throw(new core.UnsupportedError.new("Uint64List not supported on the web."));
  }
  static fromList(elements) {
    dart.throw(new core.UnsupportedError.new("Uint64List not supported on the web."));
  }
  static view(buffer, offsetInBytes = 0, length = null) {
    return buffer[$asUint64List](offsetInBytes, length);
  }
  static sublistView(data, start = 0, end = null) {
    let elementSize = data[$elementSizeInBytes];
    end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
    let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
    if (byteLength[$modulo](8) !== 0) {
      dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(8)));
    }
    return data[$buffer][$asUint64List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 8)[$truncate]());
  }
  [Symbol.iterator]() {
    return new dart.JsIterator(this[$iterator]);
  }
};
(typed_data.Uint64List[dart.mixinNew] = function() {
}).prototype = typed_data.Uint64List.prototype;
typed_data.Uint64List.prototype[dart.isList] = true;
dart.addTypeTests(typed_data.Uint64List);
dart.addTypeCaches(typed_data.Uint64List);
typed_data.Uint64List[dart.implements] = () => [core.List$(core.int), typed_data._TypedIntList];
dart.setLibraryUri(typed_data.Uint64List, L28);
dart.defineLazy(typed_data.Uint64List, {
  /*typed_data.Uint64List.bytesPerElement*/get bytesPerElement() {
    return 8;
  }
}, true);
typed_data.Float32List = class Float32List extends core.Object {
  static view(buffer, offsetInBytes = 0, length = null) {
    return buffer[$asFloat32List](offsetInBytes, length);
  }
  static sublistView(data, start = 0, end = null) {
    let elementSize = data[$elementSizeInBytes];
    end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
    let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
    if (byteLength[$modulo](4) !== 0) {
      dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(4)));
    }
    return data[$buffer][$asFloat32List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 4)[$truncate]());
  }
  [Symbol.iterator]() {
    return new dart.JsIterator(this[$iterator]);
  }
};
(typed_data.Float32List[dart.mixinNew] = function() {
}).prototype = typed_data.Float32List.prototype;
typed_data.Float32List.prototype[dart.isList] = true;
dart.addTypeTests(typed_data.Float32List);
dart.addTypeCaches(typed_data.Float32List);
typed_data.Float32List[dart.implements] = () => [core.List$(core.double), typed_data._TypedFloatList];
dart.setLibraryUri(typed_data.Float32List, L28);
dart.defineLazy(typed_data.Float32List, {
  /*typed_data.Float32List.bytesPerElement*/get bytesPerElement() {
    return 4;
  }
}, true);
typed_data.Float64List = class Float64List extends core.Object {
  static view(buffer, offsetInBytes = 0, length = null) {
    return buffer[$asFloat64List](offsetInBytes, length);
  }
  static sublistView(data, start = 0, end = null) {
    let elementSize = data[$elementSizeInBytes];
    end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
    let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
    if (byteLength[$modulo](8) !== 0) {
      dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(8)));
    }
    return data[$buffer][$asFloat64List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 8)[$truncate]());
  }
  [Symbol.iterator]() {
    return new dart.JsIterator(this[$iterator]);
  }
};
(typed_data.Float64List[dart.mixinNew] = function() {
}).prototype = typed_data.Float64List.prototype;
typed_data.Float64List.prototype[dart.isList] = true;
dart.addTypeTests(typed_data.Float64List);
dart.addTypeCaches(typed_data.Float64List);
typed_data.Float64List[dart.implements] = () => [core.List$(core.double), typed_data._TypedFloatList];
dart.setLibraryUri(typed_data.Float64List, L28);
dart.defineLazy(typed_data.Float64List, {
  /*typed_data.Float64List.bytesPerElement*/get bytesPerElement() {
    return 8;
  }
}, true);
typed_data.Float32x4List = class Float32x4List extends core.Object {
  static view(buffer, offsetInBytes = 0, length = null) {
    return buffer[$asFloat32x4List](offsetInBytes, length);
  }
  static sublistView(data, start = 0, end = null) {
    let elementSize = data[$elementSizeInBytes];
    end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
    let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
    if (byteLength[$modulo](16) !== 0) {
      dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(16)));
    }
    return data[$buffer][$asFloat32x4List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 16)[$truncate]());
  }
  [Symbol.iterator]() {
    return new dart.JsIterator(this[$iterator]);
  }
};
(typed_data.Float32x4List[dart.mixinNew] = function() {
}).prototype = typed_data.Float32x4List.prototype;
typed_data.Float32x4List.prototype[dart.isList] = true;
dart.addTypeTests(typed_data.Float32x4List);
dart.addTypeCaches(typed_data.Float32x4List);
typed_data.Float32x4List[dart.implements] = () => [core.List$(typed_data.Float32x4), typed_data.TypedData];
dart.setLibraryUri(typed_data.Float32x4List, L28);
dart.defineLazy(typed_data.Float32x4List, {
  /*typed_data.Float32x4List.bytesPerElement*/get bytesPerElement() {
    return 16;
  }
}, true);
typed_data.Int32x4List = class Int32x4List extends core.Object {
  static view(buffer, offsetInBytes = 0, length = null) {
    return buffer[$asInt32x4List](offsetInBytes, length);
  }
  static sublistView(data, start = 0, end = null) {
    let elementSize = data[$elementSizeInBytes];
    end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
    let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
    if (byteLength[$modulo](16) !== 0) {
      dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(16)));
    }
    return data[$buffer][$asInt32x4List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 16)[$truncate]());
  }
  [Symbol.iterator]() {
    return new dart.JsIterator(this[$iterator]);
  }
};
(typed_data.Int32x4List[dart.mixinNew] = function() {
}).prototype = typed_data.Int32x4List.prototype;
typed_data.Int32x4List.prototype[dart.isList] = true;
dart.addTypeTests(typed_data.Int32x4List);
dart.addTypeCaches(typed_data.Int32x4List);
typed_data.Int32x4List[dart.implements] = () => [core.List$(typed_data.Int32x4), typed_data.TypedData];
dart.setLibraryUri(typed_data.Int32x4List, L28);
dart.defineLazy(typed_data.Int32x4List, {
  /*typed_data.Int32x4List.bytesPerElement*/get bytesPerElement() {
    return 16;
  }
}, true);
typed_data.Float64x2List = class Float64x2List extends core.Object {
  static view(buffer, offsetInBytes = 0, length = null) {
    return buffer[$asFloat64x2List](offsetInBytes, length);
  }
  static sublistView(data, start = 0, end = null) {
    let elementSize = data[$elementSizeInBytes];
    end = core.RangeError.checkValidRange(start, end, (dart.notNull(data[$lengthInBytes]) / dart.notNull(elementSize))[$truncate]());
    let byteLength = (dart.notNull(end) - dart.notNull(start)) * dart.notNull(elementSize);
    if (byteLength[$modulo](16) !== 0) {
      dart.throw(new core.ArgumentError.new("The number of bytes to view must be a multiple of " + dart.str(16)));
    }
    return data[$buffer][$asFloat64x2List](dart.notNull(data[$offsetInBytes]) + dart.notNull(start) * dart.notNull(elementSize), (byteLength / 16)[$truncate]());
  }
  [Symbol.iterator]() {
    return new dart.JsIterator(this[$iterator]);
  }
};
(typed_data.Float64x2List[dart.mixinNew] = function() {
}).prototype = typed_data.Float64x2List.prototype;
typed_data.Float64x2List.prototype[dart.isList] = true;
dart.addTypeTests(typed_data.Float64x2List);
dart.addTypeCaches(typed_data.Float64x2List);
typed_data.Float64x2List[dart.implements] = () => [core.List$(typed_data.Float64x2), typed_data.TypedData];
dart.setLibraryUri(typed_data.Float64x2List, L28);
dart.defineLazy(typed_data.Float64x2List, {
  /*typed_data.Float64x2List.bytesPerElement*/get bytesPerElement() {
    return 16;
  }
}, true);
var _data$ = dart.privateName(typed_data, "_data");
typed_data.UnmodifiableByteBufferView = class UnmodifiableByteBufferView extends core.Object {
  get lengthInBytes() {
    return this[_data$][$lengthInBytes];
  }
  asUint8List(offsetInBytes = 0, length = null) {
    return new typed_data.UnmodifiableUint8ListView.new(this[_data$][$asUint8List](offsetInBytes, length));
  }
  asInt8List(offsetInBytes = 0, length = null) {
    return new typed_data.UnmodifiableInt8ListView.new(this[_data$][$asInt8List](offsetInBytes, length));
  }
  asUint8ClampedList(offsetInBytes = 0, length = null) {
    return new typed_data.UnmodifiableUint8ClampedListView.new(this[_data$][$asUint8ClampedList](offsetInBytes, length));
  }
  asUint16List(offsetInBytes = 0, length = null) {
    return new typed_data.UnmodifiableUint16ListView.new(this[_data$][$asUint16List](offsetInBytes, length));
  }
  asInt16List(offsetInBytes = 0, length = null) {
    return new typed_data.UnmodifiableInt16ListView.new(this[_data$][$asInt16List](offsetInBytes, length));
  }
  asUint32List(offsetInBytes = 0, length = null) {
    return new typed_data.UnmodifiableUint32ListView.new(this[_data$][$asUint32List](offsetInBytes, length));
  }
  asInt32List(offsetInBytes = 0, length = null) {
    return new typed_data.UnmodifiableInt32ListView.new(this[_data$][$asInt32List](offsetInBytes, length));
  }
  asUint64List(offsetInBytes = 0, length = null) {
    return new typed_data.UnmodifiableUint64ListView.new(this[_data$][$asUint64List](offsetInBytes, length));
  }
  asInt64List(offsetInBytes = 0, length = null) {
    return new typed_data.UnmodifiableInt64ListView.new(this[_data$][$asInt64List](offsetInBytes, length));
  }
  asInt32x4List(offsetInBytes = 0, length = null) {
    return new typed_data.UnmodifiableInt32x4ListView.new(this[_data$][$asInt32x4List](offsetInBytes, length));
  }
  asFloat32List(offsetInBytes = 0, length = null) {
    return new typed_data.UnmodifiableFloat32ListView.new(this[_data$][$asFloat32List](offsetInBytes, length));
  }
  asFloat64List(offsetInBytes = 0, length = null) {
    return new typed_data.UnmodifiableFloat64ListView.new(this[_data$][$asFloat64List](offsetInBytes, length));
  }
  asFloat32x4List(offsetInBytes = 0, length = null) {
    return new typed_data.UnmodifiableFloat32x4ListView.new(this[_data$][$asFloat32x4List](offsetInBytes, length));
  }
  asFloat64x2List(offsetInBytes = 0, length = null) {
    return new typed_data.UnmodifiableFloat64x2ListView.new(this[_data$][$asFloat64x2List](offsetInBytes, length));
  }
  asByteData(offsetInBytes = 0, length = null) {
    return new typed_data.UnmodifiableByteDataView.new(this[_data$][$asByteData](offsetInBytes, length));
  }
};
(typed_data.UnmodifiableByteBufferView.new = function(data) {
  this[_data$] = data;
  ;
}).prototype = typed_data.UnmodifiableByteBufferView.prototype;
dart.addTypeTests(typed_data.UnmodifiableByteBufferView);
dart.addTypeCaches(typed_data.UnmodifiableByteBufferView);
typed_data.UnmodifiableByteBufferView[dart.implements] = () => [typed_data.ByteBuffer];
dart.setMethodSignature(typed_data.UnmodifiableByteBufferView, () => ({
  __proto__: dart.getMethods(typed_data.UnmodifiableByteBufferView.__proto__),
  asUint8List: dart.fnType(typed_data.Uint8List, [], [core.int, core.int]),
  [$asUint8List]: dart.fnType(typed_data.Uint8List, [], [core.int, core.int]),
  asInt8List: dart.fnType(typed_data.Int8List, [], [core.int, core.int]),
  [$asInt8List]: dart.fnType(typed_data.Int8List, [], [core.int, core.int]),
  asUint8ClampedList: dart.fnType(typed_data.Uint8ClampedList, [], [core.int, core.int]),
  [$asUint8ClampedList]: dart.fnType(typed_data.Uint8ClampedList, [], [core.int, core.int]),
  asUint16List: dart.fnType(typed_data.Uint16List, [], [core.int, core.int]),
  [$asUint16List]: dart.fnType(typed_data.Uint16List, [], [core.int, core.int]),
  asInt16List: dart.fnType(typed_data.Int16List, [], [core.int, core.int]),
  [$asInt16List]: dart.fnType(typed_data.Int16List, [], [core.int, core.int]),
  asUint32List: dart.fnType(typed_data.Uint32List, [], [core.int, core.int]),
  [$asUint32List]: dart.fnType(typed_data.Uint32List, [], [core.int, core.int]),
  asInt32List: dart.fnType(typed_data.Int32List, [], [core.int, core.int]),
  [$asInt32List]: dart.fnType(typed_data.Int32List, [], [core.int, core.int]),
  asUint64List: dart.fnType(typed_data.Uint64List, [], [core.int, core.int]),
  [$asUint64List]: dart.fnType(typed_data.Uint64List, [], [core.int, core.int]),
  asInt64List: dart.fnType(typed_data.Int64List, [], [core.int, core.int]),
  [$asInt64List]: dart.fnType(typed_data.Int64List, [], [core.int, core.int]),
  asInt32x4List: dart.fnType(typed_data.Int32x4List, [], [core.int, core.int]),
  [$asInt32x4List]: dart.fnType(typed_data.Int32x4List, [], [core.int, core.int]),
  asFloat32List: dart.fnType(typed_data.Float32List, [], [core.int, core.int]),
  [$asFloat32List]: dart.fnType(typed_data.Float32List, [], [core.int, core.int]),
  asFloat64List: dart.fnType(typed_data.Float64List, [], [core.int, core.int]),
  [$asFloat64List]: dart.fnType(typed_data.Float64List, [], [core.int, core.int]),
  asFloat32x4List: dart.fnType(typed_data.Float32x4List, [], [core.int, core.int]),
  [$asFloat32x4List]: dart.fnType(typed_data.Float32x4List, [], [core.int, core.int]),
  asFloat64x2List: dart.fnType(typed_data.Float64x2List, [], [core.int, core.int]),
  [$asFloat64x2List]: dart.fnType(typed_data.Float64x2List, [], [core.int, core.int]),
  asByteData: dart.fnType(typed_data.ByteData, [], [core.int, core.int]),
  [$asByteData]: dart.fnType(typed_data.ByteData, [], [core.int, core.int])
}));
dart.setGetterSignature(typed_data.UnmodifiableByteBufferView, () => ({
  __proto__: dart.getGetters(typed_data.UnmodifiableByteBufferView.__proto__),
  lengthInBytes: core.int,
  [$lengthInBytes]: core.int
}));
dart.setLibraryUri(typed_data.UnmodifiableByteBufferView, L28);
dart.setFieldSignature(typed_data.UnmodifiableByteBufferView, () => ({
  __proto__: dart.getFields(typed_data.UnmodifiableByteBufferView.__proto__),
  [_data$]: dart.finalFieldType(typed_data.ByteBuffer)
}));
dart.defineExtensionMethods(typed_data.UnmodifiableByteBufferView, [
  'asUint8List',
  'asInt8List',
  'asUint8ClampedList',
  'asUint16List',
  'asInt16List',
  'asUint32List',
  'asInt32List',
  'asUint64List',
  'asInt64List',
  'asInt32x4List',
  'asFloat32List',
  'asFloat64List',
  'asFloat32x4List',
  'asFloat64x2List',
  'asByteData'
]);
dart.defineExtensionAccessors(typed_data.UnmodifiableByteBufferView, ['lengthInBytes']);
var _unsupported$ = dart.privateName(typed_data, "_unsupported");
typed_data.UnmodifiableByteDataView = class UnmodifiableByteDataView extends core.Object {
  getInt8(byteOffset) {
    return this[_data$][$getInt8](byteOffset);
  }
  setInt8(byteOffset, value) {
    return this[_unsupported$]();
  }
  getUint8(byteOffset) {
    return this[_data$][$getUint8](byteOffset);
  }
  setUint8(byteOffset, value) {
    return this[_unsupported$]();
  }
  getInt16(byteOffset, endian = C37 || CT.C37) {
    return this[_data$][$getInt16](byteOffset, endian);
  }
  setInt16(byteOffset, value, endian = C37 || CT.C37) {
    return this[_unsupported$]();
  }
  getUint16(byteOffset, endian = C37 || CT.C37) {
    return this[_data$][$getUint16](byteOffset, endian);
  }
  setUint16(byteOffset, value, endian = C37 || CT.C37) {
    return this[_unsupported$]();
  }
  getInt32(byteOffset, endian = C37 || CT.C37) {
    return this[_data$][$getInt32](byteOffset, endian);
  }
  setInt32(byteOffset, value, endian = C37 || CT.C37) {
    return this[_unsupported$]();
  }
  getUint32(byteOffset, endian = C37 || CT.C37) {
    return this[_data$][$getUint32](byteOffset, endian);
  }
  setUint32(byteOffset, value, endian = C37 || CT.C37) {
    return this[_unsupported$]();
  }
  getInt64(byteOffset, endian = C37 || CT.C37) {
    return this[_data$][$getInt64](byteOffset, endian);
  }
  setInt64(byteOffset, value, endian = C37 || CT.C37) {
    return this[_unsupported$]();
  }
  getUint64(byteOffset, endian = C37 || CT.C37) {
    return this[_data$][$getUint64](byteOffset, endian);
  }
  setUint64(byteOffset, value, endian = C37 || CT.C37) {
    return this[_unsupported$]();
  }
  getFloat32(byteOffset, endian = C37 || CT.C37) {
    return this[_data$][$getFloat32](byteOffset, endian);
  }
  setFloat32(byteOffset, value, endian = C37 || CT.C37) {
    return this[_unsupported$]();
  }
  getFloat64(byteOffset, endian = C37 || CT.C37) {
    return this[_data$][$getFloat64](byteOffset, endian);
  }
  setFloat64(byteOffset, value, endian = C37 || CT.C37) {
    return this[_unsupported$]();
  }
  get elementSizeInBytes() {
    return this[_data$][$elementSizeInBytes];
  }
  get offsetInBytes() {
    return this[_data$][$offsetInBytes];
  }
  get lengthInBytes() {
    return this[_data$][$lengthInBytes];
  }
  get buffer() {
    return new typed_data.UnmodifiableByteBufferView.new(this[_data$][$buffer]);
  }
  [_unsupported$]() {
    dart.throw(new core.UnsupportedError.new("An UnmodifiableByteDataView may not be modified"));
  }
};
(typed_data.UnmodifiableByteDataView.new = function(data) {
  this[_data$] = data;
  ;
}).prototype = typed_data.UnmodifiableByteDataView.prototype;
dart.addTypeTests(typed_data.UnmodifiableByteDataView);
dart.addTypeCaches(typed_data.UnmodifiableByteDataView);
typed_data.UnmodifiableByteDataView[dart.implements] = () => [typed_data.ByteData];
dart.setMethodSignature(typed_data.UnmodifiableByteDataView, () => ({
  __proto__: dart.getMethods(typed_data.UnmodifiableByteDataView.__proto__),
  getInt8: dart.fnType(core.int, [core.int]),
  [$getInt8]: dart.fnType(core.int, [core.int]),
  setInt8: dart.fnType(dart.void, [core.int, core.int]),
  [$setInt8]: dart.fnType(dart.void, [core.int, core.int]),
  getUint8: dart.fnType(core.int, [core.int]),
  [$getUint8]: dart.fnType(core.int, [core.int]),
  setUint8: dart.fnType(dart.void, [core.int, core.int]),
  [$setUint8]: dart.fnType(dart.void, [core.int, core.int]),
  getInt16: dart.fnType(core.int, [core.int], [typed_data.Endian]),
  [$getInt16]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
  setInt16: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
  [$setInt16]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
  getUint16: dart.fnType(core.int, [core.int], [typed_data.Endian]),
  [$getUint16]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
  setUint16: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
  [$setUint16]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
  getInt32: dart.fnType(core.int, [core.int], [typed_data.Endian]),
  [$getInt32]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
  setInt32: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
  [$setInt32]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
  getUint32: dart.fnType(core.int, [core.int], [typed_data.Endian]),
  [$getUint32]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
  setUint32: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
  [$setUint32]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
  getInt64: dart.fnType(core.int, [core.int], [typed_data.Endian]),
  [$getInt64]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
  setInt64: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
  [$setInt64]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
  getUint64: dart.fnType(core.int, [core.int], [typed_data.Endian]),
  [$getUint64]: dart.fnType(core.int, [core.int], [typed_data.Endian]),
  setUint64: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
  [$setUint64]: dart.fnType(dart.void, [core.int, core.int], [typed_data.Endian]),
  getFloat32: dart.fnType(core.double, [core.int], [typed_data.Endian]),
  [$getFloat32]: dart.fnType(core.double, [core.int], [typed_data.Endian]),
  setFloat32: dart.fnType(dart.void, [core.int, core.double], [typed_data.Endian]),
  [$setFloat32]: dart.fnType(dart.void, [core.int, core.double], [typed_data.Endian]),
  getFloat64: dart.fnType(core.double, [core.int], [typed_data.Endian]),
  [$getFloat64]: dart.fnType(core.double, [core.int], [typed_data.Endian]),
  setFloat64: dart.fnType(dart.void, [core.int, core.double], [typed_data.Endian]),
  [$setFloat64]: dart.fnType(dart.void, [core.int, core.double], [typed_data.Endian]),
  [_unsupported$]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(typed_data.UnmodifiableByteDataView, () => ({
  __proto__: dart.getGetters(typed_data.UnmodifiableByteDataView.__proto__),
  elementSizeInBytes: core.int,
  [$elementSizeInBytes]: core.int,
  offsetInBytes: core.int,
  [$offsetInBytes]: core.int,
  lengthInBytes: core.int,
  [$lengthInBytes]: core.int,
  buffer: typed_data.ByteBuffer,
  [$buffer]: typed_data.ByteBuffer
}));
dart.setLibraryUri(typed_data.UnmodifiableByteDataView, L28);
dart.setFieldSignature(typed_data.UnmodifiableByteDataView, () => ({
  __proto__: dart.getFields(typed_data.UnmodifiableByteDataView.__proto__),
  [_data$]: dart.finalFieldType(typed_data.ByteData)
}));
dart.defineExtensionMethods(typed_data.UnmodifiableByteDataView, [
  'getInt8',
  'setInt8',
  'getUint8',
  'setUint8',
  'getInt16',
  'setInt16',
  'getUint16',
  'setUint16',
  'getInt32',
  'setInt32',
  'getUint32',
  'setUint32',
  'getInt64',
  'setInt64',
  'getUint64',
  'setUint64',
  'getFloat32',
  'setFloat32',
  'getFloat64',
  'setFloat64'
]);
dart.defineExtensionAccessors(typed_data.UnmodifiableByteDataView, ['elementSizeInBytes', 'offsetInBytes', 'lengthInBytes', 'buffer']);
var _list$2 = dart.privateName(typed_data, "_list");
var _createList = dart.privateName(typed_data, "_createList");
const _is__UnmodifiableListMixin_default = Symbol('_is__UnmodifiableListMixin_default');
typed_data._UnmodifiableListMixin$ = dart.generic((N, L, TD) => {
  class _UnmodifiableListMixin extends core.Object {
    get [_data$]() {
      return TD.as(this[_list$2]);
    }
    get length() {
      return this[_list$2][$length];
    }
    _get(index) {
      return this[_list$2][$_get](index);
    }
    get elementSizeInBytes() {
      return this[_data$][$elementSizeInBytes];
    }
    get offsetInBytes() {
      return this[_data$][$offsetInBytes];
    }
    get lengthInBytes() {
      return this[_data$][$lengthInBytes];
    }
    get buffer() {
      return new typed_data.UnmodifiableByteBufferView.new(this[_data$][$buffer]);
    }
    sublist(start, end = null) {
      end = core.RangeError.checkValidRange(start, end, this.length);
      let sublistLength = dart.notNull(end) - dart.notNull(start);
      let result = this[_createList](sublistLength);
      result[$setRange](0, sublistLength, this[_list$2], start);
      return result;
    }
  }
  (_UnmodifiableListMixin.new = function() {
    ;
  }).prototype = _UnmodifiableListMixin.prototype;
  dart.addTypeTests(_UnmodifiableListMixin);
  _UnmodifiableListMixin.prototype[_is__UnmodifiableListMixin_default] = true;
  dart.addTypeCaches(_UnmodifiableListMixin);
  dart.setMethodSignature(_UnmodifiableListMixin, () => ({
    __proto__: dart.getMethods(_UnmodifiableListMixin.__proto__),
    _get: dart.fnType(N, [core.int]),
    sublist: dart.fnType(L, [core.int], [core.int])
  }));
  dart.setGetterSignature(_UnmodifiableListMixin, () => ({
    __proto__: dart.getGetters(_UnmodifiableListMixin.__proto__),
    [_data$]: TD,
    length: core.int,
    elementSizeInBytes: core.int,
    offsetInBytes: core.int,
    lengthInBytes: core.int,
    buffer: typed_data.ByteBuffer
  }));
  dart.setLibraryUri(_UnmodifiableListMixin, L28);
  return _UnmodifiableListMixin;
});
typed_data._UnmodifiableListMixin = typed_data._UnmodifiableListMixin$();
dart.addTypeTests(typed_data._UnmodifiableListMixin, _is__UnmodifiableListMixin_default);
var _list$3 = dart.privateName(typed_data, "UnmodifiableUint8ListView._list");
const UnmodifiableListBase__UnmodifiableListMixin$36 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.int) {};
(UnmodifiableListBase__UnmodifiableListMixin$36.new = function() {
}).prototype = UnmodifiableListBase__UnmodifiableListMixin$36.prototype;
dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36, typed_data._UnmodifiableListMixin$(core.int, typed_data.Uint8List, typed_data.Uint8List));
typed_data.UnmodifiableUint8ListView = class UnmodifiableUint8ListView extends UnmodifiableListBase__UnmodifiableListMixin$36 {
  get [_list$2]() {
    return this[_list$3];
  }
  set [_list$2](value) {
    super[_list$2] = value;
  }
  [_createList](length) {
    return _native_typed_data.NativeUint8List.new(length);
  }
};
(typed_data.UnmodifiableUint8ListView.new = function(list) {
  this[_list$3] = list;
  ;
}).prototype = typed_data.UnmodifiableUint8ListView.prototype;
dart.addTypeTests(typed_data.UnmodifiableUint8ListView);
dart.addTypeCaches(typed_data.UnmodifiableUint8ListView);
typed_data.UnmodifiableUint8ListView[dart.implements] = () => [typed_data.Uint8List];
dart.setMethodSignature(typed_data.UnmodifiableUint8ListView, () => ({
  __proto__: dart.getMethods(typed_data.UnmodifiableUint8ListView.__proto__),
  [_createList]: dart.fnType(typed_data.Uint8List, [core.int])
}));
dart.setLibraryUri(typed_data.UnmodifiableUint8ListView, L28);
dart.setFieldSignature(typed_data.UnmodifiableUint8ListView, () => ({
  __proto__: dart.getFields(typed_data.UnmodifiableUint8ListView.__proto__),
  [_list$2]: dart.finalFieldType(typed_data.Uint8List)
}));
dart.defineExtensionMethods(typed_data.UnmodifiableUint8ListView, ['_get', 'sublist']);
dart.defineExtensionAccessors(typed_data.UnmodifiableUint8ListView, [
  'length',
  'elementSizeInBytes',
  'offsetInBytes',
  'lengthInBytes',
  'buffer'
]);
var _list$4 = dart.privateName(typed_data, "UnmodifiableInt8ListView._list");
const UnmodifiableListBase__UnmodifiableListMixin$36$ = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.int) {};
(UnmodifiableListBase__UnmodifiableListMixin$36$.new = function() {
}).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$.prototype;
dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$, typed_data._UnmodifiableListMixin$(core.int, typed_data.Int8List, typed_data.Int8List));
typed_data.UnmodifiableInt8ListView = class UnmodifiableInt8ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$ {
  get [_list$2]() {
    return this[_list$4];
  }
  set [_list$2](value) {
    super[_list$2] = value;
  }
  [_createList](length) {
    return _native_typed_data.NativeInt8List.new(length);
  }
};
(typed_data.UnmodifiableInt8ListView.new = function(list) {
  this[_list$4] = list;
  ;
}).prototype = typed_data.UnmodifiableInt8ListView.prototype;
dart.addTypeTests(typed_data.UnmodifiableInt8ListView);
dart.addTypeCaches(typed_data.UnmodifiableInt8ListView);
typed_data.UnmodifiableInt8ListView[dart.implements] = () => [typed_data.Int8List];
dart.setMethodSignature(typed_data.UnmodifiableInt8ListView, () => ({
  __proto__: dart.getMethods(typed_data.UnmodifiableInt8ListView.__proto__),
  [_createList]: dart.fnType(typed_data.Int8List, [core.int])
}));
dart.setLibraryUri(typed_data.UnmodifiableInt8ListView, L28);
dart.setFieldSignature(typed_data.UnmodifiableInt8ListView, () => ({
  __proto__: dart.getFields(typed_data.UnmodifiableInt8ListView.__proto__),
  [_list$2]: dart.finalFieldType(typed_data.Int8List)
}));
dart.defineExtensionMethods(typed_data.UnmodifiableInt8ListView, ['_get', 'sublist']);
dart.defineExtensionAccessors(typed_data.UnmodifiableInt8ListView, [
  'length',
  'elementSizeInBytes',
  'offsetInBytes',
  'lengthInBytes',
  'buffer'
]);
var _list$5 = dart.privateName(typed_data, "UnmodifiableUint8ClampedListView._list");
const UnmodifiableListBase__UnmodifiableListMixin$36$0 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.int) {};
(UnmodifiableListBase__UnmodifiableListMixin$36$0.new = function() {
}).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$0.prototype;
dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$0, typed_data._UnmodifiableListMixin$(core.int, typed_data.Uint8ClampedList, typed_data.Uint8ClampedList));
typed_data.UnmodifiableUint8ClampedListView = class UnmodifiableUint8ClampedListView extends UnmodifiableListBase__UnmodifiableListMixin$36$0 {
  get [_list$2]() {
    return this[_list$5];
  }
  set [_list$2](value) {
    super[_list$2] = value;
  }
  [_createList](length) {
    return _native_typed_data.NativeUint8ClampedList.new(length);
  }
};
(typed_data.UnmodifiableUint8ClampedListView.new = function(list) {
  this[_list$5] = list;
  ;
}).prototype = typed_data.UnmodifiableUint8ClampedListView.prototype;
dart.addTypeTests(typed_data.UnmodifiableUint8ClampedListView);
dart.addTypeCaches(typed_data.UnmodifiableUint8ClampedListView);
typed_data.UnmodifiableUint8ClampedListView[dart.implements] = () => [typed_data.Uint8ClampedList];
dart.setMethodSignature(typed_data.UnmodifiableUint8ClampedListView, () => ({
  __proto__: dart.getMethods(typed_data.UnmodifiableUint8ClampedListView.__proto__),
  [_createList]: dart.fnType(typed_data.Uint8ClampedList, [core.int])
}));
dart.setLibraryUri(typed_data.UnmodifiableUint8ClampedListView, L28);
dart.setFieldSignature(typed_data.UnmodifiableUint8ClampedListView, () => ({
  __proto__: dart.getFields(typed_data.UnmodifiableUint8ClampedListView.__proto__),
  [_list$2]: dart.finalFieldType(typed_data.Uint8ClampedList)
}));
dart.defineExtensionMethods(typed_data.UnmodifiableUint8ClampedListView, ['_get', 'sublist']);
dart.defineExtensionAccessors(typed_data.UnmodifiableUint8ClampedListView, [
  'length',
  'elementSizeInBytes',
  'offsetInBytes',
  'lengthInBytes',
  'buffer'
]);
var _list$6 = dart.privateName(typed_data, "UnmodifiableUint16ListView._list");
const UnmodifiableListBase__UnmodifiableListMixin$36$1 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.int) {};
(UnmodifiableListBase__UnmodifiableListMixin$36$1.new = function() {
}).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$1.prototype;
dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$1, typed_data._UnmodifiableListMixin$(core.int, typed_data.Uint16List, typed_data.Uint16List));
typed_data.UnmodifiableUint16ListView = class UnmodifiableUint16ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$1 {
  get [_list$2]() {
    return this[_list$6];
  }
  set [_list$2](value) {
    super[_list$2] = value;
  }
  [_createList](length) {
    return _native_typed_data.NativeUint16List.new(length);
  }
};
(typed_data.UnmodifiableUint16ListView.new = function(list) {
  this[_list$6] = list;
  ;
}).prototype = typed_data.UnmodifiableUint16ListView.prototype;
dart.addTypeTests(typed_data.UnmodifiableUint16ListView);
dart.addTypeCaches(typed_data.UnmodifiableUint16ListView);
typed_data.UnmodifiableUint16ListView[dart.implements] = () => [typed_data.Uint16List];
dart.setMethodSignature(typed_data.UnmodifiableUint16ListView, () => ({
  __proto__: dart.getMethods(typed_data.UnmodifiableUint16ListView.__proto__),
  [_createList]: dart.fnType(typed_data.Uint16List, [core.int])
}));
dart.setLibraryUri(typed_data.UnmodifiableUint16ListView, L28);
dart.setFieldSignature(typed_data.UnmodifiableUint16ListView, () => ({
  __proto__: dart.getFields(typed_data.UnmodifiableUint16ListView.__proto__),
  [_list$2]: dart.finalFieldType(typed_data.Uint16List)
}));
dart.defineExtensionMethods(typed_data.UnmodifiableUint16ListView, ['_get', 'sublist']);
dart.defineExtensionAccessors(typed_data.UnmodifiableUint16ListView, [
  'length',
  'elementSizeInBytes',
  'offsetInBytes',
  'lengthInBytes',
  'buffer'
]);
var _list$7 = dart.privateName(typed_data, "UnmodifiableInt16ListView._list");
const UnmodifiableListBase__UnmodifiableListMixin$36$2 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.int) {};
(UnmodifiableListBase__UnmodifiableListMixin$36$2.new = function() {
}).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$2.prototype;
dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$2, typed_data._UnmodifiableListMixin$(core.int, typed_data.Int16List, typed_data.Int16List));
typed_data.UnmodifiableInt16ListView = class UnmodifiableInt16ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$2 {
  get [_list$2]() {
    return this[_list$7];
  }
  set [_list$2](value) {
    super[_list$2] = value;
  }
  [_createList](length) {
    return _native_typed_data.NativeInt16List.new(length);
  }
};
(typed_data.UnmodifiableInt16ListView.new = function(list) {
  this[_list$7] = list;
  ;
}).prototype = typed_data.UnmodifiableInt16ListView.prototype;
dart.addTypeTests(typed_data.UnmodifiableInt16ListView);
dart.addTypeCaches(typed_data.UnmodifiableInt16ListView);
typed_data.UnmodifiableInt16ListView[dart.implements] = () => [typed_data.Int16List];
dart.setMethodSignature(typed_data.UnmodifiableInt16ListView, () => ({
  __proto__: dart.getMethods(typed_data.UnmodifiableInt16ListView.__proto__),
  [_createList]: dart.fnType(typed_data.Int16List, [core.int])
}));
dart.setLibraryUri(typed_data.UnmodifiableInt16ListView, L28);
dart.setFieldSignature(typed_data.UnmodifiableInt16ListView, () => ({
  __proto__: dart.getFields(typed_data.UnmodifiableInt16ListView.__proto__),
  [_list$2]: dart.finalFieldType(typed_data.Int16List)
}));
dart.defineExtensionMethods(typed_data.UnmodifiableInt16ListView, ['_get', 'sublist']);
dart.defineExtensionAccessors(typed_data.UnmodifiableInt16ListView, [
  'length',
  'elementSizeInBytes',
  'offsetInBytes',
  'lengthInBytes',
  'buffer'
]);
var _list$8 = dart.privateName(typed_data, "UnmodifiableUint32ListView._list");
const UnmodifiableListBase__UnmodifiableListMixin$36$3 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.int) {};
(UnmodifiableListBase__UnmodifiableListMixin$36$3.new = function() {
}).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$3.prototype;
dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$3, typed_data._UnmodifiableListMixin$(core.int, typed_data.Uint32List, typed_data.Uint32List));
typed_data.UnmodifiableUint32ListView = class UnmodifiableUint32ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$3 {
  get [_list$2]() {
    return this[_list$8];
  }
  set [_list$2](value) {
    super[_list$2] = value;
  }
  [_createList](length) {
    return _native_typed_data.NativeUint32List.new(length);
  }
};
(typed_data.UnmodifiableUint32ListView.new = function(list) {
  this[_list$8] = list;
  ;
}).prototype = typed_data.UnmodifiableUint32ListView.prototype;
dart.addTypeTests(typed_data.UnmodifiableUint32ListView);
dart.addTypeCaches(typed_data.UnmodifiableUint32ListView);
typed_data.UnmodifiableUint32ListView[dart.implements] = () => [typed_data.Uint32List];
dart.setMethodSignature(typed_data.UnmodifiableUint32ListView, () => ({
  __proto__: dart.getMethods(typed_data.UnmodifiableUint32ListView.__proto__),
  [_createList]: dart.fnType(typed_data.Uint32List, [core.int])
}));
dart.setLibraryUri(typed_data.UnmodifiableUint32ListView, L28);
dart.setFieldSignature(typed_data.UnmodifiableUint32ListView, () => ({
  __proto__: dart.getFields(typed_data.UnmodifiableUint32ListView.__proto__),
  [_list$2]: dart.finalFieldType(typed_data.Uint32List)
}));
dart.defineExtensionMethods(typed_data.UnmodifiableUint32ListView, ['_get', 'sublist']);
dart.defineExtensionAccessors(typed_data.UnmodifiableUint32ListView, [
  'length',
  'elementSizeInBytes',
  'offsetInBytes',
  'lengthInBytes',
  'buffer'
]);
var _list$9 = dart.privateName(typed_data, "UnmodifiableInt32ListView._list");
const UnmodifiableListBase__UnmodifiableListMixin$36$4 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.int) {};
(UnmodifiableListBase__UnmodifiableListMixin$36$4.new = function() {
}).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$4.prototype;
dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$4, typed_data._UnmodifiableListMixin$(core.int, typed_data.Int32List, typed_data.Int32List));
typed_data.UnmodifiableInt32ListView = class UnmodifiableInt32ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$4 {
  get [_list$2]() {
    return this[_list$9];
  }
  set [_list$2](value) {
    super[_list$2] = value;
  }
  [_createList](length) {
    return _native_typed_data.NativeInt32List.new(length);
  }
};
(typed_data.UnmodifiableInt32ListView.new = function(list) {
  this[_list$9] = list;
  ;
}).prototype = typed_data.UnmodifiableInt32ListView.prototype;
dart.addTypeTests(typed_data.UnmodifiableInt32ListView);
dart.addTypeCaches(typed_data.UnmodifiableInt32ListView);
typed_data.UnmodifiableInt32ListView[dart.implements] = () => [typed_data.Int32List];
dart.setMethodSignature(typed_data.UnmodifiableInt32ListView, () => ({
  __proto__: dart.getMethods(typed_data.UnmodifiableInt32ListView.__proto__),
  [_createList]: dart.fnType(typed_data.Int32List, [core.int])
}));
dart.setLibraryUri(typed_data.UnmodifiableInt32ListView, L28);
dart.setFieldSignature(typed_data.UnmodifiableInt32ListView, () => ({
  __proto__: dart.getFields(typed_data.UnmodifiableInt32ListView.__proto__),
  [_list$2]: dart.finalFieldType(typed_data.Int32List)
}));
dart.defineExtensionMethods(typed_data.UnmodifiableInt32ListView, ['_get', 'sublist']);
dart.defineExtensionAccessors(typed_data.UnmodifiableInt32ListView, [
  'length',
  'elementSizeInBytes',
  'offsetInBytes',
  'lengthInBytes',
  'buffer'
]);
var _list$10 = dart.privateName(typed_data, "UnmodifiableUint64ListView._list");
const UnmodifiableListBase__UnmodifiableListMixin$36$5 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.int) {};
(UnmodifiableListBase__UnmodifiableListMixin$36$5.new = function() {
}).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$5.prototype;
dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$5, typed_data._UnmodifiableListMixin$(core.int, typed_data.Uint64List, typed_data.Uint64List));
typed_data.UnmodifiableUint64ListView = class UnmodifiableUint64ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$5 {
  get [_list$2]() {
    return this[_list$10];
  }
  set [_list$2](value) {
    super[_list$2] = value;
  }
  [_createList](length) {
    return typed_data.Uint64List.new(length);
  }
};
(typed_data.UnmodifiableUint64ListView.new = function(list) {
  this[_list$10] = list;
  ;
}).prototype = typed_data.UnmodifiableUint64ListView.prototype;
dart.addTypeTests(typed_data.UnmodifiableUint64ListView);
dart.addTypeCaches(typed_data.UnmodifiableUint64ListView);
typed_data.UnmodifiableUint64ListView[dart.implements] = () => [typed_data.Uint64List];
dart.setMethodSignature(typed_data.UnmodifiableUint64ListView, () => ({
  __proto__: dart.getMethods(typed_data.UnmodifiableUint64ListView.__proto__),
  [_createList]: dart.fnType(typed_data.Uint64List, [core.int])
}));
dart.setLibraryUri(typed_data.UnmodifiableUint64ListView, L28);
dart.setFieldSignature(typed_data.UnmodifiableUint64ListView, () => ({
  __proto__: dart.getFields(typed_data.UnmodifiableUint64ListView.__proto__),
  [_list$2]: dart.finalFieldType(typed_data.Uint64List)
}));
dart.defineExtensionMethods(typed_data.UnmodifiableUint64ListView, ['_get', 'sublist']);
dart.defineExtensionAccessors(typed_data.UnmodifiableUint64ListView, [
  'length',
  'elementSizeInBytes',
  'offsetInBytes',
  'lengthInBytes',
  'buffer'
]);
var _list$11 = dart.privateName(typed_data, "UnmodifiableInt64ListView._list");
const UnmodifiableListBase__UnmodifiableListMixin$36$6 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.int) {};
(UnmodifiableListBase__UnmodifiableListMixin$36$6.new = function() {
}).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$6.prototype;
dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$6, typed_data._UnmodifiableListMixin$(core.int, typed_data.Int64List, typed_data.Int64List));
typed_data.UnmodifiableInt64ListView = class UnmodifiableInt64ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$6 {
  get [_list$2]() {
    return this[_list$11];
  }
  set [_list$2](value) {
    super[_list$2] = value;
  }
  [_createList](length) {
    return typed_data.Int64List.new(length);
  }
};
(typed_data.UnmodifiableInt64ListView.new = function(list) {
  this[_list$11] = list;
  ;
}).prototype = typed_data.UnmodifiableInt64ListView.prototype;
dart.addTypeTests(typed_data.UnmodifiableInt64ListView);
dart.addTypeCaches(typed_data.UnmodifiableInt64ListView);
typed_data.UnmodifiableInt64ListView[dart.implements] = () => [typed_data.Int64List];
dart.setMethodSignature(typed_data.UnmodifiableInt64ListView, () => ({
  __proto__: dart.getMethods(typed_data.UnmodifiableInt64ListView.__proto__),
  [_createList]: dart.fnType(typed_data.Int64List, [core.int])
}));
dart.setLibraryUri(typed_data.UnmodifiableInt64ListView, L28);
dart.setFieldSignature(typed_data.UnmodifiableInt64ListView, () => ({
  __proto__: dart.getFields(typed_data.UnmodifiableInt64ListView.__proto__),
  [_list$2]: dart.finalFieldType(typed_data.Int64List)
}));
dart.defineExtensionMethods(typed_data.UnmodifiableInt64ListView, ['_get', 'sublist']);
dart.defineExtensionAccessors(typed_data.UnmodifiableInt64ListView, [
  'length',
  'elementSizeInBytes',
  'offsetInBytes',
  'lengthInBytes',
  'buffer'
]);
var _list$12 = dart.privateName(typed_data, "UnmodifiableInt32x4ListView._list");
const UnmodifiableListBase__UnmodifiableListMixin$36$7 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(typed_data.Int32x4) {};
(UnmodifiableListBase__UnmodifiableListMixin$36$7.new = function() {
}).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$7.prototype;
dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$7, typed_data._UnmodifiableListMixin$(typed_data.Int32x4, typed_data.Int32x4List, typed_data.Int32x4List));
typed_data.UnmodifiableInt32x4ListView = class UnmodifiableInt32x4ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$7 {
  get [_list$2]() {
    return this[_list$12];
  }
  set [_list$2](value) {
    super[_list$2] = value;
  }
  [_createList](length) {
    return new _native_typed_data.NativeInt32x4List.new(length);
  }
};
(typed_data.UnmodifiableInt32x4ListView.new = function(list) {
  this[_list$12] = list;
  ;
}).prototype = typed_data.UnmodifiableInt32x4ListView.prototype;
dart.addTypeTests(typed_data.UnmodifiableInt32x4ListView);
dart.addTypeCaches(typed_data.UnmodifiableInt32x4ListView);
typed_data.UnmodifiableInt32x4ListView[dart.implements] = () => [typed_data.Int32x4List];
dart.setMethodSignature(typed_data.UnmodifiableInt32x4ListView, () => ({
  __proto__: dart.getMethods(typed_data.UnmodifiableInt32x4ListView.__proto__),
  [_createList]: dart.fnType(typed_data.Int32x4List, [core.int])
}));
dart.setLibraryUri(typed_data.UnmodifiableInt32x4ListView, L28);
dart.setFieldSignature(typed_data.UnmodifiableInt32x4ListView, () => ({
  __proto__: dart.getFields(typed_data.UnmodifiableInt32x4ListView.__proto__),
  [_list$2]: dart.finalFieldType(typed_data.Int32x4List)
}));
dart.defineExtensionMethods(typed_data.UnmodifiableInt32x4ListView, ['_get', 'sublist']);
dart.defineExtensionAccessors(typed_data.UnmodifiableInt32x4ListView, [
  'length',
  'elementSizeInBytes',
  'offsetInBytes',
  'lengthInBytes',
  'buffer'
]);
var _list$13 = dart.privateName(typed_data, "UnmodifiableFloat32x4ListView._list");
const UnmodifiableListBase__UnmodifiableListMixin$36$8 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(typed_data.Float32x4) {};
(UnmodifiableListBase__UnmodifiableListMixin$36$8.new = function() {
}).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$8.prototype;
dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$8, typed_data._UnmodifiableListMixin$(typed_data.Float32x4, typed_data.Float32x4List, typed_data.Float32x4List));
typed_data.UnmodifiableFloat32x4ListView = class UnmodifiableFloat32x4ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$8 {
  get [_list$2]() {
    return this[_list$13];
  }
  set [_list$2](value) {
    super[_list$2] = value;
  }
  [_createList](length) {
    return new _native_typed_data.NativeFloat32x4List.new(length);
  }
};
(typed_data.UnmodifiableFloat32x4ListView.new = function(list) {
  this[_list$13] = list;
  ;
}).prototype = typed_data.UnmodifiableFloat32x4ListView.prototype;
dart.addTypeTests(typed_data.UnmodifiableFloat32x4ListView);
dart.addTypeCaches(typed_data.UnmodifiableFloat32x4ListView);
typed_data.UnmodifiableFloat32x4ListView[dart.implements] = () => [typed_data.Float32x4List];
dart.setMethodSignature(typed_data.UnmodifiableFloat32x4ListView, () => ({
  __proto__: dart.getMethods(typed_data.UnmodifiableFloat32x4ListView.__proto__),
  [_createList]: dart.fnType(typed_data.Float32x4List, [core.int])
}));
dart.setLibraryUri(typed_data.UnmodifiableFloat32x4ListView, L28);
dart.setFieldSignature(typed_data.UnmodifiableFloat32x4ListView, () => ({
  __proto__: dart.getFields(typed_data.UnmodifiableFloat32x4ListView.__proto__),
  [_list$2]: dart.finalFieldType(typed_data.Float32x4List)
}));
dart.defineExtensionMethods(typed_data.UnmodifiableFloat32x4ListView, ['_get', 'sublist']);
dart.defineExtensionAccessors(typed_data.UnmodifiableFloat32x4ListView, [
  'length',
  'elementSizeInBytes',
  'offsetInBytes',
  'lengthInBytes',
  'buffer'
]);
var _list$14 = dart.privateName(typed_data, "UnmodifiableFloat64x2ListView._list");
const UnmodifiableListBase__UnmodifiableListMixin$36$9 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(typed_data.Float64x2) {};
(UnmodifiableListBase__UnmodifiableListMixin$36$9.new = function() {
}).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$9.prototype;
dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$9, typed_data._UnmodifiableListMixin$(typed_data.Float64x2, typed_data.Float64x2List, typed_data.Float64x2List));
typed_data.UnmodifiableFloat64x2ListView = class UnmodifiableFloat64x2ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$9 {
  get [_list$2]() {
    return this[_list$14];
  }
  set [_list$2](value) {
    super[_list$2] = value;
  }
  [_createList](length) {
    return new _native_typed_data.NativeFloat64x2List.new(length);
  }
};
(typed_data.UnmodifiableFloat64x2ListView.new = function(list) {
  this[_list$14] = list;
  ;
}).prototype = typed_data.UnmodifiableFloat64x2ListView.prototype;
dart.addTypeTests(typed_data.UnmodifiableFloat64x2ListView);
dart.addTypeCaches(typed_data.UnmodifiableFloat64x2ListView);
typed_data.UnmodifiableFloat64x2ListView[dart.implements] = () => [typed_data.Float64x2List];
dart.setMethodSignature(typed_data.UnmodifiableFloat64x2ListView, () => ({
  __proto__: dart.getMethods(typed_data.UnmodifiableFloat64x2ListView.__proto__),
  [_createList]: dart.fnType(typed_data.Float64x2List, [core.int])
}));
dart.setLibraryUri(typed_data.UnmodifiableFloat64x2ListView, L28);
dart.setFieldSignature(typed_data.UnmodifiableFloat64x2ListView, () => ({
  __proto__: dart.getFields(typed_data.UnmodifiableFloat64x2ListView.__proto__),
  [_list$2]: dart.finalFieldType(typed_data.Float64x2List)
}));
dart.defineExtensionMethods(typed_data.UnmodifiableFloat64x2ListView, ['_get', 'sublist']);
dart.defineExtensionAccessors(typed_data.UnmodifiableFloat64x2ListView, [
  'length',
  'elementSizeInBytes',
  'offsetInBytes',
  'lengthInBytes',
  'buffer'
]);
var _list$15 = dart.privateName(typed_data, "UnmodifiableFloat32ListView._list");
const UnmodifiableListBase__UnmodifiableListMixin$36$10 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.double) {};
(UnmodifiableListBase__UnmodifiableListMixin$36$10.new = function() {
}).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$10.prototype;
dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$10, typed_data._UnmodifiableListMixin$(core.double, typed_data.Float32List, typed_data.Float32List));
typed_data.UnmodifiableFloat32ListView = class UnmodifiableFloat32ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$10 {
  get [_list$2]() {
    return this[_list$15];
  }
  set [_list$2](value) {
    super[_list$2] = value;
  }
  [_createList](length) {
    return _native_typed_data.NativeFloat32List.new(length);
  }
};
(typed_data.UnmodifiableFloat32ListView.new = function(list) {
  this[_list$15] = list;
  ;
}).prototype = typed_data.UnmodifiableFloat32ListView.prototype;
dart.addTypeTests(typed_data.UnmodifiableFloat32ListView);
dart.addTypeCaches(typed_data.UnmodifiableFloat32ListView);
typed_data.UnmodifiableFloat32ListView[dart.implements] = () => [typed_data.Float32List];
dart.setMethodSignature(typed_data.UnmodifiableFloat32ListView, () => ({
  __proto__: dart.getMethods(typed_data.UnmodifiableFloat32ListView.__proto__),
  [_createList]: dart.fnType(typed_data.Float32List, [core.int])
}));
dart.setLibraryUri(typed_data.UnmodifiableFloat32ListView, L28);
dart.setFieldSignature(typed_data.UnmodifiableFloat32ListView, () => ({
  __proto__: dart.getFields(typed_data.UnmodifiableFloat32ListView.__proto__),
  [_list$2]: dart.finalFieldType(typed_data.Float32List)
}));
dart.defineExtensionMethods(typed_data.UnmodifiableFloat32ListView, ['_get', 'sublist']);
dart.defineExtensionAccessors(typed_data.UnmodifiableFloat32ListView, [
  'length',
  'elementSizeInBytes',
  'offsetInBytes',
  'lengthInBytes',
  'buffer'
]);
var _list$16 = dart.privateName(typed_data, "UnmodifiableFloat64ListView._list");
const UnmodifiableListBase__UnmodifiableListMixin$36$11 = class UnmodifiableListBase__UnmodifiableListMixin extends _internal.UnmodifiableListBase$(core.double) {};
(UnmodifiableListBase__UnmodifiableListMixin$36$11.new = function() {
}).prototype = UnmodifiableListBase__UnmodifiableListMixin$36$11.prototype;
dart.applyMixin(UnmodifiableListBase__UnmodifiableListMixin$36$11, typed_data._UnmodifiableListMixin$(core.double, typed_data.Float64List, typed_data.Float64List));
typed_data.UnmodifiableFloat64ListView = class UnmodifiableFloat64ListView extends UnmodifiableListBase__UnmodifiableListMixin$36$11 {
  get [_list$2]() {
    return this[_list$16];
  }
  set [_list$2](value) {
    super[_list$2] = value;
  }
  [_createList](length) {
    return _native_typed_data.NativeFloat64List.new(length);
  }
};
(typed_data.UnmodifiableFloat64ListView.new = function(list) {
  this[_list$16] = list;
  ;
}).prototype = typed_data.UnmodifiableFloat64ListView.prototype;
dart.addTypeTests(typed_data.UnmodifiableFloat64ListView);
dart.addTypeCaches(typed_data.UnmodifiableFloat64ListView);
typed_data.UnmodifiableFloat64ListView[dart.implements] = () => [typed_data.Float64List];
dart.setMethodSignature(typed_data.UnmodifiableFloat64ListView, () => ({
  __proto__: dart.getMethods(typed_data.UnmodifiableFloat64ListView.__proto__),
  [_createList]: dart.fnType(typed_data.Float64List, [core.int])
}));
dart.setLibraryUri(typed_data.UnmodifiableFloat64ListView, L28);
dart.setFieldSignature(typed_data.UnmodifiableFloat64ListView, () => ({
  __proto__: dart.getFields(typed_data.UnmodifiableFloat64ListView.__proto__),
  [_list$2]: dart.finalFieldType(typed_data.Float64List)
}));
dart.defineExtensionMethods(typed_data.UnmodifiableFloat64ListView, ['_get', 'sublist']);
dart.defineExtensionAccessors(typed_data.UnmodifiableFloat64ListView, [
  'length',
  'elementSizeInBytes',
  'offsetInBytes',
  'lengthInBytes',
  'buffer'
]);
indexed_db._KeyRangeFactoryProvider = class _KeyRangeFactoryProvider extends core.Object {
  static createKeyRange_only(value) {
    return indexed_db._KeyRangeFactoryProvider._only(indexed_db._KeyRangeFactoryProvider._class(), indexed_db._KeyRangeFactoryProvider._translateKey(value));
  }
  static createKeyRange_lowerBound(bound, open = false) {
    return indexed_db._KeyRangeFactoryProvider._lowerBound(indexed_db._KeyRangeFactoryProvider._class(), indexed_db._KeyRangeFactoryProvider._translateKey(bound), open);
  }
  static createKeyRange_upperBound(bound, open = false) {
    return indexed_db._KeyRangeFactoryProvider._upperBound(indexed_db._KeyRangeFactoryProvider._class(), indexed_db._KeyRangeFactoryProvider._translateKey(bound), open);
  }
  static createKeyRange_bound(lower, upper, lowerOpen = false, upperOpen = false) {
    return indexed_db._KeyRangeFactoryProvider._bound(indexed_db._KeyRangeFactoryProvider._class(), indexed_db._KeyRangeFactoryProvider._translateKey(lower), indexed_db._KeyRangeFactoryProvider._translateKey(upper), lowerOpen, upperOpen);
  }
  static _class() {
    if (indexed_db._KeyRangeFactoryProvider._cachedClass != null) return indexed_db._KeyRangeFactoryProvider._cachedClass;
    return indexed_db._KeyRangeFactoryProvider._cachedClass = indexed_db._KeyRangeFactoryProvider._uncachedClass();
  }
  static _uncachedClass() {
    return window.webkitIDBKeyRange || window.mozIDBKeyRange || window.msIDBKeyRange || window.IDBKeyRange;
  }
  static _translateKey(idbkey) {
    return idbkey;
  }
  static _only(cls, value) {
    return cls.only(value);
  }
  static _lowerBound(cls, bound, open) {
    return cls.lowerBound(bound, open);
  }
  static _upperBound(cls, bound, open) {
    return cls.upperBound(bound, open);
  }
  static _bound(cls, lower, upper, lowerOpen, upperOpen) {
    return cls.bound(lower, upper, lowerOpen, upperOpen);
  }
};
(indexed_db._KeyRangeFactoryProvider.new = function() {
  ;
}).prototype = indexed_db._KeyRangeFactoryProvider.prototype;
dart.addTypeTests(indexed_db._KeyRangeFactoryProvider);
dart.addTypeCaches(indexed_db._KeyRangeFactoryProvider);
dart.setLibraryUri(indexed_db._KeyRangeFactoryProvider, L64);
dart.defineLazy(indexed_db._KeyRangeFactoryProvider, {
  /*indexed_db._KeyRangeFactoryProvider._cachedClass*/get _cachedClass() {
    return null;
  },
  set _cachedClass(_) {}
}, true);
var _delete$ = dart.privateName(indexed_db, "_delete");
var _update = dart.privateName(indexed_db, "_update");
var _update_1 = dart.privateName(indexed_db, "_update_1");
indexed_db.Cursor = class Cursor extends _interceptors.Interceptor {
  [$delete]() {
    try {
      return indexed_db._completeRequest(dart.dynamic, this[_delete$]());
    } catch (e$) {
      let e = dart.getThrown(e$);
      let stacktrace = dart.stackTrace(e$);
      return async.Future.error(e, stacktrace);
    }
  }
  [$update](value) {
    try {
      return indexed_db._completeRequest(dart.dynamic, this[_update](value));
    } catch (e$) {
      let e = dart.getThrown(e$);
      let stacktrace = dart.stackTrace(e$);
      return async.Future.error(e, stacktrace);
    }
  }
  [$next](key = null) {
    if (key == null) {
      this.continue();
    } else {
      this.continue(key);
    }
  }
  get [$direction]() {
    return this.direction;
  }
  get [$key]() {
    return this.key;
  }
  get [$primaryKey]() {
    return this.primaryKey;
  }
  get [$source]() {
    return this.source;
  }
  [$advance](...args) {
    return this.advance.apply(this, args);
  }
  [$continuePrimaryKey](...args) {
    return this.continuePrimaryKey.apply(this, args);
  }
  [_delete$](...args) {
    return this.delete.apply(this, args);
  }
  [_update](value) {
    let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
    return this[_update_1](value_1);
  }
  [_update_1](...args) {
    return this.update.apply(this, args);
  }
};
dart.addTypeTests(indexed_db.Cursor);
dart.addTypeCaches(indexed_db.Cursor);
dart.setMethodSignature(indexed_db.Cursor, () => ({
  __proto__: dart.getMethods(indexed_db.Cursor.__proto__),
  [$delete]: dart.fnType(async.Future, []),
  [$update]: dart.fnType(async.Future, [dart.dynamic]),
  [$next]: dart.fnType(dart.void, [], [core.Object]),
  [$advance]: dart.fnType(dart.void, [core.int]),
  [$continuePrimaryKey]: dart.fnType(dart.void, [core.Object, core.Object]),
  [_delete$]: dart.fnType(indexed_db.Request, []),
  [_update]: dart.fnType(indexed_db.Request, [dart.dynamic]),
  [_update_1]: dart.fnType(indexed_db.Request, [dart.dynamic])
}));
dart.setGetterSignature(indexed_db.Cursor, () => ({
  __proto__: dart.getGetters(indexed_db.Cursor.__proto__),
  [$direction]: core.String,
  [$key]: core.Object,
  [$primaryKey]: core.Object,
  [$source]: core.Object
}));
dart.setLibraryUri(indexed_db.Cursor, L64);
dart.registerExtension("IDBCursor", indexed_db.Cursor);
var _get_value = dart.privateName(indexed_db, "_get_value");
indexed_db.CursorWithValue = class CursorWithValue extends indexed_db.Cursor {
  get [$value]() {
    return indexed_db._convertNativeToDart_IDBAny(this[_get_value]);
  }
  get [_get_value]() {
    return this.value;
  }
};
dart.addTypeTests(indexed_db.CursorWithValue);
dart.addTypeCaches(indexed_db.CursorWithValue);
dart.setGetterSignature(indexed_db.CursorWithValue, () => ({
  __proto__: dart.getGetters(indexed_db.CursorWithValue.__proto__),
  [$value]: dart.dynamic,
  [_get_value]: dart.dynamic
}));
dart.setLibraryUri(indexed_db.CursorWithValue, L64);
dart.registerExtension("IDBCursorWithValue", indexed_db.CursorWithValue);
var _createObjectStore = dart.privateName(indexed_db, "_createObjectStore");
var _transaction = dart.privateName(indexed_db, "_transaction");
var _createObjectStore_1 = dart.privateName(indexed_db, "_createObjectStore_1");
var _createObjectStore_2 = dart.privateName(indexed_db, "_createObjectStore_2");
var _addEventListener = dart.privateName(html$, "_addEventListener");
var _removeEventListener = dart.privateName(html$, "_removeEventListener");
html$.EventTarget = class EventTarget extends _interceptors.Interceptor {
  get [$on]() {
    return new html$.Events.new(this);
  }
  [$addEventListener](type, listener, useCapture = null) {
    if (listener != null) {
      this[_addEventListener](type, listener, useCapture);
    }
  }
  [$removeEventListener](type, listener, useCapture = null) {
    if (listener != null) {
      this[_removeEventListener](type, listener, useCapture);
    }
  }
  [_addEventListener](...args) {
    return this.addEventListener.apply(this, args);
  }
  [$dispatchEvent](...args) {
    return this.dispatchEvent.apply(this, args);
  }
  [_removeEventListener](...args) {
    return this.removeEventListener.apply(this, args);
  }
};
(html$.EventTarget._created = function() {
  html$.EventTarget.__proto__.new.call(this);
  ;
}).prototype = html$.EventTarget.prototype;
dart.addTypeTests(html$.EventTarget);
dart.addTypeCaches(html$.EventTarget);
dart.setMethodSignature(html$.EventTarget, () => ({
  __proto__: dart.getMethods(html$.EventTarget.__proto__),
  [$addEventListener]: dart.fnType(dart.void, [core.String, dart.fnType(dart.dynamic, [html$.Event])], [core.bool]),
  [$removeEventListener]: dart.fnType(dart.void, [core.String, dart.fnType(dart.dynamic, [html$.Event])], [core.bool]),
  [_addEventListener]: dart.fnType(dart.void, [core.String, dart.fnType(dart.dynamic, [html$.Event])], [core.bool]),
  [$dispatchEvent]: dart.fnType(core.bool, [html$.Event]),
  [_removeEventListener]: dart.fnType(dart.void, [core.String, dart.fnType(dart.dynamic, [html$.Event])], [core.bool])
}));
dart.setGetterSignature(html$.EventTarget, () => ({
  __proto__: dart.getGetters(html$.EventTarget.__proto__),
  [$on]: html$.Events
}));
dart.setLibraryUri(html$.EventTarget, L65);
dart.registerExtension("EventTarget", html$.EventTarget);
var EventStreamProvider__eventType = dart.privateName(html$, "EventStreamProvider._eventType");
var C215;
var C216;
var C217;
var C218;
indexed_db.Database = class Database extends html$.EventTarget {
  [$createObjectStore](name, opts) {
    let keyPath = opts && 'keyPath' in opts ? opts.keyPath : null;
    let autoIncrement = opts && 'autoIncrement' in opts ? opts.autoIncrement : null;
    let options = new _js_helper.LinkedMap.new();
    if (keyPath != null) {
      options[$_set]("keyPath", keyPath);
    }
    if (autoIncrement != null) {
      options[$_set]("autoIncrement", autoIncrement);
    }
    return this[_createObjectStore](name, options);
  }
  [$transaction](storeName_OR_storeNames, mode) {
    if (mode !== "readonly" && mode !== "readwrite") {
      dart.throw(new core.ArgumentError.new(mode));
    }
    return this[_transaction](storeName_OR_storeNames, mode);
  }
  [$transactionStore](storeName, mode) {
    if (mode !== "readonly" && mode !== "readwrite") {
      dart.throw(new core.ArgumentError.new(mode));
    }
    return this[_transaction](storeName, mode);
  }
  [$transactionList](storeNames, mode) {
    if (mode !== "readonly" && mode !== "readwrite") {
      dart.throw(new core.ArgumentError.new(mode));
    }
    let storeNames_1 = html_common.convertDartToNative_StringArray(storeNames);
    return this[_transaction](storeNames_1, mode);
  }
  [$transactionStores](storeNames, mode) {
    if (mode !== "readonly" && mode !== "readwrite") {
      dart.throw(new core.ArgumentError.new(mode));
    }
    return this[_transaction](storeNames, mode);
  }
  [_transaction](...args) {
    return this.transaction.apply(this, args);
  }
  get [$name]() {
    return this.name;
  }
  get [$objectStoreNames]() {
    return this.objectStoreNames;
  }
  get [$version]() {
    return this.version;
  }
  [$close](...args) {
    return this.close.apply(this, args);
  }
  [_createObjectStore](name, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return this[_createObjectStore_1](name, options_1);
    }
    return this[_createObjectStore_2](name);
  }
  [_createObjectStore_1](...args) {
    return this.createObjectStore.apply(this, args);
  }
  [_createObjectStore_2](...args) {
    return this.createObjectStore.apply(this, args);
  }
  [$deleteObjectStore](...args) {
    return this.deleteObjectStore.apply(this, args);
  }
  get [$onAbort]() {
    return indexed_db.Database.abortEvent.forTarget(this);
  }
  get [$onClose]() {
    return indexed_db.Database.closeEvent.forTarget(this);
  }
  get [$onError]() {
    return indexed_db.Database.errorEvent.forTarget(this);
  }
  get [$onVersionChange]() {
    return indexed_db.Database.versionChangeEvent.forTarget(this);
  }
};
dart.addTypeTests(indexed_db.Database);
dart.addTypeCaches(indexed_db.Database);
dart.setMethodSignature(indexed_db.Database, () => ({
  __proto__: dart.getMethods(indexed_db.Database.__proto__),
  [$createObjectStore]: dart.fnType(indexed_db.ObjectStore, [core.String], {autoIncrement: core.bool, keyPath: dart.dynamic}, {}),
  [$transaction]: dart.fnType(indexed_db.Transaction, [dart.dynamic, core.String]),
  [$transactionStore]: dart.fnType(indexed_db.Transaction, [core.String, core.String]),
  [$transactionList]: dart.fnType(indexed_db.Transaction, [core.List$(core.String), core.String]),
  [$transactionStores]: dart.fnType(indexed_db.Transaction, [html$.DomStringList, core.String]),
  [_transaction]: dart.fnType(indexed_db.Transaction, [dart.dynamic, dart.dynamic]),
  [$close]: dart.fnType(dart.void, []),
  [_createObjectStore]: dart.fnType(indexed_db.ObjectStore, [core.String], [core.Map]),
  [_createObjectStore_1]: dart.fnType(indexed_db.ObjectStore, [dart.dynamic, dart.dynamic]),
  [_createObjectStore_2]: dart.fnType(indexed_db.ObjectStore, [dart.dynamic]),
  [$deleteObjectStore]: dart.fnType(dart.void, [core.String])
}));
dart.setGetterSignature(indexed_db.Database, () => ({
  __proto__: dart.getGetters(indexed_db.Database.__proto__),
  [$name]: core.String,
  [$objectStoreNames]: core.List$(core.String),
  [$version]: core.int,
  [$onAbort]: async.Stream$(html$.Event),
  [$onClose]: async.Stream$(html$.Event),
  [$onError]: async.Stream$(html$.Event),
  [$onVersionChange]: async.Stream$(indexed_db.VersionChangeEvent)
}));
dart.setLibraryUri(indexed_db.Database, L64);
dart.defineLazy(indexed_db.Database, {
  /*indexed_db.Database.abortEvent*/get abortEvent() {
    return C215 || CT.C215;
  },
  /*indexed_db.Database.closeEvent*/get closeEvent() {
    return C216 || CT.C216;
  },
  /*indexed_db.Database.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  },
  /*indexed_db.Database.versionChangeEvent*/get versionChangeEvent() {
    return C218 || CT.C218;
  }
}, true);
dart.registerExtension("IDBDatabase", indexed_db.Database);
var _open = dart.privateName(indexed_db, "_open");
var _deleteDatabase = dart.privateName(indexed_db, "_deleteDatabase");
indexed_db.IdbFactory = class IdbFactory extends _interceptors.Interceptor {
  static get supported() {
    return !!(window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB);
  }
  [$open](name, opts) {
    let version = opts && 'version' in opts ? opts.version : null;
    let onUpgradeNeeded = opts && 'onUpgradeNeeded' in opts ? opts.onUpgradeNeeded : null;
    let onBlocked = opts && 'onBlocked' in opts ? opts.onBlocked : null;
    if (!(version == null)[$_equals](onUpgradeNeeded == null)) {
      return FutureOfDatabaseL().error(new core.ArgumentError.new("version and onUpgradeNeeded must be specified together"));
    }
    try {
      let request = null;
      if (version != null) {
        request = this[_open](name, version);
      } else {
        request = this[_open](name);
      }
      if (onUpgradeNeeded != null) {
        dart.dsend(dart.dload(request, 'onUpgradeNeeded'), 'listen', [onUpgradeNeeded]);
      }
      if (onBlocked != null) {
        dart.dsend(dart.dload(request, 'onBlocked'), 'listen', [onBlocked]);
      }
      return indexed_db._completeRequest(indexed_db.Database, indexed_db.Request.as(request));
    } catch (e$) {
      let e = dart.getThrown(e$);
      let stacktrace = dart.stackTrace(e$);
      return FutureOfDatabaseL().error(e, stacktrace);
    }
  }
  [$deleteDatabase](name, opts) {
    let onBlocked = opts && 'onBlocked' in opts ? opts.onBlocked : null;
    try {
      let request = this[_deleteDatabase](name);
      if (onBlocked != null) {
        request[$onBlocked].listen(onBlocked);
      }
      let completer = CompleterOfIdbFactoryL().sync();
      request[$onSuccess].listen(dart.fn(e => {
        completer.complete(this);
      }, EventLToNullN()));
      request[$onError].listen(dart.bind(completer, 'completeError'));
      return completer.future;
    } catch (e$) {
      let e = dart.getThrown(e$);
      let stacktrace = dart.stackTrace(e$);
      return FutureOfIdbFactoryL().error(e, stacktrace);
    }
  }
  get [$supportsDatabaseNames]() {
    return dart.test(indexed_db.IdbFactory.supported) && !!(this.getDatabaseNames || this.webkitGetDatabaseNames);
  }
  [$cmp](...args) {
    return this.cmp.apply(this, args);
  }
  [_deleteDatabase](...args) {
    return this.deleteDatabase.apply(this, args);
  }
  [_open](...args) {
    return this.open.apply(this, args);
  }
};
dart.addTypeTests(indexed_db.IdbFactory);
dart.addTypeCaches(indexed_db.IdbFactory);
dart.setMethodSignature(indexed_db.IdbFactory, () => ({
  __proto__: dart.getMethods(indexed_db.IdbFactory.__proto__),
  [$open]: dart.fnType(async.Future$(indexed_db.Database), [core.String], {onBlocked: dart.fnType(dart.void, [html$.Event]), onUpgradeNeeded: dart.fnType(dart.void, [indexed_db.VersionChangeEvent]), version: core.int}, {}),
  [$deleteDatabase]: dart.fnType(async.Future$(indexed_db.IdbFactory), [core.String], {onBlocked: dart.fnType(dart.void, [html$.Event])}, {}),
  [$cmp]: dart.fnType(core.int, [core.Object, core.Object]),
  [_deleteDatabase]: dart.fnType(indexed_db.OpenDBRequest, [core.String]),
  [_open]: dart.fnType(indexed_db.OpenDBRequest, [core.String], [core.int])
}));
dart.setGetterSignature(indexed_db.IdbFactory, () => ({
  __proto__: dart.getGetters(indexed_db.IdbFactory.__proto__),
  [$supportsDatabaseNames]: core.bool
}));
dart.setLibraryUri(indexed_db.IdbFactory, L64);
dart.registerExtension("IDBFactory", indexed_db.IdbFactory);
var _count$0 = dart.privateName(indexed_db, "_count");
var _get = dart.privateName(indexed_db, "_get");
var _getKey = dart.privateName(indexed_db, "_getKey");
var _openCursor = dart.privateName(indexed_db, "_openCursor");
var _openKeyCursor = dart.privateName(indexed_db, "_openKeyCursor");
indexed_db.Index = class Index extends _interceptors.Interceptor {
  [$count](key_OR_range = null) {
    try {
      let request = this[_count$0](key_OR_range);
      return indexed_db._completeRequest(core.int, request);
    } catch (e$) {
      let e = dart.getThrown(e$);
      let stacktrace = dart.stackTrace(e$);
      return FutureOfintL().error(e, stacktrace);
    }
  }
  [$get](key) {
    try {
      let request = this[_get](key);
      return indexed_db._completeRequest(dart.dynamic, request);
    } catch (e$) {
      let e = dart.getThrown(e$);
      let stacktrace = dart.stackTrace(e$);
      return async.Future.error(e, stacktrace);
    }
  }
  [$getKey](key) {
    try {
      let request = this[_getKey](key);
      return indexed_db._completeRequest(dart.dynamic, request);
    } catch (e$) {
      let e = dart.getThrown(e$);
      let stacktrace = dart.stackTrace(e$);
      return async.Future.error(e, stacktrace);
    }
  }
  [$openCursor](opts) {
    let key = opts && 'key' in opts ? opts.key : null;
    let range = opts && 'range' in opts ? opts.range : null;
    let direction = opts && 'direction' in opts ? opts.direction : null;
    let autoAdvance = opts && 'autoAdvance' in opts ? opts.autoAdvance : null;
    let key_OR_range = null;
    if (key != null) {
      if (range != null) {
        dart.throw(new core.ArgumentError.new("Cannot specify both key and range."));
      }
      key_OR_range = key;
    } else {
      key_OR_range = range;
    }
    let request = null;
    if (direction == null) {
      request = this[_openCursor](key_OR_range, "next");
    } else {
      request = this[_openCursor](key_OR_range, direction);
    }
    return indexed_db.ObjectStore._cursorStreamFromResult(indexed_db.CursorWithValue, indexed_db.Request.as(request), autoAdvance);
  }
  [$openKeyCursor](opts) {
    let key = opts && 'key' in opts ? opts.key : null;
    let range = opts && 'range' in opts ? opts.range : null;
    let direction = opts && 'direction' in opts ? opts.direction : null;
    let autoAdvance = opts && 'autoAdvance' in opts ? opts.autoAdvance : null;
    let key_OR_range = null;
    if (key != null) {
      if (range != null) {
        dart.throw(new core.ArgumentError.new("Cannot specify both key and range."));
      }
      key_OR_range = key;
    } else {
      key_OR_range = range;
    }
    let request = null;
    if (direction == null) {
      request = this[_openKeyCursor](key_OR_range, "next");
    } else {
      request = this[_openKeyCursor](key_OR_range, direction);
    }
    return indexed_db.ObjectStore._cursorStreamFromResult(indexed_db.Cursor, indexed_db.Request.as(request), autoAdvance);
  }
  get [$keyPath]() {
    return this.keyPath;
  }
  get [$multiEntry]() {
    return this.multiEntry;
  }
  get [$name]() {
    return this.name;
  }
  set [$name](value) {
    this.name = value;
  }
  get [$objectStore]() {
    return this.objectStore;
  }
  get [$unique]() {
    return this.unique;
  }
  [_count$0](...args) {
    return this.count.apply(this, args);
  }
  [_get](...args) {
    return this.get.apply(this, args);
  }
  [$getAll](...args) {
    return this.getAll.apply(this, args);
  }
  [$getAllKeys](...args) {
    return this.getAllKeys.apply(this, args);
  }
  [_getKey](...args) {
    return this.getKey.apply(this, args);
  }
  [_openCursor](...args) {
    return this.openCursor.apply(this, args);
  }
  [_openKeyCursor](...args) {
    return this.openKeyCursor.apply(this, args);
  }
};
dart.addTypeTests(indexed_db.Index);
dart.addTypeCaches(indexed_db.Index);
dart.setMethodSignature(indexed_db.Index, () => ({
  __proto__: dart.getMethods(indexed_db.Index.__proto__),
  [$count]: dart.fnType(async.Future$(core.int), [], [dart.dynamic]),
  [$get]: dart.fnType(async.Future, [dart.dynamic]),
  [$getKey]: dart.fnType(async.Future, [dart.dynamic]),
  [$openCursor]: dart.fnType(async.Stream$(indexed_db.CursorWithValue), [], {autoAdvance: core.bool, direction: core.String, key: dart.dynamic, range: indexed_db.KeyRange}, {}),
  [$openKeyCursor]: dart.fnType(async.Stream$(indexed_db.Cursor), [], {autoAdvance: core.bool, direction: core.String, key: dart.dynamic, range: indexed_db.KeyRange}, {}),
  [_count$0]: dart.fnType(indexed_db.Request, [core.Object]),
  [_get]: dart.fnType(indexed_db.Request, [core.Object]),
  [$getAll]: dart.fnType(indexed_db.Request, [core.Object], [core.int]),
  [$getAllKeys]: dart.fnType(indexed_db.Request, [core.Object], [core.int]),
  [_getKey]: dart.fnType(indexed_db.Request, [core.Object]),
  [_openCursor]: dart.fnType(indexed_db.Request, [core.Object], [core.String]),
  [_openKeyCursor]: dart.fnType(indexed_db.Request, [core.Object], [core.String])
}));
dart.setGetterSignature(indexed_db.Index, () => ({
  __proto__: dart.getGetters(indexed_db.Index.__proto__),
  [$keyPath]: core.Object,
  [$multiEntry]: core.bool,
  [$name]: core.String,
  [$objectStore]: indexed_db.ObjectStore,
  [$unique]: core.bool
}));
dart.setSetterSignature(indexed_db.Index, () => ({
  __proto__: dart.getSetters(indexed_db.Index.__proto__),
  [$name]: core.String
}));
dart.setLibraryUri(indexed_db.Index, L64);
dart.registerExtension("IDBIndex", indexed_db.Index);
indexed_db.KeyRange = class KeyRange extends _interceptors.Interceptor {
  static only(value) {
    return indexed_db._KeyRangeFactoryProvider.createKeyRange_only(value);
  }
  static lowerBound(bound, open = false) {
    return indexed_db._KeyRangeFactoryProvider.createKeyRange_lowerBound(bound, open);
  }
  static upperBound(bound, open = false) {
    return indexed_db._KeyRangeFactoryProvider.createKeyRange_upperBound(bound, open);
  }
  static bound(lower, upper, lowerOpen = false, upperOpen = false) {
    return indexed_db._KeyRangeFactoryProvider.createKeyRange_bound(lower, upper, lowerOpen, upperOpen);
  }
  get [$lower]() {
    return this.lower;
  }
  get [$lowerOpen]() {
    return this.lowerOpen;
  }
  get [$upper]() {
    return this.upper;
  }
  get [$upperOpen]() {
    return this.upperOpen;
  }
  [$includes](...args) {
    return this.includes.apply(this, args);
  }
};
dart.addTypeTests(indexed_db.KeyRange);
dart.addTypeCaches(indexed_db.KeyRange);
dart.setMethodSignature(indexed_db.KeyRange, () => ({
  __proto__: dart.getMethods(indexed_db.KeyRange.__proto__),
  [$includes]: dart.fnType(core.bool, [core.Object])
}));
dart.setGetterSignature(indexed_db.KeyRange, () => ({
  __proto__: dart.getGetters(indexed_db.KeyRange.__proto__),
  [$lower]: core.Object,
  [$lowerOpen]: core.bool,
  [$upper]: core.Object,
  [$upperOpen]: core.bool
}));
dart.setLibraryUri(indexed_db.KeyRange, L64);
dart.registerExtension("IDBKeyRange", indexed_db.KeyRange);
var _add$1 = dart.privateName(indexed_db, "_add");
var _clear$ = dart.privateName(indexed_db, "_clear");
var _put = dart.privateName(indexed_db, "_put");
var _createIndex = dart.privateName(indexed_db, "_createIndex");
var _add_1 = dart.privateName(indexed_db, "_add_1");
var _add_2 = dart.privateName(indexed_db, "_add_2");
var _createIndex_1 = dart.privateName(indexed_db, "_createIndex_1");
var _createIndex_2 = dart.privateName(indexed_db, "_createIndex_2");
var _put_1 = dart.privateName(indexed_db, "_put_1");
var _put_2 = dart.privateName(indexed_db, "_put_2");
indexed_db.ObjectStore = class ObjectStore extends _interceptors.Interceptor {
  [$add](value, key = null) {
    try {
      let request = null;
      if (key != null) {
        request = this[_add$1](value, key);
      } else {
        request = this[_add$1](value);
      }
      return indexed_db._completeRequest(dart.dynamic, indexed_db.Request.as(request));
    } catch (e$) {
      let e = dart.getThrown(e$);
      let stacktrace = dart.stackTrace(e$);
      return async.Future.error(e, stacktrace);
    }
  }
  [$clear]() {
    try {
      return indexed_db._completeRequest(dart.dynamic, this[_clear$]());
    } catch (e$) {
      let e = dart.getThrown(e$);
      let stacktrace = dart.stackTrace(e$);
      return async.Future.error(e, stacktrace);
    }
  }
  [$delete](key_OR_keyRange) {
    try {
      return indexed_db._completeRequest(dart.dynamic, this[_delete$](key_OR_keyRange));
    } catch (e$) {
      let e = dart.getThrown(e$);
      let stacktrace = dart.stackTrace(e$);
      return async.Future.error(e, stacktrace);
    }
  }
  [$count](key_OR_range = null) {
    try {
      let request = this[_count$0](key_OR_range);
      return indexed_db._completeRequest(core.int, request);
    } catch (e$) {
      let e = dart.getThrown(e$);
      let stacktrace = dart.stackTrace(e$);
      return FutureOfintL().error(e, stacktrace);
    }
  }
  [$put](value, key = null) {
    try {
      let request = null;
      if (key != null) {
        request = this[_put](value, key);
      } else {
        request = this[_put](value);
      }
      return indexed_db._completeRequest(dart.dynamic, indexed_db.Request.as(request));
    } catch (e$) {
      let e = dart.getThrown(e$);
      let stacktrace = dart.stackTrace(e$);
      return async.Future.error(e, stacktrace);
    }
  }
  [$getObject](key) {
    try {
      let request = this[_get](key);
      return indexed_db._completeRequest(dart.dynamic, request);
    } catch (e$) {
      let e = dart.getThrown(e$);
      let stacktrace = dart.stackTrace(e$);
      return async.Future.error(e, stacktrace);
    }
  }
  [$openCursor](opts) {
    let key = opts && 'key' in opts ? opts.key : null;
    let range = opts && 'range' in opts ? opts.range : null;
    let direction = opts && 'direction' in opts ? opts.direction : null;
    let autoAdvance = opts && 'autoAdvance' in opts ? opts.autoAdvance : null;
    let key_OR_range = null;
    if (key != null) {
      if (range != null) {
        dart.throw(new core.ArgumentError.new("Cannot specify both key and range."));
      }
      key_OR_range = key;
    } else {
      key_OR_range = range;
    }
    let request = null;
    if (direction == null) {
      request = this[_openCursor](key_OR_range);
    } else {
      request = this[_openCursor](key_OR_range, direction);
    }
    return indexed_db.ObjectStore._cursorStreamFromResult(indexed_db.CursorWithValue, indexed_db.Request.as(request), autoAdvance);
  }
  [$createIndex](name, keyPath, opts) {
    let unique = opts && 'unique' in opts ? opts.unique : null;
    let multiEntry = opts && 'multiEntry' in opts ? opts.multiEntry : null;
    let options = new _js_helper.LinkedMap.new();
    if (unique != null) {
      options[$_set]("unique", unique);
    }
    if (multiEntry != null) {
      options[$_set]("multiEntry", multiEntry);
    }
    return this[_createIndex](name, keyPath, options);
  }
  get [$autoIncrement]() {
    return this.autoIncrement;
  }
  get [$indexNames]() {
    return this.indexNames;
  }
  get [$keyPath]() {
    return this.keyPath;
  }
  get [$name]() {
    return this.name;
  }
  set [$name](value) {
    this.name = value;
  }
  get [$transaction]() {
    return this.transaction;
  }
  [_add$1](value, key = null) {
    if (key != null) {
      let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
      let key_2 = html_common.convertDartToNative_SerializedScriptValue(key);
      return this[_add_1](value_1, key_2);
    }
    let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
    return this[_add_2](value_1);
  }
  [_add_1](...args) {
    return this.add.apply(this, args);
  }
  [_add_2](...args) {
    return this.add.apply(this, args);
  }
  [_clear$](...args) {
    return this.clear.apply(this, args);
  }
  [_count$0](...args) {
    return this.count.apply(this, args);
  }
  [_createIndex](name, keyPath, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return this[_createIndex_1](name, keyPath, options_1);
    }
    return this[_createIndex_2](name, keyPath);
  }
  [_createIndex_1](...args) {
    return this.createIndex.apply(this, args);
  }
  [_createIndex_2](...args) {
    return this.createIndex.apply(this, args);
  }
  [_delete$](...args) {
    return this.delete.apply(this, args);
  }
  [$deleteIndex](...args) {
    return this.deleteIndex.apply(this, args);
  }
  [_get](...args) {
    return this.get.apply(this, args);
  }
  [$getAll](...args) {
    return this.getAll.apply(this, args);
  }
  [$getAllKeys](...args) {
    return this.getAllKeys.apply(this, args);
  }
  [$getKey](...args) {
    return this.getKey.apply(this, args);
  }
  [$index](...args) {
    return this.index.apply(this, args);
  }
  [_openCursor](...args) {
    return this.openCursor.apply(this, args);
  }
  [$openKeyCursor](...args) {
    return this.openKeyCursor.apply(this, args);
  }
  [_put](value, key = null) {
    if (key != null) {
      let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
      let key_2 = html_common.convertDartToNative_SerializedScriptValue(key);
      return this[_put_1](value_1, key_2);
    }
    let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
    return this[_put_2](value_1);
  }
  [_put_1](...args) {
    return this.put.apply(this, args);
  }
  [_put_2](...args) {
    return this.put.apply(this, args);
  }
  static _cursorStreamFromResult(T, request, autoAdvance) {
    let controller = async.StreamController$(T).new({sync: true});
    request[$onError].listen(dart.bind(controller, 'addError'));
    request[$onSuccess].listen(dart.fn(e => {
      let cursor = T.as(request[$result]);
      if (cursor == null) {
        controller.close();
      } else {
        controller.add(cursor);
        if (dart.equals(autoAdvance, true) && dart.test(controller.hasListener)) {
          cursor[$next]();
        }
      }
    }, EventLToNullN()));
    return controller.stream;
  }
};
dart.addTypeTests(indexed_db.ObjectStore);
dart.addTypeCaches(indexed_db.ObjectStore);
dart.setMethodSignature(indexed_db.ObjectStore, () => ({
  __proto__: dart.getMethods(indexed_db.ObjectStore.__proto__),
  [$add]: dart.fnType(async.Future, [dart.dynamic], [dart.dynamic]),
  [$clear]: dart.fnType(async.Future, []),
  [$delete]: dart.fnType(async.Future, [dart.dynamic]),
  [$count]: dart.fnType(async.Future$(core.int), [], [dart.dynamic]),
  [$put]: dart.fnType(async.Future, [dart.dynamic], [dart.dynamic]),
  [$getObject]: dart.fnType(async.Future, [dart.dynamic]),
  [$openCursor]: dart.fnType(async.Stream$(indexed_db.CursorWithValue), [], {autoAdvance: core.bool, direction: core.String, key: dart.dynamic, range: indexed_db.KeyRange}, {}),
  [$createIndex]: dart.fnType(indexed_db.Index, [core.String, dart.dynamic], {multiEntry: core.bool, unique: core.bool}, {}),
  [_add$1]: dart.fnType(indexed_db.Request, [dart.dynamic], [dart.dynamic]),
  [_add_1]: dart.fnType(indexed_db.Request, [dart.dynamic, dart.dynamic]),
  [_add_2]: dart.fnType(indexed_db.Request, [dart.dynamic]),
  [_clear$]: dart.fnType(indexed_db.Request, []),
  [_count$0]: dart.fnType(indexed_db.Request, [core.Object]),
  [_createIndex]: dart.fnType(indexed_db.Index, [core.String, core.Object], [core.Map]),
  [_createIndex_1]: dart.fnType(indexed_db.Index, [dart.dynamic, dart.dynamic, dart.dynamic]),
  [_createIndex_2]: dart.fnType(indexed_db.Index, [dart.dynamic, dart.dynamic]),
  [_delete$]: dart.fnType(indexed_db.Request, [core.Object]),
  [$deleteIndex]: dart.fnType(dart.void, [core.String]),
  [_get]: dart.fnType(indexed_db.Request, [core.Object]),
  [$getAll]: dart.fnType(indexed_db.Request, [core.Object], [core.int]),
  [$getAllKeys]: dart.fnType(indexed_db.Request, [core.Object], [core.int]),
  [$getKey]: dart.fnType(indexed_db.Request, [core.Object]),
  [$index]: dart.fnType(indexed_db.Index, [core.String]),
  [_openCursor]: dart.fnType(indexed_db.Request, [core.Object], [core.String]),
  [$openKeyCursor]: dart.fnType(indexed_db.Request, [core.Object], [core.String]),
  [_put]: dart.fnType(indexed_db.Request, [dart.dynamic], [dart.dynamic]),
  [_put_1]: dart.fnType(indexed_db.Request, [dart.dynamic, dart.dynamic]),
  [_put_2]: dart.fnType(indexed_db.Request, [dart.dynamic])
}));
dart.setGetterSignature(indexed_db.ObjectStore, () => ({
  __proto__: dart.getGetters(indexed_db.ObjectStore.__proto__),
  [$autoIncrement]: core.bool,
  [$indexNames]: core.List$(core.String),
  [$keyPath]: core.Object,
  [$name]: core.String,
  [$transaction]: indexed_db.Transaction
}));
dart.setSetterSignature(indexed_db.ObjectStore, () => ({
  __proto__: dart.getSetters(indexed_db.ObjectStore.__proto__),
  [$name]: core.String
}));
dart.setLibraryUri(indexed_db.ObjectStore, L64);
dart.registerExtension("IDBObjectStore", indexed_db.ObjectStore);
indexed_db.Observation = class Observation extends _interceptors.Interceptor {
  get [$key]() {
    return this.key;
  }
  get [$type]() {
    return this.type;
  }
  get [$value]() {
    return this.value;
  }
};
dart.addTypeTests(indexed_db.Observation);
dart.addTypeCaches(indexed_db.Observation);
dart.setGetterSignature(indexed_db.Observation, () => ({
  __proto__: dart.getGetters(indexed_db.Observation.__proto__),
  [$key]: core.Object,
  [$type]: core.String,
  [$value]: core.Object
}));
dart.setLibraryUri(indexed_db.Observation, L64);
dart.registerExtension("IDBObservation", indexed_db.Observation);
var _observe_1 = dart.privateName(indexed_db, "_observe_1");
indexed_db.Observer = class Observer extends _interceptors.Interceptor {
  static new(callback) {
    let callback_1 = _js_helper.convertDartClosureToJS(ObserverChangesLToLvoid(), callback, 1);
    return indexed_db.Observer._create_1(callback_1);
  }
  static _create_1(callback) {
    return new IDBObserver(callback);
  }
  [$observe](db, tx, options) {
    let options_1 = html_common.convertDartToNative_Dictionary(options);
    this[_observe_1](db, tx, options_1);
    return;
  }
  [_observe_1](...args) {
    return this.observe.apply(this, args);
  }
  [$unobserve](...args) {
    return this.unobserve.apply(this, args);
  }
};
dart.addTypeTests(indexed_db.Observer);
dart.addTypeCaches(indexed_db.Observer);
dart.setMethodSignature(indexed_db.Observer, () => ({
  __proto__: dart.getMethods(indexed_db.Observer.__proto__),
  [$observe]: dart.fnType(dart.void, [indexed_db.Database, indexed_db.Transaction, core.Map]),
  [_observe_1]: dart.fnType(dart.void, [indexed_db.Database, indexed_db.Transaction, dart.dynamic]),
  [$unobserve]: dart.fnType(dart.void, [indexed_db.Database])
}));
dart.setLibraryUri(indexed_db.Observer, L64);
dart.registerExtension("IDBObserver", indexed_db.Observer);
indexed_db.ObserverChanges = class ObserverChanges extends _interceptors.Interceptor {
  get [$database]() {
    return this.database;
  }
  get [$records]() {
    return this.records;
  }
  get [$transaction]() {
    return this.transaction;
  }
};
dart.addTypeTests(indexed_db.ObserverChanges);
dart.addTypeCaches(indexed_db.ObserverChanges);
dart.setGetterSignature(indexed_db.ObserverChanges, () => ({
  __proto__: dart.getGetters(indexed_db.ObserverChanges.__proto__),
  [$database]: indexed_db.Database,
  [$records]: core.Object,
  [$transaction]: indexed_db.Transaction
}));
dart.setLibraryUri(indexed_db.ObserverChanges, L64);
dart.registerExtension("IDBObserverChanges", indexed_db.ObserverChanges);
var _get_result = dart.privateName(indexed_db, "_get_result");
var C219;
indexed_db.Request = class Request extends html$.EventTarget {
  get [$error]() {
    return this.error;
  }
  get [$readyState]() {
    return this.readyState;
  }
  get [$result]() {
    return indexed_db._convertNativeToDart_IDBAny(this[_get_result]);
  }
  get [_get_result]() {
    return this.result;
  }
  get [$source]() {
    return this.source;
  }
  get [$transaction]() {
    return this.transaction;
  }
  get [$onError]() {
    return indexed_db.Request.errorEvent.forTarget(this);
  }
  get [$onSuccess]() {
    return indexed_db.Request.successEvent.forTarget(this);
  }
};
dart.addTypeTests(indexed_db.Request);
dart.addTypeCaches(indexed_db.Request);
dart.setGetterSignature(indexed_db.Request, () => ({
  __proto__: dart.getGetters(indexed_db.Request.__proto__),
  [$error]: html$.DomException,
  [$readyState]: core.String,
  [$result]: dart.dynamic,
  [_get_result]: dart.dynamic,
  [$source]: core.Object,
  [$transaction]: indexed_db.Transaction,
  [$onError]: async.Stream$(html$.Event),
  [$onSuccess]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(indexed_db.Request, L64);
dart.defineLazy(indexed_db.Request, {
  /*indexed_db.Request.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  },
  /*indexed_db.Request.successEvent*/get successEvent() {
    return C219 || CT.C219;
  }
}, true);
dart.registerExtension("IDBRequest", indexed_db.Request);
var C220;
var C221;
indexed_db.OpenDBRequest = class OpenDBRequest extends indexed_db.Request {
  get [$onBlocked]() {
    return indexed_db.OpenDBRequest.blockedEvent.forTarget(this);
  }
  get [$onUpgradeNeeded]() {
    return indexed_db.OpenDBRequest.upgradeNeededEvent.forTarget(this);
  }
};
dart.addTypeTests(indexed_db.OpenDBRequest);
dart.addTypeCaches(indexed_db.OpenDBRequest);
dart.setGetterSignature(indexed_db.OpenDBRequest, () => ({
  __proto__: dart.getGetters(indexed_db.OpenDBRequest.__proto__),
  [$onBlocked]: async.Stream$(html$.Event),
  [$onUpgradeNeeded]: async.Stream$(indexed_db.VersionChangeEvent)
}));
dart.setLibraryUri(indexed_db.OpenDBRequest, L64);
dart.defineLazy(indexed_db.OpenDBRequest, {
  /*indexed_db.OpenDBRequest.blockedEvent*/get blockedEvent() {
    return C220 || CT.C220;
  },
  /*indexed_db.OpenDBRequest.upgradeNeededEvent*/get upgradeNeededEvent() {
    return C221 || CT.C221;
  }
}, true);
dart.registerExtension("IDBOpenDBRequest", indexed_db.OpenDBRequest);
dart.registerExtension("IDBVersionChangeRequest", indexed_db.OpenDBRequest);
var C222;
indexed_db.Transaction = class Transaction extends html$.EventTarget {
  get [$completed]() {
    let completer = CompleterOfDatabaseL().new();
    this[$onComplete].first.then(core.Null, dart.fn(_ => {
      completer.complete(this.db);
    }, EventLToNullN()));
    this[$onError].first.then(core.Null, dart.fn(e => {
      completer.completeError(e);
    }, EventLToNullN()));
    this[$onAbort].first.then(core.Null, dart.fn(e => {
      if (!dart.test(completer.isCompleted)) {
        completer.completeError(e);
      }
    }, EventLToNullN()));
    return completer.future;
  }
  get [$db]() {
    return this.db;
  }
  get [$error]() {
    return this.error;
  }
  get [$mode]() {
    return this.mode;
  }
  get [$objectStoreNames]() {
    return this.objectStoreNames;
  }
  [$abort](...args) {
    return this.abort.apply(this, args);
  }
  [$objectStore](...args) {
    return this.objectStore.apply(this, args);
  }
  get [$onAbort]() {
    return indexed_db.Transaction.abortEvent.forTarget(this);
  }
  get [$onComplete]() {
    return indexed_db.Transaction.completeEvent.forTarget(this);
  }
  get [$onError]() {
    return indexed_db.Transaction.errorEvent.forTarget(this);
  }
};
dart.addTypeTests(indexed_db.Transaction);
dart.addTypeCaches(indexed_db.Transaction);
dart.setMethodSignature(indexed_db.Transaction, () => ({
  __proto__: dart.getMethods(indexed_db.Transaction.__proto__),
  [$abort]: dart.fnType(dart.void, []),
  [$objectStore]: dart.fnType(indexed_db.ObjectStore, [core.String])
}));
dart.setGetterSignature(indexed_db.Transaction, () => ({
  __proto__: dart.getGetters(indexed_db.Transaction.__proto__),
  [$completed]: async.Future$(indexed_db.Database),
  [$db]: indexed_db.Database,
  [$error]: html$.DomException,
  [$mode]: core.String,
  [$objectStoreNames]: core.List$(core.String),
  [$onAbort]: async.Stream$(html$.Event),
  [$onComplete]: async.Stream$(html$.Event),
  [$onError]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(indexed_db.Transaction, L64);
dart.defineLazy(indexed_db.Transaction, {
  /*indexed_db.Transaction.abortEvent*/get abortEvent() {
    return C215 || CT.C215;
  },
  /*indexed_db.Transaction.completeEvent*/get completeEvent() {
    return C222 || CT.C222;
  },
  /*indexed_db.Transaction.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  }
}, true);
dart.registerExtension("IDBTransaction", indexed_db.Transaction);
var _createEvent = dart.privateName(html$, "_createEvent");
var _initEvent = dart.privateName(html$, "_initEvent");
var _selector = dart.privateName(html$, "_selector");
var _get_currentTarget = dart.privateName(html$, "_get_currentTarget");
var _get_target = dart.privateName(html$, "_get_target");
html$.Event = class Event$ extends _interceptors.Interceptor {
  static new(type, opts) {
    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
    return html$.Event.eventType("Event", type, {canBubble: canBubble, cancelable: cancelable});
  }
  static eventType(type, name, opts) {
    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
    let e = html$.document[_createEvent](type);
    e[_initEvent](name, canBubble, cancelable);
    return e;
  }
  get [_selector]() {
    return this._selector;
  }
  set [_selector](value) {
    this._selector = value;
  }
  get [$matchingTarget]() {
    if (this[_selector] == null) {
      dart.throw(new core.UnsupportedError.new("Cannot call matchingTarget if this Event did" + " not arise as a result of event delegation."));
    }
    let currentTarget = html$.Element.as(this[$currentTarget]);
    let target = html$.Element.as(this[$target]);
    let matchedTarget = null;
    do {
      if (dart.test(target[$matches](this[_selector]))) return target;
      target = target[$parent];
    } while (target != null && !dart.equals(target, currentTarget[$parent]));
    dart.throw(new core.StateError.new("No selector matched for populating matchedTarget."));
  }
  get [$path]() {
    return !!this.composedPath ? this.composedPath() : JSArrayOfEventTargetL().of([]);
  }
  static __(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.Event._create_1(type, eventInitDict_1);
    }
    return html$.Event._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new Event(type, eventInitDict);
  }
  static _create_2(type) {
    return new Event(type);
  }
  get [$bubbles]() {
    return this.bubbles;
  }
  get [$cancelable]() {
    return this.cancelable;
  }
  get [$composed]() {
    return this.composed;
  }
  get [$currentTarget]() {
    return html$._convertNativeToDart_EventTarget(this[_get_currentTarget]);
  }
  get [_get_currentTarget]() {
    return this.currentTarget;
  }
  get [$defaultPrevented]() {
    return this.defaultPrevented;
  }
  get [$eventPhase]() {
    return this.eventPhase;
  }
  get [$isTrusted]() {
    return this.isTrusted;
  }
  get [$target]() {
    return html$._convertNativeToDart_EventTarget(this[_get_target]);
  }
  get [_get_target]() {
    return this.target;
  }
  get [$timeStamp]() {
    return this.timeStamp;
  }
  get [$type]() {
    return this.type;
  }
  [$composedPath](...args) {
    return this.composedPath.apply(this, args);
  }
  [_initEvent](...args) {
    return this.initEvent.apply(this, args);
  }
  [$preventDefault](...args) {
    return this.preventDefault.apply(this, args);
  }
  [$stopImmediatePropagation](...args) {
    return this.stopImmediatePropagation.apply(this, args);
  }
  [$stopPropagation](...args) {
    return this.stopPropagation.apply(this, args);
  }
};
dart.addTypeTests(html$.Event);
dart.addTypeCaches(html$.Event);
dart.setMethodSignature(html$.Event, () => ({
  __proto__: dart.getMethods(html$.Event.__proto__),
  [$composedPath]: dart.fnType(core.List$(html$.EventTarget), []),
  [_initEvent]: dart.fnType(dart.void, [core.String], [core.bool, core.bool]),
  [$preventDefault]: dart.fnType(dart.void, []),
  [$stopImmediatePropagation]: dart.fnType(dart.void, []),
  [$stopPropagation]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.Event, () => ({
  __proto__: dart.getGetters(html$.Event.__proto__),
  [_selector]: core.String,
  [$matchingTarget]: html$.Element,
  [$path]: core.List$(html$.EventTarget),
  [$bubbles]: core.bool,
  [$cancelable]: core.bool,
  [$composed]: core.bool,
  [$currentTarget]: html$.EventTarget,
  [_get_currentTarget]: dart.dynamic,
  [$defaultPrevented]: core.bool,
  [$eventPhase]: core.int,
  [$isTrusted]: core.bool,
  [$target]: html$.EventTarget,
  [_get_target]: dart.dynamic,
  [$timeStamp]: core.num,
  [$type]: core.String
}));
dart.setSetterSignature(html$.Event, () => ({
  __proto__: dart.getSetters(html$.Event.__proto__),
  [_selector]: core.String
}));
dart.setLibraryUri(html$.Event, L65);
dart.defineLazy(html$.Event, {
  /*html$.Event.AT_TARGET*/get AT_TARGET() {
    return 2;
  },
  /*html$.Event.BUBBLING_PHASE*/get BUBBLING_PHASE() {
    return 3;
  },
  /*html$.Event.CAPTURING_PHASE*/get CAPTURING_PHASE() {
    return 1;
  }
}, true);
dart.registerExtension("Event", html$.Event);
dart.registerExtension("InputEvent", html$.Event);
dart.registerExtension("SubmitEvent", html$.Event);
indexed_db.VersionChangeEvent = class VersionChangeEvent extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return indexed_db.VersionChangeEvent._create_1(type, eventInitDict_1);
    }
    return indexed_db.VersionChangeEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new IDBVersionChangeEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new IDBVersionChangeEvent(type);
  }
  get [$dataLoss]() {
    return this.dataLoss;
  }
  get [$dataLossMessage]() {
    return this.dataLossMessage;
  }
  get [$newVersion]() {
    return this.newVersion;
  }
  get [$oldVersion]() {
    return this.oldVersion;
  }
  get [$target]() {
    return this.target;
  }
};
dart.addTypeTests(indexed_db.VersionChangeEvent);
dart.addTypeCaches(indexed_db.VersionChangeEvent);
dart.setGetterSignature(indexed_db.VersionChangeEvent, () => ({
  __proto__: dart.getGetters(indexed_db.VersionChangeEvent.__proto__),
  [$dataLoss]: core.String,
  [$dataLossMessage]: core.String,
  [$newVersion]: core.int,
  [$oldVersion]: core.int,
  [$target]: indexed_db.OpenDBRequest
}));
dart.setLibraryUri(indexed_db.VersionChangeEvent, L64);
dart.registerExtension("IDBVersionChangeEvent", indexed_db.VersionChangeEvent);
indexed_db._convertNativeToDart_IDBKey = function _convertNativeToDart_IDBKey(nativeKey) {
  function containsDate(object) {
    if (dart.test(html_common.isJavaScriptDate(object))) return true;
    if (core.List.is(object)) {
      for (let i = 0; i < dart.notNull(object[$length]); i = i + 1) {
        if (dart.dtest(containsDate(object[$_get](i)))) return true;
      }
    }
    return false;
  }
  dart.fn(containsDate, dynamicToboolL());
  if (dart.test(containsDate(nativeKey))) {
    dart.throw(new core.UnimplementedError.new("Key containing DateTime"));
  }
  return nativeKey;
};
indexed_db._convertDartToNative_IDBKey = function _convertDartToNative_IDBKey(dartKey) {
  return dartKey;
};
indexed_db._convertNativeToDart_IDBAny = function _convertNativeToDart_IDBAny(object) {
  return html_common.convertNativeToDart_AcceptStructuredClone(object, {mustCopy: false});
};
indexed_db._completeRequest = function _completeRequest(T, request) {
  let completer = async.Completer$(T).sync();
  request[$onSuccess].listen(dart.fn(e => {
    let result = T.as(request[$result]);
    completer.complete(result);
  }, EventLToNullN()));
  request[$onError].listen(dart.bind(completer, 'completeError'));
  return completer.future;
};
var C223;
var C224;
dart.defineLazy(indexed_db, {
  /*indexed_db._idbKey*/get _idbKey() {
    return "JSExtendableArray|=Object|num|String";
  },
  /*indexed_db._annotation_Creates_IDBKey*/get _annotation_Creates_IDBKey() {
    return C223 || CT.C223;
  },
  /*indexed_db._annotation_Returns_IDBKey*/get _annotation_Returns_IDBKey() {
    return C224 || CT.C224;
  }
}, true);
var _getAttribute = dart.privateName(html$, "_getAttribute");
var _getAttributeNS = dart.privateName(html$, "_getAttributeNS");
var _hasAttribute = dart.privateName(html$, "_hasAttribute");
var _hasAttributeNS = dart.privateName(html$, "_hasAttributeNS");
var _removeAttribute = dart.privateName(html$, "_removeAttribute");
var _removeAttributeNS = dart.privateName(html$, "_removeAttributeNS");
var _setAttribute = dart.privateName(html$, "_setAttribute");
var _setAttributeNS = dart.privateName(html$, "_setAttributeNS");
var _querySelectorAll = dart.privateName(html$, "_querySelectorAll");
var _setApplyScroll = dart.privateName(html$, "_setApplyScroll");
var _setDistributeScroll = dart.privateName(html$, "_setDistributeScroll");
var _getComputedStyle = dart.privateName(html$, "_getComputedStyle");
var _getClientRects = dart.privateName(html$, "_getClientRects");
var C225;
var _animate = dart.privateName(html$, "_animate");
var _localName = dart.privateName(html$, "_localName");
var _namespaceUri = dart.privateName(html$, "_namespaceUri");
var _scrollIntoView = dart.privateName(html$, "_scrollIntoView");
var _scrollIntoViewIfNeeded = dart.privateName(html$, "_scrollIntoViewIfNeeded");
var _insertAdjacentText = dart.privateName(html$, "_insertAdjacentText");
var _insertAdjacentNode = dart.privateName(html$, "_insertAdjacentNode");
var _insertAdjacentHtml = dart.privateName(html$, "_insertAdjacentHtml");
var _insertAdjacentElement = dart.privateName(html$, "_insertAdjacentElement");
var _canBeUsedToCreateContextualFragment = dart.privateName(html$, "_canBeUsedToCreateContextualFragment");
var _innerHtml = dart.privateName(html$, "_innerHtml");
var _cannotBeUsedToCreateContextualFragment = dart.privateName(html$, "_cannotBeUsedToCreateContextualFragment");
var _attributes$ = dart.privateName(html$, "_attributes");
var _scrollHeight = dart.privateName(html$, "_scrollHeight");
var _scrollLeft = dart.privateName(html$, "_scrollLeft");
var _scrollTop = dart.privateName(html$, "_scrollTop");
var _scrollWidth = dart.privateName(html$, "_scrollWidth");
var _attachShadow_1 = dart.privateName(html$, "_attachShadow_1");
var _getElementsByTagName = dart.privateName(html$, "_getElementsByTagName");
var _scroll_1 = dart.privateName(html$, "_scroll_1");
var _scroll_2 = dart.privateName(html$, "_scroll_2");
var _scroll_3 = dart.privateName(html$, "_scroll_3");
var _scrollBy_1 = dart.privateName(html$, "_scrollBy_1");
var _scrollBy_2 = dart.privateName(html$, "_scrollBy_2");
var _scrollBy_3 = dart.privateName(html$, "_scrollBy_3");
var _scrollTo_1 = dart.privateName(html$, "_scrollTo_1");
var _scrollTo_2 = dart.privateName(html$, "_scrollTo_2");
var _scrollTo_3 = dart.privateName(html$, "_scrollTo_3");
var _childElementCount = dart.privateName(html$, "_childElementCount");
var _children = dart.privateName(html$, "_children");
var _firstElementChild = dart.privateName(html$, "_firstElementChild");
var _lastElementChild = dart.privateName(html$, "_lastElementChild");
var _removeChild = dart.privateName(html$, "_removeChild");
var _replaceChild = dart.privateName(html$, "_replaceChild");
var _this$ = dart.privateName(html$, "_this");
var _clearChildren = dart.privateName(html$, "_clearChildren");
var _getRootNode_1 = dart.privateName(html$, "_getRootNode_1");
var _getRootNode_2 = dart.privateName(html$, "_getRootNode_2");
html$.Node = class Node extends html$.EventTarget {
  get [$nodes]() {
    return new html$._ChildNodeListLazy.new(this);
  }
  set [$nodes](value) {
    let copy = value[$toList]();
    this[$text] = "";
    for (let node of copy) {
      this[$append](node);
    }
  }
  [$remove]() {
    if (this.parentNode != null) {
      let parent = this.parentNode;
      parent[_removeChild](this);
    }
  }
  [$replaceWith](otherNode) {
    try {
      let parent = this.parentNode;
      parent[_replaceChild](otherNode, this);
    } catch (e$) {
      let e = dart.getThrown(e$);
    }
    return this;
  }
  [$insertAllBefore](newNodes, refChild) {
    if (html$._ChildNodeListLazy.is(newNodes)) {
      let otherList = newNodes;
      if (otherList[_this$] === this) {
        dart.throw(new core.ArgumentError.new(newNodes));
      }
      for (let i = 0, len = otherList.length; i < dart.notNull(len); i = i + 1) {
        this.insertBefore(otherList[_this$].firstChild, refChild);
      }
    } else {
      for (let node of newNodes) {
        this.insertBefore(node, refChild);
      }
    }
  }
  [_clearChildren]() {
    while (this.firstChild != null) {
      this[_removeChild](this.firstChild);
    }
  }
  [$toString]() {
    let value = this.nodeValue;
    return value == null ? super[$toString]() : value;
  }
  get [$childNodes]() {
    return this.childNodes;
  }
  get [$baseUri]() {
    return this.baseURI;
  }
  get [$firstChild]() {
    return this.firstChild;
  }
  get [$isConnected]() {
    return this.isConnected;
  }
  get [$lastChild]() {
    return this.lastChild;
  }
  get [$nextNode]() {
    return this.nextSibling;
  }
  get [$nodeName]() {
    return this.nodeName;
  }
  get [$nodeType]() {
    return this.nodeType;
  }
  get [$nodeValue]() {
    return this.nodeValue;
  }
  get [$ownerDocument]() {
    return this.ownerDocument;
  }
  get [$parent]() {
    return this.parentElement;
  }
  get [$parentNode]() {
    return this.parentNode;
  }
  get [$previousNode]() {
    return this.previousSibling;
  }
  get [$text]() {
    return this.textContent;
  }
  set [$text](value) {
    this.textContent = value;
  }
  [$append](...args) {
    return this.appendChild.apply(this, args);
  }
  [$clone](...args) {
    return this.cloneNode.apply(this, args);
  }
  [$contains](...args) {
    return this.contains.apply(this, args);
  }
  [$getRootNode](options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return this[_getRootNode_1](options_1);
    }
    return this[_getRootNode_2]();
  }
  [_getRootNode_1](...args) {
    return this.getRootNode.apply(this, args);
  }
  [_getRootNode_2](...args) {
    return this.getRootNode.apply(this, args);
  }
  [$hasChildNodes](...args) {
    return this.hasChildNodes.apply(this, args);
  }
  [$insertBefore](...args) {
    return this.insertBefore.apply(this, args);
  }
  [_removeChild](...args) {
    return this.removeChild.apply(this, args);
  }
  [_replaceChild](...args) {
    return this.replaceChild.apply(this, args);
  }
};
(html$.Node._created = function() {
  html$.Node.__proto__._created.call(this);
  ;
}).prototype = html$.Node.prototype;
dart.addTypeTests(html$.Node);
dart.addTypeCaches(html$.Node);
dart.setMethodSignature(html$.Node, () => ({
  __proto__: dart.getMethods(html$.Node.__proto__),
  [$remove]: dart.fnType(dart.void, []),
  [$replaceWith]: dart.fnType(html$.Node, [html$.Node]),
  [$insertAllBefore]: dart.fnType(dart.void, [core.Iterable$(html$.Node), html$.Node]),
  [_clearChildren]: dart.fnType(dart.void, []),
  [$append]: dart.fnType(html$.Node, [html$.Node]),
  [$clone]: dart.fnType(html$.Node, [core.bool]),
  [$contains]: dart.fnType(core.bool, [html$.Node]),
  [$getRootNode]: dart.fnType(html$.Node, [], [core.Map]),
  [_getRootNode_1]: dart.fnType(html$.Node, [dart.dynamic]),
  [_getRootNode_2]: dart.fnType(html$.Node, []),
  [$hasChildNodes]: dart.fnType(core.bool, []),
  [$insertBefore]: dart.fnType(html$.Node, [html$.Node, html$.Node]),
  [_removeChild]: dart.fnType(html$.Node, [html$.Node]),
  [_replaceChild]: dart.fnType(html$.Node, [html$.Node, html$.Node])
}));
dart.setGetterSignature(html$.Node, () => ({
  __proto__: dart.getGetters(html$.Node.__proto__),
  [$nodes]: core.List$(html$.Node),
  [$childNodes]: core.List$(html$.Node),
  [$baseUri]: core.String,
  [$firstChild]: html$.Node,
  [$isConnected]: core.bool,
  [$lastChild]: html$.Node,
  [$nextNode]: html$.Node,
  [$nodeName]: core.String,
  [$nodeType]: core.int,
  [$nodeValue]: core.String,
  [$ownerDocument]: html$.Document,
  [$parent]: html$.Element,
  [$parentNode]: html$.Node,
  [$previousNode]: html$.Node,
  [$text]: core.String
}));
dart.setSetterSignature(html$.Node, () => ({
  __proto__: dart.getSetters(html$.Node.__proto__),
  [$nodes]: core.Iterable$(html$.Node),
  [$text]: core.String
}));
dart.setLibraryUri(html$.Node, L65);
dart.defineLazy(html$.Node, {
  /*html$.Node.ATTRIBUTE_NODE*/get ATTRIBUTE_NODE() {
    return 2;
  },
  /*html$.Node.CDATA_SECTION_NODE*/get CDATA_SECTION_NODE() {
    return 4;
  },
  /*html$.Node.COMMENT_NODE*/get COMMENT_NODE() {
    return 8;
  },
  /*html$.Node.DOCUMENT_FRAGMENT_NODE*/get DOCUMENT_FRAGMENT_NODE() {
    return 11;
  },
  /*html$.Node.DOCUMENT_NODE*/get DOCUMENT_NODE() {
    return 9;
  },
  /*html$.Node.DOCUMENT_TYPE_NODE*/get DOCUMENT_TYPE_NODE() {
    return 10;
  },
  /*html$.Node.ELEMENT_NODE*/get ELEMENT_NODE() {
    return 1;
  },
  /*html$.Node.ENTITY_NODE*/get ENTITY_NODE() {
    return 6;
  },
  /*html$.Node.ENTITY_REFERENCE_NODE*/get ENTITY_REFERENCE_NODE() {
    return 5;
  },
  /*html$.Node.NOTATION_NODE*/get NOTATION_NODE() {
    return 12;
  },
  /*html$.Node.PROCESSING_INSTRUCTION_NODE*/get PROCESSING_INSTRUCTION_NODE() {
    return 7;
  },
  /*html$.Node.TEXT_NODE*/get TEXT_NODE() {
    return 3;
  }
}, true);
dart.registerExtension("Node", html$.Node);
var C227;
var _CustomEventStreamProvider__eventTypeGetter = dart.privateName(html$, "_CustomEventStreamProvider._eventTypeGetter");
var C226;
var C229;
var C228;
var C230;
var C231;
var C232;
var C233;
var C234;
var C235;
var C236;
var C237;
var C238;
var C239;
var C240;
var C241;
var C242;
var C243;
var C244;
var C245;
var C246;
var C247;
var C248;
var C249;
var C250;
var C251;
var C252;
var C253;
var C254;
var C255;
var C256;
var C257;
var C258;
var C259;
var C260;
var C261;
var C262;
var C263;
var C264;
var C265;
var C266;
var C267;
var C268;
var C269;
var C270;
var C271;
var C272;
var C273;
var C274;
var C275;
var C276;
var C277;
var C278;
var C279;
var C280;
var C281;
var C282;
var C283;
var C284;
var C285;
var C286;
var C287;
var C288;
var C289;
var C290;
var C291;
var C292;
var C293;
var C294;
var C295;
var C296;
html$.Element = class Element extends html$.Node {
  static html(html, opts) {
    let validator = opts && 'validator' in opts ? opts.validator : null;
    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
    let fragment = html$.document.body[$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
    return html$.Element.as(fragment[$nodes][$where](dart.fn(e => html$.Element.is(e), NodeLToboolL()))[$single]);
  }
  static tag(tag, typeExtension = null) {
    return html$.Element.as(html$._ElementFactoryProvider.createElement_tag(tag, typeExtension));
  }
  static a() {
    return html$.AnchorElement.new();
  }
  static article() {
    return html$.Element.tag("article");
  }
  static aside() {
    return html$.Element.tag("aside");
  }
  static audio() {
    return html$.Element.tag("audio");
  }
  static br() {
    return html$.BRElement.new();
  }
  static canvas() {
    return html$.CanvasElement.new();
  }
  static div() {
    return html$.DivElement.new();
  }
  static footer() {
    return html$.Element.tag("footer");
  }
  static header() {
    return html$.Element.tag("header");
  }
  static hr() {
    return html$.Element.tag("hr");
  }
  static iframe() {
    return html$.Element.tag("iframe");
  }
  static img() {
    return html$.Element.tag("img");
  }
  static li() {
    return html$.Element.tag("li");
  }
  static nav() {
    return html$.Element.tag("nav");
  }
  static ol() {
    return html$.Element.tag("ol");
  }
  static option() {
    return html$.Element.tag("option");
  }
  static p() {
    return html$.Element.tag("p");
  }
  static pre() {
    return html$.Element.tag("pre");
  }
  static section() {
    return html$.Element.tag("section");
  }
  static select() {
    return html$.Element.tag("select");
  }
  static span() {
    return html$.Element.tag("span");
  }
  static svg() {
    return html$.Element.tag("svg");
  }
  static table() {
    return html$.Element.tag("table");
  }
  static td() {
    return html$.Element.tag("td");
  }
  static textarea() {
    return html$.Element.tag("textarea");
  }
  static th() {
    return html$.Element.tag("th");
  }
  static tr() {
    return html$.Element.tag("tr");
  }
  static ul() {
    return html$.Element.tag("ul");
  }
  static video() {
    return html$.Element.tag("video");
  }
  get [$attributes]() {
    return new html$._ElementAttributeMap.new(this);
  }
  set [$attributes](value) {
    let attributes = this[$attributes];
    attributes[$clear]();
    for (let key of value[$keys]) {
      attributes[$_set](key, value[$_get](key));
    }
  }
  [$getAttribute](name) {
    if (!(name != null)) dart.assertFailed("Attribute name cannot be null", L66, 12868, 12, "name != null");
    return this[_getAttribute](name);
  }
  [$getAttributeNS](namespaceURI, name) {
    if (!(name != null)) dart.assertFailed("Attribute name cannot be null", L66, 12876, 12, "name != null");
    return this[_getAttributeNS](namespaceURI, name);
  }
  [$hasAttribute](name) {
    if (!(name != null)) dart.assertFailed("Attribute name cannot be null", L66, 12883, 12, "name != null");
    return this[_hasAttribute](name);
  }
  [$hasAttributeNS](namespaceURI, name) {
    if (!(name != null)) dart.assertFailed("Attribute name cannot be null", L66, 12891, 12, "name != null");
    return this[_hasAttributeNS](namespaceURI, name);
  }
  [$removeAttribute](name) {
    if (!(name != null)) dart.assertFailed("Attribute name cannot be null", L66, 12898, 12, "name != null");
    this[_removeAttribute](name);
  }
  [$removeAttributeNS](namespaceURI, name) {
    if (!(name != null)) dart.assertFailed("Attribute name cannot be null", L66, 12905, 12, "name != null");
    this[_removeAttributeNS](namespaceURI, name);
  }
  [$setAttribute](name, value) {
    if (!(name != null)) dart.assertFailed("Attribute name cannot be null", L66, 12912, 12, "name != null");
    this[_setAttribute](name, value);
  }
  [$setAttributeNS](namespaceURI, name, value) {
    if (!(name != null)) dart.assertFailed("Attribute name cannot be null", L66, 12920, 12, "name != null");
    this[_setAttributeNS](namespaceURI, name, value);
  }
  get [$children]() {
    return new html$._ChildrenElementList._wrap(this);
  }
  set [$children](value) {
    let copy = value[$toList]();
    let children = this[$children];
    children[$clear]();
    children[$addAll](copy);
  }
  [$querySelectorAll](T, selectors) {
    return new (html$._FrozenElementList$(T))._wrap(this[_querySelectorAll](selectors));
  }
  [_setApplyScroll](...args) {
    return this.setApplyScroll.apply(this, args);
  }
  [$setApplyScroll](nativeScrollBehavior) {
    let completer = CompleterOfScrollStateL().new();
    this[_setApplyScroll](dart.fn(value => {
      completer.complete(value);
    }, ScrollStateLToNullN()), nativeScrollBehavior);
    return completer.future;
  }
  [_setDistributeScroll](...args) {
    return this.setDistributeScroll.apply(this, args);
  }
  [$setDistributeScroll](nativeScrollBehavior) {
    let completer = CompleterOfScrollStateL().new();
    this[_setDistributeScroll](dart.fn(value => {
      completer.complete(value);
    }, ScrollStateLToNullN()), nativeScrollBehavior);
    return completer.future;
  }
  get [$classes]() {
    return new html$._ElementCssClassSet.new(this);
  }
  set [$classes](value) {
    let classSet = this[$classes];
    classSet.clear();
    classSet.addAll(value);
  }
  get [$dataset]() {
    return new html$._DataAttributeMap.new(this[$attributes]);
  }
  set [$dataset](value) {
    let data = this[$dataset];
    data[$clear]();
    for (let key of value[$keys]) {
      data[$_set](key, value[$_get](key));
    }
  }
  [$getNamespacedAttributes](namespace) {
    return new html$._NamespacedAttributeMap.new(this, namespace);
  }
  [$getComputedStyle](pseudoElement = null) {
    if (pseudoElement == null) {
      pseudoElement = "";
    }
    return html$.window[_getComputedStyle](this, pseudoElement);
  }
  get [$client]() {
    return new (RectangleOfnumL()).new(this.clientLeft, this.clientTop, this.clientWidth, this.clientHeight);
  }
  get [$offset]() {
    return new (RectangleOfnumL()).new(this[$offsetLeft], this[$offsetTop], this[$offsetWidth], this[$offsetHeight]);
  }
  [$appendText](text) {
    this[$append](html$.Text.new(text));
  }
  [$appendHtml](text, opts) {
    let validator = opts && 'validator' in opts ? opts.validator : null;
    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
    this[$insertAdjacentHtml]("beforeend", text, {validator: validator, treeSanitizer: treeSanitizer});
  }
  static isTagSupported(tag) {
    let e = html$._ElementFactoryProvider.createElement_tag(tag, null);
    return html$.Element.is(e) && !html$.UnknownElement.is(e);
  }
  [$attached]() {
    this[$enteredView]();
  }
  [$detached]() {
    this[$leftView]();
  }
  [$enteredView]() {
  }
  [$getClientRects]() {
    let value = this[_getClientRects]();
    let jsProto = value.prototype;
    if (jsProto == null) {
      value.prototype = Object.create(null);
    }
    _js_helper.applyExtension("DOMRectList", value);
    return value;
  }
  [$leftView]() {
  }
  [$animate](frames, timing = null) {
    if (!core.Iterable.is(frames) || !dart.test(frames[$every](dart.fn(x => core.Map.is(x), MapLOfStringL$dynamicToboolL())))) {
      dart.throw(new core.ArgumentError.new("The frames parameter should be a List of Maps " + "with frame information"));
    }
    let convertedFrames = null;
    if (core.Iterable.is(frames)) {
      convertedFrames = frames[$map](dart.dynamic, C225 || CT.C225)[$toList]();
    } else {
      convertedFrames = frames;
    }
    let convertedTiming = core.Map.is(timing) ? html_common.convertDartToNative_Dictionary(timing) : timing;
    return convertedTiming == null ? this[_animate](convertedFrames) : this[_animate](convertedFrames, convertedTiming);
  }
  [_animate](...args) {
    return this.animate.apply(this, args);
  }
  [$attributeChanged](name, oldValue, newValue) {
  }
  get [$localName]() {
    return this[_localName];
  }
  get [$namespaceUri]() {
    return this[_namespaceUri];
  }
  [$toString]() {
    return this[$localName];
  }
  [$scrollIntoView](alignment = null) {
    let hasScrollIntoViewIfNeeded = true;
    hasScrollIntoViewIfNeeded = !!this.scrollIntoViewIfNeeded;
    if (dart.equals(alignment, html$.ScrollAlignment.TOP)) {
      this[_scrollIntoView](true);
    } else if (dart.equals(alignment, html$.ScrollAlignment.BOTTOM)) {
      this[_scrollIntoView](false);
    } else if (hasScrollIntoViewIfNeeded) {
      if (dart.equals(alignment, html$.ScrollAlignment.CENTER)) {
        this[_scrollIntoViewIfNeeded](true);
      } else {
        this[_scrollIntoViewIfNeeded]();
      }
    } else {
      this[_scrollIntoView]();
    }
  }
  static _determineMouseWheelEventType(e) {
    return "wheel";
  }
  static _determineTransitionEventType(e) {
    if (dart.test(html_common.Device.isWebKit)) {
      return "webkitTransitionEnd";
    } else if (dart.test(html_common.Device.isOpera)) {
      return "oTransitionEnd";
    }
    return "transitionend";
  }
  [$insertAdjacentText](where, text) {
    if (!!this.insertAdjacentText) {
      this[_insertAdjacentText](where, text);
    } else {
      this[_insertAdjacentNode](where, html$.Text.new(text));
    }
  }
  [_insertAdjacentText](...args) {
    return this.insertAdjacentText.apply(this, args);
  }
  [$insertAdjacentHtml](where, html, opts) {
    let validator = opts && 'validator' in opts ? opts.validator : null;
    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
    if (html$._TrustedHtmlTreeSanitizer.is(treeSanitizer)) {
      this[_insertAdjacentHtml](where, html);
    } else {
      this[_insertAdjacentNode](where, this[$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer}));
    }
  }
  [_insertAdjacentHtml](...args) {
    return this.insertAdjacentHTML.apply(this, args);
  }
  [$insertAdjacentElement](where, element) {
    if (!!this.insertAdjacentElement) {
      this[_insertAdjacentElement](where, element);
    } else {
      this[_insertAdjacentNode](where, element);
    }
    return element;
  }
  [_insertAdjacentElement](...args) {
    return this.insertAdjacentElement.apply(this, args);
  }
  [_insertAdjacentNode](where, node) {
    switch (where[$toLowerCase]()) {
      case "beforebegin":
      {
        this.parentNode.insertBefore(node, this);
        break;
      }
      case "afterbegin":
      {
        let first = dart.notNull(this[$nodes][$length]) > 0 ? this[$nodes][$_get](0) : null;
        this.insertBefore(node, first);
        break;
      }
      case "beforeend":
      {
        this[$append](node);
        break;
      }
      case "afterend":
      {
        this.parentNode.insertBefore(node, this[$nextNode]);
        break;
      }
      default:
      {
        dart.throw(new core.ArgumentError.new("Invalid position " + dart.str(where)));
      }
    }
  }
  [$matches](selectors) {
    if (!!this.matches) {
      return this.matches(selectors);
    } else if (!!this.webkitMatchesSelector) {
      return this.webkitMatchesSelector(selectors);
    } else if (!!this.mozMatchesSelector) {
      return this.mozMatchesSelector(selectors);
    } else if (!!this.msMatchesSelector) {
      return this.msMatchesSelector(selectors);
    } else if (!!this.oMatchesSelector) {
      return this.oMatchesSelector(selectors);
    } else {
      dart.throw(new core.UnsupportedError.new("Not supported on this platform"));
    }
  }
  [$matchesWithAncestors](selectors) {
    let elem = this;
    do {
      if (dart.test(elem[$matches](selectors))) return true;
      elem = elem[$parent];
    } while (elem != null);
    return false;
  }
  [$createShadowRoot]() {
    return (this.createShadowRoot || this.webkitCreateShadowRoot).call(this);
  }
  get [$shadowRoot]() {
    return this.shadowRoot || this.webkitShadowRoot;
  }
  get [$contentEdge]() {
    return new html$._ContentCssRect.new(this);
  }
  get [$paddingEdge]() {
    return new html$._PaddingCssRect.new(this);
  }
  get [$borderEdge]() {
    return new html$._BorderCssRect.new(this);
  }
  get [$marginEdge]() {
    return new html$._MarginCssRect.new(this);
  }
  get [$documentOffset]() {
    return this[$offsetTo](html$.document.documentElement);
  }
  [$offsetTo](parent) {
    return html$.Element._offsetToHelper(this, parent);
  }
  static _offsetToHelper(current, parent) {
    let sameAsParent = current == parent;
    let foundAsParent = sameAsParent || parent.tagName === "HTML";
    if (current == null || sameAsParent) {
      if (foundAsParent) return new (PointOfnumL()).new(0, 0);
      dart.throw(new core.ArgumentError.new("Specified element is not a transitive offset " + "parent of this element."));
    }
    let parentOffset = current.offsetParent;
    let p = html$.Element._offsetToHelper(parentOffset, parent);
    return new (PointOfnumL()).new(dart.notNull(p.x) + dart.notNull(current[$offsetLeft]), dart.notNull(p.y) + dart.notNull(current[$offsetTop]));
  }
  [$createFragment](html, opts) {
    let validator = opts && 'validator' in opts ? opts.validator : null;
    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
    if (treeSanitizer == null) {
      if (validator == null) {
        if (html$.Element._defaultValidator == null) {
          html$.Element._defaultValidator = new html$.NodeValidatorBuilder.common();
        }
        validator = html$.Element._defaultValidator;
      }
      if (html$.Element._defaultSanitizer == null) {
        html$.Element._defaultSanitizer = new html$._ValidatingTreeSanitizer.new(validator);
      } else {
        html$.Element._defaultSanitizer.validator = validator;
      }
      treeSanitizer = html$.Element._defaultSanitizer;
    } else if (validator != null) {
      dart.throw(new core.ArgumentError.new("validator can only be passed if treeSanitizer is null"));
    }
    if (html$.Element._parseDocument == null) {
      html$.Element._parseDocument = html$.document.implementation[$createHtmlDocument]("");
      html$.Element._parseRange = html$.Element._parseDocument.createRange();
      let base = html$.BaseElement.as(html$.Element._parseDocument[$createElement]("base"));
      base.href = html$.document[$baseUri];
      html$.Element._parseDocument[$head][$append](base);
    }
    if (html$.Element._parseDocument.body == null) {
      html$.Element._parseDocument.body = html$.BodyElement.as(html$.Element._parseDocument[$createElement]("body"));
    }
    let contextElement = null;
    if (html$.BodyElement.is(this)) {
      contextElement = html$.Element._parseDocument.body;
    } else {
      contextElement = html$.Element._parseDocument[$createElement](this.tagName);
      html$.Element._parseDocument.body[$append](html$.Node.as(contextElement));
    }
    let fragment = null;
    if (dart.test(html$.Range.supportsCreateContextualFragment) && dart.test(this[_canBeUsedToCreateContextualFragment])) {
      html$.Element._parseRange.selectNodeContents(html$.Node.as(contextElement));
      fragment = html$.Element._parseRange.createContextualFragment(html);
    } else {
      dart.dput(contextElement, _innerHtml, html);
      fragment = html$.Element._parseDocument.createDocumentFragment();
      while (dart.dload(contextElement, 'firstChild') != null) {
        dart.dsend(fragment, 'append', [dart.dload(contextElement, 'firstChild')]);
      }
    }
    if (!dart.equals(contextElement, html$.Element._parseDocument.body)) {
      dart.dsend(contextElement, 'remove', []);
    }
    treeSanitizer.sanitizeTree(html$.Node.as(fragment));
    html$.document.adoptNode(html$.Node.as(fragment));
    return html$.DocumentFragment.as(fragment);
  }
  get [_canBeUsedToCreateContextualFragment]() {
    return !dart.test(this[_cannotBeUsedToCreateContextualFragment]);
  }
  get [_cannotBeUsedToCreateContextualFragment]() {
    return html$.Element._tagsForWhichCreateContextualFragmentIsNotSupported[$contains](this.tagName);
  }
  set [$innerHtml](html) {
    this[$setInnerHtml](html);
  }
  [$setInnerHtml](html, opts) {
    let validator = opts && 'validator' in opts ? opts.validator : null;
    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
    this[$text] = null;
    if (html$._TrustedHtmlTreeSanitizer.is(treeSanitizer)) {
      this[_innerHtml] = html;
    } else {
      this[$append](this[$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer}));
    }
  }
  get [$innerHtml]() {
    return this[_innerHtml];
  }
  get [$innerText]() {
    return this.innerText;
  }
  set [$innerText](value) {
    this.innerText = value;
  }
  get [$on]() {
    return new html$.ElementEvents.new(this);
  }
  static _hasCorruptedAttributes(element) {
    return (function(element) {
      if (!(element.attributes instanceof NamedNodeMap)) {
        return true;
      }
      if (element.id == 'lastChild' || element.name == 'lastChild' || element.id == 'previousSibling' || element.name == 'previousSibling' || element.id == 'children' || element.name == 'children') {
        return true;
      }
      var childNodes = element.childNodes;
      if (element.lastChild && element.lastChild !== childNodes[childNodes.length - 1]) {
        return true;
      }
      if (element.children) {
        if (!(element.children instanceof HTMLCollection || element.children instanceof NodeList)) {
          return true;
        }
      }
      var length = 0;
      if (element.children) {
        length = element.children.length;
      }
      for (var i = 0; i < length; i++) {
        var child = element.children[i];
        if (child.id == 'attributes' || child.name == 'attributes' || child.id == 'lastChild' || child.name == 'lastChild' || child.id == 'previousSibling' || child.name == 'previousSibling' || child.id == 'children' || child.name == 'children') {
          return true;
        }
      }
      return false;
    })(element);
  }
  static _hasCorruptedAttributesAdditionalCheck(element) {
    return !(element.attributes instanceof NamedNodeMap);
  }
  static _safeTagName(element) {
    let result = "element tag unavailable";
    try {
      if (typeof dart.dload(element, 'tagName') == 'string') {
        result = core.String.as(dart.dload(element, 'tagName'));
      }
    } catch (e$) {
      let e = dart.getThrown(e$);
    }
    return result;
  }
  get [$offsetParent]() {
    return this.offsetParent;
  }
  get [$offsetHeight]() {
    return this.offsetHeight[$round]();
  }
  get [$offsetLeft]() {
    return this.offsetLeft[$round]();
  }
  get [$offsetTop]() {
    return this.offsetTop[$round]();
  }
  get [$offsetWidth]() {
    return this.offsetWidth[$round]();
  }
  get [$scrollHeight]() {
    return this.scrollHeight[$round]();
  }
  get [$scrollLeft]() {
    return this.scrollLeft[$round]();
  }
  set [$scrollLeft](value) {
    this.scrollLeft = value[$round]();
  }
  get [$scrollTop]() {
    return this.scrollTop[$round]();
  }
  set [$scrollTop](value) {
    this.scrollTop = value[$round]();
  }
  get [$scrollWidth]() {
    return this.scrollWidth[$round]();
  }
  get [$contentEditable]() {
    return this.contentEditable;
  }
  set [$contentEditable](value) {
    this.contentEditable = value;
  }
  get [$dir]() {
    return this.dir;
  }
  set [$dir](value) {
    this.dir = value;
  }
  get [$draggable]() {
    return this.draggable;
  }
  set [$draggable](value) {
    this.draggable = value;
  }
  get [$hidden]() {
    return this.hidden;
  }
  set [$hidden](value) {
    this.hidden = value;
  }
  get [$inert]() {
    return this.inert;
  }
  set [$inert](value) {
    this.inert = value;
  }
  get [$inputMode]() {
    return this.inputMode;
  }
  set [$inputMode](value) {
    this.inputMode = value;
  }
  get [$isContentEditable]() {
    return this.isContentEditable;
  }
  get [$lang]() {
    return this.lang;
  }
  set [$lang](value) {
    this.lang = value;
  }
  get [$spellcheck]() {
    return this.spellcheck;
  }
  set [$spellcheck](value) {
    this.spellcheck = value;
  }
  get [$style]() {
    return this.style;
  }
  get [$tabIndex]() {
    return this.tabIndex;
  }
  set [$tabIndex](value) {
    this.tabIndex = value;
  }
  get [$title]() {
    return this.title;
  }
  set [$title](value) {
    this.title = value;
  }
  get [$translate]() {
    return this.translate;
  }
  set [$translate](value) {
    this.translate = value;
  }
  [$blur](...args) {
    return this.blur.apply(this, args);
  }
  [$click](...args) {
    return this.click.apply(this, args);
  }
  [$focus](...args) {
    return this.focus.apply(this, args);
  }
  get [$accessibleNode]() {
    return this.accessibleNode;
  }
  get [$assignedSlot]() {
    return this.assignedSlot;
  }
  get [_attributes$]() {
    return this.attributes;
  }
  get [$className]() {
    return this.className;
  }
  set [$className](value) {
    this.className = value;
  }
  get [$clientHeight]() {
    return this.clientHeight;
  }
  get [$clientLeft]() {
    return this.clientLeft;
  }
  get [$clientTop]() {
    return this.clientTop;
  }
  get [$clientWidth]() {
    return this.clientWidth;
  }
  get [$computedName]() {
    return this.computedName;
  }
  get [$computedRole]() {
    return this.computedRole;
  }
  get [$id]() {
    return this.id;
  }
  set [$id](value) {
    this.id = value;
  }
  get [_innerHtml]() {
    return this.innerHTML;
  }
  set [_innerHtml](value) {
    this.innerHTML = value;
  }
  get [_localName]() {
    return this.localName;
  }
  get [_namespaceUri]() {
    return this.namespaceURI;
  }
  get [$outerHtml]() {
    return this.outerHTML;
  }
  get [_scrollHeight]() {
    return this.scrollHeight;
  }
  get [_scrollLeft]() {
    return this.scrollLeft;
  }
  set [_scrollLeft](value) {
    this.scrollLeft = value;
  }
  get [_scrollTop]() {
    return this.scrollTop;
  }
  set [_scrollTop](value) {
    this.scrollTop = value;
  }
  get [_scrollWidth]() {
    return this.scrollWidth;
  }
  get [$slot]() {
    return this.slot;
  }
  set [$slot](value) {
    this.slot = value;
  }
  get [$styleMap]() {
    return this.styleMap;
  }
  get [$tagName]() {
    return this.tagName;
  }
  [$attachShadow](shadowRootInitDict) {
    let shadowRootInitDict_1 = html_common.convertDartToNative_Dictionary(shadowRootInitDict);
    return this[_attachShadow_1](shadowRootInitDict_1);
  }
  [_attachShadow_1](...args) {
    return this.attachShadow.apply(this, args);
  }
  [$closest](...args) {
    return this.closest.apply(this, args);
  }
  [$getAnimations](...args) {
    return this.getAnimations.apply(this, args);
  }
  [_getAttribute](...args) {
    return this.getAttribute.apply(this, args);
  }
  [_getAttributeNS](...args) {
    return this.getAttributeNS.apply(this, args);
  }
  [$getAttributeNames](...args) {
    return this.getAttributeNames.apply(this, args);
  }
  [$getBoundingClientRect](...args) {
    return this.getBoundingClientRect.apply(this, args);
  }
  [_getClientRects](...args) {
    return this.getClientRects.apply(this, args);
  }
  [$getDestinationInsertionPoints](...args) {
    return this.getDestinationInsertionPoints.apply(this, args);
  }
  [$getElementsByClassName](...args) {
    return this.getElementsByClassName.apply(this, args);
  }
  [_getElementsByTagName](...args) {
    return this.getElementsByTagName.apply(this, args);
  }
  [_hasAttribute](...args) {
    return this.hasAttribute.apply(this, args);
  }
  [_hasAttributeNS](...args) {
    return this.hasAttributeNS.apply(this, args);
  }
  [$hasPointerCapture](...args) {
    return this.hasPointerCapture.apply(this, args);
  }
  [$releasePointerCapture](...args) {
    return this.releasePointerCapture.apply(this, args);
  }
  [_removeAttribute](...args) {
    return this.removeAttribute.apply(this, args);
  }
  [_removeAttributeNS](...args) {
    return this.removeAttributeNS.apply(this, args);
  }
  [$requestPointerLock](...args) {
    return this.requestPointerLock.apply(this, args);
  }
  [$scroll](options_OR_x = null, y = null) {
    if (options_OR_x == null && y == null) {
      this[_scroll_1]();
      return;
    }
    if (core.Map.is(options_OR_x) && y == null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
      this[_scroll_2](options_1);
      return;
    }
    if (y != null && typeof options_OR_x == 'number') {
      this[_scroll_3](options_OR_x, y);
      return;
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [_scroll_1](...args) {
    return this.scroll.apply(this, args);
  }
  [_scroll_2](...args) {
    return this.scroll.apply(this, args);
  }
  [_scroll_3](...args) {
    return this.scroll.apply(this, args);
  }
  [$scrollBy](options_OR_x = null, y = null) {
    if (options_OR_x == null && y == null) {
      this[_scrollBy_1]();
      return;
    }
    if (core.Map.is(options_OR_x) && y == null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
      this[_scrollBy_2](options_1);
      return;
    }
    if (y != null && typeof options_OR_x == 'number') {
      this[_scrollBy_3](options_OR_x, y);
      return;
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [_scrollBy_1](...args) {
    return this.scrollBy.apply(this, args);
  }
  [_scrollBy_2](...args) {
    return this.scrollBy.apply(this, args);
  }
  [_scrollBy_3](...args) {
    return this.scrollBy.apply(this, args);
  }
  [_scrollIntoView](...args) {
    return this.scrollIntoView.apply(this, args);
  }
  [_scrollIntoViewIfNeeded](...args) {
    return this.scrollIntoViewIfNeeded.apply(this, args);
  }
  [$scrollTo](options_OR_x = null, y = null) {
    if (options_OR_x == null && y == null) {
      this[_scrollTo_1]();
      return;
    }
    if (core.Map.is(options_OR_x) && y == null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
      this[_scrollTo_2](options_1);
      return;
    }
    if (y != null && typeof options_OR_x == 'number') {
      this[_scrollTo_3](options_OR_x, y);
      return;
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [_scrollTo_1](...args) {
    return this.scrollTo.apply(this, args);
  }
  [_scrollTo_2](...args) {
    return this.scrollTo.apply(this, args);
  }
  [_scrollTo_3](...args) {
    return this.scrollTo.apply(this, args);
  }
  [_setAttribute](...args) {
    return this.setAttribute.apply(this, args);
  }
  [_setAttributeNS](...args) {
    return this.setAttributeNS.apply(this, args);
  }
  [$setPointerCapture](...args) {
    return this.setPointerCapture.apply(this, args);
  }
  [$requestFullscreen](...args) {
    return this.webkitRequestFullscreen.apply(this, args);
  }
  [$after](...args) {
    return this.after.apply(this, args);
  }
  [$before](...args) {
    return this.before.apply(this, args);
  }
  get [$nextElementSibling]() {
    return this.nextElementSibling;
  }
  get [$previousElementSibling]() {
    return this.previousElementSibling;
  }
  get [_childElementCount]() {
    return this.childElementCount;
  }
  get [_children]() {
    return this.children;
  }
  get [_firstElementChild]() {
    return this.firstElementChild;
  }
  get [_lastElementChild]() {
    return this.lastElementChild;
  }
  [$querySelector](...args) {
    return this.querySelector.apply(this, args);
  }
  [_querySelectorAll](...args) {
    return this.querySelectorAll.apply(this, args);
  }
  get [$onAbort]() {
    return html$.Element.abortEvent.forElement(this);
  }
  get [$onBeforeCopy]() {
    return html$.Element.beforeCopyEvent.forElement(this);
  }
  get [$onBeforeCut]() {
    return html$.Element.beforeCutEvent.forElement(this);
  }
  get [$onBeforePaste]() {
    return html$.Element.beforePasteEvent.forElement(this);
  }
  get [$onBlur]() {
    return html$.Element.blurEvent.forElement(this);
  }
  get [$onCanPlay]() {
    return html$.Element.canPlayEvent.forElement(this);
  }
  get [$onCanPlayThrough]() {
    return html$.Element.canPlayThroughEvent.forElement(this);
  }
  get [$onChange]() {
    return html$.Element.changeEvent.forElement(this);
  }
  get [$onClick]() {
    return html$.Element.clickEvent.forElement(this);
  }
  get [$onContextMenu]() {
    return html$.Element.contextMenuEvent.forElement(this);
  }
  get [$onCopy]() {
    return html$.Element.copyEvent.forElement(this);
  }
  get [$onCut]() {
    return html$.Element.cutEvent.forElement(this);
  }
  get [$onDoubleClick]() {
    return html$.Element.doubleClickEvent.forElement(this);
  }
  get [$onDrag]() {
    return html$.Element.dragEvent.forElement(this);
  }
  get [$onDragEnd]() {
    return html$.Element.dragEndEvent.forElement(this);
  }
  get [$onDragEnter]() {
    return html$.Element.dragEnterEvent.forElement(this);
  }
  get [$onDragLeave]() {
    return html$.Element.dragLeaveEvent.forElement(this);
  }
  get [$onDragOver]() {
    return html$.Element.dragOverEvent.forElement(this);
  }
  get [$onDragStart]() {
    return html$.Element.dragStartEvent.forElement(this);
  }
  get [$onDrop]() {
    return html$.Element.dropEvent.forElement(this);
  }
  get [$onDurationChange]() {
    return html$.Element.durationChangeEvent.forElement(this);
  }
  get [$onEmptied]() {
    return html$.Element.emptiedEvent.forElement(this);
  }
  get [$onEnded]() {
    return html$.Element.endedEvent.forElement(this);
  }
  get [$onError]() {
    return html$.Element.errorEvent.forElement(this);
  }
  get [$onFocus]() {
    return html$.Element.focusEvent.forElement(this);
  }
  get [$onInput]() {
    return html$.Element.inputEvent.forElement(this);
  }
  get [$onInvalid]() {
    return html$.Element.invalidEvent.forElement(this);
  }
  get [$onKeyDown]() {
    return html$.Element.keyDownEvent.forElement(this);
  }
  get [$onKeyPress]() {
    return html$.Element.keyPressEvent.forElement(this);
  }
  get [$onKeyUp]() {
    return html$.Element.keyUpEvent.forElement(this);
  }
  get [$onLoad]() {
    return html$.Element.loadEvent.forElement(this);
  }
  get [$onLoadedData]() {
    return html$.Element.loadedDataEvent.forElement(this);
  }
  get [$onLoadedMetadata]() {
    return html$.Element.loadedMetadataEvent.forElement(this);
  }
  get [$onMouseDown]() {
    return html$.Element.mouseDownEvent.forElement(this);
  }
  get [$onMouseEnter]() {
    return html$.Element.mouseEnterEvent.forElement(this);
  }
  get [$onMouseLeave]() {
    return html$.Element.mouseLeaveEvent.forElement(this);
  }
  get [$onMouseMove]() {
    return html$.Element.mouseMoveEvent.forElement(this);
  }
  get [$onMouseOut]() {
    return html$.Element.mouseOutEvent.forElement(this);
  }
  get [$onMouseOver]() {
    return html$.Element.mouseOverEvent.forElement(this);
  }
  get [$onMouseUp]() {
    return html$.Element.mouseUpEvent.forElement(this);
  }
  get [$onMouseWheel]() {
    return html$.Element.mouseWheelEvent.forElement(this);
  }
  get [$onPaste]() {
    return html$.Element.pasteEvent.forElement(this);
  }
  get [$onPause]() {
    return html$.Element.pauseEvent.forElement(this);
  }
  get [$onPlay]() {
    return html$.Element.playEvent.forElement(this);
  }
  get [$onPlaying]() {
    return html$.Element.playingEvent.forElement(this);
  }
  get [$onRateChange]() {
    return html$.Element.rateChangeEvent.forElement(this);
  }
  get [$onReset]() {
    return html$.Element.resetEvent.forElement(this);
  }
  get [$onResize]() {
    return html$.Element.resizeEvent.forElement(this);
  }
  get [$onScroll]() {
    return html$.Element.scrollEvent.forElement(this);
  }
  get [$onSearch]() {
    return html$.Element.searchEvent.forElement(this);
  }
  get [$onSeeked]() {
    return html$.Element.seekedEvent.forElement(this);
  }
  get [$onSeeking]() {
    return html$.Element.seekingEvent.forElement(this);
  }
  get [$onSelect]() {
    return html$.Element.selectEvent.forElement(this);
  }
  get [$onSelectStart]() {
    return html$.Element.selectStartEvent.forElement(this);
  }
  get [$onStalled]() {
    return html$.Element.stalledEvent.forElement(this);
  }
  get [$onSubmit]() {
    return html$.Element.submitEvent.forElement(this);
  }
  get [$onSuspend]() {
    return html$.Element.suspendEvent.forElement(this);
  }
  get [$onTimeUpdate]() {
    return html$.Element.timeUpdateEvent.forElement(this);
  }
  get [$onTouchCancel]() {
    return html$.Element.touchCancelEvent.forElement(this);
  }
  get [$onTouchEnd]() {
    return html$.Element.touchEndEvent.forElement(this);
  }
  get [$onTouchEnter]() {
    return html$.Element.touchEnterEvent.forElement(this);
  }
  get [$onTouchLeave]() {
    return html$.Element.touchLeaveEvent.forElement(this);
  }
  get [$onTouchMove]() {
    return html$.Element.touchMoveEvent.forElement(this);
  }
  get [$onTouchStart]() {
    return html$.Element.touchStartEvent.forElement(this);
  }
  get [$onTransitionEnd]() {
    return html$.Element.transitionEndEvent.forElement(this);
  }
  get [$onVolumeChange]() {
    return html$.Element.volumeChangeEvent.forElement(this);
  }
  get [$onWaiting]() {
    return html$.Element.waitingEvent.forElement(this);
  }
  get [$onFullscreenChange]() {
    return html$.Element.fullscreenChangeEvent.forElement(this);
  }
  get [$onFullscreenError]() {
    return html$.Element.fullscreenErrorEvent.forElement(this);
  }
  get [$onWheel]() {
    return html$.Element.wheelEvent.forElement(this);
  }
};
(html$.Element.created = function() {
  html$.Element.__proto__._created.call(this);
  ;
}).prototype = html$.Element.prototype;
dart.addTypeTests(html$.Element);
dart.addTypeCaches(html$.Element);
html$.Element[dart.implements] = () => [html$.NonDocumentTypeChildNode, html$.GlobalEventHandlers, html$.ParentNode, html$.ChildNode];
dart.setMethodSignature(html$.Element, () => ({
  __proto__: dart.getMethods(html$.Element.__proto__),
  [$getAttribute]: dart.fnType(core.String, [core.String]),
  [$getAttributeNS]: dart.fnType(core.String, [core.String, core.String]),
  [$hasAttribute]: dart.fnType(core.bool, [core.String]),
  [$hasAttributeNS]: dart.fnType(core.bool, [core.String, core.String]),
  [$removeAttribute]: dart.fnType(dart.void, [core.String]),
  [$removeAttributeNS]: dart.fnType(dart.void, [core.String, core.String]),
  [$setAttribute]: dart.fnType(dart.void, [core.String, core.String]),
  [$setAttributeNS]: dart.fnType(dart.void, [core.String, core.String, core.String]),
  [$querySelectorAll]: dart.gFnType(T => [html$.ElementList$(T), [core.String]], T => [html$.Element]),
  [_setApplyScroll]: dart.fnType(dart.void, [dart.fnType(dart.void, [html$.ScrollState]), core.String]),
  [$setApplyScroll]: dart.fnType(async.Future$(html$.ScrollState), [core.String]),
  [_setDistributeScroll]: dart.fnType(dart.void, [dart.fnType(dart.void, [html$.ScrollState]), core.String]),
  [$setDistributeScroll]: dart.fnType(async.Future$(html$.ScrollState), [core.String]),
  [$getNamespacedAttributes]: dart.fnType(core.Map$(core.String, core.String), [core.String]),
  [$getComputedStyle]: dart.fnType(html$.CssStyleDeclaration, [], [core.String]),
  [$appendText]: dart.fnType(dart.void, [core.String]),
  [$appendHtml]: dart.fnType(dart.void, [core.String], {treeSanitizer: html$.NodeTreeSanitizer, validator: html$.NodeValidator}, {}),
  [$attached]: dart.fnType(dart.void, []),
  [$detached]: dart.fnType(dart.void, []),
  [$enteredView]: dart.fnType(dart.void, []),
  [$getClientRects]: dart.fnType(core.List$(math.Rectangle$(core.num)), []),
  [$leftView]: dart.fnType(dart.void, []),
  [$animate]: dart.fnType(html$.Animation, [core.Iterable$(core.Map$(core.String, dart.dynamic))], [dart.dynamic]),
  [_animate]: dart.fnType(html$.Animation, [core.Object], [dart.dynamic]),
  [$attributeChanged]: dart.fnType(dart.void, [core.String, core.String, core.String]),
  [$scrollIntoView]: dart.fnType(dart.void, [], [html$.ScrollAlignment]),
  [$insertAdjacentText]: dart.fnType(dart.void, [core.String, core.String]),
  [_insertAdjacentText]: dart.fnType(dart.void, [core.String, core.String]),
  [$insertAdjacentHtml]: dart.fnType(dart.void, [core.String, core.String], {treeSanitizer: html$.NodeTreeSanitizer, validator: html$.NodeValidator}, {}),
  [_insertAdjacentHtml]: dart.fnType(dart.void, [core.String, core.String]),
  [$insertAdjacentElement]: dart.fnType(html$.Element, [core.String, html$.Element]),
  [_insertAdjacentElement]: dart.fnType(dart.void, [core.String, html$.Element]),
  [_insertAdjacentNode]: dart.fnType(dart.void, [core.String, html$.Node]),
  [$matches]: dart.fnType(core.bool, [core.String]),
  [$matchesWithAncestors]: dart.fnType(core.bool, [core.String]),
  [$createShadowRoot]: dart.fnType(html$.ShadowRoot, []),
  [$offsetTo]: dart.fnType(math.Point$(core.num), [html$.Element]),
  [$createFragment]: dart.fnType(html$.DocumentFragment, [core.String], {treeSanitizer: html$.NodeTreeSanitizer, validator: html$.NodeValidator}, {}),
  [$setInnerHtml]: dart.fnType(dart.void, [core.String], {treeSanitizer: html$.NodeTreeSanitizer, validator: html$.NodeValidator}, {}),
  [$blur]: dart.fnType(dart.void, []),
  [$click]: dart.fnType(dart.void, []),
  [$focus]: dart.fnType(dart.void, []),
  [$attachShadow]: dart.fnType(html$.ShadowRoot, [core.Map]),
  [_attachShadow_1]: dart.fnType(html$.ShadowRoot, [dart.dynamic]),
  [$closest]: dart.fnType(html$.Element, [core.String]),
  [$getAnimations]: dart.fnType(core.List$(html$.Animation), []),
  [_getAttribute]: dart.fnType(core.String, [core.String]),
  [_getAttributeNS]: dart.fnType(core.String, [core.String, core.String]),
  [$getAttributeNames]: dart.fnType(core.List$(core.String), []),
  [$getBoundingClientRect]: dart.fnType(math.Rectangle$(core.num), []),
  [_getClientRects]: dart.fnType(core.List$(math.Rectangle$(core.num)), []),
  [$getDestinationInsertionPoints]: dart.fnType(core.List$(html$.Node), []),
  [$getElementsByClassName]: dart.fnType(core.List$(html$.Node), [core.String]),
  [_getElementsByTagName]: dart.fnType(core.List$(html$.Node), [core.String]),
  [_hasAttribute]: dart.fnType(core.bool, [core.String]),
  [_hasAttributeNS]: dart.fnType(core.bool, [core.String, core.String]),
  [$hasPointerCapture]: dart.fnType(core.bool, [core.int]),
  [$releasePointerCapture]: dart.fnType(dart.void, [core.int]),
  [_removeAttribute]: dart.fnType(dart.void, [core.String]),
  [_removeAttributeNS]: dart.fnType(dart.void, [core.String, core.String]),
  [$requestPointerLock]: dart.fnType(dart.void, []),
  [$scroll]: dart.fnType(dart.void, [], [dart.dynamic, core.num]),
  [_scroll_1]: dart.fnType(dart.void, []),
  [_scroll_2]: dart.fnType(dart.void, [dart.dynamic]),
  [_scroll_3]: dart.fnType(dart.void, [core.num, dart.dynamic]),
  [$scrollBy]: dart.fnType(dart.void, [], [dart.dynamic, core.num]),
  [_scrollBy_1]: dart.fnType(dart.void, []),
  [_scrollBy_2]: dart.fnType(dart.void, [dart.dynamic]),
  [_scrollBy_3]: dart.fnType(dart.void, [core.num, dart.dynamic]),
  [_scrollIntoView]: dart.fnType(dart.void, [], [core.Object]),
  [_scrollIntoViewIfNeeded]: dart.fnType(dart.void, [], [core.bool]),
  [$scrollTo]: dart.fnType(dart.void, [], [dart.dynamic, core.num]),
  [_scrollTo_1]: dart.fnType(dart.void, []),
  [_scrollTo_2]: dart.fnType(dart.void, [dart.dynamic]),
  [_scrollTo_3]: dart.fnType(dart.void, [core.num, dart.dynamic]),
  [_setAttribute]: dart.fnType(dart.void, [core.String, core.String]),
  [_setAttributeNS]: dart.fnType(dart.void, [core.String, core.String, core.String]),
  [$setPointerCapture]: dart.fnType(dart.void, [core.int]),
  [$requestFullscreen]: dart.fnType(dart.void, []),
  [$after]: dart.fnType(dart.void, [core.Object]),
  [$before]: dart.fnType(dart.void, [core.Object]),
  [$querySelector]: dart.fnType(html$.Element, [core.String]),
  [_querySelectorAll]: dart.fnType(core.List$(html$.Node), [core.String])
}));
dart.setGetterSignature(html$.Element, () => ({
  __proto__: dart.getGetters(html$.Element.__proto__),
  [$attributes]: core.Map$(core.String, core.String),
  [$children]: core.List$(html$.Element),
  [$classes]: html$.CssClassSet,
  [$dataset]: core.Map$(core.String, core.String),
  [$client]: math.Rectangle$(core.num),
  [$offset]: math.Rectangle$(core.num),
  [$localName]: core.String,
  [$namespaceUri]: core.String,
  [$shadowRoot]: html$.ShadowRoot,
  [$contentEdge]: html$.CssRect,
  [$paddingEdge]: html$.CssRect,
  [$borderEdge]: html$.CssRect,
  [$marginEdge]: html$.CssRect,
  [$documentOffset]: math.Point$(core.num),
  [_canBeUsedToCreateContextualFragment]: core.bool,
  [_cannotBeUsedToCreateContextualFragment]: core.bool,
  [$innerHtml]: core.String,
  [$innerText]: core.String,
  [$on]: html$.ElementEvents,
  [$offsetParent]: html$.Element,
  [$offsetHeight]: core.int,
  [$offsetLeft]: core.int,
  [$offsetTop]: core.int,
  [$offsetWidth]: core.int,
  [$scrollHeight]: core.int,
  [$scrollLeft]: core.int,
  [$scrollTop]: core.int,
  [$scrollWidth]: core.int,
  [$contentEditable]: core.String,
  [$dir]: core.String,
  [$draggable]: core.bool,
  [$hidden]: core.bool,
  [$inert]: core.bool,
  [$inputMode]: core.String,
  [$isContentEditable]: core.bool,
  [$lang]: core.String,
  [$spellcheck]: core.bool,
  [$style]: html$.CssStyleDeclaration,
  [$tabIndex]: core.int,
  [$title]: core.String,
  [$translate]: core.bool,
  [$accessibleNode]: html$.AccessibleNode,
  [$assignedSlot]: html$.SlotElement,
  [_attributes$]: html$._NamedNodeMap,
  [$className]: core.String,
  [$clientHeight]: core.int,
  [$clientLeft]: core.int,
  [$clientTop]: core.int,
  [$clientWidth]: core.int,
  [$computedName]: core.String,
  [$computedRole]: core.String,
  [$id]: core.String,
  [_innerHtml]: core.String,
  [_localName]: core.String,
  [_namespaceUri]: core.String,
  [$outerHtml]: core.String,
  [_scrollHeight]: core.int,
  [_scrollLeft]: core.num,
  [_scrollTop]: core.num,
  [_scrollWidth]: core.int,
  [$slot]: core.String,
  [$styleMap]: html$.StylePropertyMap,
  [$tagName]: core.String,
  [$nextElementSibling]: html$.Element,
  [$previousElementSibling]: html$.Element,
  [_childElementCount]: core.int,
  [_children]: core.List$(html$.Node),
  [_firstElementChild]: html$.Element,
  [_lastElementChild]: html$.Element,
  [$onAbort]: html$.ElementStream$(html$.Event),
  [$onBeforeCopy]: html$.ElementStream$(html$.Event),
  [$onBeforeCut]: html$.ElementStream$(html$.Event),
  [$onBeforePaste]: html$.ElementStream$(html$.Event),
  [$onBlur]: html$.ElementStream$(html$.Event),
  [$onCanPlay]: html$.ElementStream$(html$.Event),
  [$onCanPlayThrough]: html$.ElementStream$(html$.Event),
  [$onChange]: html$.ElementStream$(html$.Event),
  [$onClick]: html$.ElementStream$(html$.MouseEvent),
  [$onContextMenu]: html$.ElementStream$(html$.MouseEvent),
  [$onCopy]: html$.ElementStream$(html$.ClipboardEvent),
  [$onCut]: html$.ElementStream$(html$.ClipboardEvent),
  [$onDoubleClick]: html$.ElementStream$(html$.Event),
  [$onDrag]: html$.ElementStream$(html$.MouseEvent),
  [$onDragEnd]: html$.ElementStream$(html$.MouseEvent),
  [$onDragEnter]: html$.ElementStream$(html$.MouseEvent),
  [$onDragLeave]: html$.ElementStream$(html$.MouseEvent),
  [$onDragOver]: html$.ElementStream$(html$.MouseEvent),
  [$onDragStart]: html$.ElementStream$(html$.MouseEvent),
  [$onDrop]: html$.ElementStream$(html$.MouseEvent),
  [$onDurationChange]: html$.ElementStream$(html$.Event),
  [$onEmptied]: html$.ElementStream$(html$.Event),
  [$onEnded]: html$.ElementStream$(html$.Event),
  [$onError]: html$.ElementStream$(html$.Event),
  [$onFocus]: html$.ElementStream$(html$.Event),
  [$onInput]: html$.ElementStream$(html$.Event),
  [$onInvalid]: html$.ElementStream$(html$.Event),
  [$onKeyDown]: html$.ElementStream$(html$.KeyboardEvent),
  [$onKeyPress]: html$.ElementStream$(html$.KeyboardEvent),
  [$onKeyUp]: html$.ElementStream$(html$.KeyboardEvent),
  [$onLoad]: html$.ElementStream$(html$.Event),
  [$onLoadedData]: html$.ElementStream$(html$.Event),
  [$onLoadedMetadata]: html$.ElementStream$(html$.Event),
  [$onMouseDown]: html$.ElementStream$(html$.MouseEvent),
  [$onMouseEnter]: html$.ElementStream$(html$.MouseEvent),
  [$onMouseLeave]: html$.ElementStream$(html$.MouseEvent),
  [$onMouseMove]: html$.ElementStream$(html$.MouseEvent),
  [$onMouseOut]: html$.ElementStream$(html$.MouseEvent),
  [$onMouseOver]: html$.ElementStream$(html$.MouseEvent),
  [$onMouseUp]: html$.ElementStream$(html$.MouseEvent),
  [$onMouseWheel]: html$.ElementStream$(html$.WheelEvent),
  [$onPaste]: html$.ElementStream$(html$.ClipboardEvent),
  [$onPause]: html$.ElementStream$(html$.Event),
  [$onPlay]: html$.ElementStream$(html$.Event),
  [$onPlaying]: html$.ElementStream$(html$.Event),
  [$onRateChange]: html$.ElementStream$(html$.Event),
  [$onReset]: html$.ElementStream$(html$.Event),
  [$onResize]: html$.ElementStream$(html$.Event),
  [$onScroll]: html$.ElementStream$(html$.Event),
  [$onSearch]: html$.ElementStream$(html$.Event),
  [$onSeeked]: html$.ElementStream$(html$.Event),
  [$onSeeking]: html$.ElementStream$(html$.Event),
  [$onSelect]: html$.ElementStream$(html$.Event),
  [$onSelectStart]: html$.ElementStream$(html$.Event),
  [$onStalled]: html$.ElementStream$(html$.Event),
  [$onSubmit]: html$.ElementStream$(html$.Event),
  [$onSuspend]: html$.ElementStream$(html$.Event),
  [$onTimeUpdate]: html$.ElementStream$(html$.Event),
  [$onTouchCancel]: html$.ElementStream$(html$.TouchEvent),
  [$onTouchEnd]: html$.ElementStream$(html$.TouchEvent),
  [$onTouchEnter]: html$.ElementStream$(html$.TouchEvent),
  [$onTouchLeave]: html$.ElementStream$(html$.TouchEvent),
  [$onTouchMove]: html$.ElementStream$(html$.TouchEvent),
  [$onTouchStart]: html$.ElementStream$(html$.TouchEvent),
  [$onTransitionEnd]: html$.ElementStream$(html$.TransitionEvent),
  [$onVolumeChange]: html$.ElementStream$(html$.Event),
  [$onWaiting]: html$.ElementStream$(html$.Event),
  [$onFullscreenChange]: html$.ElementStream$(html$.Event),
  [$onFullscreenError]: html$.ElementStream$(html$.Event),
  [$onWheel]: html$.ElementStream$(html$.WheelEvent)
}));
dart.setSetterSignature(html$.Element, () => ({
  __proto__: dart.getSetters(html$.Element.__proto__),
  [$attributes]: core.Map$(core.String, core.String),
  [$children]: core.List$(html$.Element),
  [$classes]: core.Iterable$(core.String),
  [$dataset]: core.Map$(core.String, core.String),
  [$innerHtml]: core.String,
  [$innerText]: core.String,
  [$scrollLeft]: core.int,
  [$scrollTop]: core.int,
  [$contentEditable]: core.String,
  [$dir]: core.String,
  [$draggable]: core.bool,
  [$hidden]: core.bool,
  [$inert]: core.bool,
  [$inputMode]: core.String,
  [$lang]: core.String,
  [$spellcheck]: core.bool,
  [$tabIndex]: core.int,
  [$title]: core.String,
  [$translate]: core.bool,
  [$className]: core.String,
  [$id]: core.String,
  [_innerHtml]: core.String,
  [_scrollLeft]: core.num,
  [_scrollTop]: core.num,
  [$slot]: core.String
}));
dart.setLibraryUri(html$.Element, L65);
dart.defineLazy(html$.Element, {
  /*html$.Element.mouseWheelEvent*/get mouseWheelEvent() {
    return C226 || CT.C226;
  },
  /*html$.Element.transitionEndEvent*/get transitionEndEvent() {
    return C228 || CT.C228;
  },
  /*html$.Element._parseDocument*/get _parseDocument() {
    return null;
  },
  set _parseDocument(_) {},
  /*html$.Element._parseRange*/get _parseRange() {
    return null;
  },
  set _parseRange(_) {},
  /*html$.Element._defaultValidator*/get _defaultValidator() {
    return null;
  },
  set _defaultValidator(_) {},
  /*html$.Element._defaultSanitizer*/get _defaultSanitizer() {
    return null;
  },
  set _defaultSanitizer(_) {},
  /*html$.Element._tagsForWhichCreateContextualFragmentIsNotSupported*/get _tagsForWhichCreateContextualFragmentIsNotSupported() {
    return C230 || CT.C230;
  },
  /*html$.Element.abortEvent*/get abortEvent() {
    return C215 || CT.C215;
  },
  /*html$.Element.beforeCopyEvent*/get beforeCopyEvent() {
    return C231 || CT.C231;
  },
  /*html$.Element.beforeCutEvent*/get beforeCutEvent() {
    return C232 || CT.C232;
  },
  /*html$.Element.beforePasteEvent*/get beforePasteEvent() {
    return C233 || CT.C233;
  },
  /*html$.Element.blurEvent*/get blurEvent() {
    return C234 || CT.C234;
  },
  /*html$.Element.canPlayEvent*/get canPlayEvent() {
    return C235 || CT.C235;
  },
  /*html$.Element.canPlayThroughEvent*/get canPlayThroughEvent() {
    return C236 || CT.C236;
  },
  /*html$.Element.changeEvent*/get changeEvent() {
    return C237 || CT.C237;
  },
  /*html$.Element.clickEvent*/get clickEvent() {
    return C238 || CT.C238;
  },
  /*html$.Element.contextMenuEvent*/get contextMenuEvent() {
    return C239 || CT.C239;
  },
  /*html$.Element.copyEvent*/get copyEvent() {
    return C240 || CT.C240;
  },
  /*html$.Element.cutEvent*/get cutEvent() {
    return C241 || CT.C241;
  },
  /*html$.Element.doubleClickEvent*/get doubleClickEvent() {
    return C242 || CT.C242;
  },
  /*html$.Element.dragEvent*/get dragEvent() {
    return C243 || CT.C243;
  },
  /*html$.Element.dragEndEvent*/get dragEndEvent() {
    return C244 || CT.C244;
  },
  /*html$.Element.dragEnterEvent*/get dragEnterEvent() {
    return C245 || CT.C245;
  },
  /*html$.Element.dragLeaveEvent*/get dragLeaveEvent() {
    return C246 || CT.C246;
  },
  /*html$.Element.dragOverEvent*/get dragOverEvent() {
    return C247 || CT.C247;
  },
  /*html$.Element.dragStartEvent*/get dragStartEvent() {
    return C248 || CT.C248;
  },
  /*html$.Element.dropEvent*/get dropEvent() {
    return C249 || CT.C249;
  },
  /*html$.Element.durationChangeEvent*/get durationChangeEvent() {
    return C250 || CT.C250;
  },
  /*html$.Element.emptiedEvent*/get emptiedEvent() {
    return C251 || CT.C251;
  },
  /*html$.Element.endedEvent*/get endedEvent() {
    return C252 || CT.C252;
  },
  /*html$.Element.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  },
  /*html$.Element.focusEvent*/get focusEvent() {
    return C253 || CT.C253;
  },
  /*html$.Element.inputEvent*/get inputEvent() {
    return C254 || CT.C254;
  },
  /*html$.Element.invalidEvent*/get invalidEvent() {
    return C255 || CT.C255;
  },
  /*html$.Element.keyDownEvent*/get keyDownEvent() {
    return C256 || CT.C256;
  },
  /*html$.Element.keyPressEvent*/get keyPressEvent() {
    return C257 || CT.C257;
  },
  /*html$.Element.keyUpEvent*/get keyUpEvent() {
    return C258 || CT.C258;
  },
  /*html$.Element.loadEvent*/get loadEvent() {
    return C259 || CT.C259;
  },
  /*html$.Element.loadedDataEvent*/get loadedDataEvent() {
    return C260 || CT.C260;
  },
  /*html$.Element.loadedMetadataEvent*/get loadedMetadataEvent() {
    return C261 || CT.C261;
  },
  /*html$.Element.mouseDownEvent*/get mouseDownEvent() {
    return C262 || CT.C262;
  },
  /*html$.Element.mouseEnterEvent*/get mouseEnterEvent() {
    return C263 || CT.C263;
  },
  /*html$.Element.mouseLeaveEvent*/get mouseLeaveEvent() {
    return C264 || CT.C264;
  },
  /*html$.Element.mouseMoveEvent*/get mouseMoveEvent() {
    return C265 || CT.C265;
  },
  /*html$.Element.mouseOutEvent*/get mouseOutEvent() {
    return C266 || CT.C266;
  },
  /*html$.Element.mouseOverEvent*/get mouseOverEvent() {
    return C267 || CT.C267;
  },
  /*html$.Element.mouseUpEvent*/get mouseUpEvent() {
    return C268 || CT.C268;
  },
  /*html$.Element.pasteEvent*/get pasteEvent() {
    return C269 || CT.C269;
  },
  /*html$.Element.pauseEvent*/get pauseEvent() {
    return C270 || CT.C270;
  },
  /*html$.Element.playEvent*/get playEvent() {
    return C271 || CT.C271;
  },
  /*html$.Element.playingEvent*/get playingEvent() {
    return C272 || CT.C272;
  },
  /*html$.Element.rateChangeEvent*/get rateChangeEvent() {
    return C273 || CT.C273;
  },
  /*html$.Element.resetEvent*/get resetEvent() {
    return C274 || CT.C274;
  },
  /*html$.Element.resizeEvent*/get resizeEvent() {
    return C275 || CT.C275;
  },
  /*html$.Element.scrollEvent*/get scrollEvent() {
    return C276 || CT.C276;
  },
  /*html$.Element.searchEvent*/get searchEvent() {
    return C277 || CT.C277;
  },
  /*html$.Element.seekedEvent*/get seekedEvent() {
    return C278 || CT.C278;
  },
  /*html$.Element.seekingEvent*/get seekingEvent() {
    return C279 || CT.C279;
  },
  /*html$.Element.selectEvent*/get selectEvent() {
    return C280 || CT.C280;
  },
  /*html$.Element.selectStartEvent*/get selectStartEvent() {
    return C281 || CT.C281;
  },
  /*html$.Element.stalledEvent*/get stalledEvent() {
    return C282 || CT.C282;
  },
  /*html$.Element.submitEvent*/get submitEvent() {
    return C283 || CT.C283;
  },
  /*html$.Element.suspendEvent*/get suspendEvent() {
    return C284 || CT.C284;
  },
  /*html$.Element.timeUpdateEvent*/get timeUpdateEvent() {
    return C285 || CT.C285;
  },
  /*html$.Element.touchCancelEvent*/get touchCancelEvent() {
    return C286 || CT.C286;
  },
  /*html$.Element.touchEndEvent*/get touchEndEvent() {
    return C287 || CT.C287;
  },
  /*html$.Element.touchEnterEvent*/get touchEnterEvent() {
    return C288 || CT.C288;
  },
  /*html$.Element.touchLeaveEvent*/get touchLeaveEvent() {
    return C289 || CT.C289;
  },
  /*html$.Element.touchMoveEvent*/get touchMoveEvent() {
    return C290 || CT.C290;
  },
  /*html$.Element.touchStartEvent*/get touchStartEvent() {
    return C291 || CT.C291;
  },
  /*html$.Element.volumeChangeEvent*/get volumeChangeEvent() {
    return C292 || CT.C292;
  },
  /*html$.Element.waitingEvent*/get waitingEvent() {
    return C293 || CT.C293;
  },
  /*html$.Element.fullscreenChangeEvent*/get fullscreenChangeEvent() {
    return C294 || CT.C294;
  },
  /*html$.Element.fullscreenErrorEvent*/get fullscreenErrorEvent() {
    return C295 || CT.C295;
  },
  /*html$.Element.wheelEvent*/get wheelEvent() {
    return C296 || CT.C296;
  }
}, true);
dart.registerExtension("Element", html$.Element);
html$.HtmlElement = class HtmlElement extends html$.Element {
  static new() {
    dart.throw(new core.UnsupportedError.new("Not supported"));
  }
  get [$nonce]() {
    return this.nonce;
  }
  set [$nonce](value) {
    this.nonce = value;
  }
};
(html$.HtmlElement.created = function() {
  html$.HtmlElement.__proto__.created.call(this);
  ;
}).prototype = html$.HtmlElement.prototype;
dart.addTypeTests(html$.HtmlElement);
dart.addTypeCaches(html$.HtmlElement);
html$.HtmlElement[dart.implements] = () => [html$.NoncedElement];
dart.setGetterSignature(html$.HtmlElement, () => ({
  __proto__: dart.getGetters(html$.HtmlElement.__proto__),
  [$nonce]: core.String
}));
dart.setSetterSignature(html$.HtmlElement, () => ({
  __proto__: dart.getSetters(html$.HtmlElement.__proto__),
  [$nonce]: core.String
}));
dart.setLibraryUri(html$.HtmlElement, L65);
dart.registerExtension("HTMLElement", html$.HtmlElement);
html$.ExtendableEvent = class ExtendableEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.ExtendableEvent._create_1(type, eventInitDict_1);
    }
    return html$.ExtendableEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new ExtendableEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new ExtendableEvent(type);
  }
  [$waitUntil](...args) {
    return this.waitUntil.apply(this, args);
  }
};
dart.addTypeTests(html$.ExtendableEvent);
dart.addTypeCaches(html$.ExtendableEvent);
dart.setMethodSignature(html$.ExtendableEvent, () => ({
  __proto__: dart.getMethods(html$.ExtendableEvent.__proto__),
  [$waitUntil]: dart.fnType(dart.void, [async.Future])
}));
dart.setLibraryUri(html$.ExtendableEvent, L65);
dart.registerExtension("ExtendableEvent", html$.ExtendableEvent);
html$.AbortPaymentEvent = class AbortPaymentEvent$ extends html$.ExtendableEvent {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$.AbortPaymentEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new AbortPaymentEvent(type, eventInitDict);
  }
  [$respondWith](...args) {
    return this.respondWith.apply(this, args);
  }
};
dart.addTypeTests(html$.AbortPaymentEvent);
dart.addTypeCaches(html$.AbortPaymentEvent);
dart.setMethodSignature(html$.AbortPaymentEvent, () => ({
  __proto__: dart.getMethods(html$.AbortPaymentEvent.__proto__),
  [$respondWith]: dart.fnType(dart.void, [async.Future])
}));
dart.setLibraryUri(html$.AbortPaymentEvent, L65);
dart.registerExtension("AbortPaymentEvent", html$.AbortPaymentEvent);
html$.Sensor = class Sensor extends html$.EventTarget {
  get [$activated]() {
    return this.activated;
  }
  get [$hasReading]() {
    return this.hasReading;
  }
  get [$timestamp]() {
    return this.timestamp;
  }
  [$start](...args) {
    return this.start.apply(this, args);
  }
  [$stop](...args) {
    return this.stop.apply(this, args);
  }
  get [$onError]() {
    return html$.Sensor.errorEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.Sensor);
dart.addTypeCaches(html$.Sensor);
dart.setMethodSignature(html$.Sensor, () => ({
  __proto__: dart.getMethods(html$.Sensor.__proto__),
  [$start]: dart.fnType(dart.void, []),
  [$stop]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.Sensor, () => ({
  __proto__: dart.getGetters(html$.Sensor.__proto__),
  [$activated]: core.bool,
  [$hasReading]: core.bool,
  [$timestamp]: core.num,
  [$onError]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.Sensor, L65);
dart.defineLazy(html$.Sensor, {
  /*html$.Sensor.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  }
}, true);
dart.registerExtension("Sensor", html$.Sensor);
html$.OrientationSensor = class OrientationSensor extends html$.Sensor {
  get [$quaternion]() {
    return this.quaternion;
  }
  [$populateMatrix](...args) {
    return this.populateMatrix.apply(this, args);
  }
};
dart.addTypeTests(html$.OrientationSensor);
dart.addTypeCaches(html$.OrientationSensor);
dart.setMethodSignature(html$.OrientationSensor, () => ({
  __proto__: dart.getMethods(html$.OrientationSensor.__proto__),
  [$populateMatrix]: dart.fnType(dart.void, [core.Object])
}));
dart.setGetterSignature(html$.OrientationSensor, () => ({
  __proto__: dart.getGetters(html$.OrientationSensor.__proto__),
  [$quaternion]: core.List$(core.num)
}));
dart.setLibraryUri(html$.OrientationSensor, L65);
dart.registerExtension("OrientationSensor", html$.OrientationSensor);
html$.AbsoluteOrientationSensor = class AbsoluteOrientationSensor$ extends html$.OrientationSensor {
  static new(sensorOptions = null) {
    if (sensorOptions != null) {
      let sensorOptions_1 = html_common.convertDartToNative_Dictionary(sensorOptions);
      return html$.AbsoluteOrientationSensor._create_1(sensorOptions_1);
    }
    return html$.AbsoluteOrientationSensor._create_2();
  }
  static _create_1(sensorOptions) {
    return new AbsoluteOrientationSensor(sensorOptions);
  }
  static _create_2() {
    return new AbsoluteOrientationSensor();
  }
};
dart.addTypeTests(html$.AbsoluteOrientationSensor);
dart.addTypeCaches(html$.AbsoluteOrientationSensor);
dart.setLibraryUri(html$.AbsoluteOrientationSensor, L65);
dart.registerExtension("AbsoluteOrientationSensor", html$.AbsoluteOrientationSensor);
html$.AbstractWorker = class AbstractWorker extends _interceptors.Interceptor {
  get onError() {
    return html$.AbstractWorker.errorEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.AbstractWorker);
dart.addTypeCaches(html$.AbstractWorker);
html$.AbstractWorker[dart.implements] = () => [html$.EventTarget];
dart.setGetterSignature(html$.AbstractWorker, () => ({
  __proto__: dart.getGetters(html$.AbstractWorker.__proto__),
  onError: async.Stream$(html$.Event),
  [$onError]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.AbstractWorker, L65);
dart.defineExtensionAccessors(html$.AbstractWorker, ['onError']);
dart.defineLazy(html$.AbstractWorker, {
  /*html$.AbstractWorker.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  }
}, true);
html$.Accelerometer = class Accelerometer$ extends html$.Sensor {
  static new(sensorOptions = null) {
    if (sensorOptions != null) {
      let sensorOptions_1 = html_common.convertDartToNative_Dictionary(sensorOptions);
      return html$.Accelerometer._create_1(sensorOptions_1);
    }
    return html$.Accelerometer._create_2();
  }
  static _create_1(sensorOptions) {
    return new Accelerometer(sensorOptions);
  }
  static _create_2() {
    return new Accelerometer();
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
  get [$z]() {
    return this.z;
  }
};
dart.addTypeTests(html$.Accelerometer);
dart.addTypeCaches(html$.Accelerometer);
dart.setGetterSignature(html$.Accelerometer, () => ({
  __proto__: dart.getGetters(html$.Accelerometer.__proto__),
  [$x]: core.num,
  [$y]: core.num,
  [$z]: core.num
}));
dart.setLibraryUri(html$.Accelerometer, L65);
dart.registerExtension("Accelerometer", html$.Accelerometer);
var C297;
var C298;
var C299;
var C300;
var C301;
var C302;
html$.AccessibleNode = class AccessibleNode$ extends html$.EventTarget {
  static new() {
    return html$.AccessibleNode._create_1();
  }
  static _create_1() {
    return new AccessibleNode();
  }
  get [$activeDescendant]() {
    return this.activeDescendant;
  }
  set [$activeDescendant](value) {
    this.activeDescendant = value;
  }
  get [$atomic]() {
    return this.atomic;
  }
  set [$atomic](value) {
    this.atomic = value;
  }
  get [$autocomplete]() {
    return this.autocomplete;
  }
  set [$autocomplete](value) {
    this.autocomplete = value;
  }
  get [$busy]() {
    return this.busy;
  }
  set [$busy](value) {
    this.busy = value;
  }
  get [$checked]() {
    return this.checked;
  }
  set [$checked](value) {
    this.checked = value;
  }
  get [$colCount]() {
    return this.colCount;
  }
  set [$colCount](value) {
    this.colCount = value;
  }
  get [$colIndex]() {
    return this.colIndex;
  }
  set [$colIndex](value) {
    this.colIndex = value;
  }
  get [$colSpan]() {
    return this.colSpan;
  }
  set [$colSpan](value) {
    this.colSpan = value;
  }
  get [$controls]() {
    return this.controls;
  }
  set [$controls](value) {
    this.controls = value;
  }
  get [$current]() {
    return this.current;
  }
  set [$current](value) {
    this.current = value;
  }
  get [$describedBy]() {
    return this.describedBy;
  }
  set [$describedBy](value) {
    this.describedBy = value;
  }
  get [$details]() {
    return this.details;
  }
  set [$details](value) {
    this.details = value;
  }
  get [$disabled]() {
    return this.disabled;
  }
  set [$disabled](value) {
    this.disabled = value;
  }
  get [$errorMessage]() {
    return this.errorMessage;
  }
  set [$errorMessage](value) {
    this.errorMessage = value;
  }
  get [$expanded]() {
    return this.expanded;
  }
  set [$expanded](value) {
    this.expanded = value;
  }
  get [$flowTo]() {
    return this.flowTo;
  }
  set [$flowTo](value) {
    this.flowTo = value;
  }
  get [$hasPopUp]() {
    return this.hasPopUp;
  }
  set [$hasPopUp](value) {
    this.hasPopUp = value;
  }
  get [$hidden]() {
    return this.hidden;
  }
  set [$hidden](value) {
    this.hidden = value;
  }
  get [$invalid]() {
    return this.invalid;
  }
  set [$invalid](value) {
    this.invalid = value;
  }
  get [$keyShortcuts]() {
    return this.keyShortcuts;
  }
  set [$keyShortcuts](value) {
    this.keyShortcuts = value;
  }
  get [$label]() {
    return this.label;
  }
  set [$label](value) {
    this.label = value;
  }
  get [$labeledBy]() {
    return this.labeledBy;
  }
  set [$labeledBy](value) {
    this.labeledBy = value;
  }
  get [$level]() {
    return this.level;
  }
  set [$level](value) {
    this.level = value;
  }
  get [$live]() {
    return this.live;
  }
  set [$live](value) {
    this.live = value;
  }
  get [$modal]() {
    return this.modal;
  }
  set [$modal](value) {
    this.modal = value;
  }
  get [$multiline]() {
    return this.multiline;
  }
  set [$multiline](value) {
    this.multiline = value;
  }
  get [$multiselectable]() {
    return this.multiselectable;
  }
  set [$multiselectable](value) {
    this.multiselectable = value;
  }
  get [$orientation]() {
    return this.orientation;
  }
  set [$orientation](value) {
    this.orientation = value;
  }
  get [$owns]() {
    return this.owns;
  }
  set [$owns](value) {
    this.owns = value;
  }
  get [$placeholder]() {
    return this.placeholder;
  }
  set [$placeholder](value) {
    this.placeholder = value;
  }
  get [$posInSet]() {
    return this.posInSet;
  }
  set [$posInSet](value) {
    this.posInSet = value;
  }
  get [$pressed]() {
    return this.pressed;
  }
  set [$pressed](value) {
    this.pressed = value;
  }
  get [$readOnly]() {
    return this.readOnly;
  }
  set [$readOnly](value) {
    this.readOnly = value;
  }
  get [$relevant]() {
    return this.relevant;
  }
  set [$relevant](value) {
    this.relevant = value;
  }
  get [$required]() {
    return this.required;
  }
  set [$required](value) {
    this.required = value;
  }
  get [$role]() {
    return this.role;
  }
  set [$role](value) {
    this.role = value;
  }
  get [$roleDescription]() {
    return this.roleDescription;
  }
  set [$roleDescription](value) {
    this.roleDescription = value;
  }
  get [$rowCount]() {
    return this.rowCount;
  }
  set [$rowCount](value) {
    this.rowCount = value;
  }
  get [$rowIndex]() {
    return this.rowIndex;
  }
  set [$rowIndex](value) {
    this.rowIndex = value;
  }
  get [$rowSpan]() {
    return this.rowSpan;
  }
  set [$rowSpan](value) {
    this.rowSpan = value;
  }
  get [$selected]() {
    return this.selected;
  }
  set [$selected](value) {
    this.selected = value;
  }
  get [$setSize]() {
    return this.setSize;
  }
  set [$setSize](value) {
    this.setSize = value;
  }
  get [$sort]() {
    return this.sort;
  }
  set [$sort](value) {
    this.sort = value;
  }
  get [$valueMax]() {
    return this.valueMax;
  }
  set [$valueMax](value) {
    this.valueMax = value;
  }
  get [$valueMin]() {
    return this.valueMin;
  }
  set [$valueMin](value) {
    this.valueMin = value;
  }
  get [$valueNow]() {
    return this.valueNow;
  }
  set [$valueNow](value) {
    this.valueNow = value;
  }
  get [$valueText]() {
    return this.valueText;
  }
  set [$valueText](value) {
    this.valueText = value;
  }
  [$appendChild](...args) {
    return this.appendChild.apply(this, args);
  }
  get [$onAccessibleClick]() {
    return html$.AccessibleNode.accessibleClickEvent.forTarget(this);
  }
  get [$onAccessibleContextMenu]() {
    return html$.AccessibleNode.accessibleContextMenuEvent.forTarget(this);
  }
  get [$onAccessibleDecrement]() {
    return html$.AccessibleNode.accessibleDecrementEvent.forTarget(this);
  }
  get [$onAccessibleFocus]() {
    return html$.AccessibleNode.accessibleFocusEvent.forTarget(this);
  }
  get [$onAccessibleIncrement]() {
    return html$.AccessibleNode.accessibleIncrementEvent.forTarget(this);
  }
  get [$onAccessibleScrollIntoView]() {
    return html$.AccessibleNode.accessibleScrollIntoViewEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.AccessibleNode);
dart.addTypeCaches(html$.AccessibleNode);
dart.setMethodSignature(html$.AccessibleNode, () => ({
  __proto__: dart.getMethods(html$.AccessibleNode.__proto__),
  [$appendChild]: dart.fnType(dart.void, [html$.AccessibleNode])
}));
dart.setGetterSignature(html$.AccessibleNode, () => ({
  __proto__: dart.getGetters(html$.AccessibleNode.__proto__),
  [$activeDescendant]: html$.AccessibleNode,
  [$atomic]: core.bool,
  [$autocomplete]: core.String,
  [$busy]: core.bool,
  [$checked]: core.String,
  [$colCount]: core.int,
  [$colIndex]: core.int,
  [$colSpan]: core.int,
  [$controls]: html$.AccessibleNodeList,
  [$current]: core.String,
  [$describedBy]: html$.AccessibleNodeList,
  [$details]: html$.AccessibleNode,
  [$disabled]: core.bool,
  [$errorMessage]: html$.AccessibleNode,
  [$expanded]: core.bool,
  [$flowTo]: html$.AccessibleNodeList,
  [$hasPopUp]: core.String,
  [$hidden]: core.bool,
  [$invalid]: core.String,
  [$keyShortcuts]: core.String,
  [$label]: core.String,
  [$labeledBy]: html$.AccessibleNodeList,
  [$level]: core.int,
  [$live]: core.String,
  [$modal]: core.bool,
  [$multiline]: core.bool,
  [$multiselectable]: core.bool,
  [$orientation]: core.String,
  [$owns]: html$.AccessibleNodeList,
  [$placeholder]: core.String,
  [$posInSet]: core.int,
  [$pressed]: core.String,
  [$readOnly]: core.bool,
  [$relevant]: core.String,
  [$required]: core.bool,
  [$role]: core.String,
  [$roleDescription]: core.String,
  [$rowCount]: core.int,
  [$rowIndex]: core.int,
  [$rowSpan]: core.int,
  [$selected]: core.bool,
  [$setSize]: core.int,
  [$sort]: core.String,
  [$valueMax]: core.num,
  [$valueMin]: core.num,
  [$valueNow]: core.num,
  [$valueText]: core.String,
  [$onAccessibleClick]: async.Stream$(html$.Event),
  [$onAccessibleContextMenu]: async.Stream$(html$.Event),
  [$onAccessibleDecrement]: async.Stream$(html$.Event),
  [$onAccessibleFocus]: async.Stream$(html$.Event),
  [$onAccessibleIncrement]: async.Stream$(html$.Event),
  [$onAccessibleScrollIntoView]: async.Stream$(html$.Event)
}));
dart.setSetterSignature(html$.AccessibleNode, () => ({
  __proto__: dart.getSetters(html$.AccessibleNode.__proto__),
  [$activeDescendant]: html$.AccessibleNode,
  [$atomic]: core.bool,
  [$autocomplete]: core.String,
  [$busy]: core.bool,
  [$checked]: core.String,
  [$colCount]: core.int,
  [$colIndex]: core.int,
  [$colSpan]: core.int,
  [$controls]: html$.AccessibleNodeList,
  [$current]: core.String,
  [$describedBy]: html$.AccessibleNodeList,
  [$details]: html$.AccessibleNode,
  [$disabled]: core.bool,
  [$errorMessage]: html$.AccessibleNode,
  [$expanded]: core.bool,
  [$flowTo]: html$.AccessibleNodeList,
  [$hasPopUp]: core.String,
  [$hidden]: core.bool,
  [$invalid]: core.String,
  [$keyShortcuts]: core.String,
  [$label]: core.String,
  [$labeledBy]: html$.AccessibleNodeList,
  [$level]: core.int,
  [$live]: core.String,
  [$modal]: core.bool,
  [$multiline]: core.bool,
  [$multiselectable]: core.bool,
  [$orientation]: core.String,
  [$owns]: html$.AccessibleNodeList,
  [$placeholder]: core.String,
  [$posInSet]: core.int,
  [$pressed]: core.String,
  [$readOnly]: core.bool,
  [$relevant]: core.String,
  [$required]: core.bool,
  [$role]: core.String,
  [$roleDescription]: core.String,
  [$rowCount]: core.int,
  [$rowIndex]: core.int,
  [$rowSpan]: core.int,
  [$selected]: core.bool,
  [$setSize]: core.int,
  [$sort]: core.String,
  [$valueMax]: core.num,
  [$valueMin]: core.num,
  [$valueNow]: core.num,
  [$valueText]: core.String
}));
dart.setLibraryUri(html$.AccessibleNode, L65);
dart.defineLazy(html$.AccessibleNode, {
  /*html$.AccessibleNode.accessibleClickEvent*/get accessibleClickEvent() {
    return C297 || CT.C297;
  },
  /*html$.AccessibleNode.accessibleContextMenuEvent*/get accessibleContextMenuEvent() {
    return C298 || CT.C298;
  },
  /*html$.AccessibleNode.accessibleDecrementEvent*/get accessibleDecrementEvent() {
    return C299 || CT.C299;
  },
  /*html$.AccessibleNode.accessibleFocusEvent*/get accessibleFocusEvent() {
    return C300 || CT.C300;
  },
  /*html$.AccessibleNode.accessibleIncrementEvent*/get accessibleIncrementEvent() {
    return C301 || CT.C301;
  },
  /*html$.AccessibleNode.accessibleScrollIntoViewEvent*/get accessibleScrollIntoViewEvent() {
    return C302 || CT.C302;
  }
}, true);
dart.registerExtension("AccessibleNode", html$.AccessibleNode);
var __setter__ = dart.privateName(html$, "__setter__");
html$.AccessibleNodeList = class AccessibleNodeList$ extends _interceptors.Interceptor {
  static new(nodes = null) {
    if (nodes != null) {
      return html$.AccessibleNodeList._create_1(nodes);
    }
    return html$.AccessibleNodeList._create_2();
  }
  static _create_1(nodes) {
    return new AccessibleNodeList(nodes);
  }
  static _create_2() {
    return new AccessibleNodeList();
  }
  get [$length]() {
    return this.length;
  }
  set [$length](value) {
    this.length = value;
  }
  [__setter__](...args) {
    return this.__setter__.apply(this, args);
  }
  [$add](...args) {
    return this.add.apply(this, args);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
  [$remove](...args) {
    return this.remove.apply(this, args);
  }
};
dart.addTypeTests(html$.AccessibleNodeList);
dart.addTypeCaches(html$.AccessibleNodeList);
dart.setMethodSignature(html$.AccessibleNodeList, () => ({
  __proto__: dart.getMethods(html$.AccessibleNodeList.__proto__),
  [__setter__]: dart.fnType(dart.void, [core.int, html$.AccessibleNode]),
  [$add]: dart.fnType(dart.void, [html$.AccessibleNode, html$.AccessibleNode]),
  [$item]: dart.fnType(html$.AccessibleNode, [core.int]),
  [$remove]: dart.fnType(dart.void, [core.int])
}));
dart.setGetterSignature(html$.AccessibleNodeList, () => ({
  __proto__: dart.getGetters(html$.AccessibleNodeList.__proto__),
  [$length]: core.int
}));
dart.setSetterSignature(html$.AccessibleNodeList, () => ({
  __proto__: dart.getSetters(html$.AccessibleNodeList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$.AccessibleNodeList, L65);
dart.registerExtension("AccessibleNodeList", html$.AccessibleNodeList);
html$.AmbientLightSensor = class AmbientLightSensor$ extends html$.Sensor {
  static new(sensorOptions = null) {
    if (sensorOptions != null) {
      let sensorOptions_1 = html_common.convertDartToNative_Dictionary(sensorOptions);
      return html$.AmbientLightSensor._create_1(sensorOptions_1);
    }
    return html$.AmbientLightSensor._create_2();
  }
  static _create_1(sensorOptions) {
    return new AmbientLightSensor(sensorOptions);
  }
  static _create_2() {
    return new AmbientLightSensor();
  }
  get [$illuminance]() {
    return this.illuminance;
  }
};
dart.addTypeTests(html$.AmbientLightSensor);
dart.addTypeCaches(html$.AmbientLightSensor);
dart.setGetterSignature(html$.AmbientLightSensor, () => ({
  __proto__: dart.getGetters(html$.AmbientLightSensor.__proto__),
  [$illuminance]: core.num
}));
dart.setLibraryUri(html$.AmbientLightSensor, L65);
dart.registerExtension("AmbientLightSensor", html$.AmbientLightSensor);
html$.AnchorElement = class AnchorElement extends html$.HtmlElement {
  static new(opts) {
    let href = opts && 'href' in opts ? opts.href : null;
    let e = html$.document.createElement("a");
    if (href != null) e.href = href;
    return e;
  }
  get [$download]() {
    return this.download;
  }
  set [$download](value) {
    this.download = value;
  }
  get [$hreflang]() {
    return this.hreflang;
  }
  set [$hreflang](value) {
    this.hreflang = value;
  }
  get [$referrerPolicy]() {
    return this.referrerPolicy;
  }
  set [$referrerPolicy](value) {
    this.referrerPolicy = value;
  }
  get [$rel]() {
    return this.rel;
  }
  set [$rel](value) {
    this.rel = value;
  }
  get [$target]() {
    return this.target;
  }
  set [$target](value) {
    this.target = value;
  }
  get [$type]() {
    return this.type;
  }
  set [$type](value) {
    this.type = value;
  }
  get [$hash]() {
    return this.hash;
  }
  set [$hash](value) {
    this.hash = value;
  }
  get [$host]() {
    return this.host;
  }
  set [$host](value) {
    this.host = value;
  }
  get [$hostname]() {
    return this.hostname;
  }
  set [$hostname](value) {
    this.hostname = value;
  }
  get [$href]() {
    return this.href;
  }
  set [$href](value) {
    this.href = value;
  }
  get [$origin]() {
    return this.origin;
  }
  get [$password]() {
    return this.password;
  }
  set [$password](value) {
    this.password = value;
  }
  get [$pathname]() {
    return this.pathname;
  }
  set [$pathname](value) {
    this.pathname = value;
  }
  get [$port]() {
    return this.port;
  }
  set [$port](value) {
    this.port = value;
  }
  get [$protocol]() {
    return this.protocol;
  }
  set [$protocol](value) {
    this.protocol = value;
  }
  get [$search]() {
    return this.search;
  }
  set [$search](value) {
    this.search = value;
  }
  get [$username]() {
    return this.username;
  }
  set [$username](value) {
    this.username = value;
  }
  [$toString]() {
    return String(this);
  }
};
(html$.AnchorElement.created = function() {
  html$.AnchorElement.__proto__.created.call(this);
  ;
}).prototype = html$.AnchorElement.prototype;
dart.addTypeTests(html$.AnchorElement);
dart.addTypeCaches(html$.AnchorElement);
html$.AnchorElement[dart.implements] = () => [html$.HtmlHyperlinkElementUtils];
dart.setGetterSignature(html$.AnchorElement, () => ({
  __proto__: dart.getGetters(html$.AnchorElement.__proto__),
  [$download]: core.String,
  [$hreflang]: core.String,
  [$referrerPolicy]: core.String,
  [$rel]: core.String,
  [$target]: core.String,
  [$type]: core.String,
  [$hash]: core.String,
  [$host]: core.String,
  [$hostname]: core.String,
  [$href]: core.String,
  [$origin]: core.String,
  [$password]: core.String,
  [$pathname]: core.String,
  [$port]: core.String,
  [$protocol]: core.String,
  [$search]: core.String,
  [$username]: core.String
}));
dart.setSetterSignature(html$.AnchorElement, () => ({
  __proto__: dart.getSetters(html$.AnchorElement.__proto__),
  [$download]: core.String,
  [$hreflang]: core.String,
  [$referrerPolicy]: core.String,
  [$rel]: core.String,
  [$target]: core.String,
  [$type]: core.String,
  [$hash]: core.String,
  [$host]: core.String,
  [$hostname]: core.String,
  [$href]: core.String,
  [$password]: core.String,
  [$pathname]: core.String,
  [$port]: core.String,
  [$protocol]: core.String,
  [$search]: core.String,
  [$username]: core.String
}));
dart.setLibraryUri(html$.AnchorElement, L65);
dart.registerExtension("HTMLAnchorElement", html$.AnchorElement);
var C303;
var C304;
html$.Animation = class Animation$ extends html$.EventTarget {
  static new(effect = null, timeline = null) {
    if (timeline != null) {
      return html$.Animation._create_1(effect, timeline);
    }
    if (effect != null) {
      return html$.Animation._create_2(effect);
    }
    return html$.Animation._create_3();
  }
  static _create_1(effect, timeline) {
    return new Animation(effect, timeline);
  }
  static _create_2(effect) {
    return new Animation(effect);
  }
  static _create_3() {
    return new Animation();
  }
  static get supported() {
    return !!document.body.animate;
  }
  get [$currentTime]() {
    return this.currentTime;
  }
  set [$currentTime](value) {
    this.currentTime = value;
  }
  get [$effect]() {
    return this.effect;
  }
  set [$effect](value) {
    this.effect = value;
  }
  get [$finished]() {
    return js_util.promiseToFuture(html$.Animation, this.finished);
  }
  get [$id]() {
    return this.id;
  }
  set [$id](value) {
    this.id = value;
  }
  get [$playState]() {
    return this.playState;
  }
  get [$playbackRate]() {
    return this.playbackRate;
  }
  set [$playbackRate](value) {
    this.playbackRate = value;
  }
  get [$ready]() {
    return js_util.promiseToFuture(html$.Animation, this.ready);
  }
  get [$startTime]() {
    return this.startTime;
  }
  set [$startTime](value) {
    this.startTime = value;
  }
  get [$timeline]() {
    return this.timeline;
  }
  [$cancel](...args) {
    return this.cancel.apply(this, args);
  }
  [$finish](...args) {
    return this.finish.apply(this, args);
  }
  [$pause](...args) {
    return this.pause.apply(this, args);
  }
  [$play](...args) {
    return this.play.apply(this, args);
  }
  [$reverse](...args) {
    return this.reverse.apply(this, args);
  }
  get [$onCancel]() {
    return html$.Animation.cancelEvent.forTarget(this);
  }
  get [$onFinish]() {
    return html$.Animation.finishEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.Animation);
dart.addTypeCaches(html$.Animation);
dart.setMethodSignature(html$.Animation, () => ({
  __proto__: dart.getMethods(html$.Animation.__proto__),
  [$cancel]: dart.fnType(dart.void, []),
  [$finish]: dart.fnType(dart.void, []),
  [$pause]: dart.fnType(dart.void, []),
  [$play]: dart.fnType(dart.void, []),
  [$reverse]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.Animation, () => ({
  __proto__: dart.getGetters(html$.Animation.__proto__),
  [$currentTime]: core.num,
  [$effect]: html$.AnimationEffectReadOnly,
  [$finished]: async.Future$(html$.Animation),
  [$id]: core.String,
  [$playState]: core.String,
  [$playbackRate]: core.num,
  [$ready]: async.Future$(html$.Animation),
  [$startTime]: core.num,
  [$timeline]: html$.AnimationTimeline,
  [$onCancel]: async.Stream$(html$.Event),
  [$onFinish]: async.Stream$(html$.Event)
}));
dart.setSetterSignature(html$.Animation, () => ({
  __proto__: dart.getSetters(html$.Animation.__proto__),
  [$currentTime]: core.num,
  [$effect]: html$.AnimationEffectReadOnly,
  [$id]: core.String,
  [$playbackRate]: core.num,
  [$startTime]: core.num
}));
dart.setLibraryUri(html$.Animation, L65);
dart.defineLazy(html$.Animation, {
  /*html$.Animation.cancelEvent*/get cancelEvent() {
    return C303 || CT.C303;
  },
  /*html$.Animation.finishEvent*/get finishEvent() {
    return C304 || CT.C304;
  }
}, true);
dart.registerExtension("Animation", html$.Animation);
var _getComputedTiming_1 = dart.privateName(html$, "_getComputedTiming_1");
html$.AnimationEffectReadOnly = class AnimationEffectReadOnly extends _interceptors.Interceptor {
  get [$timing]() {
    return this.timing;
  }
  [$getComputedTiming]() {
    return html_common.convertNativeToDart_Dictionary(this[_getComputedTiming_1]());
  }
  [_getComputedTiming_1](...args) {
    return this.getComputedTiming.apply(this, args);
  }
};
dart.addTypeTests(html$.AnimationEffectReadOnly);
dart.addTypeCaches(html$.AnimationEffectReadOnly);
dart.setMethodSignature(html$.AnimationEffectReadOnly, () => ({
  __proto__: dart.getMethods(html$.AnimationEffectReadOnly.__proto__),
  [$getComputedTiming]: dart.fnType(core.Map, []),
  [_getComputedTiming_1]: dart.fnType(dart.dynamic, [])
}));
dart.setGetterSignature(html$.AnimationEffectReadOnly, () => ({
  __proto__: dart.getGetters(html$.AnimationEffectReadOnly.__proto__),
  [$timing]: html$.AnimationEffectTimingReadOnly
}));
dart.setLibraryUri(html$.AnimationEffectReadOnly, L65);
dart.registerExtension("AnimationEffectReadOnly", html$.AnimationEffectReadOnly);
html$.AnimationEffectTimingReadOnly = class AnimationEffectTimingReadOnly extends _interceptors.Interceptor {
  get [$delay]() {
    return this.delay;
  }
  get [$direction]() {
    return this.direction;
  }
  get [$duration]() {
    return this.duration;
  }
  get [$easing]() {
    return this.easing;
  }
  get [$endDelay]() {
    return this.endDelay;
  }
  get [$fill]() {
    return this.fill;
  }
  get [$iterationStart]() {
    return this.iterationStart;
  }
  get [$iterations]() {
    return this.iterations;
  }
};
dart.addTypeTests(html$.AnimationEffectTimingReadOnly);
dart.addTypeCaches(html$.AnimationEffectTimingReadOnly);
dart.setGetterSignature(html$.AnimationEffectTimingReadOnly, () => ({
  __proto__: dart.getGetters(html$.AnimationEffectTimingReadOnly.__proto__),
  [$delay]: core.num,
  [$direction]: core.String,
  [$duration]: core.Object,
  [$easing]: core.String,
  [$endDelay]: core.num,
  [$fill]: core.String,
  [$iterationStart]: core.num,
  [$iterations]: core.num
}));
dart.setLibraryUri(html$.AnimationEffectTimingReadOnly, L65);
dart.registerExtension("AnimationEffectTimingReadOnly", html$.AnimationEffectTimingReadOnly);
html$.AnimationEffectTiming = class AnimationEffectTiming extends html$.AnimationEffectTimingReadOnly {
  get [$delay]() {
    return this.delay;
  }
  set [$delay](value) {
    this.delay = value;
  }
  get [$direction]() {
    return this.direction;
  }
  set [$direction](value) {
    this.direction = value;
  }
  get [$duration]() {
    return this.duration;
  }
  set [$duration](value) {
    this.duration = value;
  }
  get [$easing]() {
    return this.easing;
  }
  set [$easing](value) {
    this.easing = value;
  }
  get [$endDelay]() {
    return this.endDelay;
  }
  set [$endDelay](value) {
    this.endDelay = value;
  }
  get [$fill]() {
    return this.fill;
  }
  set [$fill](value) {
    this.fill = value;
  }
  get [$iterationStart]() {
    return this.iterationStart;
  }
  set [$iterationStart](value) {
    this.iterationStart = value;
  }
  get [$iterations]() {
    return this.iterations;
  }
  set [$iterations](value) {
    this.iterations = value;
  }
};
dart.addTypeTests(html$.AnimationEffectTiming);
dart.addTypeCaches(html$.AnimationEffectTiming);
dart.setSetterSignature(html$.AnimationEffectTiming, () => ({
  __proto__: dart.getSetters(html$.AnimationEffectTiming.__proto__),
  [$delay]: core.num,
  [$direction]: core.String,
  [$duration]: core.Object,
  [$easing]: core.String,
  [$endDelay]: core.num,
  [$fill]: core.String,
  [$iterationStart]: core.num,
  [$iterations]: core.num
}));
dart.setLibraryUri(html$.AnimationEffectTiming, L65);
dart.registerExtension("AnimationEffectTiming", html$.AnimationEffectTiming);
html$.AnimationEvent = class AnimationEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.AnimationEvent._create_1(type, eventInitDict_1);
    }
    return html$.AnimationEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new AnimationEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new AnimationEvent(type);
  }
  get [$animationName]() {
    return this.animationName;
  }
  get [$elapsedTime]() {
    return this.elapsedTime;
  }
};
dart.addTypeTests(html$.AnimationEvent);
dart.addTypeCaches(html$.AnimationEvent);
dart.setGetterSignature(html$.AnimationEvent, () => ({
  __proto__: dart.getGetters(html$.AnimationEvent.__proto__),
  [$animationName]: core.String,
  [$elapsedTime]: core.num
}));
dart.setLibraryUri(html$.AnimationEvent, L65);
dart.registerExtension("AnimationEvent", html$.AnimationEvent);
html$.AnimationPlaybackEvent = class AnimationPlaybackEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.AnimationPlaybackEvent._create_1(type, eventInitDict_1);
    }
    return html$.AnimationPlaybackEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new AnimationPlaybackEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new AnimationPlaybackEvent(type);
  }
  get [$currentTime]() {
    return this.currentTime;
  }
  get [$timelineTime]() {
    return this.timelineTime;
  }
};
dart.addTypeTests(html$.AnimationPlaybackEvent);
dart.addTypeCaches(html$.AnimationPlaybackEvent);
dart.setGetterSignature(html$.AnimationPlaybackEvent, () => ({
  __proto__: dart.getGetters(html$.AnimationPlaybackEvent.__proto__),
  [$currentTime]: core.num,
  [$timelineTime]: core.num
}));
dart.setLibraryUri(html$.AnimationPlaybackEvent, L65);
dart.registerExtension("AnimationPlaybackEvent", html$.AnimationPlaybackEvent);
html$.AnimationTimeline = class AnimationTimeline extends _interceptors.Interceptor {
  get [$currentTime]() {
    return this.currentTime;
  }
};
dart.addTypeTests(html$.AnimationTimeline);
dart.addTypeCaches(html$.AnimationTimeline);
dart.setGetterSignature(html$.AnimationTimeline, () => ({
  __proto__: dart.getGetters(html$.AnimationTimeline.__proto__),
  [$currentTime]: core.num
}));
dart.setLibraryUri(html$.AnimationTimeline, L65);
dart.registerExtension("AnimationTimeline", html$.AnimationTimeline);
html$.WorkletGlobalScope = class WorkletGlobalScope extends _interceptors.Interceptor {};
dart.addTypeTests(html$.WorkletGlobalScope);
dart.addTypeCaches(html$.WorkletGlobalScope);
dart.setLibraryUri(html$.WorkletGlobalScope, L65);
dart.registerExtension("WorkletGlobalScope", html$.WorkletGlobalScope);
html$.AnimationWorkletGlobalScope = class AnimationWorkletGlobalScope extends html$.WorkletGlobalScope {
  [$registerAnimator](...args) {
    return this.registerAnimator.apply(this, args);
  }
};
dart.addTypeTests(html$.AnimationWorkletGlobalScope);
dart.addTypeCaches(html$.AnimationWorkletGlobalScope);
dart.setMethodSignature(html$.AnimationWorkletGlobalScope, () => ({
  __proto__: dart.getMethods(html$.AnimationWorkletGlobalScope.__proto__),
  [$registerAnimator]: dart.fnType(dart.void, [core.String, core.Object])
}));
dart.setLibraryUri(html$.AnimationWorkletGlobalScope, L65);
dart.registerExtension("AnimationWorkletGlobalScope", html$.AnimationWorkletGlobalScope);
var C305;
var C306;
var C307;
var C308;
var C309;
var C310;
var C311;
html$.ApplicationCache = class ApplicationCache extends html$.EventTarget {
  static get supported() {
    return !!window.applicationCache;
  }
  get [$status]() {
    return this.status;
  }
  [$abort](...args) {
    return this.abort.apply(this, args);
  }
  [$swapCache](...args) {
    return this.swapCache.apply(this, args);
  }
  [$update](...args) {
    return this.update.apply(this, args);
  }
  get [$onCached]() {
    return html$.ApplicationCache.cachedEvent.forTarget(this);
  }
  get [$onChecking]() {
    return html$.ApplicationCache.checkingEvent.forTarget(this);
  }
  get [$onDownloading]() {
    return html$.ApplicationCache.downloadingEvent.forTarget(this);
  }
  get [$onError]() {
    return html$.ApplicationCache.errorEvent.forTarget(this);
  }
  get [$onNoUpdate]() {
    return html$.ApplicationCache.noUpdateEvent.forTarget(this);
  }
  get [$onObsolete]() {
    return html$.ApplicationCache.obsoleteEvent.forTarget(this);
  }
  get [$onProgress]() {
    return html$.ApplicationCache.progressEvent.forTarget(this);
  }
  get [$onUpdateReady]() {
    return html$.ApplicationCache.updateReadyEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.ApplicationCache);
dart.addTypeCaches(html$.ApplicationCache);
dart.setMethodSignature(html$.ApplicationCache, () => ({
  __proto__: dart.getMethods(html$.ApplicationCache.__proto__),
  [$abort]: dart.fnType(dart.void, []),
  [$swapCache]: dart.fnType(dart.void, []),
  [$update]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.ApplicationCache, () => ({
  __proto__: dart.getGetters(html$.ApplicationCache.__proto__),
  [$status]: core.int,
  [$onCached]: async.Stream$(html$.Event),
  [$onChecking]: async.Stream$(html$.Event),
  [$onDownloading]: async.Stream$(html$.Event),
  [$onError]: async.Stream$(html$.Event),
  [$onNoUpdate]: async.Stream$(html$.Event),
  [$onObsolete]: async.Stream$(html$.Event),
  [$onProgress]: async.Stream$(html$.ProgressEvent),
  [$onUpdateReady]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.ApplicationCache, L65);
dart.defineLazy(html$.ApplicationCache, {
  /*html$.ApplicationCache.cachedEvent*/get cachedEvent() {
    return C305 || CT.C305;
  },
  /*html$.ApplicationCache.checkingEvent*/get checkingEvent() {
    return C306 || CT.C306;
  },
  /*html$.ApplicationCache.downloadingEvent*/get downloadingEvent() {
    return C307 || CT.C307;
  },
  /*html$.ApplicationCache.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  },
  /*html$.ApplicationCache.noUpdateEvent*/get noUpdateEvent() {
    return C308 || CT.C308;
  },
  /*html$.ApplicationCache.obsoleteEvent*/get obsoleteEvent() {
    return C309 || CT.C309;
  },
  /*html$.ApplicationCache.progressEvent*/get progressEvent() {
    return C310 || CT.C310;
  },
  /*html$.ApplicationCache.updateReadyEvent*/get updateReadyEvent() {
    return C311 || CT.C311;
  },
  /*html$.ApplicationCache.CHECKING*/get CHECKING() {
    return 2;
  },
  /*html$.ApplicationCache.DOWNLOADING*/get DOWNLOADING() {
    return 3;
  },
  /*html$.ApplicationCache.IDLE*/get IDLE() {
    return 1;
  },
  /*html$.ApplicationCache.OBSOLETE*/get OBSOLETE() {
    return 5;
  },
  /*html$.ApplicationCache.UNCACHED*/get UNCACHED() {
    return 0;
  },
  /*html$.ApplicationCache.UPDATEREADY*/get UPDATEREADY() {
    return 4;
  }
}, true);
dart.registerExtension("ApplicationCache", html$.ApplicationCache);
dart.registerExtension("DOMApplicationCache", html$.ApplicationCache);
dart.registerExtension("OfflineResourceList", html$.ApplicationCache);
html$.ApplicationCacheErrorEvent = class ApplicationCacheErrorEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.ApplicationCacheErrorEvent._create_1(type, eventInitDict_1);
    }
    return html$.ApplicationCacheErrorEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new ApplicationCacheErrorEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new ApplicationCacheErrorEvent(type);
  }
  get [$message]() {
    return this.message;
  }
  get [$reason]() {
    return this.reason;
  }
  get [$status]() {
    return this.status;
  }
  get [$url]() {
    return this.url;
  }
};
dart.addTypeTests(html$.ApplicationCacheErrorEvent);
dart.addTypeCaches(html$.ApplicationCacheErrorEvent);
dart.setGetterSignature(html$.ApplicationCacheErrorEvent, () => ({
  __proto__: dart.getGetters(html$.ApplicationCacheErrorEvent.__proto__),
  [$message]: core.String,
  [$reason]: core.String,
  [$status]: core.int,
  [$url]: core.String
}));
dart.setLibraryUri(html$.ApplicationCacheErrorEvent, L65);
dart.registerExtension("ApplicationCacheErrorEvent", html$.ApplicationCacheErrorEvent);
html$.AreaElement = class AreaElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("area");
  }
  get [$alt]() {
    return this.alt;
  }
  set [$alt](value) {
    this.alt = value;
  }
  get [$coords]() {
    return this.coords;
  }
  set [$coords](value) {
    this.coords = value;
  }
  get [$download]() {
    return this.download;
  }
  set [$download](value) {
    this.download = value;
  }
  get [$referrerPolicy]() {
    return this.referrerPolicy;
  }
  set [$referrerPolicy](value) {
    this.referrerPolicy = value;
  }
  get [$rel]() {
    return this.rel;
  }
  set [$rel](value) {
    this.rel = value;
  }
  get [$shape]() {
    return this.shape;
  }
  set [$shape](value) {
    this.shape = value;
  }
  get [$target]() {
    return this.target;
  }
  set [$target](value) {
    this.target = value;
  }
  get [$hash]() {
    return this.hash;
  }
  set [$hash](value) {
    this.hash = value;
  }
  get [$host]() {
    return this.host;
  }
  set [$host](value) {
    this.host = value;
  }
  get [$hostname]() {
    return this.hostname;
  }
  set [$hostname](value) {
    this.hostname = value;
  }
  get [$href]() {
    return this.href;
  }
  set [$href](value) {
    this.href = value;
  }
  get [$origin]() {
    return this.origin;
  }
  get [$password]() {
    return this.password;
  }
  set [$password](value) {
    this.password = value;
  }
  get [$pathname]() {
    return this.pathname;
  }
  set [$pathname](value) {
    this.pathname = value;
  }
  get [$port]() {
    return this.port;
  }
  set [$port](value) {
    this.port = value;
  }
  get [$protocol]() {
    return this.protocol;
  }
  set [$protocol](value) {
    this.protocol = value;
  }
  get [$search]() {
    return this.search;
  }
  set [$search](value) {
    this.search = value;
  }
  get [$username]() {
    return this.username;
  }
  set [$username](value) {
    this.username = value;
  }
  [$toString]() {
    return String(this);
  }
};
(html$.AreaElement.created = function() {
  html$.AreaElement.__proto__.created.call(this);
  ;
}).prototype = html$.AreaElement.prototype;
dart.addTypeTests(html$.AreaElement);
dart.addTypeCaches(html$.AreaElement);
html$.AreaElement[dart.implements] = () => [html$.HtmlHyperlinkElementUtils];
dart.setGetterSignature(html$.AreaElement, () => ({
  __proto__: dart.getGetters(html$.AreaElement.__proto__),
  [$alt]: core.String,
  [$coords]: core.String,
  [$download]: core.String,
  [$referrerPolicy]: core.String,
  [$rel]: core.String,
  [$shape]: core.String,
  [$target]: core.String,
  [$hash]: core.String,
  [$host]: core.String,
  [$hostname]: core.String,
  [$href]: core.String,
  [$origin]: core.String,
  [$password]: core.String,
  [$pathname]: core.String,
  [$port]: core.String,
  [$protocol]: core.String,
  [$search]: core.String,
  [$username]: core.String
}));
dart.setSetterSignature(html$.AreaElement, () => ({
  __proto__: dart.getSetters(html$.AreaElement.__proto__),
  [$alt]: core.String,
  [$coords]: core.String,
  [$download]: core.String,
  [$referrerPolicy]: core.String,
  [$rel]: core.String,
  [$shape]: core.String,
  [$target]: core.String,
  [$hash]: core.String,
  [$host]: core.String,
  [$hostname]: core.String,
  [$href]: core.String,
  [$password]: core.String,
  [$pathname]: core.String,
  [$port]: core.String,
  [$protocol]: core.String,
  [$search]: core.String,
  [$username]: core.String
}));
dart.setLibraryUri(html$.AreaElement, L65);
dart.registerExtension("HTMLAreaElement", html$.AreaElement);
html$.MediaElement = class MediaElement extends html$.HtmlElement {
  get [$audioTracks]() {
    return this.audioTracks;
  }
  get [$autoplay]() {
    return this.autoplay;
  }
  set [$autoplay](value) {
    this.autoplay = value;
  }
  get [$buffered]() {
    return this.buffered;
  }
  get [$controls]() {
    return this.controls;
  }
  set [$controls](value) {
    this.controls = value;
  }
  get [$controlsList]() {
    return this.controlsList;
  }
  get [$crossOrigin]() {
    return this.crossOrigin;
  }
  set [$crossOrigin](value) {
    this.crossOrigin = value;
  }
  get [$currentSrc]() {
    return this.currentSrc;
  }
  get [$currentTime]() {
    return this.currentTime;
  }
  set [$currentTime](value) {
    this.currentTime = value;
  }
  get [$defaultMuted]() {
    return this.defaultMuted;
  }
  set [$defaultMuted](value) {
    this.defaultMuted = value;
  }
  get [$defaultPlaybackRate]() {
    return this.defaultPlaybackRate;
  }
  set [$defaultPlaybackRate](value) {
    this.defaultPlaybackRate = value;
  }
  get [$disableRemotePlayback]() {
    return this.disableRemotePlayback;
  }
  set [$disableRemotePlayback](value) {
    this.disableRemotePlayback = value;
  }
  get [$duration]() {
    return this.duration;
  }
  get [$ended]() {
    return this.ended;
  }
  get [$error]() {
    return this.error;
  }
  get [$loop]() {
    return this.loop;
  }
  set [$loop](value) {
    this.loop = value;
  }
  get [$mediaKeys]() {
    return this.mediaKeys;
  }
  get [$muted]() {
    return this.muted;
  }
  set [$muted](value) {
    this.muted = value;
  }
  get [$networkState]() {
    return this.networkState;
  }
  get [$paused]() {
    return this.paused;
  }
  get [$playbackRate]() {
    return this.playbackRate;
  }
  set [$playbackRate](value) {
    this.playbackRate = value;
  }
  get [$played]() {
    return this.played;
  }
  get [$preload]() {
    return this.preload;
  }
  set [$preload](value) {
    this.preload = value;
  }
  get [$readyState]() {
    return this.readyState;
  }
  get [$remote]() {
    return this.remote;
  }
  get [$seekable]() {
    return this.seekable;
  }
  get [$seeking]() {
    return this.seeking;
  }
  get [$sinkId]() {
    return this.sinkId;
  }
  get [$src]() {
    return this.src;
  }
  set [$src](value) {
    this.src = value;
  }
  get [$srcObject]() {
    return this.srcObject;
  }
  set [$srcObject](value) {
    this.srcObject = value;
  }
  get [$textTracks]() {
    return this.textTracks;
  }
  get [$videoTracks]() {
    return this.videoTracks;
  }
  get [$volume]() {
    return this.volume;
  }
  set [$volume](value) {
    this.volume = value;
  }
  get [$audioDecodedByteCount]() {
    return this.webkitAudioDecodedByteCount;
  }
  get [$videoDecodedByteCount]() {
    return this.webkitVideoDecodedByteCount;
  }
  [$addTextTrack](...args) {
    return this.addTextTrack.apply(this, args);
  }
  [$canPlayType](...args) {
    return this.canPlayType.apply(this, args);
  }
  [$captureStream](...args) {
    return this.captureStream.apply(this, args);
  }
  [$load](...args) {
    return this.load.apply(this, args);
  }
  [$pause](...args) {
    return this.pause.apply(this, args);
  }
  [$play]() {
    return js_util.promiseToFuture(dart.dynamic, this.play());
  }
  [$setMediaKeys](mediaKeys) {
    return js_util.promiseToFuture(dart.dynamic, this.setMediaKeys(mediaKeys));
  }
  [$setSinkId](sinkId) {
    return js_util.promiseToFuture(dart.dynamic, this.setSinkId(sinkId));
  }
};
(html$.MediaElement.created = function() {
  html$.MediaElement.__proto__.created.call(this);
  ;
}).prototype = html$.MediaElement.prototype;
dart.addTypeTests(html$.MediaElement);
dart.addTypeCaches(html$.MediaElement);
dart.setMethodSignature(html$.MediaElement, () => ({
  __proto__: dart.getMethods(html$.MediaElement.__proto__),
  [$addTextTrack]: dart.fnType(html$.TextTrack, [core.String], [core.String, core.String]),
  [$canPlayType]: dart.fnType(core.String, [core.String], [core.String]),
  [$captureStream]: dart.fnType(html$.MediaStream, []),
  [$load]: dart.fnType(dart.void, []),
  [$pause]: dart.fnType(dart.void, []),
  [$play]: dart.fnType(async.Future, []),
  [$setMediaKeys]: dart.fnType(async.Future, [html$.MediaKeys]),
  [$setSinkId]: dart.fnType(async.Future, [core.String])
}));
dart.setGetterSignature(html$.MediaElement, () => ({
  __proto__: dart.getGetters(html$.MediaElement.__proto__),
  [$audioTracks]: web_audio.AudioTrackList,
  [$autoplay]: core.bool,
  [$buffered]: html$.TimeRanges,
  [$controls]: core.bool,
  [$controlsList]: html$.DomTokenList,
  [$crossOrigin]: core.String,
  [$currentSrc]: core.String,
  [$currentTime]: core.num,
  [$defaultMuted]: core.bool,
  [$defaultPlaybackRate]: core.num,
  [$disableRemotePlayback]: core.bool,
  [$duration]: core.num,
  [$ended]: core.bool,
  [$error]: html$.MediaError,
  [$loop]: core.bool,
  [$mediaKeys]: html$.MediaKeys,
  [$muted]: core.bool,
  [$networkState]: core.int,
  [$paused]: core.bool,
  [$playbackRate]: core.num,
  [$played]: html$.TimeRanges,
  [$preload]: core.String,
  [$readyState]: core.int,
  [$remote]: html$.RemotePlayback,
  [$seekable]: html$.TimeRanges,
  [$seeking]: core.bool,
  [$sinkId]: core.String,
  [$src]: core.String,
  [$srcObject]: html$.MediaStream,
  [$textTracks]: html$.TextTrackList,
  [$videoTracks]: html$.VideoTrackList,
  [$volume]: core.num,
  [$audioDecodedByteCount]: core.int,
  [$videoDecodedByteCount]: core.int
}));
dart.setSetterSignature(html$.MediaElement, () => ({
  __proto__: dart.getSetters(html$.MediaElement.__proto__),
  [$autoplay]: core.bool,
  [$controls]: core.bool,
  [$crossOrigin]: core.String,
  [$currentTime]: core.num,
  [$defaultMuted]: core.bool,
  [$defaultPlaybackRate]: core.num,
  [$disableRemotePlayback]: core.bool,
  [$loop]: core.bool,
  [$muted]: core.bool,
  [$playbackRate]: core.num,
  [$preload]: core.String,
  [$src]: core.String,
  [$srcObject]: html$.MediaStream,
  [$volume]: core.num
}));
dart.setLibraryUri(html$.MediaElement, L65);
dart.defineLazy(html$.MediaElement, {
  /*html$.MediaElement.HAVE_CURRENT_DATA*/get HAVE_CURRENT_DATA() {
    return 2;
  },
  /*html$.MediaElement.HAVE_ENOUGH_DATA*/get HAVE_ENOUGH_DATA() {
    return 4;
  },
  /*html$.MediaElement.HAVE_FUTURE_DATA*/get HAVE_FUTURE_DATA() {
    return 3;
  },
  /*html$.MediaElement.HAVE_METADATA*/get HAVE_METADATA() {
    return 1;
  },
  /*html$.MediaElement.HAVE_NOTHING*/get HAVE_NOTHING() {
    return 0;
  },
  /*html$.MediaElement.NETWORK_EMPTY*/get NETWORK_EMPTY() {
    return 0;
  },
  /*html$.MediaElement.NETWORK_IDLE*/get NETWORK_IDLE() {
    return 1;
  },
  /*html$.MediaElement.NETWORK_LOADING*/get NETWORK_LOADING() {
    return 2;
  },
  /*html$.MediaElement.NETWORK_NO_SOURCE*/get NETWORK_NO_SOURCE() {
    return 3;
  }
}, true);
dart.registerExtension("HTMLMediaElement", html$.MediaElement);
html$.AudioElement = class AudioElement extends html$.MediaElement {
  static __(src = null) {
    if (src != null) {
      return html$.AudioElement._create_1(src);
    }
    return html$.AudioElement._create_2();
  }
  static _create_1(src) {
    return new Audio(src);
  }
  static _create_2() {
    return new Audio();
  }
  static new(src = null) {
    return html$.AudioElement.__(src);
  }
};
(html$.AudioElement.created = function() {
  html$.AudioElement.__proto__.created.call(this);
  ;
}).prototype = html$.AudioElement.prototype;
dart.addTypeTests(html$.AudioElement);
dart.addTypeCaches(html$.AudioElement);
dart.setLibraryUri(html$.AudioElement, L65);
dart.registerExtension("HTMLAudioElement", html$.AudioElement);
html$.AuthenticatorResponse = class AuthenticatorResponse extends _interceptors.Interceptor {
  get [$clientDataJson]() {
    return this.clientDataJSON;
  }
};
dart.addTypeTests(html$.AuthenticatorResponse);
dart.addTypeCaches(html$.AuthenticatorResponse);
dart.setGetterSignature(html$.AuthenticatorResponse, () => ({
  __proto__: dart.getGetters(html$.AuthenticatorResponse.__proto__),
  [$clientDataJson]: typed_data.ByteBuffer
}));
dart.setLibraryUri(html$.AuthenticatorResponse, L65);
dart.registerExtension("AuthenticatorResponse", html$.AuthenticatorResponse);
html$.AuthenticatorAssertionResponse = class AuthenticatorAssertionResponse extends html$.AuthenticatorResponse {
  get [$authenticatorData]() {
    return this.authenticatorData;
  }
  get [$signature]() {
    return this.signature;
  }
};
dart.addTypeTests(html$.AuthenticatorAssertionResponse);
dart.addTypeCaches(html$.AuthenticatorAssertionResponse);
dart.setGetterSignature(html$.AuthenticatorAssertionResponse, () => ({
  __proto__: dart.getGetters(html$.AuthenticatorAssertionResponse.__proto__),
  [$authenticatorData]: typed_data.ByteBuffer,
  [$signature]: typed_data.ByteBuffer
}));
dart.setLibraryUri(html$.AuthenticatorAssertionResponse, L65);
dart.registerExtension("AuthenticatorAssertionResponse", html$.AuthenticatorAssertionResponse);
html$.AuthenticatorAttestationResponse = class AuthenticatorAttestationResponse extends html$.AuthenticatorResponse {
  get [$attestationObject]() {
    return this.attestationObject;
  }
};
dart.addTypeTests(html$.AuthenticatorAttestationResponse);
dart.addTypeCaches(html$.AuthenticatorAttestationResponse);
dart.setGetterSignature(html$.AuthenticatorAttestationResponse, () => ({
  __proto__: dart.getGetters(html$.AuthenticatorAttestationResponse.__proto__),
  [$attestationObject]: typed_data.ByteBuffer
}));
dart.setLibraryUri(html$.AuthenticatorAttestationResponse, L65);
dart.registerExtension("AuthenticatorAttestationResponse", html$.AuthenticatorAttestationResponse);
html$.BRElement = class BRElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("br");
  }
};
(html$.BRElement.created = function() {
  html$.BRElement.__proto__.created.call(this);
  ;
}).prototype = html$.BRElement.prototype;
dart.addTypeTests(html$.BRElement);
dart.addTypeCaches(html$.BRElement);
dart.setLibraryUri(html$.BRElement, L65);
dart.registerExtension("HTMLBRElement", html$.BRElement);
html$.BackgroundFetchEvent = class BackgroundFetchEvent$ extends html$.ExtendableEvent {
  static new(type, init) {
    let init_1 = html_common.convertDartToNative_Dictionary(init);
    return html$.BackgroundFetchEvent._create_1(type, init_1);
  }
  static _create_1(type, init) {
    return new BackgroundFetchEvent(type, init);
  }
  get [$id]() {
    return this.id;
  }
};
dart.addTypeTests(html$.BackgroundFetchEvent);
dart.addTypeCaches(html$.BackgroundFetchEvent);
dart.setGetterSignature(html$.BackgroundFetchEvent, () => ({
  __proto__: dart.getGetters(html$.BackgroundFetchEvent.__proto__),
  [$id]: core.String
}));
dart.setLibraryUri(html$.BackgroundFetchEvent, L65);
dart.registerExtension("BackgroundFetchEvent", html$.BackgroundFetchEvent);
html$.BackgroundFetchClickEvent = class BackgroundFetchClickEvent$ extends html$.BackgroundFetchEvent {
  static new(type, init) {
    let init_1 = html_common.convertDartToNative_Dictionary(init);
    return html$.BackgroundFetchClickEvent._create_1(type, init_1);
  }
  static _create_1(type, init) {
    return new BackgroundFetchClickEvent(type, init);
  }
  get [$state]() {
    return this.state;
  }
};
dart.addTypeTests(html$.BackgroundFetchClickEvent);
dart.addTypeCaches(html$.BackgroundFetchClickEvent);
dart.setGetterSignature(html$.BackgroundFetchClickEvent, () => ({
  __proto__: dart.getGetters(html$.BackgroundFetchClickEvent.__proto__),
  [$state]: core.String
}));
dart.setLibraryUri(html$.BackgroundFetchClickEvent, L65);
dart.registerExtension("BackgroundFetchClickEvent", html$.BackgroundFetchClickEvent);
html$.BackgroundFetchFailEvent = class BackgroundFetchFailEvent$ extends html$.BackgroundFetchEvent {
  static new(type, init) {
    let init_1 = html_common.convertDartToNative_Dictionary(init);
    return html$.BackgroundFetchFailEvent._create_1(type, init_1);
  }
  static _create_1(type, init) {
    return new BackgroundFetchFailEvent(type, init);
  }
  get [$fetches]() {
    return this.fetches;
  }
};
dart.addTypeTests(html$.BackgroundFetchFailEvent);
dart.addTypeCaches(html$.BackgroundFetchFailEvent);
dart.setGetterSignature(html$.BackgroundFetchFailEvent, () => ({
  __proto__: dart.getGetters(html$.BackgroundFetchFailEvent.__proto__),
  [$fetches]: core.List$(html$.BackgroundFetchSettledFetch)
}));
dart.setLibraryUri(html$.BackgroundFetchFailEvent, L65);
dart.registerExtension("BackgroundFetchFailEvent", html$.BackgroundFetchFailEvent);
html$.BackgroundFetchFetch = class BackgroundFetchFetch extends _interceptors.Interceptor {
  get [$request]() {
    return this.request;
  }
};
dart.addTypeTests(html$.BackgroundFetchFetch);
dart.addTypeCaches(html$.BackgroundFetchFetch);
dart.setGetterSignature(html$.BackgroundFetchFetch, () => ({
  __proto__: dart.getGetters(html$.BackgroundFetchFetch.__proto__),
  [$request]: html$._Request
}));
dart.setLibraryUri(html$.BackgroundFetchFetch, L65);
dart.registerExtension("BackgroundFetchFetch", html$.BackgroundFetchFetch);
html$.BackgroundFetchManager = class BackgroundFetchManager extends _interceptors.Interceptor {
  [$fetch](id, requests, options = null) {
    let options_dict = null;
    if (options != null) {
      options_dict = html_common.convertDartToNative_Dictionary(options);
    }
    return js_util.promiseToFuture(html$.BackgroundFetchRegistration, this.fetch(id, requests, options_dict));
  }
  [$get](id) {
    return js_util.promiseToFuture(html$.BackgroundFetchRegistration, this.get(id));
  }
  [$getIds]() {
    return js_util.promiseToFuture(core.List, this.getIds());
  }
};
dart.addTypeTests(html$.BackgroundFetchManager);
dart.addTypeCaches(html$.BackgroundFetchManager);
dart.setMethodSignature(html$.BackgroundFetchManager, () => ({
  __proto__: dart.getMethods(html$.BackgroundFetchManager.__proto__),
  [$fetch]: dart.fnType(async.Future$(html$.BackgroundFetchRegistration), [core.String, core.Object], [core.Map]),
  [$get]: dart.fnType(async.Future$(html$.BackgroundFetchRegistration), [core.String]),
  [$getIds]: dart.fnType(async.Future$(core.List), [])
}));
dart.setLibraryUri(html$.BackgroundFetchManager, L65);
dart.registerExtension("BackgroundFetchManager", html$.BackgroundFetchManager);
html$.BackgroundFetchRegistration = class BackgroundFetchRegistration extends html$.EventTarget {
  get [$downloadTotal]() {
    return this.downloadTotal;
  }
  get [$downloaded]() {
    return this.downloaded;
  }
  get [$id]() {
    return this.id;
  }
  get [$title]() {
    return this.title;
  }
  get [$totalDownloadSize]() {
    return this.totalDownloadSize;
  }
  get [$uploadTotal]() {
    return this.uploadTotal;
  }
  get [$uploaded]() {
    return this.uploaded;
  }
  [$abort]() {
    return js_util.promiseToFuture(core.bool, this.abort());
  }
};
dart.addTypeTests(html$.BackgroundFetchRegistration);
dart.addTypeCaches(html$.BackgroundFetchRegistration);
dart.setMethodSignature(html$.BackgroundFetchRegistration, () => ({
  __proto__: dart.getMethods(html$.BackgroundFetchRegistration.__proto__),
  [$abort]: dart.fnType(async.Future$(core.bool), [])
}));
dart.setGetterSignature(html$.BackgroundFetchRegistration, () => ({
  __proto__: dart.getGetters(html$.BackgroundFetchRegistration.__proto__),
  [$downloadTotal]: core.int,
  [$downloaded]: core.int,
  [$id]: core.String,
  [$title]: core.String,
  [$totalDownloadSize]: core.int,
  [$uploadTotal]: core.int,
  [$uploaded]: core.int
}));
dart.setLibraryUri(html$.BackgroundFetchRegistration, L65);
dart.registerExtension("BackgroundFetchRegistration", html$.BackgroundFetchRegistration);
html$.BackgroundFetchSettledFetch = class BackgroundFetchSettledFetch$ extends html$.BackgroundFetchFetch {
  static new(request, response) {
    return html$.BackgroundFetchSettledFetch._create_1(request, response);
  }
  static _create_1(request, response) {
    return new BackgroundFetchSettledFetch(request, response);
  }
  get [$response]() {
    return this.response;
  }
};
dart.addTypeTests(html$.BackgroundFetchSettledFetch);
dart.addTypeCaches(html$.BackgroundFetchSettledFetch);
dart.setGetterSignature(html$.BackgroundFetchSettledFetch, () => ({
  __proto__: dart.getGetters(html$.BackgroundFetchSettledFetch.__proto__),
  [$response]: html$._Response
}));
dart.setLibraryUri(html$.BackgroundFetchSettledFetch, L65);
dart.registerExtension("BackgroundFetchSettledFetch", html$.BackgroundFetchSettledFetch);
html$.BackgroundFetchedEvent = class BackgroundFetchedEvent$ extends html$.BackgroundFetchEvent {
  static new(type, init) {
    let init_1 = html_common.convertDartToNative_Dictionary(init);
    return html$.BackgroundFetchedEvent._create_1(type, init_1);
  }
  static _create_1(type, init) {
    return new BackgroundFetchedEvent(type, init);
  }
  get [$fetches]() {
    return this.fetches;
  }
  [$updateUI](title) {
    return js_util.promiseToFuture(dart.dynamic, this.updateUI(title));
  }
};
dart.addTypeTests(html$.BackgroundFetchedEvent);
dart.addTypeCaches(html$.BackgroundFetchedEvent);
dart.setMethodSignature(html$.BackgroundFetchedEvent, () => ({
  __proto__: dart.getMethods(html$.BackgroundFetchedEvent.__proto__),
  [$updateUI]: dart.fnType(async.Future, [core.String])
}));
dart.setGetterSignature(html$.BackgroundFetchedEvent, () => ({
  __proto__: dart.getGetters(html$.BackgroundFetchedEvent.__proto__),
  [$fetches]: core.List$(html$.BackgroundFetchSettledFetch)
}));
dart.setLibraryUri(html$.BackgroundFetchedEvent, L65);
dart.registerExtension("BackgroundFetchedEvent", html$.BackgroundFetchedEvent);
html$.BarProp = class BarProp extends _interceptors.Interceptor {
  get [$visible]() {
    return this.visible;
  }
};
dart.addTypeTests(html$.BarProp);
dart.addTypeCaches(html$.BarProp);
dart.setGetterSignature(html$.BarProp, () => ({
  __proto__: dart.getGetters(html$.BarProp.__proto__),
  [$visible]: core.bool
}));
dart.setLibraryUri(html$.BarProp, L65);
dart.registerExtension("BarProp", html$.BarProp);
html$.BarcodeDetector = class BarcodeDetector$ extends _interceptors.Interceptor {
  static new() {
    return html$.BarcodeDetector._create_1();
  }
  static _create_1() {
    return new BarcodeDetector();
  }
  [$detect](image) {
    return js_util.promiseToFuture(core.List, this.detect(image));
  }
};
dart.addTypeTests(html$.BarcodeDetector);
dart.addTypeCaches(html$.BarcodeDetector);
dart.setMethodSignature(html$.BarcodeDetector, () => ({
  __proto__: dart.getMethods(html$.BarcodeDetector.__proto__),
  [$detect]: dart.fnType(async.Future$(core.List), [dart.dynamic])
}));
dart.setLibraryUri(html$.BarcodeDetector, L65);
dart.registerExtension("BarcodeDetector", html$.BarcodeDetector);
html$.BaseElement = class BaseElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("base");
  }
  get [$href]() {
    return this.href;
  }
  set [$href](value) {
    this.href = value;
  }
  get [$target]() {
    return this.target;
  }
  set [$target](value) {
    this.target = value;
  }
};
(html$.BaseElement.created = function() {
  html$.BaseElement.__proto__.created.call(this);
  ;
}).prototype = html$.BaseElement.prototype;
dart.addTypeTests(html$.BaseElement);
dart.addTypeCaches(html$.BaseElement);
dart.setGetterSignature(html$.BaseElement, () => ({
  __proto__: dart.getGetters(html$.BaseElement.__proto__),
  [$href]: core.String,
  [$target]: core.String
}));
dart.setSetterSignature(html$.BaseElement, () => ({
  __proto__: dart.getSetters(html$.BaseElement.__proto__),
  [$href]: core.String,
  [$target]: core.String
}));
dart.setLibraryUri(html$.BaseElement, L65);
dart.registerExtension("HTMLBaseElement", html$.BaseElement);
html$.BatteryManager = class BatteryManager extends html$.EventTarget {
  get [$charging]() {
    return this.charging;
  }
  get [$chargingTime]() {
    return this.chargingTime;
  }
  get [$dischargingTime]() {
    return this.dischargingTime;
  }
  get [$level]() {
    return this.level;
  }
};
dart.addTypeTests(html$.BatteryManager);
dart.addTypeCaches(html$.BatteryManager);
dart.setGetterSignature(html$.BatteryManager, () => ({
  __proto__: dart.getGetters(html$.BatteryManager.__proto__),
  [$charging]: core.bool,
  [$chargingTime]: core.num,
  [$dischargingTime]: core.num,
  [$level]: core.num
}));
dart.setLibraryUri(html$.BatteryManager, L65);
dart.registerExtension("BatteryManager", html$.BatteryManager);
html$.BeforeInstallPromptEvent = class BeforeInstallPromptEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.BeforeInstallPromptEvent._create_1(type, eventInitDict_1);
    }
    return html$.BeforeInstallPromptEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new BeforeInstallPromptEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new BeforeInstallPromptEvent(type);
  }
  get [$platforms]() {
    return this.platforms;
  }
  get [$userChoice]() {
    return html$.promiseToFutureAsMap(this.userChoice);
  }
  [$prompt]() {
    return js_util.promiseToFuture(dart.dynamic, this.prompt());
  }
};
dart.addTypeTests(html$.BeforeInstallPromptEvent);
dart.addTypeCaches(html$.BeforeInstallPromptEvent);
dart.setMethodSignature(html$.BeforeInstallPromptEvent, () => ({
  __proto__: dart.getMethods(html$.BeforeInstallPromptEvent.__proto__),
  [$prompt]: dart.fnType(async.Future, [])
}));
dart.setGetterSignature(html$.BeforeInstallPromptEvent, () => ({
  __proto__: dart.getGetters(html$.BeforeInstallPromptEvent.__proto__),
  [$platforms]: core.List$(core.String),
  [$userChoice]: async.Future$(core.Map$(core.String, dart.dynamic))
}));
dart.setLibraryUri(html$.BeforeInstallPromptEvent, L65);
dart.registerExtension("BeforeInstallPromptEvent", html$.BeforeInstallPromptEvent);
html$.BeforeUnloadEvent = class BeforeUnloadEvent extends html$.Event {
  get [$returnValue]() {
    return this.returnValue;
  }
  set [$returnValue](value) {
    this.returnValue = value;
  }
};
dart.addTypeTests(html$.BeforeUnloadEvent);
dart.addTypeCaches(html$.BeforeUnloadEvent);
dart.setGetterSignature(html$.BeforeUnloadEvent, () => ({
  __proto__: dart.getGetters(html$.BeforeUnloadEvent.__proto__),
  [$returnValue]: core.String
}));
dart.setSetterSignature(html$.BeforeUnloadEvent, () => ({
  __proto__: dart.getSetters(html$.BeforeUnloadEvent.__proto__),
  [$returnValue]: core.String
}));
dart.setLibraryUri(html$.BeforeUnloadEvent, L65);
dart.registerExtension("BeforeUnloadEvent", html$.BeforeUnloadEvent);
html$.Blob = class Blob extends _interceptors.Interceptor {
  get [$size]() {
    return this.size;
  }
  get [$type]() {
    return this.type;
  }
  [$slice](...args) {
    return this.slice.apply(this, args);
  }
  static new(blobParts, type = null, endings = null) {
    if (type == null && endings == null) {
      return html$.Blob.as(html$.Blob._create_1(blobParts));
    }
    let bag = html$.Blob._create_bag();
    if (type != null) html$.Blob._bag_set(bag, "type", type);
    if (endings != null) html$.Blob._bag_set(bag, "endings", endings);
    return html$.Blob.as(html$.Blob._create_2(blobParts, bag));
  }
  static _create_1(parts) {
    return new self.Blob(parts);
  }
  static _create_2(parts, bag) {
    return new self.Blob(parts, bag);
  }
  static _create_bag() {
    return {};
  }
  static _bag_set(bag, key, value) {
    bag[key] = value;
  }
};
dart.addTypeTests(html$.Blob);
dart.addTypeCaches(html$.Blob);
dart.setMethodSignature(html$.Blob, () => ({
  __proto__: dart.getMethods(html$.Blob.__proto__),
  [$slice]: dart.fnType(html$.Blob, [], [core.int, core.int, core.String])
}));
dart.setGetterSignature(html$.Blob, () => ({
  __proto__: dart.getGetters(html$.Blob.__proto__),
  [$size]: core.int,
  [$type]: core.String
}));
dart.setLibraryUri(html$.Blob, L65);
dart.registerExtension("Blob", html$.Blob);
html$.BlobEvent = class BlobEvent$ extends html$.Event {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$.BlobEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new BlobEvent(type, eventInitDict);
  }
  get [$data]() {
    return this.data;
  }
  get [$timecode]() {
    return this.timecode;
  }
};
dart.addTypeTests(html$.BlobEvent);
dart.addTypeCaches(html$.BlobEvent);
dart.setGetterSignature(html$.BlobEvent, () => ({
  __proto__: dart.getGetters(html$.BlobEvent.__proto__),
  [$data]: html$.Blob,
  [$timecode]: core.num
}));
dart.setLibraryUri(html$.BlobEvent, L65);
dart.registerExtension("BlobEvent", html$.BlobEvent);
html$.BluetoothRemoteGattDescriptor = class BluetoothRemoteGattDescriptor extends _interceptors.Interceptor {
  get [$characteristic]() {
    return this.characteristic;
  }
  get [$uuid]() {
    return this.uuid;
  }
  get [$value]() {
    return this.value;
  }
  [$readValue]() {
    return js_util.promiseToFuture(dart.dynamic, this.readValue());
  }
  [$writeValue](value) {
    return js_util.promiseToFuture(dart.dynamic, this.writeValue(value));
  }
};
dart.addTypeTests(html$.BluetoothRemoteGattDescriptor);
dart.addTypeCaches(html$.BluetoothRemoteGattDescriptor);
dart.setMethodSignature(html$.BluetoothRemoteGattDescriptor, () => ({
  __proto__: dart.getMethods(html$.BluetoothRemoteGattDescriptor.__proto__),
  [$readValue]: dart.fnType(async.Future, []),
  [$writeValue]: dart.fnType(async.Future, [dart.dynamic])
}));
dart.setGetterSignature(html$.BluetoothRemoteGattDescriptor, () => ({
  __proto__: dart.getGetters(html$.BluetoothRemoteGattDescriptor.__proto__),
  [$characteristic]: html$._BluetoothRemoteGATTCharacteristic,
  [$uuid]: core.String,
  [$value]: typed_data.ByteData
}));
dart.setLibraryUri(html$.BluetoothRemoteGattDescriptor, L65);
dart.registerExtension("BluetoothRemoteGATTDescriptor", html$.BluetoothRemoteGattDescriptor);
html$.Body = class Body extends _interceptors.Interceptor {
  get [$bodyUsed]() {
    return this.bodyUsed;
  }
  [$arrayBuffer]() {
    return js_util.promiseToFuture(dart.dynamic, this.arrayBuffer());
  }
  [$blob]() {
    return js_util.promiseToFuture(html$.Blob, this.blob());
  }
  [$formData]() {
    return js_util.promiseToFuture(html$.FormData, this.formData());
  }
  [$json]() {
    return js_util.promiseToFuture(dart.dynamic, this.json());
  }
  [$text]() {
    return js_util.promiseToFuture(core.String, this.text());
  }
};
dart.addTypeTests(html$.Body);
dart.addTypeCaches(html$.Body);
dart.setMethodSignature(html$.Body, () => ({
  __proto__: dart.getMethods(html$.Body.__proto__),
  [$arrayBuffer]: dart.fnType(async.Future, []),
  [$blob]: dart.fnType(async.Future$(html$.Blob), []),
  [$formData]: dart.fnType(async.Future$(html$.FormData), []),
  [$json]: dart.fnType(async.Future, []),
  [$text]: dart.fnType(async.Future$(core.String), [])
}));
dart.setGetterSignature(html$.Body, () => ({
  __proto__: dart.getGetters(html$.Body.__proto__),
  [$bodyUsed]: core.bool
}));
dart.setLibraryUri(html$.Body, L65);
dart.registerExtension("Body", html$.Body);
var C312;
var C313;
var C314;
var C315;
var C316;
var C317;
var C318;
html$.BodyElement = class BodyElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("body");
  }
  get [$onBlur]() {
    return html$.BodyElement.blurEvent.forElement(this);
  }
  get [$onError]() {
    return html$.BodyElement.errorEvent.forElement(this);
  }
  get [$onFocus]() {
    return html$.BodyElement.focusEvent.forElement(this);
  }
  get [$onHashChange]() {
    return html$.BodyElement.hashChangeEvent.forElement(this);
  }
  get [$onLoad]() {
    return html$.BodyElement.loadEvent.forElement(this);
  }
  get [$onMessage]() {
    return html$.BodyElement.messageEvent.forElement(this);
  }
  get [$onOffline]() {
    return html$.BodyElement.offlineEvent.forElement(this);
  }
  get [$onOnline]() {
    return html$.BodyElement.onlineEvent.forElement(this);
  }
  get [$onPopState]() {
    return html$.BodyElement.popStateEvent.forElement(this);
  }
  get [$onResize]() {
    return html$.BodyElement.resizeEvent.forElement(this);
  }
  get [$onScroll]() {
    return html$.BodyElement.scrollEvent.forElement(this);
  }
  get [$onStorage]() {
    return html$.BodyElement.storageEvent.forElement(this);
  }
  get [$onUnload]() {
    return html$.BodyElement.unloadEvent.forElement(this);
  }
};
(html$.BodyElement.created = function() {
  html$.BodyElement.__proto__.created.call(this);
  ;
}).prototype = html$.BodyElement.prototype;
dart.addTypeTests(html$.BodyElement);
dart.addTypeCaches(html$.BodyElement);
html$.BodyElement[dart.implements] = () => [html$.WindowEventHandlers];
dart.setGetterSignature(html$.BodyElement, () => ({
  __proto__: dart.getGetters(html$.BodyElement.__proto__),
  [$onHashChange]: html$.ElementStream$(html$.Event),
  [$onMessage]: html$.ElementStream$(html$.MessageEvent),
  [$onOffline]: html$.ElementStream$(html$.Event),
  [$onOnline]: html$.ElementStream$(html$.Event),
  [$onPopState]: html$.ElementStream$(html$.PopStateEvent),
  [$onStorage]: html$.ElementStream$(html$.StorageEvent),
  [$onUnload]: html$.ElementStream$(html$.Event)
}));
dart.setLibraryUri(html$.BodyElement, L65);
dart.defineLazy(html$.BodyElement, {
  /*html$.BodyElement.blurEvent*/get blurEvent() {
    return C234 || CT.C234;
  },
  /*html$.BodyElement.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  },
  /*html$.BodyElement.focusEvent*/get focusEvent() {
    return C253 || CT.C253;
  },
  /*html$.BodyElement.hashChangeEvent*/get hashChangeEvent() {
    return C312 || CT.C312;
  },
  /*html$.BodyElement.loadEvent*/get loadEvent() {
    return C259 || CT.C259;
  },
  /*html$.BodyElement.messageEvent*/get messageEvent() {
    return C313 || CT.C313;
  },
  /*html$.BodyElement.offlineEvent*/get offlineEvent() {
    return C314 || CT.C314;
  },
  /*html$.BodyElement.onlineEvent*/get onlineEvent() {
    return C315 || CT.C315;
  },
  /*html$.BodyElement.popStateEvent*/get popStateEvent() {
    return C316 || CT.C316;
  },
  /*html$.BodyElement.resizeEvent*/get resizeEvent() {
    return C275 || CT.C275;
  },
  /*html$.BodyElement.scrollEvent*/get scrollEvent() {
    return C276 || CT.C276;
  },
  /*html$.BodyElement.storageEvent*/get storageEvent() {
    return C317 || CT.C317;
  },
  /*html$.BodyElement.unloadEvent*/get unloadEvent() {
    return C318 || CT.C318;
  }
}, true);
dart.registerExtension("HTMLBodyElement", html$.BodyElement);
html$.BroadcastChannel = class BroadcastChannel$ extends html$.EventTarget {
  static new(name) {
    return html$.BroadcastChannel._create_1(name);
  }
  static _create_1(name) {
    return new BroadcastChannel(name);
  }
  get [$name]() {
    return this.name;
  }
  [$close](...args) {
    return this.close.apply(this, args);
  }
  [$postMessage](...args) {
    return this.postMessage.apply(this, args);
  }
  get [$onMessage]() {
    return html$.BroadcastChannel.messageEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.BroadcastChannel);
dart.addTypeCaches(html$.BroadcastChannel);
dart.setMethodSignature(html$.BroadcastChannel, () => ({
  __proto__: dart.getMethods(html$.BroadcastChannel.__proto__),
  [$close]: dart.fnType(dart.void, []),
  [$postMessage]: dart.fnType(dart.void, [core.Object])
}));
dart.setGetterSignature(html$.BroadcastChannel, () => ({
  __proto__: dart.getGetters(html$.BroadcastChannel.__proto__),
  [$name]: core.String,
  [$onMessage]: async.Stream$(html$.MessageEvent)
}));
dart.setLibraryUri(html$.BroadcastChannel, L65);
dart.defineLazy(html$.BroadcastChannel, {
  /*html$.BroadcastChannel.messageEvent*/get messageEvent() {
    return C313 || CT.C313;
  }
}, true);
dart.registerExtension("BroadcastChannel", html$.BroadcastChannel);
html$.BudgetState = class BudgetState extends _interceptors.Interceptor {
  get [$budgetAt]() {
    return this.budgetAt;
  }
  get [$time]() {
    return this.time;
  }
};
dart.addTypeTests(html$.BudgetState);
dart.addTypeCaches(html$.BudgetState);
dart.setGetterSignature(html$.BudgetState, () => ({
  __proto__: dart.getGetters(html$.BudgetState.__proto__),
  [$budgetAt]: core.num,
  [$time]: core.int
}));
dart.setLibraryUri(html$.BudgetState, L65);
dart.registerExtension("BudgetState", html$.BudgetState);
html$.ButtonElement = class ButtonElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("button");
  }
  get [$autofocus]() {
    return this.autofocus;
  }
  set [$autofocus](value) {
    this.autofocus = value;
  }
  get [$disabled]() {
    return this.disabled;
  }
  set [$disabled](value) {
    this.disabled = value;
  }
  get [$form]() {
    return this.form;
  }
  get [$formAction]() {
    return this.formAction;
  }
  set [$formAction](value) {
    this.formAction = value;
  }
  get [$formEnctype]() {
    return this.formEnctype;
  }
  set [$formEnctype](value) {
    this.formEnctype = value;
  }
  get [$formMethod]() {
    return this.formMethod;
  }
  set [$formMethod](value) {
    this.formMethod = value;
  }
  get [$formNoValidate]() {
    return this.formNoValidate;
  }
  set [$formNoValidate](value) {
    this.formNoValidate = value;
  }
  get [$formTarget]() {
    return this.formTarget;
  }
  set [$formTarget](value) {
    this.formTarget = value;
  }
  get [$labels]() {
    return this.labels;
  }
  get [$name]() {
    return this.name;
  }
  set [$name](value) {
    this.name = value;
  }
  get [$type]() {
    return this.type;
  }
  set [$type](value) {
    this.type = value;
  }
  get [$validationMessage]() {
    return this.validationMessage;
  }
  get [$validity]() {
    return this.validity;
  }
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
  get [$willValidate]() {
    return this.willValidate;
  }
  [$checkValidity](...args) {
    return this.checkValidity.apply(this, args);
  }
  [$reportValidity](...args) {
    return this.reportValidity.apply(this, args);
  }
  [$setCustomValidity](...args) {
    return this.setCustomValidity.apply(this, args);
  }
};
(html$.ButtonElement.created = function() {
  html$.ButtonElement.__proto__.created.call(this);
  ;
}).prototype = html$.ButtonElement.prototype;
dart.addTypeTests(html$.ButtonElement);
dart.addTypeCaches(html$.ButtonElement);
dart.setMethodSignature(html$.ButtonElement, () => ({
  __proto__: dart.getMethods(html$.ButtonElement.__proto__),
  [$checkValidity]: dart.fnType(core.bool, []),
  [$reportValidity]: dart.fnType(core.bool, []),
  [$setCustomValidity]: dart.fnType(dart.void, [core.String])
}));
dart.setGetterSignature(html$.ButtonElement, () => ({
  __proto__: dart.getGetters(html$.ButtonElement.__proto__),
  [$autofocus]: core.bool,
  [$disabled]: core.bool,
  [$form]: html$.FormElement,
  [$formAction]: core.String,
  [$formEnctype]: core.String,
  [$formMethod]: core.String,
  [$formNoValidate]: core.bool,
  [$formTarget]: core.String,
  [$labels]: core.List$(html$.Node),
  [$name]: core.String,
  [$type]: core.String,
  [$validationMessage]: core.String,
  [$validity]: html$.ValidityState,
  [$value]: core.String,
  [$willValidate]: core.bool
}));
dart.setSetterSignature(html$.ButtonElement, () => ({
  __proto__: dart.getSetters(html$.ButtonElement.__proto__),
  [$autofocus]: core.bool,
  [$disabled]: core.bool,
  [$formAction]: core.String,
  [$formEnctype]: core.String,
  [$formMethod]: core.String,
  [$formNoValidate]: core.bool,
  [$formTarget]: core.String,
  [$name]: core.String,
  [$type]: core.String,
  [$value]: core.String
}));
dart.setLibraryUri(html$.ButtonElement, L65);
dart.registerExtension("HTMLButtonElement", html$.ButtonElement);
html$.CharacterData = class CharacterData extends html$.Node {
  get [$data]() {
    return this.data;
  }
  set [$data](value) {
    this.data = value;
  }
  get [$length]() {
    return this.length;
  }
  [$appendData](...args) {
    return this.appendData.apply(this, args);
  }
  [$deleteData](...args) {
    return this.deleteData.apply(this, args);
  }
  [$insertData](...args) {
    return this.insertData.apply(this, args);
  }
  [$replaceData](...args) {
    return this.replaceData.apply(this, args);
  }
  [$substringData](...args) {
    return this.substringData.apply(this, args);
  }
  [$after](...args) {
    return this.after.apply(this, args);
  }
  [$before](...args) {
    return this.before.apply(this, args);
  }
  get [$nextElementSibling]() {
    return this.nextElementSibling;
  }
  get [$previousElementSibling]() {
    return this.previousElementSibling;
  }
};
dart.addTypeTests(html$.CharacterData);
dart.addTypeCaches(html$.CharacterData);
html$.CharacterData[dart.implements] = () => [html$.NonDocumentTypeChildNode, html$.ChildNode];
dart.setMethodSignature(html$.CharacterData, () => ({
  __proto__: dart.getMethods(html$.CharacterData.__proto__),
  [$appendData]: dart.fnType(dart.void, [core.String]),
  [$deleteData]: dart.fnType(dart.void, [core.int, core.int]),
  [$insertData]: dart.fnType(dart.void, [core.int, core.String]),
  [$replaceData]: dart.fnType(dart.void, [core.int, core.int, core.String]),
  [$substringData]: dart.fnType(core.String, [core.int, core.int]),
  [$after]: dart.fnType(dart.void, [core.Object]),
  [$before]: dart.fnType(dart.void, [core.Object])
}));
dart.setGetterSignature(html$.CharacterData, () => ({
  __proto__: dart.getGetters(html$.CharacterData.__proto__),
  [$data]: core.String,
  [$length]: core.int,
  [$nextElementSibling]: html$.Element,
  [$previousElementSibling]: html$.Element
}));
dart.setSetterSignature(html$.CharacterData, () => ({
  __proto__: dart.getSetters(html$.CharacterData.__proto__),
  [$data]: core.String
}));
dart.setLibraryUri(html$.CharacterData, L65);
dart.registerExtension("CharacterData", html$.CharacterData);
html$.Text = class Text extends html$.CharacterData {
  static new(data) {
    return html$.document.createTextNode(data);
  }
  get [$assignedSlot]() {
    return this.assignedSlot;
  }
  get [$wholeText]() {
    return this.wholeText;
  }
  [$getDestinationInsertionPoints](...args) {
    return this.getDestinationInsertionPoints.apply(this, args);
  }
  [$splitText](...args) {
    return this.splitText.apply(this, args);
  }
};
dart.addTypeTests(html$.Text);
dart.addTypeCaches(html$.Text);
dart.setMethodSignature(html$.Text, () => ({
  __proto__: dart.getMethods(html$.Text.__proto__),
  [$getDestinationInsertionPoints]: dart.fnType(core.List$(html$.Node), []),
  [$splitText]: dart.fnType(html$.Text, [core.int])
}));
dart.setGetterSignature(html$.Text, () => ({
  __proto__: dart.getGetters(html$.Text.__proto__),
  [$assignedSlot]: html$.SlotElement,
  [$wholeText]: core.String
}));
dart.setLibraryUri(html$.Text, L65);
dart.registerExtension("Text", html$.Text);
html$.CDataSection = class CDataSection extends html$.Text {};
dart.addTypeTests(html$.CDataSection);
dart.addTypeCaches(html$.CDataSection);
dart.setLibraryUri(html$.CDataSection, L65);
dart.registerExtension("CDATASection", html$.CDataSection);
html$.CacheStorage = class CacheStorage extends _interceptors.Interceptor {
  [$delete](cacheName) {
    return js_util.promiseToFuture(dart.dynamic, this.delete(cacheName));
  }
  [$has](cacheName) {
    return js_util.promiseToFuture(dart.dynamic, this.has(cacheName));
  }
  [$keys]() {
    return js_util.promiseToFuture(dart.dynamic, this.keys());
  }
  [$match](request, options = null) {
    let options_dict = null;
    if (options != null) {
      options_dict = html_common.convertDartToNative_Dictionary(options);
    }
    return js_util.promiseToFuture(dart.dynamic, this.match(request, options_dict));
  }
  [$open](cacheName) {
    return js_util.promiseToFuture(dart.dynamic, this.open(cacheName));
  }
};
dart.addTypeTests(html$.CacheStorage);
dart.addTypeCaches(html$.CacheStorage);
dart.setMethodSignature(html$.CacheStorage, () => ({
  __proto__: dart.getMethods(html$.CacheStorage.__proto__),
  [$delete]: dart.fnType(async.Future, [core.String]),
  [$has]: dart.fnType(async.Future, [core.String]),
  [$keys]: dart.fnType(async.Future, []),
  [$match]: dart.fnType(async.Future, [dart.dynamic], [core.Map]),
  [$open]: dart.fnType(async.Future, [core.String])
}));
dart.setLibraryUri(html$.CacheStorage, L65);
dart.registerExtension("CacheStorage", html$.CacheStorage);
html$.CanMakePaymentEvent = class CanMakePaymentEvent$ extends html$.ExtendableEvent {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$.CanMakePaymentEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new CanMakePaymentEvent(type, eventInitDict);
  }
  get [$methodData]() {
    return this.methodData;
  }
  get [$modifiers]() {
    return this.modifiers;
  }
  get [$paymentRequestOrigin]() {
    return this.paymentRequestOrigin;
  }
  get [$topLevelOrigin]() {
    return this.topLevelOrigin;
  }
  [$respondWith](...args) {
    return this.respondWith.apply(this, args);
  }
};
dart.addTypeTests(html$.CanMakePaymentEvent);
dart.addTypeCaches(html$.CanMakePaymentEvent);
dart.setMethodSignature(html$.CanMakePaymentEvent, () => ({
  __proto__: dart.getMethods(html$.CanMakePaymentEvent.__proto__),
  [$respondWith]: dart.fnType(dart.void, [async.Future])
}));
dart.setGetterSignature(html$.CanMakePaymentEvent, () => ({
  __proto__: dart.getGetters(html$.CanMakePaymentEvent.__proto__),
  [$methodData]: core.List,
  [$modifiers]: core.List,
  [$paymentRequestOrigin]: core.String,
  [$topLevelOrigin]: core.String
}));
dart.setLibraryUri(html$.CanMakePaymentEvent, L65);
dart.registerExtension("CanMakePaymentEvent", html$.CanMakePaymentEvent);
var _getCapabilities_1 = dart.privateName(html$, "_getCapabilities_1");
var _getConstraints_1 = dart.privateName(html$, "_getConstraints_1");
var _getSettings_1 = dart.privateName(html$, "_getSettings_1");
var C319;
var C320;
html$.MediaStreamTrack = class MediaStreamTrack extends html$.EventTarget {
  get [$contentHint]() {
    return this.contentHint;
  }
  set [$contentHint](value) {
    this.contentHint = value;
  }
  get [$enabled]() {
    return this.enabled;
  }
  set [$enabled](value) {
    this.enabled = value;
  }
  get [$id]() {
    return this.id;
  }
  get [$kind]() {
    return this.kind;
  }
  get [$label]() {
    return this.label;
  }
  get [$muted]() {
    return this.muted;
  }
  get [$readyState]() {
    return this.readyState;
  }
  [$applyConstraints](constraints = null) {
    let constraints_dict = null;
    if (constraints != null) {
      constraints_dict = html_common.convertDartToNative_Dictionary(constraints);
    }
    return js_util.promiseToFuture(dart.dynamic, this.applyConstraints(constraints_dict));
  }
  [$clone](...args) {
    return this.clone.apply(this, args);
  }
  [$getCapabilities]() {
    return html_common.convertNativeToDart_Dictionary(this[_getCapabilities_1]());
  }
  [_getCapabilities_1](...args) {
    return this.getCapabilities.apply(this, args);
  }
  [$getConstraints]() {
    return html_common.convertNativeToDart_Dictionary(this[_getConstraints_1]());
  }
  [_getConstraints_1](...args) {
    return this.getConstraints.apply(this, args);
  }
  [$getSettings]() {
    return html_common.convertNativeToDart_Dictionary(this[_getSettings_1]());
  }
  [_getSettings_1](...args) {
    return this.getSettings.apply(this, args);
  }
  [$stop](...args) {
    return this.stop.apply(this, args);
  }
  get [$onEnded]() {
    return html$.MediaStreamTrack.endedEvent.forTarget(this);
  }
  get [$onMute]() {
    return html$.MediaStreamTrack.muteEvent.forTarget(this);
  }
  get [$onUnmute]() {
    return html$.MediaStreamTrack.unmuteEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.MediaStreamTrack);
dart.addTypeCaches(html$.MediaStreamTrack);
dart.setMethodSignature(html$.MediaStreamTrack, () => ({
  __proto__: dart.getMethods(html$.MediaStreamTrack.__proto__),
  [$applyConstraints]: dart.fnType(async.Future, [], [core.Map]),
  [$clone]: dart.fnType(html$.MediaStreamTrack, []),
  [$getCapabilities]: dart.fnType(core.Map, []),
  [_getCapabilities_1]: dart.fnType(dart.dynamic, []),
  [$getConstraints]: dart.fnType(core.Map, []),
  [_getConstraints_1]: dart.fnType(dart.dynamic, []),
  [$getSettings]: dart.fnType(core.Map, []),
  [_getSettings_1]: dart.fnType(dart.dynamic, []),
  [$stop]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.MediaStreamTrack, () => ({
  __proto__: dart.getGetters(html$.MediaStreamTrack.__proto__),
  [$contentHint]: core.String,
  [$enabled]: core.bool,
  [$id]: core.String,
  [$kind]: core.String,
  [$label]: core.String,
  [$muted]: core.bool,
  [$readyState]: core.String,
  [$onEnded]: async.Stream$(html$.Event),
  [$onMute]: async.Stream$(html$.Event),
  [$onUnmute]: async.Stream$(html$.Event)
}));
dart.setSetterSignature(html$.MediaStreamTrack, () => ({
  __proto__: dart.getSetters(html$.MediaStreamTrack.__proto__),
  [$contentHint]: core.String,
  [$enabled]: core.bool
}));
dart.setLibraryUri(html$.MediaStreamTrack, L65);
dart.defineLazy(html$.MediaStreamTrack, {
  /*html$.MediaStreamTrack.endedEvent*/get endedEvent() {
    return C252 || CT.C252;
  },
  /*html$.MediaStreamTrack.muteEvent*/get muteEvent() {
    return C319 || CT.C319;
  },
  /*html$.MediaStreamTrack.unmuteEvent*/get unmuteEvent() {
    return C320 || CT.C320;
  }
}, true);
dart.registerExtension("MediaStreamTrack", html$.MediaStreamTrack);
html$.CanvasCaptureMediaStreamTrack = class CanvasCaptureMediaStreamTrack extends html$.MediaStreamTrack {
  get [$canvas]() {
    return this.canvas;
  }
  [$requestFrame](...args) {
    return this.requestFrame.apply(this, args);
  }
};
dart.addTypeTests(html$.CanvasCaptureMediaStreamTrack);
dart.addTypeCaches(html$.CanvasCaptureMediaStreamTrack);
dart.setMethodSignature(html$.CanvasCaptureMediaStreamTrack, () => ({
  __proto__: dart.getMethods(html$.CanvasCaptureMediaStreamTrack.__proto__),
  [$requestFrame]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.CanvasCaptureMediaStreamTrack, () => ({
  __proto__: dart.getGetters(html$.CanvasCaptureMediaStreamTrack.__proto__),
  [$canvas]: html$.CanvasElement
}));
dart.setLibraryUri(html$.CanvasCaptureMediaStreamTrack, L65);
dart.registerExtension("CanvasCaptureMediaStreamTrack", html$.CanvasCaptureMediaStreamTrack);
var _getContext_1 = dart.privateName(html$, "_getContext_1");
var _getContext_2 = dart.privateName(html$, "_getContext_2");
var _toDataUrl = dart.privateName(html$, "_toDataUrl");
var _toBlob = dart.privateName(html$, "_toBlob");
var C321;
var C322;
html$.CanvasElement = class CanvasElement extends html$.HtmlElement {
  static new(opts) {
    let width = opts && 'width' in opts ? opts.width : null;
    let height = opts && 'height' in opts ? opts.height : null;
    let e = html$.document.createElement("canvas");
    if (width != null) e.width = width;
    if (height != null) e.height = height;
    return e;
  }
  get [$height]() {
    return this.height;
  }
  set [$height](value) {
    this.height = value;
  }
  get [$width]() {
    return this.width;
  }
  set [$width](value) {
    this.width = value;
  }
  [$captureStream](...args) {
    return this.captureStream.apply(this, args);
  }
  [$getContext](contextId, attributes = null) {
    if (attributes != null) {
      let attributes_1 = html_common.convertDartToNative_Dictionary(attributes);
      return this[_getContext_1](contextId, attributes_1);
    }
    return this[_getContext_2](contextId);
  }
  [_getContext_1](...args) {
    return this.getContext.apply(this, args);
  }
  [_getContext_2](...args) {
    return this.getContext.apply(this, args);
  }
  [_toDataUrl](...args) {
    return this.toDataURL.apply(this, args);
  }
  [$transferControlToOffscreen](...args) {
    return this.transferControlToOffscreen.apply(this, args);
  }
  get [$onWebGlContextLost]() {
    return html$.CanvasElement.webGlContextLostEvent.forElement(this);
  }
  get [$onWebGlContextRestored]() {
    return html$.CanvasElement.webGlContextRestoredEvent.forElement(this);
  }
  get [$context2D]() {
    return this.getContext("2d");
  }
  [$getContext3d](opts) {
    let alpha = opts && 'alpha' in opts ? opts.alpha : true;
    let depth = opts && 'depth' in opts ? opts.depth : true;
    let stencil = opts && 'stencil' in opts ? opts.stencil : false;
    let antialias = opts && 'antialias' in opts ? opts.antialias : true;
    let premultipliedAlpha = opts && 'premultipliedAlpha' in opts ? opts.premultipliedAlpha : true;
    let preserveDrawingBuffer = opts && 'preserveDrawingBuffer' in opts ? opts.preserveDrawingBuffer : false;
    let options = new (IdentityMapOfStringL$dynamic()).from(["alpha", alpha, "depth", depth, "stencil", stencil, "antialias", antialias, "premultipliedAlpha", premultipliedAlpha, "preserveDrawingBuffer", preserveDrawingBuffer]);
    let context = this[$getContext]("webgl", options);
    if (context == null) {
      context = this[$getContext]("experimental-webgl", options);
    }
    return web_gl.RenderingContext.as(context);
  }
  [$toDataUrl](type = "image/png", quality = null) {
    return this[_toDataUrl](type, quality);
  }
  [_toBlob](...args) {
    return this.toBlob.apply(this, args);
  }
  [$toBlob](type = null, $arguments = null) {
    let completer = CompleterOfBlobL().new();
    this[_toBlob](dart.fn(value => {
      completer.complete(value);
    }, BlobLToNullN()), type, $arguments);
    return completer.future;
  }
};
(html$.CanvasElement.created = function() {
  html$.CanvasElement.__proto__.created.call(this);
  ;
}).prototype = html$.CanvasElement.prototype;
dart.addTypeTests(html$.CanvasElement);
dart.addTypeCaches(html$.CanvasElement);
html$.CanvasElement[dart.implements] = () => [html$.CanvasImageSource];
dart.setMethodSignature(html$.CanvasElement, () => ({
  __proto__: dart.getMethods(html$.CanvasElement.__proto__),
  [$captureStream]: dart.fnType(html$.MediaStream, [], [core.num]),
  [$getContext]: dart.fnType(core.Object, [core.String], [core.Map]),
  [_getContext_1]: dart.fnType(core.Object, [dart.dynamic, dart.dynamic]),
  [_getContext_2]: dart.fnType(core.Object, [dart.dynamic]),
  [_toDataUrl]: dart.fnType(core.String, [core.String], [dart.dynamic]),
  [$transferControlToOffscreen]: dart.fnType(html$.OffscreenCanvas, []),
  [$getContext3d]: dart.fnType(web_gl.RenderingContext, [], {alpha: dart.dynamic, antialias: dart.dynamic, depth: dart.dynamic, premultipliedAlpha: dart.dynamic, preserveDrawingBuffer: dart.dynamic, stencil: dart.dynamic}, {}),
  [$toDataUrl]: dart.fnType(core.String, [], [core.String, core.num]),
  [_toBlob]: dart.fnType(dart.void, [dart.fnType(dart.void, [html$.Blob])], [core.String, core.Object]),
  [$toBlob]: dart.fnType(async.Future$(html$.Blob), [], [core.String, core.Object])
}));
dart.setGetterSignature(html$.CanvasElement, () => ({
  __proto__: dart.getGetters(html$.CanvasElement.__proto__),
  [$height]: core.int,
  [$width]: core.int,
  [$onWebGlContextLost]: html$.ElementStream$(web_gl.ContextEvent),
  [$onWebGlContextRestored]: html$.ElementStream$(web_gl.ContextEvent),
  [$context2D]: html$.CanvasRenderingContext2D
}));
dart.setSetterSignature(html$.CanvasElement, () => ({
  __proto__: dart.getSetters(html$.CanvasElement.__proto__),
  [$height]: core.int,
  [$width]: core.int
}));
dart.setLibraryUri(html$.CanvasElement, L65);
dart.defineLazy(html$.CanvasElement, {
  /*html$.CanvasElement.webGlContextLostEvent*/get webGlContextLostEvent() {
    return C321 || CT.C321;
  },
  /*html$.CanvasElement.webGlContextRestoredEvent*/get webGlContextRestoredEvent() {
    return C322 || CT.C322;
  }
}, true);
dart.registerExtension("HTMLCanvasElement", html$.CanvasElement);
html$.CanvasGradient = class CanvasGradient extends _interceptors.Interceptor {
  [$addColorStop](...args) {
    return this.addColorStop.apply(this, args);
  }
};
dart.addTypeTests(html$.CanvasGradient);
dart.addTypeCaches(html$.CanvasGradient);
dart.setMethodSignature(html$.CanvasGradient, () => ({
  __proto__: dart.getMethods(html$.CanvasGradient.__proto__),
  [$addColorStop]: dart.fnType(dart.void, [core.num, core.String])
}));
dart.setLibraryUri(html$.CanvasGradient, L65);
dart.registerExtension("CanvasGradient", html$.CanvasGradient);
html$.CanvasPattern = class CanvasPattern extends _interceptors.Interceptor {
  [$setTransform](...args) {
    return this.setTransform.apply(this, args);
  }
};
dart.addTypeTests(html$.CanvasPattern);
dart.addTypeCaches(html$.CanvasPattern);
dart.setMethodSignature(html$.CanvasPattern, () => ({
  __proto__: dart.getMethods(html$.CanvasPattern.__proto__),
  [$setTransform]: dart.fnType(dart.void, [svg$.Matrix])
}));
dart.setLibraryUri(html$.CanvasPattern, L65);
dart.registerExtension("CanvasPattern", html$.CanvasPattern);
html$.CanvasRenderingContext = class CanvasRenderingContext extends core.Object {};
(html$.CanvasRenderingContext.new = function() {
  ;
}).prototype = html$.CanvasRenderingContext.prototype;
dart.addTypeTests(html$.CanvasRenderingContext);
dart.addTypeCaches(html$.CanvasRenderingContext);
dart.setLibraryUri(html$.CanvasRenderingContext, L65);
var _addHitRegion_1 = dart.privateName(html$, "_addHitRegion_1");
var _addHitRegion_2 = dart.privateName(html$, "_addHitRegion_2");
var _createImageData_1 = dart.privateName(html$, "_createImageData_1");
var _createImageData_2 = dart.privateName(html$, "_createImageData_2");
var _createImageData_3 = dart.privateName(html$, "_createImageData_3");
var _createImageData_4 = dart.privateName(html$, "_createImageData_4");
var _createImageData_5 = dart.privateName(html$, "_createImageData_5");
var _getContextAttributes_1 = dart.privateName(html$, "_getContextAttributes_1");
var _getImageData_1 = dart.privateName(html$, "_getImageData_1");
var _getLineDash = dart.privateName(html$, "_getLineDash");
var _putImageData_1 = dart.privateName(html$, "_putImageData_1");
var _putImageData_2 = dart.privateName(html$, "_putImageData_2");
var _arc = dart.privateName(html$, "_arc");
html$.CanvasRenderingContext2D = class CanvasRenderingContext2D extends _interceptors.Interceptor {
  get [$canvas]() {
    return this.canvas;
  }
  get [$currentTransform]() {
    return this.currentTransform;
  }
  set [$currentTransform](value) {
    this.currentTransform = value;
  }
  get [$direction]() {
    return this.direction;
  }
  set [$direction](value) {
    this.direction = value;
  }
  get [$fillStyle]() {
    return this.fillStyle;
  }
  set [$fillStyle](value) {
    this.fillStyle = value;
  }
  get [$filter]() {
    return this.filter;
  }
  set [$filter](value) {
    this.filter = value;
  }
  get [$font]() {
    return this.font;
  }
  set [$font](value) {
    this.font = value;
  }
  get [$globalAlpha]() {
    return this.globalAlpha;
  }
  set [$globalAlpha](value) {
    this.globalAlpha = value;
  }
  get [$globalCompositeOperation]() {
    return this.globalCompositeOperation;
  }
  set [$globalCompositeOperation](value) {
    this.globalCompositeOperation = value;
  }
  get [$imageSmoothingEnabled]() {
    return this.imageSmoothingEnabled;
  }
  set [$imageSmoothingEnabled](value) {
    this.imageSmoothingEnabled = value;
  }
  get [$imageSmoothingQuality]() {
    return this.imageSmoothingQuality;
  }
  set [$imageSmoothingQuality](value) {
    this.imageSmoothingQuality = value;
  }
  get [$lineCap]() {
    return this.lineCap;
  }
  set [$lineCap](value) {
    this.lineCap = value;
  }
  get [$lineJoin]() {
    return this.lineJoin;
  }
  set [$lineJoin](value) {
    this.lineJoin = value;
  }
  get [$lineWidth]() {
    return this.lineWidth;
  }
  set [$lineWidth](value) {
    this.lineWidth = value;
  }
  get [$miterLimit]() {
    return this.miterLimit;
  }
  set [$miterLimit](value) {
    this.miterLimit = value;
  }
  get [$shadowBlur]() {
    return this.shadowBlur;
  }
  set [$shadowBlur](value) {
    this.shadowBlur = value;
  }
  get [$shadowColor]() {
    return this.shadowColor;
  }
  set [$shadowColor](value) {
    this.shadowColor = value;
  }
  get [$shadowOffsetX]() {
    return this.shadowOffsetX;
  }
  set [$shadowOffsetX](value) {
    this.shadowOffsetX = value;
  }
  get [$shadowOffsetY]() {
    return this.shadowOffsetY;
  }
  set [$shadowOffsetY](value) {
    this.shadowOffsetY = value;
  }
  get [$strokeStyle]() {
    return this.strokeStyle;
  }
  set [$strokeStyle](value) {
    this.strokeStyle = value;
  }
  get [$textAlign]() {
    return this.textAlign;
  }
  set [$textAlign](value) {
    this.textAlign = value;
  }
  get [$textBaseline]() {
    return this.textBaseline;
  }
  set [$textBaseline](value) {
    this.textBaseline = value;
  }
  [$addHitRegion](options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      this[_addHitRegion_1](options_1);
      return;
    }
    this[_addHitRegion_2]();
    return;
  }
  [_addHitRegion_1](...args) {
    return this.addHitRegion.apply(this, args);
  }
  [_addHitRegion_2](...args) {
    return this.addHitRegion.apply(this, args);
  }
  [$beginPath](...args) {
    return this.beginPath.apply(this, args);
  }
  [$clearHitRegions](...args) {
    return this.clearHitRegions.apply(this, args);
  }
  [$clearRect](...args) {
    return this.clearRect.apply(this, args);
  }
  [$clip](...args) {
    return this.clip.apply(this, args);
  }
  [$createImageData](data_OR_imagedata_OR_sw, sh_OR_sw = null, imageDataColorSettings_OR_sh = null, imageDataColorSettings = null) {
    if (html$.ImageData.is(data_OR_imagedata_OR_sw) && sh_OR_sw == null && imageDataColorSettings_OR_sh == null && imageDataColorSettings == null) {
      let imagedata_1 = html_common.convertDartToNative_ImageData(data_OR_imagedata_OR_sw);
      return html_common.convertNativeToDart_ImageData(this[_createImageData_1](imagedata_1));
    }
    if (sh_OR_sw != null && core.int.is(data_OR_imagedata_OR_sw) && imageDataColorSettings_OR_sh == null && imageDataColorSettings == null) {
      return html_common.convertNativeToDart_ImageData(this[_createImageData_2](data_OR_imagedata_OR_sw, sh_OR_sw));
    }
    if (core.Map.is(imageDataColorSettings_OR_sh) && sh_OR_sw != null && core.int.is(data_OR_imagedata_OR_sw) && imageDataColorSettings == null) {
      let imageDataColorSettings_1 = html_common.convertDartToNative_Dictionary(imageDataColorSettings_OR_sh);
      return html_common.convertNativeToDart_ImageData(this[_createImageData_3](data_OR_imagedata_OR_sw, sh_OR_sw, imageDataColorSettings_1));
    }
    if (core.int.is(imageDataColorSettings_OR_sh) && sh_OR_sw != null && data_OR_imagedata_OR_sw != null && imageDataColorSettings == null) {
      return html_common.convertNativeToDart_ImageData(this[_createImageData_4](data_OR_imagedata_OR_sw, sh_OR_sw, imageDataColorSettings_OR_sh));
    }
    if (imageDataColorSettings != null && core.int.is(imageDataColorSettings_OR_sh) && sh_OR_sw != null && data_OR_imagedata_OR_sw != null) {
      let imageDataColorSettings_1 = html_common.convertDartToNative_Dictionary(imageDataColorSettings);
      return html_common.convertNativeToDart_ImageData(this[_createImageData_5](data_OR_imagedata_OR_sw, sh_OR_sw, imageDataColorSettings_OR_sh, imageDataColorSettings_1));
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [_createImageData_1](...args) {
    return this.createImageData.apply(this, args);
  }
  [_createImageData_2](...args) {
    return this.createImageData.apply(this, args);
  }
  [_createImageData_3](...args) {
    return this.createImageData.apply(this, args);
  }
  [_createImageData_4](...args) {
    return this.createImageData.apply(this, args);
  }
  [_createImageData_5](...args) {
    return this.createImageData.apply(this, args);
  }
  [$createLinearGradient](...args) {
    return this.createLinearGradient.apply(this, args);
  }
  [$createPattern](...args) {
    return this.createPattern.apply(this, args);
  }
  [$createRadialGradient](...args) {
    return this.createRadialGradient.apply(this, args);
  }
  [$drawFocusIfNeeded](...args) {
    return this.drawFocusIfNeeded.apply(this, args);
  }
  [$fill](...args) {
    return this.fill.apply(this, args);
  }
  [$fillRect](...args) {
    return this.fillRect.apply(this, args);
  }
  [$getContextAttributes]() {
    return html_common.convertNativeToDart_Dictionary(this[_getContextAttributes_1]());
  }
  [_getContextAttributes_1](...args) {
    return this.getContextAttributes.apply(this, args);
  }
  [$getImageData](sx, sy, sw, sh) {
    return html_common.convertNativeToDart_ImageData(this[_getImageData_1](sx, sy, sw, sh));
  }
  [_getImageData_1](...args) {
    return this.getImageData.apply(this, args);
  }
  [_getLineDash](...args) {
    return this.getLineDash.apply(this, args);
  }
  [$isContextLost](...args) {
    return this.isContextLost.apply(this, args);
  }
  [$isPointInPath](...args) {
    return this.isPointInPath.apply(this, args);
  }
  [$isPointInStroke](...args) {
    return this.isPointInStroke.apply(this, args);
  }
  [$measureText](...args) {
    return this.measureText.apply(this, args);
  }
  [$putImageData](imagedata, dx, dy, dirtyX = null, dirtyY = null, dirtyWidth = null, dirtyHeight = null) {
    if (dirtyX == null && dirtyY == null && dirtyWidth == null && dirtyHeight == null) {
      let imagedata_1 = html_common.convertDartToNative_ImageData(imagedata);
      this[_putImageData_1](imagedata_1, dx, dy);
      return;
    }
    if (dirtyHeight != null && dirtyWidth != null && dirtyY != null && dirtyX != null) {
      let imagedata_1 = html_common.convertDartToNative_ImageData(imagedata);
      this[_putImageData_2](imagedata_1, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
      return;
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [_putImageData_1](...args) {
    return this.putImageData.apply(this, args);
  }
  [_putImageData_2](...args) {
    return this.putImageData.apply(this, args);
  }
  [$removeHitRegion](...args) {
    return this.removeHitRegion.apply(this, args);
  }
  [$resetTransform](...args) {
    return this.resetTransform.apply(this, args);
  }
  [$restore](...args) {
    return this.restore.apply(this, args);
  }
  [$rotate](...args) {
    return this.rotate.apply(this, args);
  }
  [$save](...args) {
    return this.save.apply(this, args);
  }
  [$scale](...args) {
    return this.scale.apply(this, args);
  }
  [$scrollPathIntoView](...args) {
    return this.scrollPathIntoView.apply(this, args);
  }
  [$setTransform](...args) {
    return this.setTransform.apply(this, args);
  }
  [$stroke](...args) {
    return this.stroke.apply(this, args);
  }
  [$strokeRect](...args) {
    return this.strokeRect.apply(this, args);
  }
  [$strokeText](...args) {
    return this.strokeText.apply(this, args);
  }
  [$transform](...args) {
    return this.transform.apply(this, args);
  }
  [$translate](...args) {
    return this.translate.apply(this, args);
  }
  [_arc](...args) {
    return this.arc.apply(this, args);
  }
  [$arcTo](...args) {
    return this.arcTo.apply(this, args);
  }
  [$bezierCurveTo](...args) {
    return this.bezierCurveTo.apply(this, args);
  }
  [$closePath](...args) {
    return this.closePath.apply(this, args);
  }
  [$ellipse](...args) {
    return this.ellipse.apply(this, args);
  }
  [$lineTo](...args) {
    return this.lineTo.apply(this, args);
  }
  [$moveTo](...args) {
    return this.moveTo.apply(this, args);
  }
  [$quadraticCurveTo](...args) {
    return this.quadraticCurveTo.apply(this, args);
  }
  [$rect](...args) {
    return this.rect.apply(this, args);
  }
  [$createImageDataFromImageData](imagedata) {
    return this.createImageData(imagedata);
  }
  [$setFillColorRgb](r, g, b, a = 1) {
    this.fillStyle = "rgba(" + dart.str(r) + ", " + dart.str(g) + ", " + dart.str(b) + ", " + dart.str(a) + ")";
  }
  [$setFillColorHsl](h, s, l, a = 1) {
    this.fillStyle = "hsla(" + dart.str(h) + ", " + dart.str(s) + "%, " + dart.str(l) + "%, " + dart.str(a) + ")";
  }
  [$setStrokeColorRgb](r, g, b, a = 1) {
    this.strokeStyle = "rgba(" + dart.str(r) + ", " + dart.str(g) + ", " + dart.str(b) + ", " + dart.str(a) + ")";
  }
  [$setStrokeColorHsl](h, s, l, a = 1) {
    this.strokeStyle = "hsla(" + dart.str(h) + ", " + dart.str(s) + "%, " + dart.str(l) + "%, " + dart.str(a) + ")";
  }
  [$arc](x, y, radius, startAngle, endAngle, anticlockwise = false) {
    this.arc(x, y, radius, startAngle, endAngle, anticlockwise);
  }
  [$createPatternFromImage](image, repetitionType) {
    return this.createPattern(image, repetitionType);
  }
  [$drawImageToRect](source, destRect, opts) {
    let sourceRect = opts && 'sourceRect' in opts ? opts.sourceRect : null;
    if (sourceRect == null) {
      this[$drawImageScaled](source, destRect[$left], destRect[$top], destRect[$width], destRect[$height]);
    } else {
      this[$drawImageScaledFromSource](source, sourceRect[$left], sourceRect[$top], sourceRect[$width], sourceRect[$height], destRect[$left], destRect[$top], destRect[$width], destRect[$height]);
    }
  }
  [$drawImage](...args) {
    return this.drawImage.apply(this, args);
  }
  [$drawImageScaled](...args) {
    return this.drawImage.apply(this, args);
  }
  [$drawImageScaledFromSource](...args) {
    return this.drawImage.apply(this, args);
  }
  get [$lineDashOffset]() {
    return this.lineDashOffset || this.webkitLineDashOffset;
  }
  set [$lineDashOffset](value) {
    typeof this.lineDashOffset != "undefined" ? this.lineDashOffset = value : this.webkitLineDashOffset = value;
  }
  [$getLineDash]() {
    if (!!this.getLineDash) {
      return this.getLineDash();
    } else if (!!this.webkitLineDash) {
      return this.webkitLineDash;
    }
    return JSArrayOfnumL().of([]);
  }
  [$setLineDash](dash) {
    if (!!this.setLineDash) {
      this.setLineDash(dash);
    } else if (!!this.webkitLineDash) {
      this.webkitLineDash = dash;
    }
  }
  [$fillText](text, x, y, maxWidth = null) {
    if (maxWidth != null) {
      this.fillText(text, x, y, maxWidth);
    } else {
      this.fillText(text, x, y);
    }
  }
  get [$backingStorePixelRatio]() {
    return 1.0;
  }
};
dart.addTypeTests(html$.CanvasRenderingContext2D);
dart.addTypeCaches(html$.CanvasRenderingContext2D);
html$.CanvasRenderingContext2D[dart.implements] = () => [html$.CanvasRenderingContext];
dart.setMethodSignature(html$.CanvasRenderingContext2D, () => ({
  __proto__: dart.getMethods(html$.CanvasRenderingContext2D.__proto__),
  [$addHitRegion]: dart.fnType(dart.void, [], [core.Map]),
  [_addHitRegion_1]: dart.fnType(dart.void, [dart.dynamic]),
  [_addHitRegion_2]: dart.fnType(dart.void, []),
  [$beginPath]: dart.fnType(dart.void, []),
  [$clearHitRegions]: dart.fnType(dart.void, []),
  [$clearRect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
  [$clip]: dart.fnType(dart.void, [], [dart.dynamic, core.String]),
  [$createImageData]: dart.fnType(html$.ImageData, [dart.dynamic], [core.int, dart.dynamic, core.Map]),
  [_createImageData_1]: dart.fnType(dart.dynamic, [dart.dynamic]),
  [_createImageData_2]: dart.fnType(dart.dynamic, [core.int, dart.dynamic]),
  [_createImageData_3]: dart.fnType(dart.dynamic, [core.int, dart.dynamic, dart.dynamic]),
  [_createImageData_4]: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic, core.int]),
  [_createImageData_5]: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic, core.int, dart.dynamic]),
  [$createLinearGradient]: dart.fnType(html$.CanvasGradient, [core.num, core.num, core.num, core.num]),
  [$createPattern]: dart.fnType(html$.CanvasPattern, [core.Object, core.String]),
  [$createRadialGradient]: dart.fnType(html$.CanvasGradient, [core.num, core.num, core.num, core.num, core.num, core.num]),
  [$drawFocusIfNeeded]: dart.fnType(dart.void, [dart.dynamic], [html$.Element]),
  [$fill]: dart.fnType(dart.void, [], [dart.dynamic, core.String]),
  [$fillRect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
  [$getContextAttributes]: dart.fnType(core.Map, []),
  [_getContextAttributes_1]: dart.fnType(dart.dynamic, []),
  [$getImageData]: dart.fnType(html$.ImageData, [core.int, core.int, core.int, core.int]),
  [_getImageData_1]: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
  [_getLineDash]: dart.fnType(core.List$(core.num), []),
  [$isContextLost]: dart.fnType(core.bool, []),
  [$isPointInPath]: dart.fnType(core.bool, [dart.dynamic, core.num], [dart.dynamic, core.String]),
  [$isPointInStroke]: dart.fnType(core.bool, [dart.dynamic, core.num], [core.num]),
  [$measureText]: dart.fnType(html$.TextMetrics, [core.String]),
  [$putImageData]: dart.fnType(dart.void, [html$.ImageData, core.int, core.int], [core.int, core.int, core.int, core.int]),
  [_putImageData_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
  [_putImageData_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
  [$removeHitRegion]: dart.fnType(dart.void, [core.String]),
  [$resetTransform]: dart.fnType(dart.void, []),
  [$restore]: dart.fnType(dart.void, []),
  [$rotate]: dart.fnType(dart.void, [core.num]),
  [$save]: dart.fnType(dart.void, []),
  [$scale]: dart.fnType(dart.void, [core.num, core.num]),
  [$scrollPathIntoView]: dart.fnType(dart.void, [], [html$.Path2D]),
  [$setTransform]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
  [$stroke]: dart.fnType(dart.void, [], [html$.Path2D]),
  [$strokeRect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
  [$strokeText]: dart.fnType(dart.void, [core.String, core.num, core.num], [core.num]),
  [$transform]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
  [$translate]: dart.fnType(dart.void, [core.num, core.num]),
  [_arc]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.bool]),
  [$arcTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num]),
  [$bezierCurveTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
  [$closePath]: dart.fnType(dart.void, []),
  [$ellipse]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.bool]),
  [$lineTo]: dart.fnType(dart.void, [core.num, core.num]),
  [$moveTo]: dart.fnType(dart.void, [core.num, core.num]),
  [$quadraticCurveTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
  [$rect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
  [$createImageDataFromImageData]: dart.fnType(html$.ImageData, [html$.ImageData]),
  [$setFillColorRgb]: dart.fnType(dart.void, [core.int, core.int, core.int], [core.num]),
  [$setFillColorHsl]: dart.fnType(dart.void, [core.int, core.num, core.num], [core.num]),
  [$setStrokeColorRgb]: dart.fnType(dart.void, [core.int, core.int, core.int], [core.num]),
  [$setStrokeColorHsl]: dart.fnType(dart.void, [core.int, core.num, core.num], [core.num]),
  [$arc]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num], [core.bool]),
  [$createPatternFromImage]: dart.fnType(html$.CanvasPattern, [html$.ImageElement, core.String]),
  [$drawImageToRect]: dart.fnType(dart.void, [html$.CanvasImageSource, math.Rectangle$(core.num)], {sourceRect: math.Rectangle$(core.num)}, {}),
  [$drawImage]: dart.fnType(dart.void, [html$.CanvasImageSource, core.num, core.num]),
  [$drawImageScaled]: dart.fnType(dart.void, [html$.CanvasImageSource, core.num, core.num, core.num, core.num]),
  [$drawImageScaledFromSource]: dart.fnType(dart.void, [html$.CanvasImageSource, core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.num]),
  [$getLineDash]: dart.fnType(core.List$(core.num), []),
  [$setLineDash]: dart.fnType(dart.void, [core.List$(core.num)]),
  [$fillText]: dart.fnType(dart.void, [core.String, core.num, core.num], [core.num])
}));
dart.setGetterSignature(html$.CanvasRenderingContext2D, () => ({
  __proto__: dart.getGetters(html$.CanvasRenderingContext2D.__proto__),
  [$canvas]: html$.CanvasElement,
  [$currentTransform]: svg$.Matrix,
  [$direction]: core.String,
  [$fillStyle]: core.Object,
  [$filter]: core.String,
  [$font]: core.String,
  [$globalAlpha]: core.num,
  [$globalCompositeOperation]: core.String,
  [$imageSmoothingEnabled]: core.bool,
  [$imageSmoothingQuality]: core.String,
  [$lineCap]: core.String,
  [$lineJoin]: core.String,
  [$lineWidth]: core.num,
  [$miterLimit]: core.num,
  [$shadowBlur]: core.num,
  [$shadowColor]: core.String,
  [$shadowOffsetX]: core.num,
  [$shadowOffsetY]: core.num,
  [$strokeStyle]: core.Object,
  [$textAlign]: core.String,
  [$textBaseline]: core.String,
  [$lineDashOffset]: core.num,
  [$backingStorePixelRatio]: core.double
}));
dart.setSetterSignature(html$.CanvasRenderingContext2D, () => ({
  __proto__: dart.getSetters(html$.CanvasRenderingContext2D.__proto__),
  [$currentTransform]: svg$.Matrix,
  [$direction]: core.String,
  [$fillStyle]: core.Object,
  [$filter]: core.String,
  [$font]: core.String,
  [$globalAlpha]: core.num,
  [$globalCompositeOperation]: core.String,
  [$imageSmoothingEnabled]: core.bool,
  [$imageSmoothingQuality]: core.String,
  [$lineCap]: core.String,
  [$lineJoin]: core.String,
  [$lineWidth]: core.num,
  [$miterLimit]: core.num,
  [$shadowBlur]: core.num,
  [$shadowColor]: core.String,
  [$shadowOffsetX]: core.num,
  [$shadowOffsetY]: core.num,
  [$strokeStyle]: core.Object,
  [$textAlign]: core.String,
  [$textBaseline]: core.String,
  [$lineDashOffset]: core.num
}));
dart.setLibraryUri(html$.CanvasRenderingContext2D, L65);
dart.registerExtension("CanvasRenderingContext2D", html$.CanvasRenderingContext2D);
html$.ChildNode = class ChildNode extends _interceptors.Interceptor {};
dart.addTypeTests(html$.ChildNode);
dart.addTypeCaches(html$.ChildNode);
dart.setLibraryUri(html$.ChildNode, L65);
html$.Client = class Client extends _interceptors.Interceptor {
  get [$frameType]() {
    return this.frameType;
  }
  get [$id]() {
    return this.id;
  }
  get [$type]() {
    return this.type;
  }
  get [$url]() {
    return this.url;
  }
  [$postMessage](...args) {
    return this.postMessage.apply(this, args);
  }
};
dart.addTypeTests(html$.Client);
dart.addTypeCaches(html$.Client);
dart.setMethodSignature(html$.Client, () => ({
  __proto__: dart.getMethods(html$.Client.__proto__),
  [$postMessage]: dart.fnType(dart.void, [core.Object], [core.List$(core.Object)])
}));
dart.setGetterSignature(html$.Client, () => ({
  __proto__: dart.getGetters(html$.Client.__proto__),
  [$frameType]: core.String,
  [$id]: core.String,
  [$type]: core.String,
  [$url]: core.String
}));
dart.setLibraryUri(html$.Client, L65);
dart.registerExtension("Client", html$.Client);
html$.Clients = class Clients extends _interceptors.Interceptor {
  [$claim]() {
    return js_util.promiseToFuture(dart.dynamic, this.claim());
  }
  [$get](id) {
    return js_util.promiseToFuture(dart.dynamic, this.get(id));
  }
  [$matchAll](options = null) {
    let options_dict = null;
    if (options != null) {
      options_dict = html_common.convertDartToNative_Dictionary(options);
    }
    return js_util.promiseToFuture(core.List, this.matchAll(options_dict));
  }
  [$openWindow](url) {
    return js_util.promiseToFuture(html$.WindowClient, this.openWindow(url));
  }
};
dart.addTypeTests(html$.Clients);
dart.addTypeCaches(html$.Clients);
dart.setMethodSignature(html$.Clients, () => ({
  __proto__: dart.getMethods(html$.Clients.__proto__),
  [$claim]: dart.fnType(async.Future, []),
  [$get]: dart.fnType(async.Future, [core.String]),
  [$matchAll]: dart.fnType(async.Future$(core.List), [], [core.Map]),
  [$openWindow]: dart.fnType(async.Future$(html$.WindowClient), [core.String])
}));
dart.setLibraryUri(html$.Clients, L65);
dart.registerExtension("Clients", html$.Clients);
html$.ClipboardEvent = class ClipboardEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.ClipboardEvent._create_1(type, eventInitDict_1);
    }
    return html$.ClipboardEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new ClipboardEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new ClipboardEvent(type);
  }
  get [$clipboardData]() {
    return this.clipboardData;
  }
};
dart.addTypeTests(html$.ClipboardEvent);
dart.addTypeCaches(html$.ClipboardEvent);
dart.setGetterSignature(html$.ClipboardEvent, () => ({
  __proto__: dart.getGetters(html$.ClipboardEvent.__proto__),
  [$clipboardData]: html$.DataTransfer
}));
dart.setLibraryUri(html$.ClipboardEvent, L65);
dart.registerExtension("ClipboardEvent", html$.ClipboardEvent);
html$.CloseEvent = class CloseEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.CloseEvent._create_1(type, eventInitDict_1);
    }
    return html$.CloseEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new CloseEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new CloseEvent(type);
  }
  get [$code]() {
    return this.code;
  }
  get [$reason]() {
    return this.reason;
  }
  get [$wasClean]() {
    return this.wasClean;
  }
};
dart.addTypeTests(html$.CloseEvent);
dart.addTypeCaches(html$.CloseEvent);
dart.setGetterSignature(html$.CloseEvent, () => ({
  __proto__: dart.getGetters(html$.CloseEvent.__proto__),
  [$code]: core.int,
  [$reason]: core.String,
  [$wasClean]: core.bool
}));
dart.setLibraryUri(html$.CloseEvent, L65);
dart.registerExtension("CloseEvent", html$.CloseEvent);
html$.Comment = class Comment extends html$.CharacterData {
  static new(data = null) {
    return html$.document.createComment(data == null ? "" : data);
  }
};
dart.addTypeTests(html$.Comment);
dart.addTypeCaches(html$.Comment);
dart.setLibraryUri(html$.Comment, L65);
dart.registerExtension("Comment", html$.Comment);
var _initCompositionEvent = dart.privateName(html$, "_initCompositionEvent");
var _initUIEvent = dart.privateName(html$, "_initUIEvent");
var _get_view = dart.privateName(html$, "_get_view");
var _which = dart.privateName(html$, "_which");
html$.UIEvent = class UIEvent$ extends html$.Event {
  static new(type, opts) {
    let view = opts && 'view' in opts ? opts.view : null;
    let detail = opts && 'detail' in opts ? opts.detail : 0;
    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
    if (view == null) {
      view = html$.window;
    }
    let e = html$.UIEvent.as(html$.document[_createEvent]("UIEvent"));
    e[_initUIEvent](type, canBubble, cancelable, view, detail);
    return e;
  }
  static __(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.UIEvent._create_1(type, eventInitDict_1);
    }
    return html$.UIEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new UIEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new UIEvent(type);
  }
  get [$detail]() {
    return this.detail;
  }
  get [$sourceCapabilities]() {
    return this.sourceCapabilities;
  }
  get [$view]() {
    return html$._convertNativeToDart_Window(this[_get_view]);
  }
  get [_get_view]() {
    return this.view;
  }
  get [_which]() {
    return this.which;
  }
  [_initUIEvent](...args) {
    return this.initUIEvent.apply(this, args);
  }
};
dart.addTypeTests(html$.UIEvent);
dart.addTypeCaches(html$.UIEvent);
dart.setMethodSignature(html$.UIEvent, () => ({
  __proto__: dart.getMethods(html$.UIEvent.__proto__),
  [_initUIEvent]: dart.fnType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int])
}));
dart.setGetterSignature(html$.UIEvent, () => ({
  __proto__: dart.getGetters(html$.UIEvent.__proto__),
  [$detail]: core.int,
  [$sourceCapabilities]: html$.InputDeviceCapabilities,
  [$view]: html$.WindowBase,
  [_get_view]: dart.dynamic,
  [_which]: core.int
}));
dart.setLibraryUri(html$.UIEvent, L65);
dart.registerExtension("UIEvent", html$.UIEvent);
html$.CompositionEvent = class CompositionEvent$ extends html$.UIEvent {
  static new(type, opts) {
    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
    let view = opts && 'view' in opts ? opts.view : null;
    let data = opts && 'data' in opts ? opts.data : null;
    let locale = opts && 'locale' in opts ? opts.locale : null;
    if (view == null) {
      view = html$.window;
    }
    let e = html$.CompositionEvent.as(html$.document[_createEvent]("CompositionEvent"));
    if (dart.test(html_common.Device.isFirefox)) {
      e.initCompositionEvent(type, canBubble, cancelable, view, data, locale);
    } else {
      e[_initCompositionEvent](type, canBubble, cancelable, view, data);
    }
    return e;
  }
  static __(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.CompositionEvent._create_1(type, eventInitDict_1);
    }
    return html$.CompositionEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new CompositionEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new CompositionEvent(type);
  }
  get [$data]() {
    return this.data;
  }
  [_initCompositionEvent](...args) {
    return this.initCompositionEvent.apply(this, args);
  }
};
dart.addTypeTests(html$.CompositionEvent);
dart.addTypeCaches(html$.CompositionEvent);
dart.setMethodSignature(html$.CompositionEvent, () => ({
  __proto__: dart.getMethods(html$.CompositionEvent.__proto__),
  [_initCompositionEvent]: dart.fnType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.String])
}));
dart.setGetterSignature(html$.CompositionEvent, () => ({
  __proto__: dart.getGetters(html$.CompositionEvent.__proto__),
  [$data]: core.String
}));
dart.setLibraryUri(html$.CompositionEvent, L65);
dart.registerExtension("CompositionEvent", html$.CompositionEvent);
html$.ContentElement = class ContentElement extends html$.HtmlElement {
  static new() {
    return html$.ContentElement.as(html$.document[$createElement]("content"));
  }
  static get supported() {
    return html$.Element.isTagSupported("content");
  }
  get [$select]() {
    return this.select;
  }
  set [$select](value) {
    this.select = value;
  }
  [$getDistributedNodes](...args) {
    return this.getDistributedNodes.apply(this, args);
  }
};
(html$.ContentElement.created = function() {
  html$.ContentElement.__proto__.created.call(this);
  ;
}).prototype = html$.ContentElement.prototype;
dart.addTypeTests(html$.ContentElement);
dart.addTypeCaches(html$.ContentElement);
dart.setMethodSignature(html$.ContentElement, () => ({
  __proto__: dart.getMethods(html$.ContentElement.__proto__),
  [$getDistributedNodes]: dart.fnType(core.List$(html$.Node), [])
}));
dart.setGetterSignature(html$.ContentElement, () => ({
  __proto__: dart.getGetters(html$.ContentElement.__proto__),
  [$select]: core.String
}));
dart.setSetterSignature(html$.ContentElement, () => ({
  __proto__: dart.getSetters(html$.ContentElement.__proto__),
  [$select]: core.String
}));
dart.setLibraryUri(html$.ContentElement, L65);
dart.registerExtension("HTMLContentElement", html$.ContentElement);
html$.CookieStore = class CookieStore extends _interceptors.Interceptor {
  [$getAll](options = null) {
    let options_dict = null;
    if (options != null) {
      options_dict = html_common.convertDartToNative_Dictionary(options);
    }
    return js_util.promiseToFuture(dart.dynamic, this.getAll(options_dict));
  }
  [$set](name, value, options = null) {
    let options_dict = null;
    if (options != null) {
      options_dict = html_common.convertDartToNative_Dictionary(options);
    }
    return js_util.promiseToFuture(dart.dynamic, this.set(name, value, options_dict));
  }
};
dart.addTypeTests(html$.CookieStore);
dart.addTypeCaches(html$.CookieStore);
dart.setMethodSignature(html$.CookieStore, () => ({
  __proto__: dart.getMethods(html$.CookieStore.__proto__),
  [$getAll]: dart.fnType(async.Future, [], [core.Map]),
  [$set]: dart.fnType(async.Future, [core.String, core.String], [core.Map])
}));
dart.setLibraryUri(html$.CookieStore, L65);
dart.registerExtension("CookieStore", html$.CookieStore);
html$.Coordinates = class Coordinates extends _interceptors.Interceptor {
  get [$accuracy]() {
    return this.accuracy;
  }
  get [$altitude]() {
    return this.altitude;
  }
  get [$altitudeAccuracy]() {
    return this.altitudeAccuracy;
  }
  get [$heading]() {
    return this.heading;
  }
  get [$latitude]() {
    return this.latitude;
  }
  get [$longitude]() {
    return this.longitude;
  }
  get [$speed]() {
    return this.speed;
  }
};
dart.addTypeTests(html$.Coordinates);
dart.addTypeCaches(html$.Coordinates);
dart.setGetterSignature(html$.Coordinates, () => ({
  __proto__: dart.getGetters(html$.Coordinates.__proto__),
  [$accuracy]: core.num,
  [$altitude]: core.num,
  [$altitudeAccuracy]: core.num,
  [$heading]: core.num,
  [$latitude]: core.num,
  [$longitude]: core.num,
  [$speed]: core.num
}));
dart.setLibraryUri(html$.Coordinates, L65);
dart.registerExtension("Coordinates", html$.Coordinates);
html$.Credential = class Credential extends _interceptors.Interceptor {
  get [$id]() {
    return this.id;
  }
  get [$type]() {
    return this.type;
  }
};
dart.addTypeTests(html$.Credential);
dart.addTypeCaches(html$.Credential);
dart.setGetterSignature(html$.Credential, () => ({
  __proto__: dart.getGetters(html$.Credential.__proto__),
  [$id]: core.String,
  [$type]: core.String
}));
dart.setLibraryUri(html$.Credential, L65);
dart.registerExtension("Credential", html$.Credential);
html$.CredentialUserData = class CredentialUserData extends _interceptors.Interceptor {
  get [$iconUrl]() {
    return this.iconURL;
  }
  get [$name]() {
    return this.name;
  }
};
dart.addTypeTests(html$.CredentialUserData);
dart.addTypeCaches(html$.CredentialUserData);
dart.setGetterSignature(html$.CredentialUserData, () => ({
  __proto__: dart.getGetters(html$.CredentialUserData.__proto__),
  [$iconUrl]: core.String,
  [$name]: core.String
}));
dart.setLibraryUri(html$.CredentialUserData, L65);
dart.registerExtension("CredentialUserData", html$.CredentialUserData);
html$.CredentialsContainer = class CredentialsContainer extends _interceptors.Interceptor {
  [$create](options = null) {
    let options_dict = null;
    if (options != null) {
      options_dict = html_common.convertDartToNative_Dictionary(options);
    }
    return js_util.promiseToFuture(dart.dynamic, this.create(options_dict));
  }
  [$get](options = null) {
    let options_dict = null;
    if (options != null) {
      options_dict = html_common.convertDartToNative_Dictionary(options);
    }
    return js_util.promiseToFuture(dart.dynamic, this.get(options_dict));
  }
  [$preventSilentAccess]() {
    return js_util.promiseToFuture(dart.dynamic, this.preventSilentAccess());
  }
  [$requireUserMediation]() {
    return js_util.promiseToFuture(dart.dynamic, this.requireUserMediation());
  }
  [$store](credential) {
    return js_util.promiseToFuture(dart.dynamic, this.store(credential));
  }
};
dart.addTypeTests(html$.CredentialsContainer);
dart.addTypeCaches(html$.CredentialsContainer);
dart.setMethodSignature(html$.CredentialsContainer, () => ({
  __proto__: dart.getMethods(html$.CredentialsContainer.__proto__),
  [$create]: dart.fnType(async.Future, [], [core.Map]),
  [$get]: dart.fnType(async.Future, [], [core.Map]),
  [$preventSilentAccess]: dart.fnType(async.Future, []),
  [$requireUserMediation]: dart.fnType(async.Future, []),
  [$store]: dart.fnType(async.Future, [html$.Credential])
}));
dart.setLibraryUri(html$.CredentialsContainer, L65);
dart.registerExtension("CredentialsContainer", html$.CredentialsContainer);
var _getRandomValues = dart.privateName(html$, "_getRandomValues");
html$.Crypto = class Crypto extends _interceptors.Interceptor {
  [$getRandomValues](array) {
    return this[_getRandomValues](array);
  }
  static get supported() {
    return !!(window.crypto && window.crypto.getRandomValues);
  }
  get [$subtle]() {
    return this.subtle;
  }
  [_getRandomValues](...args) {
    return this.getRandomValues.apply(this, args);
  }
};
dart.addTypeTests(html$.Crypto);
dart.addTypeCaches(html$.Crypto);
dart.setMethodSignature(html$.Crypto, () => ({
  __proto__: dart.getMethods(html$.Crypto.__proto__),
  [$getRandomValues]: dart.fnType(typed_data.TypedData, [typed_data.TypedData]),
  [_getRandomValues]: dart.fnType(typed_data.TypedData, [typed_data.TypedData])
}));
dart.setGetterSignature(html$.Crypto, () => ({
  __proto__: dart.getGetters(html$.Crypto.__proto__),
  [$subtle]: html$._SubtleCrypto
}));
dart.setLibraryUri(html$.Crypto, L65);
dart.registerExtension("Crypto", html$.Crypto);
html$.CryptoKey = class CryptoKey extends _interceptors.Interceptor {
  get [$algorithm]() {
    return this.algorithm;
  }
  get [$extractable]() {
    return this.extractable;
  }
  get [$type]() {
    return this.type;
  }
  get [$usages]() {
    return this.usages;
  }
};
dart.addTypeTests(html$.CryptoKey);
dart.addTypeCaches(html$.CryptoKey);
dart.setGetterSignature(html$.CryptoKey, () => ({
  __proto__: dart.getGetters(html$.CryptoKey.__proto__),
  [$algorithm]: core.Object,
  [$extractable]: core.bool,
  [$type]: core.String,
  [$usages]: core.Object
}));
dart.setLibraryUri(html$.CryptoKey, L65);
dart.registerExtension("CryptoKey", html$.CryptoKey);
html$.Css = class Css extends _interceptors.Interceptor {
  get [$paintWorklet]() {
    return this.paintWorklet;
  }
  static registerProperty(descriptor) {
    let descriptor_1 = html_common.convertDartToNative_Dictionary(descriptor);
    dart.global.CSS.registerProperty(descriptor_1);
    return;
  }
};
dart.addTypeTests(html$.Css);
dart.addTypeCaches(html$.Css);
dart.setGetterSignature(html$.Css, () => ({
  __proto__: dart.getGetters(html$.Css.__proto__),
  [$paintWorklet]: html$._Worklet
}));
dart.setLibraryUri(html$.Css, L65);
dart.registerExtension("CSS", html$.Css);
html$.CssRule = class CssRule extends _interceptors.Interceptor {
  get [$cssText]() {
    return this.cssText;
  }
  set [$cssText](value) {
    this.cssText = value;
  }
  get [$parentRule]() {
    return this.parentRule;
  }
  get [$parentStyleSheet]() {
    return this.parentStyleSheet;
  }
  get [$type]() {
    return this.type;
  }
};
dart.addTypeTests(html$.CssRule);
dart.addTypeCaches(html$.CssRule);
dart.setGetterSignature(html$.CssRule, () => ({
  __proto__: dart.getGetters(html$.CssRule.__proto__),
  [$cssText]: core.String,
  [$parentRule]: html$.CssRule,
  [$parentStyleSheet]: html$.CssStyleSheet,
  [$type]: core.int
}));
dart.setSetterSignature(html$.CssRule, () => ({
  __proto__: dart.getSetters(html$.CssRule.__proto__),
  [$cssText]: core.String
}));
dart.setLibraryUri(html$.CssRule, L65);
dart.defineLazy(html$.CssRule, {
  /*html$.CssRule.CHARSET_RULE*/get CHARSET_RULE() {
    return 2;
  },
  /*html$.CssRule.FONT_FACE_RULE*/get FONT_FACE_RULE() {
    return 5;
  },
  /*html$.CssRule.IMPORT_RULE*/get IMPORT_RULE() {
    return 3;
  },
  /*html$.CssRule.KEYFRAMES_RULE*/get KEYFRAMES_RULE() {
    return 7;
  },
  /*html$.CssRule.KEYFRAME_RULE*/get KEYFRAME_RULE() {
    return 8;
  },
  /*html$.CssRule.MEDIA_RULE*/get MEDIA_RULE() {
    return 4;
  },
  /*html$.CssRule.NAMESPACE_RULE*/get NAMESPACE_RULE() {
    return 10;
  },
  /*html$.CssRule.PAGE_RULE*/get PAGE_RULE() {
    return 6;
  },
  /*html$.CssRule.STYLE_RULE*/get STYLE_RULE() {
    return 1;
  },
  /*html$.CssRule.SUPPORTS_RULE*/get SUPPORTS_RULE() {
    return 12;
  },
  /*html$.CssRule.VIEWPORT_RULE*/get VIEWPORT_RULE() {
    return 15;
  }
}, true);
dart.registerExtension("CSSRule", html$.CssRule);
html$.CssCharsetRule = class CssCharsetRule extends html$.CssRule {
  get [$encoding]() {
    return this.encoding;
  }
  set [$encoding](value) {
    this.encoding = value;
  }
};
dart.addTypeTests(html$.CssCharsetRule);
dart.addTypeCaches(html$.CssCharsetRule);
dart.setGetterSignature(html$.CssCharsetRule, () => ({
  __proto__: dart.getGetters(html$.CssCharsetRule.__proto__),
  [$encoding]: core.String
}));
dart.setSetterSignature(html$.CssCharsetRule, () => ({
  __proto__: dart.getSetters(html$.CssCharsetRule.__proto__),
  [$encoding]: core.String
}));
dart.setLibraryUri(html$.CssCharsetRule, L65);
dart.registerExtension("CSSCharsetRule", html$.CssCharsetRule);
html$.CssGroupingRule = class CssGroupingRule extends html$.CssRule {
  get [$cssRules]() {
    return this.cssRules;
  }
  [$deleteRule](...args) {
    return this.deleteRule.apply(this, args);
  }
  [$insertRule](...args) {
    return this.insertRule.apply(this, args);
  }
};
dart.addTypeTests(html$.CssGroupingRule);
dart.addTypeCaches(html$.CssGroupingRule);
dart.setMethodSignature(html$.CssGroupingRule, () => ({
  __proto__: dart.getMethods(html$.CssGroupingRule.__proto__),
  [$deleteRule]: dart.fnType(dart.void, [core.int]),
  [$insertRule]: dart.fnType(core.int, [core.String, core.int])
}));
dart.setGetterSignature(html$.CssGroupingRule, () => ({
  __proto__: dart.getGetters(html$.CssGroupingRule.__proto__),
  [$cssRules]: core.List$(html$.CssRule)
}));
dart.setLibraryUri(html$.CssGroupingRule, L65);
dart.registerExtension("CSSGroupingRule", html$.CssGroupingRule);
html$.CssConditionRule = class CssConditionRule extends html$.CssGroupingRule {
  get [$conditionText]() {
    return this.conditionText;
  }
};
dart.addTypeTests(html$.CssConditionRule);
dart.addTypeCaches(html$.CssConditionRule);
dart.setGetterSignature(html$.CssConditionRule, () => ({
  __proto__: dart.getGetters(html$.CssConditionRule.__proto__),
  [$conditionText]: core.String
}));
dart.setLibraryUri(html$.CssConditionRule, L65);
dart.registerExtension("CSSConditionRule", html$.CssConditionRule);
html$.CssFontFaceRule = class CssFontFaceRule extends html$.CssRule {
  get [$style]() {
    return this.style;
  }
};
dart.addTypeTests(html$.CssFontFaceRule);
dart.addTypeCaches(html$.CssFontFaceRule);
dart.setGetterSignature(html$.CssFontFaceRule, () => ({
  __proto__: dart.getGetters(html$.CssFontFaceRule.__proto__),
  [$style]: html$.CssStyleDeclaration
}));
dart.setLibraryUri(html$.CssFontFaceRule, L65);
dart.registerExtension("CSSFontFaceRule", html$.CssFontFaceRule);
html$.CssStyleValue = class CssStyleValue extends _interceptors.Interceptor {};
dart.addTypeTests(html$.CssStyleValue);
dart.addTypeCaches(html$.CssStyleValue);
dart.setLibraryUri(html$.CssStyleValue, L65);
dart.registerExtension("CSSStyleValue", html$.CssStyleValue);
html$.CssResourceValue = class CssResourceValue extends html$.CssStyleValue {
  get [$state]() {
    return this.state;
  }
};
dart.addTypeTests(html$.CssResourceValue);
dart.addTypeCaches(html$.CssResourceValue);
dart.setGetterSignature(html$.CssResourceValue, () => ({
  __proto__: dart.getGetters(html$.CssResourceValue.__proto__),
  [$state]: core.String
}));
dart.setLibraryUri(html$.CssResourceValue, L65);
dart.registerExtension("CSSResourceValue", html$.CssResourceValue);
html$.CssImageValue = class CssImageValue extends html$.CssResourceValue {
  get [$intrinsicHeight]() {
    return this.intrinsicHeight;
  }
  get [$intrinsicRatio]() {
    return this.intrinsicRatio;
  }
  get [$intrinsicWidth]() {
    return this.intrinsicWidth;
  }
};
dart.addTypeTests(html$.CssImageValue);
dart.addTypeCaches(html$.CssImageValue);
dart.setGetterSignature(html$.CssImageValue, () => ({
  __proto__: dart.getGetters(html$.CssImageValue.__proto__),
  [$intrinsicHeight]: core.num,
  [$intrinsicRatio]: core.num,
  [$intrinsicWidth]: core.num
}));
dart.setLibraryUri(html$.CssImageValue, L65);
dart.registerExtension("CSSImageValue", html$.CssImageValue);
html$.CssImportRule = class CssImportRule extends html$.CssRule {
  get [$href]() {
    return this.href;
  }
  get [$media]() {
    return this.media;
  }
  get [$styleSheet]() {
    return this.styleSheet;
  }
};
dart.addTypeTests(html$.CssImportRule);
dart.addTypeCaches(html$.CssImportRule);
dart.setGetterSignature(html$.CssImportRule, () => ({
  __proto__: dart.getGetters(html$.CssImportRule.__proto__),
  [$href]: core.String,
  [$media]: html$.MediaList,
  [$styleSheet]: html$.CssStyleSheet
}));
dart.setLibraryUri(html$.CssImportRule, L65);
dart.registerExtension("CSSImportRule", html$.CssImportRule);
html$.CssKeyframeRule = class CssKeyframeRule extends html$.CssRule {
  get [$keyText]() {
    return this.keyText;
  }
  set [$keyText](value) {
    this.keyText = value;
  }
  get [$style]() {
    return this.style;
  }
};
dart.addTypeTests(html$.CssKeyframeRule);
dart.addTypeCaches(html$.CssKeyframeRule);
dart.setGetterSignature(html$.CssKeyframeRule, () => ({
  __proto__: dart.getGetters(html$.CssKeyframeRule.__proto__),
  [$keyText]: core.String,
  [$style]: html$.CssStyleDeclaration
}));
dart.setSetterSignature(html$.CssKeyframeRule, () => ({
  __proto__: dart.getSetters(html$.CssKeyframeRule.__proto__),
  [$keyText]: core.String
}));
dart.setLibraryUri(html$.CssKeyframeRule, L65);
dart.registerExtension("CSSKeyframeRule", html$.CssKeyframeRule);
dart.registerExtension("MozCSSKeyframeRule", html$.CssKeyframeRule);
dart.registerExtension("WebKitCSSKeyframeRule", html$.CssKeyframeRule);
var __getter__ = dart.privateName(html$, "__getter__");
html$.CssKeyframesRule = class CssKeyframesRule extends html$.CssRule {
  get [$cssRules]() {
    return this.cssRules;
  }
  get [$name]() {
    return this.name;
  }
  set [$name](value) {
    this.name = value;
  }
  [__getter__](...args) {
    return this.__getter__.apply(this, args);
  }
  [$appendRule](...args) {
    return this.appendRule.apply(this, args);
  }
  [$deleteRule](...args) {
    return this.deleteRule.apply(this, args);
  }
  [$findRule](...args) {
    return this.findRule.apply(this, args);
  }
};
dart.addTypeTests(html$.CssKeyframesRule);
dart.addTypeCaches(html$.CssKeyframesRule);
dart.setMethodSignature(html$.CssKeyframesRule, () => ({
  __proto__: dart.getMethods(html$.CssKeyframesRule.__proto__),
  [__getter__]: dart.fnType(html$.CssKeyframeRule, [core.int]),
  [$appendRule]: dart.fnType(dart.void, [core.String]),
  [$deleteRule]: dart.fnType(dart.void, [core.String]),
  [$findRule]: dart.fnType(html$.CssKeyframeRule, [core.String])
}));
dart.setGetterSignature(html$.CssKeyframesRule, () => ({
  __proto__: dart.getGetters(html$.CssKeyframesRule.__proto__),
  [$cssRules]: core.List$(html$.CssRule),
  [$name]: core.String
}));
dart.setSetterSignature(html$.CssKeyframesRule, () => ({
  __proto__: dart.getSetters(html$.CssKeyframesRule.__proto__),
  [$name]: core.String
}));
dart.setLibraryUri(html$.CssKeyframesRule, L65);
dart.registerExtension("CSSKeyframesRule", html$.CssKeyframesRule);
dart.registerExtension("MozCSSKeyframesRule", html$.CssKeyframesRule);
dart.registerExtension("WebKitCSSKeyframesRule", html$.CssKeyframesRule);
html$.CssKeywordValue = class CssKeywordValue extends html$.CssStyleValue {
  static new(keyword) {
    return html$.CssKeywordValue._create_1(keyword);
  }
  static _create_1(keyword) {
    return new CSSKeywordValue(keyword);
  }
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
};
dart.addTypeTests(html$.CssKeywordValue);
dart.addTypeCaches(html$.CssKeywordValue);
dart.setGetterSignature(html$.CssKeywordValue, () => ({
  __proto__: dart.getGetters(html$.CssKeywordValue.__proto__),
  [$value]: core.String
}));
dart.setSetterSignature(html$.CssKeywordValue, () => ({
  __proto__: dart.getSetters(html$.CssKeywordValue.__proto__),
  [$value]: core.String
}));
dart.setLibraryUri(html$.CssKeywordValue, L65);
dart.registerExtension("CSSKeywordValue", html$.CssKeywordValue);
html$.CssTransformComponent = class CssTransformComponent extends _interceptors.Interceptor {
  get [$is2D]() {
    return this.is2D;
  }
  set [$is2D](value) {
    this.is2D = value;
  }
};
dart.addTypeTests(html$.CssTransformComponent);
dart.addTypeCaches(html$.CssTransformComponent);
dart.setGetterSignature(html$.CssTransformComponent, () => ({
  __proto__: dart.getGetters(html$.CssTransformComponent.__proto__),
  [$is2D]: core.bool
}));
dart.setSetterSignature(html$.CssTransformComponent, () => ({
  __proto__: dart.getSetters(html$.CssTransformComponent.__proto__),
  [$is2D]: core.bool
}));
dart.setLibraryUri(html$.CssTransformComponent, L65);
dart.registerExtension("CSSTransformComponent", html$.CssTransformComponent);
html$.CssMatrixComponent = class CssMatrixComponent extends html$.CssTransformComponent {
  static new(matrix, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return html$.CssMatrixComponent._create_1(matrix, options_1);
    }
    return html$.CssMatrixComponent._create_2(matrix);
  }
  static _create_1(matrix, options) {
    return new CSSMatrixComponent(matrix, options);
  }
  static _create_2(matrix) {
    return new CSSMatrixComponent(matrix);
  }
  get [$matrix]() {
    return this.matrix;
  }
  set [$matrix](value) {
    this.matrix = value;
  }
};
dart.addTypeTests(html$.CssMatrixComponent);
dart.addTypeCaches(html$.CssMatrixComponent);
dart.setGetterSignature(html$.CssMatrixComponent, () => ({
  __proto__: dart.getGetters(html$.CssMatrixComponent.__proto__),
  [$matrix]: html$.DomMatrix
}));
dart.setSetterSignature(html$.CssMatrixComponent, () => ({
  __proto__: dart.getSetters(html$.CssMatrixComponent.__proto__),
  [$matrix]: html$.DomMatrix
}));
dart.setLibraryUri(html$.CssMatrixComponent, L65);
dart.registerExtension("CSSMatrixComponent", html$.CssMatrixComponent);
html$.CssMediaRule = class CssMediaRule extends html$.CssConditionRule {
  get [$media]() {
    return this.media;
  }
};
dart.addTypeTests(html$.CssMediaRule);
dart.addTypeCaches(html$.CssMediaRule);
dart.setGetterSignature(html$.CssMediaRule, () => ({
  __proto__: dart.getGetters(html$.CssMediaRule.__proto__),
  [$media]: html$.MediaList
}));
dart.setLibraryUri(html$.CssMediaRule, L65);
dart.registerExtension("CSSMediaRule", html$.CssMediaRule);
html$.CssNamespaceRule = class CssNamespaceRule extends html$.CssRule {
  get [$namespaceUri]() {
    return this.namespaceURI;
  }
  get [$prefix]() {
    return this.prefix;
  }
};
dart.addTypeTests(html$.CssNamespaceRule);
dart.addTypeCaches(html$.CssNamespaceRule);
dart.setGetterSignature(html$.CssNamespaceRule, () => ({
  __proto__: dart.getGetters(html$.CssNamespaceRule.__proto__),
  [$namespaceUri]: core.String,
  [$prefix]: core.String
}));
dart.setLibraryUri(html$.CssNamespaceRule, L65);
dart.registerExtension("CSSNamespaceRule", html$.CssNamespaceRule);
html$.CssNumericValue = class CssNumericValue extends html$.CssStyleValue {
  [$add](...args) {
    return this.add.apply(this, args);
  }
  [$div](...args) {
    return this.div.apply(this, args);
  }
  [$mul](...args) {
    return this.mul.apply(this, args);
  }
  [$sub](...args) {
    return this.sub.apply(this, args);
  }
  [$to](...args) {
    return this.to.apply(this, args);
  }
};
dart.addTypeTests(html$.CssNumericValue);
dart.addTypeCaches(html$.CssNumericValue);
dart.setMethodSignature(html$.CssNumericValue, () => ({
  __proto__: dart.getMethods(html$.CssNumericValue.__proto__),
  [$add]: dart.fnType(html$.CssNumericValue, [html$.CssNumericValue]),
  [$div]: dart.fnType(html$.CssNumericValue, [core.num]),
  [$mul]: dart.fnType(html$.CssNumericValue, [core.num]),
  [$sub]: dart.fnType(html$.CssNumericValue, [html$.CssNumericValue]),
  [$to]: dart.fnType(html$.CssNumericValue, [core.String])
}));
dart.setLibraryUri(html$.CssNumericValue, L65);
dart.registerExtension("CSSNumericValue", html$.CssNumericValue);
html$.CssPageRule = class CssPageRule extends html$.CssRule {
  get [$selectorText]() {
    return this.selectorText;
  }
  set [$selectorText](value) {
    this.selectorText = value;
  }
  get [$style]() {
    return this.style;
  }
};
dart.addTypeTests(html$.CssPageRule);
dart.addTypeCaches(html$.CssPageRule);
dart.setGetterSignature(html$.CssPageRule, () => ({
  __proto__: dart.getGetters(html$.CssPageRule.__proto__),
  [$selectorText]: core.String,
  [$style]: html$.CssStyleDeclaration
}));
dart.setSetterSignature(html$.CssPageRule, () => ({
  __proto__: dart.getSetters(html$.CssPageRule.__proto__),
  [$selectorText]: core.String
}));
dart.setLibraryUri(html$.CssPageRule, L65);
dart.registerExtension("CSSPageRule", html$.CssPageRule);
html$.CssPerspective = class CssPerspective extends html$.CssTransformComponent {
  static new(length) {
    return html$.CssPerspective._create_1(length);
  }
  static _create_1(length) {
    return new CSSPerspective(length);
  }
  get [$length]() {
    return this.length;
  }
  set [$length](value) {
    this.length = value;
  }
};
dart.addTypeTests(html$.CssPerspective);
dart.addTypeCaches(html$.CssPerspective);
dart.setGetterSignature(html$.CssPerspective, () => ({
  __proto__: dart.getGetters(html$.CssPerspective.__proto__),
  [$length]: html$.CssNumericValue
}));
dart.setSetterSignature(html$.CssPerspective, () => ({
  __proto__: dart.getSetters(html$.CssPerspective.__proto__),
  [$length]: html$.CssNumericValue
}));
dart.setLibraryUri(html$.CssPerspective, L65);
dart.registerExtension("CSSPerspective", html$.CssPerspective);
html$.CssPositionValue = class CssPositionValue extends html$.CssStyleValue {
  static new(x, y) {
    return html$.CssPositionValue._create_1(x, y);
  }
  static _create_1(x, y) {
    return new CSSPositionValue(x, y);
  }
  get [$x]() {
    return this.x;
  }
  set [$x](value) {
    this.x = value;
  }
  get [$y]() {
    return this.y;
  }
  set [$y](value) {
    this.y = value;
  }
};
dart.addTypeTests(html$.CssPositionValue);
dart.addTypeCaches(html$.CssPositionValue);
dart.setGetterSignature(html$.CssPositionValue, () => ({
  __proto__: dart.getGetters(html$.CssPositionValue.__proto__),
  [$x]: html$.CssNumericValue,
  [$y]: html$.CssNumericValue
}));
dart.setSetterSignature(html$.CssPositionValue, () => ({
  __proto__: dart.getSetters(html$.CssPositionValue.__proto__),
  [$x]: html$.CssNumericValue,
  [$y]: html$.CssNumericValue
}));
dart.setLibraryUri(html$.CssPositionValue, L65);
dart.registerExtension("CSSPositionValue", html$.CssPositionValue);
html$.CssRotation = class CssRotation extends html$.CssTransformComponent {
  static new(angleValue_OR_x, y = null, z = null, angle = null) {
    if (html$.CssNumericValue.is(angleValue_OR_x) && y == null && z == null && angle == null) {
      return html$.CssRotation._create_1(angleValue_OR_x);
    }
    if (html$.CssNumericValue.is(angle) && typeof z == 'number' && typeof y == 'number' && typeof angleValue_OR_x == 'number') {
      return html$.CssRotation._create_2(angleValue_OR_x, y, z, angle);
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  static _create_1(angleValue_OR_x) {
    return new CSSRotation(angleValue_OR_x);
  }
  static _create_2(angleValue_OR_x, y, z, angle) {
    return new CSSRotation(angleValue_OR_x, y, z, angle);
  }
  get [$angle]() {
    return this.angle;
  }
  set [$angle](value) {
    this.angle = value;
  }
  get [$x]() {
    return this.x;
  }
  set [$x](value) {
    this.x = value;
  }
  get [$y]() {
    return this.y;
  }
  set [$y](value) {
    this.y = value;
  }
  get [$z]() {
    return this.z;
  }
  set [$z](value) {
    this.z = value;
  }
};
dart.addTypeTests(html$.CssRotation);
dart.addTypeCaches(html$.CssRotation);
dart.setGetterSignature(html$.CssRotation, () => ({
  __proto__: dart.getGetters(html$.CssRotation.__proto__),
  [$angle]: html$.CssNumericValue,
  [$x]: core.num,
  [$y]: core.num,
  [$z]: core.num
}));
dart.setSetterSignature(html$.CssRotation, () => ({
  __proto__: dart.getSetters(html$.CssRotation.__proto__),
  [$angle]: html$.CssNumericValue,
  [$x]: core.num,
  [$y]: core.num,
  [$z]: core.num
}));
dart.setLibraryUri(html$.CssRotation, L65);
dart.registerExtension("CSSRotation", html$.CssRotation);
html$.CssScale = class CssScale extends html$.CssTransformComponent {
  static new(x, y, z = null) {
    if (typeof y == 'number' && typeof x == 'number' && z == null) {
      return html$.CssScale._create_1(x, y);
    }
    if (typeof z == 'number' && typeof y == 'number' && typeof x == 'number') {
      return html$.CssScale._create_2(x, y, z);
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  static _create_1(x, y) {
    return new CSSScale(x, y);
  }
  static _create_2(x, y, z) {
    return new CSSScale(x, y, z);
  }
  get [$x]() {
    return this.x;
  }
  set [$x](value) {
    this.x = value;
  }
  get [$y]() {
    return this.y;
  }
  set [$y](value) {
    this.y = value;
  }
  get [$z]() {
    return this.z;
  }
  set [$z](value) {
    this.z = value;
  }
};
dart.addTypeTests(html$.CssScale);
dart.addTypeCaches(html$.CssScale);
dart.setGetterSignature(html$.CssScale, () => ({
  __proto__: dart.getGetters(html$.CssScale.__proto__),
  [$x]: core.num,
  [$y]: core.num,
  [$z]: core.num
}));
dart.setSetterSignature(html$.CssScale, () => ({
  __proto__: dart.getSetters(html$.CssScale.__proto__),
  [$x]: core.num,
  [$y]: core.num,
  [$z]: core.num
}));
dart.setLibraryUri(html$.CssScale, L65);
dart.registerExtension("CSSScale", html$.CssScale);
html$.CssSkew = class CssSkew extends html$.CssTransformComponent {
  static new(ax, ay) {
    return html$.CssSkew._create_1(ax, ay);
  }
  static _create_1(ax, ay) {
    return new CSSSkew(ax, ay);
  }
  get [$ax]() {
    return this.ax;
  }
  set [$ax](value) {
    this.ax = value;
  }
  get [$ay]() {
    return this.ay;
  }
  set [$ay](value) {
    this.ay = value;
  }
};
dart.addTypeTests(html$.CssSkew);
dart.addTypeCaches(html$.CssSkew);
dart.setGetterSignature(html$.CssSkew, () => ({
  __proto__: dart.getGetters(html$.CssSkew.__proto__),
  [$ax]: html$.CssNumericValue,
  [$ay]: html$.CssNumericValue
}));
dart.setSetterSignature(html$.CssSkew, () => ({
  __proto__: dart.getSetters(html$.CssSkew.__proto__),
  [$ax]: html$.CssNumericValue,
  [$ay]: html$.CssNumericValue
}));
dart.setLibraryUri(html$.CssSkew, L65);
dart.registerExtension("CSSSkew", html$.CssSkew);
var _getPropertyValueHelper = dart.privateName(html$, "_getPropertyValueHelper");
var _browserPropertyName = dart.privateName(html$, "_browserPropertyName");
var _getPropertyValue = dart.privateName(html$, "_getPropertyValue");
var _supportsProperty = dart.privateName(html$, "_supportsProperty");
var _setPropertyHelper = dart.privateName(html$, "_setPropertyHelper");
var _supportedBrowserPropertyName = dart.privateName(html$, "_supportedBrowserPropertyName");
var _background = dart.privateName(html$, "_background");
var _backgroundAttachment = dart.privateName(html$, "_backgroundAttachment");
var _backgroundColor = dart.privateName(html$, "_backgroundColor");
var _backgroundImage = dart.privateName(html$, "_backgroundImage");
var _backgroundPosition = dart.privateName(html$, "_backgroundPosition");
var _backgroundRepeat = dart.privateName(html$, "_backgroundRepeat");
var _border = dart.privateName(html$, "_border");
var _borderBottom = dart.privateName(html$, "_borderBottom");
var _borderBottomColor = dart.privateName(html$, "_borderBottomColor");
var _borderBottomStyle = dart.privateName(html$, "_borderBottomStyle");
var _borderBottomWidth = dart.privateName(html$, "_borderBottomWidth");
var _borderCollapse = dart.privateName(html$, "_borderCollapse");
var _borderColor = dart.privateName(html$, "_borderColor");
var _borderLeft = dart.privateName(html$, "_borderLeft");
var _borderLeftColor = dart.privateName(html$, "_borderLeftColor");
var _borderLeftStyle = dart.privateName(html$, "_borderLeftStyle");
var _borderLeftWidth = dart.privateName(html$, "_borderLeftWidth");
var _borderRight = dart.privateName(html$, "_borderRight");
var _borderRightColor = dart.privateName(html$, "_borderRightColor");
var _borderRightStyle = dart.privateName(html$, "_borderRightStyle");
var _borderRightWidth = dart.privateName(html$, "_borderRightWidth");
var _borderSpacing = dart.privateName(html$, "_borderSpacing");
var _borderStyle = dart.privateName(html$, "_borderStyle");
var _borderTop = dart.privateName(html$, "_borderTop");
var _borderTopColor = dart.privateName(html$, "_borderTopColor");
var _borderTopStyle = dart.privateName(html$, "_borderTopStyle");
var _borderTopWidth = dart.privateName(html$, "_borderTopWidth");
var _borderWidth = dart.privateName(html$, "_borderWidth");
var _bottom = dart.privateName(html$, "_bottom");
var _captionSide = dart.privateName(html$, "_captionSide");
var _clear$0 = dart.privateName(html$, "_clear");
var _clip = dart.privateName(html$, "_clip");
var _color = dart.privateName(html$, "_color");
var _content = dart.privateName(html$, "_content");
var _cursor = dart.privateName(html$, "_cursor");
var _direction = dart.privateName(html$, "_direction");
var _display = dart.privateName(html$, "_display");
var _emptyCells = dart.privateName(html$, "_emptyCells");
var _font = dart.privateName(html$, "_font");
var _fontFamily = dart.privateName(html$, "_fontFamily");
var _fontSize = dart.privateName(html$, "_fontSize");
var _fontStyle = dart.privateName(html$, "_fontStyle");
var _fontVariant = dart.privateName(html$, "_fontVariant");
var _fontWeight = dart.privateName(html$, "_fontWeight");
var _height$ = dart.privateName(html$, "_height");
var _left = dart.privateName(html$, "_left");
var _letterSpacing = dart.privateName(html$, "_letterSpacing");
var _lineHeight = dart.privateName(html$, "_lineHeight");
var _listStyle = dart.privateName(html$, "_listStyle");
var _listStyleImage = dart.privateName(html$, "_listStyleImage");
var _listStylePosition = dart.privateName(html$, "_listStylePosition");
var _listStyleType = dart.privateName(html$, "_listStyleType");
var _margin = dart.privateName(html$, "_margin");
var _marginBottom = dart.privateName(html$, "_marginBottom");
var _marginLeft = dart.privateName(html$, "_marginLeft");
var _marginRight = dart.privateName(html$, "_marginRight");
var _marginTop = dart.privateName(html$, "_marginTop");
var _maxHeight = dart.privateName(html$, "_maxHeight");
var _maxWidth = dart.privateName(html$, "_maxWidth");
var _minHeight = dart.privateName(html$, "_minHeight");
var _minWidth = dart.privateName(html$, "_minWidth");
var _outline = dart.privateName(html$, "_outline");
var _outlineColor = dart.privateName(html$, "_outlineColor");
var _outlineStyle = dart.privateName(html$, "_outlineStyle");
var _outlineWidth = dart.privateName(html$, "_outlineWidth");
var _overflow = dart.privateName(html$, "_overflow");
var _padding = dart.privateName(html$, "_padding");
var _paddingBottom = dart.privateName(html$, "_paddingBottom");
var _paddingLeft = dart.privateName(html$, "_paddingLeft");
var _paddingRight = dart.privateName(html$, "_paddingRight");
var _paddingTop = dart.privateName(html$, "_paddingTop");
var _pageBreakAfter = dart.privateName(html$, "_pageBreakAfter");
var _pageBreakBefore = dart.privateName(html$, "_pageBreakBefore");
var _pageBreakInside = dart.privateName(html$, "_pageBreakInside");
var _position$0 = dart.privateName(html$, "_position");
var _quotes = dart.privateName(html$, "_quotes");
var _right = dart.privateName(html$, "_right");
var _tableLayout = dart.privateName(html$, "_tableLayout");
var _textAlign = dart.privateName(html$, "_textAlign");
var _textDecoration = dart.privateName(html$, "_textDecoration");
var _textIndent = dart.privateName(html$, "_textIndent");
var _textTransform = dart.privateName(html$, "_textTransform");
var _top = dart.privateName(html$, "_top");
var _unicodeBidi = dart.privateName(html$, "_unicodeBidi");
var _verticalAlign = dart.privateName(html$, "_verticalAlign");
var _visibility = dart.privateName(html$, "_visibility");
var _whiteSpace = dart.privateName(html$, "_whiteSpace");
var _width$ = dart.privateName(html$, "_width");
var _wordSpacing = dart.privateName(html$, "_wordSpacing");
var _zIndex = dart.privateName(html$, "_zIndex");
html$.CssStyleDeclarationBase = class CssStyleDeclarationBase extends core.Object {
  get alignContent() {
    return this[$getPropertyValue]("align-content");
  }
  set alignContent(value) {
    this[$setProperty]("align-content", value, "");
  }
  get alignItems() {
    return this[$getPropertyValue]("align-items");
  }
  set alignItems(value) {
    this[$setProperty]("align-items", value, "");
  }
  get alignSelf() {
    return this[$getPropertyValue]("align-self");
  }
  set alignSelf(value) {
    this[$setProperty]("align-self", value, "");
  }
  get animation() {
    return this[$getPropertyValue]("animation");
  }
  set animation(value) {
    this[$setProperty]("animation", value, "");
  }
  get animationDelay() {
    return this[$getPropertyValue]("animation-delay");
  }
  set animationDelay(value) {
    this[$setProperty]("animation-delay", value, "");
  }
  get animationDirection() {
    return this[$getPropertyValue]("animation-direction");
  }
  set animationDirection(value) {
    this[$setProperty]("animation-direction", value, "");
  }
  get animationDuration() {
    return this[$getPropertyValue]("animation-duration");
  }
  set animationDuration(value) {
    this[$setProperty]("animation-duration", value, "");
  }
  get animationFillMode() {
    return this[$getPropertyValue]("animation-fill-mode");
  }
  set animationFillMode(value) {
    this[$setProperty]("animation-fill-mode", value, "");
  }
  get animationIterationCount() {
    return this[$getPropertyValue]("animation-iteration-count");
  }
  set animationIterationCount(value) {
    this[$setProperty]("animation-iteration-count", value, "");
  }
  get animationName() {
    return this[$getPropertyValue]("animation-name");
  }
  set animationName(value) {
    this[$setProperty]("animation-name", value, "");
  }
  get animationPlayState() {
    return this[$getPropertyValue]("animation-play-state");
  }
  set animationPlayState(value) {
    this[$setProperty]("animation-play-state", value, "");
  }
  get animationTimingFunction() {
    return this[$getPropertyValue]("animation-timing-function");
  }
  set animationTimingFunction(value) {
    this[$setProperty]("animation-timing-function", value, "");
  }
  get appRegion() {
    return this[$getPropertyValue]("app-region");
  }
  set appRegion(value) {
    this[$setProperty]("app-region", value, "");
  }
  get appearance() {
    return this[$getPropertyValue]("appearance");
  }
  set appearance(value) {
    this[$setProperty]("appearance", value, "");
  }
  get aspectRatio() {
    return this[$getPropertyValue]("aspect-ratio");
  }
  set aspectRatio(value) {
    this[$setProperty]("aspect-ratio", value, "");
  }
  get backfaceVisibility() {
    return this[$getPropertyValue]("backface-visibility");
  }
  set backfaceVisibility(value) {
    this[$setProperty]("backface-visibility", value, "");
  }
  get background() {
    return this[$getPropertyValue]("background");
  }
  set background(value) {
    this[$setProperty]("background", value, "");
  }
  get backgroundAttachment() {
    return this[$getPropertyValue]("background-attachment");
  }
  set backgroundAttachment(value) {
    this[$setProperty]("background-attachment", value, "");
  }
  get backgroundBlendMode() {
    return this[$getPropertyValue]("background-blend-mode");
  }
  set backgroundBlendMode(value) {
    this[$setProperty]("background-blend-mode", value, "");
  }
  get backgroundClip() {
    return this[$getPropertyValue]("background-clip");
  }
  set backgroundClip(value) {
    this[$setProperty]("background-clip", value, "");
  }
  get backgroundColor() {
    return this[$getPropertyValue]("background-color");
  }
  set backgroundColor(value) {
    this[$setProperty]("background-color", value, "");
  }
  get backgroundComposite() {
    return this[$getPropertyValue]("background-composite");
  }
  set backgroundComposite(value) {
    this[$setProperty]("background-composite", value, "");
  }
  get backgroundImage() {
    return this[$getPropertyValue]("background-image");
  }
  set backgroundImage(value) {
    this[$setProperty]("background-image", value, "");
  }
  get backgroundOrigin() {
    return this[$getPropertyValue]("background-origin");
  }
  set backgroundOrigin(value) {
    this[$setProperty]("background-origin", value, "");
  }
  get backgroundPosition() {
    return this[$getPropertyValue]("background-position");
  }
  set backgroundPosition(value) {
    this[$setProperty]("background-position", value, "");
  }
  get backgroundPositionX() {
    return this[$getPropertyValue]("background-position-x");
  }
  set backgroundPositionX(value) {
    this[$setProperty]("background-position-x", value, "");
  }
  get backgroundPositionY() {
    return this[$getPropertyValue]("background-position-y");
  }
  set backgroundPositionY(value) {
    this[$setProperty]("background-position-y", value, "");
  }
  get backgroundRepeat() {
    return this[$getPropertyValue]("background-repeat");
  }
  set backgroundRepeat(value) {
    this[$setProperty]("background-repeat", value, "");
  }
  get backgroundRepeatX() {
    return this[$getPropertyValue]("background-repeat-x");
  }
  set backgroundRepeatX(value) {
    this[$setProperty]("background-repeat-x", value, "");
  }
  get backgroundRepeatY() {
    return this[$getPropertyValue]("background-repeat-y");
  }
  set backgroundRepeatY(value) {
    this[$setProperty]("background-repeat-y", value, "");
  }
  get backgroundSize() {
    return this[$getPropertyValue]("background-size");
  }
  set backgroundSize(value) {
    this[$setProperty]("background-size", value, "");
  }
  get border() {
    return this[$getPropertyValue]("border");
  }
  set border(value) {
    this[$setProperty]("border", value, "");
  }
  get borderAfter() {
    return this[$getPropertyValue]("border-after");
  }
  set borderAfter(value) {
    this[$setProperty]("border-after", value, "");
  }
  get borderAfterColor() {
    return this[$getPropertyValue]("border-after-color");
  }
  set borderAfterColor(value) {
    this[$setProperty]("border-after-color", value, "");
  }
  get borderAfterStyle() {
    return this[$getPropertyValue]("border-after-style");
  }
  set borderAfterStyle(value) {
    this[$setProperty]("border-after-style", value, "");
  }
  get borderAfterWidth() {
    return this[$getPropertyValue]("border-after-width");
  }
  set borderAfterWidth(value) {
    this[$setProperty]("border-after-width", value, "");
  }
  get borderBefore() {
    return this[$getPropertyValue]("border-before");
  }
  set borderBefore(value) {
    this[$setProperty]("border-before", value, "");
  }
  get borderBeforeColor() {
    return this[$getPropertyValue]("border-before-color");
  }
  set borderBeforeColor(value) {
    this[$setProperty]("border-before-color", value, "");
  }
  get borderBeforeStyle() {
    return this[$getPropertyValue]("border-before-style");
  }
  set borderBeforeStyle(value) {
    this[$setProperty]("border-before-style", value, "");
  }
  get borderBeforeWidth() {
    return this[$getPropertyValue]("border-before-width");
  }
  set borderBeforeWidth(value) {
    this[$setProperty]("border-before-width", value, "");
  }
  get borderBottom() {
    return this[$getPropertyValue]("border-bottom");
  }
  set borderBottom(value) {
    this[$setProperty]("border-bottom", value, "");
  }
  get borderBottomColor() {
    return this[$getPropertyValue]("border-bottom-color");
  }
  set borderBottomColor(value) {
    this[$setProperty]("border-bottom-color", value, "");
  }
  get borderBottomLeftRadius() {
    return this[$getPropertyValue]("border-bottom-left-radius");
  }
  set borderBottomLeftRadius(value) {
    this[$setProperty]("border-bottom-left-radius", value, "");
  }
  get borderBottomRightRadius() {
    return this[$getPropertyValue]("border-bottom-right-radius");
  }
  set borderBottomRightRadius(value) {
    this[$setProperty]("border-bottom-right-radius", value, "");
  }
  get borderBottomStyle() {
    return this[$getPropertyValue]("border-bottom-style");
  }
  set borderBottomStyle(value) {
    this[$setProperty]("border-bottom-style", value, "");
  }
  get borderBottomWidth() {
    return this[$getPropertyValue]("border-bottom-width");
  }
  set borderBottomWidth(value) {
    this[$setProperty]("border-bottom-width", value, "");
  }
  get borderCollapse() {
    return this[$getPropertyValue]("border-collapse");
  }
  set borderCollapse(value) {
    this[$setProperty]("border-collapse", value, "");
  }
  get borderColor() {
    return this[$getPropertyValue]("border-color");
  }
  set borderColor(value) {
    this[$setProperty]("border-color", value, "");
  }
  get borderEnd() {
    return this[$getPropertyValue]("border-end");
  }
  set borderEnd(value) {
    this[$setProperty]("border-end", value, "");
  }
  get borderEndColor() {
    return this[$getPropertyValue]("border-end-color");
  }
  set borderEndColor(value) {
    this[$setProperty]("border-end-color", value, "");
  }
  get borderEndStyle() {
    return this[$getPropertyValue]("border-end-style");
  }
  set borderEndStyle(value) {
    this[$setProperty]("border-end-style", value, "");
  }
  get borderEndWidth() {
    return this[$getPropertyValue]("border-end-width");
  }
  set borderEndWidth(value) {
    this[$setProperty]("border-end-width", value, "");
  }
  get borderFit() {
    return this[$getPropertyValue]("border-fit");
  }
  set borderFit(value) {
    this[$setProperty]("border-fit", value, "");
  }
  get borderHorizontalSpacing() {
    return this[$getPropertyValue]("border-horizontal-spacing");
  }
  set borderHorizontalSpacing(value) {
    this[$setProperty]("border-horizontal-spacing", value, "");
  }
  get borderImage() {
    return this[$getPropertyValue]("border-image");
  }
  set borderImage(value) {
    this[$setProperty]("border-image", value, "");
  }
  get borderImageOutset() {
    return this[$getPropertyValue]("border-image-outset");
  }
  set borderImageOutset(value) {
    this[$setProperty]("border-image-outset", value, "");
  }
  get borderImageRepeat() {
    return this[$getPropertyValue]("border-image-repeat");
  }
  set borderImageRepeat(value) {
    this[$setProperty]("border-image-repeat", value, "");
  }
  get borderImageSlice() {
    return this[$getPropertyValue]("border-image-slice");
  }
  set borderImageSlice(value) {
    this[$setProperty]("border-image-slice", value, "");
  }
  get borderImageSource() {
    return this[$getPropertyValue]("border-image-source");
  }
  set borderImageSource(value) {
    this[$setProperty]("border-image-source", value, "");
  }
  get borderImageWidth() {
    return this[$getPropertyValue]("border-image-width");
  }
  set borderImageWidth(value) {
    this[$setProperty]("border-image-width", value, "");
  }
  get borderLeft() {
    return this[$getPropertyValue]("border-left");
  }
  set borderLeft(value) {
    this[$setProperty]("border-left", value, "");
  }
  get borderLeftColor() {
    return this[$getPropertyValue]("border-left-color");
  }
  set borderLeftColor(value) {
    this[$setProperty]("border-left-color", value, "");
  }
  get borderLeftStyle() {
    return this[$getPropertyValue]("border-left-style");
  }
  set borderLeftStyle(value) {
    this[$setProperty]("border-left-style", value, "");
  }
  get borderLeftWidth() {
    return this[$getPropertyValue]("border-left-width");
  }
  set borderLeftWidth(value) {
    this[$setProperty]("border-left-width", value, "");
  }
  get borderRadius() {
    return this[$getPropertyValue]("border-radius");
  }
  set borderRadius(value) {
    this[$setProperty]("border-radius", value, "");
  }
  get borderRight() {
    return this[$getPropertyValue]("border-right");
  }
  set borderRight(value) {
    this[$setProperty]("border-right", value, "");
  }
  get borderRightColor() {
    return this[$getPropertyValue]("border-right-color");
  }
  set borderRightColor(value) {
    this[$setProperty]("border-right-color", value, "");
  }
  get borderRightStyle() {
    return this[$getPropertyValue]("border-right-style");
  }
  set borderRightStyle(value) {
    this[$setProperty]("border-right-style", value, "");
  }
  get borderRightWidth() {
    return this[$getPropertyValue]("border-right-width");
  }
  set borderRightWidth(value) {
    this[$setProperty]("border-right-width", value, "");
  }
  get borderSpacing() {
    return this[$getPropertyValue]("border-spacing");
  }
  set borderSpacing(value) {
    this[$setProperty]("border-spacing", value, "");
  }
  get borderStart() {
    return this[$getPropertyValue]("border-start");
  }
  set borderStart(value) {
    this[$setProperty]("border-start", value, "");
  }
  get borderStartColor() {
    return this[$getPropertyValue]("border-start-color");
  }
  set borderStartColor(value) {
    this[$setProperty]("border-start-color", value, "");
  }
  get borderStartStyle() {
    return this[$getPropertyValue]("border-start-style");
  }
  set borderStartStyle(value) {
    this[$setProperty]("border-start-style", value, "");
  }
  get borderStartWidth() {
    return this[$getPropertyValue]("border-start-width");
  }
  set borderStartWidth(value) {
    this[$setProperty]("border-start-width", value, "");
  }
  get borderStyle() {
    return this[$getPropertyValue]("border-style");
  }
  set borderStyle(value) {
    this[$setProperty]("border-style", value, "");
  }
  get borderTop() {
    return this[$getPropertyValue]("border-top");
  }
  set borderTop(value) {
    this[$setProperty]("border-top", value, "");
  }
  get borderTopColor() {
    return this[$getPropertyValue]("border-top-color");
  }
  set borderTopColor(value) {
    this[$setProperty]("border-top-color", value, "");
  }
  get borderTopLeftRadius() {
    return this[$getPropertyValue]("border-top-left-radius");
  }
  set borderTopLeftRadius(value) {
    this[$setProperty]("border-top-left-radius", value, "");
  }
  get borderTopRightRadius() {
    return this[$getPropertyValue]("border-top-right-radius");
  }
  set borderTopRightRadius(value) {
    this[$setProperty]("border-top-right-radius", value, "");
  }
  get borderTopStyle() {
    return this[$getPropertyValue]("border-top-style");
  }
  set borderTopStyle(value) {
    this[$setProperty]("border-top-style", value, "");
  }
  get borderTopWidth() {
    return this[$getPropertyValue]("border-top-width");
  }
  set borderTopWidth(value) {
    this[$setProperty]("border-top-width", value, "");
  }
  get borderVerticalSpacing() {
    return this[$getPropertyValue]("border-vertical-spacing");
  }
  set borderVerticalSpacing(value) {
    this[$setProperty]("border-vertical-spacing", value, "");
  }
  get borderWidth() {
    return this[$getPropertyValue]("border-width");
  }
  set borderWidth(value) {
    this[$setProperty]("border-width", value, "");
  }
  get bottom() {
    return this[$getPropertyValue]("bottom");
  }
  set bottom(value) {
    this[$setProperty]("bottom", value, "");
  }
  get boxAlign() {
    return this[$getPropertyValue]("box-align");
  }
  set boxAlign(value) {
    this[$setProperty]("box-align", value, "");
  }
  get boxDecorationBreak() {
    return this[$getPropertyValue]("box-decoration-break");
  }
  set boxDecorationBreak(value) {
    this[$setProperty]("box-decoration-break", value, "");
  }
  get boxDirection() {
    return this[$getPropertyValue]("box-direction");
  }
  set boxDirection(value) {
    this[$setProperty]("box-direction", value, "");
  }
  get boxFlex() {
    return this[$getPropertyValue]("box-flex");
  }
  set boxFlex(value) {
    this[$setProperty]("box-flex", value, "");
  }
  get boxFlexGroup() {
    return this[$getPropertyValue]("box-flex-group");
  }
  set boxFlexGroup(value) {
    this[$setProperty]("box-flex-group", value, "");
  }
  get boxLines() {
    return this[$getPropertyValue]("box-lines");
  }
  set boxLines(value) {
    this[$setProperty]("box-lines", value, "");
  }
  get boxOrdinalGroup() {
    return this[$getPropertyValue]("box-ordinal-group");
  }
  set boxOrdinalGroup(value) {
    this[$setProperty]("box-ordinal-group", value, "");
  }
  get boxOrient() {
    return this[$getPropertyValue]("box-orient");
  }
  set boxOrient(value) {
    this[$setProperty]("box-orient", value, "");
  }
  get boxPack() {
    return this[$getPropertyValue]("box-pack");
  }
  set boxPack(value) {
    this[$setProperty]("box-pack", value, "");
  }
  get boxReflect() {
    return this[$getPropertyValue]("box-reflect");
  }
  set boxReflect(value) {
    this[$setProperty]("box-reflect", value, "");
  }
  get boxShadow() {
    return this[$getPropertyValue]("box-shadow");
  }
  set boxShadow(value) {
    this[$setProperty]("box-shadow", value, "");
  }
  get boxSizing() {
    return this[$getPropertyValue]("box-sizing");
  }
  set boxSizing(value) {
    this[$setProperty]("box-sizing", value, "");
  }
  get captionSide() {
    return this[$getPropertyValue]("caption-side");
  }
  set captionSide(value) {
    this[$setProperty]("caption-side", value, "");
  }
  get clear() {
    return this[$getPropertyValue]("clear");
  }
  set clear(value) {
    this[$setProperty]("clear", value, "");
  }
  get clip() {
    return this[$getPropertyValue]("clip");
  }
  set clip(value) {
    this[$setProperty]("clip", value, "");
  }
  get clipPath() {
    return this[$getPropertyValue]("clip-path");
  }
  set clipPath(value) {
    this[$setProperty]("clip-path", value, "");
  }
  get color() {
    return this[$getPropertyValue]("color");
  }
  set color(value) {
    this[$setProperty]("color", value, "");
  }
  get columnBreakAfter() {
    return this[$getPropertyValue]("column-break-after");
  }
  set columnBreakAfter(value) {
    this[$setProperty]("column-break-after", value, "");
  }
  get columnBreakBefore() {
    return this[$getPropertyValue]("column-break-before");
  }
  set columnBreakBefore(value) {
    this[$setProperty]("column-break-before", value, "");
  }
  get columnBreakInside() {
    return this[$getPropertyValue]("column-break-inside");
  }
  set columnBreakInside(value) {
    this[$setProperty]("column-break-inside", value, "");
  }
  get columnCount() {
    return this[$getPropertyValue]("column-count");
  }
  set columnCount(value) {
    this[$setProperty]("column-count", value, "");
  }
  get columnFill() {
    return this[$getPropertyValue]("column-fill");
  }
  set columnFill(value) {
    this[$setProperty]("column-fill", value, "");
  }
  get columnGap() {
    return this[$getPropertyValue]("column-gap");
  }
  set columnGap(value) {
    this[$setProperty]("column-gap", value, "");
  }
  get columnRule() {
    return this[$getPropertyValue]("column-rule");
  }
  set columnRule(value) {
    this[$setProperty]("column-rule", value, "");
  }
  get columnRuleColor() {
    return this[$getPropertyValue]("column-rule-color");
  }
  set columnRuleColor(value) {
    this[$setProperty]("column-rule-color", value, "");
  }
  get columnRuleStyle() {
    return this[$getPropertyValue]("column-rule-style");
  }
  set columnRuleStyle(value) {
    this[$setProperty]("column-rule-style", value, "");
  }
  get columnRuleWidth() {
    return this[$getPropertyValue]("column-rule-width");
  }
  set columnRuleWidth(value) {
    this[$setProperty]("column-rule-width", value, "");
  }
  get columnSpan() {
    return this[$getPropertyValue]("column-span");
  }
  set columnSpan(value) {
    this[$setProperty]("column-span", value, "");
  }
  get columnWidth() {
    return this[$getPropertyValue]("column-width");
  }
  set columnWidth(value) {
    this[$setProperty]("column-width", value, "");
  }
  get columns() {
    return this[$getPropertyValue]("columns");
  }
  set columns(value) {
    this[$setProperty]("columns", value, "");
  }
  get content() {
    return this[$getPropertyValue]("content");
  }
  set content(value) {
    this[$setProperty]("content", value, "");
  }
  get counterIncrement() {
    return this[$getPropertyValue]("counter-increment");
  }
  set counterIncrement(value) {
    this[$setProperty]("counter-increment", value, "");
  }
  get counterReset() {
    return this[$getPropertyValue]("counter-reset");
  }
  set counterReset(value) {
    this[$setProperty]("counter-reset", value, "");
  }
  get cursor() {
    return this[$getPropertyValue]("cursor");
  }
  set cursor(value) {
    this[$setProperty]("cursor", value, "");
  }
  get direction() {
    return this[$getPropertyValue]("direction");
  }
  set direction(value) {
    this[$setProperty]("direction", value, "");
  }
  get display() {
    return this[$getPropertyValue]("display");
  }
  set display(value) {
    this[$setProperty]("display", value, "");
  }
  get emptyCells() {
    return this[$getPropertyValue]("empty-cells");
  }
  set emptyCells(value) {
    this[$setProperty]("empty-cells", value, "");
  }
  get filter() {
    return this[$getPropertyValue]("filter");
  }
  set filter(value) {
    this[$setProperty]("filter", value, "");
  }
  get flex() {
    return this[$getPropertyValue]("flex");
  }
  set flex(value) {
    this[$setProperty]("flex", value, "");
  }
  get flexBasis() {
    return this[$getPropertyValue]("flex-basis");
  }
  set flexBasis(value) {
    this[$setProperty]("flex-basis", value, "");
  }
  get flexDirection() {
    return this[$getPropertyValue]("flex-direction");
  }
  set flexDirection(value) {
    this[$setProperty]("flex-direction", value, "");
  }
  get flexFlow() {
    return this[$getPropertyValue]("flex-flow");
  }
  set flexFlow(value) {
    this[$setProperty]("flex-flow", value, "");
  }
  get flexGrow() {
    return this[$getPropertyValue]("flex-grow");
  }
  set flexGrow(value) {
    this[$setProperty]("flex-grow", value, "");
  }
  get flexShrink() {
    return this[$getPropertyValue]("flex-shrink");
  }
  set flexShrink(value) {
    this[$setProperty]("flex-shrink", value, "");
  }
  get flexWrap() {
    return this[$getPropertyValue]("flex-wrap");
  }
  set flexWrap(value) {
    this[$setProperty]("flex-wrap", value, "");
  }
  get float() {
    return this[$getPropertyValue]("float");
  }
  set float(value) {
    this[$setProperty]("float", value, "");
  }
  get font() {
    return this[$getPropertyValue]("font");
  }
  set font(value) {
    this[$setProperty]("font", value, "");
  }
  get fontFamily() {
    return this[$getPropertyValue]("font-family");
  }
  set fontFamily(value) {
    this[$setProperty]("font-family", value, "");
  }
  get fontFeatureSettings() {
    return this[$getPropertyValue]("font-feature-settings");
  }
  set fontFeatureSettings(value) {
    this[$setProperty]("font-feature-settings", value, "");
  }
  get fontKerning() {
    return this[$getPropertyValue]("font-kerning");
  }
  set fontKerning(value) {
    this[$setProperty]("font-kerning", value, "");
  }
  get fontSize() {
    return this[$getPropertyValue]("font-size");
  }
  set fontSize(value) {
    this[$setProperty]("font-size", value, "");
  }
  get fontSizeDelta() {
    return this[$getPropertyValue]("font-size-delta");
  }
  set fontSizeDelta(value) {
    this[$setProperty]("font-size-delta", value, "");
  }
  get fontSmoothing() {
    return this[$getPropertyValue]("font-smoothing");
  }
  set fontSmoothing(value) {
    this[$setProperty]("font-smoothing", value, "");
  }
  get fontStretch() {
    return this[$getPropertyValue]("font-stretch");
  }
  set fontStretch(value) {
    this[$setProperty]("font-stretch", value, "");
  }
  get fontStyle() {
    return this[$getPropertyValue]("font-style");
  }
  set fontStyle(value) {
    this[$setProperty]("font-style", value, "");
  }
  get fontVariant() {
    return this[$getPropertyValue]("font-variant");
  }
  set fontVariant(value) {
    this[$setProperty]("font-variant", value, "");
  }
  get fontVariantLigatures() {
    return this[$getPropertyValue]("font-variant-ligatures");
  }
  set fontVariantLigatures(value) {
    this[$setProperty]("font-variant-ligatures", value, "");
  }
  get fontWeight() {
    return this[$getPropertyValue]("font-weight");
  }
  set fontWeight(value) {
    this[$setProperty]("font-weight", value, "");
  }
  get grid() {
    return this[$getPropertyValue]("grid");
  }
  set grid(value) {
    this[$setProperty]("grid", value, "");
  }
  get gridArea() {
    return this[$getPropertyValue]("grid-area");
  }
  set gridArea(value) {
    this[$setProperty]("grid-area", value, "");
  }
  get gridAutoColumns() {
    return this[$getPropertyValue]("grid-auto-columns");
  }
  set gridAutoColumns(value) {
    this[$setProperty]("grid-auto-columns", value, "");
  }
  get gridAutoFlow() {
    return this[$getPropertyValue]("grid-auto-flow");
  }
  set gridAutoFlow(value) {
    this[$setProperty]("grid-auto-flow", value, "");
  }
  get gridAutoRows() {
    return this[$getPropertyValue]("grid-auto-rows");
  }
  set gridAutoRows(value) {
    this[$setProperty]("grid-auto-rows", value, "");
  }
  get gridColumn() {
    return this[$getPropertyValue]("grid-column");
  }
  set gridColumn(value) {
    this[$setProperty]("grid-column", value, "");
  }
  get gridColumnEnd() {
    return this[$getPropertyValue]("grid-column-end");
  }
  set gridColumnEnd(value) {
    this[$setProperty]("grid-column-end", value, "");
  }
  get gridColumnStart() {
    return this[$getPropertyValue]("grid-column-start");
  }
  set gridColumnStart(value) {
    this[$setProperty]("grid-column-start", value, "");
  }
  get gridRow() {
    return this[$getPropertyValue]("grid-row");
  }
  set gridRow(value) {
    this[$setProperty]("grid-row", value, "");
  }
  get gridRowEnd() {
    return this[$getPropertyValue]("grid-row-end");
  }
  set gridRowEnd(value) {
    this[$setProperty]("grid-row-end", value, "");
  }
  get gridRowStart() {
    return this[$getPropertyValue]("grid-row-start");
  }
  set gridRowStart(value) {
    this[$setProperty]("grid-row-start", value, "");
  }
  get gridTemplate() {
    return this[$getPropertyValue]("grid-template");
  }
  set gridTemplate(value) {
    this[$setProperty]("grid-template", value, "");
  }
  get gridTemplateAreas() {
    return this[$getPropertyValue]("grid-template-areas");
  }
  set gridTemplateAreas(value) {
    this[$setProperty]("grid-template-areas", value, "");
  }
  get gridTemplateColumns() {
    return this[$getPropertyValue]("grid-template-columns");
  }
  set gridTemplateColumns(value) {
    this[$setProperty]("grid-template-columns", value, "");
  }
  get gridTemplateRows() {
    return this[$getPropertyValue]("grid-template-rows");
  }
  set gridTemplateRows(value) {
    this[$setProperty]("grid-template-rows", value, "");
  }
  get height() {
    return this[$getPropertyValue]("height");
  }
  set height(value) {
    this[$setProperty]("height", value, "");
  }
  get highlight() {
    return this[$getPropertyValue]("highlight");
  }
  set highlight(value) {
    this[$setProperty]("highlight", value, "");
  }
  get hyphenateCharacter() {
    return this[$getPropertyValue]("hyphenate-character");
  }
  set hyphenateCharacter(value) {
    this[$setProperty]("hyphenate-character", value, "");
  }
  get imageRendering() {
    return this[$getPropertyValue]("image-rendering");
  }
  set imageRendering(value) {
    this[$setProperty]("image-rendering", value, "");
  }
  get isolation() {
    return this[$getPropertyValue]("isolation");
  }
  set isolation(value) {
    this[$setProperty]("isolation", value, "");
  }
  get justifyContent() {
    return this[$getPropertyValue]("justify-content");
  }
  set justifyContent(value) {
    this[$setProperty]("justify-content", value, "");
  }
  get justifySelf() {
    return this[$getPropertyValue]("justify-self");
  }
  set justifySelf(value) {
    this[$setProperty]("justify-self", value, "");
  }
  get left() {
    return this[$getPropertyValue]("left");
  }
  set left(value) {
    this[$setProperty]("left", value, "");
  }
  get letterSpacing() {
    return this[$getPropertyValue]("letter-spacing");
  }
  set letterSpacing(value) {
    this[$setProperty]("letter-spacing", value, "");
  }
  get lineBoxContain() {
    return this[$getPropertyValue]("line-box-contain");
  }
  set lineBoxContain(value) {
    this[$setProperty]("line-box-contain", value, "");
  }
  get lineBreak() {
    return this[$getPropertyValue]("line-break");
  }
  set lineBreak(value) {
    this[$setProperty]("line-break", value, "");
  }
  get lineClamp() {
    return this[$getPropertyValue]("line-clamp");
  }
  set lineClamp(value) {
    this[$setProperty]("line-clamp", value, "");
  }
  get lineHeight() {
    return this[$getPropertyValue]("line-height");
  }
  set lineHeight(value) {
    this[$setProperty]("line-height", value, "");
  }
  get listStyle() {
    return this[$getPropertyValue]("list-style");
  }
  set listStyle(value) {
    this[$setProperty]("list-style", value, "");
  }
  get listStyleImage() {
    return this[$getPropertyValue]("list-style-image");
  }
  set listStyleImage(value) {
    this[$setProperty]("list-style-image", value, "");
  }
  get listStylePosition() {
    return this[$getPropertyValue]("list-style-position");
  }
  set listStylePosition(value) {
    this[$setProperty]("list-style-position", value, "");
  }
  get listStyleType() {
    return this[$getPropertyValue]("list-style-type");
  }
  set listStyleType(value) {
    this[$setProperty]("list-style-type", value, "");
  }
  get locale() {
    return this[$getPropertyValue]("locale");
  }
  set locale(value) {
    this[$setProperty]("locale", value, "");
  }
  get logicalHeight() {
    return this[$getPropertyValue]("logical-height");
  }
  set logicalHeight(value) {
    this[$setProperty]("logical-height", value, "");
  }
  get logicalWidth() {
    return this[$getPropertyValue]("logical-width");
  }
  set logicalWidth(value) {
    this[$setProperty]("logical-width", value, "");
  }
  get margin() {
    return this[$getPropertyValue]("margin");
  }
  set margin(value) {
    this[$setProperty]("margin", value, "");
  }
  get marginAfter() {
    return this[$getPropertyValue]("margin-after");
  }
  set marginAfter(value) {
    this[$setProperty]("margin-after", value, "");
  }
  get marginAfterCollapse() {
    return this[$getPropertyValue]("margin-after-collapse");
  }
  set marginAfterCollapse(value) {
    this[$setProperty]("margin-after-collapse", value, "");
  }
  get marginBefore() {
    return this[$getPropertyValue]("margin-before");
  }
  set marginBefore(value) {
    this[$setProperty]("margin-before", value, "");
  }
  get marginBeforeCollapse() {
    return this[$getPropertyValue]("margin-before-collapse");
  }
  set marginBeforeCollapse(value) {
    this[$setProperty]("margin-before-collapse", value, "");
  }
  get marginBottom() {
    return this[$getPropertyValue]("margin-bottom");
  }
  set marginBottom(value) {
    this[$setProperty]("margin-bottom", value, "");
  }
  get marginBottomCollapse() {
    return this[$getPropertyValue]("margin-bottom-collapse");
  }
  set marginBottomCollapse(value) {
    this[$setProperty]("margin-bottom-collapse", value, "");
  }
  get marginCollapse() {
    return this[$getPropertyValue]("margin-collapse");
  }
  set marginCollapse(value) {
    this[$setProperty]("margin-collapse", value, "");
  }
  get marginEnd() {
    return this[$getPropertyValue]("margin-end");
  }
  set marginEnd(value) {
    this[$setProperty]("margin-end", value, "");
  }
  get marginLeft() {
    return this[$getPropertyValue]("margin-left");
  }
  set marginLeft(value) {
    this[$setProperty]("margin-left", value, "");
  }
  get marginRight() {
    return this[$getPropertyValue]("margin-right");
  }
  set marginRight(value) {
    this[$setProperty]("margin-right", value, "");
  }
  get marginStart() {
    return this[$getPropertyValue]("margin-start");
  }
  set marginStart(value) {
    this[$setProperty]("margin-start", value, "");
  }
  get marginTop() {
    return this[$getPropertyValue]("margin-top");
  }
  set marginTop(value) {
    this[$setProperty]("margin-top", value, "");
  }
  get marginTopCollapse() {
    return this[$getPropertyValue]("margin-top-collapse");
  }
  set marginTopCollapse(value) {
    this[$setProperty]("margin-top-collapse", value, "");
  }
  get mask() {
    return this[$getPropertyValue]("mask");
  }
  set mask(value) {
    this[$setProperty]("mask", value, "");
  }
  get maskBoxImage() {
    return this[$getPropertyValue]("mask-box-image");
  }
  set maskBoxImage(value) {
    this[$setProperty]("mask-box-image", value, "");
  }
  get maskBoxImageOutset() {
    return this[$getPropertyValue]("mask-box-image-outset");
  }
  set maskBoxImageOutset(value) {
    this[$setProperty]("mask-box-image-outset", value, "");
  }
  get maskBoxImageRepeat() {
    return this[$getPropertyValue]("mask-box-image-repeat");
  }
  set maskBoxImageRepeat(value) {
    this[$setProperty]("mask-box-image-repeat", value, "");
  }
  get maskBoxImageSlice() {
    return this[$getPropertyValue]("mask-box-image-slice");
  }
  set maskBoxImageSlice(value) {
    this[$setProperty]("mask-box-image-slice", value, "");
  }
  get maskBoxImageSource() {
    return this[$getPropertyValue]("mask-box-image-source");
  }
  set maskBoxImageSource(value) {
    this[$setProperty]("mask-box-image-source", value, "");
  }
  get maskBoxImageWidth() {
    return this[$getPropertyValue]("mask-box-image-width");
  }
  set maskBoxImageWidth(value) {
    this[$setProperty]("mask-box-image-width", value, "");
  }
  get maskClip() {
    return this[$getPropertyValue]("mask-clip");
  }
  set maskClip(value) {
    this[$setProperty]("mask-clip", value, "");
  }
  get maskComposite() {
    return this[$getPropertyValue]("mask-composite");
  }
  set maskComposite(value) {
    this[$setProperty]("mask-composite", value, "");
  }
  get maskImage() {
    return this[$getPropertyValue]("mask-image");
  }
  set maskImage(value) {
    this[$setProperty]("mask-image", value, "");
  }
  get maskOrigin() {
    return this[$getPropertyValue]("mask-origin");
  }
  set maskOrigin(value) {
    this[$setProperty]("mask-origin", value, "");
  }
  get maskPosition() {
    return this[$getPropertyValue]("mask-position");
  }
  set maskPosition(value) {
    this[$setProperty]("mask-position", value, "");
  }
  get maskPositionX() {
    return this[$getPropertyValue]("mask-position-x");
  }
  set maskPositionX(value) {
    this[$setProperty]("mask-position-x", value, "");
  }
  get maskPositionY() {
    return this[$getPropertyValue]("mask-position-y");
  }
  set maskPositionY(value) {
    this[$setProperty]("mask-position-y", value, "");
  }
  get maskRepeat() {
    return this[$getPropertyValue]("mask-repeat");
  }
  set maskRepeat(value) {
    this[$setProperty]("mask-repeat", value, "");
  }
  get maskRepeatX() {
    return this[$getPropertyValue]("mask-repeat-x");
  }
  set maskRepeatX(value) {
    this[$setProperty]("mask-repeat-x", value, "");
  }
  get maskRepeatY() {
    return this[$getPropertyValue]("mask-repeat-y");
  }
  set maskRepeatY(value) {
    this[$setProperty]("mask-repeat-y", value, "");
  }
  get maskSize() {
    return this[$getPropertyValue]("mask-size");
  }
  set maskSize(value) {
    this[$setProperty]("mask-size", value, "");
  }
  get maskSourceType() {
    return this[$getPropertyValue]("mask-source-type");
  }
  set maskSourceType(value) {
    this[$setProperty]("mask-source-type", value, "");
  }
  get maxHeight() {
    return this[$getPropertyValue]("max-height");
  }
  set maxHeight(value) {
    this[$setProperty]("max-height", value, "");
  }
  get maxLogicalHeight() {
    return this[$getPropertyValue]("max-logical-height");
  }
  set maxLogicalHeight(value) {
    this[$setProperty]("max-logical-height", value, "");
  }
  get maxLogicalWidth() {
    return this[$getPropertyValue]("max-logical-width");
  }
  set maxLogicalWidth(value) {
    this[$setProperty]("max-logical-width", value, "");
  }
  get maxWidth() {
    return this[$getPropertyValue]("max-width");
  }
  set maxWidth(value) {
    this[$setProperty]("max-width", value, "");
  }
  get maxZoom() {
    return this[$getPropertyValue]("max-zoom");
  }
  set maxZoom(value) {
    this[$setProperty]("max-zoom", value, "");
  }
  get minHeight() {
    return this[$getPropertyValue]("min-height");
  }
  set minHeight(value) {
    this[$setProperty]("min-height", value, "");
  }
  get minLogicalHeight() {
    return this[$getPropertyValue]("min-logical-height");
  }
  set minLogicalHeight(value) {
    this[$setProperty]("min-logical-height", value, "");
  }
  get minLogicalWidth() {
    return this[$getPropertyValue]("min-logical-width");
  }
  set minLogicalWidth(value) {
    this[$setProperty]("min-logical-width", value, "");
  }
  get minWidth() {
    return this[$getPropertyValue]("min-width");
  }
  set minWidth(value) {
    this[$setProperty]("min-width", value, "");
  }
  get minZoom() {
    return this[$getPropertyValue]("min-zoom");
  }
  set minZoom(value) {
    this[$setProperty]("min-zoom", value, "");
  }
  get mixBlendMode() {
    return this[$getPropertyValue]("mix-blend-mode");
  }
  set mixBlendMode(value) {
    this[$setProperty]("mix-blend-mode", value, "");
  }
  get objectFit() {
    return this[$getPropertyValue]("object-fit");
  }
  set objectFit(value) {
    this[$setProperty]("object-fit", value, "");
  }
  get objectPosition() {
    return this[$getPropertyValue]("object-position");
  }
  set objectPosition(value) {
    this[$setProperty]("object-position", value, "");
  }
  get opacity() {
    return this[$getPropertyValue]("opacity");
  }
  set opacity(value) {
    this[$setProperty]("opacity", value, "");
  }
  get order() {
    return this[$getPropertyValue]("order");
  }
  set order(value) {
    this[$setProperty]("order", value, "");
  }
  get orientation() {
    return this[$getPropertyValue]("orientation");
  }
  set orientation(value) {
    this[$setProperty]("orientation", value, "");
  }
  get orphans() {
    return this[$getPropertyValue]("orphans");
  }
  set orphans(value) {
    this[$setProperty]("orphans", value, "");
  }
  get outline() {
    return this[$getPropertyValue]("outline");
  }
  set outline(value) {
    this[$setProperty]("outline", value, "");
  }
  get outlineColor() {
    return this[$getPropertyValue]("outline-color");
  }
  set outlineColor(value) {
    this[$setProperty]("outline-color", value, "");
  }
  get outlineOffset() {
    return this[$getPropertyValue]("outline-offset");
  }
  set outlineOffset(value) {
    this[$setProperty]("outline-offset", value, "");
  }
  get outlineStyle() {
    return this[$getPropertyValue]("outline-style");
  }
  set outlineStyle(value) {
    this[$setProperty]("outline-style", value, "");
  }
  get outlineWidth() {
    return this[$getPropertyValue]("outline-width");
  }
  set outlineWidth(value) {
    this[$setProperty]("outline-width", value, "");
  }
  get overflow() {
    return this[$getPropertyValue]("overflow");
  }
  set overflow(value) {
    this[$setProperty]("overflow", value, "");
  }
  get overflowWrap() {
    return this[$getPropertyValue]("overflow-wrap");
  }
  set overflowWrap(value) {
    this[$setProperty]("overflow-wrap", value, "");
  }
  get overflowX() {
    return this[$getPropertyValue]("overflow-x");
  }
  set overflowX(value) {
    this[$setProperty]("overflow-x", value, "");
  }
  get overflowY() {
    return this[$getPropertyValue]("overflow-y");
  }
  set overflowY(value) {
    this[$setProperty]("overflow-y", value, "");
  }
  get padding() {
    return this[$getPropertyValue]("padding");
  }
  set padding(value) {
    this[$setProperty]("padding", value, "");
  }
  get paddingAfter() {
    return this[$getPropertyValue]("padding-after");
  }
  set paddingAfter(value) {
    this[$setProperty]("padding-after", value, "");
  }
  get paddingBefore() {
    return this[$getPropertyValue]("padding-before");
  }
  set paddingBefore(value) {
    this[$setProperty]("padding-before", value, "");
  }
  get paddingBottom() {
    return this[$getPropertyValue]("padding-bottom");
  }
  set paddingBottom(value) {
    this[$setProperty]("padding-bottom", value, "");
  }
  get paddingEnd() {
    return this[$getPropertyValue]("padding-end");
  }
  set paddingEnd(value) {
    this[$setProperty]("padding-end", value, "");
  }
  get paddingLeft() {
    return this[$getPropertyValue]("padding-left");
  }
  set paddingLeft(value) {
    this[$setProperty]("padding-left", value, "");
  }
  get paddingRight() {
    return this[$getPropertyValue]("padding-right");
  }
  set paddingRight(value) {
    this[$setProperty]("padding-right", value, "");
  }
  get paddingStart() {
    return this[$getPropertyValue]("padding-start");
  }
  set paddingStart(value) {
    this[$setProperty]("padding-start", value, "");
  }
  get paddingTop() {
    return this[$getPropertyValue]("padding-top");
  }
  set paddingTop(value) {
    this[$setProperty]("padding-top", value, "");
  }
  get page() {
    return this[$getPropertyValue]("page");
  }
  set page(value) {
    this[$setProperty]("page", value, "");
  }
  get pageBreakAfter() {
    return this[$getPropertyValue]("page-break-after");
  }
  set pageBreakAfter(value) {
    this[$setProperty]("page-break-after", value, "");
  }
  get pageBreakBefore() {
    return this[$getPropertyValue]("page-break-before");
  }
  set pageBreakBefore(value) {
    this[$setProperty]("page-break-before", value, "");
  }
  get pageBreakInside() {
    return this[$getPropertyValue]("page-break-inside");
  }
  set pageBreakInside(value) {
    this[$setProperty]("page-break-inside", value, "");
  }
  get perspective() {
    return this[$getPropertyValue]("perspective");
  }
  set perspective(value) {
    this[$setProperty]("perspective", value, "");
  }
  get perspectiveOrigin() {
    return this[$getPropertyValue]("perspective-origin");
  }
  set perspectiveOrigin(value) {
    this[$setProperty]("perspective-origin", value, "");
  }
  get perspectiveOriginX() {
    return this[$getPropertyValue]("perspective-origin-x");
  }
  set perspectiveOriginX(value) {
    this[$setProperty]("perspective-origin-x", value, "");
  }
  get perspectiveOriginY() {
    return this[$getPropertyValue]("perspective-origin-y");
  }
  set perspectiveOriginY(value) {
    this[$setProperty]("perspective-origin-y", value, "");
  }
  get pointerEvents() {
    return this[$getPropertyValue]("pointer-events");
  }
  set pointerEvents(value) {
    this[$setProperty]("pointer-events", value, "");
  }
  get position() {
    return this[$getPropertyValue]("position");
  }
  set position(value) {
    this[$setProperty]("position", value, "");
  }
  get printColorAdjust() {
    return this[$getPropertyValue]("print-color-adjust");
  }
  set printColorAdjust(value) {
    this[$setProperty]("print-color-adjust", value, "");
  }
  get quotes() {
    return this[$getPropertyValue]("quotes");
  }
  set quotes(value) {
    this[$setProperty]("quotes", value, "");
  }
  get resize() {
    return this[$getPropertyValue]("resize");
  }
  set resize(value) {
    this[$setProperty]("resize", value, "");
  }
  get right() {
    return this[$getPropertyValue]("right");
  }
  set right(value) {
    this[$setProperty]("right", value, "");
  }
  get rtlOrdering() {
    return this[$getPropertyValue]("rtl-ordering");
  }
  set rtlOrdering(value) {
    this[$setProperty]("rtl-ordering", value, "");
  }
  get rubyPosition() {
    return this[$getPropertyValue]("ruby-position");
  }
  set rubyPosition(value) {
    this[$setProperty]("ruby-position", value, "");
  }
  get scrollBehavior() {
    return this[$getPropertyValue]("scroll-behavior");
  }
  set scrollBehavior(value) {
    this[$setProperty]("scroll-behavior", value, "");
  }
  get shapeImageThreshold() {
    return this[$getPropertyValue]("shape-image-threshold");
  }
  set shapeImageThreshold(value) {
    this[$setProperty]("shape-image-threshold", value, "");
  }
  get shapeMargin() {
    return this[$getPropertyValue]("shape-margin");
  }
  set shapeMargin(value) {
    this[$setProperty]("shape-margin", value, "");
  }
  get shapeOutside() {
    return this[$getPropertyValue]("shape-outside");
  }
  set shapeOutside(value) {
    this[$setProperty]("shape-outside", value, "");
  }
  get size() {
    return this[$getPropertyValue]("size");
  }
  set size(value) {
    this[$setProperty]("size", value, "");
  }
  get speak() {
    return this[$getPropertyValue]("speak");
  }
  set speak(value) {
    this[$setProperty]("speak", value, "");
  }
  get src() {
    return this[$getPropertyValue]("src");
  }
  set src(value) {
    this[$setProperty]("src", value, "");
  }
  get tabSize() {
    return this[$getPropertyValue]("tab-size");
  }
  set tabSize(value) {
    this[$setProperty]("tab-size", value, "");
  }
  get tableLayout() {
    return this[$getPropertyValue]("table-layout");
  }
  set tableLayout(value) {
    this[$setProperty]("table-layout", value, "");
  }
  get tapHighlightColor() {
    return this[$getPropertyValue]("tap-highlight-color");
  }
  set tapHighlightColor(value) {
    this[$setProperty]("tap-highlight-color", value, "");
  }
  get textAlign() {
    return this[$getPropertyValue]("text-align");
  }
  set textAlign(value) {
    this[$setProperty]("text-align", value, "");
  }
  get textAlignLast() {
    return this[$getPropertyValue]("text-align-last");
  }
  set textAlignLast(value) {
    this[$setProperty]("text-align-last", value, "");
  }
  get textCombine() {
    return this[$getPropertyValue]("text-combine");
  }
  set textCombine(value) {
    this[$setProperty]("text-combine", value, "");
  }
  get textDecoration() {
    return this[$getPropertyValue]("text-decoration");
  }
  set textDecoration(value) {
    this[$setProperty]("text-decoration", value, "");
  }
  get textDecorationColor() {
    return this[$getPropertyValue]("text-decoration-color");
  }
  set textDecorationColor(value) {
    this[$setProperty]("text-decoration-color", value, "");
  }
  get textDecorationLine() {
    return this[$getPropertyValue]("text-decoration-line");
  }
  set textDecorationLine(value) {
    this[$setProperty]("text-decoration-line", value, "");
  }
  get textDecorationStyle() {
    return this[$getPropertyValue]("text-decoration-style");
  }
  set textDecorationStyle(value) {
    this[$setProperty]("text-decoration-style", value, "");
  }
  get textDecorationsInEffect() {
    return this[$getPropertyValue]("text-decorations-in-effect");
  }
  set textDecorationsInEffect(value) {
    this[$setProperty]("text-decorations-in-effect", value, "");
  }
  get textEmphasis() {
    return this[$getPropertyValue]("text-emphasis");
  }
  set textEmphasis(value) {
    this[$setProperty]("text-emphasis", value, "");
  }
  get textEmphasisColor() {
    return this[$getPropertyValue]("text-emphasis-color");
  }
  set textEmphasisColor(value) {
    this[$setProperty]("text-emphasis-color", value, "");
  }
  get textEmphasisPosition() {
    return this[$getPropertyValue]("text-emphasis-position");
  }
  set textEmphasisPosition(value) {
    this[$setProperty]("text-emphasis-position", value, "");
  }
  get textEmphasisStyle() {
    return this[$getPropertyValue]("text-emphasis-style");
  }
  set textEmphasisStyle(value) {
    this[$setProperty]("text-emphasis-style", value, "");
  }
  get textFillColor() {
    return this[$getPropertyValue]("text-fill-color");
  }
  set textFillColor(value) {
    this[$setProperty]("text-fill-color", value, "");
  }
  get textIndent() {
    return this[$getPropertyValue]("text-indent");
  }
  set textIndent(value) {
    this[$setProperty]("text-indent", value, "");
  }
  get textJustify() {
    return this[$getPropertyValue]("text-justify");
  }
  set textJustify(value) {
    this[$setProperty]("text-justify", value, "");
  }
  get textLineThroughColor() {
    return this[$getPropertyValue]("text-line-through-color");
  }
  set textLineThroughColor(value) {
    this[$setProperty]("text-line-through-color", value, "");
  }
  get textLineThroughMode() {
    return this[$getPropertyValue]("text-line-through-mode");
  }
  set textLineThroughMode(value) {
    this[$setProperty]("text-line-through-mode", value, "");
  }
  get textLineThroughStyle() {
    return this[$getPropertyValue]("text-line-through-style");
  }
  set textLineThroughStyle(value) {
    this[$setProperty]("text-line-through-style", value, "");
  }
  get textLineThroughWidth() {
    return this[$getPropertyValue]("text-line-through-width");
  }
  set textLineThroughWidth(value) {
    this[$setProperty]("text-line-through-width", value, "");
  }
  get textOrientation() {
    return this[$getPropertyValue]("text-orientation");
  }
  set textOrientation(value) {
    this[$setProperty]("text-orientation", value, "");
  }
  get textOverflow() {
    return this[$getPropertyValue]("text-overflow");
  }
  set textOverflow(value) {
    this[$setProperty]("text-overflow", value, "");
  }
  get textOverlineColor() {
    return this[$getPropertyValue]("text-overline-color");
  }
  set textOverlineColor(value) {
    this[$setProperty]("text-overline-color", value, "");
  }
  get textOverlineMode() {
    return this[$getPropertyValue]("text-overline-mode");
  }
  set textOverlineMode(value) {
    this[$setProperty]("text-overline-mode", value, "");
  }
  get textOverlineStyle() {
    return this[$getPropertyValue]("text-overline-style");
  }
  set textOverlineStyle(value) {
    this[$setProperty]("text-overline-style", value, "");
  }
  get textOverlineWidth() {
    return this[$getPropertyValue]("text-overline-width");
  }
  set textOverlineWidth(value) {
    this[$setProperty]("text-overline-width", value, "");
  }
  get textRendering() {
    return this[$getPropertyValue]("text-rendering");
  }
  set textRendering(value) {
    this[$setProperty]("text-rendering", value, "");
  }
  get textSecurity() {
    return this[$getPropertyValue]("text-security");
  }
  set textSecurity(value) {
    this[$setProperty]("text-security", value, "");
  }
  get textShadow() {
    return this[$getPropertyValue]("text-shadow");
  }
  set textShadow(value) {
    this[$setProperty]("text-shadow", value, "");
  }
  get textStroke() {
    return this[$getPropertyValue]("text-stroke");
  }
  set textStroke(value) {
    this[$setProperty]("text-stroke", value, "");
  }
  get textStrokeColor() {
    return this[$getPropertyValue]("text-stroke-color");
  }
  set textStrokeColor(value) {
    this[$setProperty]("text-stroke-color", value, "");
  }
  get textStrokeWidth() {
    return this[$getPropertyValue]("text-stroke-width");
  }
  set textStrokeWidth(value) {
    this[$setProperty]("text-stroke-width", value, "");
  }
  get textTransform() {
    return this[$getPropertyValue]("text-transform");
  }
  set textTransform(value) {
    this[$setProperty]("text-transform", value, "");
  }
  get textUnderlineColor() {
    return this[$getPropertyValue]("text-underline-color");
  }
  set textUnderlineColor(value) {
    this[$setProperty]("text-underline-color", value, "");
  }
  get textUnderlineMode() {
    return this[$getPropertyValue]("text-underline-mode");
  }
  set textUnderlineMode(value) {
    this[$setProperty]("text-underline-mode", value, "");
  }
  get textUnderlinePosition() {
    return this[$getPropertyValue]("text-underline-position");
  }
  set textUnderlinePosition(value) {
    this[$setProperty]("text-underline-position", value, "");
  }
  get textUnderlineStyle() {
    return this[$getPropertyValue]("text-underline-style");
  }
  set textUnderlineStyle(value) {
    this[$setProperty]("text-underline-style", value, "");
  }
  get textUnderlineWidth() {
    return this[$getPropertyValue]("text-underline-width");
  }
  set textUnderlineWidth(value) {
    this[$setProperty]("text-underline-width", value, "");
  }
  get top() {
    return this[$getPropertyValue]("top");
  }
  set top(value) {
    this[$setProperty]("top", value, "");
  }
  get touchAction() {
    return this[$getPropertyValue]("touch-action");
  }
  set touchAction(value) {
    this[$setProperty]("touch-action", value, "");
  }
  get touchActionDelay() {
    return this[$getPropertyValue]("touch-action-delay");
  }
  set touchActionDelay(value) {
    this[$setProperty]("touch-action-delay", value, "");
  }
  get transform() {
    return this[$getPropertyValue]("transform");
  }
  set transform(value) {
    this[$setProperty]("transform", value, "");
  }
  get transformOrigin() {
    return this[$getPropertyValue]("transform-origin");
  }
  set transformOrigin(value) {
    this[$setProperty]("transform-origin", value, "");
  }
  get transformOriginX() {
    return this[$getPropertyValue]("transform-origin-x");
  }
  set transformOriginX(value) {
    this[$setProperty]("transform-origin-x", value, "");
  }
  get transformOriginY() {
    return this[$getPropertyValue]("transform-origin-y");
  }
  set transformOriginY(value) {
    this[$setProperty]("transform-origin-y", value, "");
  }
  get transformOriginZ() {
    return this[$getPropertyValue]("transform-origin-z");
  }
  set transformOriginZ(value) {
    this[$setProperty]("transform-origin-z", value, "");
  }
  get transformStyle() {
    return this[$getPropertyValue]("transform-style");
  }
  set transformStyle(value) {
    this[$setProperty]("transform-style", value, "");
  }
  get transition() {
    return this[$getPropertyValue]("transition");
  }
  set transition(value) {
    this[$setProperty]("transition", value, "");
  }
  get transitionDelay() {
    return this[$getPropertyValue]("transition-delay");
  }
  set transitionDelay(value) {
    this[$setProperty]("transition-delay", value, "");
  }
  get transitionDuration() {
    return this[$getPropertyValue]("transition-duration");
  }
  set transitionDuration(value) {
    this[$setProperty]("transition-duration", value, "");
  }
  get transitionProperty() {
    return this[$getPropertyValue]("transition-property");
  }
  set transitionProperty(value) {
    this[$setProperty]("transition-property", value, "");
  }
  get transitionTimingFunction() {
    return this[$getPropertyValue]("transition-timing-function");
  }
  set transitionTimingFunction(value) {
    this[$setProperty]("transition-timing-function", value, "");
  }
  get unicodeBidi() {
    return this[$getPropertyValue]("unicode-bidi");
  }
  set unicodeBidi(value) {
    this[$setProperty]("unicode-bidi", value, "");
  }
  get unicodeRange() {
    return this[$getPropertyValue]("unicode-range");
  }
  set unicodeRange(value) {
    this[$setProperty]("unicode-range", value, "");
  }
  get userDrag() {
    return this[$getPropertyValue]("user-drag");
  }
  set userDrag(value) {
    this[$setProperty]("user-drag", value, "");
  }
  get userModify() {
    return this[$getPropertyValue]("user-modify");
  }
  set userModify(value) {
    this[$setProperty]("user-modify", value, "");
  }
  get userSelect() {
    return this[$getPropertyValue]("user-select");
  }
  set userSelect(value) {
    this[$setProperty]("user-select", value, "");
  }
  get userZoom() {
    return this[$getPropertyValue]("user-zoom");
  }
  set userZoom(value) {
    this[$setProperty]("user-zoom", value, "");
  }
  get verticalAlign() {
    return this[$getPropertyValue]("vertical-align");
  }
  set verticalAlign(value) {
    this[$setProperty]("vertical-align", value, "");
  }
  get visibility() {
    return this[$getPropertyValue]("visibility");
  }
  set visibility(value) {
    this[$setProperty]("visibility", value, "");
  }
  get whiteSpace() {
    return this[$getPropertyValue]("white-space");
  }
  set whiteSpace(value) {
    this[$setProperty]("white-space", value, "");
  }
  get widows() {
    return this[$getPropertyValue]("widows");
  }
  set widows(value) {
    this[$setProperty]("widows", value, "");
  }
  get width() {
    return this[$getPropertyValue]("width");
  }
  set width(value) {
    this[$setProperty]("width", value, "");
  }
  get willChange() {
    return this[$getPropertyValue]("will-change");
  }
  set willChange(value) {
    this[$setProperty]("will-change", value, "");
  }
  get wordBreak() {
    return this[$getPropertyValue]("word-break");
  }
  set wordBreak(value) {
    this[$setProperty]("word-break", value, "");
  }
  get wordSpacing() {
    return this[$getPropertyValue]("word-spacing");
  }
  set wordSpacing(value) {
    this[$setProperty]("word-spacing", value, "");
  }
  get wordWrap() {
    return this[$getPropertyValue]("word-wrap");
  }
  set wordWrap(value) {
    this[$setProperty]("word-wrap", value, "");
  }
  get wrapFlow() {
    return this[$getPropertyValue]("wrap-flow");
  }
  set wrapFlow(value) {
    this[$setProperty]("wrap-flow", value, "");
  }
  get wrapThrough() {
    return this[$getPropertyValue]("wrap-through");
  }
  set wrapThrough(value) {
    this[$setProperty]("wrap-through", value, "");
  }
  get writingMode() {
    return this[$getPropertyValue]("writing-mode");
  }
  set writingMode(value) {
    this[$setProperty]("writing-mode", value, "");
  }
  get zIndex() {
    return this[$getPropertyValue]("z-index");
  }
  set zIndex(value) {
    this[$setProperty]("z-index", value, "");
  }
  get zoom() {
    return this[$getPropertyValue]("zoom");
  }
  set zoom(value) {
    this[$setProperty]("zoom", value, "");
  }
};
(html$.CssStyleDeclarationBase.new = function() {
  ;
}).prototype = html$.CssStyleDeclarationBase.prototype;
dart.addTypeTests(html$.CssStyleDeclarationBase);
dart.addTypeCaches(html$.CssStyleDeclarationBase);
dart.setGetterSignature(html$.CssStyleDeclarationBase, () => ({
  __proto__: dart.getGetters(html$.CssStyleDeclarationBase.__proto__),
  alignContent: core.String,
  [$alignContent]: core.String,
  alignItems: core.String,
  [$alignItems]: core.String,
  alignSelf: core.String,
  [$alignSelf]: core.String,
  animation: core.String,
  [$animation]: core.String,
  animationDelay: core.String,
  [$animationDelay]: core.String,
  animationDirection: core.String,
  [$animationDirection]: core.String,
  animationDuration: core.String,
  [$animationDuration]: core.String,
  animationFillMode: core.String,
  [$animationFillMode]: core.String,
  animationIterationCount: core.String,
  [$animationIterationCount]: core.String,
  animationName: core.String,
  [$animationName]: core.String,
  animationPlayState: core.String,
  [$animationPlayState]: core.String,
  animationTimingFunction: core.String,
  [$animationTimingFunction]: core.String,
  appRegion: core.String,
  [$appRegion]: core.String,
  appearance: core.String,
  [$appearance]: core.String,
  aspectRatio: core.String,
  [$aspectRatio]: core.String,
  backfaceVisibility: core.String,
  [$backfaceVisibility]: core.String,
  background: core.String,
  [$background]: core.String,
  backgroundAttachment: core.String,
  [$backgroundAttachment]: core.String,
  backgroundBlendMode: core.String,
  [$backgroundBlendMode]: core.String,
  backgroundClip: core.String,
  [$backgroundClip]: core.String,
  backgroundColor: core.String,
  [$backgroundColor]: core.String,
  backgroundComposite: core.String,
  [$backgroundComposite]: core.String,
  backgroundImage: core.String,
  [$backgroundImage]: core.String,
  backgroundOrigin: core.String,
  [$backgroundOrigin]: core.String,
  backgroundPosition: core.String,
  [$backgroundPosition]: core.String,
  backgroundPositionX: core.String,
  [$backgroundPositionX]: core.String,
  backgroundPositionY: core.String,
  [$backgroundPositionY]: core.String,
  backgroundRepeat: core.String,
  [$backgroundRepeat]: core.String,
  backgroundRepeatX: core.String,
  [$backgroundRepeatX]: core.String,
  backgroundRepeatY: core.String,
  [$backgroundRepeatY]: core.String,
  backgroundSize: core.String,
  [$backgroundSize]: core.String,
  border: core.String,
  [$border]: core.String,
  borderAfter: core.String,
  [$borderAfter]: core.String,
  borderAfterColor: core.String,
  [$borderAfterColor]: core.String,
  borderAfterStyle: core.String,
  [$borderAfterStyle]: core.String,
  borderAfterWidth: core.String,
  [$borderAfterWidth]: core.String,
  borderBefore: core.String,
  [$borderBefore]: core.String,
  borderBeforeColor: core.String,
  [$borderBeforeColor]: core.String,
  borderBeforeStyle: core.String,
  [$borderBeforeStyle]: core.String,
  borderBeforeWidth: core.String,
  [$borderBeforeWidth]: core.String,
  borderBottom: core.String,
  [$borderBottom]: core.String,
  borderBottomColor: core.String,
  [$borderBottomColor]: core.String,
  borderBottomLeftRadius: core.String,
  [$borderBottomLeftRadius]: core.String,
  borderBottomRightRadius: core.String,
  [$borderBottomRightRadius]: core.String,
  borderBottomStyle: core.String,
  [$borderBottomStyle]: core.String,
  borderBottomWidth: core.String,
  [$borderBottomWidth]: core.String,
  borderCollapse: core.String,
  [$borderCollapse]: core.String,
  borderColor: core.String,
  [$borderColor]: core.String,
  borderEnd: core.String,
  [$borderEnd]: core.String,
  borderEndColor: core.String,
  [$borderEndColor]: core.String,
  borderEndStyle: core.String,
  [$borderEndStyle]: core.String,
  borderEndWidth: core.String,
  [$borderEndWidth]: core.String,
  borderFit: core.String,
  [$borderFit]: core.String,
  borderHorizontalSpacing: core.String,
  [$borderHorizontalSpacing]: core.String,
  borderImage: core.String,
  [$borderImage]: core.String,
  borderImageOutset: core.String,
  [$borderImageOutset]: core.String,
  borderImageRepeat: core.String,
  [$borderImageRepeat]: core.String,
  borderImageSlice: core.String,
  [$borderImageSlice]: core.String,
  borderImageSource: core.String,
  [$borderImageSource]: core.String,
  borderImageWidth: core.String,
  [$borderImageWidth]: core.String,
  borderLeft: core.String,
  [$borderLeft]: core.String,
  borderLeftColor: core.String,
  [$borderLeftColor]: core.String,
  borderLeftStyle: core.String,
  [$borderLeftStyle]: core.String,
  borderLeftWidth: core.String,
  [$borderLeftWidth]: core.String,
  borderRadius: core.String,
  [$borderRadius]: core.String,
  borderRight: core.String,
  [$borderRight]: core.String,
  borderRightColor: core.String,
  [$borderRightColor]: core.String,
  borderRightStyle: core.String,
  [$borderRightStyle]: core.String,
  borderRightWidth: core.String,
  [$borderRightWidth]: core.String,
  borderSpacing: core.String,
  [$borderSpacing]: core.String,
  borderStart: core.String,
  [$borderStart]: core.String,
  borderStartColor: core.String,
  [$borderStartColor]: core.String,
  borderStartStyle: core.String,
  [$borderStartStyle]: core.String,
  borderStartWidth: core.String,
  [$borderStartWidth]: core.String,
  borderStyle: core.String,
  [$borderStyle]: core.String,
  borderTop: core.String,
  [$borderTop]: core.String,
  borderTopColor: core.String,
  [$borderTopColor]: core.String,
  borderTopLeftRadius: core.String,
  [$borderTopLeftRadius]: core.String,
  borderTopRightRadius: core.String,
  [$borderTopRightRadius]: core.String,
  borderTopStyle: core.String,
  [$borderTopStyle]: core.String,
  borderTopWidth: core.String,
  [$borderTopWidth]: core.String,
  borderVerticalSpacing: core.String,
  [$borderVerticalSpacing]: core.String,
  borderWidth: core.String,
  [$borderWidth]: core.String,
  bottom: core.String,
  [$bottom]: core.String,
  boxAlign: core.String,
  [$boxAlign]: core.String,
  boxDecorationBreak: core.String,
  [$boxDecorationBreak]: core.String,
  boxDirection: core.String,
  [$boxDirection]: core.String,
  boxFlex: core.String,
  [$boxFlex]: core.String,
  boxFlexGroup: core.String,
  [$boxFlexGroup]: core.String,
  boxLines: core.String,
  [$boxLines]: core.String,
  boxOrdinalGroup: core.String,
  [$boxOrdinalGroup]: core.String,
  boxOrient: core.String,
  [$boxOrient]: core.String,
  boxPack: core.String,
  [$boxPack]: core.String,
  boxReflect: core.String,
  [$boxReflect]: core.String,
  boxShadow: core.String,
  [$boxShadow]: core.String,
  boxSizing: core.String,
  [$boxSizing]: core.String,
  captionSide: core.String,
  [$captionSide]: core.String,
  clear: core.String,
  [$clear]: core.String,
  clip: core.String,
  [$clip]: core.String,
  clipPath: core.String,
  [$clipPath]: core.String,
  color: core.String,
  [$color]: core.String,
  columnBreakAfter: core.String,
  [$columnBreakAfter]: core.String,
  columnBreakBefore: core.String,
  [$columnBreakBefore]: core.String,
  columnBreakInside: core.String,
  [$columnBreakInside]: core.String,
  columnCount: core.String,
  [$columnCount]: core.String,
  columnFill: core.String,
  [$columnFill]: core.String,
  columnGap: core.String,
  [$columnGap]: core.String,
  columnRule: core.String,
  [$columnRule]: core.String,
  columnRuleColor: core.String,
  [$columnRuleColor]: core.String,
  columnRuleStyle: core.String,
  [$columnRuleStyle]: core.String,
  columnRuleWidth: core.String,
  [$columnRuleWidth]: core.String,
  columnSpan: core.String,
  [$columnSpan]: core.String,
  columnWidth: core.String,
  [$columnWidth]: core.String,
  columns: core.String,
  [$columns]: core.String,
  content: core.String,
  [$content]: core.String,
  counterIncrement: core.String,
  [$counterIncrement]: core.String,
  counterReset: core.String,
  [$counterReset]: core.String,
  cursor: core.String,
  [$cursor]: core.String,
  direction: core.String,
  [$direction]: core.String,
  display: core.String,
  [$display]: core.String,
  emptyCells: core.String,
  [$emptyCells]: core.String,
  filter: core.String,
  [$filter]: core.String,
  flex: core.String,
  [$flex]: core.String,
  flexBasis: core.String,
  [$flexBasis]: core.String,
  flexDirection: core.String,
  [$flexDirection]: core.String,
  flexFlow: core.String,
  [$flexFlow]: core.String,
  flexGrow: core.String,
  [$flexGrow]: core.String,
  flexShrink: core.String,
  [$flexShrink]: core.String,
  flexWrap: core.String,
  [$flexWrap]: core.String,
  float: core.String,
  [$float]: core.String,
  font: core.String,
  [$font]: core.String,
  fontFamily: core.String,
  [$fontFamily]: core.String,
  fontFeatureSettings: core.String,
  [$fontFeatureSettings]: core.String,
  fontKerning: core.String,
  [$fontKerning]: core.String,
  fontSize: core.String,
  [$fontSize]: core.String,
  fontSizeDelta: core.String,
  [$fontSizeDelta]: core.String,
  fontSmoothing: core.String,
  [$fontSmoothing]: core.String,
  fontStretch: core.String,
  [$fontStretch]: core.String,
  fontStyle: core.String,
  [$fontStyle]: core.String,
  fontVariant: core.String,
  [$fontVariant]: core.String,
  fontVariantLigatures: core.String,
  [$fontVariantLigatures]: core.String,
  fontWeight: core.String,
  [$fontWeight]: core.String,
  grid: core.String,
  [$grid]: core.String,
  gridArea: core.String,
  [$gridArea]: core.String,
  gridAutoColumns: core.String,
  [$gridAutoColumns]: core.String,
  gridAutoFlow: core.String,
  [$gridAutoFlow]: core.String,
  gridAutoRows: core.String,
  [$gridAutoRows]: core.String,
  gridColumn: core.String,
  [$gridColumn]: core.String,
  gridColumnEnd: core.String,
  [$gridColumnEnd]: core.String,
  gridColumnStart: core.String,
  [$gridColumnStart]: core.String,
  gridRow: core.String,
  [$gridRow]: core.String,
  gridRowEnd: core.String,
  [$gridRowEnd]: core.String,
  gridRowStart: core.String,
  [$gridRowStart]: core.String,
  gridTemplate: core.String,
  [$gridTemplate]: core.String,
  gridTemplateAreas: core.String,
  [$gridTemplateAreas]: core.String,
  gridTemplateColumns: core.String,
  [$gridTemplateColumns]: core.String,
  gridTemplateRows: core.String,
  [$gridTemplateRows]: core.String,
  height: core.String,
  [$height]: core.String,
  highlight: core.String,
  [$highlight]: core.String,
  hyphenateCharacter: core.String,
  [$hyphenateCharacter]: core.String,
  imageRendering: core.String,
  [$imageRendering]: core.String,
  isolation: core.String,
  [$isolation]: core.String,
  justifyContent: core.String,
  [$justifyContent]: core.String,
  justifySelf: core.String,
  [$justifySelf]: core.String,
  left: core.String,
  [$left]: core.String,
  letterSpacing: core.String,
  [$letterSpacing]: core.String,
  lineBoxContain: core.String,
  [$lineBoxContain]: core.String,
  lineBreak: core.String,
  [$lineBreak]: core.String,
  lineClamp: core.String,
  [$lineClamp]: core.String,
  lineHeight: core.String,
  [$lineHeight]: core.String,
  listStyle: core.String,
  [$listStyle]: core.String,
  listStyleImage: core.String,
  [$listStyleImage]: core.String,
  listStylePosition: core.String,
  [$listStylePosition]: core.String,
  listStyleType: core.String,
  [$listStyleType]: core.String,
  locale: core.String,
  [$locale]: core.String,
  logicalHeight: core.String,
  [$logicalHeight]: core.String,
  logicalWidth: core.String,
  [$logicalWidth]: core.String,
  margin: core.String,
  [$margin]: core.String,
  marginAfter: core.String,
  [$marginAfter]: core.String,
  marginAfterCollapse: core.String,
  [$marginAfterCollapse]: core.String,
  marginBefore: core.String,
  [$marginBefore]: core.String,
  marginBeforeCollapse: core.String,
  [$marginBeforeCollapse]: core.String,
  marginBottom: core.String,
  [$marginBottom]: core.String,
  marginBottomCollapse: core.String,
  [$marginBottomCollapse]: core.String,
  marginCollapse: core.String,
  [$marginCollapse]: core.String,
  marginEnd: core.String,
  [$marginEnd]: core.String,
  marginLeft: core.String,
  [$marginLeft]: core.String,
  marginRight: core.String,
  [$marginRight]: core.String,
  marginStart: core.String,
  [$marginStart]: core.String,
  marginTop: core.String,
  [$marginTop]: core.String,
  marginTopCollapse: core.String,
  [$marginTopCollapse]: core.String,
  mask: core.String,
  [$mask]: core.String,
  maskBoxImage: core.String,
  [$maskBoxImage]: core.String,
  maskBoxImageOutset: core.String,
  [$maskBoxImageOutset]: core.String,
  maskBoxImageRepeat: core.String,
  [$maskBoxImageRepeat]: core.String,
  maskBoxImageSlice: core.String,
  [$maskBoxImageSlice]: core.String,
  maskBoxImageSource: core.String,
  [$maskBoxImageSource]: core.String,
  maskBoxImageWidth: core.String,
  [$maskBoxImageWidth]: core.String,
  maskClip: core.String,
  [$maskClip]: core.String,
  maskComposite: core.String,
  [$maskComposite]: core.String,
  maskImage: core.String,
  [$maskImage]: core.String,
  maskOrigin: core.String,
  [$maskOrigin]: core.String,
  maskPosition: core.String,
  [$maskPosition]: core.String,
  maskPositionX: core.String,
  [$maskPositionX]: core.String,
  maskPositionY: core.String,
  [$maskPositionY]: core.String,
  maskRepeat: core.String,
  [$maskRepeat]: core.String,
  maskRepeatX: core.String,
  [$maskRepeatX]: core.String,
  maskRepeatY: core.String,
  [$maskRepeatY]: core.String,
  maskSize: core.String,
  [$maskSize]: core.String,
  maskSourceType: core.String,
  [$maskSourceType]: core.String,
  maxHeight: core.String,
  [$maxHeight]: core.String,
  maxLogicalHeight: core.String,
  [$maxLogicalHeight]: core.String,
  maxLogicalWidth: core.String,
  [$maxLogicalWidth]: core.String,
  maxWidth: core.String,
  [$maxWidth]: core.String,
  maxZoom: core.String,
  [$maxZoom]: core.String,
  minHeight: core.String,
  [$minHeight]: core.String,
  minLogicalHeight: core.String,
  [$minLogicalHeight]: core.String,
  minLogicalWidth: core.String,
  [$minLogicalWidth]: core.String,
  minWidth: core.String,
  [$minWidth]: core.String,
  minZoom: core.String,
  [$minZoom]: core.String,
  mixBlendMode: core.String,
  [$mixBlendMode]: core.String,
  objectFit: core.String,
  [$objectFit]: core.String,
  objectPosition: core.String,
  [$objectPosition]: core.String,
  opacity: core.String,
  [$opacity]: core.String,
  order: core.String,
  [$order]: core.String,
  orientation: core.String,
  [$orientation]: core.String,
  orphans: core.String,
  [$orphans]: core.String,
  outline: core.String,
  [$outline]: core.String,
  outlineColor: core.String,
  [$outlineColor]: core.String,
  outlineOffset: core.String,
  [$outlineOffset]: core.String,
  outlineStyle: core.String,
  [$outlineStyle]: core.String,
  outlineWidth: core.String,
  [$outlineWidth]: core.String,
  overflow: core.String,
  [$overflow]: core.String,
  overflowWrap: core.String,
  [$overflowWrap]: core.String,
  overflowX: core.String,
  [$overflowX]: core.String,
  overflowY: core.String,
  [$overflowY]: core.String,
  padding: core.String,
  [$padding]: core.String,
  paddingAfter: core.String,
  [$paddingAfter]: core.String,
  paddingBefore: core.String,
  [$paddingBefore]: core.String,
  paddingBottom: core.String,
  [$paddingBottom]: core.String,
  paddingEnd: core.String,
  [$paddingEnd]: core.String,
  paddingLeft: core.String,
  [$paddingLeft]: core.String,
  paddingRight: core.String,
  [$paddingRight]: core.String,
  paddingStart: core.String,
  [$paddingStart]: core.String,
  paddingTop: core.String,
  [$paddingTop]: core.String,
  page: core.String,
  [$page]: core.String,
  pageBreakAfter: core.String,
  [$pageBreakAfter]: core.String,
  pageBreakBefore: core.String,
  [$pageBreakBefore]: core.String,
  pageBreakInside: core.String,
  [$pageBreakInside]: core.String,
  perspective: core.String,
  [$perspective]: core.String,
  perspectiveOrigin: core.String,
  [$perspectiveOrigin]: core.String,
  perspectiveOriginX: core.String,
  [$perspectiveOriginX]: core.String,
  perspectiveOriginY: core.String,
  [$perspectiveOriginY]: core.String,
  pointerEvents: core.String,
  [$pointerEvents]: core.String,
  position: core.String,
  [$position]: core.String,
  printColorAdjust: core.String,
  [$printColorAdjust]: core.String,
  quotes: core.String,
  [$quotes]: core.String,
  resize: core.String,
  [$resize]: core.String,
  right: core.String,
  [$right]: core.String,
  rtlOrdering: core.String,
  [$rtlOrdering]: core.String,
  rubyPosition: core.String,
  [$rubyPosition]: core.String,
  scrollBehavior: core.String,
  [$scrollBehavior]: core.String,
  shapeImageThreshold: core.String,
  [$shapeImageThreshold]: core.String,
  shapeMargin: core.String,
  [$shapeMargin]: core.String,
  shapeOutside: core.String,
  [$shapeOutside]: core.String,
  size: core.String,
  [$size]: core.String,
  speak: core.String,
  [$speak]: core.String,
  src: core.String,
  [$src]: core.String,
  tabSize: core.String,
  [$tabSize]: core.String,
  tableLayout: core.String,
  [$tableLayout]: core.String,
  tapHighlightColor: core.String,
  [$tapHighlightColor]: core.String,
  textAlign: core.String,
  [$textAlign]: core.String,
  textAlignLast: core.String,
  [$textAlignLast]: core.String,
  textCombine: core.String,
  [$textCombine]: core.String,
  textDecoration: core.String,
  [$textDecoration]: core.String,
  textDecorationColor: core.String,
  [$textDecorationColor]: core.String,
  textDecorationLine: core.String,
  [$textDecorationLine]: core.String,
  textDecorationStyle: core.String,
  [$textDecorationStyle]: core.String,
  textDecorationsInEffect: core.String,
  [$textDecorationsInEffect]: core.String,
  textEmphasis: core.String,
  [$textEmphasis]: core.String,
  textEmphasisColor: core.String,
  [$textEmphasisColor]: core.String,
  textEmphasisPosition: core.String,
  [$textEmphasisPosition]: core.String,
  textEmphasisStyle: core.String,
  [$textEmphasisStyle]: core.String,
  textFillColor: core.String,
  [$textFillColor]: core.String,
  textIndent: core.String,
  [$textIndent]: core.String,
  textJustify: core.String,
  [$textJustify]: core.String,
  textLineThroughColor: core.String,
  [$textLineThroughColor]: core.String,
  textLineThroughMode: core.String,
  [$textLineThroughMode]: core.String,
  textLineThroughStyle: core.String,
  [$textLineThroughStyle]: core.String,
  textLineThroughWidth: core.String,
  [$textLineThroughWidth]: core.String,
  textOrientation: core.String,
  [$textOrientation]: core.String,
  textOverflow: core.String,
  [$textOverflow]: core.String,
  textOverlineColor: core.String,
  [$textOverlineColor]: core.String,
  textOverlineMode: core.String,
  [$textOverlineMode]: core.String,
  textOverlineStyle: core.String,
  [$textOverlineStyle]: core.String,
  textOverlineWidth: core.String,
  [$textOverlineWidth]: core.String,
  textRendering: core.String,
  [$textRendering]: core.String,
  textSecurity: core.String,
  [$textSecurity]: core.String,
  textShadow: core.String,
  [$textShadow]: core.String,
  textStroke: core.String,
  [$textStroke]: core.String,
  textStrokeColor: core.String,
  [$textStrokeColor]: core.String,
  textStrokeWidth: core.String,
  [$textStrokeWidth]: core.String,
  textTransform: core.String,
  [$textTransform]: core.String,
  textUnderlineColor: core.String,
  [$textUnderlineColor]: core.String,
  textUnderlineMode: core.String,
  [$textUnderlineMode]: core.String,
  textUnderlinePosition: core.String,
  [$textUnderlinePosition]: core.String,
  textUnderlineStyle: core.String,
  [$textUnderlineStyle]: core.String,
  textUnderlineWidth: core.String,
  [$textUnderlineWidth]: core.String,
  top: core.String,
  [$top]: core.String,
  touchAction: core.String,
  [$touchAction]: core.String,
  touchActionDelay: core.String,
  [$touchActionDelay]: core.String,
  transform: core.String,
  [$transform]: core.String,
  transformOrigin: core.String,
  [$transformOrigin]: core.String,
  transformOriginX: core.String,
  [$transformOriginX]: core.String,
  transformOriginY: core.String,
  [$transformOriginY]: core.String,
  transformOriginZ: core.String,
  [$transformOriginZ]: core.String,
  transformStyle: core.String,
  [$transformStyle]: core.String,
  transition: core.String,
  [$transition]: core.String,
  transitionDelay: core.String,
  [$transitionDelay]: core.String,
  transitionDuration: core.String,
  [$transitionDuration]: core.String,
  transitionProperty: core.String,
  [$transitionProperty]: core.String,
  transitionTimingFunction: core.String,
  [$transitionTimingFunction]: core.String,
  unicodeBidi: core.String,
  [$unicodeBidi]: core.String,
  unicodeRange: core.String,
  [$unicodeRange]: core.String,
  userDrag: core.String,
  [$userDrag]: core.String,
  userModify: core.String,
  [$userModify]: core.String,
  userSelect: core.String,
  [$userSelect]: core.String,
  userZoom: core.String,
  [$userZoom]: core.String,
  verticalAlign: core.String,
  [$verticalAlign]: core.String,
  visibility: core.String,
  [$visibility]: core.String,
  whiteSpace: core.String,
  [$whiteSpace]: core.String,
  widows: core.String,
  [$widows]: core.String,
  width: core.String,
  [$width]: core.String,
  willChange: core.String,
  [$willChange]: core.String,
  wordBreak: core.String,
  [$wordBreak]: core.String,
  wordSpacing: core.String,
  [$wordSpacing]: core.String,
  wordWrap: core.String,
  [$wordWrap]: core.String,
  wrapFlow: core.String,
  [$wrapFlow]: core.String,
  wrapThrough: core.String,
  [$wrapThrough]: core.String,
  writingMode: core.String,
  [$writingMode]: core.String,
  zIndex: core.String,
  [$zIndex]: core.String,
  zoom: core.String,
  [$zoom]: core.String
}));
dart.setSetterSignature(html$.CssStyleDeclarationBase, () => ({
  __proto__: dart.getSetters(html$.CssStyleDeclarationBase.__proto__),
  alignContent: core.String,
  [$alignContent]: core.String,
  alignItems: core.String,
  [$alignItems]: core.String,
  alignSelf: core.String,
  [$alignSelf]: core.String,
  animation: core.String,
  [$animation]: core.String,
  animationDelay: core.String,
  [$animationDelay]: core.String,
  animationDirection: core.String,
  [$animationDirection]: core.String,
  animationDuration: core.String,
  [$animationDuration]: core.String,
  animationFillMode: core.String,
  [$animationFillMode]: core.String,
  animationIterationCount: core.String,
  [$animationIterationCount]: core.String,
  animationName: core.String,
  [$animationName]: core.String,
  animationPlayState: core.String,
  [$animationPlayState]: core.String,
  animationTimingFunction: core.String,
  [$animationTimingFunction]: core.String,
  appRegion: core.String,
  [$appRegion]: core.String,
  appearance: core.String,
  [$appearance]: core.String,
  aspectRatio: core.String,
  [$aspectRatio]: core.String,
  backfaceVisibility: core.String,
  [$backfaceVisibility]: core.String,
  background: core.String,
  [$background]: core.String,
  backgroundAttachment: core.String,
  [$backgroundAttachment]: core.String,
  backgroundBlendMode: core.String,
  [$backgroundBlendMode]: core.String,
  backgroundClip: core.String,
  [$backgroundClip]: core.String,
  backgroundColor: core.String,
  [$backgroundColor]: core.String,
  backgroundComposite: core.String,
  [$backgroundComposite]: core.String,
  backgroundImage: core.String,
  [$backgroundImage]: core.String,
  backgroundOrigin: core.String,
  [$backgroundOrigin]: core.String,
  backgroundPosition: core.String,
  [$backgroundPosition]: core.String,
  backgroundPositionX: core.String,
  [$backgroundPositionX]: core.String,
  backgroundPositionY: core.String,
  [$backgroundPositionY]: core.String,
  backgroundRepeat: core.String,
  [$backgroundRepeat]: core.String,
  backgroundRepeatX: core.String,
  [$backgroundRepeatX]: core.String,
  backgroundRepeatY: core.String,
  [$backgroundRepeatY]: core.String,
  backgroundSize: core.String,
  [$backgroundSize]: core.String,
  border: core.String,
  [$border]: core.String,
  borderAfter: core.String,
  [$borderAfter]: core.String,
  borderAfterColor: core.String,
  [$borderAfterColor]: core.String,
  borderAfterStyle: core.String,
  [$borderAfterStyle]: core.String,
  borderAfterWidth: core.String,
  [$borderAfterWidth]: core.String,
  borderBefore: core.String,
  [$borderBefore]: core.String,
  borderBeforeColor: core.String,
  [$borderBeforeColor]: core.String,
  borderBeforeStyle: core.String,
  [$borderBeforeStyle]: core.String,
  borderBeforeWidth: core.String,
  [$borderBeforeWidth]: core.String,
  borderBottom: core.String,
  [$borderBottom]: core.String,
  borderBottomColor: core.String,
  [$borderBottomColor]: core.String,
  borderBottomLeftRadius: core.String,
  [$borderBottomLeftRadius]: core.String,
  borderBottomRightRadius: core.String,
  [$borderBottomRightRadius]: core.String,
  borderBottomStyle: core.String,
  [$borderBottomStyle]: core.String,
  borderBottomWidth: core.String,
  [$borderBottomWidth]: core.String,
  borderCollapse: core.String,
  [$borderCollapse]: core.String,
  borderColor: core.String,
  [$borderColor]: core.String,
  borderEnd: core.String,
  [$borderEnd]: core.String,
  borderEndColor: core.String,
  [$borderEndColor]: core.String,
  borderEndStyle: core.String,
  [$borderEndStyle]: core.String,
  borderEndWidth: core.String,
  [$borderEndWidth]: core.String,
  borderFit: core.String,
  [$borderFit]: core.String,
  borderHorizontalSpacing: core.String,
  [$borderHorizontalSpacing]: core.String,
  borderImage: core.String,
  [$borderImage]: core.String,
  borderImageOutset: core.String,
  [$borderImageOutset]: core.String,
  borderImageRepeat: core.String,
  [$borderImageRepeat]: core.String,
  borderImageSlice: core.String,
  [$borderImageSlice]: core.String,
  borderImageSource: core.String,
  [$borderImageSource]: core.String,
  borderImageWidth: core.String,
  [$borderImageWidth]: core.String,
  borderLeft: core.String,
  [$borderLeft]: core.String,
  borderLeftColor: core.String,
  [$borderLeftColor]: core.String,
  borderLeftStyle: core.String,
  [$borderLeftStyle]: core.String,
  borderLeftWidth: core.String,
  [$borderLeftWidth]: core.String,
  borderRadius: core.String,
  [$borderRadius]: core.String,
  borderRight: core.String,
  [$borderRight]: core.String,
  borderRightColor: core.String,
  [$borderRightColor]: core.String,
  borderRightStyle: core.String,
  [$borderRightStyle]: core.String,
  borderRightWidth: core.String,
  [$borderRightWidth]: core.String,
  borderSpacing: core.String,
  [$borderSpacing]: core.String,
  borderStart: core.String,
  [$borderStart]: core.String,
  borderStartColor: core.String,
  [$borderStartColor]: core.String,
  borderStartStyle: core.String,
  [$borderStartStyle]: core.String,
  borderStartWidth: core.String,
  [$borderStartWidth]: core.String,
  borderStyle: core.String,
  [$borderStyle]: core.String,
  borderTop: core.String,
  [$borderTop]: core.String,
  borderTopColor: core.String,
  [$borderTopColor]: core.String,
  borderTopLeftRadius: core.String,
  [$borderTopLeftRadius]: core.String,
  borderTopRightRadius: core.String,
  [$borderTopRightRadius]: core.String,
  borderTopStyle: core.String,
  [$borderTopStyle]: core.String,
  borderTopWidth: core.String,
  [$borderTopWidth]: core.String,
  borderVerticalSpacing: core.String,
  [$borderVerticalSpacing]: core.String,
  borderWidth: core.String,
  [$borderWidth]: core.String,
  bottom: core.String,
  [$bottom]: core.String,
  boxAlign: core.String,
  [$boxAlign]: core.String,
  boxDecorationBreak: core.String,
  [$boxDecorationBreak]: core.String,
  boxDirection: core.String,
  [$boxDirection]: core.String,
  boxFlex: core.String,
  [$boxFlex]: core.String,
  boxFlexGroup: core.String,
  [$boxFlexGroup]: core.String,
  boxLines: core.String,
  [$boxLines]: core.String,
  boxOrdinalGroup: core.String,
  [$boxOrdinalGroup]: core.String,
  boxOrient: core.String,
  [$boxOrient]: core.String,
  boxPack: core.String,
  [$boxPack]: core.String,
  boxReflect: core.String,
  [$boxReflect]: core.String,
  boxShadow: core.String,
  [$boxShadow]: core.String,
  boxSizing: core.String,
  [$boxSizing]: core.String,
  captionSide: core.String,
  [$captionSide]: core.String,
  clear: core.String,
  [$clear]: core.String,
  clip: core.String,
  [$clip]: core.String,
  clipPath: core.String,
  [$clipPath]: core.String,
  color: core.String,
  [$color]: core.String,
  columnBreakAfter: core.String,
  [$columnBreakAfter]: core.String,
  columnBreakBefore: core.String,
  [$columnBreakBefore]: core.String,
  columnBreakInside: core.String,
  [$columnBreakInside]: core.String,
  columnCount: core.String,
  [$columnCount]: core.String,
  columnFill: core.String,
  [$columnFill]: core.String,
  columnGap: core.String,
  [$columnGap]: core.String,
  columnRule: core.String,
  [$columnRule]: core.String,
  columnRuleColor: core.String,
  [$columnRuleColor]: core.String,
  columnRuleStyle: core.String,
  [$columnRuleStyle]: core.String,
  columnRuleWidth: core.String,
  [$columnRuleWidth]: core.String,
  columnSpan: core.String,
  [$columnSpan]: core.String,
  columnWidth: core.String,
  [$columnWidth]: core.String,
  columns: core.String,
  [$columns]: core.String,
  content: core.String,
  [$content]: core.String,
  counterIncrement: core.String,
  [$counterIncrement]: core.String,
  counterReset: core.String,
  [$counterReset]: core.String,
  cursor: core.String,
  [$cursor]: core.String,
  direction: core.String,
  [$direction]: core.String,
  display: core.String,
  [$display]: core.String,
  emptyCells: core.String,
  [$emptyCells]: core.String,
  filter: core.String,
  [$filter]: core.String,
  flex: core.String,
  [$flex]: core.String,
  flexBasis: core.String,
  [$flexBasis]: core.String,
  flexDirection: core.String,
  [$flexDirection]: core.String,
  flexFlow: core.String,
  [$flexFlow]: core.String,
  flexGrow: core.String,
  [$flexGrow]: core.String,
  flexShrink: core.String,
  [$flexShrink]: core.String,
  flexWrap: core.String,
  [$flexWrap]: core.String,
  float: core.String,
  [$float]: core.String,
  font: core.String,
  [$font]: core.String,
  fontFamily: core.String,
  [$fontFamily]: core.String,
  fontFeatureSettings: core.String,
  [$fontFeatureSettings]: core.String,
  fontKerning: core.String,
  [$fontKerning]: core.String,
  fontSize: core.String,
  [$fontSize]: core.String,
  fontSizeDelta: core.String,
  [$fontSizeDelta]: core.String,
  fontSmoothing: core.String,
  [$fontSmoothing]: core.String,
  fontStretch: core.String,
  [$fontStretch]: core.String,
  fontStyle: core.String,
  [$fontStyle]: core.String,
  fontVariant: core.String,
  [$fontVariant]: core.String,
  fontVariantLigatures: core.String,
  [$fontVariantLigatures]: core.String,
  fontWeight: core.String,
  [$fontWeight]: core.String,
  grid: core.String,
  [$grid]: core.String,
  gridArea: core.String,
  [$gridArea]: core.String,
  gridAutoColumns: core.String,
  [$gridAutoColumns]: core.String,
  gridAutoFlow: core.String,
  [$gridAutoFlow]: core.String,
  gridAutoRows: core.String,
  [$gridAutoRows]: core.String,
  gridColumn: core.String,
  [$gridColumn]: core.String,
  gridColumnEnd: core.String,
  [$gridColumnEnd]: core.String,
  gridColumnStart: core.String,
  [$gridColumnStart]: core.String,
  gridRow: core.String,
  [$gridRow]: core.String,
  gridRowEnd: core.String,
  [$gridRowEnd]: core.String,
  gridRowStart: core.String,
  [$gridRowStart]: core.String,
  gridTemplate: core.String,
  [$gridTemplate]: core.String,
  gridTemplateAreas: core.String,
  [$gridTemplateAreas]: core.String,
  gridTemplateColumns: core.String,
  [$gridTemplateColumns]: core.String,
  gridTemplateRows: core.String,
  [$gridTemplateRows]: core.String,
  height: core.String,
  [$height]: core.String,
  highlight: core.String,
  [$highlight]: core.String,
  hyphenateCharacter: core.String,
  [$hyphenateCharacter]: core.String,
  imageRendering: core.String,
  [$imageRendering]: core.String,
  isolation: core.String,
  [$isolation]: core.String,
  justifyContent: core.String,
  [$justifyContent]: core.String,
  justifySelf: core.String,
  [$justifySelf]: core.String,
  left: core.String,
  [$left]: core.String,
  letterSpacing: core.String,
  [$letterSpacing]: core.String,
  lineBoxContain: core.String,
  [$lineBoxContain]: core.String,
  lineBreak: core.String,
  [$lineBreak]: core.String,
  lineClamp: core.String,
  [$lineClamp]: core.String,
  lineHeight: core.String,
  [$lineHeight]: core.String,
  listStyle: core.String,
  [$listStyle]: core.String,
  listStyleImage: core.String,
  [$listStyleImage]: core.String,
  listStylePosition: core.String,
  [$listStylePosition]: core.String,
  listStyleType: core.String,
  [$listStyleType]: core.String,
  locale: core.String,
  [$locale]: core.String,
  logicalHeight: core.String,
  [$logicalHeight]: core.String,
  logicalWidth: core.String,
  [$logicalWidth]: core.String,
  margin: core.String,
  [$margin]: core.String,
  marginAfter: core.String,
  [$marginAfter]: core.String,
  marginAfterCollapse: core.String,
  [$marginAfterCollapse]: core.String,
  marginBefore: core.String,
  [$marginBefore]: core.String,
  marginBeforeCollapse: core.String,
  [$marginBeforeCollapse]: core.String,
  marginBottom: core.String,
  [$marginBottom]: core.String,
  marginBottomCollapse: core.String,
  [$marginBottomCollapse]: core.String,
  marginCollapse: core.String,
  [$marginCollapse]: core.String,
  marginEnd: core.String,
  [$marginEnd]: core.String,
  marginLeft: core.String,
  [$marginLeft]: core.String,
  marginRight: core.String,
  [$marginRight]: core.String,
  marginStart: core.String,
  [$marginStart]: core.String,
  marginTop: core.String,
  [$marginTop]: core.String,
  marginTopCollapse: core.String,
  [$marginTopCollapse]: core.String,
  mask: core.String,
  [$mask]: core.String,
  maskBoxImage: core.String,
  [$maskBoxImage]: core.String,
  maskBoxImageOutset: core.String,
  [$maskBoxImageOutset]: core.String,
  maskBoxImageRepeat: core.String,
  [$maskBoxImageRepeat]: core.String,
  maskBoxImageSlice: core.String,
  [$maskBoxImageSlice]: core.String,
  maskBoxImageSource: core.String,
  [$maskBoxImageSource]: core.String,
  maskBoxImageWidth: core.String,
  [$maskBoxImageWidth]: core.String,
  maskClip: core.String,
  [$maskClip]: core.String,
  maskComposite: core.String,
  [$maskComposite]: core.String,
  maskImage: core.String,
  [$maskImage]: core.String,
  maskOrigin: core.String,
  [$maskOrigin]: core.String,
  maskPosition: core.String,
  [$maskPosition]: core.String,
  maskPositionX: core.String,
  [$maskPositionX]: core.String,
  maskPositionY: core.String,
  [$maskPositionY]: core.String,
  maskRepeat: core.String,
  [$maskRepeat]: core.String,
  maskRepeatX: core.String,
  [$maskRepeatX]: core.String,
  maskRepeatY: core.String,
  [$maskRepeatY]: core.String,
  maskSize: core.String,
  [$maskSize]: core.String,
  maskSourceType: core.String,
  [$maskSourceType]: core.String,
  maxHeight: core.String,
  [$maxHeight]: core.String,
  maxLogicalHeight: core.String,
  [$maxLogicalHeight]: core.String,
  maxLogicalWidth: core.String,
  [$maxLogicalWidth]: core.String,
  maxWidth: core.String,
  [$maxWidth]: core.String,
  maxZoom: core.String,
  [$maxZoom]: core.String,
  minHeight: core.String,
  [$minHeight]: core.String,
  minLogicalHeight: core.String,
  [$minLogicalHeight]: core.String,
  minLogicalWidth: core.String,
  [$minLogicalWidth]: core.String,
  minWidth: core.String,
  [$minWidth]: core.String,
  minZoom: core.String,
  [$minZoom]: core.String,
  mixBlendMode: core.String,
  [$mixBlendMode]: core.String,
  objectFit: core.String,
  [$objectFit]: core.String,
  objectPosition: core.String,
  [$objectPosition]: core.String,
  opacity: core.String,
  [$opacity]: core.String,
  order: core.String,
  [$order]: core.String,
  orientation: core.String,
  [$orientation]: core.String,
  orphans: core.String,
  [$orphans]: core.String,
  outline: core.String,
  [$outline]: core.String,
  outlineColor: core.String,
  [$outlineColor]: core.String,
  outlineOffset: core.String,
  [$outlineOffset]: core.String,
  outlineStyle: core.String,
  [$outlineStyle]: core.String,
  outlineWidth: core.String,
  [$outlineWidth]: core.String,
  overflow: core.String,
  [$overflow]: core.String,
  overflowWrap: core.String,
  [$overflowWrap]: core.String,
  overflowX: core.String,
  [$overflowX]: core.String,
  overflowY: core.String,
  [$overflowY]: core.String,
  padding: core.String,
  [$padding]: core.String,
  paddingAfter: core.String,
  [$paddingAfter]: core.String,
  paddingBefore: core.String,
  [$paddingBefore]: core.String,
  paddingBottom: core.String,
  [$paddingBottom]: core.String,
  paddingEnd: core.String,
  [$paddingEnd]: core.String,
  paddingLeft: core.String,
  [$paddingLeft]: core.String,
  paddingRight: core.String,
  [$paddingRight]: core.String,
  paddingStart: core.String,
  [$paddingStart]: core.String,
  paddingTop: core.String,
  [$paddingTop]: core.String,
  page: core.String,
  [$page]: core.String,
  pageBreakAfter: core.String,
  [$pageBreakAfter]: core.String,
  pageBreakBefore: core.String,
  [$pageBreakBefore]: core.String,
  pageBreakInside: core.String,
  [$pageBreakInside]: core.String,
  perspective: core.String,
  [$perspective]: core.String,
  perspectiveOrigin: core.String,
  [$perspectiveOrigin]: core.String,
  perspectiveOriginX: core.String,
  [$perspectiveOriginX]: core.String,
  perspectiveOriginY: core.String,
  [$perspectiveOriginY]: core.String,
  pointerEvents: core.String,
  [$pointerEvents]: core.String,
  position: core.String,
  [$position]: core.String,
  printColorAdjust: core.String,
  [$printColorAdjust]: core.String,
  quotes: core.String,
  [$quotes]: core.String,
  resize: core.String,
  [$resize]: core.String,
  right: core.String,
  [$right]: core.String,
  rtlOrdering: core.String,
  [$rtlOrdering]: core.String,
  rubyPosition: core.String,
  [$rubyPosition]: core.String,
  scrollBehavior: core.String,
  [$scrollBehavior]: core.String,
  shapeImageThreshold: core.String,
  [$shapeImageThreshold]: core.String,
  shapeMargin: core.String,
  [$shapeMargin]: core.String,
  shapeOutside: core.String,
  [$shapeOutside]: core.String,
  size: core.String,
  [$size]: core.String,
  speak: core.String,
  [$speak]: core.String,
  src: core.String,
  [$src]: core.String,
  tabSize: core.String,
  [$tabSize]: core.String,
  tableLayout: core.String,
  [$tableLayout]: core.String,
  tapHighlightColor: core.String,
  [$tapHighlightColor]: core.String,
  textAlign: core.String,
  [$textAlign]: core.String,
  textAlignLast: core.String,
  [$textAlignLast]: core.String,
  textCombine: core.String,
  [$textCombine]: core.String,
  textDecoration: core.String,
  [$textDecoration]: core.String,
  textDecorationColor: core.String,
  [$textDecorationColor]: core.String,
  textDecorationLine: core.String,
  [$textDecorationLine]: core.String,
  textDecorationStyle: core.String,
  [$textDecorationStyle]: core.String,
  textDecorationsInEffect: core.String,
  [$textDecorationsInEffect]: core.String,
  textEmphasis: core.String,
  [$textEmphasis]: core.String,
  textEmphasisColor: core.String,
  [$textEmphasisColor]: core.String,
  textEmphasisPosition: core.String,
  [$textEmphasisPosition]: core.String,
  textEmphasisStyle: core.String,
  [$textEmphasisStyle]: core.String,
  textFillColor: core.String,
  [$textFillColor]: core.String,
  textIndent: core.String,
  [$textIndent]: core.String,
  textJustify: core.String,
  [$textJustify]: core.String,
  textLineThroughColor: core.String,
  [$textLineThroughColor]: core.String,
  textLineThroughMode: core.String,
  [$textLineThroughMode]: core.String,
  textLineThroughStyle: core.String,
  [$textLineThroughStyle]: core.String,
  textLineThroughWidth: core.String,
  [$textLineThroughWidth]: core.String,
  textOrientation: core.String,
  [$textOrientation]: core.String,
  textOverflow: core.String,
  [$textOverflow]: core.String,
  textOverlineColor: core.String,
  [$textOverlineColor]: core.String,
  textOverlineMode: core.String,
  [$textOverlineMode]: core.String,
  textOverlineStyle: core.String,
  [$textOverlineStyle]: core.String,
  textOverlineWidth: core.String,
  [$textOverlineWidth]: core.String,
  textRendering: core.String,
  [$textRendering]: core.String,
  textSecurity: core.String,
  [$textSecurity]: core.String,
  textShadow: core.String,
  [$textShadow]: core.String,
  textStroke: core.String,
  [$textStroke]: core.String,
  textStrokeColor: core.String,
  [$textStrokeColor]: core.String,
  textStrokeWidth: core.String,
  [$textStrokeWidth]: core.String,
  textTransform: core.String,
  [$textTransform]: core.String,
  textUnderlineColor: core.String,
  [$textUnderlineColor]: core.String,
  textUnderlineMode: core.String,
  [$textUnderlineMode]: core.String,
  textUnderlinePosition: core.String,
  [$textUnderlinePosition]: core.String,
  textUnderlineStyle: core.String,
  [$textUnderlineStyle]: core.String,
  textUnderlineWidth: core.String,
  [$textUnderlineWidth]: core.String,
  top: core.String,
  [$top]: core.String,
  touchAction: core.String,
  [$touchAction]: core.String,
  touchActionDelay: core.String,
  [$touchActionDelay]: core.String,
  transform: core.String,
  [$transform]: core.String,
  transformOrigin: core.String,
  [$transformOrigin]: core.String,
  transformOriginX: core.String,
  [$transformOriginX]: core.String,
  transformOriginY: core.String,
  [$transformOriginY]: core.String,
  transformOriginZ: core.String,
  [$transformOriginZ]: core.String,
  transformStyle: core.String,
  [$transformStyle]: core.String,
  transition: core.String,
  [$transition]: core.String,
  transitionDelay: core.String,
  [$transitionDelay]: core.String,
  transitionDuration: core.String,
  [$transitionDuration]: core.String,
  transitionProperty: core.String,
  [$transitionProperty]: core.String,
  transitionTimingFunction: core.String,
  [$transitionTimingFunction]: core.String,
  unicodeBidi: core.String,
  [$unicodeBidi]: core.String,
  unicodeRange: core.String,
  [$unicodeRange]: core.String,
  userDrag: core.String,
  [$userDrag]: core.String,
  userModify: core.String,
  [$userModify]: core.String,
  userSelect: core.String,
  [$userSelect]: core.String,
  userZoom: core.String,
  [$userZoom]: core.String,
  verticalAlign: core.String,
  [$verticalAlign]: core.String,
  visibility: core.String,
  [$visibility]: core.String,
  whiteSpace: core.String,
  [$whiteSpace]: core.String,
  widows: core.String,
  [$widows]: core.String,
  width: core.String,
  [$width]: core.String,
  willChange: core.String,
  [$willChange]: core.String,
  wordBreak: core.String,
  [$wordBreak]: core.String,
  wordSpacing: core.String,
  [$wordSpacing]: core.String,
  wordWrap: core.String,
  [$wordWrap]: core.String,
  wrapFlow: core.String,
  [$wrapFlow]: core.String,
  wrapThrough: core.String,
  [$wrapThrough]: core.String,
  writingMode: core.String,
  [$writingMode]: core.String,
  zIndex: core.String,
  [$zIndex]: core.String,
  zoom: core.String,
  [$zoom]: core.String
}));
dart.setLibraryUri(html$.CssStyleDeclarationBase, L65);
dart.defineExtensionAccessors(html$.CssStyleDeclarationBase, [
  'alignContent',
  'alignItems',
  'alignSelf',
  'animation',
  'animationDelay',
  'animationDirection',
  'animationDuration',
  'animationFillMode',
  'animationIterationCount',
  'animationName',
  'animationPlayState',
  'animationTimingFunction',
  'appRegion',
  'appearance',
  'aspectRatio',
  'backfaceVisibility',
  'background',
  'backgroundAttachment',
  'backgroundBlendMode',
  'backgroundClip',
  'backgroundColor',
  'backgroundComposite',
  'backgroundImage',
  'backgroundOrigin',
  'backgroundPosition',
  'backgroundPositionX',
  'backgroundPositionY',
  'backgroundRepeat',
  'backgroundRepeatX',
  'backgroundRepeatY',
  'backgroundSize',
  'border',
  'borderAfter',
  'borderAfterColor',
  'borderAfterStyle',
  'borderAfterWidth',
  'borderBefore',
  'borderBeforeColor',
  'borderBeforeStyle',
  'borderBeforeWidth',
  'borderBottom',
  'borderBottomColor',
  'borderBottomLeftRadius',
  'borderBottomRightRadius',
  'borderBottomStyle',
  'borderBottomWidth',
  'borderCollapse',
  'borderColor',
  'borderEnd',
  'borderEndColor',
  'borderEndStyle',
  'borderEndWidth',
  'borderFit',
  'borderHorizontalSpacing',
  'borderImage',
  'borderImageOutset',
  'borderImageRepeat',
  'borderImageSlice',
  'borderImageSource',
  'borderImageWidth',
  'borderLeft',
  'borderLeftColor',
  'borderLeftStyle',
  'borderLeftWidth',
  'borderRadius',
  'borderRight',
  'borderRightColor',
  'borderRightStyle',
  'borderRightWidth',
  'borderSpacing',
  'borderStart',
  'borderStartColor',
  'borderStartStyle',
  'borderStartWidth',
  'borderStyle',
  'borderTop',
  'borderTopColor',
  'borderTopLeftRadius',
  'borderTopRightRadius',
  'borderTopStyle',
  'borderTopWidth',
  'borderVerticalSpacing',
  'borderWidth',
  'bottom',
  'boxAlign',
  'boxDecorationBreak',
  'boxDirection',
  'boxFlex',
  'boxFlexGroup',
  'boxLines',
  'boxOrdinalGroup',
  'boxOrient',
  'boxPack',
  'boxReflect',
  'boxShadow',
  'boxSizing',
  'captionSide',
  'clear',
  'clip',
  'clipPath',
  'color',
  'columnBreakAfter',
  'columnBreakBefore',
  'columnBreakInside',
  'columnCount',
  'columnFill',
  'columnGap',
  'columnRule',
  'columnRuleColor',
  'columnRuleStyle',
  'columnRuleWidth',
  'columnSpan',
  'columnWidth',
  'columns',
  'content',
  'counterIncrement',
  'counterReset',
  'cursor',
  'direction',
  'display',
  'emptyCells',
  'filter',
  'flex',
  'flexBasis',
  'flexDirection',
  'flexFlow',
  'flexGrow',
  'flexShrink',
  'flexWrap',
  'float',
  'font',
  'fontFamily',
  'fontFeatureSettings',
  'fontKerning',
  'fontSize',
  'fontSizeDelta',
  'fontSmoothing',
  'fontStretch',
  'fontStyle',
  'fontVariant',
  'fontVariantLigatures',
  'fontWeight',
  'grid',
  'gridArea',
  'gridAutoColumns',
  'gridAutoFlow',
  'gridAutoRows',
  'gridColumn',
  'gridColumnEnd',
  'gridColumnStart',
  'gridRow',
  'gridRowEnd',
  'gridRowStart',
  'gridTemplate',
  'gridTemplateAreas',
  'gridTemplateColumns',
  'gridTemplateRows',
  'height',
  'highlight',
  'hyphenateCharacter',
  'imageRendering',
  'isolation',
  'justifyContent',
  'justifySelf',
  'left',
  'letterSpacing',
  'lineBoxContain',
  'lineBreak',
  'lineClamp',
  'lineHeight',
  'listStyle',
  'listStyleImage',
  'listStylePosition',
  'listStyleType',
  'locale',
  'logicalHeight',
  'logicalWidth',
  'margin',
  'marginAfter',
  'marginAfterCollapse',
  'marginBefore',
  'marginBeforeCollapse',
  'marginBottom',
  'marginBottomCollapse',
  'marginCollapse',
  'marginEnd',
  'marginLeft',
  'marginRight',
  'marginStart',
  'marginTop',
  'marginTopCollapse',
  'mask',
  'maskBoxImage',
  'maskBoxImageOutset',
  'maskBoxImageRepeat',
  'maskBoxImageSlice',
  'maskBoxImageSource',
  'maskBoxImageWidth',
  'maskClip',
  'maskComposite',
  'maskImage',
  'maskOrigin',
  'maskPosition',
  'maskPositionX',
  'maskPositionY',
  'maskRepeat',
  'maskRepeatX',
  'maskRepeatY',
  'maskSize',
  'maskSourceType',
  'maxHeight',
  'maxLogicalHeight',
  'maxLogicalWidth',
  'maxWidth',
  'maxZoom',
  'minHeight',
  'minLogicalHeight',
  'minLogicalWidth',
  'minWidth',
  'minZoom',
  'mixBlendMode',
  'objectFit',
  'objectPosition',
  'opacity',
  'order',
  'orientation',
  'orphans',
  'outline',
  'outlineColor',
  'outlineOffset',
  'outlineStyle',
  'outlineWidth',
  'overflow',
  'overflowWrap',
  'overflowX',
  'overflowY',
  'padding',
  'paddingAfter',
  'paddingBefore',
  'paddingBottom',
  'paddingEnd',
  'paddingLeft',
  'paddingRight',
  'paddingStart',
  'paddingTop',
  'page',
  'pageBreakAfter',
  'pageBreakBefore',
  'pageBreakInside',
  'perspective',
  'perspectiveOrigin',
  'perspectiveOriginX',
  'perspectiveOriginY',
  'pointerEvents',
  'position',
  'printColorAdjust',
  'quotes',
  'resize',
  'right',
  'rtlOrdering',
  'rubyPosition',
  'scrollBehavior',
  'shapeImageThreshold',
  'shapeMargin',
  'shapeOutside',
  'size',
  'speak',
  'src',
  'tabSize',
  'tableLayout',
  'tapHighlightColor',
  'textAlign',
  'textAlignLast',
  'textCombine',
  'textDecoration',
  'textDecorationColor',
  'textDecorationLine',
  'textDecorationStyle',
  'textDecorationsInEffect',
  'textEmphasis',
  'textEmphasisColor',
  'textEmphasisPosition',
  'textEmphasisStyle',
  'textFillColor',
  'textIndent',
  'textJustify',
  'textLineThroughColor',
  'textLineThroughMode',
  'textLineThroughStyle',
  'textLineThroughWidth',
  'textOrientation',
  'textOverflow',
  'textOverlineColor',
  'textOverlineMode',
  'textOverlineStyle',
  'textOverlineWidth',
  'textRendering',
  'textSecurity',
  'textShadow',
  'textStroke',
  'textStrokeColor',
  'textStrokeWidth',
  'textTransform',
  'textUnderlineColor',
  'textUnderlineMode',
  'textUnderlinePosition',
  'textUnderlineStyle',
  'textUnderlineWidth',
  'top',
  'touchAction',
  'touchActionDelay',
  'transform',
  'transformOrigin',
  'transformOriginX',
  'transformOriginY',
  'transformOriginZ',
  'transformStyle',
  'transition',
  'transitionDelay',
  'transitionDuration',
  'transitionProperty',
  'transitionTimingFunction',
  'unicodeBidi',
  'unicodeRange',
  'userDrag',
  'userModify',
  'userSelect',
  'userZoom',
  'verticalAlign',
  'visibility',
  'whiteSpace',
  'widows',
  'width',
  'willChange',
  'wordBreak',
  'wordSpacing',
  'wordWrap',
  'wrapFlow',
  'wrapThrough',
  'writingMode',
  'zIndex',
  'zoom'
]);
const Interceptor_CssStyleDeclarationBase$36 = class Interceptor_CssStyleDeclarationBase extends _interceptors.Interceptor {};
(Interceptor_CssStyleDeclarationBase$36.new = function() {
  Interceptor_CssStyleDeclarationBase$36.__proto__.new.call(this);
}).prototype = Interceptor_CssStyleDeclarationBase$36.prototype;
dart.applyMixin(Interceptor_CssStyleDeclarationBase$36, html$.CssStyleDeclarationBase);
html$.CssStyleDeclaration = class CssStyleDeclaration extends Interceptor_CssStyleDeclarationBase$36 {
  static new() {
    return html$.CssStyleDeclaration.css("");
  }
  static css(css) {
    let style = html$.DivElement.new().style;
    style.cssText = css;
    return style;
  }
  [$getPropertyValue](propertyName) {
    return this[_getPropertyValueHelper](propertyName);
  }
  [_getPropertyValueHelper](propertyName) {
    return this[_getPropertyValue](this[_browserPropertyName](propertyName));
  }
  [$supportsProperty](propertyName) {
    return dart.test(this[_supportsProperty](propertyName)) || dart.test(this[_supportsProperty](html$.CssStyleDeclaration._camelCase(dart.str(html_common.Device.cssPrefix) + dart.str(propertyName))));
  }
  [_supportsProperty](propertyName) {
    return propertyName in this;
  }
  [$setProperty](propertyName, value, priority = null) {
    return this[_setPropertyHelper](this[_browserPropertyName](propertyName), value, priority);
  }
  [_browserPropertyName](propertyName) {
    let name = html$.CssStyleDeclaration._readCache(propertyName);
    if (typeof name == 'string') return name;
    name = this[_supportedBrowserPropertyName](propertyName);
    html$.CssStyleDeclaration._writeCache(propertyName, name);
    return name;
  }
  [_supportedBrowserPropertyName](propertyName) {
    if (dart.test(this[_supportsProperty](html$.CssStyleDeclaration._camelCase(propertyName)))) {
      return propertyName;
    }
    let prefixed = dart.str(html_common.Device.cssPrefix) + dart.str(propertyName);
    if (dart.test(this[_supportsProperty](prefixed))) {
      return prefixed;
    }
    return propertyName;
  }
  static _readCache(key) {
    return html$.CssStyleDeclaration._propertyCache[key];
  }
  static _writeCache(key, value) {
    html$.CssStyleDeclaration._propertyCache[key] = value;
  }
  static _camelCase(hyphenated) {
    let replacedMs = hyphenated.replace(/^-ms-/, "ms-");
    return replacedMs.replace(/-([\da-z])/ig, function(_, letter) {
      return letter.toUpperCase();
    });
  }
  [_setPropertyHelper](propertyName, value, priority = null) {
    if (value == null) value = "";
    if (priority == null) priority = "";
    this.setProperty(propertyName, value, priority);
  }
  static get supportsTransitions() {
    return html$.document.body.style[$supportsProperty]("transition");
  }
  get [$cssFloat]() {
    return this.cssFloat;
  }
  set [$cssFloat](value) {
    this.cssFloat = value;
  }
  get [$cssText]() {
    return this.cssText;
  }
  set [$cssText](value) {
    this.cssText = value;
  }
  get [$length]() {
    return this.length;
  }
  get [$parentRule]() {
    return this.parentRule;
  }
  [$getPropertyPriority](...args) {
    return this.getPropertyPriority.apply(this, args);
  }
  [_getPropertyValue](...args) {
    return this.getPropertyValue.apply(this, args);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
  [$removeProperty](...args) {
    return this.removeProperty.apply(this, args);
  }
  get [$background]() {
    return this[_background];
  }
  set [$background](value) {
    this[_background] = value == null ? "" : value;
  }
  get [_background]() {
    return this.background;
  }
  set [_background](value) {
    this.background = value;
  }
  get [$backgroundAttachment]() {
    return this[_backgroundAttachment];
  }
  set [$backgroundAttachment](value) {
    this[_backgroundAttachment] = value == null ? "" : value;
  }
  get [_backgroundAttachment]() {
    return this.backgroundAttachment;
  }
  set [_backgroundAttachment](value) {
    this.backgroundAttachment = value;
  }
  get [$backgroundColor]() {
    return this[_backgroundColor];
  }
  set [$backgroundColor](value) {
    this[_backgroundColor] = value == null ? "" : value;
  }
  get [_backgroundColor]() {
    return this.backgroundColor;
  }
  set [_backgroundColor](value) {
    this.backgroundColor = value;
  }
  get [$backgroundImage]() {
    return this[_backgroundImage];
  }
  set [$backgroundImage](value) {
    this[_backgroundImage] = value == null ? "" : value;
  }
  get [_backgroundImage]() {
    return this.backgroundImage;
  }
  set [_backgroundImage](value) {
    this.backgroundImage = value;
  }
  get [$backgroundPosition]() {
    return this[_backgroundPosition];
  }
  set [$backgroundPosition](value) {
    this[_backgroundPosition] = value == null ? "" : value;
  }
  get [_backgroundPosition]() {
    return this.backgroundPosition;
  }
  set [_backgroundPosition](value) {
    this.backgroundPosition = value;
  }
  get [$backgroundRepeat]() {
    return this[_backgroundRepeat];
  }
  set [$backgroundRepeat](value) {
    this[_backgroundRepeat] = value == null ? "" : value;
  }
  get [_backgroundRepeat]() {
    return this.backgroundRepeat;
  }
  set [_backgroundRepeat](value) {
    this.backgroundRepeat = value;
  }
  get [$border]() {
    return this[_border];
  }
  set [$border](value) {
    this[_border] = value == null ? "" : value;
  }
  get [_border]() {
    return this.border;
  }
  set [_border](value) {
    this.border = value;
  }
  get [$borderBottom]() {
    return this[_borderBottom];
  }
  set [$borderBottom](value) {
    this[_borderBottom] = value == null ? "" : value;
  }
  get [_borderBottom]() {
    return this.borderBottom;
  }
  set [_borderBottom](value) {
    this.borderBottom = value;
  }
  get [$borderBottomColor]() {
    return this[_borderBottomColor];
  }
  set [$borderBottomColor](value) {
    this[_borderBottomColor] = value == null ? "" : value;
  }
  get [_borderBottomColor]() {
    return this.borderBottomColor;
  }
  set [_borderBottomColor](value) {
    this.borderBottomColor = value;
  }
  get [$borderBottomStyle]() {
    return this[_borderBottomStyle];
  }
  set [$borderBottomStyle](value) {
    this[_borderBottomStyle] = value == null ? "" : value;
  }
  get [_borderBottomStyle]() {
    return this.borderBottomStyle;
  }
  set [_borderBottomStyle](value) {
    this.borderBottomStyle = value;
  }
  get [$borderBottomWidth]() {
    return this[_borderBottomWidth];
  }
  set [$borderBottomWidth](value) {
    this[_borderBottomWidth] = value == null ? "" : value;
  }
  get [_borderBottomWidth]() {
    return this.borderBottomWidth;
  }
  set [_borderBottomWidth](value) {
    this.borderBottomWidth = value;
  }
  get [$borderCollapse]() {
    return this[_borderCollapse];
  }
  set [$borderCollapse](value) {
    this[_borderCollapse] = value == null ? "" : value;
  }
  get [_borderCollapse]() {
    return this.borderCollapse;
  }
  set [_borderCollapse](value) {
    this.borderCollapse = value;
  }
  get [$borderColor]() {
    return this[_borderColor];
  }
  set [$borderColor](value) {
    this[_borderColor] = value == null ? "" : value;
  }
  get [_borderColor]() {
    return this.borderColor;
  }
  set [_borderColor](value) {
    this.borderColor = value;
  }
  get [$borderLeft]() {
    return this[_borderLeft];
  }
  set [$borderLeft](value) {
    this[_borderLeft] = value == null ? "" : value;
  }
  get [_borderLeft]() {
    return this.borderLeft;
  }
  set [_borderLeft](value) {
    this.borderLeft = value;
  }
  get [$borderLeftColor]() {
    return this[_borderLeftColor];
  }
  set [$borderLeftColor](value) {
    this[_borderLeftColor] = value == null ? "" : value;
  }
  get [_borderLeftColor]() {
    return this.borderLeftColor;
  }
  set [_borderLeftColor](value) {
    this.borderLeftColor = value;
  }
  get [$borderLeftStyle]() {
    return this[_borderLeftStyle];
  }
  set [$borderLeftStyle](value) {
    this[_borderLeftStyle] = value == null ? "" : value;
  }
  get [_borderLeftStyle]() {
    return this.borderLeftStyle;
  }
  set [_borderLeftStyle](value) {
    this.borderLeftStyle = value;
  }
  get [$borderLeftWidth]() {
    return this[_borderLeftWidth];
  }
  set [$borderLeftWidth](value) {
    this[_borderLeftWidth] = value == null ? "" : value;
  }
  get [_borderLeftWidth]() {
    return this.borderLeftWidth;
  }
  set [_borderLeftWidth](value) {
    this.borderLeftWidth = value;
  }
  get [$borderRight]() {
    return this[_borderRight];
  }
  set [$borderRight](value) {
    this[_borderRight] = value == null ? "" : value;
  }
  get [_borderRight]() {
    return this.borderRight;
  }
  set [_borderRight](value) {
    this.borderRight = value;
  }
  get [$borderRightColor]() {
    return this[_borderRightColor];
  }
  set [$borderRightColor](value) {
    this[_borderRightColor] = value == null ? "" : value;
  }
  get [_borderRightColor]() {
    return this.borderRightColor;
  }
  set [_borderRightColor](value) {
    this.borderRightColor = value;
  }
  get [$borderRightStyle]() {
    return this[_borderRightStyle];
  }
  set [$borderRightStyle](value) {
    this[_borderRightStyle] = value == null ? "" : value;
  }
  get [_borderRightStyle]() {
    return this.borderRightStyle;
  }
  set [_borderRightStyle](value) {
    this.borderRightStyle = value;
  }
  get [$borderRightWidth]() {
    return this[_borderRightWidth];
  }
  set [$borderRightWidth](value) {
    this[_borderRightWidth] = value == null ? "" : value;
  }
  get [_borderRightWidth]() {
    return this.borderRightWidth;
  }
  set [_borderRightWidth](value) {
    this.borderRightWidth = value;
  }
  get [$borderSpacing]() {
    return this[_borderSpacing];
  }
  set [$borderSpacing](value) {
    this[_borderSpacing] = value == null ? "" : value;
  }
  get [_borderSpacing]() {
    return this.borderSpacing;
  }
  set [_borderSpacing](value) {
    this.borderSpacing = value;
  }
  get [$borderStyle]() {
    return this[_borderStyle];
  }
  set [$borderStyle](value) {
    this[_borderStyle] = value == null ? "" : value;
  }
  get [_borderStyle]() {
    return this.borderStyle;
  }
  set [_borderStyle](value) {
    this.borderStyle = value;
  }
  get [$borderTop]() {
    return this[_borderTop];
  }
  set [$borderTop](value) {
    this[_borderTop] = value == null ? "" : value;
  }
  get [_borderTop]() {
    return this.borderTop;
  }
  set [_borderTop](value) {
    this.borderTop = value;
  }
  get [$borderTopColor]() {
    return this[_borderTopColor];
  }
  set [$borderTopColor](value) {
    this[_borderTopColor] = value == null ? "" : value;
  }
  get [_borderTopColor]() {
    return this.borderTopColor;
  }
  set [_borderTopColor](value) {
    this.borderTopColor = value;
  }
  get [$borderTopStyle]() {
    return this[_borderTopStyle];
  }
  set [$borderTopStyle](value) {
    this[_borderTopStyle] = value == null ? "" : value;
  }
  get [_borderTopStyle]() {
    return this.borderTopStyle;
  }
  set [_borderTopStyle](value) {
    this.borderTopStyle = value;
  }
  get [$borderTopWidth]() {
    return this[_borderTopWidth];
  }
  set [$borderTopWidth](value) {
    this[_borderTopWidth] = value == null ? "" : value;
  }
  get [_borderTopWidth]() {
    return this.borderTopWidth;
  }
  set [_borderTopWidth](value) {
    this.borderTopWidth = value;
  }
  get [$borderWidth]() {
    return this[_borderWidth];
  }
  set [$borderWidth](value) {
    this[_borderWidth] = value == null ? "" : value;
  }
  get [_borderWidth]() {
    return this.borderWidth;
  }
  set [_borderWidth](value) {
    this.borderWidth = value;
  }
  get [$bottom]() {
    return this[_bottom];
  }
  set [$bottom](value) {
    this[_bottom] = value == null ? "" : value;
  }
  get [_bottom]() {
    return this.bottom;
  }
  set [_bottom](value) {
    this.bottom = value;
  }
  get [$captionSide]() {
    return this[_captionSide];
  }
  set [$captionSide](value) {
    this[_captionSide] = value == null ? "" : value;
  }
  get [_captionSide]() {
    return this.captionSide;
  }
  set [_captionSide](value) {
    this.captionSide = value;
  }
  get [$clear]() {
    return this[_clear$0];
  }
  set [$clear](value) {
    this[_clear$0] = value == null ? "" : value;
  }
  get [_clear$0]() {
    return this.clear;
  }
  set [_clear$0](value) {
    this.clear = value;
  }
  get [$clip]() {
    return this[_clip];
  }
  set [$clip](value) {
    this[_clip] = value == null ? "" : value;
  }
  get [_clip]() {
    return this.clip;
  }
  set [_clip](value) {
    this.clip = value;
  }
  get [$color]() {
    return this[_color];
  }
  set [$color](value) {
    this[_color] = value == null ? "" : value;
  }
  get [_color]() {
    return this.color;
  }
  set [_color](value) {
    this.color = value;
  }
  get [$content]() {
    return this[_content];
  }
  set [$content](value) {
    this[_content] = value == null ? "" : value;
  }
  get [_content]() {
    return this.content;
  }
  set [_content](value) {
    this.content = value;
  }
  get [$cursor]() {
    return this[_cursor];
  }
  set [$cursor](value) {
    this[_cursor] = value == null ? "" : value;
  }
  get [_cursor]() {
    return this.cursor;
  }
  set [_cursor](value) {
    this.cursor = value;
  }
  get [$direction]() {
    return this[_direction];
  }
  set [$direction](value) {
    this[_direction] = value == null ? "" : value;
  }
  get [_direction]() {
    return this.direction;
  }
  set [_direction](value) {
    this.direction = value;
  }
  get [$display]() {
    return this[_display];
  }
  set [$display](value) {
    this[_display] = value == null ? "" : value;
  }
  get [_display]() {
    return this.display;
  }
  set [_display](value) {
    this.display = value;
  }
  get [$emptyCells]() {
    return this[_emptyCells];
  }
  set [$emptyCells](value) {
    this[_emptyCells] = value == null ? "" : value;
  }
  get [_emptyCells]() {
    return this.emptyCells;
  }
  set [_emptyCells](value) {
    this.emptyCells = value;
  }
  get [$font]() {
    return this[_font];
  }
  set [$font](value) {
    this[_font] = value == null ? "" : value;
  }
  get [_font]() {
    return this.font;
  }
  set [_font](value) {
    this.font = value;
  }
  get [$fontFamily]() {
    return this[_fontFamily];
  }
  set [$fontFamily](value) {
    this[_fontFamily] = value == null ? "" : value;
  }
  get [_fontFamily]() {
    return this.fontFamily;
  }
  set [_fontFamily](value) {
    this.fontFamily = value;
  }
  get [$fontSize]() {
    return this[_fontSize];
  }
  set [$fontSize](value) {
    this[_fontSize] = value == null ? "" : value;
  }
  get [_fontSize]() {
    return this.fontSize;
  }
  set [_fontSize](value) {
    this.fontSize = value;
  }
  get [$fontStyle]() {
    return this[_fontStyle];
  }
  set [$fontStyle](value) {
    this[_fontStyle] = value == null ? "" : value;
  }
  get [_fontStyle]() {
    return this.fontStyle;
  }
  set [_fontStyle](value) {
    this.fontStyle = value;
  }
  get [$fontVariant]() {
    return this[_fontVariant];
  }
  set [$fontVariant](value) {
    this[_fontVariant] = value == null ? "" : value;
  }
  get [_fontVariant]() {
    return this.fontVariant;
  }
  set [_fontVariant](value) {
    this.fontVariant = value;
  }
  get [$fontWeight]() {
    return this[_fontWeight];
  }
  set [$fontWeight](value) {
    this[_fontWeight] = value == null ? "" : value;
  }
  get [_fontWeight]() {
    return this.fontWeight;
  }
  set [_fontWeight](value) {
    this.fontWeight = value;
  }
  get [$height]() {
    return this[_height$];
  }
  set [$height](value) {
    this[_height$] = value == null ? "" : value;
  }
  get [_height$]() {
    return this.height;
  }
  set [_height$](value) {
    this.height = value;
  }
  get [$left]() {
    return this[_left];
  }
  set [$left](value) {
    this[_left] = value == null ? "" : value;
  }
  get [_left]() {
    return this.left;
  }
  set [_left](value) {
    this.left = value;
  }
  get [$letterSpacing]() {
    return this[_letterSpacing];
  }
  set [$letterSpacing](value) {
    this[_letterSpacing] = value == null ? "" : value;
  }
  get [_letterSpacing]() {
    return this.letterSpacing;
  }
  set [_letterSpacing](value) {
    this.letterSpacing = value;
  }
  get [$lineHeight]() {
    return this[_lineHeight];
  }
  set [$lineHeight](value) {
    this[_lineHeight] = value == null ? "" : value;
  }
  get [_lineHeight]() {
    return this.lineHeight;
  }
  set [_lineHeight](value) {
    this.lineHeight = value;
  }
  get [$listStyle]() {
    return this[_listStyle];
  }
  set [$listStyle](value) {
    this[_listStyle] = value == null ? "" : value;
  }
  get [_listStyle]() {
    return this.listStyle;
  }
  set [_listStyle](value) {
    this.listStyle = value;
  }
  get [$listStyleImage]() {
    return this[_listStyleImage];
  }
  set [$listStyleImage](value) {
    this[_listStyleImage] = value == null ? "" : value;
  }
  get [_listStyleImage]() {
    return this.listStyleImage;
  }
  set [_listStyleImage](value) {
    this.listStyleImage = value;
  }
  get [$listStylePosition]() {
    return this[_listStylePosition];
  }
  set [$listStylePosition](value) {
    this[_listStylePosition] = value == null ? "" : value;
  }
  get [_listStylePosition]() {
    return this.listStylePosition;
  }
  set [_listStylePosition](value) {
    this.listStylePosition = value;
  }
  get [$listStyleType]() {
    return this[_listStyleType];
  }
  set [$listStyleType](value) {
    this[_listStyleType] = value == null ? "" : value;
  }
  get [_listStyleType]() {
    return this.listStyleType;
  }
  set [_listStyleType](value) {
    this.listStyleType = value;
  }
  get [$margin]() {
    return this[_margin];
  }
  set [$margin](value) {
    this[_margin] = value == null ? "" : value;
  }
  get [_margin]() {
    return this.margin;
  }
  set [_margin](value) {
    this.margin = value;
  }
  get [$marginBottom]() {
    return this[_marginBottom];
  }
  set [$marginBottom](value) {
    this[_marginBottom] = value == null ? "" : value;
  }
  get [_marginBottom]() {
    return this.marginBottom;
  }
  set [_marginBottom](value) {
    this.marginBottom = value;
  }
  get [$marginLeft]() {
    return this[_marginLeft];
  }
  set [$marginLeft](value) {
    this[_marginLeft] = value == null ? "" : value;
  }
  get [_marginLeft]() {
    return this.marginLeft;
  }
  set [_marginLeft](value) {
    this.marginLeft = value;
  }
  get [$marginRight]() {
    return this[_marginRight];
  }
  set [$marginRight](value) {
    this[_marginRight] = value == null ? "" : value;
  }
  get [_marginRight]() {
    return this.marginRight;
  }
  set [_marginRight](value) {
    this.marginRight = value;
  }
  get [$marginTop]() {
    return this[_marginTop];
  }
  set [$marginTop](value) {
    this[_marginTop] = value == null ? "" : value;
  }
  get [_marginTop]() {
    return this.marginTop;
  }
  set [_marginTop](value) {
    this.marginTop = value;
  }
  get [$maxHeight]() {
    return this[_maxHeight];
  }
  set [$maxHeight](value) {
    this[_maxHeight] = value == null ? "" : value;
  }
  get [_maxHeight]() {
    return this.maxHeight;
  }
  set [_maxHeight](value) {
    this.maxHeight = value;
  }
  get [$maxWidth]() {
    return this[_maxWidth];
  }
  set [$maxWidth](value) {
    this[_maxWidth] = value == null ? "" : value;
  }
  get [_maxWidth]() {
    return this.maxWidth;
  }
  set [_maxWidth](value) {
    this.maxWidth = value;
  }
  get [$minHeight]() {
    return this[_minHeight];
  }
  set [$minHeight](value) {
    this[_minHeight] = value == null ? "" : value;
  }
  get [_minHeight]() {
    return this.minHeight;
  }
  set [_minHeight](value) {
    this.minHeight = value;
  }
  get [$minWidth]() {
    return this[_minWidth];
  }
  set [$minWidth](value) {
    this[_minWidth] = value == null ? "" : value;
  }
  get [_minWidth]() {
    return this.minWidth;
  }
  set [_minWidth](value) {
    this.minWidth = value;
  }
  get [$outline]() {
    return this[_outline];
  }
  set [$outline](value) {
    this[_outline] = value == null ? "" : value;
  }
  get [_outline]() {
    return this.outline;
  }
  set [_outline](value) {
    this.outline = value;
  }
  get [$outlineColor]() {
    return this[_outlineColor];
  }
  set [$outlineColor](value) {
    this[_outlineColor] = value == null ? "" : value;
  }
  get [_outlineColor]() {
    return this.outlineColor;
  }
  set [_outlineColor](value) {
    this.outlineColor = value;
  }
  get [$outlineStyle]() {
    return this[_outlineStyle];
  }
  set [$outlineStyle](value) {
    this[_outlineStyle] = value == null ? "" : value;
  }
  get [_outlineStyle]() {
    return this.outlineStyle;
  }
  set [_outlineStyle](value) {
    this.outlineStyle = value;
  }
  get [$outlineWidth]() {
    return this[_outlineWidth];
  }
  set [$outlineWidth](value) {
    this[_outlineWidth] = value == null ? "" : value;
  }
  get [_outlineWidth]() {
    return this.outlineWidth;
  }
  set [_outlineWidth](value) {
    this.outlineWidth = value;
  }
  get [$overflow]() {
    return this[_overflow];
  }
  set [$overflow](value) {
    this[_overflow] = value == null ? "" : value;
  }
  get [_overflow]() {
    return this.overflow;
  }
  set [_overflow](value) {
    this.overflow = value;
  }
  get [$padding]() {
    return this[_padding];
  }
  set [$padding](value) {
    this[_padding] = value == null ? "" : value;
  }
  get [_padding]() {
    return this.padding;
  }
  set [_padding](value) {
    this.padding = value;
  }
  get [$paddingBottom]() {
    return this[_paddingBottom];
  }
  set [$paddingBottom](value) {
    this[_paddingBottom] = value == null ? "" : value;
  }
  get [_paddingBottom]() {
    return this.paddingBottom;
  }
  set [_paddingBottom](value) {
    this.paddingBottom = value;
  }
  get [$paddingLeft]() {
    return this[_paddingLeft];
  }
  set [$paddingLeft](value) {
    this[_paddingLeft] = value == null ? "" : value;
  }
  get [_paddingLeft]() {
    return this.paddingLeft;
  }
  set [_paddingLeft](value) {
    this.paddingLeft = value;
  }
  get [$paddingRight]() {
    return this[_paddingRight];
  }
  set [$paddingRight](value) {
    this[_paddingRight] = value == null ? "" : value;
  }
  get [_paddingRight]() {
    return this.paddingRight;
  }
  set [_paddingRight](value) {
    this.paddingRight = value;
  }
  get [$paddingTop]() {
    return this[_paddingTop];
  }
  set [$paddingTop](value) {
    this[_paddingTop] = value == null ? "" : value;
  }
  get [_paddingTop]() {
    return this.paddingTop;
  }
  set [_paddingTop](value) {
    this.paddingTop = value;
  }
  get [$pageBreakAfter]() {
    return this[_pageBreakAfter];
  }
  set [$pageBreakAfter](value) {
    this[_pageBreakAfter] = value == null ? "" : value;
  }
  get [_pageBreakAfter]() {
    return this.pageBreakAfter;
  }
  set [_pageBreakAfter](value) {
    this.pageBreakAfter = value;
  }
  get [$pageBreakBefore]() {
    return this[_pageBreakBefore];
  }
  set [$pageBreakBefore](value) {
    this[_pageBreakBefore] = value == null ? "" : value;
  }
  get [_pageBreakBefore]() {
    return this.pageBreakBefore;
  }
  set [_pageBreakBefore](value) {
    this.pageBreakBefore = value;
  }
  get [$pageBreakInside]() {
    return this[_pageBreakInside];
  }
  set [$pageBreakInside](value) {
    this[_pageBreakInside] = value == null ? "" : value;
  }
  get [_pageBreakInside]() {
    return this.pageBreakInside;
  }
  set [_pageBreakInside](value) {
    this.pageBreakInside = value;
  }
  get [$position]() {
    return this[_position$0];
  }
  set [$position](value) {
    this[_position$0] = value == null ? "" : value;
  }
  get [_position$0]() {
    return this.position;
  }
  set [_position$0](value) {
    this.position = value;
  }
  get [$quotes]() {
    return this[_quotes];
  }
  set [$quotes](value) {
    this[_quotes] = value == null ? "" : value;
  }
  get [_quotes]() {
    return this.quotes;
  }
  set [_quotes](value) {
    this.quotes = value;
  }
  get [$right]() {
    return this[_right];
  }
  set [$right](value) {
    this[_right] = value == null ? "" : value;
  }
  get [_right]() {
    return this.right;
  }
  set [_right](value) {
    this.right = value;
  }
  get [$tableLayout]() {
    return this[_tableLayout];
  }
  set [$tableLayout](value) {
    this[_tableLayout] = value == null ? "" : value;
  }
  get [_tableLayout]() {
    return this.tableLayout;
  }
  set [_tableLayout](value) {
    this.tableLayout = value;
  }
  get [$textAlign]() {
    return this[_textAlign];
  }
  set [$textAlign](value) {
    this[_textAlign] = value == null ? "" : value;
  }
  get [_textAlign]() {
    return this.textAlign;
  }
  set [_textAlign](value) {
    this.textAlign = value;
  }
  get [$textDecoration]() {
    return this[_textDecoration];
  }
  set [$textDecoration](value) {
    this[_textDecoration] = value == null ? "" : value;
  }
  get [_textDecoration]() {
    return this.textDecoration;
  }
  set [_textDecoration](value) {
    this.textDecoration = value;
  }
  get [$textIndent]() {
    return this[_textIndent];
  }
  set [$textIndent](value) {
    this[_textIndent] = value == null ? "" : value;
  }
  get [_textIndent]() {
    return this.textIndent;
  }
  set [_textIndent](value) {
    this.textIndent = value;
  }
  get [$textTransform]() {
    return this[_textTransform];
  }
  set [$textTransform](value) {
    this[_textTransform] = value == null ? "" : value;
  }
  get [_textTransform]() {
    return this.textTransform;
  }
  set [_textTransform](value) {
    this.textTransform = value;
  }
  get [$top]() {
    return this[_top];
  }
  set [$top](value) {
    this[_top] = value == null ? "" : value;
  }
  get [_top]() {
    return this.top;
  }
  set [_top](value) {
    this.top = value;
  }
  get [$unicodeBidi]() {
    return this[_unicodeBidi];
  }
  set [$unicodeBidi](value) {
    this[_unicodeBidi] = value == null ? "" : value;
  }
  get [_unicodeBidi]() {
    return this.unicodeBidi;
  }
  set [_unicodeBidi](value) {
    this.unicodeBidi = value;
  }
  get [$verticalAlign]() {
    return this[_verticalAlign];
  }
  set [$verticalAlign](value) {
    this[_verticalAlign] = value == null ? "" : value;
  }
  get [_verticalAlign]() {
    return this.verticalAlign;
  }
  set [_verticalAlign](value) {
    this.verticalAlign = value;
  }
  get [$visibility]() {
    return this[_visibility];
  }
  set [$visibility](value) {
    this[_visibility] = value == null ? "" : value;
  }
  get [_visibility]() {
    return this.visibility;
  }
  set [_visibility](value) {
    this.visibility = value;
  }
  get [$whiteSpace]() {
    return this[_whiteSpace];
  }
  set [$whiteSpace](value) {
    this[_whiteSpace] = value == null ? "" : value;
  }
  get [_whiteSpace]() {
    return this.whiteSpace;
  }
  set [_whiteSpace](value) {
    this.whiteSpace = value;
  }
  get [$width]() {
    return this[_width$];
  }
  set [$width](value) {
    this[_width$] = value == null ? "" : value;
  }
  get [_width$]() {
    return this.width;
  }
  set [_width$](value) {
    this.width = value;
  }
  get [$wordSpacing]() {
    return this[_wordSpacing];
  }
  set [$wordSpacing](value) {
    this[_wordSpacing] = value == null ? "" : value;
  }
  get [_wordSpacing]() {
    return this.wordSpacing;
  }
  set [_wordSpacing](value) {
    this.wordSpacing = value;
  }
  get [$zIndex]() {
    return this[_zIndex];
  }
  set [$zIndex](value) {
    this[_zIndex] = value == null ? "" : value;
  }
  get [_zIndex]() {
    return this.zIndex;
  }
  set [_zIndex](value) {
    this.zIndex = value;
  }
};
dart.addTypeTests(html$.CssStyleDeclaration);
dart.addTypeCaches(html$.CssStyleDeclaration);
dart.setMethodSignature(html$.CssStyleDeclaration, () => ({
  __proto__: dart.getMethods(html$.CssStyleDeclaration.__proto__),
  [$getPropertyValue]: dart.fnType(core.String, [core.String]),
  [_getPropertyValueHelper]: dart.fnType(core.String, [core.String]),
  [$supportsProperty]: dart.fnType(core.bool, [core.String]),
  [_supportsProperty]: dart.fnType(core.bool, [core.String]),
  [$setProperty]: dart.fnType(dart.void, [core.String, core.String], [core.String]),
  [_browserPropertyName]: dart.fnType(core.String, [core.String]),
  [_supportedBrowserPropertyName]: dart.fnType(core.String, [core.String]),
  [_setPropertyHelper]: dart.fnType(dart.void, [core.String, core.String], [core.String]),
  [$getPropertyPriority]: dart.fnType(core.String, [core.String]),
  [_getPropertyValue]: dart.fnType(core.String, [core.String]),
  [$item]: dart.fnType(core.String, [core.int]),
  [$removeProperty]: dart.fnType(core.String, [core.String])
}));
dart.setGetterSignature(html$.CssStyleDeclaration, () => ({
  __proto__: dart.getGetters(html$.CssStyleDeclaration.__proto__),
  [$cssFloat]: core.String,
  [$cssText]: core.String,
  [$length]: core.int,
  [$parentRule]: html$.CssRule,
  [_background]: core.String,
  [_backgroundAttachment]: core.String,
  [_backgroundColor]: core.String,
  [_backgroundImage]: core.String,
  [_backgroundPosition]: core.String,
  [_backgroundRepeat]: core.String,
  [_border]: core.String,
  [_borderBottom]: core.String,
  [_borderBottomColor]: core.String,
  [_borderBottomStyle]: core.String,
  [_borderBottomWidth]: core.String,
  [_borderCollapse]: core.String,
  [_borderColor]: core.String,
  [_borderLeft]: core.String,
  [_borderLeftColor]: core.String,
  [_borderLeftStyle]: core.String,
  [_borderLeftWidth]: core.String,
  [_borderRight]: core.String,
  [_borderRightColor]: core.String,
  [_borderRightStyle]: core.String,
  [_borderRightWidth]: core.String,
  [_borderSpacing]: core.String,
  [_borderStyle]: core.String,
  [_borderTop]: core.String,
  [_borderTopColor]: core.String,
  [_borderTopStyle]: core.String,
  [_borderTopWidth]: core.String,
  [_borderWidth]: core.String,
  [_bottom]: core.String,
  [_captionSide]: core.String,
  [_clear$0]: core.String,
  [_clip]: core.String,
  [_color]: core.String,
  [_content]: core.String,
  [_cursor]: core.String,
  [_direction]: core.String,
  [_display]: core.String,
  [_emptyCells]: core.String,
  [_font]: core.String,
  [_fontFamily]: core.String,
  [_fontSize]: core.String,
  [_fontStyle]: core.String,
  [_fontVariant]: core.String,
  [_fontWeight]: core.String,
  [_height$]: core.String,
  [_left]: core.String,
  [_letterSpacing]: core.String,
  [_lineHeight]: core.String,
  [_listStyle]: core.String,
  [_listStyleImage]: core.String,
  [_listStylePosition]: core.String,
  [_listStyleType]: core.String,
  [_margin]: core.String,
  [_marginBottom]: core.String,
  [_marginLeft]: core.String,
  [_marginRight]: core.String,
  [_marginTop]: core.String,
  [_maxHeight]: core.String,
  [_maxWidth]: core.String,
  [_minHeight]: core.String,
  [_minWidth]: core.String,
  [_outline]: core.String,
  [_outlineColor]: core.String,
  [_outlineStyle]: core.String,
  [_outlineWidth]: core.String,
  [_overflow]: core.String,
  [_padding]: core.String,
  [_paddingBottom]: core.String,
  [_paddingLeft]: core.String,
  [_paddingRight]: core.String,
  [_paddingTop]: core.String,
  [_pageBreakAfter]: core.String,
  [_pageBreakBefore]: core.String,
  [_pageBreakInside]: core.String,
  [_position$0]: core.String,
  [_quotes]: core.String,
  [_right]: core.String,
  [_tableLayout]: core.String,
  [_textAlign]: core.String,
  [_textDecoration]: core.String,
  [_textIndent]: core.String,
  [_textTransform]: core.String,
  [_top]: core.String,
  [_unicodeBidi]: core.String,
  [_verticalAlign]: core.String,
  [_visibility]: core.String,
  [_whiteSpace]: core.String,
  [_width$]: core.String,
  [_wordSpacing]: core.String,
  [_zIndex]: core.String
}));
dart.setSetterSignature(html$.CssStyleDeclaration, () => ({
  __proto__: dart.getSetters(html$.CssStyleDeclaration.__proto__),
  [$cssFloat]: core.String,
  [$cssText]: core.String,
  [_background]: core.String,
  [_backgroundAttachment]: core.String,
  [_backgroundColor]: core.String,
  [_backgroundImage]: core.String,
  [_backgroundPosition]: core.String,
  [_backgroundRepeat]: core.String,
  [_border]: core.String,
  [_borderBottom]: core.String,
  [_borderBottomColor]: core.String,
  [_borderBottomStyle]: core.String,
  [_borderBottomWidth]: core.String,
  [_borderCollapse]: core.String,
  [_borderColor]: core.String,
  [_borderLeft]: core.String,
  [_borderLeftColor]: core.String,
  [_borderLeftStyle]: core.String,
  [_borderLeftWidth]: core.String,
  [_borderRight]: core.String,
  [_borderRightColor]: core.String,
  [_borderRightStyle]: core.String,
  [_borderRightWidth]: core.String,
  [_borderSpacing]: core.String,
  [_borderStyle]: core.String,
  [_borderTop]: core.String,
  [_borderTopColor]: core.String,
  [_borderTopStyle]: core.String,
  [_borderTopWidth]: core.String,
  [_borderWidth]: core.String,
  [_bottom]: core.String,
  [_captionSide]: core.String,
  [_clear$0]: core.String,
  [_clip]: core.String,
  [_color]: core.String,
  [_content]: core.String,
  [_cursor]: core.String,
  [_direction]: core.String,
  [_display]: core.String,
  [_emptyCells]: core.String,
  [_font]: core.String,
  [_fontFamily]: core.String,
  [_fontSize]: core.String,
  [_fontStyle]: core.String,
  [_fontVariant]: core.String,
  [_fontWeight]: core.String,
  [_height$]: core.String,
  [_left]: core.String,
  [_letterSpacing]: core.String,
  [_lineHeight]: core.String,
  [_listStyle]: core.String,
  [_listStyleImage]: core.String,
  [_listStylePosition]: core.String,
  [_listStyleType]: core.String,
  [_margin]: core.String,
  [_marginBottom]: core.String,
  [_marginLeft]: core.String,
  [_marginRight]: core.String,
  [_marginTop]: core.String,
  [_maxHeight]: core.String,
  [_maxWidth]: core.String,
  [_minHeight]: core.String,
  [_minWidth]: core.String,
  [_outline]: core.String,
  [_outlineColor]: core.String,
  [_outlineStyle]: core.String,
  [_outlineWidth]: core.String,
  [_overflow]: core.String,
  [_padding]: core.String,
  [_paddingBottom]: core.String,
  [_paddingLeft]: core.String,
  [_paddingRight]: core.String,
  [_paddingTop]: core.String,
  [_pageBreakAfter]: core.String,
  [_pageBreakBefore]: core.String,
  [_pageBreakInside]: core.String,
  [_position$0]: core.String,
  [_quotes]: core.String,
  [_right]: core.String,
  [_tableLayout]: core.String,
  [_textAlign]: core.String,
  [_textDecoration]: core.String,
  [_textIndent]: core.String,
  [_textTransform]: core.String,
  [_top]: core.String,
  [_unicodeBidi]: core.String,
  [_verticalAlign]: core.String,
  [_visibility]: core.String,
  [_whiteSpace]: core.String,
  [_width$]: core.String,
  [_wordSpacing]: core.String,
  [_zIndex]: core.String
}));
dart.setLibraryUri(html$.CssStyleDeclaration, L65);
dart.defineLazy(html$.CssStyleDeclaration, {
  /*html$.CssStyleDeclaration._propertyCache*/get _propertyCache() {
    return {};
  }
}, true);
dart.registerExtension("CSSStyleDeclaration", html$.CssStyleDeclaration);
dart.registerExtension("MSStyleCSSProperties", html$.CssStyleDeclaration);
dart.registerExtension("CSS2Properties", html$.CssStyleDeclaration);
var _elementCssStyleDeclarationSetIterable = dart.privateName(html$, "_elementCssStyleDeclarationSetIterable");
var _elementIterable$ = dart.privateName(html$, "_elementIterable");
var _setAll = dart.privateName(html$, "_setAll");
const Object_CssStyleDeclarationBase$36 = class Object_CssStyleDeclarationBase extends core.Object {};
(Object_CssStyleDeclarationBase$36.new = function() {
}).prototype = Object_CssStyleDeclarationBase$36.prototype;
dart.applyMixin(Object_CssStyleDeclarationBase$36, html$.CssStyleDeclarationBase);
html$._CssStyleDeclarationSet = class _CssStyleDeclarationSet extends Object_CssStyleDeclarationBase$36 {
  getPropertyValue(propertyName) {
    return this[_elementCssStyleDeclarationSetIterable][$first][$getPropertyValue](propertyName);
  }
  setProperty(propertyName, value, priority = null) {
    this[_elementCssStyleDeclarationSetIterable][$forEach](dart.fn(e => e[$setProperty](propertyName, value, priority), CssStyleDeclarationLTovoid()));
  }
  [_setAll](propertyName, value) {
    value = value == null ? "" : value;
    for (let element of this[_elementIterable$]) {
      element.style[propertyName] = value;
    }
  }
  set background(value) {
    this[_setAll]("background", value);
  }
  get background() {
    return super.background;
  }
  set backgroundAttachment(value) {
    this[_setAll]("backgroundAttachment", value);
  }
  get backgroundAttachment() {
    return super.backgroundAttachment;
  }
  set backgroundColor(value) {
    this[_setAll]("backgroundColor", value);
  }
  get backgroundColor() {
    return super.backgroundColor;
  }
  set backgroundImage(value) {
    this[_setAll]("backgroundImage", value);
  }
  get backgroundImage() {
    return super.backgroundImage;
  }
  set backgroundPosition(value) {
    this[_setAll]("backgroundPosition", value);
  }
  get backgroundPosition() {
    return super.backgroundPosition;
  }
  set backgroundRepeat(value) {
    this[_setAll]("backgroundRepeat", value);
  }
  get backgroundRepeat() {
    return super.backgroundRepeat;
  }
  set border(value) {
    this[_setAll]("border", value);
  }
  get border() {
    return super.border;
  }
  set borderBottom(value) {
    this[_setAll]("borderBottom", value);
  }
  get borderBottom() {
    return super.borderBottom;
  }
  set borderBottomColor(value) {
    this[_setAll]("borderBottomColor", value);
  }
  get borderBottomColor() {
    return super.borderBottomColor;
  }
  set borderBottomStyle(value) {
    this[_setAll]("borderBottomStyle", value);
  }
  get borderBottomStyle() {
    return super.borderBottomStyle;
  }
  set borderBottomWidth(value) {
    this[_setAll]("borderBottomWidth", value);
  }
  get borderBottomWidth() {
    return super.borderBottomWidth;
  }
  set borderCollapse(value) {
    this[_setAll]("borderCollapse", value);
  }
  get borderCollapse() {
    return super.borderCollapse;
  }
  set borderColor(value) {
    this[_setAll]("borderColor", value);
  }
  get borderColor() {
    return super.borderColor;
  }
  set borderLeft(value) {
    this[_setAll]("borderLeft", value);
  }
  get borderLeft() {
    return super.borderLeft;
  }
  set borderLeftColor(value) {
    this[_setAll]("borderLeftColor", value);
  }
  get borderLeftColor() {
    return super.borderLeftColor;
  }
  set borderLeftStyle(value) {
    this[_setAll]("borderLeftStyle", value);
  }
  get borderLeftStyle() {
    return super.borderLeftStyle;
  }
  set borderLeftWidth(value) {
    this[_setAll]("borderLeftWidth", value);
  }
  get borderLeftWidth() {
    return super.borderLeftWidth;
  }
  set borderRight(value) {
    this[_setAll]("borderRight", value);
  }
  get borderRight() {
    return super.borderRight;
  }
  set borderRightColor(value) {
    this[_setAll]("borderRightColor", value);
  }
  get borderRightColor() {
    return super.borderRightColor;
  }
  set borderRightStyle(value) {
    this[_setAll]("borderRightStyle", value);
  }
  get borderRightStyle() {
    return super.borderRightStyle;
  }
  set borderRightWidth(value) {
    this[_setAll]("borderRightWidth", value);
  }
  get borderRightWidth() {
    return super.borderRightWidth;
  }
  set borderSpacing(value) {
    this[_setAll]("borderSpacing", value);
  }
  get borderSpacing() {
    return super.borderSpacing;
  }
  set borderStyle(value) {
    this[_setAll]("borderStyle", value);
  }
  get borderStyle() {
    return super.borderStyle;
  }
  set borderTop(value) {
    this[_setAll]("borderTop", value);
  }
  get borderTop() {
    return super.borderTop;
  }
  set borderTopColor(value) {
    this[_setAll]("borderTopColor", value);
  }
  get borderTopColor() {
    return super.borderTopColor;
  }
  set borderTopStyle(value) {
    this[_setAll]("borderTopStyle", value);
  }
  get borderTopStyle() {
    return super.borderTopStyle;
  }
  set borderTopWidth(value) {
    this[_setAll]("borderTopWidth", value);
  }
  get borderTopWidth() {
    return super.borderTopWidth;
  }
  set borderWidth(value) {
    this[_setAll]("borderWidth", value);
  }
  get borderWidth() {
    return super.borderWidth;
  }
  set bottom(value) {
    this[_setAll]("bottom", value);
  }
  get bottom() {
    return super.bottom;
  }
  set captionSide(value) {
    this[_setAll]("captionSide", value);
  }
  get captionSide() {
    return super.captionSide;
  }
  set clear(value) {
    this[_setAll]("clear", value);
  }
  get clear() {
    return super.clear;
  }
  set clip(value) {
    this[_setAll]("clip", value);
  }
  get clip() {
    return super.clip;
  }
  set color(value) {
    this[_setAll]("color", value);
  }
  get color() {
    return super.color;
  }
  set content(value) {
    this[_setAll]("content", value);
  }
  get content() {
    return super.content;
  }
  set cursor(value) {
    this[_setAll]("cursor", value);
  }
  get cursor() {
    return super.cursor;
  }
  set direction(value) {
    this[_setAll]("direction", value);
  }
  get direction() {
    return super.direction;
  }
  set display(value) {
    this[_setAll]("display", value);
  }
  get display() {
    return super.display;
  }
  set emptyCells(value) {
    this[_setAll]("emptyCells", value);
  }
  get emptyCells() {
    return super.emptyCells;
  }
  set font(value) {
    this[_setAll]("font", value);
  }
  get font() {
    return super.font;
  }
  set fontFamily(value) {
    this[_setAll]("fontFamily", value);
  }
  get fontFamily() {
    return super.fontFamily;
  }
  set fontSize(value) {
    this[_setAll]("fontSize", value);
  }
  get fontSize() {
    return super.fontSize;
  }
  set fontStyle(value) {
    this[_setAll]("fontStyle", value);
  }
  get fontStyle() {
    return super.fontStyle;
  }
  set fontVariant(value) {
    this[_setAll]("fontVariant", value);
  }
  get fontVariant() {
    return super.fontVariant;
  }
  set fontWeight(value) {
    this[_setAll]("fontWeight", value);
  }
  get fontWeight() {
    return super.fontWeight;
  }
  set height(value) {
    this[_setAll]("height", value);
  }
  get height() {
    return super.height;
  }
  set left(value) {
    this[_setAll]("left", value);
  }
  get left() {
    return super.left;
  }
  set letterSpacing(value) {
    this[_setAll]("letterSpacing", value);
  }
  get letterSpacing() {
    return super.letterSpacing;
  }
  set lineHeight(value) {
    this[_setAll]("lineHeight", value);
  }
  get lineHeight() {
    return super.lineHeight;
  }
  set listStyle(value) {
    this[_setAll]("listStyle", value);
  }
  get listStyle() {
    return super.listStyle;
  }
  set listStyleImage(value) {
    this[_setAll]("listStyleImage", value);
  }
  get listStyleImage() {
    return super.listStyleImage;
  }
  set listStylePosition(value) {
    this[_setAll]("listStylePosition", value);
  }
  get listStylePosition() {
    return super.listStylePosition;
  }
  set listStyleType(value) {
    this[_setAll]("listStyleType", value);
  }
  get listStyleType() {
    return super.listStyleType;
  }
  set margin(value) {
    this[_setAll]("margin", value);
  }
  get margin() {
    return super.margin;
  }
  set marginBottom(value) {
    this[_setAll]("marginBottom", value);
  }
  get marginBottom() {
    return super.marginBottom;
  }
  set marginLeft(value) {
    this[_setAll]("marginLeft", value);
  }
  get marginLeft() {
    return super.marginLeft;
  }
  set marginRight(value) {
    this[_setAll]("marginRight", value);
  }
  get marginRight() {
    return super.marginRight;
  }
  set marginTop(value) {
    this[_setAll]("marginTop", value);
  }
  get marginTop() {
    return super.marginTop;
  }
  set maxHeight(value) {
    this[_setAll]("maxHeight", value);
  }
  get maxHeight() {
    return super.maxHeight;
  }
  set maxWidth(value) {
    this[_setAll]("maxWidth", value);
  }
  get maxWidth() {
    return super.maxWidth;
  }
  set minHeight(value) {
    this[_setAll]("minHeight", value);
  }
  get minHeight() {
    return super.minHeight;
  }
  set minWidth(value) {
    this[_setAll]("minWidth", value);
  }
  get minWidth() {
    return super.minWidth;
  }
  set outline(value) {
    this[_setAll]("outline", value);
  }
  get outline() {
    return super.outline;
  }
  set outlineColor(value) {
    this[_setAll]("outlineColor", value);
  }
  get outlineColor() {
    return super.outlineColor;
  }
  set outlineStyle(value) {
    this[_setAll]("outlineStyle", value);
  }
  get outlineStyle() {
    return super.outlineStyle;
  }
  set outlineWidth(value) {
    this[_setAll]("outlineWidth", value);
  }
  get outlineWidth() {
    return super.outlineWidth;
  }
  set overflow(value) {
    this[_setAll]("overflow", value);
  }
  get overflow() {
    return super.overflow;
  }
  set padding(value) {
    this[_setAll]("padding", value);
  }
  get padding() {
    return super.padding;
  }
  set paddingBottom(value) {
    this[_setAll]("paddingBottom", value);
  }
  get paddingBottom() {
    return super.paddingBottom;
  }
  set paddingLeft(value) {
    this[_setAll]("paddingLeft", value);
  }
  get paddingLeft() {
    return super.paddingLeft;
  }
  set paddingRight(value) {
    this[_setAll]("paddingRight", value);
  }
  get paddingRight() {
    return super.paddingRight;
  }
  set paddingTop(value) {
    this[_setAll]("paddingTop", value);
  }
  get paddingTop() {
    return super.paddingTop;
  }
  set pageBreakAfter(value) {
    this[_setAll]("pageBreakAfter", value);
  }
  get pageBreakAfter() {
    return super.pageBreakAfter;
  }
  set pageBreakBefore(value) {
    this[_setAll]("pageBreakBefore", value);
  }
  get pageBreakBefore() {
    return super.pageBreakBefore;
  }
  set pageBreakInside(value) {
    this[_setAll]("pageBreakInside", value);
  }
  get pageBreakInside() {
    return super.pageBreakInside;
  }
  set position(value) {
    this[_setAll]("position", value);
  }
  get position() {
    return super.position;
  }
  set quotes(value) {
    this[_setAll]("quotes", value);
  }
  get quotes() {
    return super.quotes;
  }
  set right(value) {
    this[_setAll]("right", value);
  }
  get right() {
    return super.right;
  }
  set tableLayout(value) {
    this[_setAll]("tableLayout", value);
  }
  get tableLayout() {
    return super.tableLayout;
  }
  set textAlign(value) {
    this[_setAll]("textAlign", value);
  }
  get textAlign() {
    return super.textAlign;
  }
  set textDecoration(value) {
    this[_setAll]("textDecoration", value);
  }
  get textDecoration() {
    return super.textDecoration;
  }
  set textIndent(value) {
    this[_setAll]("textIndent", value);
  }
  get textIndent() {
    return super.textIndent;
  }
  set textTransform(value) {
    this[_setAll]("textTransform", value);
  }
  get textTransform() {
    return super.textTransform;
  }
  set top(value) {
    this[_setAll]("top", value);
  }
  get top() {
    return super.top;
  }
  set unicodeBidi(value) {
    this[_setAll]("unicodeBidi", value);
  }
  get unicodeBidi() {
    return super.unicodeBidi;
  }
  set verticalAlign(value) {
    this[_setAll]("verticalAlign", value);
  }
  get verticalAlign() {
    return super.verticalAlign;
  }
  set visibility(value) {
    this[_setAll]("visibility", value);
  }
  get visibility() {
    return super.visibility;
  }
  set whiteSpace(value) {
    this[_setAll]("whiteSpace", value);
  }
  get whiteSpace() {
    return super.whiteSpace;
  }
  set width(value) {
    this[_setAll]("width", value);
  }
  get width() {
    return super.width;
  }
  set wordSpacing(value) {
    this[_setAll]("wordSpacing", value);
  }
  get wordSpacing() {
    return super.wordSpacing;
  }
  set zIndex(value) {
    this[_setAll]("zIndex", value);
  }
  get zIndex() {
    return super.zIndex;
  }
};
(html$._CssStyleDeclarationSet.new = function(_elementIterable) {
  this[_elementCssStyleDeclarationSetIterable] = null;
  this[_elementIterable$] = _elementIterable;
  this[_elementCssStyleDeclarationSetIterable] = core.List.from(this[_elementIterable$])[$map](html$.CssStyleDeclaration, dart.fn(e => html$.CssStyleDeclaration.as(dart.dload(e, 'style')), dynamicToCssStyleDeclarationL()));
}).prototype = html$._CssStyleDeclarationSet.prototype;
dart.addTypeTests(html$._CssStyleDeclarationSet);
dart.addTypeCaches(html$._CssStyleDeclarationSet);
dart.setMethodSignature(html$._CssStyleDeclarationSet, () => ({
  __proto__: dart.getMethods(html$._CssStyleDeclarationSet.__proto__),
  getPropertyValue: dart.fnType(core.String, [core.String]),
  [$getPropertyValue]: dart.fnType(core.String, [core.String]),
  setProperty: dart.fnType(dart.void, [core.String, core.String], [core.String]),
  [$setProperty]: dart.fnType(dart.void, [core.String, core.String], [core.String]),
  [_setAll]: dart.fnType(dart.void, [core.String, core.String])
}));
dart.setLibraryUri(html$._CssStyleDeclarationSet, L65);
dart.setFieldSignature(html$._CssStyleDeclarationSet, () => ({
  __proto__: dart.getFields(html$._CssStyleDeclarationSet.__proto__),
  [_elementIterable$]: dart.finalFieldType(core.Iterable$(html$.Element)),
  [_elementCssStyleDeclarationSetIterable]: dart.fieldType(core.Iterable$(html$.CssStyleDeclaration))
}));
dart.defineExtensionMethods(html$._CssStyleDeclarationSet, ['getPropertyValue', 'setProperty']);
dart.defineExtensionAccessors(html$._CssStyleDeclarationSet, [
  'background',
  'backgroundAttachment',
  'backgroundColor',
  'backgroundImage',
  'backgroundPosition',
  'backgroundRepeat',
  'border',
  'borderBottom',
  'borderBottomColor',
  'borderBottomStyle',
  'borderBottomWidth',
  'borderCollapse',
  'borderColor',
  'borderLeft',
  'borderLeftColor',
  'borderLeftStyle',
  'borderLeftWidth',
  'borderRight',
  'borderRightColor',
  'borderRightStyle',
  'borderRightWidth',
  'borderSpacing',
  'borderStyle',
  'borderTop',
  'borderTopColor',
  'borderTopStyle',
  'borderTopWidth',
  'borderWidth',
  'bottom',
  'captionSide',
  'clear',
  'clip',
  'color',
  'content',
  'cursor',
  'direction',
  'display',
  'emptyCells',
  'font',
  'fontFamily',
  'fontSize',
  'fontStyle',
  'fontVariant',
  'fontWeight',
  'height',
  'left',
  'letterSpacing',
  'lineHeight',
  'listStyle',
  'listStyleImage',
  'listStylePosition',
  'listStyleType',
  'margin',
  'marginBottom',
  'marginLeft',
  'marginRight',
  'marginTop',
  'maxHeight',
  'maxWidth',
  'minHeight',
  'minWidth',
  'outline',
  'outlineColor',
  'outlineStyle',
  'outlineWidth',
  'overflow',
  'padding',
  'paddingBottom',
  'paddingLeft',
  'paddingRight',
  'paddingTop',
  'pageBreakAfter',
  'pageBreakBefore',
  'pageBreakInside',
  'position',
  'quotes',
  'right',
  'tableLayout',
  'textAlign',
  'textDecoration',
  'textIndent',
  'textTransform',
  'top',
  'unicodeBidi',
  'verticalAlign',
  'visibility',
  'whiteSpace',
  'width',
  'wordSpacing',
  'zIndex'
]);
html$.CssStyleRule = class CssStyleRule extends html$.CssRule {
  get [$selectorText]() {
    return this.selectorText;
  }
  set [$selectorText](value) {
    this.selectorText = value;
  }
  get [$style]() {
    return this.style;
  }
};
dart.addTypeTests(html$.CssStyleRule);
dart.addTypeCaches(html$.CssStyleRule);
dart.setGetterSignature(html$.CssStyleRule, () => ({
  __proto__: dart.getGetters(html$.CssStyleRule.__proto__),
  [$selectorText]: core.String,
  [$style]: html$.CssStyleDeclaration
}));
dart.setSetterSignature(html$.CssStyleRule, () => ({
  __proto__: dart.getSetters(html$.CssStyleRule.__proto__),
  [$selectorText]: core.String
}));
dart.setLibraryUri(html$.CssStyleRule, L65);
dart.registerExtension("CSSStyleRule", html$.CssStyleRule);
html$.StyleSheet = class StyleSheet extends _interceptors.Interceptor {
  get [$disabled]() {
    return this.disabled;
  }
  set [$disabled](value) {
    this.disabled = value;
  }
  get [$href]() {
    return this.href;
  }
  get [$media]() {
    return this.media;
  }
  get [$ownerNode]() {
    return this.ownerNode;
  }
  get [$parentStyleSheet]() {
    return this.parentStyleSheet;
  }
  get [$title]() {
    return this.title;
  }
  get [$type]() {
    return this.type;
  }
};
dart.addTypeTests(html$.StyleSheet);
dart.addTypeCaches(html$.StyleSheet);
dart.setGetterSignature(html$.StyleSheet, () => ({
  __proto__: dart.getGetters(html$.StyleSheet.__proto__),
  [$disabled]: core.bool,
  [$href]: core.String,
  [$media]: html$.MediaList,
  [$ownerNode]: html$.Node,
  [$parentStyleSheet]: html$.StyleSheet,
  [$title]: core.String,
  [$type]: core.String
}));
dart.setSetterSignature(html$.StyleSheet, () => ({
  __proto__: dart.getSetters(html$.StyleSheet.__proto__),
  [$disabled]: core.bool
}));
dart.setLibraryUri(html$.StyleSheet, L65);
dart.registerExtension("StyleSheet", html$.StyleSheet);
html$.CssStyleSheet = class CssStyleSheet extends html$.StyleSheet {
  get [$cssRules]() {
    return this.cssRules;
  }
  get [$ownerRule]() {
    return this.ownerRule;
  }
  get [$rules]() {
    return this.rules;
  }
  [$addRule](...args) {
    return this.addRule.apply(this, args);
  }
  [$deleteRule](...args) {
    return this.deleteRule.apply(this, args);
  }
  [$insertRule](...args) {
    return this.insertRule.apply(this, args);
  }
  [$removeRule](...args) {
    return this.removeRule.apply(this, args);
  }
};
dart.addTypeTests(html$.CssStyleSheet);
dart.addTypeCaches(html$.CssStyleSheet);
dart.setMethodSignature(html$.CssStyleSheet, () => ({
  __proto__: dart.getMethods(html$.CssStyleSheet.__proto__),
  [$addRule]: dart.fnType(core.int, [core.String, core.String], [core.int]),
  [$deleteRule]: dart.fnType(dart.void, [core.int]),
  [$insertRule]: dart.fnType(core.int, [core.String], [core.int]),
  [$removeRule]: dart.fnType(dart.void, [core.int])
}));
dart.setGetterSignature(html$.CssStyleSheet, () => ({
  __proto__: dart.getGetters(html$.CssStyleSheet.__proto__),
  [$cssRules]: core.List$(html$.CssRule),
  [$ownerRule]: html$.CssRule,
  [$rules]: core.List$(html$.CssRule)
}));
dart.setLibraryUri(html$.CssStyleSheet, L65);
dart.registerExtension("CSSStyleSheet", html$.CssStyleSheet);
html$.CssSupportsRule = class CssSupportsRule extends html$.CssConditionRule {};
dart.addTypeTests(html$.CssSupportsRule);
dart.addTypeCaches(html$.CssSupportsRule);
dart.setLibraryUri(html$.CssSupportsRule, L65);
dart.registerExtension("CSSSupportsRule", html$.CssSupportsRule);
html$.CssTransformValue = class CssTransformValue extends html$.CssStyleValue {
  static new(transformComponents = null) {
    if (transformComponents == null) {
      return html$.CssTransformValue._create_1();
    }
    if (ListOfCssTransformComponentL().is(transformComponents)) {
      return html$.CssTransformValue._create_2(transformComponents);
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  static _create_1() {
    return new CSSTransformValue();
  }
  static _create_2(transformComponents) {
    return new CSSTransformValue(transformComponents);
  }
  get [$is2D]() {
    return this.is2D;
  }
  get [$length]() {
    return this.length;
  }
  [$componentAtIndex](...args) {
    return this.componentAtIndex.apply(this, args);
  }
  [$toMatrix](...args) {
    return this.toMatrix.apply(this, args);
  }
};
dart.addTypeTests(html$.CssTransformValue);
dart.addTypeCaches(html$.CssTransformValue);
dart.setMethodSignature(html$.CssTransformValue, () => ({
  __proto__: dart.getMethods(html$.CssTransformValue.__proto__),
  [$componentAtIndex]: dart.fnType(html$.CssTransformComponent, [core.int]),
  [$toMatrix]: dart.fnType(html$.DomMatrix, [])
}));
dart.setGetterSignature(html$.CssTransformValue, () => ({
  __proto__: dart.getGetters(html$.CssTransformValue.__proto__),
  [$is2D]: core.bool,
  [$length]: core.int
}));
dart.setLibraryUri(html$.CssTransformValue, L65);
dart.registerExtension("CSSTransformValue", html$.CssTransformValue);
html$.CssTranslation = class CssTranslation extends html$.CssTransformComponent {
  static new(x, y, z = null) {
    if (html$.CssNumericValue.is(y) && html$.CssNumericValue.is(x) && z == null) {
      return html$.CssTranslation._create_1(x, y);
    }
    if (html$.CssNumericValue.is(z) && html$.CssNumericValue.is(y) && html$.CssNumericValue.is(x)) {
      return html$.CssTranslation._create_2(x, y, z);
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  static _create_1(x, y) {
    return new CSSTranslation(x, y);
  }
  static _create_2(x, y, z) {
    return new CSSTranslation(x, y, z);
  }
  get [$x]() {
    return this.x;
  }
  set [$x](value) {
    this.x = value;
  }
  get [$y]() {
    return this.y;
  }
  set [$y](value) {
    this.y = value;
  }
  get [$z]() {
    return this.z;
  }
  set [$z](value) {
    this.z = value;
  }
};
dart.addTypeTests(html$.CssTranslation);
dart.addTypeCaches(html$.CssTranslation);
dart.setGetterSignature(html$.CssTranslation, () => ({
  __proto__: dart.getGetters(html$.CssTranslation.__proto__),
  [$x]: html$.CssNumericValue,
  [$y]: html$.CssNumericValue,
  [$z]: html$.CssNumericValue
}));
dart.setSetterSignature(html$.CssTranslation, () => ({
  __proto__: dart.getSetters(html$.CssTranslation.__proto__),
  [$x]: html$.CssNumericValue,
  [$y]: html$.CssNumericValue,
  [$z]: html$.CssNumericValue
}));
dart.setLibraryUri(html$.CssTranslation, L65);
dart.registerExtension("CSSTranslation", html$.CssTranslation);
html$.CssUnitValue = class CssUnitValue extends html$.CssNumericValue {
  static new(value, unit) {
    return html$.CssUnitValue._create_1(value, unit);
  }
  static _create_1(value, unit) {
    return new CSSUnitValue(value, unit);
  }
  get [$type]() {
    return this.type;
  }
  get [$unit]() {
    return this.unit;
  }
  set [$unit](value) {
    this.unit = value;
  }
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
};
dart.addTypeTests(html$.CssUnitValue);
dart.addTypeCaches(html$.CssUnitValue);
dart.setGetterSignature(html$.CssUnitValue, () => ({
  __proto__: dart.getGetters(html$.CssUnitValue.__proto__),
  [$type]: core.String,
  [$unit]: core.String,
  [$value]: core.num
}));
dart.setSetterSignature(html$.CssUnitValue, () => ({
  __proto__: dart.getSetters(html$.CssUnitValue.__proto__),
  [$unit]: core.String,
  [$value]: core.num
}));
dart.setLibraryUri(html$.CssUnitValue, L65);
dart.registerExtension("CSSUnitValue", html$.CssUnitValue);
html$.CssUnparsedValue = class CssUnparsedValue extends html$.CssStyleValue {
  get [$length]() {
    return this.length;
  }
  [$fragmentAtIndex](...args) {
    return this.fragmentAtIndex.apply(this, args);
  }
};
dart.addTypeTests(html$.CssUnparsedValue);
dart.addTypeCaches(html$.CssUnparsedValue);
dart.setMethodSignature(html$.CssUnparsedValue, () => ({
  __proto__: dart.getMethods(html$.CssUnparsedValue.__proto__),
  [$fragmentAtIndex]: dart.fnType(core.Object, [core.int])
}));
dart.setGetterSignature(html$.CssUnparsedValue, () => ({
  __proto__: dart.getGetters(html$.CssUnparsedValue.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$.CssUnparsedValue, L65);
dart.registerExtension("CSSUnparsedValue", html$.CssUnparsedValue);
html$.CssVariableReferenceValue = class CssVariableReferenceValue extends _interceptors.Interceptor {
  get [$fallback]() {
    return this.fallback;
  }
  get [$variable]() {
    return this.variable;
  }
};
dart.addTypeTests(html$.CssVariableReferenceValue);
dart.addTypeCaches(html$.CssVariableReferenceValue);
dart.setGetterSignature(html$.CssVariableReferenceValue, () => ({
  __proto__: dart.getGetters(html$.CssVariableReferenceValue.__proto__),
  [$fallback]: html$.CssUnparsedValue,
  [$variable]: core.String
}));
dart.setLibraryUri(html$.CssVariableReferenceValue, L65);
dart.registerExtension("CSSVariableReferenceValue", html$.CssVariableReferenceValue);
html$.CssViewportRule = class CssViewportRule extends html$.CssRule {
  get [$style]() {
    return this.style;
  }
};
dart.addTypeTests(html$.CssViewportRule);
dart.addTypeCaches(html$.CssViewportRule);
dart.setGetterSignature(html$.CssViewportRule, () => ({
  __proto__: dart.getGetters(html$.CssViewportRule.__proto__),
  [$style]: html$.CssStyleDeclaration
}));
dart.setLibraryUri(html$.CssViewportRule, L65);
dart.registerExtension("CSSViewportRule", html$.CssViewportRule);
html$.CssurlImageValue = class CssurlImageValue extends html$.CssImageValue {
  static new(url) {
    return html$.CssurlImageValue._create_1(url);
  }
  static _create_1(url) {
    return new CSSURLImageValue(url);
  }
  get [$url]() {
    return this.url;
  }
};
dart.addTypeTests(html$.CssurlImageValue);
dart.addTypeCaches(html$.CssurlImageValue);
dart.setGetterSignature(html$.CssurlImageValue, () => ({
  __proto__: dart.getGetters(html$.CssurlImageValue.__proto__),
  [$url]: core.String
}));
dart.setLibraryUri(html$.CssurlImageValue, L65);
dart.registerExtension("CSSURLImageValue", html$.CssurlImageValue);
var _define_1 = dart.privateName(html$, "_define_1");
var _define_2 = dart.privateName(html$, "_define_2");
html$.CustomElementRegistry = class CustomElementRegistry extends _interceptors.Interceptor {
  [$define](name, constructor, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      this[_define_1](name, constructor, options_1);
      return;
    }
    this[_define_2](name, constructor);
    return;
  }
  [_define_1](...args) {
    return this.define.apply(this, args);
  }
  [_define_2](...args) {
    return this.define.apply(this, args);
  }
  [$get](...args) {
    return this.get.apply(this, args);
  }
  [$whenDefined](name) {
    return js_util.promiseToFuture(dart.dynamic, this.whenDefined(name));
  }
};
dart.addTypeTests(html$.CustomElementRegistry);
dart.addTypeCaches(html$.CustomElementRegistry);
dart.setMethodSignature(html$.CustomElementRegistry, () => ({
  __proto__: dart.getMethods(html$.CustomElementRegistry.__proto__),
  [$define]: dart.fnType(dart.void, [core.String, core.Object], [core.Map]),
  [_define_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
  [_define_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic]),
  [$get]: dart.fnType(core.Object, [core.String]),
  [$whenDefined]: dart.fnType(async.Future, [core.String])
}));
dart.setLibraryUri(html$.CustomElementRegistry, L65);
dart.registerExtension("CustomElementRegistry", html$.CustomElementRegistry);
var _dartDetail = dart.privateName(html$, "_dartDetail");
var _initCustomEvent = dart.privateName(html$, "_initCustomEvent");
var _detail = dart.privateName(html$, "_detail");
var _get__detail = dart.privateName(html$, "_get__detail");
html$.CustomEvent = class CustomEvent$ extends html$.Event {
  get [_dartDetail]() {
    return this._dartDetail;
  }
  set [_dartDetail](value) {
    this._dartDetail = value;
  }
  static new(type, opts) {
    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
    let detail = opts && 'detail' in opts ? opts.detail : null;
    let e = html$.CustomEvent.as(html$.document[_createEvent]("CustomEvent"));
    e[_dartDetail] = detail;
    if (core.List.is(detail) || core.Map.is(detail) || typeof detail == 'string' || typeof detail == 'number') {
      try {
        detail = html_common.convertDartToNative_SerializedScriptValue(detail);
        e[_initCustomEvent](type, canBubble, cancelable, detail);
      } catch (e$) {
        let _ = dart.getThrown(e$);
        e[_initCustomEvent](type, canBubble, cancelable, null);
      }
    } else {
      e[_initCustomEvent](type, canBubble, cancelable, null);
    }
    return e;
  }
  get [$detail]() {
    if (this[_dartDetail] != null) {
      return this[_dartDetail];
    }
    return this[_detail];
  }
  static __(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.CustomEvent._create_1(type, eventInitDict_1);
    }
    return html$.CustomEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new CustomEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new CustomEvent(type);
  }
  get [_detail]() {
    return html_common.convertNativeToDart_SerializedScriptValue(this[_get__detail]);
  }
  get [_get__detail]() {
    return this.detail;
  }
  [_initCustomEvent](...args) {
    return this.initCustomEvent.apply(this, args);
  }
};
dart.addTypeTests(html$.CustomEvent);
dart.addTypeCaches(html$.CustomEvent);
dart.setMethodSignature(html$.CustomEvent, () => ({
  __proto__: dart.getMethods(html$.CustomEvent.__proto__),
  [_initCustomEvent]: dart.fnType(dart.void, [core.String], [core.bool, core.bool, core.Object])
}));
dart.setGetterSignature(html$.CustomEvent, () => ({
  __proto__: dart.getGetters(html$.CustomEvent.__proto__),
  [$detail]: dart.dynamic,
  [_detail]: dart.dynamic,
  [_get__detail]: dart.dynamic
}));
dart.setLibraryUri(html$.CustomEvent, L65);
dart.setFieldSignature(html$.CustomEvent, () => ({
  __proto__: dart.getFields(html$.CustomEvent.__proto__),
  [_dartDetail]: dart.fieldType(dart.dynamic)
}));
dart.registerExtension("CustomEvent", html$.CustomEvent);
html$.DListElement = class DListElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("dl");
  }
};
(html$.DListElement.created = function() {
  html$.DListElement.__proto__.created.call(this);
  ;
}).prototype = html$.DListElement.prototype;
dart.addTypeTests(html$.DListElement);
dart.addTypeCaches(html$.DListElement);
dart.setLibraryUri(html$.DListElement, L65);
dart.registerExtension("HTMLDListElement", html$.DListElement);
html$.DataElement = class DataElement extends html$.HtmlElement {
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
};
(html$.DataElement.created = function() {
  html$.DataElement.__proto__.created.call(this);
  ;
}).prototype = html$.DataElement.prototype;
dart.addTypeTests(html$.DataElement);
dart.addTypeCaches(html$.DataElement);
dart.setGetterSignature(html$.DataElement, () => ({
  __proto__: dart.getGetters(html$.DataElement.__proto__),
  [$value]: core.String
}));
dart.setSetterSignature(html$.DataElement, () => ({
  __proto__: dart.getSetters(html$.DataElement.__proto__),
  [$value]: core.String
}));
dart.setLibraryUri(html$.DataElement, L65);
dart.registerExtension("HTMLDataElement", html$.DataElement);
html$.DataListElement = class DataListElement extends html$.HtmlElement {
  static new() {
    return html$.DataListElement.as(html$.document[$createElement]("datalist"));
  }
  static get supported() {
    return html$.Element.isTagSupported("datalist");
  }
  get [$options]() {
    return this.options;
  }
};
(html$.DataListElement.created = function() {
  html$.DataListElement.__proto__.created.call(this);
  ;
}).prototype = html$.DataListElement.prototype;
dart.addTypeTests(html$.DataListElement);
dart.addTypeCaches(html$.DataListElement);
dart.setGetterSignature(html$.DataListElement, () => ({
  __proto__: dart.getGetters(html$.DataListElement.__proto__),
  [$options]: core.List$(html$.Node)
}));
dart.setLibraryUri(html$.DataListElement, L65);
dart.registerExtension("HTMLDataListElement", html$.DataListElement);
html$.DataTransfer = class DataTransfer$ extends _interceptors.Interceptor {
  static new() {
    return html$.DataTransfer._create_1();
  }
  static _create_1() {
    return new DataTransfer();
  }
  get [$dropEffect]() {
    return this.dropEffect;
  }
  set [$dropEffect](value) {
    this.dropEffect = value;
  }
  get [$effectAllowed]() {
    return this.effectAllowed;
  }
  set [$effectAllowed](value) {
    this.effectAllowed = value;
  }
  get [$files]() {
    return this.files;
  }
  get [$items]() {
    return this.items;
  }
  get [$types]() {
    return this.types;
  }
  [$clearData](...args) {
    return this.clearData.apply(this, args);
  }
  [$getData](...args) {
    return this.getData.apply(this, args);
  }
  [$setData](...args) {
    return this.setData.apply(this, args);
  }
  [$setDragImage](...args) {
    return this.setDragImage.apply(this, args);
  }
};
dart.addTypeTests(html$.DataTransfer);
dart.addTypeCaches(html$.DataTransfer);
dart.setMethodSignature(html$.DataTransfer, () => ({
  __proto__: dart.getMethods(html$.DataTransfer.__proto__),
  [$clearData]: dart.fnType(dart.void, [], [core.String]),
  [$getData]: dart.fnType(core.String, [core.String]),
  [$setData]: dart.fnType(dart.void, [core.String, core.String]),
  [$setDragImage]: dart.fnType(dart.void, [html$.Element, core.int, core.int])
}));
dart.setGetterSignature(html$.DataTransfer, () => ({
  __proto__: dart.getGetters(html$.DataTransfer.__proto__),
  [$dropEffect]: core.String,
  [$effectAllowed]: core.String,
  [$files]: core.List$(html$.File),
  [$items]: html$.DataTransferItemList,
  [$types]: core.List$(core.String)
}));
dart.setSetterSignature(html$.DataTransfer, () => ({
  __proto__: dart.getSetters(html$.DataTransfer.__proto__),
  [$dropEffect]: core.String,
  [$effectAllowed]: core.String
}));
dart.setLibraryUri(html$.DataTransfer, L65);
dart.registerExtension("DataTransfer", html$.DataTransfer);
var _webkitGetAsEntry = dart.privateName(html$, "_webkitGetAsEntry");
html$.DataTransferItem = class DataTransferItem extends _interceptors.Interceptor {
  [$getAsEntry]() {
    let entry = this[_webkitGetAsEntry]();
    if (dart.test(entry.isFile))
      _js_helper.applyExtension("FileEntry", entry);
    else if (dart.test(entry.isDirectory))
      _js_helper.applyExtension("DirectoryEntry", entry);
    else
      _js_helper.applyExtension("Entry", entry);
    return entry;
  }
  get [$kind]() {
    return this.kind;
  }
  get [$type]() {
    return this.type;
  }
  [$getAsFile](...args) {
    return this.getAsFile.apply(this, args);
  }
  [_webkitGetAsEntry](...args) {
    return this.webkitGetAsEntry.apply(this, args);
  }
};
dart.addTypeTests(html$.DataTransferItem);
dart.addTypeCaches(html$.DataTransferItem);
dart.setMethodSignature(html$.DataTransferItem, () => ({
  __proto__: dart.getMethods(html$.DataTransferItem.__proto__),
  [$getAsEntry]: dart.fnType(html$.Entry, []),
  [$getAsFile]: dart.fnType(html$.File, []),
  [_webkitGetAsEntry]: dart.fnType(html$.Entry, [])
}));
dart.setGetterSignature(html$.DataTransferItem, () => ({
  __proto__: dart.getGetters(html$.DataTransferItem.__proto__),
  [$kind]: core.String,
  [$type]: core.String
}));
dart.setLibraryUri(html$.DataTransferItem, L65);
dart.registerExtension("DataTransferItem", html$.DataTransferItem);
html$.DataTransferItemList = class DataTransferItemList extends _interceptors.Interceptor {
  get [$length]() {
    return this.length;
  }
  [$add](...args) {
    return this.add.apply(this, args);
  }
  [$addData](...args) {
    return this.add.apply(this, args);
  }
  [$addFile](...args) {
    return this.add.apply(this, args);
  }
  [$clear](...args) {
    return this.clear.apply(this, args);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
  [$remove](...args) {
    return this.remove.apply(this, args);
  }
  [$_get](index) {
    return this[index];
  }
};
dart.addTypeTests(html$.DataTransferItemList);
dart.addTypeCaches(html$.DataTransferItemList);
dart.setMethodSignature(html$.DataTransferItemList, () => ({
  __proto__: dart.getMethods(html$.DataTransferItemList.__proto__),
  [$add]: dart.fnType(html$.DataTransferItem, [dart.dynamic], [core.String]),
  [$addData]: dart.fnType(html$.DataTransferItem, [core.String, core.String]),
  [$addFile]: dart.fnType(html$.DataTransferItem, [html$.File]),
  [$clear]: dart.fnType(dart.void, []),
  [$item]: dart.fnType(html$.DataTransferItem, [core.int]),
  [$remove]: dart.fnType(dart.void, [core.int]),
  [$_get]: dart.fnType(html$.DataTransferItem, [core.int])
}));
dart.setGetterSignature(html$.DataTransferItemList, () => ({
  __proto__: dart.getGetters(html$.DataTransferItemList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$.DataTransferItemList, L65);
dart.registerExtension("DataTransferItemList", html$.DataTransferItemList);
var _postMessage_1 = dart.privateName(html$, "_postMessage_1");
var _postMessage_2 = dart.privateName(html$, "_postMessage_2");
var _webkitRequestFileSystem = dart.privateName(html$, "_webkitRequestFileSystem");
var _webkitResolveLocalFileSystemUrl = dart.privateName(html$, "_webkitResolveLocalFileSystemUrl");
var _setInterval_String = dart.privateName(html$, "_setInterval_String");
var _setTimeout_String = dart.privateName(html$, "_setTimeout_String");
var _clearInterval = dart.privateName(html$, "_clearInterval");
var _clearTimeout = dart.privateName(html$, "_clearTimeout");
var _setInterval = dart.privateName(html$, "_setInterval");
var _setTimeout = dart.privateName(html$, "_setTimeout");
html$.WorkerGlobalScope = class WorkerGlobalScope extends html$.EventTarget {
  get [$addressSpace]() {
    return this.addressSpace;
  }
  get [$caches]() {
    return this.caches;
  }
  get [$crypto]() {
    return this.crypto;
  }
  get [$indexedDB]() {
    return this.indexedDB;
  }
  get [$isSecureContext]() {
    return this.isSecureContext;
  }
  get [$location]() {
    return this.location;
  }
  get [$navigator]() {
    return this.navigator;
  }
  get [$origin]() {
    return this.origin;
  }
  get [$performance]() {
    return this.performance;
  }
  get [$self]() {
    return this.self;
  }
  [$fetch](input, init = null) {
    let init_dict = null;
    if (init != null) {
      init_dict = html_common.convertDartToNative_Dictionary(init);
    }
    return js_util.promiseToFuture(dart.dynamic, this.fetch(input, init_dict));
  }
  [$importScripts](...args) {
    return this.importScripts.apply(this, args);
  }
  [$atob](...args) {
    return this.atob.apply(this, args);
  }
  [$btoa](...args) {
    return this.btoa.apply(this, args);
  }
  [_setInterval_String](...args) {
    return this.setInterval.apply(this, args);
  }
  [_setTimeout_String](...args) {
    return this.setTimeout.apply(this, args);
  }
  [_clearInterval](...args) {
    return this.clearInterval.apply(this, args);
  }
  [_clearTimeout](...args) {
    return this.clearTimeout.apply(this, args);
  }
  [_setInterval](...args) {
    return this.setInterval.apply(this, args);
  }
  [_setTimeout](...args) {
    return this.setTimeout.apply(this, args);
  }
  get [$onError]() {
    return html$.WorkerGlobalScope.errorEvent.forTarget(this);
  }
  static get instance() {
    return html$._workerSelf;
  }
};
dart.addTypeTests(html$.WorkerGlobalScope);
dart.addTypeCaches(html$.WorkerGlobalScope);
html$.WorkerGlobalScope[dart.implements] = () => [html$._WindowTimers, html$.WindowBase64];
dart.setMethodSignature(html$.WorkerGlobalScope, () => ({
  __proto__: dart.getMethods(html$.WorkerGlobalScope.__proto__),
  [$fetch]: dart.fnType(async.Future, [dart.dynamic], [core.Map]),
  [$importScripts]: dart.fnType(dart.void, [core.String]),
  [$atob]: dart.fnType(core.String, [core.String]),
  [$btoa]: dart.fnType(core.String, [core.String]),
  [_setInterval_String]: dart.fnType(core.int, [core.String], [core.int, core.Object]),
  [_setTimeout_String]: dart.fnType(core.int, [core.String], [core.int, core.Object]),
  [_clearInterval]: dart.fnType(dart.void, [], [core.int]),
  [_clearTimeout]: dart.fnType(dart.void, [], [core.int]),
  [_setInterval]: dart.fnType(core.int, [core.Object], [core.int]),
  [_setTimeout]: dart.fnType(core.int, [core.Object], [core.int])
}));
dart.setGetterSignature(html$.WorkerGlobalScope, () => ({
  __proto__: dart.getGetters(html$.WorkerGlobalScope.__proto__),
  [$addressSpace]: core.String,
  [$caches]: html$.CacheStorage,
  [$crypto]: html$.Crypto,
  [$indexedDB]: indexed_db.IdbFactory,
  [$isSecureContext]: core.bool,
  [$location]: html$._WorkerLocation,
  [$navigator]: html$._WorkerNavigator,
  [$origin]: core.String,
  [$performance]: html$.WorkerPerformance,
  [$self]: html$.WorkerGlobalScope,
  [$onError]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.WorkerGlobalScope, L65);
dart.defineLazy(html$.WorkerGlobalScope, {
  /*html$.WorkerGlobalScope.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  }
}, true);
dart.registerExtension("WorkerGlobalScope", html$.WorkerGlobalScope);
html$.DedicatedWorkerGlobalScope = class DedicatedWorkerGlobalScope extends html$.WorkerGlobalScope {
  [$close](...args) {
    return this.close.apply(this, args);
  }
  [$postMessage](message, transfer = null) {
    if (transfer != null) {
      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
      this[_postMessage_1](message_1, transfer);
      return;
    }
    let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
    this[_postMessage_2](message_1);
    return;
  }
  [_postMessage_1](...args) {
    return this.postMessage.apply(this, args);
  }
  [_postMessage_2](...args) {
    return this.postMessage.apply(this, args);
  }
  [_webkitRequestFileSystem](...args) {
    return this.webkitRequestFileSystem.apply(this, args);
  }
  [$requestFileSystemSync](...args) {
    return this.webkitRequestFileSystemSync.apply(this, args);
  }
  [$resolveLocalFileSystemSyncUrl](...args) {
    return this.webkitResolveLocalFileSystemSyncURL.apply(this, args);
  }
  [_webkitResolveLocalFileSystemUrl](...args) {
    return this.webkitResolveLocalFileSystemURL.apply(this, args);
  }
  get [$onMessage]() {
    return html$.DedicatedWorkerGlobalScope.messageEvent.forTarget(this);
  }
  static get instance() {
    return html$.DedicatedWorkerGlobalScope.as(html$._workerSelf);
  }
};
dart.addTypeTests(html$.DedicatedWorkerGlobalScope);
dart.addTypeCaches(html$.DedicatedWorkerGlobalScope);
dart.setMethodSignature(html$.DedicatedWorkerGlobalScope, () => ({
  __proto__: dart.getMethods(html$.DedicatedWorkerGlobalScope.__proto__),
  [$close]: dart.fnType(dart.void, []),
  [$postMessage]: dart.fnType(dart.void, [dart.dynamic], [core.List$(core.Object)]),
  [_postMessage_1]: dart.fnType(dart.void, [dart.dynamic, core.List$(core.Object)]),
  [_postMessage_2]: dart.fnType(dart.void, [dart.dynamic]),
  [_webkitRequestFileSystem]: dart.fnType(dart.void, [core.int, core.int], [dart.fnType(dart.void, [html$.FileSystem]), dart.fnType(dart.void, [html$.DomException])]),
  [$requestFileSystemSync]: dart.fnType(html$._DOMFileSystemSync, [core.int, core.int]),
  [$resolveLocalFileSystemSyncUrl]: dart.fnType(html$._EntrySync, [core.String]),
  [_webkitResolveLocalFileSystemUrl]: dart.fnType(dart.void, [core.String, dart.fnType(dart.void, [html$.Entry])], [dart.fnType(dart.void, [html$.DomException])])
}));
dart.setGetterSignature(html$.DedicatedWorkerGlobalScope, () => ({
  __proto__: dart.getGetters(html$.DedicatedWorkerGlobalScope.__proto__),
  [$onMessage]: async.Stream$(html$.MessageEvent)
}));
dart.setLibraryUri(html$.DedicatedWorkerGlobalScope, L65);
dart.defineLazy(html$.DedicatedWorkerGlobalScope, {
  /*html$.DedicatedWorkerGlobalScope.messageEvent*/get messageEvent() {
    return C313 || CT.C313;
  },
  /*html$.DedicatedWorkerGlobalScope.PERSISTENT*/get PERSISTENT() {
    return 1;
  },
  /*html$.DedicatedWorkerGlobalScope.TEMPORARY*/get TEMPORARY() {
    return 0;
  }
}, true);
dart.registerExtension("DedicatedWorkerGlobalScope", html$.DedicatedWorkerGlobalScope);
html$.DeprecatedStorageInfo = class DeprecatedStorageInfo extends _interceptors.Interceptor {
  [$queryUsageAndQuota](...args) {
    return this.queryUsageAndQuota.apply(this, args);
  }
  [$requestQuota](...args) {
    return this.requestQuota.apply(this, args);
  }
};
dart.addTypeTests(html$.DeprecatedStorageInfo);
dart.addTypeCaches(html$.DeprecatedStorageInfo);
dart.setMethodSignature(html$.DeprecatedStorageInfo, () => ({
  __proto__: dart.getMethods(html$.DeprecatedStorageInfo.__proto__),
  [$queryUsageAndQuota]: dart.fnType(dart.void, [core.int], [dart.fnType(dart.void, [core.int, core.int]), dart.fnType(dart.void, [html$.DomError])]),
  [$requestQuota]: dart.fnType(dart.void, [core.int, core.int], [dart.fnType(dart.void, [core.int]), dart.fnType(dart.void, [html$.DomError])])
}));
dart.setLibraryUri(html$.DeprecatedStorageInfo, L65);
dart.defineLazy(html$.DeprecatedStorageInfo, {
  /*html$.DeprecatedStorageInfo.PERSISTENT*/get PERSISTENT() {
    return 1;
  },
  /*html$.DeprecatedStorageInfo.TEMPORARY*/get TEMPORARY() {
    return 0;
  }
}, true);
dart.registerExtension("DeprecatedStorageInfo", html$.DeprecatedStorageInfo);
html$.DeprecatedStorageQuota = class DeprecatedStorageQuota extends _interceptors.Interceptor {
  [$queryUsageAndQuota](...args) {
    return this.queryUsageAndQuota.apply(this, args);
  }
  [$requestQuota](...args) {
    return this.requestQuota.apply(this, args);
  }
};
dart.addTypeTests(html$.DeprecatedStorageQuota);
dart.addTypeCaches(html$.DeprecatedStorageQuota);
dart.setMethodSignature(html$.DeprecatedStorageQuota, () => ({
  __proto__: dart.getMethods(html$.DeprecatedStorageQuota.__proto__),
  [$queryUsageAndQuota]: dart.fnType(dart.void, [dart.fnType(dart.void, [core.int, core.int])], [dart.fnType(dart.void, [html$.DomError])]),
  [$requestQuota]: dart.fnType(dart.void, [core.int], [dart.fnType(dart.void, [core.int]), dart.fnType(dart.void, [html$.DomError])])
}));
dart.setLibraryUri(html$.DeprecatedStorageQuota, L65);
dart.registerExtension("DeprecatedStorageQuota", html$.DeprecatedStorageQuota);
html$.ReportBody = class ReportBody extends _interceptors.Interceptor {};
dart.addTypeTests(html$.ReportBody);
dart.addTypeCaches(html$.ReportBody);
dart.setLibraryUri(html$.ReportBody, L65);
dart.registerExtension("ReportBody", html$.ReportBody);
html$.DeprecationReport = class DeprecationReport extends html$.ReportBody {
  get [$lineNumber]() {
    return this.lineNumber;
  }
  get [$message]() {
    return this.message;
  }
  get [$sourceFile]() {
    return this.sourceFile;
  }
};
dart.addTypeTests(html$.DeprecationReport);
dart.addTypeCaches(html$.DeprecationReport);
dart.setGetterSignature(html$.DeprecationReport, () => ({
  __proto__: dart.getGetters(html$.DeprecationReport.__proto__),
  [$lineNumber]: core.int,
  [$message]: core.String,
  [$sourceFile]: core.String
}));
dart.setLibraryUri(html$.DeprecationReport, L65);
dart.registerExtension("DeprecationReport", html$.DeprecationReport);
html$.DetailsElement = class DetailsElement extends html$.HtmlElement {
  static new() {
    return html$.DetailsElement.as(html$.document[$createElement]("details"));
  }
  static get supported() {
    return html$.Element.isTagSupported("details");
  }
  get [$open]() {
    return this.open;
  }
  set [$open](value) {
    this.open = value;
  }
};
(html$.DetailsElement.created = function() {
  html$.DetailsElement.__proto__.created.call(this);
  ;
}).prototype = html$.DetailsElement.prototype;
dart.addTypeTests(html$.DetailsElement);
dart.addTypeCaches(html$.DetailsElement);
dart.setGetterSignature(html$.DetailsElement, () => ({
  __proto__: dart.getGetters(html$.DetailsElement.__proto__),
  [$open]: core.bool
}));
dart.setSetterSignature(html$.DetailsElement, () => ({
  __proto__: dart.getSetters(html$.DetailsElement.__proto__),
  [$open]: core.bool
}));
dart.setLibraryUri(html$.DetailsElement, L65);
dart.registerExtension("HTMLDetailsElement", html$.DetailsElement);
html$.DetectedBarcode = class DetectedBarcode$ extends _interceptors.Interceptor {
  static new() {
    return html$.DetectedBarcode._create_1();
  }
  static _create_1() {
    return new DetectedBarcode();
  }
  get [$boundingBox]() {
    return this.boundingBox;
  }
  get [$cornerPoints]() {
    return this.cornerPoints;
  }
  get [$rawValue]() {
    return this.rawValue;
  }
};
dart.addTypeTests(html$.DetectedBarcode);
dart.addTypeCaches(html$.DetectedBarcode);
dart.setGetterSignature(html$.DetectedBarcode, () => ({
  __proto__: dart.getGetters(html$.DetectedBarcode.__proto__),
  [$boundingBox]: math.Rectangle$(core.num),
  [$cornerPoints]: core.List,
  [$rawValue]: core.String
}));
dart.setLibraryUri(html$.DetectedBarcode, L65);
dart.registerExtension("DetectedBarcode", html$.DetectedBarcode);
html$.DetectedFace = class DetectedFace$ extends _interceptors.Interceptor {
  static new() {
    return html$.DetectedFace._create_1();
  }
  static _create_1() {
    return new DetectedFace();
  }
  get [$boundingBox]() {
    return this.boundingBox;
  }
  get [$landmarks]() {
    return this.landmarks;
  }
};
dart.addTypeTests(html$.DetectedFace);
dart.addTypeCaches(html$.DetectedFace);
dart.setGetterSignature(html$.DetectedFace, () => ({
  __proto__: dart.getGetters(html$.DetectedFace.__proto__),
  [$boundingBox]: math.Rectangle$(core.num),
  [$landmarks]: core.List
}));
dart.setLibraryUri(html$.DetectedFace, L65);
dart.registerExtension("DetectedFace", html$.DetectedFace);
html$.DetectedText = class DetectedText$ extends _interceptors.Interceptor {
  static new() {
    return html$.DetectedText._create_1();
  }
  static _create_1() {
    return new DetectedText();
  }
  get [$boundingBox]() {
    return this.boundingBox;
  }
  get [$cornerPoints]() {
    return this.cornerPoints;
  }
  get [$rawValue]() {
    return this.rawValue;
  }
};
dart.addTypeTests(html$.DetectedText);
dart.addTypeCaches(html$.DetectedText);
dart.setGetterSignature(html$.DetectedText, () => ({
  __proto__: dart.getGetters(html$.DetectedText.__proto__),
  [$boundingBox]: math.Rectangle$(core.num),
  [$cornerPoints]: core.List,
  [$rawValue]: core.String
}));
dart.setLibraryUri(html$.DetectedText, L65);
dart.registerExtension("DetectedText", html$.DetectedText);
html$.DeviceAcceleration = class DeviceAcceleration extends _interceptors.Interceptor {
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
  get [$z]() {
    return this.z;
  }
};
dart.addTypeTests(html$.DeviceAcceleration);
dart.addTypeCaches(html$.DeviceAcceleration);
dart.setGetterSignature(html$.DeviceAcceleration, () => ({
  __proto__: dart.getGetters(html$.DeviceAcceleration.__proto__),
  [$x]: core.num,
  [$y]: core.num,
  [$z]: core.num
}));
dart.setLibraryUri(html$.DeviceAcceleration, L65);
dart.registerExtension("DeviceAcceleration", html$.DeviceAcceleration);
html$.DeviceMotionEvent = class DeviceMotionEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.DeviceMotionEvent._create_1(type, eventInitDict_1);
    }
    return html$.DeviceMotionEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new DeviceMotionEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new DeviceMotionEvent(type);
  }
  get [$acceleration]() {
    return this.acceleration;
  }
  get [$accelerationIncludingGravity]() {
    return this.accelerationIncludingGravity;
  }
  get [$interval]() {
    return this.interval;
  }
  get [$rotationRate]() {
    return this.rotationRate;
  }
};
dart.addTypeTests(html$.DeviceMotionEvent);
dart.addTypeCaches(html$.DeviceMotionEvent);
dart.setGetterSignature(html$.DeviceMotionEvent, () => ({
  __proto__: dart.getGetters(html$.DeviceMotionEvent.__proto__),
  [$acceleration]: html$.DeviceAcceleration,
  [$accelerationIncludingGravity]: html$.DeviceAcceleration,
  [$interval]: core.num,
  [$rotationRate]: html$.DeviceRotationRate
}));
dart.setLibraryUri(html$.DeviceMotionEvent, L65);
dart.registerExtension("DeviceMotionEvent", html$.DeviceMotionEvent);
html$.DeviceOrientationEvent = class DeviceOrientationEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.DeviceOrientationEvent._create_1(type, eventInitDict_1);
    }
    return html$.DeviceOrientationEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new DeviceOrientationEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new DeviceOrientationEvent(type);
  }
  get [$absolute]() {
    return this.absolute;
  }
  get [$alpha]() {
    return this.alpha;
  }
  get [$beta]() {
    return this.beta;
  }
  get [$gamma]() {
    return this.gamma;
  }
};
dart.addTypeTests(html$.DeviceOrientationEvent);
dart.addTypeCaches(html$.DeviceOrientationEvent);
dart.setGetterSignature(html$.DeviceOrientationEvent, () => ({
  __proto__: dart.getGetters(html$.DeviceOrientationEvent.__proto__),
  [$absolute]: core.bool,
  [$alpha]: core.num,
  [$beta]: core.num,
  [$gamma]: core.num
}));
dart.setLibraryUri(html$.DeviceOrientationEvent, L65);
dart.registerExtension("DeviceOrientationEvent", html$.DeviceOrientationEvent);
html$.DeviceRotationRate = class DeviceRotationRate extends _interceptors.Interceptor {
  get [$alpha]() {
    return this.alpha;
  }
  get [$beta]() {
    return this.beta;
  }
  get [$gamma]() {
    return this.gamma;
  }
};
dart.addTypeTests(html$.DeviceRotationRate);
dart.addTypeCaches(html$.DeviceRotationRate);
dart.setGetterSignature(html$.DeviceRotationRate, () => ({
  __proto__: dart.getGetters(html$.DeviceRotationRate.__proto__),
  [$alpha]: core.num,
  [$beta]: core.num,
  [$gamma]: core.num
}));
dart.setLibraryUri(html$.DeviceRotationRate, L65);
dart.registerExtension("DeviceRotationRate", html$.DeviceRotationRate);
html$.DialogElement = class DialogElement extends html$.HtmlElement {
  get [$open]() {
    return this.open;
  }
  set [$open](value) {
    this.open = value;
  }
  get [$returnValue]() {
    return this.returnValue;
  }
  set [$returnValue](value) {
    this.returnValue = value;
  }
  [$close](...args) {
    return this.close.apply(this, args);
  }
  [$show](...args) {
    return this.show.apply(this, args);
  }
  [$showModal](...args) {
    return this.showModal.apply(this, args);
  }
};
(html$.DialogElement.created = function() {
  html$.DialogElement.__proto__.created.call(this);
  ;
}).prototype = html$.DialogElement.prototype;
dart.addTypeTests(html$.DialogElement);
dart.addTypeCaches(html$.DialogElement);
dart.setMethodSignature(html$.DialogElement, () => ({
  __proto__: dart.getMethods(html$.DialogElement.__proto__),
  [$close]: dart.fnType(dart.void, [], [core.String]),
  [$show]: dart.fnType(dart.void, []),
  [$showModal]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.DialogElement, () => ({
  __proto__: dart.getGetters(html$.DialogElement.__proto__),
  [$open]: core.bool,
  [$returnValue]: core.String
}));
dart.setSetterSignature(html$.DialogElement, () => ({
  __proto__: dart.getSetters(html$.DialogElement.__proto__),
  [$open]: core.bool,
  [$returnValue]: core.String
}));
dart.setLibraryUri(html$.DialogElement, L65);
dart.registerExtension("HTMLDialogElement", html$.DialogElement);
var _getDirectory = dart.privateName(html$, "_getDirectory");
var _createReader = dart.privateName(html$, "_createReader");
var _getFile = dart.privateName(html$, "_getFile");
var __getDirectory_1 = dart.privateName(html$, "__getDirectory_1");
var __getDirectory_2 = dart.privateName(html$, "__getDirectory_2");
var __getDirectory_3 = dart.privateName(html$, "__getDirectory_3");
var __getDirectory_4 = dart.privateName(html$, "__getDirectory_4");
var __getDirectory = dart.privateName(html$, "__getDirectory");
var __getFile_1 = dart.privateName(html$, "__getFile_1");
var __getFile_2 = dart.privateName(html$, "__getFile_2");
var __getFile_3 = dart.privateName(html$, "__getFile_3");
var __getFile_4 = dart.privateName(html$, "__getFile_4");
var __getFile = dart.privateName(html$, "__getFile");
var _removeRecursively = dart.privateName(html$, "_removeRecursively");
var _copyTo = dart.privateName(html$, "_copyTo");
var _getMetadata = dart.privateName(html$, "_getMetadata");
var _getParent = dart.privateName(html$, "_getParent");
var _moveTo = dart.privateName(html$, "_moveTo");
var _remove$ = dart.privateName(html$, "_remove");
html$.Entry = class Entry extends _interceptors.Interceptor {
  get [$filesystem]() {
    return this.filesystem;
  }
  get [$fullPath]() {
    return this.fullPath;
  }
  get [$isDirectory]() {
    return this.isDirectory;
  }
  get [$isFile]() {
    return this.isFile;
  }
  get [$name]() {
    return this.name;
  }
  [_copyTo](...args) {
    return this.copyTo.apply(this, args);
  }
  [$copyTo](parent, opts) {
    let name = opts && 'name' in opts ? opts.name : null;
    let completer = CompleterOfEntryL().new();
    this[_copyTo](parent, name, dart.fn(value => {
      completer.complete(value);
    }, EntryLToNullN()), dart.fn(error => {
      completer.completeError(error);
    }, DomExceptionLToNullN()));
    return completer.future;
  }
  [_getMetadata](...args) {
    return this.getMetadata.apply(this, args);
  }
  [$getMetadata]() {
    let completer = CompleterOfMetadataL().new();
    this[_getMetadata](dart.fn(value => {
      _js_helper.applyExtension("Metadata", value);
      completer.complete(value);
    }, MetadataLToNullN()), dart.fn(error => {
      completer.completeError(error);
    }, DomExceptionLToNullN()));
    return completer.future;
  }
  [_getParent](...args) {
    return this.getParent.apply(this, args);
  }
  [$getParent]() {
    let completer = CompleterOfEntryL().new();
    this[_getParent](dart.fn(value => {
      _js_helper.applyExtension("Entry", value);
      completer.complete(value);
    }, EntryLToNullN()), dart.fn(error => {
      completer.completeError(error);
    }, DomExceptionLToNullN()));
    return completer.future;
  }
  [_moveTo](...args) {
    return this.moveTo.apply(this, args);
  }
  [$moveTo](parent, opts) {
    let name = opts && 'name' in opts ? opts.name : null;
    let completer = CompleterOfEntryL().new();
    this[_moveTo](parent, name, dart.fn(value => {
      completer.complete(value);
    }, EntryLToNullN()), dart.fn(error => {
      completer.completeError(error);
    }, DomExceptionLToNullN()));
    return completer.future;
  }
  [_remove$](...args) {
    return this.remove.apply(this, args);
  }
  [$remove]() {
    let completer = async.Completer.new();
    this[_remove$](dart.fn(() => {
      completer.complete();
    }, VoidToNullN()), dart.fn(error => {
      completer.completeError(error);
    }, DomExceptionLToNullN()));
    return completer.future;
  }
  [$toUrl](...args) {
    return this.toURL.apply(this, args);
  }
};
dart.addTypeTests(html$.Entry);
dart.addTypeCaches(html$.Entry);
dart.setMethodSignature(html$.Entry, () => ({
  __proto__: dart.getMethods(html$.Entry.__proto__),
  [_copyTo]: dart.fnType(dart.void, [html$.DirectoryEntry], [core.String, dart.fnType(dart.void, [html$.Entry]), dart.fnType(dart.void, [html$.DomException])]),
  [$copyTo]: dart.fnType(async.Future$(html$.Entry), [html$.DirectoryEntry], {name: core.String}, {}),
  [_getMetadata]: dart.fnType(dart.void, [dart.fnType(dart.void, [html$.Metadata])], [dart.fnType(dart.void, [html$.DomException])]),
  [$getMetadata]: dart.fnType(async.Future$(html$.Metadata), []),
  [_getParent]: dart.fnType(dart.void, [], [dart.fnType(dart.void, [html$.Entry]), dart.fnType(dart.void, [html$.DomException])]),
  [$getParent]: dart.fnType(async.Future$(html$.Entry), []),
  [_moveTo]: dart.fnType(dart.void, [html$.DirectoryEntry], [core.String, dart.fnType(dart.void, [html$.Entry]), dart.fnType(dart.void, [html$.DomException])]),
  [$moveTo]: dart.fnType(async.Future$(html$.Entry), [html$.DirectoryEntry], {name: core.String}, {}),
  [_remove$]: dart.fnType(dart.void, [dart.fnType(dart.void, [])], [dart.fnType(dart.void, [html$.DomException])]),
  [$remove]: dart.fnType(async.Future, []),
  [$toUrl]: dart.fnType(core.String, [])
}));
dart.setGetterSignature(html$.Entry, () => ({
  __proto__: dart.getGetters(html$.Entry.__proto__),
  [$filesystem]: html$.FileSystem,
  [$fullPath]: core.String,
  [$isDirectory]: core.bool,
  [$isFile]: core.bool,
  [$name]: core.String
}));
dart.setLibraryUri(html$.Entry, L65);
dart.registerExtension("Entry", html$.Entry);
html$.DirectoryEntry = class DirectoryEntry extends html$.Entry {
  [$createDirectory](path, opts) {
    let exclusive = opts && 'exclusive' in opts ? opts.exclusive : false;
    return this[_getDirectory](path, {options: new _js_helper.LinkedMap.from(["create", true, "exclusive", exclusive])});
  }
  [$createReader]() {
    let reader = this[_createReader]();
    _js_helper.applyExtension("DirectoryReader", reader);
    return reader;
  }
  [$getDirectory](path) {
    return this[_getDirectory](path);
  }
  [$createFile](path, opts) {
    let exclusive = opts && 'exclusive' in opts ? opts.exclusive : false;
    return this[_getFile](path, {options: new _js_helper.LinkedMap.from(["create", true, "exclusive", exclusive])});
  }
  [$getFile](path) {
    return this[_getFile](path);
  }
  [_createReader](...args) {
    return this.createReader.apply(this, args);
  }
  [__getDirectory](path, options = null, successCallback = null, errorCallback = null) {
    if (errorCallback != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      this[__getDirectory_1](path, options_1, successCallback, errorCallback);
      return;
    }
    if (successCallback != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      this[__getDirectory_2](path, options_1, successCallback);
      return;
    }
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      this[__getDirectory_3](path, options_1);
      return;
    }
    this[__getDirectory_4](path);
    return;
  }
  [__getDirectory_1](...args) {
    return this.getDirectory.apply(this, args);
  }
  [__getDirectory_2](...args) {
    return this.getDirectory.apply(this, args);
  }
  [__getDirectory_3](...args) {
    return this.getDirectory.apply(this, args);
  }
  [__getDirectory_4](...args) {
    return this.getDirectory.apply(this, args);
  }
  [_getDirectory](path, opts) {
    let options = opts && 'options' in opts ? opts.options : null;
    let completer = CompleterOfEntryL().new();
    this[__getDirectory](path, options, dart.fn(value => {
      completer.complete(value);
    }, EntryLToNullN()), dart.fn(error => {
      completer.completeError(error);
    }, DomExceptionLToNullN()));
    return completer.future;
  }
  [__getFile](path, options = null, successCallback = null, errorCallback = null) {
    if (errorCallback != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      this[__getFile_1](path, options_1, successCallback, errorCallback);
      return;
    }
    if (successCallback != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      this[__getFile_2](path, options_1, successCallback);
      return;
    }
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      this[__getFile_3](path, options_1);
      return;
    }
    this[__getFile_4](path);
    return;
  }
  [__getFile_1](...args) {
    return this.getFile.apply(this, args);
  }
  [__getFile_2](...args) {
    return this.getFile.apply(this, args);
  }
  [__getFile_3](...args) {
    return this.getFile.apply(this, args);
  }
  [__getFile_4](...args) {
    return this.getFile.apply(this, args);
  }
  [_getFile](path, opts) {
    let options = opts && 'options' in opts ? opts.options : null;
    let completer = CompleterOfEntryL().new();
    this[__getFile](path, options, dart.fn(value => {
      _js_helper.applyExtension("FileEntry", value);
      completer.complete(value);
    }, EntryLToNullN()), dart.fn(error => {
      completer.completeError(error);
    }, DomExceptionLToNullN()));
    return completer.future;
  }
  [_removeRecursively](...args) {
    return this.removeRecursively.apply(this, args);
  }
  [$removeRecursively]() {
    let completer = async.Completer.new();
    this[_removeRecursively](dart.fn(() => {
      completer.complete();
    }, VoidToNullN()), dart.fn(error => {
      completer.completeError(error);
    }, DomExceptionLToNullN()));
    return completer.future;
  }
};
dart.addTypeTests(html$.DirectoryEntry);
dart.addTypeCaches(html$.DirectoryEntry);
dart.setMethodSignature(html$.DirectoryEntry, () => ({
  __proto__: dart.getMethods(html$.DirectoryEntry.__proto__),
  [$createDirectory]: dart.fnType(async.Future$(html$.Entry), [core.String], {exclusive: core.bool}, {}),
  [$createReader]: dart.fnType(html$.DirectoryReader, []),
  [$getDirectory]: dart.fnType(async.Future$(html$.Entry), [core.String]),
  [$createFile]: dart.fnType(async.Future$(html$.Entry), [core.String], {exclusive: core.bool}, {}),
  [$getFile]: dart.fnType(async.Future$(html$.Entry), [core.String]),
  [_createReader]: dart.fnType(html$.DirectoryReader, []),
  [__getDirectory]: dart.fnType(dart.void, [core.String], [core.Map, dart.fnType(dart.void, [html$.Entry]), dart.fnType(dart.void, [html$.DomException])]),
  [__getDirectory_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.fnType(dart.void, [html$.Entry]), dart.fnType(dart.void, [html$.DomException])]),
  [__getDirectory_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.fnType(dart.void, [html$.Entry])]),
  [__getDirectory_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic]),
  [__getDirectory_4]: dart.fnType(dart.void, [dart.dynamic]),
  [_getDirectory]: dart.fnType(async.Future$(html$.Entry), [core.String], {options: core.Map}, {}),
  [__getFile]: dart.fnType(dart.void, [core.String], [core.Map, dart.fnType(dart.void, [html$.Entry]), dart.fnType(dart.void, [html$.DomException])]),
  [__getFile_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.fnType(dart.void, [html$.Entry]), dart.fnType(dart.void, [html$.DomException])]),
  [__getFile_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.fnType(dart.void, [html$.Entry])]),
  [__getFile_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic]),
  [__getFile_4]: dart.fnType(dart.void, [dart.dynamic]),
  [_getFile]: dart.fnType(async.Future$(html$.Entry), [core.String], {options: core.Map}, {}),
  [_removeRecursively]: dart.fnType(dart.void, [dart.fnType(dart.void, [])], [dart.fnType(dart.void, [html$.DomException])]),
  [$removeRecursively]: dart.fnType(async.Future, [])
}));
dart.setLibraryUri(html$.DirectoryEntry, L65);
dart.registerExtension("DirectoryEntry", html$.DirectoryEntry);
var _readEntries = dart.privateName(html$, "_readEntries");
html$.DirectoryReader = class DirectoryReader extends _interceptors.Interceptor {
  [_readEntries](...args) {
    return this.readEntries.apply(this, args);
  }
  [$readEntries]() {
    let completer = CompleterOfListLOfEntryL().new();
    this[_readEntries](dart.fn(values => {
      values[$forEach](dart.fn(value => {
        _js_helper.applyExtension("Entry", value);
        let entry = html$.Entry.as(value);
        if (dart.test(entry.isFile))
          _js_helper.applyExtension("FileEntry", entry);
        else if (dart.test(entry.isDirectory)) _js_helper.applyExtension("DirectoryEntry", entry);
      }, dynamicToNullN()));
      completer.complete(ListOfEntryL().from(values));
    }, ListLToNullN()), dart.fn(error => {
      completer.completeError(error);
    }, DomExceptionLToNullN()));
    return completer.future;
  }
};
dart.addTypeTests(html$.DirectoryReader);
dart.addTypeCaches(html$.DirectoryReader);
dart.setMethodSignature(html$.DirectoryReader, () => ({
  __proto__: dart.getMethods(html$.DirectoryReader.__proto__),
  [_readEntries]: dart.fnType(dart.void, [dart.fnType(dart.void, [core.List])], [dart.fnType(dart.void, [html$.DomException])]),
  [$readEntries]: dart.fnType(async.Future$(core.List$(html$.Entry)), [])
}));
dart.setLibraryUri(html$.DirectoryReader, L65);
dart.registerExtension("DirectoryReader", html$.DirectoryReader);
html$.DivElement = class DivElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("div");
  }
};
(html$.DivElement.created = function() {
  html$.DivElement.__proto__.created.call(this);
  ;
}).prototype = html$.DivElement.prototype;
dart.addTypeTests(html$.DivElement);
dart.addTypeCaches(html$.DivElement);
dart.setLibraryUri(html$.DivElement, L65);
dart.registerExtension("HTMLDivElement", html$.DivElement);
var _body = dart.privateName(html$, "_body");
var _get_window = dart.privateName(html$, "_get_window");
var _head$ = dart.privateName(html$, "_head");
var _lastModified = dart.privateName(html$, "_lastModified");
var _preferredStylesheetSet = dart.privateName(html$, "_preferredStylesheetSet");
var _referrer = dart.privateName(html$, "_referrer");
var _selectedStylesheetSet = dart.privateName(html$, "_selectedStylesheetSet");
var _title = dart.privateName(html$, "_title");
var _visibilityState = dart.privateName(html$, "_visibilityState");
var _webkitFullscreenElement = dart.privateName(html$, "_webkitFullscreenElement");
var _webkitFullscreenEnabled = dart.privateName(html$, "_webkitFullscreenEnabled");
var _webkitHidden = dart.privateName(html$, "_webkitHidden");
var _webkitVisibilityState = dart.privateName(html$, "_webkitVisibilityState");
var _caretRangeFromPoint = dart.privateName(html$, "_caretRangeFromPoint");
var _createElement = dart.privateName(html$, "_createElement");
var _createElementNS = dart.privateName(html$, "_createElementNS");
var _createTextNode = dart.privateName(html$, "_createTextNode");
var _createTouch_1 = dart.privateName(html$, "_createTouch_1");
var _createTouch_2 = dart.privateName(html$, "_createTouch_2");
var _createTouch_3 = dart.privateName(html$, "_createTouch_3");
var _createTouch_4 = dart.privateName(html$, "_createTouch_4");
var _createTouch_5 = dart.privateName(html$, "_createTouch_5");
var _createTouch = dart.privateName(html$, "_createTouch");
var _createTouchList = dart.privateName(html$, "_createTouchList");
var _registerElement2_1 = dart.privateName(html$, "_registerElement2_1");
var _registerElement2_2 = dart.privateName(html$, "_registerElement2_2");
var _webkitExitFullscreen = dart.privateName(html$, "_webkitExitFullscreen");
var _styleSheets = dart.privateName(html$, "_styleSheets");
var _elementFromPoint = dart.privateName(html$, "_elementFromPoint");
var _createElement_2 = dart.privateName(html$, "_createElement_2");
var _createElementNS_2 = dart.privateName(html$, "_createElementNS_2");
var _createNodeIterator = dart.privateName(html$, "_createNodeIterator");
var _createTreeWalker = dart.privateName(html$, "_createTreeWalker");
var C323;
var C324;
var C325;
var C326;
var C327;
html$.Document = class Document$ extends html$.Node {
  static new() {
    return html$.Document._create_1();
  }
  static _create_1() {
    return new Document();
  }
  get [$addressSpace]() {
    return this.addressSpace;
  }
  get [_body]() {
    return this.body;
  }
  set [_body](value) {
    this.body = value;
  }
  get [$contentType]() {
    return this.contentType;
  }
  get [$cookie]() {
    return this.cookie;
  }
  set [$cookie](value) {
    this.cookie = value;
  }
  get [$currentScript]() {
    return this.currentScript;
  }
  get [$window]() {
    return html$._convertNativeToDart_Window(this[_get_window]);
  }
  get [_get_window]() {
    return this.defaultView;
  }
  get [$documentElement]() {
    return this.documentElement;
  }
  get [$domain]() {
    return this.domain;
  }
  get [$fullscreenEnabled]() {
    return this.fullscreenEnabled;
  }
  get [_head$]() {
    return this.head;
  }
  get [$hidden]() {
    return this.hidden;
  }
  get [$implementation]() {
    return this.implementation;
  }
  get [_lastModified]() {
    return this.lastModified;
  }
  get [$origin]() {
    return this.origin;
  }
  get [_preferredStylesheetSet]() {
    return this.preferredStylesheetSet;
  }
  get [$readyState]() {
    return this.readyState;
  }
  get [_referrer]() {
    return this.referrer;
  }
  get [$rootElement]() {
    return this.rootElement;
  }
  get [$rootScroller]() {
    return this.rootScroller;
  }
  set [$rootScroller](value) {
    this.rootScroller = value;
  }
  get [$scrollingElement]() {
    return this.scrollingElement;
  }
  get [_selectedStylesheetSet]() {
    return this.selectedStylesheetSet;
  }
  set [_selectedStylesheetSet](value) {
    this.selectedStylesheetSet = value;
  }
  get [$suborigin]() {
    return this.suborigin;
  }
  get [$timeline]() {
    return this.timeline;
  }
  get [_title]() {
    return this.title;
  }
  set [_title](value) {
    this.title = value;
  }
  get [_visibilityState]() {
    return this.visibilityState;
  }
  get [_webkitFullscreenElement]() {
    return this.webkitFullscreenElement;
  }
  get [_webkitFullscreenEnabled]() {
    return this.webkitFullscreenEnabled;
  }
  get [_webkitHidden]() {
    return this.webkitHidden;
  }
  get [_webkitVisibilityState]() {
    return this.webkitVisibilityState;
  }
  [$adoptNode](...args) {
    return this.adoptNode.apply(this, args);
  }
  [_caretRangeFromPoint](...args) {
    return this.caretRangeFromPoint.apply(this, args);
  }
  [$createDocumentFragment](...args) {
    return this.createDocumentFragment.apply(this, args);
  }
  [_createElement](...args) {
    return this.createElement.apply(this, args);
  }
  [_createElementNS](...args) {
    return this.createElementNS.apply(this, args);
  }
  [_createEvent](...args) {
    return this.createEvent.apply(this, args);
  }
  [$createRange](...args) {
    return this.createRange.apply(this, args);
  }
  [_createTextNode](...args) {
    return this.createTextNode.apply(this, args);
  }
  [_createTouch](view, target, identifier, pageX, pageY, screenX, screenY, radiusX = null, radiusY = null, rotationAngle = null, force = null) {
    if (force != null) {
      let target_1 = html$._convertDartToNative_EventTarget(target);
      return this[_createTouch_1](view, target_1, identifier, pageX, pageY, screenX, screenY, radiusX, radiusY, rotationAngle, force);
    }
    if (rotationAngle != null) {
      let target_1 = html$._convertDartToNative_EventTarget(target);
      return this[_createTouch_2](view, target_1, identifier, pageX, pageY, screenX, screenY, radiusX, radiusY, rotationAngle);
    }
    if (radiusY != null) {
      let target_1 = html$._convertDartToNative_EventTarget(target);
      return this[_createTouch_3](view, target_1, identifier, pageX, pageY, screenX, screenY, radiusX, radiusY);
    }
    if (radiusX != null) {
      let target_1 = html$._convertDartToNative_EventTarget(target);
      return this[_createTouch_4](view, target_1, identifier, pageX, pageY, screenX, screenY, radiusX);
    }
    let target_1 = html$._convertDartToNative_EventTarget(target);
    return this[_createTouch_5](view, target_1, identifier, pageX, pageY, screenX, screenY);
  }
  [_createTouch_1](...args) {
    return this.createTouch.apply(this, args);
  }
  [_createTouch_2](...args) {
    return this.createTouch.apply(this, args);
  }
  [_createTouch_3](...args) {
    return this.createTouch.apply(this, args);
  }
  [_createTouch_4](...args) {
    return this.createTouch.apply(this, args);
  }
  [_createTouch_5](...args) {
    return this.createTouch.apply(this, args);
  }
  [_createTouchList](...args) {
    return this.createTouchList.apply(this, args);
  }
  [$execCommand](...args) {
    return this.execCommand.apply(this, args);
  }
  [$exitFullscreen](...args) {
    return this.exitFullscreen.apply(this, args);
  }
  [$exitPointerLock](...args) {
    return this.exitPointerLock.apply(this, args);
  }
  [$getAnimations](...args) {
    return this.getAnimations.apply(this, args);
  }
  [$getElementsByClassName](...args) {
    return this.getElementsByClassName.apply(this, args);
  }
  [$getElementsByName](...args) {
    return this.getElementsByName.apply(this, args);
  }
  [$getElementsByTagName](...args) {
    return this.getElementsByTagName.apply(this, args);
  }
  [$importNode](...args) {
    return this.importNode.apply(this, args);
  }
  [$queryCommandEnabled](...args) {
    return this.queryCommandEnabled.apply(this, args);
  }
  [$queryCommandIndeterm](...args) {
    return this.queryCommandIndeterm.apply(this, args);
  }
  [$queryCommandState](...args) {
    return this.queryCommandState.apply(this, args);
  }
  [$queryCommandSupported](...args) {
    return this.queryCommandSupported.apply(this, args);
  }
  [$queryCommandValue](...args) {
    return this.queryCommandValue.apply(this, args);
  }
  [$registerElement2](type, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return this[_registerElement2_1](type, options_1);
    }
    return this[_registerElement2_2](type);
  }
  [_registerElement2_1](...args) {
    return this.registerElement.apply(this, args);
  }
  [_registerElement2_2](...args) {
    return this.registerElement.apply(this, args);
  }
  [_webkitExitFullscreen](...args) {
    return this.webkitExitFullscreen.apply(this, args);
  }
  [$getElementById](...args) {
    return this.getElementById.apply(this, args);
  }
  get [$activeElement]() {
    return this.activeElement;
  }
  get [$fullscreenElement]() {
    return this.fullscreenElement;
  }
  get [$pointerLockElement]() {
    return this.pointerLockElement;
  }
  get [_styleSheets]() {
    return this.styleSheets;
  }
  [_elementFromPoint](...args) {
    return this.elementFromPoint.apply(this, args);
  }
  [$elementsFromPoint](...args) {
    return this.elementsFromPoint.apply(this, args);
  }
  get [$fonts]() {
    return this.fonts;
  }
  get [_childElementCount]() {
    return this.childElementCount;
  }
  get [_children]() {
    return this.children;
  }
  get [_firstElementChild]() {
    return this.firstElementChild;
  }
  get [_lastElementChild]() {
    return this.lastElementChild;
  }
  [$querySelector](...args) {
    return this.querySelector.apply(this, args);
  }
  [_querySelectorAll](...args) {
    return this.querySelectorAll.apply(this, args);
  }
  get [$onAbort]() {
    return html$.Element.abortEvent.forTarget(this);
  }
  get [$onBeforeCopy]() {
    return html$.Element.beforeCopyEvent.forTarget(this);
  }
  get [$onBeforeCut]() {
    return html$.Element.beforeCutEvent.forTarget(this);
  }
  get [$onBeforePaste]() {
    return html$.Element.beforePasteEvent.forTarget(this);
  }
  get [$onBlur]() {
    return html$.Element.blurEvent.forTarget(this);
  }
  get [$onCanPlay]() {
    return html$.Element.canPlayEvent.forTarget(this);
  }
  get [$onCanPlayThrough]() {
    return html$.Element.canPlayThroughEvent.forTarget(this);
  }
  get [$onChange]() {
    return html$.Element.changeEvent.forTarget(this);
  }
  get [$onClick]() {
    return html$.Element.clickEvent.forTarget(this);
  }
  get [$onContextMenu]() {
    return html$.Element.contextMenuEvent.forTarget(this);
  }
  get [$onCopy]() {
    return html$.Element.copyEvent.forTarget(this);
  }
  get [$onCut]() {
    return html$.Element.cutEvent.forTarget(this);
  }
  get [$onDoubleClick]() {
    return html$.Element.doubleClickEvent.forTarget(this);
  }
  get [$onDrag]() {
    return html$.Element.dragEvent.forTarget(this);
  }
  get [$onDragEnd]() {
    return html$.Element.dragEndEvent.forTarget(this);
  }
  get [$onDragEnter]() {
    return html$.Element.dragEnterEvent.forTarget(this);
  }
  get [$onDragLeave]() {
    return html$.Element.dragLeaveEvent.forTarget(this);
  }
  get [$onDragOver]() {
    return html$.Element.dragOverEvent.forTarget(this);
  }
  get [$onDragStart]() {
    return html$.Element.dragStartEvent.forTarget(this);
  }
  get [$onDrop]() {
    return html$.Element.dropEvent.forTarget(this);
  }
  get [$onDurationChange]() {
    return html$.Element.durationChangeEvent.forTarget(this);
  }
  get [$onEmptied]() {
    return html$.Element.emptiedEvent.forTarget(this);
  }
  get [$onEnded]() {
    return html$.Element.endedEvent.forTarget(this);
  }
  get [$onError]() {
    return html$.Element.errorEvent.forTarget(this);
  }
  get [$onFocus]() {
    return html$.Element.focusEvent.forTarget(this);
  }
  get [$onInput]() {
    return html$.Element.inputEvent.forTarget(this);
  }
  get [$onInvalid]() {
    return html$.Element.invalidEvent.forTarget(this);
  }
  get [$onKeyDown]() {
    return html$.Element.keyDownEvent.forTarget(this);
  }
  get [$onKeyPress]() {
    return html$.Element.keyPressEvent.forTarget(this);
  }
  get [$onKeyUp]() {
    return html$.Element.keyUpEvent.forTarget(this);
  }
  get [$onLoad]() {
    return html$.Element.loadEvent.forTarget(this);
  }
  get [$onLoadedData]() {
    return html$.Element.loadedDataEvent.forTarget(this);
  }
  get [$onLoadedMetadata]() {
    return html$.Element.loadedMetadataEvent.forTarget(this);
  }
  get [$onMouseDown]() {
    return html$.Element.mouseDownEvent.forTarget(this);
  }
  get [$onMouseEnter]() {
    return html$.Element.mouseEnterEvent.forTarget(this);
  }
  get [$onMouseLeave]() {
    return html$.Element.mouseLeaveEvent.forTarget(this);
  }
  get [$onMouseMove]() {
    return html$.Element.mouseMoveEvent.forTarget(this);
  }
  get [$onMouseOut]() {
    return html$.Element.mouseOutEvent.forTarget(this);
  }
  get [$onMouseOver]() {
    return html$.Element.mouseOverEvent.forTarget(this);
  }
  get [$onMouseUp]() {
    return html$.Element.mouseUpEvent.forTarget(this);
  }
  get [$onMouseWheel]() {
    return html$.Element.mouseWheelEvent.forTarget(this);
  }
  get [$onPaste]() {
    return html$.Element.pasteEvent.forTarget(this);
  }
  get [$onPause]() {
    return html$.Element.pauseEvent.forTarget(this);
  }
  get [$onPlay]() {
    return html$.Element.playEvent.forTarget(this);
  }
  get [$onPlaying]() {
    return html$.Element.playingEvent.forTarget(this);
  }
  get [$onPointerLockChange]() {
    return html$.Document.pointerLockChangeEvent.forTarget(this);
  }
  get [$onPointerLockError]() {
    return html$.Document.pointerLockErrorEvent.forTarget(this);
  }
  get [$onRateChange]() {
    return html$.Element.rateChangeEvent.forTarget(this);
  }
  get [$onReadyStateChange]() {
    return html$.Document.readyStateChangeEvent.forTarget(this);
  }
  get [$onReset]() {
    return html$.Element.resetEvent.forTarget(this);
  }
  get [$onResize]() {
    return html$.Element.resizeEvent.forTarget(this);
  }
  get [$onScroll]() {
    return html$.Element.scrollEvent.forTarget(this);
  }
  get [$onSearch]() {
    return html$.Element.searchEvent.forTarget(this);
  }
  get [$onSecurityPolicyViolation]() {
    return html$.Document.securityPolicyViolationEvent.forTarget(this);
  }
  get [$onSeeked]() {
    return html$.Element.seekedEvent.forTarget(this);
  }
  get [$onSeeking]() {
    return html$.Element.seekingEvent.forTarget(this);
  }
  get [$onSelect]() {
    return html$.Element.selectEvent.forTarget(this);
  }
  get [$onSelectionChange]() {
    return html$.Document.selectionChangeEvent.forTarget(this);
  }
  get [$onSelectStart]() {
    return html$.Element.selectStartEvent.forTarget(this);
  }
  get [$onStalled]() {
    return html$.Element.stalledEvent.forTarget(this);
  }
  get [$onSubmit]() {
    return html$.Element.submitEvent.forTarget(this);
  }
  get [$onSuspend]() {
    return html$.Element.suspendEvent.forTarget(this);
  }
  get [$onTimeUpdate]() {
    return html$.Element.timeUpdateEvent.forTarget(this);
  }
  get [$onTouchCancel]() {
    return html$.Element.touchCancelEvent.forTarget(this);
  }
  get [$onTouchEnd]() {
    return html$.Element.touchEndEvent.forTarget(this);
  }
  get [$onTouchMove]() {
    return html$.Element.touchMoveEvent.forTarget(this);
  }
  get [$onTouchStart]() {
    return html$.Element.touchStartEvent.forTarget(this);
  }
  get [$onVolumeChange]() {
    return html$.Element.volumeChangeEvent.forTarget(this);
  }
  get [$onWaiting]() {
    return html$.Element.waitingEvent.forTarget(this);
  }
  get [$onFullscreenChange]() {
    return html$.Element.fullscreenChangeEvent.forTarget(this);
  }
  get [$onFullscreenError]() {
    return html$.Element.fullscreenErrorEvent.forTarget(this);
  }
  [$querySelectorAll](T, selectors) {
    return new (html$._FrozenElementList$(T))._wrap(this[_querySelectorAll](selectors));
  }
  get [$supportsRegisterElement]() {
    return "registerElement" in this;
  }
  get [$supportsRegister]() {
    return this[$supportsRegisterElement];
  }
  [$registerElement](tag, customElementClass, opts) {
    let extendsTag = opts && 'extendsTag' in opts ? opts.extendsTag : null;
    this[$registerElement2](tag, new _js_helper.LinkedMap.from(["prototype", customElementClass, "extends", extendsTag]));
  }
  [$createElement](tagName, typeExtension = null) {
    return html$.Element.as(typeExtension == null ? this[_createElement_2](tagName) : this[_createElement](tagName, typeExtension));
  }
  [_createElement_2](tagName) {
    return this.createElement(tagName);
  }
  [_createElementNS_2](namespaceURI, qualifiedName) {
    return this.createElementNS(namespaceURI, qualifiedName);
  }
  [$createElementNS](namespaceURI, qualifiedName, typeExtension = null) {
    return html$.Element.as(typeExtension == null ? this[_createElementNS_2](namespaceURI, qualifiedName) : this[_createElementNS](namespaceURI, qualifiedName, typeExtension));
  }
  [_createNodeIterator](root, whatToShow = null, filter = null) {
    return this.createNodeIterator(root, whatToShow, filter, false);
  }
  [_createTreeWalker](root, whatToShow = null, filter = null) {
    return this.createTreeWalker(root, whatToShow, filter, false);
  }
  get [$visibilityState]() {
    return this.visibilityState || this.mozVisibilityState || this.msVisibilityState || this.webkitVisibilityState;
  }
};
dart.addTypeTests(html$.Document);
dart.addTypeCaches(html$.Document);
dart.setMethodSignature(html$.Document, () => ({
  __proto__: dart.getMethods(html$.Document.__proto__),
  [$adoptNode]: dart.fnType(html$.Node, [html$.Node]),
  [_caretRangeFromPoint]: dart.fnType(html$.Range, [core.int, core.int]),
  [$createDocumentFragment]: dart.fnType(html$.DocumentFragment, []),
  [_createElement]: dart.fnType(html$.Element, [core.String], [dart.dynamic]),
  [_createElementNS]: dart.fnType(html$.Element, [core.String, core.String], [dart.dynamic]),
  [_createEvent]: dart.fnType(html$.Event, [core.String]),
  [$createRange]: dart.fnType(html$.Range, []),
  [_createTextNode]: dart.fnType(html$.Text, [core.String]),
  [_createTouch]: dart.fnType(html$.Touch, [html$.Window, html$.EventTarget, core.int, core.num, core.num, core.num, core.num], [core.num, core.num, core.num, core.num]),
  [_createTouch_1]: dart.fnType(html$.Touch, [html$.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
  [_createTouch_2]: dart.fnType(html$.Touch, [html$.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
  [_createTouch_3]: dart.fnType(html$.Touch, [html$.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
  [_createTouch_4]: dart.fnType(html$.Touch, [html$.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
  [_createTouch_5]: dart.fnType(html$.Touch, [html$.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
  [_createTouchList]: dart.fnType(html$.TouchList, [html$.Touch]),
  [$execCommand]: dart.fnType(core.bool, [core.String], [core.bool, core.String]),
  [$exitFullscreen]: dart.fnType(dart.void, []),
  [$exitPointerLock]: dart.fnType(dart.void, []),
  [$getAnimations]: dart.fnType(core.List$(html$.Animation), []),
  [$getElementsByClassName]: dart.fnType(core.List$(html$.Node), [core.String]),
  [$getElementsByName]: dart.fnType(core.List$(html$.Node), [core.String]),
  [$getElementsByTagName]: dart.fnType(core.List$(html$.Node), [core.String]),
  [$importNode]: dart.fnType(html$.Node, [html$.Node], [core.bool]),
  [$queryCommandEnabled]: dart.fnType(core.bool, [core.String]),
  [$queryCommandIndeterm]: dart.fnType(core.bool, [core.String]),
  [$queryCommandState]: dart.fnType(core.bool, [core.String]),
  [$queryCommandSupported]: dart.fnType(core.bool, [core.String]),
  [$queryCommandValue]: dart.fnType(core.String, [core.String]),
  [$registerElement2]: dart.fnType(core.Function, [core.String], [core.Map]),
  [_registerElement2_1]: dart.fnType(core.Function, [dart.dynamic, dart.dynamic]),
  [_registerElement2_2]: dart.fnType(core.Function, [dart.dynamic]),
  [_webkitExitFullscreen]: dart.fnType(dart.void, []),
  [$getElementById]: dart.fnType(html$.Element, [core.String]),
  [_elementFromPoint]: dart.fnType(html$.Element, [core.int, core.int]),
  [$elementsFromPoint]: dart.fnType(core.List$(html$.Element), [core.int, core.int]),
  [$querySelector]: dart.fnType(html$.Element, [core.String]),
  [_querySelectorAll]: dart.fnType(core.List$(html$.Node), [core.String]),
  [$querySelectorAll]: dart.gFnType(T => [html$.ElementList$(T), [core.String]], T => [html$.Element]),
  [$registerElement]: dart.fnType(dart.void, [core.String, core.Type], {extendsTag: core.String}, {}),
  [$createElement]: dart.fnType(html$.Element, [core.String], [core.String]),
  [_createElement_2]: dart.fnType(dart.dynamic, [core.String]),
  [_createElementNS_2]: dart.fnType(dart.dynamic, [core.String, core.String]),
  [$createElementNS]: dart.fnType(html$.Element, [core.String, core.String], [core.String]),
  [_createNodeIterator]: dart.fnType(html$.NodeIterator, [html$.Node], [core.int, html$.NodeFilter]),
  [_createTreeWalker]: dart.fnType(html$.TreeWalker, [html$.Node], [core.int, html$.NodeFilter])
}));
dart.setGetterSignature(html$.Document, () => ({
  __proto__: dart.getGetters(html$.Document.__proto__),
  [$addressSpace]: core.String,
  [_body]: html$.HtmlElement,
  [$contentType]: core.String,
  [$cookie]: core.String,
  [$currentScript]: html$.ScriptElement,
  [$window]: html$.WindowBase,
  [_get_window]: dart.dynamic,
  [$documentElement]: html$.Element,
  [$domain]: core.String,
  [$fullscreenEnabled]: core.bool,
  [_head$]: html$.HeadElement,
  [$hidden]: core.bool,
  [$implementation]: html$.DomImplementation,
  [_lastModified]: core.String,
  [$origin]: core.String,
  [_preferredStylesheetSet]: core.String,
  [$readyState]: core.String,
  [_referrer]: core.String,
  [$rootElement]: svg$.SvgSvgElement,
  [$rootScroller]: html$.Element,
  [$scrollingElement]: html$.Element,
  [_selectedStylesheetSet]: core.String,
  [$suborigin]: core.String,
  [$timeline]: html$.DocumentTimeline,
  [_title]: core.String,
  [_visibilityState]: core.String,
  [_webkitFullscreenElement]: html$.Element,
  [_webkitFullscreenEnabled]: core.bool,
  [_webkitHidden]: core.bool,
  [_webkitVisibilityState]: core.String,
  [$activeElement]: html$.Element,
  [$fullscreenElement]: html$.Element,
  [$pointerLockElement]: html$.Element,
  [_styleSheets]: core.List$(html$.StyleSheet),
  [$fonts]: html$.FontFaceSet,
  [_childElementCount]: core.int,
  [_children]: core.List$(html$.Node),
  [_firstElementChild]: html$.Element,
  [_lastElementChild]: html$.Element,
  [$onAbort]: async.Stream$(html$.Event),
  [$onBeforeCopy]: async.Stream$(html$.Event),
  [$onBeforeCut]: async.Stream$(html$.Event),
  [$onBeforePaste]: async.Stream$(html$.Event),
  [$onBlur]: async.Stream$(html$.Event),
  [$onCanPlay]: async.Stream$(html$.Event),
  [$onCanPlayThrough]: async.Stream$(html$.Event),
  [$onChange]: async.Stream$(html$.Event),
  [$onClick]: async.Stream$(html$.MouseEvent),
  [$onContextMenu]: async.Stream$(html$.MouseEvent),
  [$onCopy]: async.Stream$(html$.ClipboardEvent),
  [$onCut]: async.Stream$(html$.ClipboardEvent),
  [$onDoubleClick]: async.Stream$(html$.Event),
  [$onDrag]: async.Stream$(html$.MouseEvent),
  [$onDragEnd]: async.Stream$(html$.MouseEvent),
  [$onDragEnter]: async.Stream$(html$.MouseEvent),
  [$onDragLeave]: async.Stream$(html$.MouseEvent),
  [$onDragOver]: async.Stream$(html$.MouseEvent),
  [$onDragStart]: async.Stream$(html$.MouseEvent),
  [$onDrop]: async.Stream$(html$.MouseEvent),
  [$onDurationChange]: async.Stream$(html$.Event),
  [$onEmptied]: async.Stream$(html$.Event),
  [$onEnded]: async.Stream$(html$.Event),
  [$onError]: async.Stream$(html$.Event),
  [$onFocus]: async.Stream$(html$.Event),
  [$onInput]: async.Stream$(html$.Event),
  [$onInvalid]: async.Stream$(html$.Event),
  [$onKeyDown]: async.Stream$(html$.KeyboardEvent),
  [$onKeyPress]: async.Stream$(html$.KeyboardEvent),
  [$onKeyUp]: async.Stream$(html$.KeyboardEvent),
  [$onLoad]: async.Stream$(html$.Event),
  [$onLoadedData]: async.Stream$(html$.Event),
  [$onLoadedMetadata]: async.Stream$(html$.Event),
  [$onMouseDown]: async.Stream$(html$.MouseEvent),
  [$onMouseEnter]: async.Stream$(html$.MouseEvent),
  [$onMouseLeave]: async.Stream$(html$.MouseEvent),
  [$onMouseMove]: async.Stream$(html$.MouseEvent),
  [$onMouseOut]: async.Stream$(html$.MouseEvent),
  [$onMouseOver]: async.Stream$(html$.MouseEvent),
  [$onMouseUp]: async.Stream$(html$.MouseEvent),
  [$onMouseWheel]: async.Stream$(html$.WheelEvent),
  [$onPaste]: async.Stream$(html$.ClipboardEvent),
  [$onPause]: async.Stream$(html$.Event),
  [$onPlay]: async.Stream$(html$.Event),
  [$onPlaying]: async.Stream$(html$.Event),
  [$onPointerLockChange]: async.Stream$(html$.Event),
  [$onPointerLockError]: async.Stream$(html$.Event),
  [$onRateChange]: async.Stream$(html$.Event),
  [$onReadyStateChange]: async.Stream$(html$.Event),
  [$onReset]: async.Stream$(html$.Event),
  [$onResize]: async.Stream$(html$.Event),
  [$onScroll]: async.Stream$(html$.Event),
  [$onSearch]: async.Stream$(html$.Event),
  [$onSecurityPolicyViolation]: async.Stream$(html$.SecurityPolicyViolationEvent),
  [$onSeeked]: async.Stream$(html$.Event),
  [$onSeeking]: async.Stream$(html$.Event),
  [$onSelect]: async.Stream$(html$.Event),
  [$onSelectionChange]: async.Stream$(html$.Event),
  [$onSelectStart]: async.Stream$(html$.Event),
  [$onStalled]: async.Stream$(html$.Event),
  [$onSubmit]: async.Stream$(html$.Event),
  [$onSuspend]: async.Stream$(html$.Event),
  [$onTimeUpdate]: async.Stream$(html$.Event),
  [$onTouchCancel]: async.Stream$(html$.TouchEvent),
  [$onTouchEnd]: async.Stream$(html$.TouchEvent),
  [$onTouchMove]: async.Stream$(html$.TouchEvent),
  [$onTouchStart]: async.Stream$(html$.TouchEvent),
  [$onVolumeChange]: async.Stream$(html$.Event),
  [$onWaiting]: async.Stream$(html$.Event),
  [$onFullscreenChange]: async.Stream$(html$.Event),
  [$onFullscreenError]: async.Stream$(html$.Event),
  [$supportsRegisterElement]: core.bool,
  [$supportsRegister]: core.bool,
  [$visibilityState]: core.String
}));
dart.setSetterSignature(html$.Document, () => ({
  __proto__: dart.getSetters(html$.Document.__proto__),
  [_body]: html$.HtmlElement,
  [$cookie]: core.String,
  [$rootScroller]: html$.Element,
  [_selectedStylesheetSet]: core.String,
  [_title]: core.String
}));
dart.setLibraryUri(html$.Document, L65);
dart.defineLazy(html$.Document, {
  /*html$.Document.pointerLockChangeEvent*/get pointerLockChangeEvent() {
    return C323 || CT.C323;
  },
  /*html$.Document.pointerLockErrorEvent*/get pointerLockErrorEvent() {
    return C324 || CT.C324;
  },
  /*html$.Document.readyStateChangeEvent*/get readyStateChangeEvent() {
    return C325 || CT.C325;
  },
  /*html$.Document.securityPolicyViolationEvent*/get securityPolicyViolationEvent() {
    return C326 || CT.C326;
  },
  /*html$.Document.selectionChangeEvent*/get selectionChangeEvent() {
    return C327 || CT.C327;
  }
}, true);
dart.registerExtension("Document", html$.Document);
var _docChildren = dart.privateName(html$, "_docChildren");
html$.DocumentFragment = class DocumentFragment extends html$.Node {
  get [_docChildren]() {
    return this._docChildren;
  }
  set [_docChildren](value) {
    this._docChildren = value;
  }
  static new() {
    return html$.document.createDocumentFragment();
  }
  static html(html, opts) {
    let validator = opts && 'validator' in opts ? opts.validator : null;
    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
    return html$.document.body[$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
  }
  static svg(svgContent, opts) {
    let validator = opts && 'validator' in opts ? opts.validator : null;
    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
    return svg$.SvgSvgElement.new()[$createFragment](svgContent, {validator: validator, treeSanitizer: treeSanitizer});
  }
  get [_children]() {
    return dart.throw(new core.UnimplementedError.new("Use _docChildren instead"));
  }
  get [$children]() {
    if (this[_docChildren] == null) {
      this[_docChildren] = new html_common.FilteredElementList.new(this);
    }
    return this[_docChildren];
  }
  set [$children](value) {
    let copy = value[$toList]();
    let children = this[$children];
    children[$clear]();
    children[$addAll](copy);
  }
  [$querySelectorAll](T, selectors) {
    return new (html$._FrozenElementList$(T))._wrap(this[_querySelectorAll](selectors));
  }
  get [$innerHtml]() {
    let e = html$.DivElement.new();
    e[$append](this[$clone](true));
    return e[$innerHtml];
  }
  set [$innerHtml](value) {
    this[$setInnerHtml](value);
  }
  [$setInnerHtml](html, opts) {
    let validator = opts && 'validator' in opts ? opts.validator : null;
    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
    this[$nodes][$clear]();
    this[$append](html$.document.body[$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer}));
  }
  [$appendText](text) {
    this[$append](html$.Text.new(text));
  }
  [$appendHtml](text, opts) {
    let validator = opts && 'validator' in opts ? opts.validator : null;
    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
    this[$append](html$.DocumentFragment.html(text, {validator: validator, treeSanitizer: treeSanitizer}));
  }
  [$getElementById](...args) {
    return this.getElementById.apply(this, args);
  }
  get [_childElementCount]() {
    return this.childElementCount;
  }
  get [_firstElementChild]() {
    return this.firstElementChild;
  }
  get [_lastElementChild]() {
    return this.lastElementChild;
  }
  [$querySelector](...args) {
    return this.querySelector.apply(this, args);
  }
  [_querySelectorAll](...args) {
    return this.querySelectorAll.apply(this, args);
  }
};
dart.addTypeTests(html$.DocumentFragment);
dart.addTypeCaches(html$.DocumentFragment);
html$.DocumentFragment[dart.implements] = () => [html$.NonElementParentNode, html$.ParentNode];
dart.setMethodSignature(html$.DocumentFragment, () => ({
  __proto__: dart.getMethods(html$.DocumentFragment.__proto__),
  [$querySelectorAll]: dart.gFnType(T => [html$.ElementList$(T), [core.String]], T => [html$.Element]),
  [$setInnerHtml]: dart.fnType(dart.void, [core.String], {treeSanitizer: html$.NodeTreeSanitizer, validator: html$.NodeValidator}, {}),
  [$appendText]: dart.fnType(dart.void, [core.String]),
  [$appendHtml]: dart.fnType(dart.void, [core.String], {treeSanitizer: html$.NodeTreeSanitizer, validator: html$.NodeValidator}, {}),
  [$getElementById]: dart.fnType(html$.Element, [core.String]),
  [$querySelector]: dart.fnType(html$.Element, [core.String]),
  [_querySelectorAll]: dart.fnType(core.List$(html$.Node), [core.String])
}));
dart.setGetterSignature(html$.DocumentFragment, () => ({
  __proto__: dart.getGetters(html$.DocumentFragment.__proto__),
  [_children]: html$.HtmlCollection,
  [$children]: core.List$(html$.Element),
  [$innerHtml]: core.String,
  [_childElementCount]: core.int,
  [_firstElementChild]: html$.Element,
  [_lastElementChild]: html$.Element
}));
dart.setSetterSignature(html$.DocumentFragment, () => ({
  __proto__: dart.getSetters(html$.DocumentFragment.__proto__),
  [$children]: core.List$(html$.Element),
  [$innerHtml]: core.String
}));
dart.setLibraryUri(html$.DocumentFragment, L65);
dart.setFieldSignature(html$.DocumentFragment, () => ({
  __proto__: dart.getFields(html$.DocumentFragment.__proto__),
  [_docChildren]: dart.fieldType(core.List$(html$.Element))
}));
dart.registerExtension("DocumentFragment", html$.DocumentFragment);
html$.DocumentOrShadowRoot = class DocumentOrShadowRoot extends _interceptors.Interceptor {
  get [$activeElement]() {
    return this.activeElement;
  }
  get [$fullscreenElement]() {
    return this.fullscreenElement;
  }
  get [$pointerLockElement]() {
    return this.pointerLockElement;
  }
  get [$styleSheets]() {
    return this.styleSheets;
  }
  [$elementFromPoint](...args) {
    return this.elementFromPoint.apply(this, args);
  }
  [$elementsFromPoint](...args) {
    return this.elementsFromPoint.apply(this, args);
  }
  [$getSelection](...args) {
    return this.getSelection.apply(this, args);
  }
};
dart.addTypeTests(html$.DocumentOrShadowRoot);
dart.addTypeCaches(html$.DocumentOrShadowRoot);
dart.setMethodSignature(html$.DocumentOrShadowRoot, () => ({
  __proto__: dart.getMethods(html$.DocumentOrShadowRoot.__proto__),
  [$elementFromPoint]: dart.fnType(html$.Element, [core.int, core.int]),
  [$elementsFromPoint]: dart.fnType(core.List$(html$.Element), [core.int, core.int]),
  [$getSelection]: dart.fnType(html$.Selection, [])
}));
dart.setGetterSignature(html$.DocumentOrShadowRoot, () => ({
  __proto__: dart.getGetters(html$.DocumentOrShadowRoot.__proto__),
  [$activeElement]: html$.Element,
  [$fullscreenElement]: html$.Element,
  [$pointerLockElement]: html$.Element,
  [$styleSheets]: core.List$(html$.StyleSheet)
}));
dart.setLibraryUri(html$.DocumentOrShadowRoot, L65);
dart.registerExtension("DocumentOrShadowRoot", html$.DocumentOrShadowRoot);
html$.DocumentTimeline = class DocumentTimeline$ extends html$.AnimationTimeline {
  static new(options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return html$.DocumentTimeline._create_1(options_1);
    }
    return html$.DocumentTimeline._create_2();
  }
  static _create_1(options) {
    return new DocumentTimeline(options);
  }
  static _create_2() {
    return new DocumentTimeline();
  }
};
dart.addTypeTests(html$.DocumentTimeline);
dart.addTypeCaches(html$.DocumentTimeline);
dart.setLibraryUri(html$.DocumentTimeline, L65);
dart.registerExtension("DocumentTimeline", html$.DocumentTimeline);
html$.DomError = class DomError extends _interceptors.Interceptor {
  static new(name, message = null) {
    if (message != null) {
      return html$.DomError._create_1(name, message);
    }
    return html$.DomError._create_2(name);
  }
  static _create_1(name, message) {
    return new DOMError(name, message);
  }
  static _create_2(name) {
    return new DOMError(name);
  }
  get [$message]() {
    return this.message;
  }
  get [$name]() {
    return this.name;
  }
};
dart.addTypeTests(html$.DomError);
dart.addTypeCaches(html$.DomError);
dart.setGetterSignature(html$.DomError, () => ({
  __proto__: dart.getGetters(html$.DomError.__proto__),
  [$message]: core.String,
  [$name]: core.String
}));
dart.setLibraryUri(html$.DomError, L65);
dart.registerExtension("DOMError", html$.DomError);
html$.DomException = class DomException extends _interceptors.Interceptor {
  get [$name]() {
    let errorName = this.name;
    if (dart.test(html_common.Device.isWebKit) && errorName[$_equals]("SECURITY_ERR")) return "SecurityError";
    if (dart.test(html_common.Device.isWebKit) && errorName[$_equals]("SYNTAX_ERR")) return "SyntaxError";
    return core.String.as(errorName);
  }
  get [$message]() {
    return this.message;
  }
  [$toString]() {
    return String(this);
  }
};
dart.addTypeTests(html$.DomException);
dart.addTypeCaches(html$.DomException);
dart.setGetterSignature(html$.DomException, () => ({
  __proto__: dart.getGetters(html$.DomException.__proto__),
  [$name]: core.String,
  [$message]: core.String
}));
dart.setLibraryUri(html$.DomException, L65);
dart.defineLazy(html$.DomException, {
  /*html$.DomException.INDEX_SIZE*/get INDEX_SIZE() {
    return "IndexSizeError";
  },
  /*html$.DomException.HIERARCHY_REQUEST*/get HIERARCHY_REQUEST() {
    return "HierarchyRequestError";
  },
  /*html$.DomException.WRONG_DOCUMENT*/get WRONG_DOCUMENT() {
    return "WrongDocumentError";
  },
  /*html$.DomException.INVALID_CHARACTER*/get INVALID_CHARACTER() {
    return "InvalidCharacterError";
  },
  /*html$.DomException.NO_MODIFICATION_ALLOWED*/get NO_MODIFICATION_ALLOWED() {
    return "NoModificationAllowedError";
  },
  /*html$.DomException.NOT_FOUND*/get NOT_FOUND() {
    return "NotFoundError";
  },
  /*html$.DomException.NOT_SUPPORTED*/get NOT_SUPPORTED() {
    return "NotSupportedError";
  },
  /*html$.DomException.INVALID_STATE*/get INVALID_STATE() {
    return "InvalidStateError";
  },
  /*html$.DomException.SYNTAX*/get SYNTAX() {
    return "SyntaxError";
  },
  /*html$.DomException.INVALID_MODIFICATION*/get INVALID_MODIFICATION() {
    return "InvalidModificationError";
  },
  /*html$.DomException.NAMESPACE*/get NAMESPACE() {
    return "NamespaceError";
  },
  /*html$.DomException.INVALID_ACCESS*/get INVALID_ACCESS() {
    return "InvalidAccessError";
  },
  /*html$.DomException.TYPE_MISMATCH*/get TYPE_MISMATCH() {
    return "TypeMismatchError";
  },
  /*html$.DomException.SECURITY*/get SECURITY() {
    return "SecurityError";
  },
  /*html$.DomException.NETWORK*/get NETWORK() {
    return "NetworkError";
  },
  /*html$.DomException.ABORT*/get ABORT() {
    return "AbortError";
  },
  /*html$.DomException.URL_MISMATCH*/get URL_MISMATCH() {
    return "URLMismatchError";
  },
  /*html$.DomException.QUOTA_EXCEEDED*/get QUOTA_EXCEEDED() {
    return "QuotaExceededError";
  },
  /*html$.DomException.TIMEOUT*/get TIMEOUT() {
    return "TimeoutError";
  },
  /*html$.DomException.INVALID_NODE_TYPE*/get INVALID_NODE_TYPE() {
    return "InvalidNodeTypeError";
  },
  /*html$.DomException.DATA_CLONE*/get DATA_CLONE() {
    return "DataCloneError";
  },
  /*html$.DomException.ENCODING*/get ENCODING() {
    return "EncodingError";
  },
  /*html$.DomException.NOT_READABLE*/get NOT_READABLE() {
    return "NotReadableError";
  },
  /*html$.DomException.UNKNOWN*/get UNKNOWN() {
    return "UnknownError";
  },
  /*html$.DomException.CONSTRAINT*/get CONSTRAINT() {
    return "ConstraintError";
  },
  /*html$.DomException.TRANSACTION_INACTIVE*/get TRANSACTION_INACTIVE() {
    return "TransactionInactiveError";
  },
  /*html$.DomException.READ_ONLY*/get READ_ONLY() {
    return "ReadOnlyError";
  },
  /*html$.DomException.VERSION*/get VERSION() {
    return "VersionError";
  },
  /*html$.DomException.OPERATION*/get OPERATION() {
    return "OperationError";
  },
  /*html$.DomException.NOT_ALLOWED*/get NOT_ALLOWED() {
    return "NotAllowedError";
  },
  /*html$.DomException.TYPE_ERROR*/get TYPE_ERROR() {
    return "TypeError";
  }
}, true);
dart.registerExtension("DOMException", html$.DomException);
html$.DomImplementation = class DomImplementation extends _interceptors.Interceptor {
  [$createDocument](...args) {
    return this.createDocument.apply(this, args);
  }
  [$createDocumentType](...args) {
    return this.createDocumentType.apply(this, args);
  }
  [$createHtmlDocument](...args) {
    return this.createHTMLDocument.apply(this, args);
  }
  [$hasFeature](...args) {
    return this.hasFeature.apply(this, args);
  }
};
dart.addTypeTests(html$.DomImplementation);
dart.addTypeCaches(html$.DomImplementation);
dart.setMethodSignature(html$.DomImplementation, () => ({
  __proto__: dart.getMethods(html$.DomImplementation.__proto__),
  [$createDocument]: dart.fnType(html$.XmlDocument, [core.String, core.String, html$._DocumentType]),
  [$createDocumentType]: dart.fnType(html$._DocumentType, [core.String, core.String, core.String]),
  [$createHtmlDocument]: dart.fnType(html$.HtmlDocument, [], [core.String]),
  [$hasFeature]: dart.fnType(core.bool, [])
}));
dart.setLibraryUri(html$.DomImplementation, L65);
dart.registerExtension("DOMImplementation", html$.DomImplementation);
html$.DomIterator = class DomIterator extends _interceptors.Interceptor {
  [$next](...args) {
    return this.next.apply(this, args);
  }
};
dart.addTypeTests(html$.DomIterator);
dart.addTypeCaches(html$.DomIterator);
dart.setMethodSignature(html$.DomIterator, () => ({
  __proto__: dart.getMethods(html$.DomIterator.__proto__),
  [$next]: dart.fnType(core.Object, [], [core.Object])
}));
dart.setLibraryUri(html$.DomIterator, L65);
dart.registerExtension("Iterator", html$.DomIterator);
var _multiplySelf_1 = dart.privateName(html$, "_multiplySelf_1");
var _multiplySelf_2 = dart.privateName(html$, "_multiplySelf_2");
var _preMultiplySelf_1 = dart.privateName(html$, "_preMultiplySelf_1");
var _preMultiplySelf_2 = dart.privateName(html$, "_preMultiplySelf_2");
var _multiply_1 = dart.privateName(html$, "_multiply_1");
var _multiply_2 = dart.privateName(html$, "_multiply_2");
var _transformPoint_1 = dart.privateName(html$, "_transformPoint_1");
var _transformPoint_2 = dart.privateName(html$, "_transformPoint_2");
html$.DomMatrixReadOnly = class DomMatrixReadOnly extends _interceptors.Interceptor {
  static new(init = null) {
    if (init != null) {
      return html$.DomMatrixReadOnly._create_1(init);
    }
    return html$.DomMatrixReadOnly._create_2();
  }
  static _create_1(init) {
    return new DOMMatrixReadOnly(init);
  }
  static _create_2() {
    return new DOMMatrixReadOnly();
  }
  get [$a]() {
    return this.a;
  }
  get [$b]() {
    return this.b;
  }
  get [$c]() {
    return this.c;
  }
  get [$d]() {
    return this.d;
  }
  get [$e]() {
    return this.e;
  }
  get [$f]() {
    return this.f;
  }
  get [$is2D]() {
    return this.is2D;
  }
  get [$isIdentity]() {
    return this.isIdentity;
  }
  get [$m11]() {
    return this.m11;
  }
  get [$m12]() {
    return this.m12;
  }
  get [$m13]() {
    return this.m13;
  }
  get [$m14]() {
    return this.m14;
  }
  get [$m21]() {
    return this.m21;
  }
  get [$m22]() {
    return this.m22;
  }
  get [$m23]() {
    return this.m23;
  }
  get [$m24]() {
    return this.m24;
  }
  get [$m31]() {
    return this.m31;
  }
  get [$m32]() {
    return this.m32;
  }
  get [$m33]() {
    return this.m33;
  }
  get [$m34]() {
    return this.m34;
  }
  get [$m41]() {
    return this.m41;
  }
  get [$m42]() {
    return this.m42;
  }
  get [$m43]() {
    return this.m43;
  }
  get [$m44]() {
    return this.m44;
  }
  [$flipX](...args) {
    return this.flipX.apply(this, args);
  }
  [$flipY](...args) {
    return this.flipY.apply(this, args);
  }
  static fromMatrix(other = null) {
    if (other != null) {
      let other_1 = html_common.convertDartToNative_Dictionary(other);
      return dart.global.DOMMatrixReadOnly.fromMatrix(other_1);
    }
    return dart.global.DOMMatrixReadOnly.fromMatrix();
  }
  [$inverse](...args) {
    return this.inverse.apply(this, args);
  }
  [$multiply](other = null) {
    if (other != null) {
      let other_1 = html_common.convertDartToNative_Dictionary(other);
      return this[_multiply_1](other_1);
    }
    return this[_multiply_2]();
  }
  [_multiply_1](...args) {
    return this.multiply.apply(this, args);
  }
  [_multiply_2](...args) {
    return this.multiply.apply(this, args);
  }
  [$rotate](...args) {
    return this.rotate.apply(this, args);
  }
  [$rotateAxisAngle](...args) {
    return this.rotateAxisAngle.apply(this, args);
  }
  [$rotateFromVector](...args) {
    return this.rotateFromVector.apply(this, args);
  }
  [$scale](...args) {
    return this.scale.apply(this, args);
  }
  [$scale3d](...args) {
    return this.scale3d.apply(this, args);
  }
  [$skewX](...args) {
    return this.skewX.apply(this, args);
  }
  [$skewY](...args) {
    return this.skewY.apply(this, args);
  }
  [$toFloat32Array](...args) {
    return this.toFloat32Array.apply(this, args);
  }
  [$toFloat64Array](...args) {
    return this.toFloat64Array.apply(this, args);
  }
  [$transformPoint](point = null) {
    if (point != null) {
      let point_1 = html_common.convertDartToNative_Dictionary(point);
      return this[_transformPoint_1](point_1);
    }
    return this[_transformPoint_2]();
  }
  [_transformPoint_1](...args) {
    return this.transformPoint.apply(this, args);
  }
  [_transformPoint_2](...args) {
    return this.transformPoint.apply(this, args);
  }
  [$translate](...args) {
    return this.translate.apply(this, args);
  }
};
dart.addTypeTests(html$.DomMatrixReadOnly);
dart.addTypeCaches(html$.DomMatrixReadOnly);
dart.setMethodSignature(html$.DomMatrixReadOnly, () => ({
  __proto__: dart.getMethods(html$.DomMatrixReadOnly.__proto__),
  [$flipX]: dart.fnType(html$.DomMatrix, []),
  [$flipY]: dart.fnType(html$.DomMatrix, []),
  [$inverse]: dart.fnType(html$.DomMatrix, []),
  [$multiply]: dart.fnType(html$.DomMatrix, [], [core.Map]),
  [_multiply_1]: dart.fnType(html$.DomMatrix, [dart.dynamic]),
  [_multiply_2]: dart.fnType(html$.DomMatrix, []),
  [$rotate]: dart.fnType(html$.DomMatrix, [], [core.num, core.num, core.num]),
  [$rotateAxisAngle]: dart.fnType(html$.DomMatrix, [], [core.num, core.num, core.num, core.num]),
  [$rotateFromVector]: dart.fnType(html$.DomMatrix, [], [core.num, core.num]),
  [$scale]: dart.fnType(html$.DomMatrix, [], [core.num, core.num, core.num, core.num, core.num, core.num]),
  [$scale3d]: dart.fnType(html$.DomMatrix, [], [core.num, core.num, core.num, core.num]),
  [$skewX]: dart.fnType(html$.DomMatrix, [], [core.num]),
  [$skewY]: dart.fnType(html$.DomMatrix, [], [core.num]),
  [$toFloat32Array]: dart.fnType(typed_data.Float32List, []),
  [$toFloat64Array]: dart.fnType(typed_data.Float64List, []),
  [$transformPoint]: dart.fnType(html$.DomPoint, [], [core.Map]),
  [_transformPoint_1]: dart.fnType(html$.DomPoint, [dart.dynamic]),
  [_transformPoint_2]: dart.fnType(html$.DomPoint, []),
  [$translate]: dart.fnType(html$.DomMatrix, [], [core.num, core.num, core.num])
}));
dart.setGetterSignature(html$.DomMatrixReadOnly, () => ({
  __proto__: dart.getGetters(html$.DomMatrixReadOnly.__proto__),
  [$a]: core.num,
  [$b]: core.num,
  [$c]: core.num,
  [$d]: core.num,
  [$e]: core.num,
  [$f]: core.num,
  [$is2D]: core.bool,
  [$isIdentity]: core.bool,
  [$m11]: core.num,
  [$m12]: core.num,
  [$m13]: core.num,
  [$m14]: core.num,
  [$m21]: core.num,
  [$m22]: core.num,
  [$m23]: core.num,
  [$m24]: core.num,
  [$m31]: core.num,
  [$m32]: core.num,
  [$m33]: core.num,
  [$m34]: core.num,
  [$m41]: core.num,
  [$m42]: core.num,
  [$m43]: core.num,
  [$m44]: core.num
}));
dart.setLibraryUri(html$.DomMatrixReadOnly, L65);
dart.registerExtension("DOMMatrixReadOnly", html$.DomMatrixReadOnly);
html$.DomMatrix = class DomMatrix extends html$.DomMatrixReadOnly {
  static new(init = null) {
    if (init != null) {
      return html$.DomMatrix._create_1(init);
    }
    return html$.DomMatrix._create_2();
  }
  static _create_1(init) {
    return new DOMMatrix(init);
  }
  static _create_2() {
    return new DOMMatrix();
  }
  get [$a]() {
    return this.a;
  }
  set [$a](value) {
    this.a = value;
  }
  get [$b]() {
    return this.b;
  }
  set [$b](value) {
    this.b = value;
  }
  get [$c]() {
    return this.c;
  }
  set [$c](value) {
    this.c = value;
  }
  get [$d]() {
    return this.d;
  }
  set [$d](value) {
    this.d = value;
  }
  get [$e]() {
    return this.e;
  }
  set [$e](value) {
    this.e = value;
  }
  get [$f]() {
    return this.f;
  }
  set [$f](value) {
    this.f = value;
  }
  get [$m11]() {
    return this.m11;
  }
  set [$m11](value) {
    this.m11 = value;
  }
  get [$m12]() {
    return this.m12;
  }
  set [$m12](value) {
    this.m12 = value;
  }
  get [$m13]() {
    return this.m13;
  }
  set [$m13](value) {
    this.m13 = value;
  }
  get [$m14]() {
    return this.m14;
  }
  set [$m14](value) {
    this.m14 = value;
  }
  get [$m21]() {
    return this.m21;
  }
  set [$m21](value) {
    this.m21 = value;
  }
  get [$m22]() {
    return this.m22;
  }
  set [$m22](value) {
    this.m22 = value;
  }
  get [$m23]() {
    return this.m23;
  }
  set [$m23](value) {
    this.m23 = value;
  }
  get [$m24]() {
    return this.m24;
  }
  set [$m24](value) {
    this.m24 = value;
  }
  get [$m31]() {
    return this.m31;
  }
  set [$m31](value) {
    this.m31 = value;
  }
  get [$m32]() {
    return this.m32;
  }
  set [$m32](value) {
    this.m32 = value;
  }
  get [$m33]() {
    return this.m33;
  }
  set [$m33](value) {
    this.m33 = value;
  }
  get [$m34]() {
    return this.m34;
  }
  set [$m34](value) {
    this.m34 = value;
  }
  get [$m41]() {
    return this.m41;
  }
  set [$m41](value) {
    this.m41 = value;
  }
  get [$m42]() {
    return this.m42;
  }
  set [$m42](value) {
    this.m42 = value;
  }
  get [$m43]() {
    return this.m43;
  }
  set [$m43](value) {
    this.m43 = value;
  }
  get [$m44]() {
    return this.m44;
  }
  set [$m44](value) {
    this.m44 = value;
  }
  static fromMatrix(other = null) {
    if (other != null) {
      let other_1 = html_common.convertDartToNative_Dictionary(other);
      return dart.global.DOMMatrix.fromMatrix(other_1);
    }
    return dart.global.DOMMatrix.fromMatrix();
  }
  [$invertSelf](...args) {
    return this.invertSelf.apply(this, args);
  }
  [$multiplySelf](other = null) {
    if (other != null) {
      let other_1 = html_common.convertDartToNative_Dictionary(other);
      return this[_multiplySelf_1](other_1);
    }
    return this[_multiplySelf_2]();
  }
  [_multiplySelf_1](...args) {
    return this.multiplySelf.apply(this, args);
  }
  [_multiplySelf_2](...args) {
    return this.multiplySelf.apply(this, args);
  }
  [$preMultiplySelf](other = null) {
    if (other != null) {
      let other_1 = html_common.convertDartToNative_Dictionary(other);
      return this[_preMultiplySelf_1](other_1);
    }
    return this[_preMultiplySelf_2]();
  }
  [_preMultiplySelf_1](...args) {
    return this.preMultiplySelf.apply(this, args);
  }
  [_preMultiplySelf_2](...args) {
    return this.preMultiplySelf.apply(this, args);
  }
  [$rotateAxisAngleSelf](...args) {
    return this.rotateAxisAngleSelf.apply(this, args);
  }
  [$rotateFromVectorSelf](...args) {
    return this.rotateFromVectorSelf.apply(this, args);
  }
  [$rotateSelf](...args) {
    return this.rotateSelf.apply(this, args);
  }
  [$scale3dSelf](...args) {
    return this.scale3dSelf.apply(this, args);
  }
  [$scaleSelf](...args) {
    return this.scaleSelf.apply(this, args);
  }
  [$setMatrixValue](...args) {
    return this.setMatrixValue.apply(this, args);
  }
  [$skewXSelf](...args) {
    return this.skewXSelf.apply(this, args);
  }
  [$skewYSelf](...args) {
    return this.skewYSelf.apply(this, args);
  }
  [$translateSelf](...args) {
    return this.translateSelf.apply(this, args);
  }
};
dart.addTypeTests(html$.DomMatrix);
dart.addTypeCaches(html$.DomMatrix);
dart.setMethodSignature(html$.DomMatrix, () => ({
  __proto__: dart.getMethods(html$.DomMatrix.__proto__),
  [$invertSelf]: dart.fnType(html$.DomMatrix, []),
  [$multiplySelf]: dart.fnType(html$.DomMatrix, [], [core.Map]),
  [_multiplySelf_1]: dart.fnType(html$.DomMatrix, [dart.dynamic]),
  [_multiplySelf_2]: dart.fnType(html$.DomMatrix, []),
  [$preMultiplySelf]: dart.fnType(html$.DomMatrix, [], [core.Map]),
  [_preMultiplySelf_1]: dart.fnType(html$.DomMatrix, [dart.dynamic]),
  [_preMultiplySelf_2]: dart.fnType(html$.DomMatrix, []),
  [$rotateAxisAngleSelf]: dart.fnType(html$.DomMatrix, [], [core.num, core.num, core.num, core.num]),
  [$rotateFromVectorSelf]: dart.fnType(html$.DomMatrix, [], [core.num, core.num]),
  [$rotateSelf]: dart.fnType(html$.DomMatrix, [], [core.num, core.num, core.num]),
  [$scale3dSelf]: dart.fnType(html$.DomMatrix, [], [core.num, core.num, core.num, core.num]),
  [$scaleSelf]: dart.fnType(html$.DomMatrix, [], [core.num, core.num, core.num, core.num, core.num, core.num]),
  [$setMatrixValue]: dart.fnType(html$.DomMatrix, [core.String]),
  [$skewXSelf]: dart.fnType(html$.DomMatrix, [], [core.num]),
  [$skewYSelf]: dart.fnType(html$.DomMatrix, [], [core.num]),
  [$translateSelf]: dart.fnType(html$.DomMatrix, [], [core.num, core.num, core.num])
}));
dart.setSetterSignature(html$.DomMatrix, () => ({
  __proto__: dart.getSetters(html$.DomMatrix.__proto__),
  [$a]: core.num,
  [$b]: core.num,
  [$c]: core.num,
  [$d]: core.num,
  [$e]: core.num,
  [$f]: core.num,
  [$m11]: core.num,
  [$m12]: core.num,
  [$m13]: core.num,
  [$m14]: core.num,
  [$m21]: core.num,
  [$m22]: core.num,
  [$m23]: core.num,
  [$m24]: core.num,
  [$m31]: core.num,
  [$m32]: core.num,
  [$m33]: core.num,
  [$m34]: core.num,
  [$m41]: core.num,
  [$m42]: core.num,
  [$m43]: core.num,
  [$m44]: core.num
}));
dart.setLibraryUri(html$.DomMatrix, L65);
dart.registerExtension("DOMMatrix", html$.DomMatrix);
html$.DomParser = class DomParser extends _interceptors.Interceptor {
  static new() {
    return html$.DomParser._create_1();
  }
  static _create_1() {
    return new DOMParser();
  }
  [$parseFromString](...args) {
    return this.parseFromString.apply(this, args);
  }
};
dart.addTypeTests(html$.DomParser);
dart.addTypeCaches(html$.DomParser);
dart.setMethodSignature(html$.DomParser, () => ({
  __proto__: dart.getMethods(html$.DomParser.__proto__),
  [$parseFromString]: dart.fnType(html$.Document, [core.String, core.String])
}));
dart.setLibraryUri(html$.DomParser, L65);
dart.registerExtension("DOMParser", html$.DomParser);
var _matrixTransform_1 = dart.privateName(html$, "_matrixTransform_1");
var _matrixTransform_2 = dart.privateName(html$, "_matrixTransform_2");
html$.DomPointReadOnly = class DomPointReadOnly extends _interceptors.Interceptor {
  static new(x = null, y = null, z = null, w = null) {
    if (w != null) {
      return html$.DomPointReadOnly._create_1(x, y, z, w);
    }
    if (z != null) {
      return html$.DomPointReadOnly._create_2(x, y, z);
    }
    if (y != null) {
      return html$.DomPointReadOnly._create_3(x, y);
    }
    if (x != null) {
      return html$.DomPointReadOnly._create_4(x);
    }
    return html$.DomPointReadOnly._create_5();
  }
  static _create_1(x, y, z, w) {
    return new DOMPointReadOnly(x, y, z, w);
  }
  static _create_2(x, y, z) {
    return new DOMPointReadOnly(x, y, z);
  }
  static _create_3(x, y) {
    return new DOMPointReadOnly(x, y);
  }
  static _create_4(x) {
    return new DOMPointReadOnly(x);
  }
  static _create_5() {
    return new DOMPointReadOnly();
  }
  get [$w]() {
    return this.w;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
  get [$z]() {
    return this.z;
  }
  static fromPoint(other = null) {
    if (other != null) {
      let other_1 = html_common.convertDartToNative_Dictionary(other);
      return dart.global.DOMPointReadOnly.fromPoint(other_1);
    }
    return dart.global.DOMPointReadOnly.fromPoint();
  }
  [$matrixTransform](matrix = null) {
    if (matrix != null) {
      let matrix_1 = html_common.convertDartToNative_Dictionary(matrix);
      return this[_matrixTransform_1](matrix_1);
    }
    return this[_matrixTransform_2]();
  }
  [_matrixTransform_1](...args) {
    return this.matrixTransform.apply(this, args);
  }
  [_matrixTransform_2](...args) {
    return this.matrixTransform.apply(this, args);
  }
};
dart.addTypeTests(html$.DomPointReadOnly);
dart.addTypeCaches(html$.DomPointReadOnly);
dart.setMethodSignature(html$.DomPointReadOnly, () => ({
  __proto__: dart.getMethods(html$.DomPointReadOnly.__proto__),
  [$matrixTransform]: dart.fnType(html$.DomPoint, [], [core.Map]),
  [_matrixTransform_1]: dart.fnType(html$.DomPoint, [dart.dynamic]),
  [_matrixTransform_2]: dart.fnType(html$.DomPoint, [])
}));
dart.setGetterSignature(html$.DomPointReadOnly, () => ({
  __proto__: dart.getGetters(html$.DomPointReadOnly.__proto__),
  [$w]: core.num,
  [$x]: core.num,
  [$y]: core.num,
  [$z]: core.num
}));
dart.setLibraryUri(html$.DomPointReadOnly, L65);
dart.registerExtension("DOMPointReadOnly", html$.DomPointReadOnly);
html$.DomPoint = class DomPoint extends html$.DomPointReadOnly {
  static new(x = null, y = null, z = null, w = null) {
    if (w != null) {
      return html$.DomPoint._create_1(x, y, z, w);
    }
    if (z != null) {
      return html$.DomPoint._create_2(x, y, z);
    }
    if (y != null) {
      return html$.DomPoint._create_3(x, y);
    }
    if (x != null) {
      return html$.DomPoint._create_4(x);
    }
    return html$.DomPoint._create_5();
  }
  static _create_1(x, y, z, w) {
    return new DOMPoint(x, y, z, w);
  }
  static _create_2(x, y, z) {
    return new DOMPoint(x, y, z);
  }
  static _create_3(x, y) {
    return new DOMPoint(x, y);
  }
  static _create_4(x) {
    return new DOMPoint(x);
  }
  static _create_5() {
    return new DOMPoint();
  }
  static get supported() {
    return !!window.DOMPoint || !!window.WebKitPoint;
  }
  get [$w]() {
    return this.w;
  }
  set [$w](value) {
    this.w = value;
  }
  get [$x]() {
    return this.x;
  }
  set [$x](value) {
    this.x = value;
  }
  get [$y]() {
    return this.y;
  }
  set [$y](value) {
    this.y = value;
  }
  get [$z]() {
    return this.z;
  }
  set [$z](value) {
    this.z = value;
  }
  static fromPoint(other = null) {
    if (other != null) {
      let other_1 = html_common.convertDartToNative_Dictionary(other);
      return dart.global.DOMPoint.fromPoint(other_1);
    }
    return dart.global.DOMPoint.fromPoint();
  }
};
dart.addTypeTests(html$.DomPoint);
dart.addTypeCaches(html$.DomPoint);
dart.setSetterSignature(html$.DomPoint, () => ({
  __proto__: dart.getSetters(html$.DomPoint.__proto__),
  [$w]: core.num,
  [$x]: core.num,
  [$y]: core.num,
  [$z]: core.num
}));
dart.setLibraryUri(html$.DomPoint, L65);
dart.registerExtension("DOMPoint", html$.DomPoint);
html$.DomQuad = class DomQuad extends _interceptors.Interceptor {
  static new(p1 = null, p2 = null, p3 = null, p4 = null) {
    if (p4 != null) {
      let p1_1 = html_common.convertDartToNative_Dictionary(p1);
      let p2_2 = html_common.convertDartToNative_Dictionary(p2);
      let p3_3 = html_common.convertDartToNative_Dictionary(p3);
      let p4_4 = html_common.convertDartToNative_Dictionary(p4);
      return html$.DomQuad._create_1(p1_1, p2_2, p3_3, p4_4);
    }
    if (p3 != null) {
      let p1_1 = html_common.convertDartToNative_Dictionary(p1);
      let p2_2 = html_common.convertDartToNative_Dictionary(p2);
      let p3_3 = html_common.convertDartToNative_Dictionary(p3);
      return html$.DomQuad._create_2(p1_1, p2_2, p3_3);
    }
    if (p2 != null) {
      let p1_1 = html_common.convertDartToNative_Dictionary(p1);
      let p2_2 = html_common.convertDartToNative_Dictionary(p2);
      return html$.DomQuad._create_3(p1_1, p2_2);
    }
    if (p1 != null) {
      let p1_1 = html_common.convertDartToNative_Dictionary(p1);
      return html$.DomQuad._create_4(p1_1);
    }
    return html$.DomQuad._create_5();
  }
  static _create_1(p1, p2, p3, p4) {
    return new DOMQuad(p1, p2, p3, p4);
  }
  static _create_2(p1, p2, p3) {
    return new DOMQuad(p1, p2, p3);
  }
  static _create_3(p1, p2) {
    return new DOMQuad(p1, p2);
  }
  static _create_4(p1) {
    return new DOMQuad(p1);
  }
  static _create_5() {
    return new DOMQuad();
  }
  get [$p1]() {
    return this.p1;
  }
  get [$p2]() {
    return this.p2;
  }
  get [$p3]() {
    return this.p3;
  }
  get [$p4]() {
    return this.p4;
  }
  static fromQuad(other = null) {
    if (other != null) {
      let other_1 = html_common.convertDartToNative_Dictionary(other);
      return dart.global.DOMQuad.fromQuad(other_1);
    }
    return dart.global.DOMQuad.fromQuad();
  }
  static fromRect(other = null) {
    if (other != null) {
      let other_1 = html_common.convertDartToNative_Dictionary(other);
      return dart.global.DOMQuad.fromRect(other_1);
    }
    return dart.global.DOMQuad.fromRect();
  }
  [$getBounds](...args) {
    return this.getBounds.apply(this, args);
  }
};
dart.addTypeTests(html$.DomQuad);
dart.addTypeCaches(html$.DomQuad);
dart.setMethodSignature(html$.DomQuad, () => ({
  __proto__: dart.getMethods(html$.DomQuad.__proto__),
  [$getBounds]: dart.fnType(math.Rectangle$(core.num), [])
}));
dart.setGetterSignature(html$.DomQuad, () => ({
  __proto__: dart.getGetters(html$.DomQuad.__proto__),
  [$p1]: html$.DomPoint,
  [$p2]: html$.DomPoint,
  [$p3]: html$.DomPoint,
  [$p4]: html$.DomPoint
}));
dart.setLibraryUri(html$.DomQuad, L65);
dart.registerExtension("DOMQuad", html$.DomQuad);
const _is_ImmutableListMixin_default = Symbol('_is_ImmutableListMixin_default');
html$.ImmutableListMixin$ = dart.generic(E => {
  var FixedSizeListIteratorOfEL = () => (FixedSizeListIteratorOfEL = dart.constFn(html$.FixedSizeListIterator$(E)))();
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  class ImmutableListMixin extends core.Object {
    get iterator() {
      return new (FixedSizeListIteratorOfEL()).new(this);
    }
    [Symbol.iterator]() {
      return new dart.JsIterator(this[$iterator]);
    }
    add(value) {
      E.as(value);
      dart.throw(new core.UnsupportedError.new("Cannot add to immutable List."));
    }
    addAll(iterable) {
      IterableOfEL().as(iterable);
      dart.throw(new core.UnsupportedError.new("Cannot add to immutable List."));
    }
    sort(compare = null) {
      dart.throw(new core.UnsupportedError.new("Cannot sort immutable List."));
    }
    shuffle(random = null) {
      dart.throw(new core.UnsupportedError.new("Cannot shuffle immutable List."));
    }
    insert(index, element) {
      E.as(element);
      dart.throw(new core.UnsupportedError.new("Cannot add to immutable List."));
    }
    insertAll(index, iterable) {
      IterableOfEL().as(iterable);
      dart.throw(new core.UnsupportedError.new("Cannot add to immutable List."));
    }
    setAll(index, iterable) {
      IterableOfEL().as(iterable);
      dart.throw(new core.UnsupportedError.new("Cannot modify an immutable List."));
    }
    removeAt(pos) {
      dart.throw(new core.UnsupportedError.new("Cannot remove from immutable List."));
    }
    removeLast() {
      dart.throw(new core.UnsupportedError.new("Cannot remove from immutable List."));
    }
    remove(object) {
      dart.throw(new core.UnsupportedError.new("Cannot remove from immutable List."));
    }
    removeWhere(test) {
      dart.throw(new core.UnsupportedError.new("Cannot remove from immutable List."));
    }
    retainWhere(test) {
      dart.throw(new core.UnsupportedError.new("Cannot remove from immutable List."));
    }
    setRange(start, end, iterable, skipCount = 0) {
      IterableOfEL().as(iterable);
      dart.throw(new core.UnsupportedError.new("Cannot setRange on immutable List."));
    }
    removeRange(start, end) {
      dart.throw(new core.UnsupportedError.new("Cannot removeRange on immutable List."));
    }
    replaceRange(start, end, iterable) {
      IterableOfEL().as(iterable);
      dart.throw(new core.UnsupportedError.new("Cannot modify an immutable List."));
    }
    fillRange(start, end, fillValue = null) {
      E.as(fillValue);
      dart.throw(new core.UnsupportedError.new("Cannot modify an immutable List."));
    }
  }
  (ImmutableListMixin.new = function() {
    ;
  }).prototype = ImmutableListMixin.prototype;
  ImmutableListMixin.prototype[dart.isList] = true;
  dart.addTypeTests(ImmutableListMixin);
  ImmutableListMixin.prototype[_is_ImmutableListMixin_default] = true;
  dart.addTypeCaches(ImmutableListMixin);
  ImmutableListMixin[dart.implements] = () => [core.List$(E)];
  dart.setMethodSignature(ImmutableListMixin, () => ({
    __proto__: dart.getMethods(ImmutableListMixin.__proto__),
    add: dart.fnType(dart.void, [core.Object]),
    [$add]: dart.fnType(dart.void, [core.Object]),
    addAll: dart.fnType(dart.void, [core.Object]),
    [$addAll]: dart.fnType(dart.void, [core.Object]),
    sort: dart.fnType(dart.void, [], [dart.fnType(core.int, [E, E])]),
    [$sort]: dart.fnType(dart.void, [], [dart.fnType(core.int, [E, E])]),
    shuffle: dart.fnType(dart.void, [], [math.Random]),
    [$shuffle]: dart.fnType(dart.void, [], [math.Random]),
    insert: dart.fnType(dart.void, [core.int, core.Object]),
    [$insert]: dart.fnType(dart.void, [core.int, core.Object]),
    insertAll: dart.fnType(dart.void, [core.int, core.Object]),
    [$insertAll]: dart.fnType(dart.void, [core.int, core.Object]),
    setAll: dart.fnType(dart.void, [core.int, core.Object]),
    [$setAll]: dart.fnType(dart.void, [core.int, core.Object]),
    removeAt: dart.fnType(E, [core.int]),
    [$removeAt]: dart.fnType(E, [core.int]),
    removeLast: dart.fnType(E, []),
    [$removeLast]: dart.fnType(E, []),
    remove: dart.fnType(core.bool, [core.Object]),
    [$remove]: dart.fnType(core.bool, [core.Object]),
    removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    [$removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    retainWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    [$retainWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [E])]),
    setRange: dart.fnType(dart.void, [core.int, core.int, core.Object], [core.int]),
    [$setRange]: dart.fnType(dart.void, [core.int, core.int, core.Object], [core.int]),
    removeRange: dart.fnType(dart.void, [core.int, core.int]),
    [$removeRange]: dart.fnType(dart.void, [core.int, core.int]),
    replaceRange: dart.fnType(dart.void, [core.int, core.int, core.Object]),
    [$replaceRange]: dart.fnType(dart.void, [core.int, core.int, core.Object]),
    fillRange: dart.fnType(dart.void, [core.int, core.int], [core.Object]),
    [$fillRange]: dart.fnType(dart.void, [core.int, core.int], [core.Object])
  }));
  dart.setGetterSignature(ImmutableListMixin, () => ({
    __proto__: dart.getGetters(ImmutableListMixin.__proto__),
    iterator: core.Iterator$(E),
    [$iterator]: core.Iterator$(E)
  }));
  dart.setLibraryUri(ImmutableListMixin, L65);
  dart.defineExtensionMethods(ImmutableListMixin, [
    'add',
    'addAll',
    'sort',
    'shuffle',
    'insert',
    'insertAll',
    'setAll',
    'removeAt',
    'removeLast',
    'remove',
    'removeWhere',
    'retainWhere',
    'setRange',
    'removeRange',
    'replaceRange',
    'fillRange'
  ]);
  dart.defineExtensionAccessors(ImmutableListMixin, ['iterator']);
  return ImmutableListMixin;
});
html$.ImmutableListMixin = html$.ImmutableListMixin$();
dart.addTypeTests(html$.ImmutableListMixin, _is_ImmutableListMixin_default);
const Interceptor_ListMixin$36 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36.new = function() {
  Interceptor_ListMixin$36.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36.prototype;
dart.applyMixin(Interceptor_ListMixin$36, collection.ListMixin$(math.Rectangle$(core.num)));
const Interceptor_ImmutableListMixin$36 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36 {};
(Interceptor_ImmutableListMixin$36.new = function() {
  Interceptor_ImmutableListMixin$36.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36, html$.ImmutableListMixin$(math.Rectangle$(core.num)));
html$.DomRectList = class DomRectList extends Interceptor_ImmutableListMixin$36 {
  get [$length]() {
    return this.length;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this[index];
  }
  [$_set](index, value$) {
    let value = value$;
    RectangleOfnumL().as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
};
html$.DomRectList.prototype[dart.isList] = true;
dart.addTypeTests(html$.DomRectList);
dart.addTypeCaches(html$.DomRectList);
html$.DomRectList[dart.implements] = () => [core.List$(math.Rectangle$(core.num)), _js_helper.JavaScriptIndexingBehavior$(math.Rectangle$(core.num))];
dart.setMethodSignature(html$.DomRectList, () => ({
  __proto__: dart.getMethods(html$.DomRectList.__proto__),
  [$_get]: dart.fnType(math.Rectangle$(core.num), [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [$item]: dart.fnType(math.Rectangle$(core.num), [core.int])
}));
dart.setGetterSignature(html$.DomRectList, () => ({
  __proto__: dart.getGetters(html$.DomRectList.__proto__),
  [$length]: core.int
}));
dart.setSetterSignature(html$.DomRectList, () => ({
  __proto__: dart.getSetters(html$.DomRectList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$.DomRectList, L65);
dart.registerExtension("ClientRectList", html$.DomRectList);
dart.registerExtension("DOMRectList", html$.DomRectList);
html$.DomRectReadOnly = class DomRectReadOnly extends _interceptors.Interceptor {
  [$toString]() {
    return "Rectangle (" + dart.str(this.left) + ", " + dart.str(this.top) + ") " + dart.str(this.width) + " x " + dart.str(this.height);
  }
  [$_equals](other) {
    if (other == null) return false;
    return RectangleOfnumL().is(other) && this.left == other[$left] && this.top == other[$top] && this.width == other[$width] && this.height == other[$height];
  }
  get [$hashCode]() {
    return html$._JenkinsSmiHash.hash4(dart.hashCode(this.left), dart.hashCode(this.top), dart.hashCode(this.width), dart.hashCode(this.height));
  }
  [$intersection](other) {
    RectangleOfnumL().as(other);
    let x0 = math.max(core.num, this.left, other[$left]);
    let x1 = math.min(core.num, dart.notNull(this.left) + dart.notNull(this.width), dart.notNull(other[$left]) + dart.notNull(other[$width]));
    if (x0 <= x1) {
      let y0 = math.max(core.num, this.top, other[$top]);
      let y1 = math.min(core.num, dart.notNull(this.top) + dart.notNull(this.height), dart.notNull(other[$top]) + dart.notNull(other[$height]));
      if (y0 <= y1) {
        return new (RectangleOfnumL()).new(x0, y0, x1 - x0, y1 - y0);
      }
    }
    return null;
  }
  [$intersects](other) {
    return dart.notNull(this.left) <= dart.notNull(other[$left]) + dart.notNull(other[$width]) && dart.notNull(other[$left]) <= dart.notNull(this.left) + dart.notNull(this.width) && dart.notNull(this.top) <= dart.notNull(other[$top]) + dart.notNull(other[$height]) && dart.notNull(other[$top]) <= dart.notNull(this.top) + dart.notNull(this.height);
  }
  [$boundingBox](other) {
    RectangleOfnumL().as(other);
    let right = math.max(core.num, dart.notNull(this.left) + dart.notNull(this.width), dart.notNull(other[$left]) + dart.notNull(other[$width]));
    let bottom = math.max(core.num, dart.notNull(this.top) + dart.notNull(this.height), dart.notNull(other[$top]) + dart.notNull(other[$height]));
    let left = math.min(core.num, this.left, other[$left]);
    let top = math.min(core.num, this.top, other[$top]);
    return new (RectangleOfnumL()).new(left, top, right - left, bottom - top);
  }
  [$containsRectangle](another) {
    return dart.notNull(this.left) <= dart.notNull(another[$left]) && dart.notNull(this.left) + dart.notNull(this.width) >= dart.notNull(another[$left]) + dart.notNull(another[$width]) && dart.notNull(this.top) <= dart.notNull(another[$top]) && dart.notNull(this.top) + dart.notNull(this.height) >= dart.notNull(another[$top]) + dart.notNull(another[$height]);
  }
  [$containsPoint](another) {
    return dart.notNull(another.x) >= dart.notNull(this.left) && dart.notNull(another.x) <= dart.notNull(this.left) + dart.notNull(this.width) && dart.notNull(another.y) >= dart.notNull(this.top) && dart.notNull(another.y) <= dart.notNull(this.top) + dart.notNull(this.height);
  }
  get [$topLeft]() {
    return new (PointOfnumL()).new(this.left, this.top);
  }
  get [$topRight]() {
    return new (PointOfnumL()).new(dart.notNull(this.left) + dart.notNull(this.width), this.top);
  }
  get [$bottomRight]() {
    return new (PointOfnumL()).new(dart.notNull(this.left) + dart.notNull(this.width), dart.notNull(this.top) + dart.notNull(this.height));
  }
  get [$bottomLeft]() {
    return new (PointOfnumL()).new(this.left, dart.notNull(this.top) + dart.notNull(this.height));
  }
  static new(x = null, y = null, width = null, height = null) {
    if (height != null) {
      return html$.DomRectReadOnly._create_1(x, y, width, height);
    }
    if (width != null) {
      return html$.DomRectReadOnly._create_2(x, y, width);
    }
    if (y != null) {
      return html$.DomRectReadOnly._create_3(x, y);
    }
    if (x != null) {
      return html$.DomRectReadOnly._create_4(x);
    }
    return html$.DomRectReadOnly._create_5();
  }
  static _create_1(x, y, width, height) {
    return new DOMRectReadOnly(x, y, width, height);
  }
  static _create_2(x, y, width) {
    return new DOMRectReadOnly(x, y, width);
  }
  static _create_3(x, y) {
    return new DOMRectReadOnly(x, y);
  }
  static _create_4(x) {
    return new DOMRectReadOnly(x);
  }
  static _create_5() {
    return new DOMRectReadOnly();
  }
  get [$bottom]() {
    return this.bottom;
  }
  get [$height]() {
    return this.height;
  }
  get [$left]() {
    return this.left;
  }
  get [$right]() {
    return this.right;
  }
  get [$top]() {
    return this.top;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
  static fromRect(other = null) {
    if (other != null) {
      let other_1 = html_common.convertDartToNative_Dictionary(other);
      return dart.global.DOMRectReadOnly.fromRect(other_1);
    }
    return dart.global.DOMRectReadOnly.fromRect();
  }
};
dart.addTypeTests(html$.DomRectReadOnly);
dart.addTypeCaches(html$.DomRectReadOnly);
html$.DomRectReadOnly[dart.implements] = () => [math.Rectangle$(core.num)];
dart.setMethodSignature(html$.DomRectReadOnly, () => ({
  __proto__: dart.getMethods(html$.DomRectReadOnly.__proto__),
  [$intersection]: dart.fnType(math.Rectangle$(core.num), [core.Object]),
  [$intersects]: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
  [$boundingBox]: dart.fnType(math.Rectangle$(core.num), [core.Object]),
  [$containsRectangle]: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
  [$containsPoint]: dart.fnType(core.bool, [math.Point$(core.num)])
}));
dart.setGetterSignature(html$.DomRectReadOnly, () => ({
  __proto__: dart.getGetters(html$.DomRectReadOnly.__proto__),
  [$topLeft]: math.Point$(core.num),
  [$topRight]: math.Point$(core.num),
  [$bottomRight]: math.Point$(core.num),
  [$bottomLeft]: math.Point$(core.num),
  [$bottom]: core.num,
  [$height]: core.num,
  [$left]: core.num,
  [$right]: core.num,
  [$top]: core.num,
  [$width]: core.num,
  [$x]: core.num,
  [$y]: core.num
}));
dart.setLibraryUri(html$.DomRectReadOnly, L65);
dart.registerExtension("DOMRectReadOnly", html$.DomRectReadOnly);
const Interceptor_ListMixin$36$ = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$.new = function() {
  Interceptor_ListMixin$36$.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$.prototype;
dart.applyMixin(Interceptor_ListMixin$36$, collection.ListMixin$(core.String));
const Interceptor_ImmutableListMixin$36$ = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$ {};
(Interceptor_ImmutableListMixin$36$.new = function() {
  Interceptor_ImmutableListMixin$36$.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$, html$.ImmutableListMixin$(core.String));
html$.DomStringList = class DomStringList extends Interceptor_ImmutableListMixin$36$ {
  get [$length]() {
    return this.length;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this[index];
  }
  [$_set](index, value$) {
    let value = value$;
    core.String.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
};
html$.DomStringList.prototype[dart.isList] = true;
dart.addTypeTests(html$.DomStringList);
dart.addTypeCaches(html$.DomStringList);
html$.DomStringList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(core.String), core.List$(core.String)];
dart.setMethodSignature(html$.DomStringList, () => ({
  __proto__: dart.getMethods(html$.DomStringList.__proto__),
  [$_get]: dart.fnType(core.String, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [$item]: dart.fnType(core.String, [core.int])
}));
dart.setGetterSignature(html$.DomStringList, () => ({
  __proto__: dart.getGetters(html$.DomStringList.__proto__),
  [$length]: core.int
}));
dart.setSetterSignature(html$.DomStringList, () => ({
  __proto__: dart.getSetters(html$.DomStringList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$.DomStringList, L65);
dart.registerExtension("DOMStringList", html$.DomStringList);
var __delete__ = dart.privateName(html$, "__delete__");
html$.DomStringMap = class DomStringMap extends _interceptors.Interceptor {
  [__delete__](...args) {
    return this.__delete__.apply(this, args);
  }
  [__setter__](...args) {
    return this.__setter__.apply(this, args);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
};
dart.addTypeTests(html$.DomStringMap);
dart.addTypeCaches(html$.DomStringMap);
dart.setMethodSignature(html$.DomStringMap, () => ({
  __proto__: dart.getMethods(html$.DomStringMap.__proto__),
  [__delete__]: dart.fnType(dart.void, [core.String]),
  [__setter__]: dart.fnType(dart.void, [core.String, core.String]),
  [$item]: dart.fnType(core.String, [core.String])
}));
dart.setLibraryUri(html$.DomStringMap, L65);
dart.registerExtension("DOMStringMap", html$.DomStringMap);
html$.DomTokenList = class DomTokenList extends _interceptors.Interceptor {
  get [$length]() {
    return this.length;
  }
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
  [$add](...args) {
    return this.add.apply(this, args);
  }
  [$contains](...args) {
    return this.contains.apply(this, args);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
  [$remove](...args) {
    return this.remove.apply(this, args);
  }
  [$replace](...args) {
    return this.replace.apply(this, args);
  }
  [$supports](...args) {
    return this.supports.apply(this, args);
  }
  [$toggle](...args) {
    return this.toggle.apply(this, args);
  }
};
dart.addTypeTests(html$.DomTokenList);
dart.addTypeCaches(html$.DomTokenList);
dart.setMethodSignature(html$.DomTokenList, () => ({
  __proto__: dart.getMethods(html$.DomTokenList.__proto__),
  [$add]: dart.fnType(dart.void, [core.String]),
  [$contains]: dart.fnType(core.bool, [core.String]),
  [$item]: dart.fnType(core.String, [core.int]),
  [$remove]: dart.fnType(dart.void, [core.String]),
  [$replace]: dart.fnType(dart.void, [core.String, core.String]),
  [$supports]: dart.fnType(core.bool, [core.String]),
  [$toggle]: dart.fnType(core.bool, [core.String], [core.bool])
}));
dart.setGetterSignature(html$.DomTokenList, () => ({
  __proto__: dart.getGetters(html$.DomTokenList.__proto__),
  [$length]: core.int,
  [$value]: core.String
}));
dart.setSetterSignature(html$.DomTokenList, () => ({
  __proto__: dart.getSetters(html$.DomTokenList.__proto__),
  [$value]: core.String
}));
dart.setLibraryUri(html$.DomTokenList, L65);
dart.registerExtension("DOMTokenList", html$.DomTokenList);
var _childElements = dart.privateName(html$, "_childElements");
var _element$ = dart.privateName(html$, "_element");
var _filter$0 = dart.privateName(html$, "_filter");
html$._ChildrenElementList = class _ChildrenElementList extends collection.ListBase$(html$.Element) {
  contains(element) {
    return this[_childElements][$contains](element);
  }
  get isEmpty() {
    return this[_element$][_firstElementChild] == null;
  }
  get length() {
    return this[_childElements][$length];
  }
  _get(index) {
    return html$.Element.as(this[_childElements][$_get](index));
  }
  _set(index, value$) {
    let value = value$;
    html$.Element.as(value);
    this[_element$][_replaceChild](value, this[_childElements][$_get](index));
    return value$;
  }
  set length(newLength) {
    dart.throw(new core.UnsupportedError.new("Cannot resize element lists"));
  }
  add(value) {
    html$.Element.as(value);
    this[_element$][$append](value);
    return value;
  }
  get iterator() {
    return this[$toList]()[$iterator];
  }
  addAll(iterable) {
    IterableOfElementL().as(iterable);
    if (html$._ChildNodeListLazy.is(iterable)) {
      iterable = ListOfElementL().from(iterable);
    }
    for (let element of iterable) {
      this[_element$][$append](element);
    }
  }
  sort(compare = null) {
    dart.throw(new core.UnsupportedError.new("Cannot sort element lists"));
  }
  shuffle(random = null) {
    dart.throw(new core.UnsupportedError.new("Cannot shuffle element lists"));
  }
  removeWhere(test) {
    this[_filter$0](test, false);
  }
  retainWhere(test) {
    this[_filter$0](test, true);
  }
  [_filter$0](test, retainMatching) {
    let removed = null;
    if (dart.test(retainMatching)) {
      removed = this[_element$][$children][$where](dart.fn(e => !dart.test(test(e)), ElementLToboolL()));
    } else {
      removed = this[_element$][$children][$where](test);
    }
    for (let e of core.Iterable.as(removed))
      dart.dsend(e, 'remove', []);
  }
  fillRange(start, end, fillValue = null) {
    html$.Element.as(fillValue);
    dart.throw(new core.UnimplementedError.new());
  }
  replaceRange(start, end, iterable) {
    IterableOfElementL().as(iterable);
    dart.throw(new core.UnimplementedError.new());
  }
  removeRange(start, end) {
    dart.throw(new core.UnimplementedError.new());
  }
  setRange(start, end, iterable, skipCount = 0) {
    IterableOfElementL().as(iterable);
    dart.throw(new core.UnimplementedError.new());
  }
  remove(object) {
    if (html$.Element.is(object)) {
      let element = object;
      if (element.parentNode == this[_element$]) {
        this[_element$][_removeChild](element);
        return true;
      }
    }
    return false;
  }
  insert(index, element) {
    html$.Element.as(element);
    if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this.length)) {
      dart.throw(new core.RangeError.range(index, 0, this.length));
    }
    if (index == this.length) {
      this[_element$][$append](element);
    } else {
      this[_element$].insertBefore(element, this._get(index));
    }
  }
  setAll(index, iterable) {
    IterableOfElementL().as(iterable);
    dart.throw(new core.UnimplementedError.new());
  }
  clear() {
    this[_element$][_clearChildren]();
  }
  removeAt(index) {
    let result = this._get(index);
    if (result != null) {
      this[_element$][_removeChild](result);
    }
    return result;
  }
  removeLast() {
    let result = this.last;
    if (result != null) {
      this[_element$][_removeChild](result);
    }
    return result;
  }
  get first() {
    let result = this[_element$][_firstElementChild];
    if (result == null) dart.throw(new core.StateError.new("No elements"));
    return result;
  }
  set first(value) {
    super.first = value;
  }
  get last() {
    let result = this[_element$][_lastElementChild];
    if (result == null) dart.throw(new core.StateError.new("No elements"));
    return result;
  }
  set last(value) {
    super.last = value;
  }
  get single() {
    if (dart.notNull(this.length) > 1) dart.throw(new core.StateError.new("More than one element"));
    return this.first;
  }
  get rawList() {
    return this[_childElements];
  }
};
(html$._ChildrenElementList._wrap = function(element) {
  this[_childElements] = html$.HtmlCollection.as(element[_children]);
  this[_element$] = element;
  ;
}).prototype = html$._ChildrenElementList.prototype;
dart.addTypeTests(html$._ChildrenElementList);
dart.addTypeCaches(html$._ChildrenElementList);
html$._ChildrenElementList[dart.implements] = () => [html_common.NodeListWrapper];
dart.setMethodSignature(html$._ChildrenElementList, () => ({
  __proto__: dart.getMethods(html$._ChildrenElementList.__proto__),
  _get: dart.fnType(html$.Element, [core.int]),
  [$_get]: dart.fnType(html$.Element, [core.int]),
  _set: dart.fnType(dart.void, [core.int, core.Object]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  add: dart.fnType(html$.Element, [core.Object]),
  [$add]: dart.fnType(html$.Element, [core.Object]),
  [_filter$0]: dart.fnType(dart.void, [dart.fnType(core.bool, [html$.Element]), core.bool])
}));
dart.setGetterSignature(html$._ChildrenElementList, () => ({
  __proto__: dart.getGetters(html$._ChildrenElementList.__proto__),
  length: core.int,
  [$length]: core.int,
  rawList: core.List$(html$.Node)
}));
dart.setSetterSignature(html$._ChildrenElementList, () => ({
  __proto__: dart.getSetters(html$._ChildrenElementList.__proto__),
  length: core.int,
  [$length]: core.int
}));
dart.setLibraryUri(html$._ChildrenElementList, L65);
dart.setFieldSignature(html$._ChildrenElementList, () => ({
  __proto__: dart.getFields(html$._ChildrenElementList.__proto__),
  [_element$]: dart.finalFieldType(html$.Element),
  [_childElements]: dart.finalFieldType(html$.HtmlCollection)
}));
dart.defineExtensionMethods(html$._ChildrenElementList, [
  'contains',
  '_get',
  '_set',
  'add',
  'addAll',
  'sort',
  'shuffle',
  'removeWhere',
  'retainWhere',
  'fillRange',
  'replaceRange',
  'removeRange',
  'setRange',
  'remove',
  'insert',
  'setAll',
  'clear',
  'removeAt',
  'removeLast'
]);
dart.defineExtensionAccessors(html$._ChildrenElementList, [
  'isEmpty',
  'length',
  'iterator',
  'first',
  'last',
  'single'
]);
const _is_ElementList_default = Symbol('_is_ElementList_default');
html$.ElementList$ = dart.generic(T => {
  class ElementList extends collection.ListBase$(T) {}
  (ElementList.new = function() {
    ;
  }).prototype = ElementList.prototype;
  dart.addTypeTests(ElementList);
  ElementList.prototype[_is_ElementList_default] = true;
  dart.addTypeCaches(ElementList);
  dart.setLibraryUri(ElementList, L65);
  return ElementList;
});
html$.ElementList = html$.ElementList$();
dart.addTypeTests(html$.ElementList, _is_ElementList_default);
var _nodeList$ = dart.privateName(html$, "_nodeList");
var _forElementList = dart.privateName(html$, "_forElementList");
const _is__FrozenElementList_default = Symbol('_is__FrozenElementList_default');
html$._FrozenElementList$ = dart.generic(E => {
  var ELToIterableLOfStringL = () => (ELToIterableLOfStringL = dart.constFn(dart.fnType(IterableOfStringL(), [E])))();
  class _FrozenElementList extends collection.ListBase$(E) {
    get length() {
      return this[_nodeList$][$length];
    }
    _get(index) {
      return E.as(this[_nodeList$][$_get](index));
    }
    _set(index, value$) {
      let value = value$;
      E.as(value);
      dart.throw(new core.UnsupportedError.new("Cannot modify list"));
      return value$;
    }
    set length(newLength) {
      dart.throw(new core.UnsupportedError.new("Cannot modify list"));
    }
    sort(compare = null) {
      dart.throw(new core.UnsupportedError.new("Cannot sort list"));
    }
    shuffle(random = null) {
      dart.throw(new core.UnsupportedError.new("Cannot shuffle list"));
    }
    get first() {
      return E.as(this[_nodeList$][$first]);
    }
    set first(value) {
      super.first = value;
    }
    get last() {
      return E.as(this[_nodeList$][$last]);
    }
    set last(value) {
      super.last = value;
    }
    get single() {
      return E.as(this[_nodeList$][$single]);
    }
    get classes() {
      return html$._MultiElementCssClassSet.new(this);
    }
    get style() {
      return new html$._CssStyleDeclarationSet.new(this);
    }
    set classes(value) {
      this[$forEach](dart.fn(e => e[$classes] = value, ELToIterableLOfStringL()));
    }
    get contentEdge() {
      return new html$._ContentCssListRect.new(this);
    }
    get paddingEdge() {
      return this.first[$paddingEdge];
    }
    get borderEdge() {
      return this.first[$borderEdge];
    }
    get marginEdge() {
      return this.first[$marginEdge];
    }
    get rawList() {
      return this[_nodeList$];
    }
    get onAbort() {
      return html$.Element.abortEvent[_forElementList](this);
    }
    get onBeforeCopy() {
      return html$.Element.beforeCopyEvent[_forElementList](this);
    }
    get onBeforeCut() {
      return html$.Element.beforeCutEvent[_forElementList](this);
    }
    get onBeforePaste() {
      return html$.Element.beforePasteEvent[_forElementList](this);
    }
    get onBlur() {
      return html$.Element.blurEvent[_forElementList](this);
    }
    get onCanPlay() {
      return html$.Element.canPlayEvent[_forElementList](this);
    }
    get onCanPlayThrough() {
      return html$.Element.canPlayThroughEvent[_forElementList](this);
    }
    get onChange() {
      return html$.Element.changeEvent[_forElementList](this);
    }
    get onClick() {
      return html$.Element.clickEvent[_forElementList](this);
    }
    get onContextMenu() {
      return html$.Element.contextMenuEvent[_forElementList](this);
    }
    get onCopy() {
      return html$.Element.copyEvent[_forElementList](this);
    }
    get onCut() {
      return html$.Element.cutEvent[_forElementList](this);
    }
    get onDoubleClick() {
      return html$.Element.doubleClickEvent[_forElementList](this);
    }
    get onDrag() {
      return html$.Element.dragEvent[_forElementList](this);
    }
    get onDragEnd() {
      return html$.Element.dragEndEvent[_forElementList](this);
    }
    get onDragEnter() {
      return html$.Element.dragEnterEvent[_forElementList](this);
    }
    get onDragLeave() {
      return html$.Element.dragLeaveEvent[_forElementList](this);
    }
    get onDragOver() {
      return html$.Element.dragOverEvent[_forElementList](this);
    }
    get onDragStart() {
      return html$.Element.dragStartEvent[_forElementList](this);
    }
    get onDrop() {
      return html$.Element.dropEvent[_forElementList](this);
    }
    get onDurationChange() {
      return html$.Element.durationChangeEvent[_forElementList](this);
    }
    get onEmptied() {
      return html$.Element.emptiedEvent[_forElementList](this);
    }
    get onEnded() {
      return html$.Element.endedEvent[_forElementList](this);
    }
    get onError() {
      return html$.Element.errorEvent[_forElementList](this);
    }
    get onFocus() {
      return html$.Element.focusEvent[_forElementList](this);
    }
    get onInput() {
      return html$.Element.inputEvent[_forElementList](this);
    }
    get onInvalid() {
      return html$.Element.invalidEvent[_forElementList](this);
    }
    get onKeyDown() {
      return html$.Element.keyDownEvent[_forElementList](this);
    }
    get onKeyPress() {
      return html$.Element.keyPressEvent[_forElementList](this);
    }
    get onKeyUp() {
      return html$.Element.keyUpEvent[_forElementList](this);
    }
    get onLoad() {
      return html$.Element.loadEvent[_forElementList](this);
    }
    get onLoadedData() {
      return html$.Element.loadedDataEvent[_forElementList](this);
    }
    get onLoadedMetadata() {
      return html$.Element.loadedMetadataEvent[_forElementList](this);
    }
    get onMouseDown() {
      return html$.Element.mouseDownEvent[_forElementList](this);
    }
    get onMouseEnter() {
      return html$.Element.mouseEnterEvent[_forElementList](this);
    }
    get onMouseLeave() {
      return html$.Element.mouseLeaveEvent[_forElementList](this);
    }
    get onMouseMove() {
      return html$.Element.mouseMoveEvent[_forElementList](this);
    }
    get onMouseOut() {
      return html$.Element.mouseOutEvent[_forElementList](this);
    }
    get onMouseOver() {
      return html$.Element.mouseOverEvent[_forElementList](this);
    }
    get onMouseUp() {
      return html$.Element.mouseUpEvent[_forElementList](this);
    }
    get onMouseWheel() {
      return html$.Element.mouseWheelEvent[_forElementList](this);
    }
    get onPaste() {
      return html$.Element.pasteEvent[_forElementList](this);
    }
    get onPause() {
      return html$.Element.pauseEvent[_forElementList](this);
    }
    get onPlay() {
      return html$.Element.playEvent[_forElementList](this);
    }
    get onPlaying() {
      return html$.Element.playingEvent[_forElementList](this);
    }
    get onRateChange() {
      return html$.Element.rateChangeEvent[_forElementList](this);
    }
    get onReset() {
      return html$.Element.resetEvent[_forElementList](this);
    }
    get onResize() {
      return html$.Element.resizeEvent[_forElementList](this);
    }
    get onScroll() {
      return html$.Element.scrollEvent[_forElementList](this);
    }
    get onSearch() {
      return html$.Element.searchEvent[_forElementList](this);
    }
    get onSeeked() {
      return html$.Element.seekedEvent[_forElementList](this);
    }
    get onSeeking() {
      return html$.Element.seekingEvent[_forElementList](this);
    }
    get onSelect() {
      return html$.Element.selectEvent[_forElementList](this);
    }
    get onSelectStart() {
      return html$.Element.selectStartEvent[_forElementList](this);
    }
    get onStalled() {
      return html$.Element.stalledEvent[_forElementList](this);
    }
    get onSubmit() {
      return html$.Element.submitEvent[_forElementList](this);
    }
    get onSuspend() {
      return html$.Element.suspendEvent[_forElementList](this);
    }
    get onTimeUpdate() {
      return html$.Element.timeUpdateEvent[_forElementList](this);
    }
    get onTouchCancel() {
      return html$.Element.touchCancelEvent[_forElementList](this);
    }
    get onTouchEnd() {
      return html$.Element.touchEndEvent[_forElementList](this);
    }
    get onTouchEnter() {
      return html$.Element.touchEnterEvent[_forElementList](this);
    }
    get onTouchLeave() {
      return html$.Element.touchLeaveEvent[_forElementList](this);
    }
    get onTouchMove() {
      return html$.Element.touchMoveEvent[_forElementList](this);
    }
    get onTouchStart() {
      return html$.Element.touchStartEvent[_forElementList](this);
    }
    get onTransitionEnd() {
      return html$.Element.transitionEndEvent[_forElementList](this);
    }
    get onVolumeChange() {
      return html$.Element.volumeChangeEvent[_forElementList](this);
    }
    get onWaiting() {
      return html$.Element.waitingEvent[_forElementList](this);
    }
    get onFullscreenChange() {
      return html$.Element.fullscreenChangeEvent[_forElementList](this);
    }
    get onFullscreenError() {
      return html$.Element.fullscreenErrorEvent[_forElementList](this);
    }
    get onWheel() {
      return html$.Element.wheelEvent[_forElementList](this);
    }
  }
  (_FrozenElementList._wrap = function(_nodeList) {
    this[_nodeList$] = _nodeList;
    if (!dart.test(this[_nodeList$][$every](dart.fn(element => E.is(element), NodeLToboolL())))) dart.assertFailed("Query expects only HTML elements of type " + dart.str(dart.wrapType(E)) + " but found " + dart.str(this[_nodeList$][$firstWhere](dart.fn(e => !E.is(e), NodeLToboolL()))), L66, 12212, 12, "this._nodeList.every((element) => element is E)");
  }).prototype = _FrozenElementList.prototype;
  dart.addTypeTests(_FrozenElementList);
  _FrozenElementList.prototype[_is__FrozenElementList_default] = true;
  dart.addTypeCaches(_FrozenElementList);
  _FrozenElementList[dart.implements] = () => [html$.ElementList$(E), html_common.NodeListWrapper];
  dart.setMethodSignature(_FrozenElementList, () => ({
    __proto__: dart.getMethods(_FrozenElementList.__proto__),
    _get: dart.fnType(E, [core.int]),
    [$_get]: dart.fnType(E, [core.int]),
    _set: dart.fnType(dart.void, [core.int, core.Object]),
    [$_set]: dart.fnType(dart.void, [core.int, core.Object])
  }));
  dart.setGetterSignature(_FrozenElementList, () => ({
    __proto__: dart.getGetters(_FrozenElementList.__proto__),
    length: core.int,
    [$length]: core.int,
    classes: html$.CssClassSet,
    style: html$.CssStyleDeclarationBase,
    contentEdge: html$.CssRect,
    paddingEdge: html$.CssRect,
    borderEdge: html$.CssRect,
    marginEdge: html$.CssRect,
    rawList: core.List$(html$.Node),
    onAbort: html$.ElementStream$(html$.Event),
    onBeforeCopy: html$.ElementStream$(html$.Event),
    onBeforeCut: html$.ElementStream$(html$.Event),
    onBeforePaste: html$.ElementStream$(html$.Event),
    onBlur: html$.ElementStream$(html$.Event),
    onCanPlay: html$.ElementStream$(html$.Event),
    onCanPlayThrough: html$.ElementStream$(html$.Event),
    onChange: html$.ElementStream$(html$.Event),
    onClick: html$.ElementStream$(html$.MouseEvent),
    onContextMenu: html$.ElementStream$(html$.MouseEvent),
    onCopy: html$.ElementStream$(html$.ClipboardEvent),
    onCut: html$.ElementStream$(html$.ClipboardEvent),
    onDoubleClick: html$.ElementStream$(html$.Event),
    onDrag: html$.ElementStream$(html$.MouseEvent),
    onDragEnd: html$.ElementStream$(html$.MouseEvent),
    onDragEnter: html$.ElementStream$(html$.MouseEvent),
    onDragLeave: html$.ElementStream$(html$.MouseEvent),
    onDragOver: html$.ElementStream$(html$.MouseEvent),
    onDragStart: html$.ElementStream$(html$.MouseEvent),
    onDrop: html$.ElementStream$(html$.MouseEvent),
    onDurationChange: html$.ElementStream$(html$.Event),
    onEmptied: html$.ElementStream$(html$.Event),
    onEnded: html$.ElementStream$(html$.Event),
    onError: html$.ElementStream$(html$.Event),
    onFocus: html$.ElementStream$(html$.Event),
    onInput: html$.ElementStream$(html$.Event),
    onInvalid: html$.ElementStream$(html$.Event),
    onKeyDown: html$.ElementStream$(html$.KeyboardEvent),
    onKeyPress: html$.ElementStream$(html$.KeyboardEvent),
    onKeyUp: html$.ElementStream$(html$.KeyboardEvent),
    onLoad: html$.ElementStream$(html$.Event),
    onLoadedData: html$.ElementStream$(html$.Event),
    onLoadedMetadata: html$.ElementStream$(html$.Event),
    onMouseDown: html$.ElementStream$(html$.MouseEvent),
    onMouseEnter: html$.ElementStream$(html$.MouseEvent),
    onMouseLeave: html$.ElementStream$(html$.MouseEvent),
    onMouseMove: html$.ElementStream$(html$.MouseEvent),
    onMouseOut: html$.ElementStream$(html$.MouseEvent),
    onMouseOver: html$.ElementStream$(html$.MouseEvent),
    onMouseUp: html$.ElementStream$(html$.MouseEvent),
    onMouseWheel: html$.ElementStream$(html$.WheelEvent),
    onPaste: html$.ElementStream$(html$.ClipboardEvent),
    onPause: html$.ElementStream$(html$.Event),
    onPlay: html$.ElementStream$(html$.Event),
    onPlaying: html$.ElementStream$(html$.Event),
    onRateChange: html$.ElementStream$(html$.Event),
    onReset: html$.ElementStream$(html$.Event),
    onResize: html$.ElementStream$(html$.Event),
    onScroll: html$.ElementStream$(html$.Event),
    onSearch: html$.ElementStream$(html$.Event),
    onSeeked: html$.ElementStream$(html$.Event),
    onSeeking: html$.ElementStream$(html$.Event),
    onSelect: html$.ElementStream$(html$.Event),
    onSelectStart: html$.ElementStream$(html$.Event),
    onStalled: html$.ElementStream$(html$.Event),
    onSubmit: html$.ElementStream$(html$.Event),
    onSuspend: html$.ElementStream$(html$.Event),
    onTimeUpdate: html$.ElementStream$(html$.Event),
    onTouchCancel: html$.ElementStream$(html$.TouchEvent),
    onTouchEnd: html$.ElementStream$(html$.TouchEvent),
    onTouchEnter: html$.ElementStream$(html$.TouchEvent),
    onTouchLeave: html$.ElementStream$(html$.TouchEvent),
    onTouchMove: html$.ElementStream$(html$.TouchEvent),
    onTouchStart: html$.ElementStream$(html$.TouchEvent),
    onTransitionEnd: html$.ElementStream$(html$.TransitionEvent),
    onVolumeChange: html$.ElementStream$(html$.Event),
    onWaiting: html$.ElementStream$(html$.Event),
    onFullscreenChange: html$.ElementStream$(html$.Event),
    onFullscreenError: html$.ElementStream$(html$.Event),
    onWheel: html$.ElementStream$(html$.WheelEvent)
  }));
  dart.setSetterSignature(_FrozenElementList, () => ({
    __proto__: dart.getSetters(_FrozenElementList.__proto__),
    length: core.int,
    [$length]: core.int,
    classes: core.Iterable$(core.String)
  }));
  dart.setLibraryUri(_FrozenElementList, L65);
  dart.setFieldSignature(_FrozenElementList, () => ({
    __proto__: dart.getFields(_FrozenElementList.__proto__),
    [_nodeList$]: dart.finalFieldType(core.List$(html$.Node))
  }));
  dart.defineExtensionMethods(_FrozenElementList, ['_get', '_set', 'sort', 'shuffle']);
  dart.defineExtensionAccessors(_FrozenElementList, ['length', 'first', 'last', 'single']);
  return _FrozenElementList;
});
html$._FrozenElementList = html$._FrozenElementList$();
dart.addTypeTests(html$._FrozenElementList, _is__FrozenElementList_default);
html$._ElementFactoryProvider = class _ElementFactoryProvider extends core.Object {
  static createElement_tag(tag, typeExtension) {
    if (typeExtension != null) {
      return document.createElement(tag, typeExtension);
    }
    return document.createElement(tag);
  }
};
(html$._ElementFactoryProvider.new = function() {
  ;
}).prototype = html$._ElementFactoryProvider.prototype;
dart.addTypeTests(html$._ElementFactoryProvider);
dart.addTypeCaches(html$._ElementFactoryProvider);
dart.setLibraryUri(html$._ElementFactoryProvider, L65);
var _value$6 = dart.privateName(html$, "_value");
var _value$7 = dart.privateName(html$, "ScrollAlignment._value");
var C328;
var C329;
var C330;
html$.ScrollAlignment = class ScrollAlignment extends core.Object {
  get [_value$6]() {
    return this[_value$7];
  }
  set [_value$6](value) {
    super[_value$6] = value;
  }
  toString() {
    return "ScrollAlignment." + dart.str(this[_value$6]);
  }
};
(html$.ScrollAlignment._internal = function(_value) {
  this[_value$7] = _value;
  ;
}).prototype = html$.ScrollAlignment.prototype;
dart.addTypeTests(html$.ScrollAlignment);
dart.addTypeCaches(html$.ScrollAlignment);
dart.setLibraryUri(html$.ScrollAlignment, L65);
dart.setFieldSignature(html$.ScrollAlignment, () => ({
  __proto__: dart.getFields(html$.ScrollAlignment.__proto__),
  [_value$6]: dart.finalFieldType(dart.dynamic)
}));
dart.defineExtensionMethods(html$.ScrollAlignment, ['toString']);
dart.defineLazy(html$.ScrollAlignment, {
  /*html$.ScrollAlignment.TOP*/get TOP() {
    return C328 || CT.C328;
  },
  /*html$.ScrollAlignment.CENTER*/get CENTER() {
    return C329 || CT.C329;
  },
  /*html$.ScrollAlignment.BOTTOM*/get BOTTOM() {
    return C330 || CT.C330;
  }
}, true);
html$.EmbedElement = class EmbedElement extends html$.HtmlElement {
  static new() {
    return html$.EmbedElement.as(html$.document[$createElement]("embed"));
  }
  static get supported() {
    return html$.Element.isTagSupported("embed");
  }
  get [$height]() {
    return this.height;
  }
  set [$height](value) {
    this.height = value;
  }
  get [$name]() {
    return this.name;
  }
  set [$name](value) {
    this.name = value;
  }
  get [$src]() {
    return this.src;
  }
  set [$src](value) {
    this.src = value;
  }
  get [$type]() {
    return this.type;
  }
  set [$type](value) {
    this.type = value;
  }
  get [$width]() {
    return this.width;
  }
  set [$width](value) {
    this.width = value;
  }
  [__getter__](...args) {
    return this.__getter__.apply(this, args);
  }
  [__setter__](...args) {
    return this.__setter__.apply(this, args);
  }
};
(html$.EmbedElement.created = function() {
  html$.EmbedElement.__proto__.created.call(this);
  ;
}).prototype = html$.EmbedElement.prototype;
dart.addTypeTests(html$.EmbedElement);
dart.addTypeCaches(html$.EmbedElement);
dart.setMethodSignature(html$.EmbedElement, () => ({
  __proto__: dart.getMethods(html$.EmbedElement.__proto__),
  [__getter__]: dart.fnType(html$.Node, [core.String]),
  [__setter__]: dart.fnType(dart.void, [core.String, html$.Node])
}));
dart.setGetterSignature(html$.EmbedElement, () => ({
  __proto__: dart.getGetters(html$.EmbedElement.__proto__),
  [$height]: core.String,
  [$name]: core.String,
  [$src]: core.String,
  [$type]: core.String,
  [$width]: core.String
}));
dart.setSetterSignature(html$.EmbedElement, () => ({
  __proto__: dart.getSetters(html$.EmbedElement.__proto__),
  [$height]: core.String,
  [$name]: core.String,
  [$src]: core.String,
  [$type]: core.String,
  [$width]: core.String
}));
dart.setLibraryUri(html$.EmbedElement, L65);
dart.registerExtension("HTMLEmbedElement", html$.EmbedElement);
html$.ErrorEvent = class ErrorEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.ErrorEvent._create_1(type, eventInitDict_1);
    }
    return html$.ErrorEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new ErrorEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new ErrorEvent(type);
  }
  get [$colno]() {
    return this.colno;
  }
  get [$error]() {
    return this.error;
  }
  get [$filename]() {
    return this.filename;
  }
  get [$lineno]() {
    return this.lineno;
  }
  get [$message]() {
    return this.message;
  }
};
dart.addTypeTests(html$.ErrorEvent);
dart.addTypeCaches(html$.ErrorEvent);
dart.setGetterSignature(html$.ErrorEvent, () => ({
  __proto__: dart.getGetters(html$.ErrorEvent.__proto__),
  [$colno]: core.int,
  [$error]: core.Object,
  [$filename]: core.String,
  [$lineno]: core.int,
  [$message]: core.String
}));
dart.setLibraryUri(html$.ErrorEvent, L65);
dart.registerExtension("ErrorEvent", html$.ErrorEvent);
var C331;
html$.EventSource = class EventSource$ extends html$.EventTarget {
  static new(url, opts) {
    let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : false;
    let parsedOptions = new (IdentityMapOfStringL$dynamic()).from(["withCredentials", withCredentials]);
    return html$.EventSource._factoryEventSource(url, parsedOptions);
  }
  static _factoryEventSource(url, eventSourceInitDict = null) {
    if (eventSourceInitDict != null) {
      let eventSourceInitDict_1 = html_common.convertDartToNative_Dictionary(eventSourceInitDict);
      return html$.EventSource._create_1(url, eventSourceInitDict_1);
    }
    return html$.EventSource._create_2(url);
  }
  static _create_1(url, eventSourceInitDict) {
    return new EventSource(url, eventSourceInitDict);
  }
  static _create_2(url) {
    return new EventSource(url);
  }
  get [$readyState]() {
    return this.readyState;
  }
  get [$url]() {
    return this.url;
  }
  get [$withCredentials]() {
    return this.withCredentials;
  }
  [$close](...args) {
    return this.close.apply(this, args);
  }
  get [$onError]() {
    return html$.EventSource.errorEvent.forTarget(this);
  }
  get [$onMessage]() {
    return html$.EventSource.messageEvent.forTarget(this);
  }
  get [$onOpen]() {
    return html$.EventSource.openEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.EventSource);
dart.addTypeCaches(html$.EventSource);
dart.setMethodSignature(html$.EventSource, () => ({
  __proto__: dart.getMethods(html$.EventSource.__proto__),
  [$close]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.EventSource, () => ({
  __proto__: dart.getGetters(html$.EventSource.__proto__),
  [$readyState]: core.int,
  [$url]: core.String,
  [$withCredentials]: core.bool,
  [$onError]: async.Stream$(html$.Event),
  [$onMessage]: async.Stream$(html$.MessageEvent),
  [$onOpen]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.EventSource, L65);
dart.defineLazy(html$.EventSource, {
  /*html$.EventSource.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  },
  /*html$.EventSource.messageEvent*/get messageEvent() {
    return C313 || CT.C313;
  },
  /*html$.EventSource.openEvent*/get openEvent() {
    return C331 || CT.C331;
  },
  /*html$.EventSource.CLOSED*/get CLOSED() {
    return 2;
  },
  /*html$.EventSource.CONNECTING*/get CONNECTING() {
    return 0;
  },
  /*html$.EventSource.OPEN*/get OPEN() {
    return 1;
  }
}, true);
dart.registerExtension("EventSource", html$.EventSource);
var _ptr$ = dart.privateName(html$, "_ptr");
html$.Events = class Events extends core.Object {
  _get(type) {
    return new (_EventStreamOfEventL()).new(this[_ptr$], type, false);
  }
};
(html$.Events.new = function(_ptr) {
  this[_ptr$] = _ptr;
  ;
}).prototype = html$.Events.prototype;
dart.addTypeTests(html$.Events);
dart.addTypeCaches(html$.Events);
dart.setMethodSignature(html$.Events, () => ({
  __proto__: dart.getMethods(html$.Events.__proto__),
  _get: dart.fnType(async.Stream$(html$.Event), [core.String])
}));
dart.setLibraryUri(html$.Events, L65);
dart.setFieldSignature(html$.Events, () => ({
  __proto__: dart.getFields(html$.Events.__proto__),
  [_ptr$]: dart.finalFieldType(html$.EventTarget)
}));
html$.ElementEvents = class ElementEvents extends html$.Events {
  _get(type) {
    if (dart.test(html$.ElementEvents.webkitEvents[$keys][$contains](type[$toLowerCase]()))) {
      if (dart.test(html_common.Device.isWebKit)) {
        return new (_ElementEventStreamImplOfEventL()).new(this[_ptr$], html$.ElementEvents.webkitEvents[$_get](type[$toLowerCase]()), false);
      }
    }
    return new (_ElementEventStreamImplOfEventL()).new(this[_ptr$], type, false);
  }
};
(html$.ElementEvents.new = function(ptr) {
  html$.ElementEvents.__proto__.new.call(this, ptr);
  ;
}).prototype = html$.ElementEvents.prototype;
dart.addTypeTests(html$.ElementEvents);
dart.addTypeCaches(html$.ElementEvents);
dart.setLibraryUri(html$.ElementEvents, L65);
dart.defineLazy(html$.ElementEvents, {
  /*html$.ElementEvents.webkitEvents*/get webkitEvents() {
    return new (IdentityMapOfStringL$StringL()).from(["animationend", "webkitAnimationEnd", "animationiteration", "webkitAnimationIteration", "animationstart", "webkitAnimationStart", "fullscreenchange", "webkitfullscreenchange", "fullscreenerror", "webkitfullscreenerror", "keyadded", "webkitkeyadded", "keyerror", "webkitkeyerror", "keymessage", "webkitkeymessage", "needkey", "webkitneedkey", "pointerlockchange", "webkitpointerlockchange", "pointerlockerror", "webkitpointerlockerror", "resourcetimingbufferfull", "webkitresourcetimingbufferfull", "transitionend", "webkitTransitionEnd", "speechchange", "webkitSpeechChange"]);
  }
}, true);
html$.ExtendableMessageEvent = class ExtendableMessageEvent extends html$.ExtendableEvent {
  get [$data]() {
    return this.data;
  }
  get [$lastEventId]() {
    return this.lastEventId;
  }
  get [$origin]() {
    return this.origin;
  }
  get [$ports]() {
    return this.ports;
  }
  get [$source]() {
    return this.source;
  }
};
dart.addTypeTests(html$.ExtendableMessageEvent);
dart.addTypeCaches(html$.ExtendableMessageEvent);
dart.setGetterSignature(html$.ExtendableMessageEvent, () => ({
  __proto__: dart.getGetters(html$.ExtendableMessageEvent.__proto__),
  [$data]: core.Object,
  [$lastEventId]: core.String,
  [$origin]: core.String,
  [$ports]: core.List$(html$.MessagePort),
  [$source]: core.Object
}));
dart.setLibraryUri(html$.ExtendableMessageEvent, L65);
dart.registerExtension("ExtendableMessageEvent", html$.ExtendableMessageEvent);
html$.External = class External extends _interceptors.Interceptor {
  [$AddSearchProvider](...args) {
    return this.AddSearchProvider.apply(this, args);
  }
  [$IsSearchProviderInstalled](...args) {
    return this.IsSearchProviderInstalled.apply(this, args);
  }
};
dart.addTypeTests(html$.External);
dart.addTypeCaches(html$.External);
dart.setMethodSignature(html$.External, () => ({
  __proto__: dart.getMethods(html$.External.__proto__),
  [$AddSearchProvider]: dart.fnType(dart.void, []),
  [$IsSearchProviderInstalled]: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(html$.External, L65);
dart.registerExtension("External", html$.External);
html$.FaceDetector = class FaceDetector$ extends _interceptors.Interceptor {
  static new(faceDetectorOptions = null) {
    if (faceDetectorOptions != null) {
      let faceDetectorOptions_1 = html_common.convertDartToNative_Dictionary(faceDetectorOptions);
      return html$.FaceDetector._create_1(faceDetectorOptions_1);
    }
    return html$.FaceDetector._create_2();
  }
  static _create_1(faceDetectorOptions) {
    return new FaceDetector(faceDetectorOptions);
  }
  static _create_2() {
    return new FaceDetector();
  }
  [$detect](image) {
    return js_util.promiseToFuture(core.List, this.detect(image));
  }
};
dart.addTypeTests(html$.FaceDetector);
dart.addTypeCaches(html$.FaceDetector);
dart.setMethodSignature(html$.FaceDetector, () => ({
  __proto__: dart.getMethods(html$.FaceDetector.__proto__),
  [$detect]: dart.fnType(async.Future$(core.List), [dart.dynamic])
}));
dart.setLibraryUri(html$.FaceDetector, L65);
dart.registerExtension("FaceDetector", html$.FaceDetector);
html$.FederatedCredential = class FederatedCredential$ extends html$.Credential {
  static new(data) {
    let data_1 = html_common.convertDartToNative_Dictionary(data);
    return html$.FederatedCredential._create_1(data_1);
  }
  static _create_1(data) {
    return new FederatedCredential(data);
  }
  get [$protocol]() {
    return this.protocol;
  }
  get [$provider]() {
    return this.provider;
  }
  get [$iconUrl]() {
    return this.iconURL;
  }
  get [$name]() {
    return this.name;
  }
};
dart.addTypeTests(html$.FederatedCredential);
dart.addTypeCaches(html$.FederatedCredential);
html$.FederatedCredential[dart.implements] = () => [html$.CredentialUserData];
dart.setGetterSignature(html$.FederatedCredential, () => ({
  __proto__: dart.getGetters(html$.FederatedCredential.__proto__),
  [$protocol]: core.String,
  [$provider]: core.String,
  [$iconUrl]: core.String,
  [$name]: core.String
}));
dart.setLibraryUri(html$.FederatedCredential, L65);
dart.registerExtension("FederatedCredential", html$.FederatedCredential);
html$.FetchEvent = class FetchEvent$ extends html$.ExtendableEvent {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$.FetchEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new FetchEvent(type, eventInitDict);
  }
  get [$clientId]() {
    return this.clientId;
  }
  get [$isReload]() {
    return this.isReload;
  }
  get [$preloadResponse]() {
    return js_util.promiseToFuture(dart.dynamic, this.preloadResponse);
  }
  get [$request]() {
    return this.request;
  }
  [$respondWith](...args) {
    return this.respondWith.apply(this, args);
  }
};
dart.addTypeTests(html$.FetchEvent);
dart.addTypeCaches(html$.FetchEvent);
dart.setMethodSignature(html$.FetchEvent, () => ({
  __proto__: dart.getMethods(html$.FetchEvent.__proto__),
  [$respondWith]: dart.fnType(dart.void, [async.Future])
}));
dart.setGetterSignature(html$.FetchEvent, () => ({
  __proto__: dart.getGetters(html$.FetchEvent.__proto__),
  [$clientId]: core.String,
  [$isReload]: core.bool,
  [$preloadResponse]: async.Future,
  [$request]: html$._Request
}));
dart.setLibraryUri(html$.FetchEvent, L65);
dart.registerExtension("FetchEvent", html$.FetchEvent);
html$.FieldSetElement = class FieldSetElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("fieldset");
  }
  get [$disabled]() {
    return this.disabled;
  }
  set [$disabled](value) {
    this.disabled = value;
  }
  get [$elements]() {
    return this.elements;
  }
  get [$form]() {
    return this.form;
  }
  get [$name]() {
    return this.name;
  }
  set [$name](value) {
    this.name = value;
  }
  get [$type]() {
    return this.type;
  }
  get [$validationMessage]() {
    return this.validationMessage;
  }
  get [$validity]() {
    return this.validity;
  }
  get [$willValidate]() {
    return this.willValidate;
  }
  [$checkValidity](...args) {
    return this.checkValidity.apply(this, args);
  }
  [$reportValidity](...args) {
    return this.reportValidity.apply(this, args);
  }
  [$setCustomValidity](...args) {
    return this.setCustomValidity.apply(this, args);
  }
};
(html$.FieldSetElement.created = function() {
  html$.FieldSetElement.__proto__.created.call(this);
  ;
}).prototype = html$.FieldSetElement.prototype;
dart.addTypeTests(html$.FieldSetElement);
dart.addTypeCaches(html$.FieldSetElement);
dart.setMethodSignature(html$.FieldSetElement, () => ({
  __proto__: dart.getMethods(html$.FieldSetElement.__proto__),
  [$checkValidity]: dart.fnType(core.bool, []),
  [$reportValidity]: dart.fnType(core.bool, []),
  [$setCustomValidity]: dart.fnType(dart.void, [core.String])
}));
dart.setGetterSignature(html$.FieldSetElement, () => ({
  __proto__: dart.getGetters(html$.FieldSetElement.__proto__),
  [$disabled]: core.bool,
  [$elements]: core.List$(html$.Node),
  [$form]: html$.FormElement,
  [$name]: core.String,
  [$type]: core.String,
  [$validationMessage]: core.String,
  [$validity]: html$.ValidityState,
  [$willValidate]: core.bool
}));
dart.setSetterSignature(html$.FieldSetElement, () => ({
  __proto__: dart.getSetters(html$.FieldSetElement.__proto__),
  [$disabled]: core.bool,
  [$name]: core.String
}));
dart.setLibraryUri(html$.FieldSetElement, L65);
dart.registerExtension("HTMLFieldSetElement", html$.FieldSetElement);
var _get_lastModifiedDate = dart.privateName(html$, "_get_lastModifiedDate");
html$.File = class File$ extends html$.Blob {
  static new(fileBits, fileName, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return html$.File._create_1(fileBits, fileName, options_1);
    }
    return html$.File._create_2(fileBits, fileName);
  }
  static _create_1(fileBits, fileName, options) {
    return new File(fileBits, fileName, options);
  }
  static _create_2(fileBits, fileName) {
    return new File(fileBits, fileName);
  }
  get [$lastModified]() {
    return this.lastModified;
  }
  get [$lastModifiedDate]() {
    return html_common.convertNativeToDart_DateTime(this[_get_lastModifiedDate]);
  }
  get [_get_lastModifiedDate]() {
    return this.lastModifiedDate;
  }
  get [$name]() {
    return this.name;
  }
  get [$relativePath]() {
    return this.webkitRelativePath;
  }
};
dart.addTypeTests(html$.File);
dart.addTypeCaches(html$.File);
dart.setGetterSignature(html$.File, () => ({
  __proto__: dart.getGetters(html$.File.__proto__),
  [$lastModified]: core.int,
  [$lastModifiedDate]: core.DateTime,
  [_get_lastModifiedDate]: dart.dynamic,
  [$name]: core.String,
  [$relativePath]: core.String
}));
dart.setLibraryUri(html$.File, L65);
dart.registerExtension("File", html$.File);
var _createWriter = dart.privateName(html$, "_createWriter");
var _file = dart.privateName(html$, "_file");
html$.FileEntry = class FileEntry extends html$.Entry {
  [_createWriter](...args) {
    return this.createWriter.apply(this, args);
  }
  [$createWriter]() {
    let completer = CompleterOfFileWriterL().new();
    this[_createWriter](dart.fn(value => {
      _js_helper.applyExtension("FileWriter", value);
      completer.complete(value);
    }, FileWriterLToNullN()), dart.fn(error => {
      completer.completeError(error);
    }, DomExceptionLToNullN()));
    return completer.future;
  }
  [_file](...args) {
    return this.file.apply(this, args);
  }
  [$file]() {
    let completer = CompleterOfFileL$().new();
    this[_file](dart.fn(value => {
      _js_helper.applyExtension("File", value);
      completer.complete(value);
    }, FileLToNullN()), dart.fn(error => {
      completer.completeError(error);
    }, DomExceptionLToNullN()));
    return completer.future;
  }
};
dart.addTypeTests(html$.FileEntry);
dart.addTypeCaches(html$.FileEntry);
dart.setMethodSignature(html$.FileEntry, () => ({
  __proto__: dart.getMethods(html$.FileEntry.__proto__),
  [_createWriter]: dart.fnType(dart.void, [dart.fnType(dart.void, [html$.FileWriter])], [dart.fnType(dart.void, [html$.DomException])]),
  [$createWriter]: dart.fnType(async.Future$(html$.FileWriter), []),
  [_file]: dart.fnType(dart.void, [dart.fnType(dart.void, [html$.File])], [dart.fnType(dart.void, [html$.DomException])]),
  [$file]: dart.fnType(async.Future$(html$.File), [])
}));
dart.setLibraryUri(html$.FileEntry, L65);
dart.registerExtension("FileEntry", html$.FileEntry);
const Interceptor_ListMixin$36$0 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$0.new = function() {
  Interceptor_ListMixin$36$0.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$0.prototype;
dart.applyMixin(Interceptor_ListMixin$36$0, collection.ListMixin$(html$.File));
const Interceptor_ImmutableListMixin$36$0 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$0 {};
(Interceptor_ImmutableListMixin$36$0.new = function() {
  Interceptor_ImmutableListMixin$36$0.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$0.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$0, html$.ImmutableListMixin$(html$.File));
html$.FileList = class FileList extends Interceptor_ImmutableListMixin$36$0 {
  get [$length]() {
    return this.length;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this[index];
  }
  [$_set](index, value$) {
    let value = value$;
    html$.File.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
};
html$.FileList.prototype[dart.isList] = true;
dart.addTypeTests(html$.FileList);
dart.addTypeCaches(html$.FileList);
html$.FileList[dart.implements] = () => [core.List$(html$.File), _js_helper.JavaScriptIndexingBehavior$(html$.File)];
dart.setMethodSignature(html$.FileList, () => ({
  __proto__: dart.getMethods(html$.FileList.__proto__),
  [$_get]: dart.fnType(html$.File, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [$item]: dart.fnType(html$.File, [core.int])
}));
dart.setGetterSignature(html$.FileList, () => ({
  __proto__: dart.getGetters(html$.FileList.__proto__),
  [$length]: core.int
}));
dart.setSetterSignature(html$.FileList, () => ({
  __proto__: dart.getSetters(html$.FileList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$.FileList, L65);
dart.registerExtension("FileList", html$.FileList);
var C332;
var C333;
var C334;
var C335;
var C336;
html$.FileReader = class FileReader$ extends html$.EventTarget {
  get [$result]() {
    let res = this.result;
    if (typed_data.ByteBuffer.is(res)) {
      return typed_data.Uint8List.view(res);
    }
    return res;
  }
  static new() {
    return html$.FileReader._create_1();
  }
  static _create_1() {
    return new FileReader();
  }
  get [$error]() {
    return this.error;
  }
  get [$readyState]() {
    return this.readyState;
  }
  [$abort](...args) {
    return this.abort.apply(this, args);
  }
  [$readAsArrayBuffer](...args) {
    return this.readAsArrayBuffer.apply(this, args);
  }
  [$readAsDataUrl](...args) {
    return this.readAsDataURL.apply(this, args);
  }
  [$readAsText](...args) {
    return this.readAsText.apply(this, args);
  }
  get [$onAbort]() {
    return html$.FileReader.abortEvent.forTarget(this);
  }
  get [$onError]() {
    return html$.FileReader.errorEvent.forTarget(this);
  }
  get [$onLoad]() {
    return html$.FileReader.loadEvent.forTarget(this);
  }
  get [$onLoadEnd]() {
    return html$.FileReader.loadEndEvent.forTarget(this);
  }
  get [$onLoadStart]() {
    return html$.FileReader.loadStartEvent.forTarget(this);
  }
  get [$onProgress]() {
    return html$.FileReader.progressEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.FileReader);
dart.addTypeCaches(html$.FileReader);
dart.setMethodSignature(html$.FileReader, () => ({
  __proto__: dart.getMethods(html$.FileReader.__proto__),
  [$abort]: dart.fnType(dart.void, []),
  [$readAsArrayBuffer]: dart.fnType(dart.void, [html$.Blob]),
  [$readAsDataUrl]: dart.fnType(dart.void, [html$.Blob]),
  [$readAsText]: dart.fnType(dart.void, [html$.Blob], [core.String])
}));
dart.setGetterSignature(html$.FileReader, () => ({
  __proto__: dart.getGetters(html$.FileReader.__proto__),
  [$result]: core.Object,
  [$error]: html$.DomException,
  [$readyState]: core.int,
  [$onAbort]: async.Stream$(html$.ProgressEvent),
  [$onError]: async.Stream$(html$.ProgressEvent),
  [$onLoad]: async.Stream$(html$.ProgressEvent),
  [$onLoadEnd]: async.Stream$(html$.ProgressEvent),
  [$onLoadStart]: async.Stream$(html$.ProgressEvent),
  [$onProgress]: async.Stream$(html$.ProgressEvent)
}));
dart.setLibraryUri(html$.FileReader, L65);
dart.defineLazy(html$.FileReader, {
  /*html$.FileReader.abortEvent*/get abortEvent() {
    return C332 || CT.C332;
  },
  /*html$.FileReader.errorEvent*/get errorEvent() {
    return C333 || CT.C333;
  },
  /*html$.FileReader.loadEvent*/get loadEvent() {
    return C334 || CT.C334;
  },
  /*html$.FileReader.loadEndEvent*/get loadEndEvent() {
    return C335 || CT.C335;
  },
  /*html$.FileReader.loadStartEvent*/get loadStartEvent() {
    return C336 || CT.C336;
  },
  /*html$.FileReader.progressEvent*/get progressEvent() {
    return C310 || CT.C310;
  },
  /*html$.FileReader.DONE*/get DONE() {
    return 2;
  },
  /*html$.FileReader.EMPTY*/get EMPTY() {
    return 0;
  },
  /*html$.FileReader.LOADING*/get LOADING() {
    return 1;
  }
}, true);
dart.registerExtension("FileReader", html$.FileReader);
html$.FileSystem = class FileSystem extends _interceptors.Interceptor {
  static get supported() {
    return !!window.webkitRequestFileSystem;
  }
  get [$name]() {
    return this.name;
  }
  get [$root]() {
    return this.root;
  }
};
dart.addTypeTests(html$.FileSystem);
dart.addTypeCaches(html$.FileSystem);
dart.setGetterSignature(html$.FileSystem, () => ({
  __proto__: dart.getGetters(html$.FileSystem.__proto__),
  [$name]: core.String,
  [$root]: html$.DirectoryEntry
}));
dart.setLibraryUri(html$.FileSystem, L65);
dart.registerExtension("DOMFileSystem", html$.FileSystem);
var C337;
var C338;
var C339;
html$.FileWriter = class FileWriter extends html$.EventTarget {
  get [$error]() {
    return this.error;
  }
  get [$length]() {
    return this.length;
  }
  get [$position]() {
    return this.position;
  }
  get [$readyState]() {
    return this.readyState;
  }
  [$abort](...args) {
    return this.abort.apply(this, args);
  }
  [$seek](...args) {
    return this.seek.apply(this, args);
  }
  [$truncate](...args) {
    return this.truncate.apply(this, args);
  }
  [$write](...args) {
    return this.write.apply(this, args);
  }
  get [$onAbort]() {
    return html$.FileWriter.abortEvent.forTarget(this);
  }
  get [$onError]() {
    return html$.FileWriter.errorEvent.forTarget(this);
  }
  get [$onProgress]() {
    return html$.FileWriter.progressEvent.forTarget(this);
  }
  get [$onWrite]() {
    return html$.FileWriter.writeEvent.forTarget(this);
  }
  get [$onWriteEnd]() {
    return html$.FileWriter.writeEndEvent.forTarget(this);
  }
  get [$onWriteStart]() {
    return html$.FileWriter.writeStartEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.FileWriter);
dart.addTypeCaches(html$.FileWriter);
dart.setMethodSignature(html$.FileWriter, () => ({
  __proto__: dart.getMethods(html$.FileWriter.__proto__),
  [$abort]: dart.fnType(dart.void, []),
  [$seek]: dart.fnType(dart.void, [core.int]),
  [$truncate]: dart.fnType(dart.void, [core.int]),
  [$write]: dart.fnType(dart.void, [html$.Blob])
}));
dart.setGetterSignature(html$.FileWriter, () => ({
  __proto__: dart.getGetters(html$.FileWriter.__proto__),
  [$error]: html$.DomException,
  [$length]: core.int,
  [$position]: core.int,
  [$readyState]: core.int,
  [$onAbort]: async.Stream$(html$.ProgressEvent),
  [$onError]: async.Stream$(html$.Event),
  [$onProgress]: async.Stream$(html$.ProgressEvent),
  [$onWrite]: async.Stream$(html$.ProgressEvent),
  [$onWriteEnd]: async.Stream$(html$.ProgressEvent),
  [$onWriteStart]: async.Stream$(html$.ProgressEvent)
}));
dart.setLibraryUri(html$.FileWriter, L65);
dart.defineLazy(html$.FileWriter, {
  /*html$.FileWriter.abortEvent*/get abortEvent() {
    return C332 || CT.C332;
  },
  /*html$.FileWriter.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  },
  /*html$.FileWriter.progressEvent*/get progressEvent() {
    return C310 || CT.C310;
  },
  /*html$.FileWriter.writeEvent*/get writeEvent() {
    return C337 || CT.C337;
  },
  /*html$.FileWriter.writeEndEvent*/get writeEndEvent() {
    return C338 || CT.C338;
  },
  /*html$.FileWriter.writeStartEvent*/get writeStartEvent() {
    return C339 || CT.C339;
  },
  /*html$.FileWriter.DONE*/get DONE() {
    return 2;
  },
  /*html$.FileWriter.INIT*/get INIT() {
    return 0;
  },
  /*html$.FileWriter.WRITING*/get WRITING() {
    return 1;
  }
}, true);
dart.registerExtension("FileWriter", html$.FileWriter);
var _get_relatedTarget = dart.privateName(html$, "_get_relatedTarget");
html$.FocusEvent = class FocusEvent$ extends html$.UIEvent {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.FocusEvent._create_1(type, eventInitDict_1);
    }
    return html$.FocusEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new FocusEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new FocusEvent(type);
  }
  get [$relatedTarget]() {
    return html$._convertNativeToDart_EventTarget(this[_get_relatedTarget]);
  }
  get [_get_relatedTarget]() {
    return this.relatedTarget;
  }
};
dart.addTypeTests(html$.FocusEvent);
dart.addTypeCaches(html$.FocusEvent);
dart.setGetterSignature(html$.FocusEvent, () => ({
  __proto__: dart.getGetters(html$.FocusEvent.__proto__),
  [$relatedTarget]: html$.EventTarget,
  [_get_relatedTarget]: dart.dynamic
}));
dart.setLibraryUri(html$.FocusEvent, L65);
dart.registerExtension("FocusEvent", html$.FocusEvent);
html$.FontFace = class FontFace$ extends _interceptors.Interceptor {
  static new(family, source, descriptors = null) {
    if (descriptors != null) {
      let descriptors_1 = html_common.convertDartToNative_Dictionary(descriptors);
      return html$.FontFace._create_1(family, source, descriptors_1);
    }
    return html$.FontFace._create_2(family, source);
  }
  static _create_1(family, source, descriptors) {
    return new FontFace(family, source, descriptors);
  }
  static _create_2(family, source) {
    return new FontFace(family, source);
  }
  get [$display]() {
    return this.display;
  }
  set [$display](value) {
    this.display = value;
  }
  get [$family]() {
    return this.family;
  }
  set [$family](value) {
    this.family = value;
  }
  get [$featureSettings]() {
    return this.featureSettings;
  }
  set [$featureSettings](value) {
    this.featureSettings = value;
  }
  get [$loaded]() {
    return js_util.promiseToFuture(html$.FontFace, this.loaded);
  }
  get [$status]() {
    return this.status;
  }
  get [$stretch]() {
    return this.stretch;
  }
  set [$stretch](value) {
    this.stretch = value;
  }
  get [$style]() {
    return this.style;
  }
  set [$style](value) {
    this.style = value;
  }
  get [$unicodeRange]() {
    return this.unicodeRange;
  }
  set [$unicodeRange](value) {
    this.unicodeRange = value;
  }
  get [$variant]() {
    return this.variant;
  }
  set [$variant](value) {
    this.variant = value;
  }
  get [$weight]() {
    return this.weight;
  }
  set [$weight](value) {
    this.weight = value;
  }
  [$load]() {
    return js_util.promiseToFuture(html$.FontFace, this.load());
  }
};
dart.addTypeTests(html$.FontFace);
dart.addTypeCaches(html$.FontFace);
dart.setMethodSignature(html$.FontFace, () => ({
  __proto__: dart.getMethods(html$.FontFace.__proto__),
  [$load]: dart.fnType(async.Future$(html$.FontFace), [])
}));
dart.setGetterSignature(html$.FontFace, () => ({
  __proto__: dart.getGetters(html$.FontFace.__proto__),
  [$display]: core.String,
  [$family]: core.String,
  [$featureSettings]: core.String,
  [$loaded]: async.Future$(html$.FontFace),
  [$status]: core.String,
  [$stretch]: core.String,
  [$style]: core.String,
  [$unicodeRange]: core.String,
  [$variant]: core.String,
  [$weight]: core.String
}));
dart.setSetterSignature(html$.FontFace, () => ({
  __proto__: dart.getSetters(html$.FontFace.__proto__),
  [$display]: core.String,
  [$family]: core.String,
  [$featureSettings]: core.String,
  [$stretch]: core.String,
  [$style]: core.String,
  [$unicodeRange]: core.String,
  [$variant]: core.String,
  [$weight]: core.String
}));
dart.setLibraryUri(html$.FontFace, L65);
dart.registerExtension("FontFace", html$.FontFace);
var C340;
var C341;
var C342;
html$.FontFaceSet = class FontFaceSet extends html$.EventTarget {
  get [$status]() {
    return this.status;
  }
  [$add](...args) {
    return this.add.apply(this, args);
  }
  [$check](...args) {
    return this.check.apply(this, args);
  }
  [$clear](...args) {
    return this.clear.apply(this, args);
  }
  [$delete](...args) {
    return this.delete.apply(this, args);
  }
  [$forEach](...args) {
    return this.forEach.apply(this, args);
  }
  [$has](...args) {
    return this.has.apply(this, args);
  }
  get [$onLoading]() {
    return html$.FontFaceSet.loadingEvent.forTarget(this);
  }
  get [$onLoadingDone]() {
    return html$.FontFaceSet.loadingDoneEvent.forTarget(this);
  }
  get [$onLoadingError]() {
    return html$.FontFaceSet.loadingErrorEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.FontFaceSet);
dart.addTypeCaches(html$.FontFaceSet);
dart.setMethodSignature(html$.FontFaceSet, () => ({
  __proto__: dart.getMethods(html$.FontFaceSet.__proto__),
  [$add]: dart.fnType(html$.FontFaceSet, [html$.FontFace]),
  [$check]: dart.fnType(core.bool, [core.String], [core.String]),
  [$clear]: dart.fnType(dart.void, []),
  [$delete]: dart.fnType(core.bool, [html$.FontFace]),
  [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [html$.FontFace, html$.FontFace, html$.FontFaceSet])], [core.Object]),
  [$has]: dart.fnType(core.bool, [html$.FontFace])
}));
dart.setGetterSignature(html$.FontFaceSet, () => ({
  __proto__: dart.getGetters(html$.FontFaceSet.__proto__),
  [$status]: core.String,
  [$onLoading]: async.Stream$(html$.FontFaceSetLoadEvent),
  [$onLoadingDone]: async.Stream$(html$.FontFaceSetLoadEvent),
  [$onLoadingError]: async.Stream$(html$.FontFaceSetLoadEvent)
}));
dart.setLibraryUri(html$.FontFaceSet, L65);
dart.defineLazy(html$.FontFaceSet, {
  /*html$.FontFaceSet.loadingEvent*/get loadingEvent() {
    return C340 || CT.C340;
  },
  /*html$.FontFaceSet.loadingDoneEvent*/get loadingDoneEvent() {
    return C341 || CT.C341;
  },
  /*html$.FontFaceSet.loadingErrorEvent*/get loadingErrorEvent() {
    return C342 || CT.C342;
  }
}, true);
dart.registerExtension("FontFaceSet", html$.FontFaceSet);
html$.FontFaceSetLoadEvent = class FontFaceSetLoadEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.FontFaceSetLoadEvent._create_1(type, eventInitDict_1);
    }
    return html$.FontFaceSetLoadEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new FontFaceSetLoadEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new FontFaceSetLoadEvent(type);
  }
  get [$fontfaces]() {
    return this.fontfaces;
  }
};
dart.addTypeTests(html$.FontFaceSetLoadEvent);
dart.addTypeCaches(html$.FontFaceSetLoadEvent);
dart.setGetterSignature(html$.FontFaceSetLoadEvent, () => ({
  __proto__: dart.getGetters(html$.FontFaceSetLoadEvent.__proto__),
  [$fontfaces]: core.List$(html$.FontFace)
}));
dart.setLibraryUri(html$.FontFaceSetLoadEvent, L65);
dart.registerExtension("FontFaceSetLoadEvent", html$.FontFaceSetLoadEvent);
html$.FontFaceSource = class FontFaceSource extends _interceptors.Interceptor {
  get [$fonts]() {
    return this.fonts;
  }
};
dart.addTypeTests(html$.FontFaceSource);
dart.addTypeCaches(html$.FontFaceSource);
dart.setGetterSignature(html$.FontFaceSource, () => ({
  __proto__: dart.getGetters(html$.FontFaceSource.__proto__),
  [$fonts]: html$.FontFaceSet
}));
dart.setLibraryUri(html$.FontFaceSource, L65);
dart.registerExtension("FontFaceSource", html$.FontFaceSource);
html$.ForeignFetchEvent = class ForeignFetchEvent$ extends html$.ExtendableEvent {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$.ForeignFetchEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new ForeignFetchEvent(type, eventInitDict);
  }
  get [$origin]() {
    return this.origin;
  }
  get [$request]() {
    return this.request;
  }
  [$respondWith](...args) {
    return this.respondWith.apply(this, args);
  }
};
dart.addTypeTests(html$.ForeignFetchEvent);
dart.addTypeCaches(html$.ForeignFetchEvent);
dart.setMethodSignature(html$.ForeignFetchEvent, () => ({
  __proto__: dart.getMethods(html$.ForeignFetchEvent.__proto__),
  [$respondWith]: dart.fnType(dart.void, [async.Future])
}));
dart.setGetterSignature(html$.ForeignFetchEvent, () => ({
  __proto__: dart.getGetters(html$.ForeignFetchEvent.__proto__),
  [$origin]: core.String,
  [$request]: html$._Request
}));
dart.setLibraryUri(html$.ForeignFetchEvent, L65);
dart.registerExtension("ForeignFetchEvent", html$.ForeignFetchEvent);
html$.FormData = class FormData$ extends _interceptors.Interceptor {
  static new(form = null) {
    if (form != null) {
      return html$.FormData._create_1(form);
    }
    return html$.FormData._create_2();
  }
  static _create_1(form) {
    return new FormData(form);
  }
  static _create_2() {
    return new FormData();
  }
  static get supported() {
    return !!window.FormData;
  }
  [$append](...args) {
    return this.append.apply(this, args);
  }
  [$appendBlob](...args) {
    return this.append.apply(this, args);
  }
  [$delete](...args) {
    return this.delete.apply(this, args);
  }
  [$get](...args) {
    return this.get.apply(this, args);
  }
  [$getAll](...args) {
    return this.getAll.apply(this, args);
  }
  [$has](...args) {
    return this.has.apply(this, args);
  }
  [$set](...args) {
    return this.set.apply(this, args);
  }
};
dart.addTypeTests(html$.FormData);
dart.addTypeCaches(html$.FormData);
dart.setMethodSignature(html$.FormData, () => ({
  __proto__: dart.getMethods(html$.FormData.__proto__),
  [$append]: dart.fnType(dart.void, [core.String, core.String]),
  [$appendBlob]: dart.fnType(dart.void, [core.String, html$.Blob], [core.String]),
  [$delete]: dart.fnType(dart.void, [core.String]),
  [$get]: dart.fnType(core.Object, [core.String]),
  [$getAll]: dart.fnType(core.List$(core.Object), [core.String]),
  [$has]: dart.fnType(core.bool, [core.String]),
  [$set]: dart.fnType(dart.void, [core.String, dart.dynamic], [core.String])
}));
dart.setLibraryUri(html$.FormData, L65);
dart.registerExtension("FormData", html$.FormData);
var _requestAutocomplete_1 = dart.privateName(html$, "_requestAutocomplete_1");
html$.FormElement = class FormElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("form");
  }
  get [$acceptCharset]() {
    return this.acceptCharset;
  }
  set [$acceptCharset](value) {
    this.acceptCharset = value;
  }
  get [$action]() {
    return this.action;
  }
  set [$action](value) {
    this.action = value;
  }
  get [$autocomplete]() {
    return this.autocomplete;
  }
  set [$autocomplete](value) {
    this.autocomplete = value;
  }
  get [$encoding]() {
    return this.encoding;
  }
  set [$encoding](value) {
    this.encoding = value;
  }
  get [$enctype]() {
    return this.enctype;
  }
  set [$enctype](value) {
    this.enctype = value;
  }
  get [$length]() {
    return this.length;
  }
  get [$method]() {
    return this.method;
  }
  set [$method](value) {
    this.method = value;
  }
  get [$name]() {
    return this.name;
  }
  set [$name](value) {
    this.name = value;
  }
  get [$noValidate]() {
    return this.noValidate;
  }
  set [$noValidate](value) {
    this.noValidate = value;
  }
  get [$target]() {
    return this.target;
  }
  set [$target](value) {
    this.target = value;
  }
  [__getter__](...args) {
    return this.__getter__.apply(this, args);
  }
  [$checkValidity](...args) {
    return this.checkValidity.apply(this, args);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
  [$reportValidity](...args) {
    return this.reportValidity.apply(this, args);
  }
  [$requestAutocomplete](details) {
    let details_1 = html_common.convertDartToNative_Dictionary(details);
    this[_requestAutocomplete_1](details_1);
    return;
  }
  [_requestAutocomplete_1](...args) {
    return this.requestAutocomplete.apply(this, args);
  }
  [$reset](...args) {
    return this.reset.apply(this, args);
  }
  [$submit](...args) {
    return this.submit.apply(this, args);
  }
};
(html$.FormElement.created = function() {
  html$.FormElement.__proto__.created.call(this);
  ;
}).prototype = html$.FormElement.prototype;
dart.addTypeTests(html$.FormElement);
dart.addTypeCaches(html$.FormElement);
dart.setMethodSignature(html$.FormElement, () => ({
  __proto__: dart.getMethods(html$.FormElement.__proto__),
  [__getter__]: dart.fnType(core.Object, [core.String]),
  [$checkValidity]: dart.fnType(core.bool, []),
  [$item]: dart.fnType(html$.Element, [core.int]),
  [$reportValidity]: dart.fnType(core.bool, []),
  [$requestAutocomplete]: dart.fnType(dart.void, [core.Map]),
  [_requestAutocomplete_1]: dart.fnType(dart.void, [dart.dynamic]),
  [$reset]: dart.fnType(dart.void, []),
  [$submit]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.FormElement, () => ({
  __proto__: dart.getGetters(html$.FormElement.__proto__),
  [$acceptCharset]: core.String,
  [$action]: core.String,
  [$autocomplete]: core.String,
  [$encoding]: core.String,
  [$enctype]: core.String,
  [$length]: core.int,
  [$method]: core.String,
  [$name]: core.String,
  [$noValidate]: core.bool,
  [$target]: core.String
}));
dart.setSetterSignature(html$.FormElement, () => ({
  __proto__: dart.getSetters(html$.FormElement.__proto__),
  [$acceptCharset]: core.String,
  [$action]: core.String,
  [$autocomplete]: core.String,
  [$encoding]: core.String,
  [$enctype]: core.String,
  [$method]: core.String,
  [$name]: core.String,
  [$noValidate]: core.bool,
  [$target]: core.String
}));
dart.setLibraryUri(html$.FormElement, L65);
dart.registerExtension("HTMLFormElement", html$.FormElement);
html$.Gamepad = class Gamepad extends _interceptors.Interceptor {
  get [$axes]() {
    return this.axes;
  }
  get [$buttons]() {
    return this.buttons;
  }
  get [$connected]() {
    return this.connected;
  }
  get [$displayId]() {
    return this.displayId;
  }
  get [$hand]() {
    return this.hand;
  }
  get [$id]() {
    return this.id;
  }
  get [$index]() {
    return this.index;
  }
  get [$mapping]() {
    return this.mapping;
  }
  get [$pose]() {
    return this.pose;
  }
  get [$timestamp]() {
    return this.timestamp;
  }
};
dart.addTypeTests(html$.Gamepad);
dart.addTypeCaches(html$.Gamepad);
dart.setGetterSignature(html$.Gamepad, () => ({
  __proto__: dart.getGetters(html$.Gamepad.__proto__),
  [$axes]: core.List$(core.num),
  [$buttons]: core.List$(html$.GamepadButton),
  [$connected]: core.bool,
  [$displayId]: core.int,
  [$hand]: core.String,
  [$id]: core.String,
  [$index]: core.int,
  [$mapping]: core.String,
  [$pose]: html$.GamepadPose,
  [$timestamp]: core.int
}));
dart.setLibraryUri(html$.Gamepad, L65);
dart.registerExtension("Gamepad", html$.Gamepad);
html$.GamepadButton = class GamepadButton extends _interceptors.Interceptor {
  get [$pressed]() {
    return this.pressed;
  }
  get [$touched]() {
    return this.touched;
  }
  get [$value]() {
    return this.value;
  }
};
dart.addTypeTests(html$.GamepadButton);
dart.addTypeCaches(html$.GamepadButton);
dart.setGetterSignature(html$.GamepadButton, () => ({
  __proto__: dart.getGetters(html$.GamepadButton.__proto__),
  [$pressed]: core.bool,
  [$touched]: core.bool,
  [$value]: core.num
}));
dart.setLibraryUri(html$.GamepadButton, L65);
dart.registerExtension("GamepadButton", html$.GamepadButton);
html$.GamepadEvent = class GamepadEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.GamepadEvent._create_1(type, eventInitDict_1);
    }
    return html$.GamepadEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new GamepadEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new GamepadEvent(type);
  }
  get [$gamepad]() {
    return this.gamepad;
  }
};
dart.addTypeTests(html$.GamepadEvent);
dart.addTypeCaches(html$.GamepadEvent);
dart.setGetterSignature(html$.GamepadEvent, () => ({
  __proto__: dart.getGetters(html$.GamepadEvent.__proto__),
  [$gamepad]: html$.Gamepad
}));
dart.setLibraryUri(html$.GamepadEvent, L65);
dart.registerExtension("GamepadEvent", html$.GamepadEvent);
html$.GamepadPose = class GamepadPose extends _interceptors.Interceptor {
  get [$angularAcceleration]() {
    return this.angularAcceleration;
  }
  get [$angularVelocity]() {
    return this.angularVelocity;
  }
  get [$hasOrientation]() {
    return this.hasOrientation;
  }
  get [$hasPosition]() {
    return this.hasPosition;
  }
  get [$linearAcceleration]() {
    return this.linearAcceleration;
  }
  get [$linearVelocity]() {
    return this.linearVelocity;
  }
  get [$orientation]() {
    return this.orientation;
  }
  get [$position]() {
    return this.position;
  }
};
dart.addTypeTests(html$.GamepadPose);
dart.addTypeCaches(html$.GamepadPose);
dart.setGetterSignature(html$.GamepadPose, () => ({
  __proto__: dart.getGetters(html$.GamepadPose.__proto__),
  [$angularAcceleration]: typed_data.Float32List,
  [$angularVelocity]: typed_data.Float32List,
  [$hasOrientation]: core.bool,
  [$hasPosition]: core.bool,
  [$linearAcceleration]: typed_data.Float32List,
  [$linearVelocity]: typed_data.Float32List,
  [$orientation]: typed_data.Float32List,
  [$position]: typed_data.Float32List
}));
dart.setLibraryUri(html$.GamepadPose, L65);
dart.registerExtension("GamepadPose", html$.GamepadPose);
var _ensurePosition = dart.privateName(html$, "_ensurePosition");
var _getCurrentPosition = dart.privateName(html$, "_getCurrentPosition");
var _clearWatch = dart.privateName(html$, "_clearWatch");
var _watchPosition = dart.privateName(html$, "_watchPosition");
var _getCurrentPosition_1 = dart.privateName(html$, "_getCurrentPosition_1");
var _getCurrentPosition_2 = dart.privateName(html$, "_getCurrentPosition_2");
var _getCurrentPosition_3 = dart.privateName(html$, "_getCurrentPosition_3");
var _watchPosition_1 = dart.privateName(html$, "_watchPosition_1");
var _watchPosition_2 = dart.privateName(html$, "_watchPosition_2");
var _watchPosition_3 = dart.privateName(html$, "_watchPosition_3");
html$.Geolocation = class Geolocation extends _interceptors.Interceptor {
  [$getCurrentPosition](opts) {
    let enableHighAccuracy = opts && 'enableHighAccuracy' in opts ? opts.enableHighAccuracy : null;
    let timeout = opts && 'timeout' in opts ? opts.timeout : null;
    let maximumAge = opts && 'maximumAge' in opts ? opts.maximumAge : null;
    let options = new _js_helper.LinkedMap.new();
    if (enableHighAccuracy != null) {
      options[$_set]("enableHighAccuracy", enableHighAccuracy);
    }
    if (timeout != null) {
      options[$_set]("timeout", timeout.inMilliseconds);
    }
    if (maximumAge != null) {
      options[$_set]("maximumAge", maximumAge.inMilliseconds);
    }
    let completer = CompleterOfGeopositionL().new();
    try {
      this[_getCurrentPosition](dart.fn(position => {
        completer.complete(this[_ensurePosition](position));
      }, GeopositionLToNullN()), dart.fn(error => {
        completer.completeError(error);
      }, PositionErrorLToNullN()), options);
    } catch (e$) {
      let e = dart.getThrown(e$);
      let stacktrace = dart.stackTrace(e$);
      completer.completeError(e, stacktrace);
    }
    return completer.future;
  }
  [$watchPosition](opts) {
    let enableHighAccuracy = opts && 'enableHighAccuracy' in opts ? opts.enableHighAccuracy : null;
    let timeout = opts && 'timeout' in opts ? opts.timeout : null;
    let maximumAge = opts && 'maximumAge' in opts ? opts.maximumAge : null;
    let options = new _js_helper.LinkedMap.new();
    if (enableHighAccuracy != null) {
      options[$_set]("enableHighAccuracy", enableHighAccuracy);
    }
    if (timeout != null) {
      options[$_set]("timeout", timeout.inMilliseconds);
    }
    if (maximumAge != null) {
      options[$_set]("maximumAge", maximumAge.inMilliseconds);
    }
    let watchId = null;
    let controller = StreamControllerOfGeopositionL().new({sync: true, onCancel: dart.fn(() => {
        if (!(watchId != null)) dart.assertFailed(null, L66, 16828, 22, "watchId != null");
        this[_clearWatch](watchId);
      }, VoidToNullN())});
    controller.onListen = dart.fn(() => {
      if (!(watchId == null)) dart.assertFailed(null, L66, 16832, 14, "watchId == null");
      watchId = this[_watchPosition](dart.fn(position => {
        controller.add(this[_ensurePosition](position));
      }, GeopositionLToNullN()), dart.fn(error => {
        controller.addError(error);
      }, PositionErrorLToNullN()), options);
    }, VoidToNullN());
    return controller.stream;
  }
  [_ensurePosition](domPosition) {
    try {
      if (html$.Geoposition.is(domPosition)) {
        return domPosition;
      }
    } catch (e$) {
      let e = dart.getThrown(e$);
    }
    return new html$._GeopositionWrapper.new(domPosition);
  }
  [_clearWatch](...args) {
    return this.clearWatch.apply(this, args);
  }
  [_getCurrentPosition](successCallback, errorCallback = null, options = null) {
    if (options != null) {
      let successCallback_1 = _js_helper.convertDartClosureToJS(GeopositionLToLvoid(), successCallback, 1);
      let options_2 = html_common.convertDartToNative_Dictionary(options);
      this[_getCurrentPosition_1](successCallback_1, errorCallback, options_2);
      return;
    }
    if (errorCallback != null) {
      let successCallback_1 = _js_helper.convertDartClosureToJS(GeopositionLToLvoid(), successCallback, 1);
      this[_getCurrentPosition_2](successCallback_1, errorCallback);
      return;
    }
    let successCallback_1 = _js_helper.convertDartClosureToJS(GeopositionLToLvoid(), successCallback, 1);
    this[_getCurrentPosition_3](successCallback_1);
    return;
  }
  [_getCurrentPosition_1](...args) {
    return this.getCurrentPosition.apply(this, args);
  }
  [_getCurrentPosition_2](...args) {
    return this.getCurrentPosition.apply(this, args);
  }
  [_getCurrentPosition_3](...args) {
    return this.getCurrentPosition.apply(this, args);
  }
  [_watchPosition](successCallback, errorCallback = null, options = null) {
    if (options != null) {
      let successCallback_1 = _js_helper.convertDartClosureToJS(GeopositionLToLvoid(), successCallback, 1);
      let options_2 = html_common.convertDartToNative_Dictionary(options);
      return this[_watchPosition_1](successCallback_1, errorCallback, options_2);
    }
    if (errorCallback != null) {
      let successCallback_1 = _js_helper.convertDartClosureToJS(GeopositionLToLvoid(), successCallback, 1);
      return this[_watchPosition_2](successCallback_1, errorCallback);
    }
    let successCallback_1 = _js_helper.convertDartClosureToJS(GeopositionLToLvoid(), successCallback, 1);
    return this[_watchPosition_3](successCallback_1);
  }
  [_watchPosition_1](...args) {
    return this.watchPosition.apply(this, args);
  }
  [_watchPosition_2](...args) {
    return this.watchPosition.apply(this, args);
  }
  [_watchPosition_3](...args) {
    return this.watchPosition.apply(this, args);
  }
};
dart.addTypeTests(html$.Geolocation);
dart.addTypeCaches(html$.Geolocation);
dart.setMethodSignature(html$.Geolocation, () => ({
  __proto__: dart.getMethods(html$.Geolocation.__proto__),
  [$getCurrentPosition]: dart.fnType(async.Future$(html$.Geoposition), [], {enableHighAccuracy: core.bool, maximumAge: core.Duration, timeout: core.Duration}, {}),
  [$watchPosition]: dart.fnType(async.Stream$(html$.Geoposition), [], {enableHighAccuracy: core.bool, maximumAge: core.Duration, timeout: core.Duration}, {}),
  [_ensurePosition]: dart.fnType(html$.Geoposition, [dart.dynamic]),
  [_clearWatch]: dart.fnType(dart.void, [core.int]),
  [_getCurrentPosition]: dart.fnType(dart.void, [dart.fnType(dart.void, [html$.Geoposition])], [dart.fnType(dart.void, [html$.PositionError]), core.Map]),
  [_getCurrentPosition_1]: dart.fnType(dart.void, [dart.dynamic, dart.fnType(dart.void, [html$.PositionError]), dart.dynamic]),
  [_getCurrentPosition_2]: dart.fnType(dart.void, [dart.dynamic, dart.fnType(dart.void, [html$.PositionError])]),
  [_getCurrentPosition_3]: dart.fnType(dart.void, [dart.dynamic]),
  [_watchPosition]: dart.fnType(core.int, [dart.fnType(dart.void, [html$.Geoposition])], [dart.fnType(dart.void, [html$.PositionError]), core.Map]),
  [_watchPosition_1]: dart.fnType(core.int, [dart.dynamic, dart.fnType(dart.void, [html$.PositionError]), dart.dynamic]),
  [_watchPosition_2]: dart.fnType(core.int, [dart.dynamic, dart.fnType(dart.void, [html$.PositionError])]),
  [_watchPosition_3]: dart.fnType(core.int, [dart.dynamic])
}));
dart.setLibraryUri(html$.Geolocation, L65);
dart.registerExtension("Geolocation", html$.Geolocation);
html$._GeopositionWrapper = class _GeopositionWrapper extends core.Object {
  get coords() {
    return this[_ptr$].coords;
  }
  get timestamp() {
    return this[_ptr$].timestamp;
  }
};
(html$._GeopositionWrapper.new = function(_ptr) {
  this[_ptr$] = _ptr;
  ;
}).prototype = html$._GeopositionWrapper.prototype;
dart.addTypeTests(html$._GeopositionWrapper);
dart.addTypeCaches(html$._GeopositionWrapper);
html$._GeopositionWrapper[dart.implements] = () => [html$.Geoposition];
dart.setGetterSignature(html$._GeopositionWrapper, () => ({
  __proto__: dart.getGetters(html$._GeopositionWrapper.__proto__),
  coords: html$.Coordinates,
  [$coords]: html$.Coordinates,
  timestamp: core.int,
  [$timestamp]: core.int
}));
dart.setLibraryUri(html$._GeopositionWrapper, L65);
dart.setFieldSignature(html$._GeopositionWrapper, () => ({
  __proto__: dart.getFields(html$._GeopositionWrapper.__proto__),
  [_ptr$]: dart.fieldType(dart.dynamic)
}));
dart.defineExtensionAccessors(html$._GeopositionWrapper, ['coords', 'timestamp']);
html$.Geoposition = class Geoposition extends _interceptors.Interceptor {
  get [$coords]() {
    return this.coords;
  }
  get [$timestamp]() {
    return this.timestamp;
  }
};
dart.addTypeTests(html$.Geoposition);
dart.addTypeCaches(html$.Geoposition);
dart.setGetterSignature(html$.Geoposition, () => ({
  __proto__: dart.getGetters(html$.Geoposition.__proto__),
  [$coords]: html$.Coordinates,
  [$timestamp]: core.int
}));
dart.setLibraryUri(html$.Geoposition, L65);
dart.registerExtension("Position", html$.Geoposition);
var C343;
html$.GlobalEventHandlers = class GlobalEventHandlers extends core.Object {
  get onAbort() {
    return html$.GlobalEventHandlers.abortEvent.forTarget(this);
  }
  get onBlur() {
    return html$.GlobalEventHandlers.blurEvent.forTarget(this);
  }
  get onCanPlay() {
    return html$.GlobalEventHandlers.canPlayEvent.forTarget(this);
  }
  get onCanPlayThrough() {
    return html$.GlobalEventHandlers.canPlayThroughEvent.forTarget(this);
  }
  get onChange() {
    return html$.GlobalEventHandlers.changeEvent.forTarget(this);
  }
  get onClick() {
    return html$.GlobalEventHandlers.clickEvent.forTarget(this);
  }
  get onContextMenu() {
    return html$.GlobalEventHandlers.contextMenuEvent.forTarget(this);
  }
  get onDoubleClick() {
    return html$.GlobalEventHandlers.doubleClickEvent.forTarget(this);
  }
  get onDrag() {
    return html$.GlobalEventHandlers.dragEvent.forTarget(this);
  }
  get onDragEnd() {
    return html$.GlobalEventHandlers.dragEndEvent.forTarget(this);
  }
  get onDragEnter() {
    return html$.GlobalEventHandlers.dragEnterEvent.forTarget(this);
  }
  get onDragLeave() {
    return html$.GlobalEventHandlers.dragLeaveEvent.forTarget(this);
  }
  get onDragOver() {
    return html$.GlobalEventHandlers.dragOverEvent.forTarget(this);
  }
  get onDragStart() {
    return html$.GlobalEventHandlers.dragStartEvent.forTarget(this);
  }
  get onDrop() {
    return html$.GlobalEventHandlers.dropEvent.forTarget(this);
  }
  get onDurationChange() {
    return html$.GlobalEventHandlers.durationChangeEvent.forTarget(this);
  }
  get onEmptied() {
    return html$.GlobalEventHandlers.emptiedEvent.forTarget(this);
  }
  get onEnded() {
    return html$.GlobalEventHandlers.endedEvent.forTarget(this);
  }
  get onError() {
    return html$.GlobalEventHandlers.errorEvent.forTarget(this);
  }
  get onFocus() {
    return html$.GlobalEventHandlers.focusEvent.forTarget(this);
  }
  get onInput() {
    return html$.GlobalEventHandlers.inputEvent.forTarget(this);
  }
  get onInvalid() {
    return html$.GlobalEventHandlers.invalidEvent.forTarget(this);
  }
  get onKeyDown() {
    return html$.GlobalEventHandlers.keyDownEvent.forTarget(this);
  }
  get onKeyPress() {
    return html$.GlobalEventHandlers.keyPressEvent.forTarget(this);
  }
  get onKeyUp() {
    return html$.GlobalEventHandlers.keyUpEvent.forTarget(this);
  }
  get onLoad() {
    return html$.GlobalEventHandlers.loadEvent.forTarget(this);
  }
  get onLoadedData() {
    return html$.GlobalEventHandlers.loadedDataEvent.forTarget(this);
  }
  get onLoadedMetadata() {
    return html$.GlobalEventHandlers.loadedMetadataEvent.forTarget(this);
  }
  get onMouseDown() {
    return html$.GlobalEventHandlers.mouseDownEvent.forTarget(this);
  }
  get onMouseEnter() {
    return html$.GlobalEventHandlers.mouseEnterEvent.forTarget(this);
  }
  get onMouseLeave() {
    return html$.GlobalEventHandlers.mouseLeaveEvent.forTarget(this);
  }
  get onMouseMove() {
    return html$.GlobalEventHandlers.mouseMoveEvent.forTarget(this);
  }
  get onMouseOut() {
    return html$.GlobalEventHandlers.mouseOutEvent.forTarget(this);
  }
  get onMouseOver() {
    return html$.GlobalEventHandlers.mouseOverEvent.forTarget(this);
  }
  get onMouseUp() {
    return html$.GlobalEventHandlers.mouseUpEvent.forTarget(this);
  }
  get onMouseWheel() {
    return html$.GlobalEventHandlers.mouseWheelEvent.forTarget(this);
  }
  get onPause() {
    return html$.GlobalEventHandlers.pauseEvent.forTarget(this);
  }
  get onPlay() {
    return html$.GlobalEventHandlers.playEvent.forTarget(this);
  }
  get onPlaying() {
    return html$.GlobalEventHandlers.playingEvent.forTarget(this);
  }
  get onRateChange() {
    return html$.GlobalEventHandlers.rateChangeEvent.forTarget(this);
  }
  get onReset() {
    return html$.GlobalEventHandlers.resetEvent.forTarget(this);
  }
  get onResize() {
    return html$.GlobalEventHandlers.resizeEvent.forTarget(this);
  }
  get onScroll() {
    return html$.GlobalEventHandlers.scrollEvent.forTarget(this);
  }
  get onSeeked() {
    return html$.GlobalEventHandlers.seekedEvent.forTarget(this);
  }
  get onSeeking() {
    return html$.GlobalEventHandlers.seekingEvent.forTarget(this);
  }
  get onSelect() {
    return html$.GlobalEventHandlers.selectEvent.forTarget(this);
  }
  get onStalled() {
    return html$.GlobalEventHandlers.stalledEvent.forTarget(this);
  }
  get onSubmit() {
    return html$.GlobalEventHandlers.submitEvent.forTarget(this);
  }
  get onSuspend() {
    return html$.GlobalEventHandlers.suspendEvent.forTarget(this);
  }
  get onTimeUpdate() {
    return html$.GlobalEventHandlers.timeUpdateEvent.forTarget(this);
  }
  get onTouchCancel() {
    return html$.GlobalEventHandlers.touchCancelEvent.forTarget(this);
  }
  get onTouchEnd() {
    return html$.GlobalEventHandlers.touchEndEvent.forTarget(this);
  }
  get onTouchMove() {
    return html$.GlobalEventHandlers.touchMoveEvent.forTarget(this);
  }
  get onTouchStart() {
    return html$.GlobalEventHandlers.touchStartEvent.forTarget(this);
  }
  get onVolumeChange() {
    return html$.GlobalEventHandlers.volumeChangeEvent.forTarget(this);
  }
  get onWaiting() {
    return html$.GlobalEventHandlers.waitingEvent.forTarget(this);
  }
  get onWheel() {
    return html$.GlobalEventHandlers.wheelEvent.forTarget(this);
  }
};
(html$.GlobalEventHandlers[dart.mixinNew] = function() {
}).prototype = html$.GlobalEventHandlers.prototype;
dart.addTypeTests(html$.GlobalEventHandlers);
dart.addTypeCaches(html$.GlobalEventHandlers);
html$.GlobalEventHandlers[dart.implements] = () => [html$.EventTarget];
dart.setGetterSignature(html$.GlobalEventHandlers, () => ({
  __proto__: dart.getGetters(html$.GlobalEventHandlers.__proto__),
  onAbort: async.Stream$(html$.Event),
  [$onAbort]: async.Stream$(html$.Event),
  onBlur: async.Stream$(html$.Event),
  [$onBlur]: async.Stream$(html$.Event),
  onCanPlay: async.Stream$(html$.Event),
  [$onCanPlay]: async.Stream$(html$.Event),
  onCanPlayThrough: async.Stream$(html$.Event),
  [$onCanPlayThrough]: async.Stream$(html$.Event),
  onChange: async.Stream$(html$.Event),
  [$onChange]: async.Stream$(html$.Event),
  onClick: async.Stream$(html$.MouseEvent),
  [$onClick]: async.Stream$(html$.MouseEvent),
  onContextMenu: async.Stream$(html$.MouseEvent),
  [$onContextMenu]: async.Stream$(html$.MouseEvent),
  onDoubleClick: async.Stream$(html$.Event),
  [$onDoubleClick]: async.Stream$(html$.Event),
  onDrag: async.Stream$(html$.MouseEvent),
  [$onDrag]: async.Stream$(html$.MouseEvent),
  onDragEnd: async.Stream$(html$.MouseEvent),
  [$onDragEnd]: async.Stream$(html$.MouseEvent),
  onDragEnter: async.Stream$(html$.MouseEvent),
  [$onDragEnter]: async.Stream$(html$.MouseEvent),
  onDragLeave: async.Stream$(html$.MouseEvent),
  [$onDragLeave]: async.Stream$(html$.MouseEvent),
  onDragOver: async.Stream$(html$.MouseEvent),
  [$onDragOver]: async.Stream$(html$.MouseEvent),
  onDragStart: async.Stream$(html$.MouseEvent),
  [$onDragStart]: async.Stream$(html$.MouseEvent),
  onDrop: async.Stream$(html$.MouseEvent),
  [$onDrop]: async.Stream$(html$.MouseEvent),
  onDurationChange: async.Stream$(html$.Event),
  [$onDurationChange]: async.Stream$(html$.Event),
  onEmptied: async.Stream$(html$.Event),
  [$onEmptied]: async.Stream$(html$.Event),
  onEnded: async.Stream$(html$.Event),
  [$onEnded]: async.Stream$(html$.Event),
  onError: async.Stream$(html$.Event),
  [$onError]: async.Stream$(html$.Event),
  onFocus: async.Stream$(html$.Event),
  [$onFocus]: async.Stream$(html$.Event),
  onInput: async.Stream$(html$.Event),
  [$onInput]: async.Stream$(html$.Event),
  onInvalid: async.Stream$(html$.Event),
  [$onInvalid]: async.Stream$(html$.Event),
  onKeyDown: async.Stream$(html$.KeyboardEvent),
  [$onKeyDown]: async.Stream$(html$.KeyboardEvent),
  onKeyPress: async.Stream$(html$.KeyboardEvent),
  [$onKeyPress]: async.Stream$(html$.KeyboardEvent),
  onKeyUp: async.Stream$(html$.KeyboardEvent),
  [$onKeyUp]: async.Stream$(html$.KeyboardEvent),
  onLoad: async.Stream$(html$.Event),
  [$onLoad]: async.Stream$(html$.Event),
  onLoadedData: async.Stream$(html$.Event),
  [$onLoadedData]: async.Stream$(html$.Event),
  onLoadedMetadata: async.Stream$(html$.Event),
  [$onLoadedMetadata]: async.Stream$(html$.Event),
  onMouseDown: async.Stream$(html$.MouseEvent),
  [$onMouseDown]: async.Stream$(html$.MouseEvent),
  onMouseEnter: async.Stream$(html$.MouseEvent),
  [$onMouseEnter]: async.Stream$(html$.MouseEvent),
  onMouseLeave: async.Stream$(html$.MouseEvent),
  [$onMouseLeave]: async.Stream$(html$.MouseEvent),
  onMouseMove: async.Stream$(html$.MouseEvent),
  [$onMouseMove]: async.Stream$(html$.MouseEvent),
  onMouseOut: async.Stream$(html$.MouseEvent),
  [$onMouseOut]: async.Stream$(html$.MouseEvent),
  onMouseOver: async.Stream$(html$.MouseEvent),
  [$onMouseOver]: async.Stream$(html$.MouseEvent),
  onMouseUp: async.Stream$(html$.MouseEvent),
  [$onMouseUp]: async.Stream$(html$.MouseEvent),
  onMouseWheel: async.Stream$(html$.WheelEvent),
  [$onMouseWheel]: async.Stream$(html$.WheelEvent),
  onPause: async.Stream$(html$.Event),
  [$onPause]: async.Stream$(html$.Event),
  onPlay: async.Stream$(html$.Event),
  [$onPlay]: async.Stream$(html$.Event),
  onPlaying: async.Stream$(html$.Event),
  [$onPlaying]: async.Stream$(html$.Event),
  onRateChange: async.Stream$(html$.Event),
  [$onRateChange]: async.Stream$(html$.Event),
  onReset: async.Stream$(html$.Event),
  [$onReset]: async.Stream$(html$.Event),
  onResize: async.Stream$(html$.Event),
  [$onResize]: async.Stream$(html$.Event),
  onScroll: async.Stream$(html$.Event),
  [$onScroll]: async.Stream$(html$.Event),
  onSeeked: async.Stream$(html$.Event),
  [$onSeeked]: async.Stream$(html$.Event),
  onSeeking: async.Stream$(html$.Event),
  [$onSeeking]: async.Stream$(html$.Event),
  onSelect: async.Stream$(html$.Event),
  [$onSelect]: async.Stream$(html$.Event),
  onStalled: async.Stream$(html$.Event),
  [$onStalled]: async.Stream$(html$.Event),
  onSubmit: async.Stream$(html$.Event),
  [$onSubmit]: async.Stream$(html$.Event),
  onSuspend: async.Stream$(html$.Event),
  [$onSuspend]: async.Stream$(html$.Event),
  onTimeUpdate: async.Stream$(html$.Event),
  [$onTimeUpdate]: async.Stream$(html$.Event),
  onTouchCancel: async.Stream$(html$.TouchEvent),
  [$onTouchCancel]: async.Stream$(html$.TouchEvent),
  onTouchEnd: async.Stream$(html$.TouchEvent),
  [$onTouchEnd]: async.Stream$(html$.TouchEvent),
  onTouchMove: async.Stream$(html$.TouchEvent),
  [$onTouchMove]: async.Stream$(html$.TouchEvent),
  onTouchStart: async.Stream$(html$.TouchEvent),
  [$onTouchStart]: async.Stream$(html$.TouchEvent),
  onVolumeChange: async.Stream$(html$.Event),
  [$onVolumeChange]: async.Stream$(html$.Event),
  onWaiting: async.Stream$(html$.Event),
  [$onWaiting]: async.Stream$(html$.Event),
  onWheel: async.Stream$(html$.WheelEvent),
  [$onWheel]: async.Stream$(html$.WheelEvent)
}));
dart.setLibraryUri(html$.GlobalEventHandlers, L65);
dart.defineExtensionAccessors(html$.GlobalEventHandlers, [
  'onAbort',
  'onBlur',
  'onCanPlay',
  'onCanPlayThrough',
  'onChange',
  'onClick',
  'onContextMenu',
  'onDoubleClick',
  'onDrag',
  'onDragEnd',
  'onDragEnter',
  'onDragLeave',
  'onDragOver',
  'onDragStart',
  'onDrop',
  'onDurationChange',
  'onEmptied',
  'onEnded',
  'onError',
  'onFocus',
  'onInput',
  'onInvalid',
  'onKeyDown',
  'onKeyPress',
  'onKeyUp',
  'onLoad',
  'onLoadedData',
  'onLoadedMetadata',
  'onMouseDown',
  'onMouseEnter',
  'onMouseLeave',
  'onMouseMove',
  'onMouseOut',
  'onMouseOver',
  'onMouseUp',
  'onMouseWheel',
  'onPause',
  'onPlay',
  'onPlaying',
  'onRateChange',
  'onReset',
  'onResize',
  'onScroll',
  'onSeeked',
  'onSeeking',
  'onSelect',
  'onStalled',
  'onSubmit',
  'onSuspend',
  'onTimeUpdate',
  'onTouchCancel',
  'onTouchEnd',
  'onTouchMove',
  'onTouchStart',
  'onVolumeChange',
  'onWaiting',
  'onWheel'
]);
dart.defineLazy(html$.GlobalEventHandlers, {
  /*html$.GlobalEventHandlers.abortEvent*/get abortEvent() {
    return C215 || CT.C215;
  },
  /*html$.GlobalEventHandlers.blurEvent*/get blurEvent() {
    return C234 || CT.C234;
  },
  /*html$.GlobalEventHandlers.canPlayEvent*/get canPlayEvent() {
    return C235 || CT.C235;
  },
  /*html$.GlobalEventHandlers.canPlayThroughEvent*/get canPlayThroughEvent() {
    return C236 || CT.C236;
  },
  /*html$.GlobalEventHandlers.changeEvent*/get changeEvent() {
    return C237 || CT.C237;
  },
  /*html$.GlobalEventHandlers.clickEvent*/get clickEvent() {
    return C238 || CT.C238;
  },
  /*html$.GlobalEventHandlers.contextMenuEvent*/get contextMenuEvent() {
    return C239 || CT.C239;
  },
  /*html$.GlobalEventHandlers.doubleClickEvent*/get doubleClickEvent() {
    return C242 || CT.C242;
  },
  /*html$.GlobalEventHandlers.dragEvent*/get dragEvent() {
    return C243 || CT.C243;
  },
  /*html$.GlobalEventHandlers.dragEndEvent*/get dragEndEvent() {
    return C244 || CT.C244;
  },
  /*html$.GlobalEventHandlers.dragEnterEvent*/get dragEnterEvent() {
    return C245 || CT.C245;
  },
  /*html$.GlobalEventHandlers.dragLeaveEvent*/get dragLeaveEvent() {
    return C246 || CT.C246;
  },
  /*html$.GlobalEventHandlers.dragOverEvent*/get dragOverEvent() {
    return C247 || CT.C247;
  },
  /*html$.GlobalEventHandlers.dragStartEvent*/get dragStartEvent() {
    return C248 || CT.C248;
  },
  /*html$.GlobalEventHandlers.dropEvent*/get dropEvent() {
    return C249 || CT.C249;
  },
  /*html$.GlobalEventHandlers.durationChangeEvent*/get durationChangeEvent() {
    return C250 || CT.C250;
  },
  /*html$.GlobalEventHandlers.emptiedEvent*/get emptiedEvent() {
    return C251 || CT.C251;
  },
  /*html$.GlobalEventHandlers.endedEvent*/get endedEvent() {
    return C252 || CT.C252;
  },
  /*html$.GlobalEventHandlers.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  },
  /*html$.GlobalEventHandlers.focusEvent*/get focusEvent() {
    return C253 || CT.C253;
  },
  /*html$.GlobalEventHandlers.inputEvent*/get inputEvent() {
    return C254 || CT.C254;
  },
  /*html$.GlobalEventHandlers.invalidEvent*/get invalidEvent() {
    return C255 || CT.C255;
  },
  /*html$.GlobalEventHandlers.keyDownEvent*/get keyDownEvent() {
    return C256 || CT.C256;
  },
  /*html$.GlobalEventHandlers.keyPressEvent*/get keyPressEvent() {
    return C257 || CT.C257;
  },
  /*html$.GlobalEventHandlers.keyUpEvent*/get keyUpEvent() {
    return C258 || CT.C258;
  },
  /*html$.GlobalEventHandlers.loadEvent*/get loadEvent() {
    return C259 || CT.C259;
  },
  /*html$.GlobalEventHandlers.loadedDataEvent*/get loadedDataEvent() {
    return C260 || CT.C260;
  },
  /*html$.GlobalEventHandlers.loadedMetadataEvent*/get loadedMetadataEvent() {
    return C261 || CT.C261;
  },
  /*html$.GlobalEventHandlers.mouseDownEvent*/get mouseDownEvent() {
    return C262 || CT.C262;
  },
  /*html$.GlobalEventHandlers.mouseEnterEvent*/get mouseEnterEvent() {
    return C263 || CT.C263;
  },
  /*html$.GlobalEventHandlers.mouseLeaveEvent*/get mouseLeaveEvent() {
    return C264 || CT.C264;
  },
  /*html$.GlobalEventHandlers.mouseMoveEvent*/get mouseMoveEvent() {
    return C265 || CT.C265;
  },
  /*html$.GlobalEventHandlers.mouseOutEvent*/get mouseOutEvent() {
    return C266 || CT.C266;
  },
  /*html$.GlobalEventHandlers.mouseOverEvent*/get mouseOverEvent() {
    return C267 || CT.C267;
  },
  /*html$.GlobalEventHandlers.mouseUpEvent*/get mouseUpEvent() {
    return C268 || CT.C268;
  },
  /*html$.GlobalEventHandlers.mouseWheelEvent*/get mouseWheelEvent() {
    return C343 || CT.C343;
  },
  /*html$.GlobalEventHandlers.pauseEvent*/get pauseEvent() {
    return C270 || CT.C270;
  },
  /*html$.GlobalEventHandlers.playEvent*/get playEvent() {
    return C271 || CT.C271;
  },
  /*html$.GlobalEventHandlers.playingEvent*/get playingEvent() {
    return C272 || CT.C272;
  },
  /*html$.GlobalEventHandlers.rateChangeEvent*/get rateChangeEvent() {
    return C273 || CT.C273;
  },
  /*html$.GlobalEventHandlers.resetEvent*/get resetEvent() {
    return C274 || CT.C274;
  },
  /*html$.GlobalEventHandlers.resizeEvent*/get resizeEvent() {
    return C275 || CT.C275;
  },
  /*html$.GlobalEventHandlers.scrollEvent*/get scrollEvent() {
    return C276 || CT.C276;
  },
  /*html$.GlobalEventHandlers.seekedEvent*/get seekedEvent() {
    return C278 || CT.C278;
  },
  /*html$.GlobalEventHandlers.seekingEvent*/get seekingEvent() {
    return C279 || CT.C279;
  },
  /*html$.GlobalEventHandlers.selectEvent*/get selectEvent() {
    return C280 || CT.C280;
  },
  /*html$.GlobalEventHandlers.stalledEvent*/get stalledEvent() {
    return C282 || CT.C282;
  },
  /*html$.GlobalEventHandlers.submitEvent*/get submitEvent() {
    return C283 || CT.C283;
  },
  /*html$.GlobalEventHandlers.suspendEvent*/get suspendEvent() {
    return C284 || CT.C284;
  },
  /*html$.GlobalEventHandlers.timeUpdateEvent*/get timeUpdateEvent() {
    return C285 || CT.C285;
  },
  /*html$.GlobalEventHandlers.touchCancelEvent*/get touchCancelEvent() {
    return C286 || CT.C286;
  },
  /*html$.GlobalEventHandlers.touchEndEvent*/get touchEndEvent() {
    return C287 || CT.C287;
  },
  /*html$.GlobalEventHandlers.touchMoveEvent*/get touchMoveEvent() {
    return C290 || CT.C290;
  },
  /*html$.GlobalEventHandlers.touchStartEvent*/get touchStartEvent() {
    return C291 || CT.C291;
  },
  /*html$.GlobalEventHandlers.volumeChangeEvent*/get volumeChangeEvent() {
    return C292 || CT.C292;
  },
  /*html$.GlobalEventHandlers.waitingEvent*/get waitingEvent() {
    return C293 || CT.C293;
  },
  /*html$.GlobalEventHandlers.wheelEvent*/get wheelEvent() {
    return C296 || CT.C296;
  }
}, true);
html$.Gyroscope = class Gyroscope$ extends html$.Sensor {
  static new(sensorOptions = null) {
    if (sensorOptions != null) {
      let sensorOptions_1 = html_common.convertDartToNative_Dictionary(sensorOptions);
      return html$.Gyroscope._create_1(sensorOptions_1);
    }
    return html$.Gyroscope._create_2();
  }
  static _create_1(sensorOptions) {
    return new Gyroscope(sensorOptions);
  }
  static _create_2() {
    return new Gyroscope();
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
  get [$z]() {
    return this.z;
  }
};
dart.addTypeTests(html$.Gyroscope);
dart.addTypeCaches(html$.Gyroscope);
dart.setGetterSignature(html$.Gyroscope, () => ({
  __proto__: dart.getGetters(html$.Gyroscope.__proto__),
  [$x]: core.num,
  [$y]: core.num,
  [$z]: core.num
}));
dart.setLibraryUri(html$.Gyroscope, L65);
dart.registerExtension("Gyroscope", html$.Gyroscope);
html$.HRElement = class HRElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("hr");
  }
  get [$color]() {
    return this.color;
  }
  set [$color](value) {
    this.color = value;
  }
};
(html$.HRElement.created = function() {
  html$.HRElement.__proto__.created.call(this);
  ;
}).prototype = html$.HRElement.prototype;
dart.addTypeTests(html$.HRElement);
dart.addTypeCaches(html$.HRElement);
dart.setGetterSignature(html$.HRElement, () => ({
  __proto__: dart.getGetters(html$.HRElement.__proto__),
  [$color]: core.String
}));
dart.setSetterSignature(html$.HRElement, () => ({
  __proto__: dart.getSetters(html$.HRElement.__proto__),
  [$color]: core.String
}));
dart.setLibraryUri(html$.HRElement, L65);
dart.registerExtension("HTMLHRElement", html$.HRElement);
html$.HashChangeEvent = class HashChangeEvent$ extends html$.Event {
  static new(type, opts) {
    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
    let oldUrl = opts && 'oldUrl' in opts ? opts.oldUrl : null;
    let newUrl = opts && 'newUrl' in opts ? opts.newUrl : null;
    let options = new (IdentityMapOfStringL$ObjectL()).from(["canBubble", canBubble, "cancelable", cancelable, "oldURL", oldUrl, "newURL", newUrl]);
    return new HashChangeEvent(type, html_common.convertDartToNative_Dictionary(options));
  }
  static __(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.HashChangeEvent._create_1(type, eventInitDict_1);
    }
    return html$.HashChangeEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new HashChangeEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new HashChangeEvent(type);
  }
  static get supported() {
    return html_common.Device.isEventTypeSupported("HashChangeEvent");
  }
  get [$newUrl]() {
    return this.newURL;
  }
  get [$oldUrl]() {
    return this.oldURL;
  }
};
dart.addTypeTests(html$.HashChangeEvent);
dart.addTypeCaches(html$.HashChangeEvent);
dart.setGetterSignature(html$.HashChangeEvent, () => ({
  __proto__: dart.getGetters(html$.HashChangeEvent.__proto__),
  [$newUrl]: core.String,
  [$oldUrl]: core.String
}));
dart.setLibraryUri(html$.HashChangeEvent, L65);
dart.registerExtension("HashChangeEvent", html$.HashChangeEvent);
html$.HeadElement = class HeadElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("head");
  }
};
(html$.HeadElement.created = function() {
  html$.HeadElement.__proto__.created.call(this);
  ;
}).prototype = html$.HeadElement.prototype;
dart.addTypeTests(html$.HeadElement);
dart.addTypeCaches(html$.HeadElement);
dart.setLibraryUri(html$.HeadElement, L65);
dart.registerExtension("HTMLHeadElement", html$.HeadElement);
html$.Headers = class Headers$ extends _interceptors.Interceptor {
  static new(init = null) {
    if (init != null) {
      return html$.Headers._create_1(init);
    }
    return html$.Headers._create_2();
  }
  static _create_1(init) {
    return new Headers(init);
  }
  static _create_2() {
    return new Headers();
  }
};
dart.addTypeTests(html$.Headers);
dart.addTypeCaches(html$.Headers);
dart.setLibraryUri(html$.Headers, L65);
dart.registerExtension("Headers", html$.Headers);
html$.HeadingElement = class HeadingElement extends html$.HtmlElement {
  static h1() {
    return html$.document.createElement("h1");
  }
  static h2() {
    return html$.document.createElement("h2");
  }
  static h3() {
    return html$.document.createElement("h3");
  }
  static h4() {
    return html$.document.createElement("h4");
  }
  static h5() {
    return html$.document.createElement("h5");
  }
  static h6() {
    return html$.document.createElement("h6");
  }
};
(html$.HeadingElement.created = function() {
  html$.HeadingElement.__proto__.created.call(this);
  ;
}).prototype = html$.HeadingElement.prototype;
dart.addTypeTests(html$.HeadingElement);
dart.addTypeCaches(html$.HeadingElement);
dart.setLibraryUri(html$.HeadingElement, L65);
dart.registerExtension("HTMLHeadingElement", html$.HeadingElement);
var _get_state = dart.privateName(html$, "_get_state");
var _pushState_1 = dart.privateName(html$, "_pushState_1");
var _replaceState_1 = dart.privateName(html$, "_replaceState_1");
html$.History = class History extends _interceptors.Interceptor {
  static get supportsState() {
    return !!window.history.pushState;
  }
  get [$length]() {
    return this.length;
  }
  get [$scrollRestoration]() {
    return this.scrollRestoration;
  }
  set [$scrollRestoration](value) {
    this.scrollRestoration = value;
  }
  get [$state]() {
    return html_common.convertNativeToDart_SerializedScriptValue(this[_get_state]);
  }
  get [_get_state]() {
    return this.state;
  }
  [$back](...args) {
    return this.back.apply(this, args);
  }
  [$forward](...args) {
    return this.forward.apply(this, args);
  }
  [$go](...args) {
    return this.go.apply(this, args);
  }
  [$pushState](data, title, url) {
    let data_1 = html_common.convertDartToNative_SerializedScriptValue(data);
    this[_pushState_1](data_1, title, url);
    return;
  }
  [_pushState_1](...args) {
    return this.pushState.apply(this, args);
  }
  [$replaceState](data, title, url) {
    let data_1 = html_common.convertDartToNative_SerializedScriptValue(data);
    this[_replaceState_1](data_1, title, url);
    return;
  }
  [_replaceState_1](...args) {
    return this.replaceState.apply(this, args);
  }
};
dart.addTypeTests(html$.History);
dart.addTypeCaches(html$.History);
html$.History[dart.implements] = () => [html$.HistoryBase];
dart.setMethodSignature(html$.History, () => ({
  __proto__: dart.getMethods(html$.History.__proto__),
  [$back]: dart.fnType(dart.void, []),
  [$forward]: dart.fnType(dart.void, []),
  [$go]: dart.fnType(dart.void, [], [core.int]),
  [$pushState]: dart.fnType(dart.void, [dart.dynamic, core.String, core.String]),
  [_pushState_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
  [$replaceState]: dart.fnType(dart.void, [dart.dynamic, core.String, core.String]),
  [_replaceState_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic])
}));
dart.setGetterSignature(html$.History, () => ({
  __proto__: dart.getGetters(html$.History.__proto__),
  [$length]: core.int,
  [$scrollRestoration]: core.String,
  [$state]: dart.dynamic,
  [_get_state]: dart.dynamic
}));
dart.setSetterSignature(html$.History, () => ({
  __proto__: dart.getSetters(html$.History.__proto__),
  [$scrollRestoration]: core.String
}));
dart.setLibraryUri(html$.History, L65);
dart.registerExtension("History", html$.History);
const Interceptor_ListMixin$36$1 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$1.new = function() {
  Interceptor_ListMixin$36$1.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$1.prototype;
dart.applyMixin(Interceptor_ListMixin$36$1, collection.ListMixin$(html$.Node));
const Interceptor_ImmutableListMixin$36$1 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$1 {};
(Interceptor_ImmutableListMixin$36$1.new = function() {
  Interceptor_ImmutableListMixin$36$1.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$1.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$1, html$.ImmutableListMixin$(html$.Node));
html$.HtmlCollection = class HtmlCollection extends Interceptor_ImmutableListMixin$36$1 {
  get [$length]() {
    return this.length;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this[index];
  }
  [$_set](index, value$) {
    let value = value$;
    html$.Node.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
  [$namedItem](...args) {
    return this.namedItem.apply(this, args);
  }
};
html$.HtmlCollection.prototype[dart.isList] = true;
dart.addTypeTests(html$.HtmlCollection);
dart.addTypeCaches(html$.HtmlCollection);
html$.HtmlCollection[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(html$.Node), core.List$(html$.Node)];
dart.setMethodSignature(html$.HtmlCollection, () => ({
  __proto__: dart.getMethods(html$.HtmlCollection.__proto__),
  [$_get]: dart.fnType(html$.Node, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [$item]: dart.fnType(html$.Node, [core.int]),
  [$namedItem]: dart.fnType(core.Object, [core.String])
}));
dart.setGetterSignature(html$.HtmlCollection, () => ({
  __proto__: dart.getGetters(html$.HtmlCollection.__proto__),
  [$length]: core.int
}));
dart.setSetterSignature(html$.HtmlCollection, () => ({
  __proto__: dart.getSetters(html$.HtmlCollection.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$.HtmlCollection, L65);
dart.registerExtension("HTMLCollection", html$.HtmlCollection);
var C345;
var C344;
html$.HtmlDocument = class HtmlDocument extends html$.Document {
  get [$body]() {
    return this.body;
  }
  set [$body](value) {
    this.body = value;
  }
  [$caretRangeFromPoint](x, y) {
    return this[_caretRangeFromPoint](x, y);
  }
  [$elementFromPoint](x, y) {
    return this[_elementFromPoint](x, y);
  }
  get [$head]() {
    return this[_head$];
  }
  get [$lastModified]() {
    return this[_lastModified];
  }
  get [$preferredStylesheetSet]() {
    return this[_preferredStylesheetSet];
  }
  get [$referrer]() {
    return this[_referrer];
  }
  get [$selectedStylesheetSet]() {
    return this[_selectedStylesheetSet];
  }
  set [$selectedStylesheetSet](value) {
    this[_selectedStylesheetSet] = value;
  }
  get [$styleSheets]() {
    return this[_styleSheets];
  }
  get [$title]() {
    return this[_title];
  }
  set [$title](value) {
    this[_title] = value;
  }
  [$exitFullscreen]() {
    this[_webkitExitFullscreen]();
  }
  [$registerElement2](tag, options = null) {
    return html$._registerCustomElement(window, this, tag, options);
  }
  [$register](tag, customElementClass, opts) {
    let extendsTag = opts && 'extendsTag' in opts ? opts.extendsTag : null;
    return this[$registerElement](tag, customElementClass, {extendsTag: extendsTag});
  }
  static _determineVisibilityChangeEventType(e) {
    if (typeof e.hidden !== "undefined") {
      return "visibilitychange";
    } else if (typeof e.mozHidden !== "undefined") {
      return "mozvisibilitychange";
    } else if (typeof e.msHidden !== "undefined") {
      return "msvisibilitychange";
    } else if (typeof e.webkitHidden !== "undefined") {
      return "webkitvisibilitychange";
    }
    return "visibilitychange";
  }
  get [$onVisibilityChange]() {
    return html$.HtmlDocument.visibilityChangeEvent.forTarget(this);
  }
  [$createElementUpgrader](type, opts) {
    let extendsTag = opts && 'extendsTag' in opts ? opts.extendsTag : null;
    return new html$._JSElementUpgrader.new(this, type, extendsTag);
  }
};
dart.addTypeTests(html$.HtmlDocument);
dart.addTypeCaches(html$.HtmlDocument);
dart.setMethodSignature(html$.HtmlDocument, () => ({
  __proto__: dart.getMethods(html$.HtmlDocument.__proto__),
  [$caretRangeFromPoint]: dart.fnType(html$.Range, [core.int, core.int]),
  [$elementFromPoint]: dart.fnType(html$.Element, [core.int, core.int]),
  [$register]: dart.fnType(dart.void, [core.String, core.Type], {extendsTag: core.String}, {}),
  [$createElementUpgrader]: dart.fnType(html$.ElementUpgrader, [core.Type], {extendsTag: core.String}, {})
}));
dart.setGetterSignature(html$.HtmlDocument, () => ({
  __proto__: dart.getGetters(html$.HtmlDocument.__proto__),
  [$body]: html$.BodyElement,
  [$head]: html$.HeadElement,
  [$lastModified]: core.String,
  [$preferredStylesheetSet]: core.String,
  [$referrer]: core.String,
  [$selectedStylesheetSet]: core.String,
  [$styleSheets]: core.List$(html$.StyleSheet),
  [$title]: core.String,
  [$onVisibilityChange]: async.Stream$(html$.Event)
}));
dart.setSetterSignature(html$.HtmlDocument, () => ({
  __proto__: dart.getSetters(html$.HtmlDocument.__proto__),
  [$body]: html$.BodyElement,
  [$selectedStylesheetSet]: core.String,
  [$title]: core.String
}));
dart.setLibraryUri(html$.HtmlDocument, L65);
dart.defineLazy(html$.HtmlDocument, {
  /*html$.HtmlDocument.visibilityChangeEvent*/get visibilityChangeEvent() {
    return C344 || CT.C344;
  }
}, true);
dart.registerExtension("HTMLDocument", html$.HtmlDocument);
html$.HtmlFormControlsCollection = class HtmlFormControlsCollection extends html$.HtmlCollection {
  [$namedItem](...args) {
    return this.namedItem.apply(this, args);
  }
};
dart.addTypeTests(html$.HtmlFormControlsCollection);
dart.addTypeCaches(html$.HtmlFormControlsCollection);
dart.setLibraryUri(html$.HtmlFormControlsCollection, L65);
dart.registerExtension("HTMLFormControlsCollection", html$.HtmlFormControlsCollection);
html$.HtmlHtmlElement = class HtmlHtmlElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("html");
  }
};
(html$.HtmlHtmlElement.created = function() {
  html$.HtmlHtmlElement.__proto__.created.call(this);
  ;
}).prototype = html$.HtmlHtmlElement.prototype;
dart.addTypeTests(html$.HtmlHtmlElement);
dart.addTypeCaches(html$.HtmlHtmlElement);
dart.setLibraryUri(html$.HtmlHtmlElement, L65);
dart.registerExtension("HTMLHtmlElement", html$.HtmlHtmlElement);
html$.HtmlHyperlinkElementUtils = class HtmlHyperlinkElementUtils extends _interceptors.Interceptor {
  get [$hash]() {
    return this.hash;
  }
  set [$hash](value) {
    this.hash = value;
  }
  get [$host]() {
    return this.host;
  }
  set [$host](value) {
    this.host = value;
  }
  get [$hostname]() {
    return this.hostname;
  }
  set [$hostname](value) {
    this.hostname = value;
  }
  get [$href]() {
    return this.href;
  }
  set [$href](value) {
    this.href = value;
  }
  get [$origin]() {
    return this.origin;
  }
  get [$password]() {
    return this.password;
  }
  set [$password](value) {
    this.password = value;
  }
  get [$pathname]() {
    return this.pathname;
  }
  set [$pathname](value) {
    this.pathname = value;
  }
  get [$port]() {
    return this.port;
  }
  set [$port](value) {
    this.port = value;
  }
  get [$protocol]() {
    return this.protocol;
  }
  set [$protocol](value) {
    this.protocol = value;
  }
  get [$search]() {
    return this.search;
  }
  set [$search](value) {
    this.search = value;
  }
  get [$username]() {
    return this.username;
  }
  set [$username](value) {
    this.username = value;
  }
};
dart.addTypeTests(html$.HtmlHyperlinkElementUtils);
dart.addTypeCaches(html$.HtmlHyperlinkElementUtils);
dart.setGetterSignature(html$.HtmlHyperlinkElementUtils, () => ({
  __proto__: dart.getGetters(html$.HtmlHyperlinkElementUtils.__proto__),
  [$hash]: core.String,
  [$host]: core.String,
  [$hostname]: core.String,
  [$href]: core.String,
  [$origin]: core.String,
  [$password]: core.String,
  [$pathname]: core.String,
  [$port]: core.String,
  [$protocol]: core.String,
  [$search]: core.String,
  [$username]: core.String
}));
dart.setSetterSignature(html$.HtmlHyperlinkElementUtils, () => ({
  __proto__: dart.getSetters(html$.HtmlHyperlinkElementUtils.__proto__),
  [$hash]: core.String,
  [$host]: core.String,
  [$hostname]: core.String,
  [$href]: core.String,
  [$password]: core.String,
  [$pathname]: core.String,
  [$port]: core.String,
  [$protocol]: core.String,
  [$search]: core.String,
  [$username]: core.String
}));
dart.setLibraryUri(html$.HtmlHyperlinkElementUtils, L65);
dart.registerExtension("HTMLHyperlinkElementUtils", html$.HtmlHyperlinkElementUtils);
var _item = dart.privateName(html$, "_item");
html$.HtmlOptionsCollection = class HtmlOptionsCollection extends html$.HtmlCollection {
  [_item](...args) {
    return this.item.apply(this, args);
  }
};
dart.addTypeTests(html$.HtmlOptionsCollection);
dart.addTypeCaches(html$.HtmlOptionsCollection);
dart.setMethodSignature(html$.HtmlOptionsCollection, () => ({
  __proto__: dart.getMethods(html$.HtmlOptionsCollection.__proto__),
  [_item]: dart.fnType(html$.Element, [core.int])
}));
dart.setLibraryUri(html$.HtmlOptionsCollection, L65);
dart.registerExtension("HTMLOptionsCollection", html$.HtmlOptionsCollection);
var _get_response = dart.privateName(html$, "_get_response");
var C346;
html$.HttpRequestEventTarget = class HttpRequestEventTarget extends html$.EventTarget {
  get [$onAbort]() {
    return html$.HttpRequestEventTarget.abortEvent.forTarget(this);
  }
  get [$onError]() {
    return html$.HttpRequestEventTarget.errorEvent.forTarget(this);
  }
  get [$onLoad]() {
    return html$.HttpRequestEventTarget.loadEvent.forTarget(this);
  }
  get [$onLoadEnd]() {
    return html$.HttpRequestEventTarget.loadEndEvent.forTarget(this);
  }
  get [$onLoadStart]() {
    return html$.HttpRequestEventTarget.loadStartEvent.forTarget(this);
  }
  get [$onProgress]() {
    return html$.HttpRequestEventTarget.progressEvent.forTarget(this);
  }
  get [$onTimeout]() {
    return html$.HttpRequestEventTarget.timeoutEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.HttpRequestEventTarget);
dart.addTypeCaches(html$.HttpRequestEventTarget);
dart.setGetterSignature(html$.HttpRequestEventTarget, () => ({
  __proto__: dart.getGetters(html$.HttpRequestEventTarget.__proto__),
  [$onAbort]: async.Stream$(html$.ProgressEvent),
  [$onError]: async.Stream$(html$.ProgressEvent),
  [$onLoad]: async.Stream$(html$.ProgressEvent),
  [$onLoadEnd]: async.Stream$(html$.ProgressEvent),
  [$onLoadStart]: async.Stream$(html$.ProgressEvent),
  [$onProgress]: async.Stream$(html$.ProgressEvent),
  [$onTimeout]: async.Stream$(html$.ProgressEvent)
}));
dart.setLibraryUri(html$.HttpRequestEventTarget, L65);
dart.defineLazy(html$.HttpRequestEventTarget, {
  /*html$.HttpRequestEventTarget.abortEvent*/get abortEvent() {
    return C332 || CT.C332;
  },
  /*html$.HttpRequestEventTarget.errorEvent*/get errorEvent() {
    return C333 || CT.C333;
  },
  /*html$.HttpRequestEventTarget.loadEvent*/get loadEvent() {
    return C334 || CT.C334;
  },
  /*html$.HttpRequestEventTarget.loadEndEvent*/get loadEndEvent() {
    return C335 || CT.C335;
  },
  /*html$.HttpRequestEventTarget.loadStartEvent*/get loadStartEvent() {
    return C336 || CT.C336;
  },
  /*html$.HttpRequestEventTarget.progressEvent*/get progressEvent() {
    return C310 || CT.C310;
  },
  /*html$.HttpRequestEventTarget.timeoutEvent*/get timeoutEvent() {
    return C346 || CT.C346;
  }
}, true);
dart.registerExtension("XMLHttpRequestEventTarget", html$.HttpRequestEventTarget);
html$.HttpRequest = class HttpRequest extends html$.HttpRequestEventTarget {
  static getString(url, opts) {
    let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : null;
    let onProgress = opts && 'onProgress' in opts ? opts.onProgress : null;
    return html$.HttpRequest.request(url, {withCredentials: withCredentials, onProgress: onProgress}).then(core.String, dart.fn(xhr => xhr.responseText, HttpRequestLToStringL()));
  }
  static postFormData(url, data, opts) {
    let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : null;
    let responseType = opts && 'responseType' in opts ? opts.responseType : null;
    let requestHeaders = opts && 'requestHeaders' in opts ? opts.requestHeaders : null;
    let onProgress = opts && 'onProgress' in opts ? opts.onProgress : null;
    let parts = [];
    data[$forEach](dart.fn((key, value) => {
      parts[$add](dart.str(core.Uri.encodeQueryComponent(key)) + "=" + dart.str(core.Uri.encodeQueryComponent(value)));
    }, StringLAndStringLToNullN()));
    let formData = parts[$join]("&");
    if (requestHeaders == null) {
      requestHeaders = new (IdentityMapOfStringL$StringL()).new();
    }
    requestHeaders[$putIfAbsent]("Content-Type", dart.fn(() => "application/x-www-form-urlencoded; charset=UTF-8", VoidToStringL()));
    return html$.HttpRequest.request(url, {method: "POST", withCredentials: withCredentials, responseType: responseType, requestHeaders: requestHeaders, sendData: formData, onProgress: onProgress});
  }
  static request(url, opts) {
    let method = opts && 'method' in opts ? opts.method : null;
    let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : null;
    let responseType = opts && 'responseType' in opts ? opts.responseType : null;
    let mimeType = opts && 'mimeType' in opts ? opts.mimeType : null;
    let requestHeaders = opts && 'requestHeaders' in opts ? opts.requestHeaders : null;
    let sendData = opts && 'sendData' in opts ? opts.sendData : null;
    let onProgress = opts && 'onProgress' in opts ? opts.onProgress : null;
    let completer = CompleterOfHttpRequestL().new();
    let xhr = html$.HttpRequest.new();
    if (method == null) {
      method = "GET";
    }
    xhr.open(method, url, {async: true});
    if (withCredentials != null) {
      xhr.withCredentials = withCredentials;
    }
    if (responseType != null) {
      xhr.responseType = responseType;
    }
    if (mimeType != null) {
      xhr.overrideMimeType(mimeType);
    }
    if (requestHeaders != null) {
      requestHeaders[$forEach](dart.fn((header, value) => {
        xhr.setRequestHeader(header, value);
      }, StringLAndStringLToNullN()));
    }
    if (onProgress != null) {
      xhr[$onProgress].listen(onProgress);
    }
    xhr[$onLoad].listen(dart.fn(e => {
      let accepted = dart.notNull(xhr.status) >= 200 && dart.notNull(xhr.status) < 300;
      let fileUri = xhr.status === 0;
      let notModified = xhr.status === 304;
      let unknownRedirect = dart.notNull(xhr.status) > 307 && dart.notNull(xhr.status) < 400;
      if (accepted || fileUri || notModified || unknownRedirect) {
        completer.complete(xhr);
      } else {
        completer.completeError(e);
      }
    }, ProgressEventLToNullN()));
    xhr[$onError].listen(dart.bind(completer, 'completeError'));
    if (sendData != null) {
      xhr.send(sendData);
    } else {
      xhr.send();
    }
    return completer.future;
  }
  static get supportsProgressEvent() {
    let xhr = html$.HttpRequest.new();
    return "onprogress" in xhr;
  }
  static get supportsCrossOrigin() {
    let xhr = html$.HttpRequest.new();
    return "withCredentials" in xhr;
  }
  static get supportsLoadEndEvent() {
    let xhr = html$.HttpRequest.new();
    return "onloadend" in xhr;
  }
  static get supportsOverrideMimeType() {
    let xhr = html$.HttpRequest.new();
    return "overrideMimeType" in xhr;
  }
  static requestCrossOrigin(url, opts) {
    let method = opts && 'method' in opts ? opts.method : null;
    let sendData = opts && 'sendData' in opts ? opts.sendData : null;
    if (dart.test(html$.HttpRequest.supportsCrossOrigin)) {
      return html$.HttpRequest.request(url, {method: method, sendData: sendData}).then(core.String, dart.fn(xhr => xhr.responseText, HttpRequestLToStringL()));
    }
    let completer = CompleterOfStringL().new();
    if (method == null) {
      method = "GET";
    }
    let xhr = new XDomainRequest();
    xhr.open(method, url);
    xhr.onload = _js_helper.convertDartClosureToJS(dynamicToLNullN(), dart.fn(e => {
      let response = xhr.responseText;
      completer.complete(FutureOrOfStringL().as(response));
    }, dynamicToNullN()), 1);
    xhr.onerror = _js_helper.convertDartClosureToJS(dynamicToLNullN(), dart.fn(e => {
      completer.completeError(e);
    }, dynamicToNullN()), 1);
    xhr.onprogress = {};
    xhr.ontimeout = {};
    xhr.timeout = Number.MAX_VALUE;
    if (sendData != null) {
      xhr.send(sendData);
    } else {
      xhr.send();
    }
    return completer.future;
  }
  get [$responseHeaders]() {
    let headers = new (IdentityMapOfStringL$StringL()).new();
    let headersString = this.getAllResponseHeaders();
    if (headersString == null) {
      return headers;
    }
    let headersList = headersString[$split]("\r\n");
    for (let header of headersList) {
      if (header[$isEmpty]) {
        continue;
      }
      let splitIdx = header[$indexOf](": ");
      if (splitIdx === -1) {
        continue;
      }
      let key = header[$substring](0, splitIdx)[$toLowerCase]();
      let value = header[$substring](splitIdx + 2);
      if (dart.test(headers[$containsKey](key))) {
        headers[$_set](key, dart.str(headers[$_get](key)) + ", " + value);
      } else {
        headers[$_set](key, value);
      }
    }
    return headers;
  }
  [$open](...args) {
    return this.open.apply(this, args);
  }
  static new() {
    return html$.HttpRequest._create_1();
  }
  static _create_1() {
    return new XMLHttpRequest();
  }
  get [$readyState]() {
    return this.readyState;
  }
  get [$response]() {
    return html$._convertNativeToDart_XHR_Response(this[_get_response]);
  }
  get [_get_response]() {
    return this.response;
  }
  get [$responseText]() {
    return this.responseText;
  }
  get [$responseType]() {
    return this.responseType;
  }
  set [$responseType](value) {
    this.responseType = value;
  }
  get [$responseUrl]() {
    return this.responseURL;
  }
  get [$responseXml]() {
    return this.responseXML;
  }
  get [$status]() {
    return this.status;
  }
  get [$statusText]() {
    return this.statusText;
  }
  get [$timeout]() {
    return this.timeout;
  }
  set [$timeout](value) {
    this.timeout = value;
  }
  get [$upload]() {
    return this.upload;
  }
  get [$withCredentials]() {
    return this.withCredentials;
  }
  set [$withCredentials](value) {
    this.withCredentials = value;
  }
  [$abort](...args) {
    return this.abort.apply(this, args);
  }
  [$getAllResponseHeaders](...args) {
    return this.getAllResponseHeaders.apply(this, args);
  }
  [$getResponseHeader](...args) {
    return this.getResponseHeader.apply(this, args);
  }
  [$overrideMimeType](...args) {
    return this.overrideMimeType.apply(this, args);
  }
  [$send](...args) {
    return this.send.apply(this, args);
  }
  [$setRequestHeader](...args) {
    return this.setRequestHeader.apply(this, args);
  }
  get [$onReadyStateChange]() {
    return html$.HttpRequest.readyStateChangeEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.HttpRequest);
dart.addTypeCaches(html$.HttpRequest);
dart.setMethodSignature(html$.HttpRequest, () => ({
  __proto__: dart.getMethods(html$.HttpRequest.__proto__),
  [$open]: dart.fnType(dart.void, [core.String, core.String], {async: core.bool, password: core.String, user: core.String}, {}),
  [$abort]: dart.fnType(dart.void, []),
  [$getAllResponseHeaders]: dart.fnType(core.String, []),
  [$getResponseHeader]: dart.fnType(core.String, [core.String]),
  [$overrideMimeType]: dart.fnType(dart.void, [core.String]),
  [$send]: dart.fnType(dart.void, [], [dart.dynamic]),
  [$setRequestHeader]: dart.fnType(dart.void, [core.String, core.String])
}));
dart.setGetterSignature(html$.HttpRequest, () => ({
  __proto__: dart.getGetters(html$.HttpRequest.__proto__),
  [$responseHeaders]: core.Map$(core.String, core.String),
  [$readyState]: core.int,
  [$response]: dart.dynamic,
  [_get_response]: dart.dynamic,
  [$responseText]: core.String,
  [$responseType]: core.String,
  [$responseUrl]: core.String,
  [$responseXml]: html$.Document,
  [$status]: core.int,
  [$statusText]: core.String,
  [$timeout]: core.int,
  [$upload]: html$.HttpRequestUpload,
  [$withCredentials]: core.bool,
  [$onReadyStateChange]: async.Stream$(html$.Event)
}));
dart.setSetterSignature(html$.HttpRequest, () => ({
  __proto__: dart.getSetters(html$.HttpRequest.__proto__),
  [$responseType]: core.String,
  [$timeout]: core.int,
  [$withCredentials]: core.bool
}));
dart.setLibraryUri(html$.HttpRequest, L65);
dart.defineLazy(html$.HttpRequest, {
  /*html$.HttpRequest.readyStateChangeEvent*/get readyStateChangeEvent() {
    return C325 || CT.C325;
  },
  /*html$.HttpRequest.DONE*/get DONE() {
    return 4;
  },
  /*html$.HttpRequest.HEADERS_RECEIVED*/get HEADERS_RECEIVED() {
    return 2;
  },
  /*html$.HttpRequest.LOADING*/get LOADING() {
    return 3;
  },
  /*html$.HttpRequest.OPENED*/get OPENED() {
    return 1;
  },
  /*html$.HttpRequest.UNSENT*/get UNSENT() {
    return 0;
  }
}, true);
dart.registerExtension("XMLHttpRequest", html$.HttpRequest);
html$.HttpRequestUpload = class HttpRequestUpload extends html$.HttpRequestEventTarget {};
dart.addTypeTests(html$.HttpRequestUpload);
dart.addTypeCaches(html$.HttpRequestUpload);
dart.setLibraryUri(html$.HttpRequestUpload, L65);
dart.registerExtension("XMLHttpRequestUpload", html$.HttpRequestUpload);
var _get_contentWindow = dart.privateName(html$, "_get_contentWindow");
html$.IFrameElement = class IFrameElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("iframe");
  }
  get [$allow]() {
    return this.allow;
  }
  set [$allow](value) {
    this.allow = value;
  }
  get [$allowFullscreen]() {
    return this.allowFullscreen;
  }
  set [$allowFullscreen](value) {
    this.allowFullscreen = value;
  }
  get [$allowPaymentRequest]() {
    return this.allowPaymentRequest;
  }
  set [$allowPaymentRequest](value) {
    this.allowPaymentRequest = value;
  }
  get [$contentWindow]() {
    return html$._convertNativeToDart_Window(this[_get_contentWindow]);
  }
  get [_get_contentWindow]() {
    return this.contentWindow;
  }
  get [$csp]() {
    return this.csp;
  }
  set [$csp](value) {
    this.csp = value;
  }
  get [$height]() {
    return this.height;
  }
  set [$height](value) {
    this.height = value;
  }
  get [$name]() {
    return this.name;
  }
  set [$name](value) {
    this.name = value;
  }
  get [$referrerPolicy]() {
    return this.referrerPolicy;
  }
  set [$referrerPolicy](value) {
    this.referrerPolicy = value;
  }
  get [$sandbox]() {
    return this.sandbox;
  }
  get [$src]() {
    return this.src;
  }
  set [$src](value) {
    this.src = value;
  }
  get [$srcdoc]() {
    return this.srcdoc;
  }
  set [$srcdoc](value) {
    this.srcdoc = value;
  }
  get [$width]() {
    return this.width;
  }
  set [$width](value) {
    this.width = value;
  }
};
(html$.IFrameElement.created = function() {
  html$.IFrameElement.__proto__.created.call(this);
  ;
}).prototype = html$.IFrameElement.prototype;
dart.addTypeTests(html$.IFrameElement);
dart.addTypeCaches(html$.IFrameElement);
dart.setGetterSignature(html$.IFrameElement, () => ({
  __proto__: dart.getGetters(html$.IFrameElement.__proto__),
  [$allow]: core.String,
  [$allowFullscreen]: core.bool,
  [$allowPaymentRequest]: core.bool,
  [$contentWindow]: html$.WindowBase,
  [_get_contentWindow]: dart.dynamic,
  [$csp]: core.String,
  [$height]: core.String,
  [$name]: core.String,
  [$referrerPolicy]: core.String,
  [$sandbox]: html$.DomTokenList,
  [$src]: core.String,
  [$srcdoc]: core.String,
  [$width]: core.String
}));
dart.setSetterSignature(html$.IFrameElement, () => ({
  __proto__: dart.getSetters(html$.IFrameElement.__proto__),
  [$allow]: core.String,
  [$allowFullscreen]: core.bool,
  [$allowPaymentRequest]: core.bool,
  [$csp]: core.String,
  [$height]: core.String,
  [$name]: core.String,
  [$referrerPolicy]: core.String,
  [$src]: core.String,
  [$srcdoc]: core.String,
  [$width]: core.String
}));
dart.setLibraryUri(html$.IFrameElement, L65);
dart.registerExtension("HTMLIFrameElement", html$.IFrameElement);
html$.IdleDeadline = class IdleDeadline extends _interceptors.Interceptor {
  get [$didTimeout]() {
    return this.didTimeout;
  }
  [$timeRemaining](...args) {
    return this.timeRemaining.apply(this, args);
  }
};
dart.addTypeTests(html$.IdleDeadline);
dart.addTypeCaches(html$.IdleDeadline);
dart.setMethodSignature(html$.IdleDeadline, () => ({
  __proto__: dart.getMethods(html$.IdleDeadline.__proto__),
  [$timeRemaining]: dart.fnType(core.double, [])
}));
dart.setGetterSignature(html$.IdleDeadline, () => ({
  __proto__: dart.getGetters(html$.IdleDeadline.__proto__),
  [$didTimeout]: core.bool
}));
dart.setLibraryUri(html$.IdleDeadline, L65);
dart.registerExtension("IdleDeadline", html$.IdleDeadline);
html$.ImageBitmap = class ImageBitmap extends _interceptors.Interceptor {
  get [$height]() {
    return this.height;
  }
  get [$width]() {
    return this.width;
  }
  [$close](...args) {
    return this.close.apply(this, args);
  }
};
dart.addTypeTests(html$.ImageBitmap);
dart.addTypeCaches(html$.ImageBitmap);
dart.setMethodSignature(html$.ImageBitmap, () => ({
  __proto__: dart.getMethods(html$.ImageBitmap.__proto__),
  [$close]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.ImageBitmap, () => ({
  __proto__: dart.getGetters(html$.ImageBitmap.__proto__),
  [$height]: core.int,
  [$width]: core.int
}));
dart.setLibraryUri(html$.ImageBitmap, L65);
dart.registerExtension("ImageBitmap", html$.ImageBitmap);
html$.ImageBitmapRenderingContext = class ImageBitmapRenderingContext extends _interceptors.Interceptor {
  get [$canvas]() {
    return this.canvas;
  }
  [$transferFromImageBitmap](...args) {
    return this.transferFromImageBitmap.apply(this, args);
  }
};
dart.addTypeTests(html$.ImageBitmapRenderingContext);
dart.addTypeCaches(html$.ImageBitmapRenderingContext);
dart.setMethodSignature(html$.ImageBitmapRenderingContext, () => ({
  __proto__: dart.getMethods(html$.ImageBitmapRenderingContext.__proto__),
  [$transferFromImageBitmap]: dart.fnType(dart.void, [html$.ImageBitmap])
}));
dart.setGetterSignature(html$.ImageBitmapRenderingContext, () => ({
  __proto__: dart.getGetters(html$.ImageBitmapRenderingContext.__proto__),
  [$canvas]: html$.CanvasElement
}));
dart.setLibraryUri(html$.ImageBitmapRenderingContext, L65);
dart.registerExtension("ImageBitmapRenderingContext", html$.ImageBitmapRenderingContext);
html$.ImageCapture = class ImageCapture$ extends _interceptors.Interceptor {
  static new(track) {
    return html$.ImageCapture._create_1(track);
  }
  static _create_1(track) {
    return new ImageCapture(track);
  }
  get [$track]() {
    return this.track;
  }
  [$getPhotoCapabilities]() {
    return js_util.promiseToFuture(html$.PhotoCapabilities, this.getPhotoCapabilities());
  }
  [$getPhotoSettings]() {
    return html$.promiseToFutureAsMap(this.getPhotoSettings());
  }
  [$grabFrame]() {
    return js_util.promiseToFuture(html$.ImageBitmap, this.grabFrame());
  }
  [$setOptions](photoSettings) {
    let photoSettings_dict = html_common.convertDartToNative_Dictionary(photoSettings);
    return js_util.promiseToFuture(dart.dynamic, this.setOptions(photoSettings_dict));
  }
  [$takePhoto](photoSettings = null) {
    let photoSettings_dict = null;
    if (photoSettings != null) {
      photoSettings_dict = html_common.convertDartToNative_Dictionary(photoSettings);
    }
    return js_util.promiseToFuture(html$.Blob, this.takePhoto(photoSettings_dict));
  }
};
dart.addTypeTests(html$.ImageCapture);
dart.addTypeCaches(html$.ImageCapture);
dart.setMethodSignature(html$.ImageCapture, () => ({
  __proto__: dart.getMethods(html$.ImageCapture.__proto__),
  [$getPhotoCapabilities]: dart.fnType(async.Future$(html$.PhotoCapabilities), []),
  [$getPhotoSettings]: dart.fnType(async.Future$(core.Map$(core.String, dart.dynamic)), []),
  [$grabFrame]: dart.fnType(async.Future$(html$.ImageBitmap), []),
  [$setOptions]: dart.fnType(async.Future, [core.Map]),
  [$takePhoto]: dart.fnType(async.Future$(html$.Blob), [], [core.Map])
}));
dart.setGetterSignature(html$.ImageCapture, () => ({
  __proto__: dart.getGetters(html$.ImageCapture.__proto__),
  [$track]: html$.MediaStreamTrack
}));
dart.setLibraryUri(html$.ImageCapture, L65);
dart.registerExtension("ImageCapture", html$.ImageCapture);
html$.ImageData = class ImageData$ extends _interceptors.Interceptor {
  static new(data_OR_sw, sh_OR_sw, sh = null) {
    if (core.int.is(sh_OR_sw) && core.int.is(data_OR_sw) && sh == null) {
      return html$.ImageData._create_1(data_OR_sw, sh_OR_sw);
    }
    if (core.int.is(sh_OR_sw) && typed_data.Uint8ClampedList.is(data_OR_sw) && sh == null) {
      return html$.ImageData._create_2(data_OR_sw, sh_OR_sw);
    }
    if (core.int.is(sh) && core.int.is(sh_OR_sw) && typed_data.Uint8ClampedList.is(data_OR_sw)) {
      return html$.ImageData._create_3(data_OR_sw, sh_OR_sw, sh);
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  static _create_1(data_OR_sw, sh_OR_sw) {
    return new ImageData(data_OR_sw, sh_OR_sw);
  }
  static _create_2(data_OR_sw, sh_OR_sw) {
    return new ImageData(data_OR_sw, sh_OR_sw);
  }
  static _create_3(data_OR_sw, sh_OR_sw, sh) {
    return new ImageData(data_OR_sw, sh_OR_sw, sh);
  }
  get [$data]() {
    return this.data;
  }
  get [$height]() {
    return this.height;
  }
  get [$width]() {
    return this.width;
  }
};
dart.addTypeTests(html$.ImageData);
dart.addTypeCaches(html$.ImageData);
dart.setGetterSignature(html$.ImageData, () => ({
  __proto__: dart.getGetters(html$.ImageData.__proto__),
  [$data]: typed_data.Uint8ClampedList,
  [$height]: core.int,
  [$width]: core.int
}));
dart.setLibraryUri(html$.ImageData, L65);
dart.registerExtension("ImageData", html$.ImageData);
html$.ImageElement = class ImageElement extends html$.HtmlElement {
  static new(opts) {
    let src = opts && 'src' in opts ? opts.src : null;
    let width = opts && 'width' in opts ? opts.width : null;
    let height = opts && 'height' in opts ? opts.height : null;
    let e = html$.document.createElement("img");
    if (src != null) e.src = src;
    if (width != null) e.width = width;
    if (height != null) e.height = height;
    return e;
  }
  get [$alt]() {
    return this.alt;
  }
  set [$alt](value) {
    this.alt = value;
  }
  get [$async]() {
    return this.async;
  }
  set [$async](value) {
    this.async = value;
  }
  get [$complete]() {
    return this.complete;
  }
  get [$crossOrigin]() {
    return this.crossOrigin;
  }
  set [$crossOrigin](value) {
    this.crossOrigin = value;
  }
  get [$currentSrc]() {
    return this.currentSrc;
  }
  get [$height]() {
    return this.height;
  }
  set [$height](value) {
    this.height = value;
  }
  get [$isMap]() {
    return this.isMap;
  }
  set [$isMap](value) {
    this.isMap = value;
  }
  get [$naturalHeight]() {
    return this.naturalHeight;
  }
  get [$naturalWidth]() {
    return this.naturalWidth;
  }
  get [$referrerPolicy]() {
    return this.referrerPolicy;
  }
  set [$referrerPolicy](value) {
    this.referrerPolicy = value;
  }
  get [$sizes]() {
    return this.sizes;
  }
  set [$sizes](value) {
    this.sizes = value;
  }
  get [$src]() {
    return this.src;
  }
  set [$src](value) {
    this.src = value;
  }
  get [$srcset]() {
    return this.srcset;
  }
  set [$srcset](value) {
    this.srcset = value;
  }
  get [$useMap]() {
    return this.useMap;
  }
  set [$useMap](value) {
    this.useMap = value;
  }
  get [$width]() {
    return this.width;
  }
  set [$width](value) {
    this.width = value;
  }
  [$decode]() {
    return js_util.promiseToFuture(dart.dynamic, this.decode());
  }
};
(html$.ImageElement.created = function() {
  html$.ImageElement.__proto__.created.call(this);
  ;
}).prototype = html$.ImageElement.prototype;
dart.addTypeTests(html$.ImageElement);
dart.addTypeCaches(html$.ImageElement);
html$.ImageElement[dart.implements] = () => [html$.CanvasImageSource];
dart.setMethodSignature(html$.ImageElement, () => ({
  __proto__: dart.getMethods(html$.ImageElement.__proto__),
  [$decode]: dart.fnType(async.Future, [])
}));
dart.setGetterSignature(html$.ImageElement, () => ({
  __proto__: dart.getGetters(html$.ImageElement.__proto__),
  [$alt]: core.String,
  [$async]: core.String,
  [$complete]: core.bool,
  [$crossOrigin]: core.String,
  [$currentSrc]: core.String,
  [$height]: core.int,
  [$isMap]: core.bool,
  [$naturalHeight]: core.int,
  [$naturalWidth]: core.int,
  [$referrerPolicy]: core.String,
  [$sizes]: core.String,
  [$src]: core.String,
  [$srcset]: core.String,
  [$useMap]: core.String,
  [$width]: core.int
}));
dart.setSetterSignature(html$.ImageElement, () => ({
  __proto__: dart.getSetters(html$.ImageElement.__proto__),
  [$alt]: core.String,
  [$async]: core.String,
  [$crossOrigin]: core.String,
  [$height]: core.int,
  [$isMap]: core.bool,
  [$referrerPolicy]: core.String,
  [$sizes]: core.String,
  [$src]: core.String,
  [$srcset]: core.String,
  [$useMap]: core.String,
  [$width]: core.int
}));
dart.setLibraryUri(html$.ImageElement, L65);
dart.registerExtension("HTMLImageElement", html$.ImageElement);
html$.InputDeviceCapabilities = class InputDeviceCapabilities$ extends _interceptors.Interceptor {
  static new(deviceInitDict = null) {
    if (deviceInitDict != null) {
      let deviceInitDict_1 = html_common.convertDartToNative_Dictionary(deviceInitDict);
      return html$.InputDeviceCapabilities._create_1(deviceInitDict_1);
    }
    return html$.InputDeviceCapabilities._create_2();
  }
  static _create_1(deviceInitDict) {
    return new InputDeviceCapabilities(deviceInitDict);
  }
  static _create_2() {
    return new InputDeviceCapabilities();
  }
  get [$firesTouchEvents]() {
    return this.firesTouchEvents;
  }
};
dart.addTypeTests(html$.InputDeviceCapabilities);
dart.addTypeCaches(html$.InputDeviceCapabilities);
dart.setGetterSignature(html$.InputDeviceCapabilities, () => ({
  __proto__: dart.getGetters(html$.InputDeviceCapabilities.__proto__),
  [$firesTouchEvents]: core.bool
}));
dart.setLibraryUri(html$.InputDeviceCapabilities, L65);
dart.registerExtension("InputDeviceCapabilities", html$.InputDeviceCapabilities);
var _get_valueAsDate = dart.privateName(html$, "_get_valueAsDate");
var _set_valueAsDate = dart.privateName(html$, "_set_valueAsDate");
html$.InputElement = class InputElement extends html$.HtmlElement {
  static new(opts) {
    let type = opts && 'type' in opts ? opts.type : null;
    let e = html$.InputElement.as(html$.document[$createElement]("input"));
    if (type != null) {
      try {
        e.type = type;
      } catch (e$) {
        let _ = dart.getThrown(e$);
      }
    }
    return e;
  }
  get [$accept]() {
    return this.accept;
  }
  set [$accept](value) {
    this.accept = value;
  }
  get [$alt]() {
    return this.alt;
  }
  set [$alt](value) {
    this.alt = value;
  }
  get [$autocapitalize]() {
    return this.autocapitalize;
  }
  set [$autocapitalize](value) {
    this.autocapitalize = value;
  }
  get [$autocomplete]() {
    return this.autocomplete;
  }
  set [$autocomplete](value) {
    this.autocomplete = value;
  }
  get [$autofocus]() {
    return this.autofocus;
  }
  set [$autofocus](value) {
    this.autofocus = value;
  }
  get [$capture]() {
    return this.capture;
  }
  set [$capture](value) {
    this.capture = value;
  }
  get [$checked]() {
    return this.checked;
  }
  set [$checked](value) {
    this.checked = value;
  }
  get [$defaultChecked]() {
    return this.defaultChecked;
  }
  set [$defaultChecked](value) {
    this.defaultChecked = value;
  }
  get [$defaultValue]() {
    return this.defaultValue;
  }
  set [$defaultValue](value) {
    this.defaultValue = value;
  }
  get [$dirName]() {
    return this.dirName;
  }
  set [$dirName](value) {
    this.dirName = value;
  }
  get [$disabled]() {
    return this.disabled;
  }
  set [$disabled](value) {
    this.disabled = value;
  }
  get [$files]() {
    return this.files;
  }
  set [$files](value) {
    this.files = value;
  }
  get [$form]() {
    return this.form;
  }
  get [$formAction]() {
    return this.formAction;
  }
  set [$formAction](value) {
    this.formAction = value;
  }
  get [$formEnctype]() {
    return this.formEnctype;
  }
  set [$formEnctype](value) {
    this.formEnctype = value;
  }
  get [$formMethod]() {
    return this.formMethod;
  }
  set [$formMethod](value) {
    this.formMethod = value;
  }
  get [$formNoValidate]() {
    return this.formNoValidate;
  }
  set [$formNoValidate](value) {
    this.formNoValidate = value;
  }
  get [$formTarget]() {
    return this.formTarget;
  }
  set [$formTarget](value) {
    this.formTarget = value;
  }
  get [$height]() {
    return this.height;
  }
  set [$height](value) {
    this.height = value;
  }
  get [$incremental]() {
    return this.incremental;
  }
  set [$incremental](value) {
    this.incremental = value;
  }
  get [$indeterminate]() {
    return this.indeterminate;
  }
  set [$indeterminate](value) {
    this.indeterminate = value;
  }
  get [$labels]() {
    return this.labels;
  }
  get [$list]() {
    return this.list;
  }
  get [$max]() {
    return this.max;
  }
  set [$max](value) {
    this.max = value;
  }
  get [$maxLength]() {
    return this.maxLength;
  }
  set [$maxLength](value) {
    this.maxLength = value;
  }
  get [$min]() {
    return this.min;
  }
  set [$min](value) {
    this.min = value;
  }
  get [$minLength]() {
    return this.minLength;
  }
  set [$minLength](value) {
    this.minLength = value;
  }
  get [$multiple]() {
    return this.multiple;
  }
  set [$multiple](value) {
    this.multiple = value;
  }
  get [$name]() {
    return this.name;
  }
  set [$name](value) {
    this.name = value;
  }
  get [$pattern]() {
    return this.pattern;
  }
  set [$pattern](value) {
    this.pattern = value;
  }
  get [$placeholder]() {
    return this.placeholder;
  }
  set [$placeholder](value) {
    this.placeholder = value;
  }
  get [$readOnly]() {
    return this.readOnly;
  }
  set [$readOnly](value) {
    this.readOnly = value;
  }
  get [$required]() {
    return this.required;
  }
  set [$required](value) {
    this.required = value;
  }
  get [$selectionDirection]() {
    return this.selectionDirection;
  }
  set [$selectionDirection](value) {
    this.selectionDirection = value;
  }
  get [$selectionEnd]() {
    return this.selectionEnd;
  }
  set [$selectionEnd](value) {
    this.selectionEnd = value;
  }
  get [$selectionStart]() {
    return this.selectionStart;
  }
  set [$selectionStart](value) {
    this.selectionStart = value;
  }
  get [$size]() {
    return this.size;
  }
  set [$size](value) {
    this.size = value;
  }
  get [$src]() {
    return this.src;
  }
  set [$src](value) {
    this.src = value;
  }
  get [$step]() {
    return this.step;
  }
  set [$step](value) {
    this.step = value;
  }
  get [$type]() {
    return this.type;
  }
  set [$type](value) {
    this.type = value;
  }
  get [$validationMessage]() {
    return this.validationMessage;
  }
  get [$validity]() {
    return this.validity;
  }
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
  get [$valueAsDate]() {
    return html_common.convertNativeToDart_DateTime(this[_get_valueAsDate]);
  }
  get [_get_valueAsDate]() {
    return this.valueAsDate;
  }
  set [$valueAsDate](value) {
    this[_set_valueAsDate] = html_common.convertDartToNative_DateTime(value);
  }
  set [_set_valueAsDate](value) {
    this.valueAsDate = value;
  }
  get [$valueAsNumber]() {
    return this.valueAsNumber;
  }
  set [$valueAsNumber](value) {
    this.valueAsNumber = value;
  }
  get [$entries]() {
    return this.webkitEntries;
  }
  get [$directory]() {
    return this.webkitdirectory;
  }
  set [$directory](value) {
    this.webkitdirectory = value;
  }
  get [$width]() {
    return this.width;
  }
  set [$width](value) {
    this.width = value;
  }
  get [$willValidate]() {
    return this.willValidate;
  }
  [$checkValidity](...args) {
    return this.checkValidity.apply(this, args);
  }
  [$reportValidity](...args) {
    return this.reportValidity.apply(this, args);
  }
  [$select](...args) {
    return this.select.apply(this, args);
  }
  [$setCustomValidity](...args) {
    return this.setCustomValidity.apply(this, args);
  }
  [$setRangeText](...args) {
    return this.setRangeText.apply(this, args);
  }
  [$setSelectionRange](...args) {
    return this.setSelectionRange.apply(this, args);
  }
  [$stepDown](...args) {
    return this.stepDown.apply(this, args);
  }
  [$stepUp](...args) {
    return this.stepUp.apply(this, args);
  }
};
(html$.InputElement.created = function() {
  html$.InputElement.__proto__.created.call(this);
  ;
}).prototype = html$.InputElement.prototype;
dart.addTypeTests(html$.InputElement);
dart.addTypeCaches(html$.InputElement);
html$.InputElement[dart.implements] = () => [html$.HiddenInputElement, html$.SearchInputElement, html$.TextInputElement, html$.UrlInputElement, html$.TelephoneInputElement, html$.EmailInputElement, html$.PasswordInputElement, html$.DateInputElement, html$.MonthInputElement, html$.WeekInputElement, html$.TimeInputElement, html$.LocalDateTimeInputElement, html$.NumberInputElement, html$.RangeInputElement, html$.CheckboxInputElement, html$.RadioButtonInputElement, html$.FileUploadInputElement, html$.SubmitButtonInputElement, html$.ImageButtonInputElement, html$.ResetButtonInputElement, html$.ButtonInputElement];
dart.setMethodSignature(html$.InputElement, () => ({
  __proto__: dart.getMethods(html$.InputElement.__proto__),
  [$checkValidity]: dart.fnType(core.bool, []),
  [$reportValidity]: dart.fnType(core.bool, []),
  [$select]: dart.fnType(dart.void, []),
  [$setCustomValidity]: dart.fnType(dart.void, [core.String]),
  [$setRangeText]: dart.fnType(dart.void, [core.String], {end: core.int, selectionMode: core.String, start: core.int}, {}),
  [$setSelectionRange]: dart.fnType(dart.void, [core.int, core.int], [core.String]),
  [$stepDown]: dart.fnType(dart.void, [], [core.int]),
  [$stepUp]: dart.fnType(dart.void, [], [core.int])
}));
dart.setGetterSignature(html$.InputElement, () => ({
  __proto__: dart.getGetters(html$.InputElement.__proto__),
  [$accept]: core.String,
  [$alt]: core.String,
  [$autocapitalize]: core.String,
  [$autocomplete]: core.String,
  [$autofocus]: core.bool,
  [$capture]: core.String,
  [$checked]: core.bool,
  [$defaultChecked]: core.bool,
  [$defaultValue]: core.String,
  [$dirName]: core.String,
  [$disabled]: core.bool,
  [$files]: core.List$(html$.File),
  [$form]: html$.FormElement,
  [$formAction]: core.String,
  [$formEnctype]: core.String,
  [$formMethod]: core.String,
  [$formNoValidate]: core.bool,
  [$formTarget]: core.String,
  [$height]: core.int,
  [$incremental]: core.bool,
  [$indeterminate]: core.bool,
  [$labels]: core.List$(html$.Node),
  [$list]: html$.HtmlElement,
  [$max]: core.String,
  [$maxLength]: core.int,
  [$min]: core.String,
  [$minLength]: core.int,
  [$multiple]: core.bool,
  [$name]: core.String,
  [$pattern]: core.String,
  [$placeholder]: core.String,
  [$readOnly]: core.bool,
  [$required]: core.bool,
  [$selectionDirection]: core.String,
  [$selectionEnd]: core.int,
  [$selectionStart]: core.int,
  [$size]: core.int,
  [$src]: core.String,
  [$step]: core.String,
  [$type]: core.String,
  [$validationMessage]: core.String,
  [$validity]: html$.ValidityState,
  [$value]: core.String,
  [$valueAsDate]: core.DateTime,
  [_get_valueAsDate]: dart.dynamic,
  [$valueAsNumber]: core.num,
  [$entries]: core.List$(html$.Entry),
  [$directory]: core.bool,
  [$width]: core.int,
  [$willValidate]: core.bool
}));
dart.setSetterSignature(html$.InputElement, () => ({
  __proto__: dart.getSetters(html$.InputElement.__proto__),
  [$accept]: core.String,
  [$alt]: core.String,
  [$autocapitalize]: core.String,
  [$autocomplete]: core.String,
  [$autofocus]: core.bool,
  [$capture]: core.String,
  [$checked]: core.bool,
  [$defaultChecked]: core.bool,
  [$defaultValue]: core.String,
  [$dirName]: core.String,
  [$disabled]: core.bool,
  [$files]: core.List$(html$.File),
  [$formAction]: core.String,
  [$formEnctype]: core.String,
  [$formMethod]: core.String,
  [$formNoValidate]: core.bool,
  [$formTarget]: core.String,
  [$height]: core.int,
  [$incremental]: core.bool,
  [$indeterminate]: core.bool,
  [$max]: core.String,
  [$maxLength]: core.int,
  [$min]: core.String,
  [$minLength]: core.int,
  [$multiple]: core.bool,
  [$name]: core.String,
  [$pattern]: core.String,
  [$placeholder]: core.String,
  [$readOnly]: core.bool,
  [$required]: core.bool,
  [$selectionDirection]: core.String,
  [$selectionEnd]: core.int,
  [$selectionStart]: core.int,
  [$size]: core.int,
  [$src]: core.String,
  [$step]: core.String,
  [$type]: core.String,
  [$value]: core.String,
  [$valueAsDate]: core.DateTime,
  [_set_valueAsDate]: dart.dynamic,
  [$valueAsNumber]: core.num,
  [$directory]: core.bool,
  [$width]: core.int
}));
dart.setLibraryUri(html$.InputElement, L65);
dart.registerExtension("HTMLInputElement", html$.InputElement);
html$.InputElementBase = class InputElementBase extends core.Object {};
(html$.InputElementBase.new = function() {
  ;
}).prototype = html$.InputElementBase.prototype;
dart.addTypeTests(html$.InputElementBase);
dart.addTypeCaches(html$.InputElementBase);
html$.InputElementBase[dart.implements] = () => [html$.Element];
dart.setLibraryUri(html$.InputElementBase, L65);
html$.HiddenInputElement = class HiddenInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "hidden"});
  }
};
(html$.HiddenInputElement[dart.mixinNew] = function() {
}).prototype = html$.HiddenInputElement.prototype;
dart.addTypeTests(html$.HiddenInputElement);
dart.addTypeCaches(html$.HiddenInputElement);
html$.HiddenInputElement[dart.implements] = () => [html$.InputElementBase];
dart.setLibraryUri(html$.HiddenInputElement, L65);
html$.TextInputElementBase = class TextInputElementBase extends core.Object {};
(html$.TextInputElementBase.new = function() {
  ;
}).prototype = html$.TextInputElementBase.prototype;
dart.addTypeTests(html$.TextInputElementBase);
dart.addTypeCaches(html$.TextInputElementBase);
html$.TextInputElementBase[dart.implements] = () => [html$.InputElementBase];
dart.setLibraryUri(html$.TextInputElementBase, L65);
html$.SearchInputElement = class SearchInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "search"});
  }
  static get supported() {
    return html$.InputElement.new({type: "search"}).type === "search";
  }
};
(html$.SearchInputElement[dart.mixinNew] = function() {
}).prototype = html$.SearchInputElement.prototype;
dart.addTypeTests(html$.SearchInputElement);
dart.addTypeCaches(html$.SearchInputElement);
html$.SearchInputElement[dart.implements] = () => [html$.TextInputElementBase];
dart.setLibraryUri(html$.SearchInputElement, L65);
html$.TextInputElement = class TextInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "text"});
  }
};
(html$.TextInputElement[dart.mixinNew] = function() {
}).prototype = html$.TextInputElement.prototype;
dart.addTypeTests(html$.TextInputElement);
dart.addTypeCaches(html$.TextInputElement);
html$.TextInputElement[dart.implements] = () => [html$.TextInputElementBase];
dart.setLibraryUri(html$.TextInputElement, L65);
html$.UrlInputElement = class UrlInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "url"});
  }
  static get supported() {
    return html$.InputElement.new({type: "url"}).type === "url";
  }
};
(html$.UrlInputElement[dart.mixinNew] = function() {
}).prototype = html$.UrlInputElement.prototype;
dart.addTypeTests(html$.UrlInputElement);
dart.addTypeCaches(html$.UrlInputElement);
html$.UrlInputElement[dart.implements] = () => [html$.TextInputElementBase];
dart.setLibraryUri(html$.UrlInputElement, L65);
html$.TelephoneInputElement = class TelephoneInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "tel"});
  }
  static get supported() {
    return html$.InputElement.new({type: "tel"}).type === "tel";
  }
};
(html$.TelephoneInputElement[dart.mixinNew] = function() {
}).prototype = html$.TelephoneInputElement.prototype;
dart.addTypeTests(html$.TelephoneInputElement);
dart.addTypeCaches(html$.TelephoneInputElement);
html$.TelephoneInputElement[dart.implements] = () => [html$.TextInputElementBase];
dart.setLibraryUri(html$.TelephoneInputElement, L65);
html$.EmailInputElement = class EmailInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "email"});
  }
  static get supported() {
    return html$.InputElement.new({type: "email"}).type === "email";
  }
};
(html$.EmailInputElement[dart.mixinNew] = function() {
}).prototype = html$.EmailInputElement.prototype;
dart.addTypeTests(html$.EmailInputElement);
dart.addTypeCaches(html$.EmailInputElement);
html$.EmailInputElement[dart.implements] = () => [html$.TextInputElementBase];
dart.setLibraryUri(html$.EmailInputElement, L65);
html$.PasswordInputElement = class PasswordInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "password"});
  }
};
(html$.PasswordInputElement[dart.mixinNew] = function() {
}).prototype = html$.PasswordInputElement.prototype;
dart.addTypeTests(html$.PasswordInputElement);
dart.addTypeCaches(html$.PasswordInputElement);
html$.PasswordInputElement[dart.implements] = () => [html$.TextInputElementBase];
dart.setLibraryUri(html$.PasswordInputElement, L65);
html$.RangeInputElementBase = class RangeInputElementBase extends core.Object {};
(html$.RangeInputElementBase.new = function() {
  ;
}).prototype = html$.RangeInputElementBase.prototype;
dart.addTypeTests(html$.RangeInputElementBase);
dart.addTypeCaches(html$.RangeInputElementBase);
html$.RangeInputElementBase[dart.implements] = () => [html$.InputElementBase];
dart.setLibraryUri(html$.RangeInputElementBase, L65);
html$.DateInputElement = class DateInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "date"});
  }
  static get supported() {
    return html$.InputElement.new({type: "date"}).type === "date";
  }
};
(html$.DateInputElement[dart.mixinNew] = function() {
}).prototype = html$.DateInputElement.prototype;
dart.addTypeTests(html$.DateInputElement);
dart.addTypeCaches(html$.DateInputElement);
html$.DateInputElement[dart.implements] = () => [html$.RangeInputElementBase];
dart.setLibraryUri(html$.DateInputElement, L65);
html$.MonthInputElement = class MonthInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "month"});
  }
  static get supported() {
    return html$.InputElement.new({type: "month"}).type === "month";
  }
};
(html$.MonthInputElement[dart.mixinNew] = function() {
}).prototype = html$.MonthInputElement.prototype;
dart.addTypeTests(html$.MonthInputElement);
dart.addTypeCaches(html$.MonthInputElement);
html$.MonthInputElement[dart.implements] = () => [html$.RangeInputElementBase];
dart.setLibraryUri(html$.MonthInputElement, L65);
html$.WeekInputElement = class WeekInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "week"});
  }
  static get supported() {
    return html$.InputElement.new({type: "week"}).type === "week";
  }
};
(html$.WeekInputElement[dart.mixinNew] = function() {
}).prototype = html$.WeekInputElement.prototype;
dart.addTypeTests(html$.WeekInputElement);
dart.addTypeCaches(html$.WeekInputElement);
html$.WeekInputElement[dart.implements] = () => [html$.RangeInputElementBase];
dart.setLibraryUri(html$.WeekInputElement, L65);
html$.TimeInputElement = class TimeInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "time"});
  }
  static get supported() {
    return html$.InputElement.new({type: "time"}).type === "time";
  }
};
(html$.TimeInputElement[dart.mixinNew] = function() {
}).prototype = html$.TimeInputElement.prototype;
dart.addTypeTests(html$.TimeInputElement);
dart.addTypeCaches(html$.TimeInputElement);
html$.TimeInputElement[dart.implements] = () => [html$.RangeInputElementBase];
dart.setLibraryUri(html$.TimeInputElement, L65);
html$.LocalDateTimeInputElement = class LocalDateTimeInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "datetime-local"});
  }
  static get supported() {
    return html$.InputElement.new({type: "datetime-local"}).type === "datetime-local";
  }
};
(html$.LocalDateTimeInputElement[dart.mixinNew] = function() {
}).prototype = html$.LocalDateTimeInputElement.prototype;
dart.addTypeTests(html$.LocalDateTimeInputElement);
dart.addTypeCaches(html$.LocalDateTimeInputElement);
html$.LocalDateTimeInputElement[dart.implements] = () => [html$.RangeInputElementBase];
dart.setLibraryUri(html$.LocalDateTimeInputElement, L65);
html$.NumberInputElement = class NumberInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "number"});
  }
  static get supported() {
    return html$.InputElement.new({type: "number"}).type === "number";
  }
};
(html$.NumberInputElement[dart.mixinNew] = function() {
}).prototype = html$.NumberInputElement.prototype;
dart.addTypeTests(html$.NumberInputElement);
dart.addTypeCaches(html$.NumberInputElement);
html$.NumberInputElement[dart.implements] = () => [html$.RangeInputElementBase];
dart.setLibraryUri(html$.NumberInputElement, L65);
html$.RangeInputElement = class RangeInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "range"});
  }
  static get supported() {
    return html$.InputElement.new({type: "range"}).type === "range";
  }
};
(html$.RangeInputElement[dart.mixinNew] = function() {
}).prototype = html$.RangeInputElement.prototype;
dart.addTypeTests(html$.RangeInputElement);
dart.addTypeCaches(html$.RangeInputElement);
html$.RangeInputElement[dart.implements] = () => [html$.RangeInputElementBase];
dart.setLibraryUri(html$.RangeInputElement, L65);
html$.CheckboxInputElement = class CheckboxInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "checkbox"});
  }
};
(html$.CheckboxInputElement[dart.mixinNew] = function() {
}).prototype = html$.CheckboxInputElement.prototype;
dart.addTypeTests(html$.CheckboxInputElement);
dart.addTypeCaches(html$.CheckboxInputElement);
html$.CheckboxInputElement[dart.implements] = () => [html$.InputElementBase];
dart.setLibraryUri(html$.CheckboxInputElement, L65);
html$.RadioButtonInputElement = class RadioButtonInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "radio"});
  }
};
(html$.RadioButtonInputElement[dart.mixinNew] = function() {
}).prototype = html$.RadioButtonInputElement.prototype;
dart.addTypeTests(html$.RadioButtonInputElement);
dart.addTypeCaches(html$.RadioButtonInputElement);
html$.RadioButtonInputElement[dart.implements] = () => [html$.InputElementBase];
dart.setLibraryUri(html$.RadioButtonInputElement, L65);
var files = dart.privateName(html$, "FileUploadInputElement.files");
html$.FileUploadInputElement = class FileUploadInputElement extends core.Object {
  get files() {
    return this[files];
  }
  set files(value) {
    this[files] = value;
  }
  static new() {
    return html$.InputElement.new({type: "file"});
  }
};
(html$.FileUploadInputElement[dart.mixinNew] = function() {
  this[files] = null;
}).prototype = html$.FileUploadInputElement.prototype;
dart.addTypeTests(html$.FileUploadInputElement);
dart.addTypeCaches(html$.FileUploadInputElement);
html$.FileUploadInputElement[dart.implements] = () => [html$.InputElementBase];
dart.setLibraryUri(html$.FileUploadInputElement, L65);
dart.setFieldSignature(html$.FileUploadInputElement, () => ({
  __proto__: dart.getFields(html$.FileUploadInputElement.__proto__),
  files: dart.fieldType(core.List$(html$.File))
}));
dart.defineExtensionAccessors(html$.FileUploadInputElement, ['files']);
html$.SubmitButtonInputElement = class SubmitButtonInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "submit"});
  }
};
(html$.SubmitButtonInputElement[dart.mixinNew] = function() {
}).prototype = html$.SubmitButtonInputElement.prototype;
dart.addTypeTests(html$.SubmitButtonInputElement);
dart.addTypeCaches(html$.SubmitButtonInputElement);
html$.SubmitButtonInputElement[dart.implements] = () => [html$.InputElementBase];
dart.setLibraryUri(html$.SubmitButtonInputElement, L65);
html$.ImageButtonInputElement = class ImageButtonInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "image"});
  }
};
(html$.ImageButtonInputElement[dart.mixinNew] = function() {
}).prototype = html$.ImageButtonInputElement.prototype;
dart.addTypeTests(html$.ImageButtonInputElement);
dart.addTypeCaches(html$.ImageButtonInputElement);
html$.ImageButtonInputElement[dart.implements] = () => [html$.InputElementBase];
dart.setLibraryUri(html$.ImageButtonInputElement, L65);
html$.ResetButtonInputElement = class ResetButtonInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "reset"});
  }
};
(html$.ResetButtonInputElement[dart.mixinNew] = function() {
}).prototype = html$.ResetButtonInputElement.prototype;
dart.addTypeTests(html$.ResetButtonInputElement);
dart.addTypeCaches(html$.ResetButtonInputElement);
html$.ResetButtonInputElement[dart.implements] = () => [html$.InputElementBase];
dart.setLibraryUri(html$.ResetButtonInputElement, L65);
html$.ButtonInputElement = class ButtonInputElement extends core.Object {
  static new() {
    return html$.InputElement.new({type: "button"});
  }
};
(html$.ButtonInputElement[dart.mixinNew] = function() {
}).prototype = html$.ButtonInputElement.prototype;
dart.addTypeTests(html$.ButtonInputElement);
dart.addTypeCaches(html$.ButtonInputElement);
html$.ButtonInputElement[dart.implements] = () => [html$.InputElementBase];
dart.setLibraryUri(html$.ButtonInputElement, L65);
var _registerForeignFetch_1 = dart.privateName(html$, "_registerForeignFetch_1");
html$.InstallEvent = class InstallEvent$ extends html$.ExtendableEvent {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.InstallEvent._create_1(type, eventInitDict_1);
    }
    return html$.InstallEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new InstallEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new InstallEvent(type);
  }
  [$registerForeignFetch](options) {
    let options_1 = html_common.convertDartToNative_Dictionary(options);
    this[_registerForeignFetch_1](options_1);
    return;
  }
  [_registerForeignFetch_1](...args) {
    return this.registerForeignFetch.apply(this, args);
  }
};
dart.addTypeTests(html$.InstallEvent);
dart.addTypeCaches(html$.InstallEvent);
dart.setMethodSignature(html$.InstallEvent, () => ({
  __proto__: dart.getMethods(html$.InstallEvent.__proto__),
  [$registerForeignFetch]: dart.fnType(dart.void, [core.Map]),
  [_registerForeignFetch_1]: dart.fnType(dart.void, [dart.dynamic])
}));
dart.setLibraryUri(html$.InstallEvent, L65);
dart.registerExtension("InstallEvent", html$.InstallEvent);
html$.IntersectionObserver = class IntersectionObserver$ extends _interceptors.Interceptor {
  static new(callback, options = null) {
    if (options != null) {
      let callback_1 = _js_helper.convertDartClosureToJS(ListLAndIntersectionObserverLToLvoid(), callback, 2);
      let options_2 = html_common.convertDartToNative_Dictionary(options);
      return html$.IntersectionObserver._create_1(callback_1, options_2);
    }
    let callback_1 = _js_helper.convertDartClosureToJS(ListLAndIntersectionObserverLToLvoid(), callback, 2);
    return html$.IntersectionObserver._create_2(callback_1);
  }
  static _create_1(callback, options) {
    return new IntersectionObserver(callback, options);
  }
  static _create_2(callback) {
    return new IntersectionObserver(callback);
  }
  get [$root]() {
    return this.root;
  }
  get [$rootMargin]() {
    return this.rootMargin;
  }
  get [$thresholds]() {
    return this.thresholds;
  }
  [$disconnect](...args) {
    return this.disconnect.apply(this, args);
  }
  [$observe](...args) {
    return this.observe.apply(this, args);
  }
  [$takeRecords](...args) {
    return this.takeRecords.apply(this, args);
  }
  [$unobserve](...args) {
    return this.unobserve.apply(this, args);
  }
};
dart.addTypeTests(html$.IntersectionObserver);
dart.addTypeCaches(html$.IntersectionObserver);
dart.setMethodSignature(html$.IntersectionObserver, () => ({
  __proto__: dart.getMethods(html$.IntersectionObserver.__proto__),
  [$disconnect]: dart.fnType(dart.void, []),
  [$observe]: dart.fnType(dart.void, [html$.Element]),
  [$takeRecords]: dart.fnType(core.List$(html$.IntersectionObserverEntry), []),
  [$unobserve]: dart.fnType(dart.void, [html$.Element])
}));
dart.setGetterSignature(html$.IntersectionObserver, () => ({
  __proto__: dart.getGetters(html$.IntersectionObserver.__proto__),
  [$root]: html$.Element,
  [$rootMargin]: core.String,
  [$thresholds]: core.List$(core.num)
}));
dart.setLibraryUri(html$.IntersectionObserver, L65);
dart.registerExtension("IntersectionObserver", html$.IntersectionObserver);
html$.IntersectionObserverEntry = class IntersectionObserverEntry extends _interceptors.Interceptor {
  get [$boundingClientRect]() {
    return this.boundingClientRect;
  }
  get [$intersectionRatio]() {
    return this.intersectionRatio;
  }
  get [$intersectionRect]() {
    return this.intersectionRect;
  }
  get [$isIntersecting]() {
    return this.isIntersecting;
  }
  get [$rootBounds]() {
    return this.rootBounds;
  }
  get [$target]() {
    return this.target;
  }
  get [$time]() {
    return this.time;
  }
};
dart.addTypeTests(html$.IntersectionObserverEntry);
dart.addTypeCaches(html$.IntersectionObserverEntry);
dart.setGetterSignature(html$.IntersectionObserverEntry, () => ({
  __proto__: dart.getGetters(html$.IntersectionObserverEntry.__proto__),
  [$boundingClientRect]: html$.DomRectReadOnly,
  [$intersectionRatio]: core.num,
  [$intersectionRect]: html$.DomRectReadOnly,
  [$isIntersecting]: core.bool,
  [$rootBounds]: html$.DomRectReadOnly,
  [$target]: html$.Element,
  [$time]: core.num
}));
dart.setLibraryUri(html$.IntersectionObserverEntry, L65);
dart.registerExtension("IntersectionObserverEntry", html$.IntersectionObserverEntry);
html$.InterventionReport = class InterventionReport extends html$.ReportBody {
  get [$lineNumber]() {
    return this.lineNumber;
  }
  get [$message]() {
    return this.message;
  }
  get [$sourceFile]() {
    return this.sourceFile;
  }
};
dart.addTypeTests(html$.InterventionReport);
dart.addTypeCaches(html$.InterventionReport);
dart.setGetterSignature(html$.InterventionReport, () => ({
  __proto__: dart.getGetters(html$.InterventionReport.__proto__),
  [$lineNumber]: core.int,
  [$message]: core.String,
  [$sourceFile]: core.String
}));
dart.setLibraryUri(html$.InterventionReport, L65);
dart.registerExtension("InterventionReport", html$.InterventionReport);
var _initKeyboardEvent = dart.privateName(html$, "_initKeyboardEvent");
var _charCode = dart.privateName(html$, "_charCode");
var _keyCode = dart.privateName(html$, "_keyCode");
html$.KeyboardEvent = class KeyboardEvent$ extends html$.UIEvent {
  static new(type, opts) {
    let t113;
    let view = opts && 'view' in opts ? opts.view : null;
    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
    let location = opts && 'location' in opts ? opts.location : null;
    let keyLocation = opts && 'keyLocation' in opts ? opts.keyLocation : null;
    let ctrlKey = opts && 'ctrlKey' in opts ? opts.ctrlKey : false;
    let altKey = opts && 'altKey' in opts ? opts.altKey : false;
    let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
    let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
    if (view == null) {
      view = html$.window;
    }
    location == null ? location = (t113 = keyLocation, t113 == null ? 1 : t113) : null;
    let e = html$.KeyboardEvent.as(html$.document[_createEvent]("KeyboardEvent"));
    e[_initKeyboardEvent](type, canBubble, cancelable, view, "", location, ctrlKey, altKey, shiftKey, metaKey);
    return e;
  }
  [_initKeyboardEvent](type, canBubble, cancelable, view, keyIdentifier, location, ctrlKey, altKey, shiftKey, metaKey) {
    if (typeof this.initKeyEvent == "function") {
      this.initKeyEvent(type, canBubble, cancelable, view, ctrlKey, altKey, shiftKey, metaKey, 0, 0);
    } else {
      this.initKeyboardEvent(type, canBubble, cancelable, view, keyIdentifier, location, ctrlKey, altKey, shiftKey, metaKey);
    }
  }
  get [$keyCode]() {
    return this.keyCode;
  }
  get [$charCode]() {
    return this.charCode;
  }
  get [$which]() {
    return this[_which];
  }
  static __(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.KeyboardEvent._create_1(type, eventInitDict_1);
    }
    return html$.KeyboardEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new KeyboardEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new KeyboardEvent(type);
  }
  get [$altKey]() {
    return this.altKey;
  }
  get [_charCode]() {
    return this.charCode;
  }
  get [$code]() {
    return this.code;
  }
  get [$ctrlKey]() {
    return this.ctrlKey;
  }
  get [$isComposing]() {
    return this.isComposing;
  }
  get [$key]() {
    return this.key;
  }
  get [_keyCode]() {
    return this.keyCode;
  }
  get [$location]() {
    return this.location;
  }
  get [$metaKey]() {
    return this.metaKey;
  }
  get [$repeat]() {
    return this.repeat;
  }
  get [$shiftKey]() {
    return this.shiftKey;
  }
  [$getModifierState](...args) {
    return this.getModifierState.apply(this, args);
  }
};
dart.addTypeTests(html$.KeyboardEvent);
dart.addTypeCaches(html$.KeyboardEvent);
dart.setMethodSignature(html$.KeyboardEvent, () => ({
  __proto__: dart.getMethods(html$.KeyboardEvent.__proto__),
  [_initKeyboardEvent]: dart.fnType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.String, core.int, core.bool, core.bool, core.bool, core.bool]),
  [$getModifierState]: dart.fnType(core.bool, [core.String])
}));
dart.setGetterSignature(html$.KeyboardEvent, () => ({
  __proto__: dart.getGetters(html$.KeyboardEvent.__proto__),
  [$keyCode]: core.int,
  [$charCode]: core.int,
  [$which]: core.int,
  [$altKey]: core.bool,
  [_charCode]: core.int,
  [$code]: core.String,
  [$ctrlKey]: core.bool,
  [$isComposing]: core.bool,
  [$key]: core.String,
  [_keyCode]: core.int,
  [$location]: core.int,
  [$metaKey]: core.bool,
  [$repeat]: core.bool,
  [$shiftKey]: core.bool
}));
dart.setLibraryUri(html$.KeyboardEvent, L65);
dart.defineLazy(html$.KeyboardEvent, {
  /*html$.KeyboardEvent.DOM_KEY_LOCATION_LEFT*/get DOM_KEY_LOCATION_LEFT() {
    return 1;
  },
  /*html$.KeyboardEvent.DOM_KEY_LOCATION_NUMPAD*/get DOM_KEY_LOCATION_NUMPAD() {
    return 3;
  },
  /*html$.KeyboardEvent.DOM_KEY_LOCATION_RIGHT*/get DOM_KEY_LOCATION_RIGHT() {
    return 2;
  },
  /*html$.KeyboardEvent.DOM_KEY_LOCATION_STANDARD*/get DOM_KEY_LOCATION_STANDARD() {
    return 0;
  }
}, true);
dart.registerExtension("KeyboardEvent", html$.KeyboardEvent);
html$.KeyframeEffectReadOnly = class KeyframeEffectReadOnly$ extends html$.AnimationEffectReadOnly {
  static new(target, effect, options = null) {
    if (options != null) {
      return html$.KeyframeEffectReadOnly._create_1(target, effect, options);
    }
    return html$.KeyframeEffectReadOnly._create_2(target, effect);
  }
  static _create_1(target, effect, options) {
    return new KeyframeEffectReadOnly(target, effect, options);
  }
  static _create_2(target, effect) {
    return new KeyframeEffectReadOnly(target, effect);
  }
};
dart.addTypeTests(html$.KeyframeEffectReadOnly);
dart.addTypeCaches(html$.KeyframeEffectReadOnly);
dart.setLibraryUri(html$.KeyframeEffectReadOnly, L65);
dart.registerExtension("KeyframeEffectReadOnly", html$.KeyframeEffectReadOnly);
html$.KeyframeEffect = class KeyframeEffect$ extends html$.KeyframeEffectReadOnly {
  static new(target, effect, options = null) {
    if (options != null) {
      return html$.KeyframeEffect._create_1(target, effect, options);
    }
    return html$.KeyframeEffect._create_2(target, effect);
  }
  static _create_1(target, effect, options) {
    return new KeyframeEffect(target, effect, options);
  }
  static _create_2(target, effect) {
    return new KeyframeEffect(target, effect);
  }
};
dart.addTypeTests(html$.KeyframeEffect);
dart.addTypeCaches(html$.KeyframeEffect);
dart.setLibraryUri(html$.KeyframeEffect, L65);
dart.registerExtension("KeyframeEffect", html$.KeyframeEffect);
html$.LIElement = class LIElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("li");
  }
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
};
(html$.LIElement.created = function() {
  html$.LIElement.__proto__.created.call(this);
  ;
}).prototype = html$.LIElement.prototype;
dart.addTypeTests(html$.LIElement);
dart.addTypeCaches(html$.LIElement);
dart.setGetterSignature(html$.LIElement, () => ({
  __proto__: dart.getGetters(html$.LIElement.__proto__),
  [$value]: core.int
}));
dart.setSetterSignature(html$.LIElement, () => ({
  __proto__: dart.getSetters(html$.LIElement.__proto__),
  [$value]: core.int
}));
dart.setLibraryUri(html$.LIElement, L65);
dart.registerExtension("HTMLLIElement", html$.LIElement);
html$.LabelElement = class LabelElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("label");
  }
  get [$control]() {
    return this.control;
  }
  get [$form]() {
    return this.form;
  }
  get [$htmlFor]() {
    return this.htmlFor;
  }
  set [$htmlFor](value) {
    this.htmlFor = value;
  }
};
(html$.LabelElement.created = function() {
  html$.LabelElement.__proto__.created.call(this);
  ;
}).prototype = html$.LabelElement.prototype;
dart.addTypeTests(html$.LabelElement);
dart.addTypeCaches(html$.LabelElement);
dart.setGetterSignature(html$.LabelElement, () => ({
  __proto__: dart.getGetters(html$.LabelElement.__proto__),
  [$control]: html$.HtmlElement,
  [$form]: html$.FormElement,
  [$htmlFor]: core.String
}));
dart.setSetterSignature(html$.LabelElement, () => ({
  __proto__: dart.getSetters(html$.LabelElement.__proto__),
  [$htmlFor]: core.String
}));
dart.setLibraryUri(html$.LabelElement, L65);
dart.registerExtension("HTMLLabelElement", html$.LabelElement);
html$.LegendElement = class LegendElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("legend");
  }
  get [$form]() {
    return this.form;
  }
};
(html$.LegendElement.created = function() {
  html$.LegendElement.__proto__.created.call(this);
  ;
}).prototype = html$.LegendElement.prototype;
dart.addTypeTests(html$.LegendElement);
dart.addTypeCaches(html$.LegendElement);
dart.setGetterSignature(html$.LegendElement, () => ({
  __proto__: dart.getGetters(html$.LegendElement.__proto__),
  [$form]: html$.FormElement
}));
dart.setLibraryUri(html$.LegendElement, L65);
dart.registerExtension("HTMLLegendElement", html$.LegendElement);
html$.LinearAccelerationSensor = class LinearAccelerationSensor$ extends html$.Accelerometer {
  static new(sensorOptions = null) {
    if (sensorOptions != null) {
      let sensorOptions_1 = html_common.convertDartToNative_Dictionary(sensorOptions);
      return html$.LinearAccelerationSensor._create_1(sensorOptions_1);
    }
    return html$.LinearAccelerationSensor._create_2();
  }
  static _create_1(sensorOptions) {
    return new LinearAccelerationSensor(sensorOptions);
  }
  static _create_2() {
    return new LinearAccelerationSensor();
  }
};
dart.addTypeTests(html$.LinearAccelerationSensor);
dart.addTypeCaches(html$.LinearAccelerationSensor);
dart.setLibraryUri(html$.LinearAccelerationSensor, L65);
dart.registerExtension("LinearAccelerationSensor", html$.LinearAccelerationSensor);
html$.LinkElement = class LinkElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("link");
  }
  get [$as]() {
    return this.as;
  }
  set [$as](value) {
    this.as = value;
  }
  get [$crossOrigin]() {
    return this.crossOrigin;
  }
  set [$crossOrigin](value) {
    this.crossOrigin = value;
  }
  get [$disabled]() {
    return this.disabled;
  }
  set [$disabled](value) {
    this.disabled = value;
  }
  get [$href]() {
    return this.href;
  }
  set [$href](value) {
    this.href = value;
  }
  get [$hreflang]() {
    return this.hreflang;
  }
  set [$hreflang](value) {
    this.hreflang = value;
  }
  get [$import]() {
    return this.import;
  }
  get [$integrity]() {
    return this.integrity;
  }
  set [$integrity](value) {
    this.integrity = value;
  }
  get [$media]() {
    return this.media;
  }
  set [$media](value) {
    this.media = value;
  }
  get [$referrerPolicy]() {
    return this.referrerPolicy;
  }
  set [$referrerPolicy](value) {
    this.referrerPolicy = value;
  }
  get [$rel]() {
    return this.rel;
  }
  set [$rel](value) {
    this.rel = value;
  }
  get [$relList]() {
    return this.relList;
  }
  get [$scope]() {
    return this.scope;
  }
  set [$scope](value) {
    this.scope = value;
  }
  get [$sheet]() {
    return this.sheet;
  }
  get [$sizes]() {
    return this.sizes;
  }
  get [$type]() {
    return this.type;
  }
  set [$type](value) {
    this.type = value;
  }
  get [$supportsImport]() {
    return "import" in this;
  }
};
(html$.LinkElement.created = function() {
  html$.LinkElement.__proto__.created.call(this);
  ;
}).prototype = html$.LinkElement.prototype;
dart.addTypeTests(html$.LinkElement);
dart.addTypeCaches(html$.LinkElement);
dart.setGetterSignature(html$.LinkElement, () => ({
  __proto__: dart.getGetters(html$.LinkElement.__proto__),
  [$as]: core.String,
  [$crossOrigin]: core.String,
  [$disabled]: core.bool,
  [$href]: core.String,
  [$hreflang]: core.String,
  [$import]: html$.Document,
  [$integrity]: core.String,
  [$media]: core.String,
  [$referrerPolicy]: core.String,
  [$rel]: core.String,
  [$relList]: html$.DomTokenList,
  [$scope]: core.String,
  [$sheet]: html$.StyleSheet,
  [$sizes]: html$.DomTokenList,
  [$type]: core.String,
  [$supportsImport]: core.bool
}));
dart.setSetterSignature(html$.LinkElement, () => ({
  __proto__: dart.getSetters(html$.LinkElement.__proto__),
  [$as]: core.String,
  [$crossOrigin]: core.String,
  [$disabled]: core.bool,
  [$href]: core.String,
  [$hreflang]: core.String,
  [$integrity]: core.String,
  [$media]: core.String,
  [$referrerPolicy]: core.String,
  [$rel]: core.String,
  [$scope]: core.String,
  [$type]: core.String
}));
dart.setLibraryUri(html$.LinkElement, L65);
dart.registerExtension("HTMLLinkElement", html$.LinkElement);
html$.Location = class Location extends _interceptors.Interceptor {
  get [$ancestorOrigins]() {
    return this.ancestorOrigins;
  }
  get [$hash]() {
    return this.hash;
  }
  set [$hash](value) {
    this.hash = value;
  }
  get [$host]() {
    return this.host;
  }
  set [$host](value) {
    this.host = value;
  }
  get [$hostname]() {
    return this.hostname;
  }
  set [$hostname](value) {
    this.hostname = value;
  }
  get [$href]() {
    return this.href;
  }
  set [$href](value) {
    this.href = value;
  }
  get [$pathname]() {
    return this.pathname;
  }
  set [$pathname](value) {
    this.pathname = value;
  }
  get [$port]() {
    return this.port;
  }
  set [$port](value) {
    this.port = value;
  }
  get [$protocol]() {
    return this.protocol;
  }
  set [$protocol](value) {
    this.protocol = value;
  }
  get [$search]() {
    return this.search;
  }
  set [$search](value) {
    this.search = value;
  }
  get [$trustedHref]() {
    return this.trustedHref;
  }
  set [$trustedHref](value) {
    this.trustedHref = value;
  }
  [$assign](...args) {
    return this.assign.apply(this, args);
  }
  [$reload](...args) {
    return this.reload.apply(this, args);
  }
  [$replace](...args) {
    return this.replace.apply(this, args);
  }
  get [$origin]() {
    if ("origin" in this) {
      return this.origin;
    }
    return dart.str(this.protocol) + "//" + dart.str(this.host);
  }
  [$toString]() {
    return String(this);
  }
};
dart.addTypeTests(html$.Location);
dart.addTypeCaches(html$.Location);
html$.Location[dart.implements] = () => [html$.LocationBase];
dart.setMethodSignature(html$.Location, () => ({
  __proto__: dart.getMethods(html$.Location.__proto__),
  [$assign]: dart.fnType(dart.void, [], [core.String]),
  [$reload]: dart.fnType(dart.void, []),
  [$replace]: dart.fnType(dart.void, [core.String])
}));
dart.setGetterSignature(html$.Location, () => ({
  __proto__: dart.getGetters(html$.Location.__proto__),
  [$ancestorOrigins]: core.List$(core.String),
  [$hash]: core.String,
  [$host]: core.String,
  [$hostname]: core.String,
  [$href]: core.String,
  [$pathname]: core.String,
  [$port]: core.String,
  [$protocol]: core.String,
  [$search]: core.String,
  [$trustedHref]: html$.TrustedUrl,
  [$origin]: core.String
}));
dart.setSetterSignature(html$.Location, () => ({
  __proto__: dart.getSetters(html$.Location.__proto__),
  [$hash]: core.String,
  [$host]: core.String,
  [$hostname]: core.String,
  [$href]: core.String,
  [$pathname]: core.String,
  [$port]: core.String,
  [$protocol]: core.String,
  [$search]: core.String,
  [$trustedHref]: html$.TrustedUrl
}));
dart.setLibraryUri(html$.Location, L65);
dart.registerExtension("Location", html$.Location);
html$.Magnetometer = class Magnetometer$ extends html$.Sensor {
  static new(sensorOptions = null) {
    if (sensorOptions != null) {
      let sensorOptions_1 = html_common.convertDartToNative_Dictionary(sensorOptions);
      return html$.Magnetometer._create_1(sensorOptions_1);
    }
    return html$.Magnetometer._create_2();
  }
  static _create_1(sensorOptions) {
    return new Magnetometer(sensorOptions);
  }
  static _create_2() {
    return new Magnetometer();
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
  get [$z]() {
    return this.z;
  }
};
dart.addTypeTests(html$.Magnetometer);
dart.addTypeCaches(html$.Magnetometer);
dart.setGetterSignature(html$.Magnetometer, () => ({
  __proto__: dart.getGetters(html$.Magnetometer.__proto__),
  [$x]: core.num,
  [$y]: core.num,
  [$z]: core.num
}));
dart.setLibraryUri(html$.Magnetometer, L65);
dart.registerExtension("Magnetometer", html$.Magnetometer);
html$.MapElement = class MapElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("map");
  }
  get [$areas]() {
    return this.areas;
  }
  get [$name]() {
    return this.name;
  }
  set [$name](value) {
    this.name = value;
  }
};
(html$.MapElement.created = function() {
  html$.MapElement.__proto__.created.call(this);
  ;
}).prototype = html$.MapElement.prototype;
dart.addTypeTests(html$.MapElement);
dart.addTypeCaches(html$.MapElement);
dart.setGetterSignature(html$.MapElement, () => ({
  __proto__: dart.getGetters(html$.MapElement.__proto__),
  [$areas]: core.List$(html$.Node),
  [$name]: core.String
}));
dart.setSetterSignature(html$.MapElement, () => ({
  __proto__: dart.getSetters(html$.MapElement.__proto__),
  [$name]: core.String
}));
dart.setLibraryUri(html$.MapElement, L65);
dart.registerExtension("HTMLMapElement", html$.MapElement);
html$.MediaCapabilities = class MediaCapabilities extends _interceptors.Interceptor {
  [$decodingInfo](configuration) {
    let configuration_dict = html_common.convertDartToNative_Dictionary(configuration);
    return js_util.promiseToFuture(html$.MediaCapabilitiesInfo, this.decodingInfo(configuration_dict));
  }
  [$encodingInfo](configuration) {
    let configuration_dict = html_common.convertDartToNative_Dictionary(configuration);
    return js_util.promiseToFuture(html$.MediaCapabilitiesInfo, this.encodingInfo(configuration_dict));
  }
};
dart.addTypeTests(html$.MediaCapabilities);
dart.addTypeCaches(html$.MediaCapabilities);
dart.setMethodSignature(html$.MediaCapabilities, () => ({
  __proto__: dart.getMethods(html$.MediaCapabilities.__proto__),
  [$decodingInfo]: dart.fnType(async.Future$(html$.MediaCapabilitiesInfo), [core.Map]),
  [$encodingInfo]: dart.fnType(async.Future$(html$.MediaCapabilitiesInfo), [core.Map])
}));
dart.setLibraryUri(html$.MediaCapabilities, L65);
dart.registerExtension("MediaCapabilities", html$.MediaCapabilities);
html$.MediaCapabilitiesInfo = class MediaCapabilitiesInfo extends _interceptors.Interceptor {
  get [$powerEfficient]() {
    return this.powerEfficient;
  }
  get [$smooth]() {
    return this.smooth;
  }
  get [$supported]() {
    return this.supported;
  }
};
dart.addTypeTests(html$.MediaCapabilitiesInfo);
dart.addTypeCaches(html$.MediaCapabilitiesInfo);
dart.setGetterSignature(html$.MediaCapabilitiesInfo, () => ({
  __proto__: dart.getGetters(html$.MediaCapabilitiesInfo.__proto__),
  [$powerEfficient]: core.bool,
  [$smooth]: core.bool,
  [$supported]: core.bool
}));
dart.setLibraryUri(html$.MediaCapabilitiesInfo, L65);
dart.registerExtension("MediaCapabilitiesInfo", html$.MediaCapabilitiesInfo);
html$.MediaDeviceInfo = class MediaDeviceInfo extends _interceptors.Interceptor {
  get [$deviceId]() {
    return this.deviceId;
  }
  get [$groupId]() {
    return this.groupId;
  }
  get [$kind]() {
    return this.kind;
  }
  get [$label]() {
    return this.label;
  }
};
dart.addTypeTests(html$.MediaDeviceInfo);
dart.addTypeCaches(html$.MediaDeviceInfo);
dart.setGetterSignature(html$.MediaDeviceInfo, () => ({
  __proto__: dart.getGetters(html$.MediaDeviceInfo.__proto__),
  [$deviceId]: core.String,
  [$groupId]: core.String,
  [$kind]: core.String,
  [$label]: core.String
}));
dart.setLibraryUri(html$.MediaDeviceInfo, L65);
dart.registerExtension("MediaDeviceInfo", html$.MediaDeviceInfo);
var _getSupportedConstraints_1 = dart.privateName(html$, "_getSupportedConstraints_1");
html$.MediaDevices = class MediaDevices extends html$.EventTarget {
  [$enumerateDevices]() {
    return js_util.promiseToFuture(core.List, this.enumerateDevices());
  }
  [$getSupportedConstraints]() {
    return html_common.convertNativeToDart_Dictionary(this[_getSupportedConstraints_1]());
  }
  [_getSupportedConstraints_1](...args) {
    return this.getSupportedConstraints.apply(this, args);
  }
};
dart.addTypeTests(html$.MediaDevices);
dart.addTypeCaches(html$.MediaDevices);
dart.setMethodSignature(html$.MediaDevices, () => ({
  __proto__: dart.getMethods(html$.MediaDevices.__proto__),
  [$enumerateDevices]: dart.fnType(async.Future$(core.List), []),
  [$getSupportedConstraints]: dart.fnType(core.Map, []),
  [_getSupportedConstraints_1]: dart.fnType(dart.dynamic, [])
}));
dart.setLibraryUri(html$.MediaDevices, L65);
dart.registerExtension("MediaDevices", html$.MediaDevices);
html$.MediaEncryptedEvent = class MediaEncryptedEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.MediaEncryptedEvent._create_1(type, eventInitDict_1);
    }
    return html$.MediaEncryptedEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new MediaEncryptedEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new MediaEncryptedEvent(type);
  }
  get [$initData]() {
    return this.initData;
  }
  get [$initDataType]() {
    return this.initDataType;
  }
};
dart.addTypeTests(html$.MediaEncryptedEvent);
dart.addTypeCaches(html$.MediaEncryptedEvent);
dart.setGetterSignature(html$.MediaEncryptedEvent, () => ({
  __proto__: dart.getGetters(html$.MediaEncryptedEvent.__proto__),
  [$initData]: typed_data.ByteBuffer,
  [$initDataType]: core.String
}));
dart.setLibraryUri(html$.MediaEncryptedEvent, L65);
dart.registerExtension("MediaEncryptedEvent", html$.MediaEncryptedEvent);
html$.MediaError = class MediaError extends _interceptors.Interceptor {
  get [$code]() {
    return this.code;
  }
  get [$message]() {
    return this.message;
  }
};
dart.addTypeTests(html$.MediaError);
dart.addTypeCaches(html$.MediaError);
dart.setGetterSignature(html$.MediaError, () => ({
  __proto__: dart.getGetters(html$.MediaError.__proto__),
  [$code]: core.int,
  [$message]: core.String
}));
dart.setLibraryUri(html$.MediaError, L65);
dart.defineLazy(html$.MediaError, {
  /*html$.MediaError.MEDIA_ERR_ABORTED*/get MEDIA_ERR_ABORTED() {
    return 1;
  },
  /*html$.MediaError.MEDIA_ERR_DECODE*/get MEDIA_ERR_DECODE() {
    return 3;
  },
  /*html$.MediaError.MEDIA_ERR_NETWORK*/get MEDIA_ERR_NETWORK() {
    return 2;
  },
  /*html$.MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED*/get MEDIA_ERR_SRC_NOT_SUPPORTED() {
    return 4;
  }
}, true);
dart.registerExtension("MediaError", html$.MediaError);
html$.MediaKeyMessageEvent = class MediaKeyMessageEvent$ extends html$.Event {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$.MediaKeyMessageEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new MediaKeyMessageEvent(type, eventInitDict);
  }
  get [$message]() {
    return this.message;
  }
  get [$messageType]() {
    return this.messageType;
  }
};
dart.addTypeTests(html$.MediaKeyMessageEvent);
dart.addTypeCaches(html$.MediaKeyMessageEvent);
dart.setGetterSignature(html$.MediaKeyMessageEvent, () => ({
  __proto__: dart.getGetters(html$.MediaKeyMessageEvent.__proto__),
  [$message]: typed_data.ByteBuffer,
  [$messageType]: core.String
}));
dart.setLibraryUri(html$.MediaKeyMessageEvent, L65);
dart.registerExtension("MediaKeyMessageEvent", html$.MediaKeyMessageEvent);
var _update$ = dart.privateName(html$, "_update");
html$.MediaKeySession = class MediaKeySession extends html$.EventTarget {
  get [$closed]() {
    return js_util.promiseToFuture(dart.void, this.closed);
  }
  get [$expiration]() {
    return this.expiration;
  }
  get [$keyStatuses]() {
    return this.keyStatuses;
  }
  get [$sessionId]() {
    return this.sessionId;
  }
  [$close]() {
    return js_util.promiseToFuture(dart.dynamic, this.close());
  }
  [$generateRequest](initDataType, initData) {
    return js_util.promiseToFuture(dart.dynamic, this.generateRequest(initDataType, initData));
  }
  [$load](sessionId) {
    return js_util.promiseToFuture(dart.dynamic, this.load(sessionId));
  }
  [$remove]() {
    return js_util.promiseToFuture(dart.dynamic, this.remove());
  }
  [_update$](...args) {
    return this.update.apply(this, args);
  }
  get [$onMessage]() {
    return html$.MediaKeySession.messageEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.MediaKeySession);
dart.addTypeCaches(html$.MediaKeySession);
dart.setMethodSignature(html$.MediaKeySession, () => ({
  __proto__: dart.getMethods(html$.MediaKeySession.__proto__),
  [$close]: dart.fnType(async.Future, []),
  [$generateRequest]: dart.fnType(async.Future, [core.String, dart.dynamic]),
  [$load]: dart.fnType(async.Future, [core.String]),
  [$remove]: dart.fnType(async.Future, []),
  [_update$]: dart.fnType(async.Future, [dart.dynamic])
}));
dart.setGetterSignature(html$.MediaKeySession, () => ({
  __proto__: dart.getGetters(html$.MediaKeySession.__proto__),
  [$closed]: async.Future$(dart.void),
  [$expiration]: core.num,
  [$keyStatuses]: html$.MediaKeyStatusMap,
  [$sessionId]: core.String,
  [$onMessage]: async.Stream$(html$.MessageEvent)
}));
dart.setLibraryUri(html$.MediaKeySession, L65);
dart.defineLazy(html$.MediaKeySession, {
  /*html$.MediaKeySession.messageEvent*/get messageEvent() {
    return C313 || CT.C313;
  }
}, true);
dart.registerExtension("MediaKeySession", html$.MediaKeySession);
html$.MediaKeyStatusMap = class MediaKeyStatusMap extends _interceptors.Interceptor {
  get [$size]() {
    return this.size;
  }
  [$get](...args) {
    return this.get.apply(this, args);
  }
  [$has](...args) {
    return this.has.apply(this, args);
  }
};
dart.addTypeTests(html$.MediaKeyStatusMap);
dart.addTypeCaches(html$.MediaKeyStatusMap);
dart.setMethodSignature(html$.MediaKeyStatusMap, () => ({
  __proto__: dart.getMethods(html$.MediaKeyStatusMap.__proto__),
  [$get]: dart.fnType(core.Object, [dart.dynamic]),
  [$has]: dart.fnType(core.bool, [dart.dynamic])
}));
dart.setGetterSignature(html$.MediaKeyStatusMap, () => ({
  __proto__: dart.getGetters(html$.MediaKeyStatusMap.__proto__),
  [$size]: core.int
}));
dart.setLibraryUri(html$.MediaKeyStatusMap, L65);
dart.registerExtension("MediaKeyStatusMap", html$.MediaKeyStatusMap);
var _getConfiguration_1 = dart.privateName(html$, "_getConfiguration_1");
html$.MediaKeySystemAccess = class MediaKeySystemAccess extends _interceptors.Interceptor {
  get [$keySystem]() {
    return this.keySystem;
  }
  [$createMediaKeys]() {
    return js_util.promiseToFuture(dart.dynamic, this.createMediaKeys());
  }
  [$getConfiguration]() {
    return html_common.convertNativeToDart_Dictionary(this[_getConfiguration_1]());
  }
  [_getConfiguration_1](...args) {
    return this.getConfiguration.apply(this, args);
  }
};
dart.addTypeTests(html$.MediaKeySystemAccess);
dart.addTypeCaches(html$.MediaKeySystemAccess);
dart.setMethodSignature(html$.MediaKeySystemAccess, () => ({
  __proto__: dart.getMethods(html$.MediaKeySystemAccess.__proto__),
  [$createMediaKeys]: dart.fnType(async.Future, []),
  [$getConfiguration]: dart.fnType(core.Map, []),
  [_getConfiguration_1]: dart.fnType(dart.dynamic, [])
}));
dart.setGetterSignature(html$.MediaKeySystemAccess, () => ({
  __proto__: dart.getGetters(html$.MediaKeySystemAccess.__proto__),
  [$keySystem]: core.String
}));
dart.setLibraryUri(html$.MediaKeySystemAccess, L65);
dart.registerExtension("MediaKeySystemAccess", html$.MediaKeySystemAccess);
var _createSession = dart.privateName(html$, "_createSession");
html$.MediaKeys = class MediaKeys extends _interceptors.Interceptor {
  [_createSession](...args) {
    return this.createSession.apply(this, args);
  }
  [$getStatusForPolicy](policy) {
    return js_util.promiseToFuture(dart.dynamic, this.getStatusForPolicy(policy));
  }
  [$setServerCertificate](serverCertificate) {
    return js_util.promiseToFuture(dart.dynamic, this.setServerCertificate(serverCertificate));
  }
};
dart.addTypeTests(html$.MediaKeys);
dart.addTypeCaches(html$.MediaKeys);
dart.setMethodSignature(html$.MediaKeys, () => ({
  __proto__: dart.getMethods(html$.MediaKeys.__proto__),
  [_createSession]: dart.fnType(html$.MediaKeySession, [], [core.String]),
  [$getStatusForPolicy]: dart.fnType(async.Future, [html$.MediaKeysPolicy]),
  [$setServerCertificate]: dart.fnType(async.Future, [dart.dynamic])
}));
dart.setLibraryUri(html$.MediaKeys, L65);
dart.registerExtension("MediaKeys", html$.MediaKeys);
html$.MediaKeysPolicy = class MediaKeysPolicy$ extends _interceptors.Interceptor {
  static new(init) {
    let init_1 = html_common.convertDartToNative_Dictionary(init);
    return html$.MediaKeysPolicy._create_1(init_1);
  }
  static _create_1(init) {
    return new MediaKeysPolicy(init);
  }
  get [$minHdcpVersion]() {
    return this.minHdcpVersion;
  }
};
dart.addTypeTests(html$.MediaKeysPolicy);
dart.addTypeCaches(html$.MediaKeysPolicy);
dart.setGetterSignature(html$.MediaKeysPolicy, () => ({
  __proto__: dart.getGetters(html$.MediaKeysPolicy.__proto__),
  [$minHdcpVersion]: core.String
}));
dart.setLibraryUri(html$.MediaKeysPolicy, L65);
dart.registerExtension("MediaKeysPolicy", html$.MediaKeysPolicy);
html$.MediaList = class MediaList extends _interceptors.Interceptor {
  get [$length]() {
    return this.length;
  }
  get [$mediaText]() {
    return this.mediaText;
  }
  set [$mediaText](value) {
    this.mediaText = value;
  }
  [$appendMedium](...args) {
    return this.appendMedium.apply(this, args);
  }
  [$deleteMedium](...args) {
    return this.deleteMedium.apply(this, args);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
};
dart.addTypeTests(html$.MediaList);
dart.addTypeCaches(html$.MediaList);
dart.setMethodSignature(html$.MediaList, () => ({
  __proto__: dart.getMethods(html$.MediaList.__proto__),
  [$appendMedium]: dart.fnType(dart.void, [core.String]),
  [$deleteMedium]: dart.fnType(dart.void, [core.String]),
  [$item]: dart.fnType(core.String, [core.int])
}));
dart.setGetterSignature(html$.MediaList, () => ({
  __proto__: dart.getGetters(html$.MediaList.__proto__),
  [$length]: core.int,
  [$mediaText]: core.String
}));
dart.setSetterSignature(html$.MediaList, () => ({
  __proto__: dart.getSetters(html$.MediaList.__proto__),
  [$mediaText]: core.String
}));
dart.setLibraryUri(html$.MediaList, L65);
dart.registerExtension("MediaList", html$.MediaList);
html$.MediaMetadata = class MediaMetadata$ extends _interceptors.Interceptor {
  static new(metadata = null) {
    if (metadata != null) {
      let metadata_1 = html_common.convertDartToNative_Dictionary(metadata);
      return html$.MediaMetadata._create_1(metadata_1);
    }
    return html$.MediaMetadata._create_2();
  }
  static _create_1(metadata) {
    return new MediaMetadata(metadata);
  }
  static _create_2() {
    return new MediaMetadata();
  }
  get [$album]() {
    return this.album;
  }
  set [$album](value) {
    this.album = value;
  }
  get [$artist]() {
    return this.artist;
  }
  set [$artist](value) {
    this.artist = value;
  }
  get [$artwork]() {
    return this.artwork;
  }
  set [$artwork](value) {
    this.artwork = value;
  }
  get [$title]() {
    return this.title;
  }
  set [$title](value) {
    this.title = value;
  }
};
dart.addTypeTests(html$.MediaMetadata);
dart.addTypeCaches(html$.MediaMetadata);
dart.setGetterSignature(html$.MediaMetadata, () => ({
  __proto__: dart.getGetters(html$.MediaMetadata.__proto__),
  [$album]: core.String,
  [$artist]: core.String,
  [$artwork]: core.List,
  [$title]: core.String
}));
dart.setSetterSignature(html$.MediaMetadata, () => ({
  __proto__: dart.getSetters(html$.MediaMetadata.__proto__),
  [$album]: core.String,
  [$artist]: core.String,
  [$artwork]: core.List,
  [$title]: core.String
}));
dart.setLibraryUri(html$.MediaMetadata, L65);
dart.registerExtension("MediaMetadata", html$.MediaMetadata);
html$.MediaQueryList = class MediaQueryList extends html$.EventTarget {
  get [$matches]() {
    return this.matches;
  }
  get [$media]() {
    return this.media;
  }
  [$addListener](...args) {
    return this.addListener.apply(this, args);
  }
  [$removeListener](...args) {
    return this.removeListener.apply(this, args);
  }
  get [$onChange]() {
    return html$.MediaQueryList.changeEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.MediaQueryList);
dart.addTypeCaches(html$.MediaQueryList);
dart.setMethodSignature(html$.MediaQueryList, () => ({
  __proto__: dart.getMethods(html$.MediaQueryList.__proto__),
  [$addListener]: dart.fnType(dart.void, [dart.fnType(dart.dynamic, [html$.Event])]),
  [$removeListener]: dart.fnType(dart.void, [dart.fnType(dart.dynamic, [html$.Event])])
}));
dart.setGetterSignature(html$.MediaQueryList, () => ({
  __proto__: dart.getGetters(html$.MediaQueryList.__proto__),
  [$matches]: core.bool,
  [$media]: core.String,
  [$onChange]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.MediaQueryList, L65);
dart.defineLazy(html$.MediaQueryList, {
  /*html$.MediaQueryList.changeEvent*/get changeEvent() {
    return C237 || CT.C237;
  }
}, true);
dart.registerExtension("MediaQueryList", html$.MediaQueryList);
html$.MediaQueryListEvent = class MediaQueryListEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.MediaQueryListEvent._create_1(type, eventInitDict_1);
    }
    return html$.MediaQueryListEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new MediaQueryListEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new MediaQueryListEvent(type);
  }
  get [$matches]() {
    return this.matches;
  }
  get [$media]() {
    return this.media;
  }
};
dart.addTypeTests(html$.MediaQueryListEvent);
dart.addTypeCaches(html$.MediaQueryListEvent);
dart.setGetterSignature(html$.MediaQueryListEvent, () => ({
  __proto__: dart.getGetters(html$.MediaQueryListEvent.__proto__),
  [$matches]: core.bool,
  [$media]: core.String
}));
dart.setLibraryUri(html$.MediaQueryListEvent, L65);
dart.registerExtension("MediaQueryListEvent", html$.MediaQueryListEvent);
html$.MediaRecorder = class MediaRecorder$ extends html$.EventTarget {
  static new(stream, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return html$.MediaRecorder._create_1(stream, options_1);
    }
    return html$.MediaRecorder._create_2(stream);
  }
  static _create_1(stream, options) {
    return new MediaRecorder(stream, options);
  }
  static _create_2(stream) {
    return new MediaRecorder(stream);
  }
  get [$audioBitsPerSecond]() {
    return this.audioBitsPerSecond;
  }
  get [$mimeType]() {
    return this.mimeType;
  }
  get [$state]() {
    return this.state;
  }
  get [$stream]() {
    return this.stream;
  }
  get [$videoBitsPerSecond]() {
    return this.videoBitsPerSecond;
  }
  [$pause](...args) {
    return this.pause.apply(this, args);
  }
  [$requestData](...args) {
    return this.requestData.apply(this, args);
  }
  [$resume](...args) {
    return this.resume.apply(this, args);
  }
  [$start](...args) {
    return this.start.apply(this, args);
  }
  [$stop](...args) {
    return this.stop.apply(this, args);
  }
  get [$onError]() {
    return html$.MediaRecorder.errorEvent.forTarget(this);
  }
  get [$onPause]() {
    return html$.MediaRecorder.pauseEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.MediaRecorder);
dart.addTypeCaches(html$.MediaRecorder);
dart.setMethodSignature(html$.MediaRecorder, () => ({
  __proto__: dart.getMethods(html$.MediaRecorder.__proto__),
  [$pause]: dart.fnType(dart.void, []),
  [$requestData]: dart.fnType(dart.void, []),
  [$resume]: dart.fnType(dart.void, []),
  [$start]: dart.fnType(dart.void, [], [core.int]),
  [$stop]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.MediaRecorder, () => ({
  __proto__: dart.getGetters(html$.MediaRecorder.__proto__),
  [$audioBitsPerSecond]: core.int,
  [$mimeType]: core.String,
  [$state]: core.String,
  [$stream]: html$.MediaStream,
  [$videoBitsPerSecond]: core.int,
  [$onError]: async.Stream$(html$.Event),
  [$onPause]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.MediaRecorder, L65);
dart.defineLazy(html$.MediaRecorder, {
  /*html$.MediaRecorder.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  },
  /*html$.MediaRecorder.pauseEvent*/get pauseEvent() {
    return C270 || CT.C270;
  }
}, true);
dart.registerExtension("MediaRecorder", html$.MediaRecorder);
html$.MediaSession = class MediaSession extends _interceptors.Interceptor {
  get [$metadata]() {
    return this.metadata;
  }
  set [$metadata](value) {
    this.metadata = value;
  }
  get [$playbackState]() {
    return this.playbackState;
  }
  set [$playbackState](value) {
    this.playbackState = value;
  }
  [$setActionHandler](...args) {
    return this.setActionHandler.apply(this, args);
  }
};
dart.addTypeTests(html$.MediaSession);
dart.addTypeCaches(html$.MediaSession);
dart.setMethodSignature(html$.MediaSession, () => ({
  __proto__: dart.getMethods(html$.MediaSession.__proto__),
  [$setActionHandler]: dart.fnType(dart.void, [core.String, dart.fnType(dart.void, [])])
}));
dart.setGetterSignature(html$.MediaSession, () => ({
  __proto__: dart.getGetters(html$.MediaSession.__proto__),
  [$metadata]: html$.MediaMetadata,
  [$playbackState]: core.String
}));
dart.setSetterSignature(html$.MediaSession, () => ({
  __proto__: dart.getSetters(html$.MediaSession.__proto__),
  [$metadata]: html$.MediaMetadata,
  [$playbackState]: core.String
}));
dart.setLibraryUri(html$.MediaSession, L65);
dart.registerExtension("MediaSession", html$.MediaSession);
html$.MediaSettingsRange = class MediaSettingsRange extends _interceptors.Interceptor {
  get [$max]() {
    return this.max;
  }
  get [$min]() {
    return this.min;
  }
  get [$step]() {
    return this.step;
  }
};
dart.addTypeTests(html$.MediaSettingsRange);
dart.addTypeCaches(html$.MediaSettingsRange);
dart.setGetterSignature(html$.MediaSettingsRange, () => ({
  __proto__: dart.getGetters(html$.MediaSettingsRange.__proto__),
  [$max]: core.num,
  [$min]: core.num,
  [$step]: core.num
}));
dart.setLibraryUri(html$.MediaSettingsRange, L65);
dart.registerExtension("MediaSettingsRange", html$.MediaSettingsRange);
html$.MediaSource = class MediaSource$ extends html$.EventTarget {
  static new() {
    return html$.MediaSource._create_1();
  }
  static _create_1() {
    return new MediaSource();
  }
  static get supported() {
    return !!window.MediaSource;
  }
  get [$activeSourceBuffers]() {
    return this.activeSourceBuffers;
  }
  get [$duration]() {
    return this.duration;
  }
  set [$duration](value) {
    this.duration = value;
  }
  get [$readyState]() {
    return this.readyState;
  }
  get [$sourceBuffers]() {
    return this.sourceBuffers;
  }
  [$addSourceBuffer](...args) {
    return this.addSourceBuffer.apply(this, args);
  }
  [$clearLiveSeekableRange](...args) {
    return this.clearLiveSeekableRange.apply(this, args);
  }
  [$endOfStream](...args) {
    return this.endOfStream.apply(this, args);
  }
  [$removeSourceBuffer](...args) {
    return this.removeSourceBuffer.apply(this, args);
  }
  [$setLiveSeekableRange](...args) {
    return this.setLiveSeekableRange.apply(this, args);
  }
};
dart.addTypeTests(html$.MediaSource);
dart.addTypeCaches(html$.MediaSource);
dart.setMethodSignature(html$.MediaSource, () => ({
  __proto__: dart.getMethods(html$.MediaSource.__proto__),
  [$addSourceBuffer]: dart.fnType(html$.SourceBuffer, [core.String]),
  [$clearLiveSeekableRange]: dart.fnType(dart.void, []),
  [$endOfStream]: dart.fnType(dart.void, [], [core.String]),
  [$removeSourceBuffer]: dart.fnType(dart.void, [html$.SourceBuffer]),
  [$setLiveSeekableRange]: dart.fnType(dart.void, [core.num, core.num])
}));
dart.setGetterSignature(html$.MediaSource, () => ({
  __proto__: dart.getGetters(html$.MediaSource.__proto__),
  [$activeSourceBuffers]: html$.SourceBufferList,
  [$duration]: core.num,
  [$readyState]: core.String,
  [$sourceBuffers]: html$.SourceBufferList
}));
dart.setSetterSignature(html$.MediaSource, () => ({
  __proto__: dart.getSetters(html$.MediaSource.__proto__),
  [$duration]: core.num
}));
dart.setLibraryUri(html$.MediaSource, L65);
dart.registerExtension("MediaSource", html$.MediaSource);
var C347;
var C348;
html$.MediaStream = class MediaStream$ extends html$.EventTarget {
  static new(stream_OR_tracks = null) {
    if (stream_OR_tracks == null) {
      return html$.MediaStream._create_1();
    }
    if (html$.MediaStream.is(stream_OR_tracks)) {
      return html$.MediaStream._create_2(stream_OR_tracks);
    }
    if (ListOfMediaStreamTrackL().is(stream_OR_tracks)) {
      return html$.MediaStream._create_3(stream_OR_tracks);
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  static _create_1() {
    return new MediaStream();
  }
  static _create_2(stream_OR_tracks) {
    return new MediaStream(stream_OR_tracks);
  }
  static _create_3(stream_OR_tracks) {
    return new MediaStream(stream_OR_tracks);
  }
  get [$active]() {
    return this.active;
  }
  get [$id]() {
    return this.id;
  }
  [$addTrack](...args) {
    return this.addTrack.apply(this, args);
  }
  [$clone](...args) {
    return this.clone.apply(this, args);
  }
  [$getAudioTracks](...args) {
    return this.getAudioTracks.apply(this, args);
  }
  [$getTrackById](...args) {
    return this.getTrackById.apply(this, args);
  }
  [$getTracks](...args) {
    return this.getTracks.apply(this, args);
  }
  [$getVideoTracks](...args) {
    return this.getVideoTracks.apply(this, args);
  }
  [$removeTrack](...args) {
    return this.removeTrack.apply(this, args);
  }
  get [$onAddTrack]() {
    return html$.MediaStream.addTrackEvent.forTarget(this);
  }
  get [$onRemoveTrack]() {
    return html$.MediaStream.removeTrackEvent.forTarget(this);
  }
  static get supported() {
    return !!(html$.window.navigator.getUserMedia || html$.window.navigator.webkitGetUserMedia || html$.window.navigator.mozGetUserMedia || html$.window.navigator.msGetUserMedia);
  }
};
dart.addTypeTests(html$.MediaStream);
dart.addTypeCaches(html$.MediaStream);
dart.setMethodSignature(html$.MediaStream, () => ({
  __proto__: dart.getMethods(html$.MediaStream.__proto__),
  [$addTrack]: dart.fnType(dart.void, [html$.MediaStreamTrack]),
  [$clone]: dart.fnType(html$.MediaStream, []),
  [$getAudioTracks]: dart.fnType(core.List$(html$.MediaStreamTrack), []),
  [$getTrackById]: dart.fnType(html$.MediaStreamTrack, [core.String]),
  [$getTracks]: dart.fnType(core.List$(html$.MediaStreamTrack), []),
  [$getVideoTracks]: dart.fnType(core.List$(html$.MediaStreamTrack), []),
  [$removeTrack]: dart.fnType(dart.void, [html$.MediaStreamTrack])
}));
dart.setGetterSignature(html$.MediaStream, () => ({
  __proto__: dart.getGetters(html$.MediaStream.__proto__),
  [$active]: core.bool,
  [$id]: core.String,
  [$onAddTrack]: async.Stream$(html$.Event),
  [$onRemoveTrack]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.MediaStream, L65);
dart.defineLazy(html$.MediaStream, {
  /*html$.MediaStream.addTrackEvent*/get addTrackEvent() {
    return C347 || CT.C347;
  },
  /*html$.MediaStream.removeTrackEvent*/get removeTrackEvent() {
    return C348 || CT.C348;
  }
}, true);
dart.registerExtension("MediaStream", html$.MediaStream);
html$.MediaStreamEvent = class MediaStreamEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.MediaStreamEvent._create_1(type, eventInitDict_1);
    }
    return html$.MediaStreamEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new MediaStreamEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new MediaStreamEvent(type);
  }
  static get supported() {
    return html_common.Device.isEventTypeSupported("MediaStreamEvent");
  }
  get [$stream]() {
    return this.stream;
  }
};
dart.addTypeTests(html$.MediaStreamEvent);
dart.addTypeCaches(html$.MediaStreamEvent);
dart.setGetterSignature(html$.MediaStreamEvent, () => ({
  __proto__: dart.getGetters(html$.MediaStreamEvent.__proto__),
  [$stream]: html$.MediaStream
}));
dart.setLibraryUri(html$.MediaStreamEvent, L65);
dart.registerExtension("MediaStreamEvent", html$.MediaStreamEvent);
html$.MediaStreamTrackEvent = class MediaStreamTrackEvent$ extends html$.Event {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$.MediaStreamTrackEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new MediaStreamTrackEvent(type, eventInitDict);
  }
  static get supported() {
    return html_common.Device.isEventTypeSupported("MediaStreamTrackEvent");
  }
  get [$track]() {
    return this.track;
  }
};
dart.addTypeTests(html$.MediaStreamTrackEvent);
dart.addTypeCaches(html$.MediaStreamTrackEvent);
dart.setGetterSignature(html$.MediaStreamTrackEvent, () => ({
  __proto__: dart.getGetters(html$.MediaStreamTrackEvent.__proto__),
  [$track]: html$.MediaStreamTrack
}));
dart.setLibraryUri(html$.MediaStreamTrackEvent, L65);
dart.registerExtension("MediaStreamTrackEvent", html$.MediaStreamTrackEvent);
html$.MemoryInfo = class MemoryInfo extends _interceptors.Interceptor {
  get [$jsHeapSizeLimit]() {
    return this.jsHeapSizeLimit;
  }
  get [$totalJSHeapSize]() {
    return this.totalJSHeapSize;
  }
  get [$usedJSHeapSize]() {
    return this.usedJSHeapSize;
  }
};
dart.addTypeTests(html$.MemoryInfo);
dart.addTypeCaches(html$.MemoryInfo);
dart.setGetterSignature(html$.MemoryInfo, () => ({
  __proto__: dart.getGetters(html$.MemoryInfo.__proto__),
  [$jsHeapSizeLimit]: core.int,
  [$totalJSHeapSize]: core.int,
  [$usedJSHeapSize]: core.int
}));
dart.setLibraryUri(html$.MemoryInfo, L65);
dart.registerExtension("MemoryInfo", html$.MemoryInfo);
html$.MenuElement = class MenuElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("menu");
  }
};
(html$.MenuElement.created = function() {
  html$.MenuElement.__proto__.created.call(this);
  ;
}).prototype = html$.MenuElement.prototype;
dart.addTypeTests(html$.MenuElement);
dart.addTypeCaches(html$.MenuElement);
dart.setLibraryUri(html$.MenuElement, L65);
dart.registerExtension("HTMLMenuElement", html$.MenuElement);
html$.MessageChannel = class MessageChannel$ extends _interceptors.Interceptor {
  static new() {
    return html$.MessageChannel._create_1();
  }
  static _create_1() {
    return new MessageChannel();
  }
  get [$port1]() {
    return this.port1;
  }
  get [$port2]() {
    return this.port2;
  }
};
dart.addTypeTests(html$.MessageChannel);
dart.addTypeCaches(html$.MessageChannel);
dart.setGetterSignature(html$.MessageChannel, () => ({
  __proto__: dart.getGetters(html$.MessageChannel.__proto__),
  [$port1]: html$.MessagePort,
  [$port2]: html$.MessagePort
}));
dart.setLibraryUri(html$.MessageChannel, L65);
dart.registerExtension("MessageChannel", html$.MessageChannel);
var C349;
var _initMessageEvent = dart.privateName(html$, "_initMessageEvent");
var _get_data = dart.privateName(html$, "_get_data");
var _get_source = dart.privateName(html$, "_get_source");
var _initMessageEvent_1 = dart.privateName(html$, "_initMessageEvent_1");
html$.MessageEvent = class MessageEvent$ extends html$.Event {
  static new(type, opts) {
    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
    let data = opts && 'data' in opts ? opts.data : null;
    let origin = opts && 'origin' in opts ? opts.origin : null;
    let lastEventId = opts && 'lastEventId' in opts ? opts.lastEventId : null;
    let source = opts && 'source' in opts ? opts.source : null;
    let messagePorts = opts && 'messagePorts' in opts ? opts.messagePorts : C349 || CT.C349;
    if (source == null) {
      source = html$.window;
    }
    if (!dart.test(html_common.Device.isIE)) {
      return new MessageEvent(type, {bubbles: canBubble, cancelable: cancelable, data: data, origin: origin, lastEventId: lastEventId, source: source, ports: messagePorts});
    }
    let event = html$.MessageEvent.as(html$.document[_createEvent]("MessageEvent"));
    event[_initMessageEvent](type, canBubble, cancelable, data, origin, lastEventId, source, messagePorts);
    return event;
  }
  get [$data]() {
    return html_common.convertNativeToDart_SerializedScriptValue(this[_get_data]);
  }
  get [_get_data]() {
    return this.data;
  }
  static __(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.MessageEvent._create_1(type, eventInitDict_1);
    }
    return html$.MessageEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new MessageEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new MessageEvent(type);
  }
  get [$lastEventId]() {
    return this.lastEventId;
  }
  get [$origin]() {
    return this.origin;
  }
  get [$ports]() {
    return this.ports;
  }
  get [$source]() {
    return html$._convertNativeToDart_EventTarget(this[_get_source]);
  }
  get [_get_source]() {
    return this.source;
  }
  get [$suborigin]() {
    return this.suborigin;
  }
  [_initMessageEvent](typeArg, canBubbleArg, cancelableArg, dataArg, originArg, lastEventIdArg, sourceArg, portsArg) {
    let sourceArg_1 = html$._convertDartToNative_EventTarget(sourceArg);
    this[_initMessageEvent_1](typeArg, canBubbleArg, cancelableArg, dataArg, originArg, lastEventIdArg, sourceArg_1, portsArg);
    return;
  }
  [_initMessageEvent_1](...args) {
    return this.initMessageEvent.apply(this, args);
  }
};
dart.addTypeTests(html$.MessageEvent);
dart.addTypeCaches(html$.MessageEvent);
dart.setMethodSignature(html$.MessageEvent, () => ({
  __proto__: dart.getMethods(html$.MessageEvent.__proto__),
  [_initMessageEvent]: dart.fnType(dart.void, [core.String, core.bool, core.bool, core.Object, core.String, core.String, html$.EventTarget, core.List$(html$.MessagePort)]),
  [_initMessageEvent_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.List$(html$.MessagePort)])
}));
dart.setGetterSignature(html$.MessageEvent, () => ({
  __proto__: dart.getGetters(html$.MessageEvent.__proto__),
  [$data]: dart.dynamic,
  [_get_data]: dart.dynamic,
  [$lastEventId]: core.String,
  [$origin]: core.String,
  [$ports]: core.List$(html$.MessagePort),
  [$source]: html$.EventTarget,
  [_get_source]: dart.dynamic,
  [$suborigin]: core.String
}));
dart.setLibraryUri(html$.MessageEvent, L65);
dart.registerExtension("MessageEvent", html$.MessageEvent);
var _start$2 = dart.privateName(html$, "_start");
html$.MessagePort = class MessagePort extends html$.EventTarget {
  [$addEventListener](type, listener, useCapture = null) {
    if (type === "message") {
      this[_start$2]();
    }
    super[$addEventListener](type, listener, useCapture);
  }
  [$close](...args) {
    return this.close.apply(this, args);
  }
  [$postMessage](message, transfer = null) {
    if (transfer != null) {
      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
      this[_postMessage_1](message_1, transfer);
      return;
    }
    let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
    this[_postMessage_2](message_1);
    return;
  }
  [_postMessage_1](...args) {
    return this.postMessage.apply(this, args);
  }
  [_postMessage_2](...args) {
    return this.postMessage.apply(this, args);
  }
  [_start$2](...args) {
    return this.start.apply(this, args);
  }
  get [$onMessage]() {
    return html$.MessagePort.messageEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.MessagePort);
dart.addTypeCaches(html$.MessagePort);
dart.setMethodSignature(html$.MessagePort, () => ({
  __proto__: dart.getMethods(html$.MessagePort.__proto__),
  [$close]: dart.fnType(dart.void, []),
  [$postMessage]: dart.fnType(dart.void, [dart.dynamic], [core.List$(core.Object)]),
  [_postMessage_1]: dart.fnType(dart.void, [dart.dynamic, core.List$(core.Object)]),
  [_postMessage_2]: dart.fnType(dart.void, [dart.dynamic]),
  [_start$2]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.MessagePort, () => ({
  __proto__: dart.getGetters(html$.MessagePort.__proto__),
  [$onMessage]: async.Stream$(html$.MessageEvent)
}));
dart.setLibraryUri(html$.MessagePort, L65);
dart.defineLazy(html$.MessagePort, {
  /*html$.MessagePort.messageEvent*/get messageEvent() {
    return C313 || CT.C313;
  }
}, true);
dart.registerExtension("MessagePort", html$.MessagePort);
html$.MetaElement = class MetaElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("meta");
  }
  get [$content]() {
    return this.content;
  }
  set [$content](value) {
    this.content = value;
  }
  get [$httpEquiv]() {
    return this.httpEquiv;
  }
  set [$httpEquiv](value) {
    this.httpEquiv = value;
  }
  get [$name]() {
    return this.name;
  }
  set [$name](value) {
    this.name = value;
  }
};
(html$.MetaElement.created = function() {
  html$.MetaElement.__proto__.created.call(this);
  ;
}).prototype = html$.MetaElement.prototype;
dart.addTypeTests(html$.MetaElement);
dart.addTypeCaches(html$.MetaElement);
dart.setGetterSignature(html$.MetaElement, () => ({
  __proto__: dart.getGetters(html$.MetaElement.__proto__),
  [$content]: core.String,
  [$httpEquiv]: core.String,
  [$name]: core.String
}));
dart.setSetterSignature(html$.MetaElement, () => ({
  __proto__: dart.getSetters(html$.MetaElement.__proto__),
  [$content]: core.String,
  [$httpEquiv]: core.String,
  [$name]: core.String
}));
dart.setLibraryUri(html$.MetaElement, L65);
dart.registerExtension("HTMLMetaElement", html$.MetaElement);
var _get_modificationTime = dart.privateName(html$, "_get_modificationTime");
html$.Metadata = class Metadata extends _interceptors.Interceptor {
  get [$modificationTime]() {
    return html_common.convertNativeToDart_DateTime(this[_get_modificationTime]);
  }
  get [_get_modificationTime]() {
    return this.modificationTime;
  }
  get [$size]() {
    return this.size;
  }
};
dart.addTypeTests(html$.Metadata);
dart.addTypeCaches(html$.Metadata);
dart.setGetterSignature(html$.Metadata, () => ({
  __proto__: dart.getGetters(html$.Metadata.__proto__),
  [$modificationTime]: core.DateTime,
  [_get_modificationTime]: dart.dynamic,
  [$size]: core.int
}));
dart.setLibraryUri(html$.Metadata, L65);
dart.registerExtension("Metadata", html$.Metadata);
html$.MeterElement = class MeterElement extends html$.HtmlElement {
  static new() {
    return html$.MeterElement.as(html$.document[$createElement]("meter"));
  }
  static get supported() {
    return html$.Element.isTagSupported("meter");
  }
  get [$high]() {
    return this.high;
  }
  set [$high](value) {
    this.high = value;
  }
  get [$labels]() {
    return this.labels;
  }
  get [$low]() {
    return this.low;
  }
  set [$low](value) {
    this.low = value;
  }
  get [$max]() {
    return this.max;
  }
  set [$max](value) {
    this.max = value;
  }
  get [$min]() {
    return this.min;
  }
  set [$min](value) {
    this.min = value;
  }
  get [$optimum]() {
    return this.optimum;
  }
  set [$optimum](value) {
    this.optimum = value;
  }
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
};
(html$.MeterElement.created = function() {
  html$.MeterElement.__proto__.created.call(this);
  ;
}).prototype = html$.MeterElement.prototype;
dart.addTypeTests(html$.MeterElement);
dart.addTypeCaches(html$.MeterElement);
dart.setGetterSignature(html$.MeterElement, () => ({
  __proto__: dart.getGetters(html$.MeterElement.__proto__),
  [$high]: core.num,
  [$labels]: core.List$(html$.Node),
  [$low]: core.num,
  [$max]: core.num,
  [$min]: core.num,
  [$optimum]: core.num,
  [$value]: core.num
}));
dart.setSetterSignature(html$.MeterElement, () => ({
  __proto__: dart.getSetters(html$.MeterElement.__proto__),
  [$high]: core.num,
  [$low]: core.num,
  [$max]: core.num,
  [$min]: core.num,
  [$optimum]: core.num,
  [$value]: core.num
}));
dart.setLibraryUri(html$.MeterElement, L65);
dart.registerExtension("HTMLMeterElement", html$.MeterElement);
html$.MidiAccess = class MidiAccess extends html$.EventTarget {
  get [$inputs]() {
    return this.inputs;
  }
  get [$outputs]() {
    return this.outputs;
  }
  get [$sysexEnabled]() {
    return this.sysexEnabled;
  }
};
dart.addTypeTests(html$.MidiAccess);
dart.addTypeCaches(html$.MidiAccess);
dart.setGetterSignature(html$.MidiAccess, () => ({
  __proto__: dart.getGetters(html$.MidiAccess.__proto__),
  [$inputs]: html$.MidiInputMap,
  [$outputs]: html$.MidiOutputMap,
  [$sysexEnabled]: core.bool
}));
dart.setLibraryUri(html$.MidiAccess, L65);
dart.registerExtension("MIDIAccess", html$.MidiAccess);
html$.MidiConnectionEvent = class MidiConnectionEvent extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.MidiConnectionEvent._create_1(type, eventInitDict_1);
    }
    return html$.MidiConnectionEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new MIDIConnectionEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new MIDIConnectionEvent(type);
  }
  get [$port]() {
    return this.port;
  }
};
dart.addTypeTests(html$.MidiConnectionEvent);
dart.addTypeCaches(html$.MidiConnectionEvent);
dart.setGetterSignature(html$.MidiConnectionEvent, () => ({
  __proto__: dart.getGetters(html$.MidiConnectionEvent.__proto__),
  [$port]: html$.MidiPort
}));
dart.setLibraryUri(html$.MidiConnectionEvent, L65);
dart.registerExtension("MIDIConnectionEvent", html$.MidiConnectionEvent);
html$.MidiPort = class MidiPort extends html$.EventTarget {
  get [$connection]() {
    return this.connection;
  }
  get [$id]() {
    return this.id;
  }
  get [$manufacturer]() {
    return this.manufacturer;
  }
  get [$name]() {
    return this.name;
  }
  get [$state]() {
    return this.state;
  }
  get [$type]() {
    return this.type;
  }
  get [$version]() {
    return this.version;
  }
  [$close]() {
    return js_util.promiseToFuture(dart.dynamic, this.close());
  }
  [$open]() {
    return js_util.promiseToFuture(dart.dynamic, this.open());
  }
};
dart.addTypeTests(html$.MidiPort);
dart.addTypeCaches(html$.MidiPort);
dart.setMethodSignature(html$.MidiPort, () => ({
  __proto__: dart.getMethods(html$.MidiPort.__proto__),
  [$close]: dart.fnType(async.Future, []),
  [$open]: dart.fnType(async.Future, [])
}));
dart.setGetterSignature(html$.MidiPort, () => ({
  __proto__: dart.getGetters(html$.MidiPort.__proto__),
  [$connection]: core.String,
  [$id]: core.String,
  [$manufacturer]: core.String,
  [$name]: core.String,
  [$state]: core.String,
  [$type]: core.String,
  [$version]: core.String
}));
dart.setLibraryUri(html$.MidiPort, L65);
dart.registerExtension("MIDIPort", html$.MidiPort);
var C350;
html$.MidiInput = class MidiInput extends html$.MidiPort {
  get [$onMidiMessage]() {
    return html$.MidiInput.midiMessageEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.MidiInput);
dart.addTypeCaches(html$.MidiInput);
dart.setGetterSignature(html$.MidiInput, () => ({
  __proto__: dart.getGetters(html$.MidiInput.__proto__),
  [$onMidiMessage]: async.Stream$(html$.MidiMessageEvent)
}));
dart.setLibraryUri(html$.MidiInput, L65);
dart.defineLazy(html$.MidiInput, {
  /*html$.MidiInput.midiMessageEvent*/get midiMessageEvent() {
    return C350 || CT.C350;
  }
}, true);
dart.registerExtension("MIDIInput", html$.MidiInput);
var _getItem = dart.privateName(html$, "_getItem");
const Interceptor_MapMixin$36 = class Interceptor_MapMixin extends _interceptors.Interceptor {};
(Interceptor_MapMixin$36.new = function() {
  Interceptor_MapMixin$36.__proto__.new.call(this);
}).prototype = Interceptor_MapMixin$36.prototype;
dart.applyMixin(Interceptor_MapMixin$36, collection.MapMixin$(core.String, dart.dynamic));
html$.MidiInputMap = class MidiInputMap extends Interceptor_MapMixin$36 {
  [_getItem](key) {
    return html_common.convertNativeToDart_Dictionary(this.get(key));
  }
  [$addAll](other) {
    MapOfStringL$dynamic().as(other);
    dart.throw(new core.UnsupportedError.new("Not supported"));
  }
  [$containsValue](value) {
    return this[$values][$any](dart.fn(e => dart.equals(e, value), MapLToboolL()));
  }
  [$containsKey](key) {
    return this[_getItem](core.String.as(key)) != null;
  }
  [$_get](key) {
    return this[_getItem](core.String.as(key));
  }
  [$forEach](f) {
    let entries = this.entries();
    while (true) {
      let entry = entries.next();
      if (entry.done) return;
      f(entry.value[0], html_common.convertNativeToDart_Dictionary(entry.value[1]));
    }
  }
  get [$keys]() {
    let keys = JSArrayOfStringL().of([]);
    this[$forEach](dart.fn((k, v) => keys[$add](k), StringLAnddynamicTovoid()));
    return keys;
  }
  get [$values]() {
    let values = JSArrayOfMapL().of([]);
    this[$forEach](dart.fn((k, v) => values[$add](core.Map.as(v)), StringLAnddynamicTovoid()));
    return values;
  }
  get [$length]() {
    return this.size;
  }
  get [$isEmpty]() {
    return this[$length] === 0;
  }
  get [$isNotEmpty]() {
    return !dart.test(this[$isEmpty]);
  }
  [$_set](key, value$) {
    let value = value$;
    core.String.as(key);
    dart.throw(new core.UnsupportedError.new("Not supported"));
    return value$;
  }
  [$putIfAbsent](key, ifAbsent) {
    core.String.as(key);
    VoidToLdynamic().as(ifAbsent);
    dart.throw(new core.UnsupportedError.new("Not supported"));
  }
  [$remove](key) {
    dart.throw(new core.UnsupportedError.new("Not supported"));
  }
  [$clear]() {
    dart.throw(new core.UnsupportedError.new("Not supported"));
  }
};
dart.addTypeTests(html$.MidiInputMap);
dart.addTypeCaches(html$.MidiInputMap);
dart.setMethodSignature(html$.MidiInputMap, () => ({
  __proto__: dart.getMethods(html$.MidiInputMap.__proto__),
  [_getItem]: dart.fnType(core.Map, [core.String]),
  [$containsValue]: dart.fnType(core.bool, [dart.dynamic]),
  [$containsKey]: dart.fnType(core.bool, [dart.dynamic]),
  [$_get]: dart.fnType(core.Map, [dart.dynamic]),
  [$_set]: dart.fnType(dart.void, [core.Object, core.Object]),
  [$remove]: dart.fnType(core.String, [dart.dynamic]),
  [$clear]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.MidiInputMap, () => ({
  __proto__: dart.getGetters(html$.MidiInputMap.__proto__),
  [$keys]: core.Iterable$(core.String),
  [$values]: core.Iterable$(core.Map)
}));
dart.setLibraryUri(html$.MidiInputMap, L65);
dart.registerExtension("MIDIInputMap", html$.MidiInputMap);
html$.MidiMessageEvent = class MidiMessageEvent extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.MidiMessageEvent._create_1(type, eventInitDict_1);
    }
    return html$.MidiMessageEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new MIDIMessageEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new MIDIMessageEvent(type);
  }
  get [$data]() {
    return this.data;
  }
};
dart.addTypeTests(html$.MidiMessageEvent);
dart.addTypeCaches(html$.MidiMessageEvent);
dart.setGetterSignature(html$.MidiMessageEvent, () => ({
  __proto__: dart.getGetters(html$.MidiMessageEvent.__proto__),
  [$data]: typed_data.Uint8List
}));
dart.setLibraryUri(html$.MidiMessageEvent, L65);
dart.registerExtension("MIDIMessageEvent", html$.MidiMessageEvent);
html$.MidiOutput = class MidiOutput extends html$.MidiPort {
  [$send](...args) {
    return this.send.apply(this, args);
  }
};
dart.addTypeTests(html$.MidiOutput);
dart.addTypeCaches(html$.MidiOutput);
dart.setMethodSignature(html$.MidiOutput, () => ({
  __proto__: dart.getMethods(html$.MidiOutput.__proto__),
  [$send]: dart.fnType(dart.void, [typed_data.Uint8List], [core.num])
}));
dart.setLibraryUri(html$.MidiOutput, L65);
dart.registerExtension("MIDIOutput", html$.MidiOutput);
const Interceptor_MapMixin$36$ = class Interceptor_MapMixin extends _interceptors.Interceptor {};
(Interceptor_MapMixin$36$.new = function() {
  Interceptor_MapMixin$36$.__proto__.new.call(this);
}).prototype = Interceptor_MapMixin$36$.prototype;
dart.applyMixin(Interceptor_MapMixin$36$, collection.MapMixin$(core.String, dart.dynamic));
html$.MidiOutputMap = class MidiOutputMap extends Interceptor_MapMixin$36$ {
  [_getItem](key) {
    return html_common.convertNativeToDart_Dictionary(this.get(key));
  }
  [$addAll](other) {
    MapOfStringL$dynamic().as(other);
    dart.throw(new core.UnsupportedError.new("Not supported"));
  }
  [$containsValue](value) {
    return this[$values][$any](dart.fn(e => dart.equals(e, value), MapLToboolL()));
  }
  [$containsKey](key) {
    return this[_getItem](core.String.as(key)) != null;
  }
  [$_get](key) {
    return this[_getItem](core.String.as(key));
  }
  [$forEach](f) {
    let entries = this.entries();
    while (true) {
      let entry = entries.next();
      if (entry.done) return;
      f(entry.value[0], html_common.convertNativeToDart_Dictionary(entry.value[1]));
    }
  }
  get [$keys]() {
    let keys = JSArrayOfStringL().of([]);
    this[$forEach](dart.fn((k, v) => keys[$add](k), StringLAnddynamicTovoid()));
    return keys;
  }
  get [$values]() {
    let values = JSArrayOfMapL().of([]);
    this[$forEach](dart.fn((k, v) => values[$add](core.Map.as(v)), StringLAnddynamicTovoid()));
    return values;
  }
  get [$length]() {
    return this.size;
  }
  get [$isEmpty]() {
    return this[$length] === 0;
  }
  get [$isNotEmpty]() {
    return !dart.test(this[$isEmpty]);
  }
  [$_set](key, value$) {
    let value = value$;
    core.String.as(key);
    dart.throw(new core.UnsupportedError.new("Not supported"));
    return value$;
  }
  [$putIfAbsent](key, ifAbsent) {
    core.String.as(key);
    VoidToLdynamic().as(ifAbsent);
    dart.throw(new core.UnsupportedError.new("Not supported"));
  }
  [$remove](key) {
    dart.throw(new core.UnsupportedError.new("Not supported"));
  }
  [$clear]() {
    dart.throw(new core.UnsupportedError.new("Not supported"));
  }
};
dart.addTypeTests(html$.MidiOutputMap);
dart.addTypeCaches(html$.MidiOutputMap);
dart.setMethodSignature(html$.MidiOutputMap, () => ({
  __proto__: dart.getMethods(html$.MidiOutputMap.__proto__),
  [_getItem]: dart.fnType(core.Map, [core.String]),
  [$containsValue]: dart.fnType(core.bool, [dart.dynamic]),
  [$containsKey]: dart.fnType(core.bool, [dart.dynamic]),
  [$_get]: dart.fnType(core.Map, [dart.dynamic]),
  [$_set]: dart.fnType(dart.void, [core.Object, core.Object]),
  [$remove]: dart.fnType(core.String, [dart.dynamic]),
  [$clear]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.MidiOutputMap, () => ({
  __proto__: dart.getGetters(html$.MidiOutputMap.__proto__),
  [$keys]: core.Iterable$(core.String),
  [$values]: core.Iterable$(core.Map)
}));
dart.setLibraryUri(html$.MidiOutputMap, L65);
dart.registerExtension("MIDIOutputMap", html$.MidiOutputMap);
html$.MimeType = class MimeType extends _interceptors.Interceptor {
  get [$description]() {
    return this.description;
  }
  get [$enabledPlugin]() {
    return this.enabledPlugin;
  }
  get [$suffixes]() {
    return this.suffixes;
  }
  get [$type]() {
    return this.type;
  }
};
dart.addTypeTests(html$.MimeType);
dart.addTypeCaches(html$.MimeType);
dart.setGetterSignature(html$.MimeType, () => ({
  __proto__: dart.getGetters(html$.MimeType.__proto__),
  [$description]: core.String,
  [$enabledPlugin]: html$.Plugin,
  [$suffixes]: core.String,
  [$type]: core.String
}));
dart.setLibraryUri(html$.MimeType, L65);
dart.registerExtension("MimeType", html$.MimeType);
const Interceptor_ListMixin$36$2 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$2.new = function() {
  Interceptor_ListMixin$36$2.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$2.prototype;
dart.applyMixin(Interceptor_ListMixin$36$2, collection.ListMixin$(html$.MimeType));
const Interceptor_ImmutableListMixin$36$2 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$2 {};
(Interceptor_ImmutableListMixin$36$2.new = function() {
  Interceptor_ImmutableListMixin$36$2.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$2.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$2, html$.ImmutableListMixin$(html$.MimeType));
html$.MimeTypeArray = class MimeTypeArray extends Interceptor_ImmutableListMixin$36$2 {
  get [$length]() {
    return this.length;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this[index];
  }
  [$_set](index, value$) {
    let value = value$;
    html$.MimeType.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
  [$namedItem](...args) {
    return this.namedItem.apply(this, args);
  }
};
html$.MimeTypeArray.prototype[dart.isList] = true;
dart.addTypeTests(html$.MimeTypeArray);
dart.addTypeCaches(html$.MimeTypeArray);
html$.MimeTypeArray[dart.implements] = () => [core.List$(html$.MimeType), _js_helper.JavaScriptIndexingBehavior$(html$.MimeType)];
dart.setMethodSignature(html$.MimeTypeArray, () => ({
  __proto__: dart.getMethods(html$.MimeTypeArray.__proto__),
  [$_get]: dart.fnType(html$.MimeType, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [$item]: dart.fnType(html$.MimeType, [core.int]),
  [$namedItem]: dart.fnType(html$.MimeType, [core.String])
}));
dart.setGetterSignature(html$.MimeTypeArray, () => ({
  __proto__: dart.getGetters(html$.MimeTypeArray.__proto__),
  [$length]: core.int
}));
dart.setSetterSignature(html$.MimeTypeArray, () => ({
  __proto__: dart.getSetters(html$.MimeTypeArray.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$.MimeTypeArray, L65);
dart.registerExtension("MimeTypeArray", html$.MimeTypeArray);
html$.ModElement = class ModElement extends html$.HtmlElement {
  get [$cite]() {
    return this.cite;
  }
  set [$cite](value) {
    this.cite = value;
  }
  get [$dateTime]() {
    return this.dateTime;
  }
  set [$dateTime](value) {
    this.dateTime = value;
  }
};
(html$.ModElement.created = function() {
  html$.ModElement.__proto__.created.call(this);
  ;
}).prototype = html$.ModElement.prototype;
dart.addTypeTests(html$.ModElement);
dart.addTypeCaches(html$.ModElement);
dart.setGetterSignature(html$.ModElement, () => ({
  __proto__: dart.getGetters(html$.ModElement.__proto__),
  [$cite]: core.String,
  [$dateTime]: core.String
}));
dart.setSetterSignature(html$.ModElement, () => ({
  __proto__: dart.getSetters(html$.ModElement.__proto__),
  [$cite]: core.String,
  [$dateTime]: core.String
}));
dart.setLibraryUri(html$.ModElement, L65);
dart.registerExtension("HTMLModElement", html$.ModElement);
var _initMouseEvent = dart.privateName(html$, "_initMouseEvent");
var _clientX = dart.privateName(html$, "_clientX");
var _clientY = dart.privateName(html$, "_clientY");
var _layerX = dart.privateName(html$, "_layerX");
var _layerY = dart.privateName(html$, "_layerY");
var _movementX = dart.privateName(html$, "_movementX");
var _movementY = dart.privateName(html$, "_movementY");
var _pageX = dart.privateName(html$, "_pageX");
var _pageY = dart.privateName(html$, "_pageY");
var _screenX = dart.privateName(html$, "_screenX");
var _screenY = dart.privateName(html$, "_screenY");
var _initMouseEvent_1 = dart.privateName(html$, "_initMouseEvent_1");
html$.MouseEvent = class MouseEvent$ extends html$.UIEvent {
  static new(type, opts) {
    let view = opts && 'view' in opts ? opts.view : null;
    let detail = opts && 'detail' in opts ? opts.detail : 0;
    let screenX = opts && 'screenX' in opts ? opts.screenX : 0;
    let screenY = opts && 'screenY' in opts ? opts.screenY : 0;
    let clientX = opts && 'clientX' in opts ? opts.clientX : 0;
    let clientY = opts && 'clientY' in opts ? opts.clientY : 0;
    let button = opts && 'button' in opts ? opts.button : 0;
    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
    let ctrlKey = opts && 'ctrlKey' in opts ? opts.ctrlKey : false;
    let altKey = opts && 'altKey' in opts ? opts.altKey : false;
    let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
    let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
    let relatedTarget = opts && 'relatedTarget' in opts ? opts.relatedTarget : null;
    if (view == null) {
      view = html$.window;
    }
    let event = html$.MouseEvent.as(html$.document[_createEvent]("MouseEvent"));
    event[_initMouseEvent](type, canBubble, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget);
    return event;
  }
  static __(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.MouseEvent._create_1(type, eventInitDict_1);
    }
    return html$.MouseEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new MouseEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new MouseEvent(type);
  }
  get [$altKey]() {
    return this.altKey;
  }
  get [$button]() {
    return this.button;
  }
  get [$buttons]() {
    return this.buttons;
  }
  get [_clientX]() {
    return this.clientX;
  }
  get [_clientY]() {
    return this.clientY;
  }
  get [$ctrlKey]() {
    return this.ctrlKey;
  }
  get [$fromElement]() {
    return this.fromElement;
  }
  get [_layerX]() {
    return this.layerX;
  }
  get [_layerY]() {
    return this.layerY;
  }
  get [$metaKey]() {
    return this.metaKey;
  }
  get [_movementX]() {
    return this.movementX;
  }
  get [_movementY]() {
    return this.movementY;
  }
  get [_pageX]() {
    return this.pageX;
  }
  get [_pageY]() {
    return this.pageY;
  }
  get [$region]() {
    return this.region;
  }
  get [$relatedTarget]() {
    return html$._convertNativeToDart_EventTarget(this[_get_relatedTarget]);
  }
  get [_get_relatedTarget]() {
    return this.relatedTarget;
  }
  get [_screenX]() {
    return this.screenX;
  }
  get [_screenY]() {
    return this.screenY;
  }
  get [$shiftKey]() {
    return this.shiftKey;
  }
  get [$toElement]() {
    return this.toElement;
  }
  [$getModifierState](...args) {
    return this.getModifierState.apply(this, args);
  }
  [_initMouseEvent](type, bubbles, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget) {
    let relatedTarget_1 = html$._convertDartToNative_EventTarget(relatedTarget);
    this[_initMouseEvent_1](type, bubbles, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget_1);
    return;
  }
  [_initMouseEvent_1](...args) {
    return this.initMouseEvent.apply(this, args);
  }
  get [$client]() {
    return new (PointOfnumL()).new(this[_clientX], this[_clientY]);
  }
  get [$movement]() {
    return new (PointOfnumL()).new(this[_movementX], this[_movementY]);
  }
  get [$offset]() {
    if (!!this.offsetX) {
      let x = this.offsetX;
      let y = this.offsetY;
      return new (PointOfnumL()).new(core.num.as(x), core.num.as(y));
    } else {
      if (!html$.Element.is(this[$target])) {
        dart.throw(new core.UnsupportedError.new("offsetX is only supported on elements"));
      }
      let target = html$.Element.as(this[$target]);
      let point = this[$client]['-'](target.getBoundingClientRect()[$topLeft]);
      return new (PointOfnumL()).new(point.x[$toInt](), point.y[$toInt]());
    }
  }
  get [$screen]() {
    return new (PointOfnumL()).new(this[_screenX], this[_screenY]);
  }
  get [$layer]() {
    return new (PointOfnumL()).new(this[_layerX], this[_layerY]);
  }
  get [$page]() {
    return new (PointOfnumL()).new(this[_pageX], this[_pageY]);
  }
  get [$dataTransfer]() {
    return this.dataTransfer;
  }
};
dart.addTypeTests(html$.MouseEvent);
dart.addTypeCaches(html$.MouseEvent);
dart.setMethodSignature(html$.MouseEvent, () => ({
  __proto__: dart.getMethods(html$.MouseEvent.__proto__),
  [$getModifierState]: dart.fnType(core.bool, [core.String]),
  [_initMouseEvent]: dart.fnType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int, core.int, core.int, core.int, core.int, core.bool, core.bool, core.bool, core.bool, core.int, html$.EventTarget]),
  [_initMouseEvent_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, html$.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
}));
dart.setGetterSignature(html$.MouseEvent, () => ({
  __proto__: dart.getGetters(html$.MouseEvent.__proto__),
  [$altKey]: core.bool,
  [$button]: core.int,
  [$buttons]: core.int,
  [_clientX]: core.num,
  [_clientY]: core.num,
  [$ctrlKey]: core.bool,
  [$fromElement]: html$.Node,
  [_layerX]: core.int,
  [_layerY]: core.int,
  [$metaKey]: core.bool,
  [_movementX]: core.int,
  [_movementY]: core.int,
  [_pageX]: core.num,
  [_pageY]: core.num,
  [$region]: core.String,
  [$relatedTarget]: html$.EventTarget,
  [_get_relatedTarget]: dart.dynamic,
  [_screenX]: core.num,
  [_screenY]: core.num,
  [$shiftKey]: core.bool,
  [$toElement]: html$.Node,
  [$client]: math.Point$(core.num),
  [$movement]: math.Point$(core.num),
  [$offset]: math.Point$(core.num),
  [$screen]: math.Point$(core.num),
  [$layer]: math.Point$(core.num),
  [$page]: math.Point$(core.num),
  [$dataTransfer]: html$.DataTransfer
}));
dart.setLibraryUri(html$.MouseEvent, L65);
dart.registerExtension("MouseEvent", html$.MouseEvent);
dart.registerExtension("DragEvent", html$.MouseEvent);
html$.MutationEvent = class MutationEvent extends html$.Event {
  get [$attrChange]() {
    return this.attrChange;
  }
  get [$attrName]() {
    return this.attrName;
  }
  get [$newValue]() {
    return this.newValue;
  }
  get [$prevValue]() {
    return this.prevValue;
  }
  get [$relatedNode]() {
    return this.relatedNode;
  }
  [$initMutationEvent](...args) {
    return this.initMutationEvent.apply(this, args);
  }
};
dart.addTypeTests(html$.MutationEvent);
dart.addTypeCaches(html$.MutationEvent);
dart.setMethodSignature(html$.MutationEvent, () => ({
  __proto__: dart.getMethods(html$.MutationEvent.__proto__),
  [$initMutationEvent]: dart.fnType(dart.void, [core.String, core.bool, core.bool, html$.Node, core.String, core.String, core.String, core.int])
}));
dart.setGetterSignature(html$.MutationEvent, () => ({
  __proto__: dart.getGetters(html$.MutationEvent.__proto__),
  [$attrChange]: core.int,
  [$attrName]: core.String,
  [$newValue]: core.String,
  [$prevValue]: core.String,
  [$relatedNode]: html$.Node
}));
dart.setLibraryUri(html$.MutationEvent, L65);
dart.defineLazy(html$.MutationEvent, {
  /*html$.MutationEvent.ADDITION*/get ADDITION() {
    return 2;
  },
  /*html$.MutationEvent.MODIFICATION*/get MODIFICATION() {
    return 1;
  },
  /*html$.MutationEvent.REMOVAL*/get REMOVAL() {
    return 3;
  }
}, true);
dart.registerExtension("MutationEvent", html$.MutationEvent);
var _observe_1$ = dart.privateName(html$, "_observe_1");
var _observe_2 = dart.privateName(html$, "_observe_2");
var _observe = dart.privateName(html$, "_observe");
var _call = dart.privateName(html$, "_call");
var C351;
html$.MutationObserver = class MutationObserver extends _interceptors.Interceptor {
  [$disconnect](...args) {
    return this.disconnect.apply(this, args);
  }
  [_observe](target, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      this[_observe_1$](target, options_1);
      return;
    }
    this[_observe_2](target);
    return;
  }
  [_observe_1$](...args) {
    return this.observe.apply(this, args);
  }
  [_observe_2](...args) {
    return this.observe.apply(this, args);
  }
  [$takeRecords](...args) {
    return this.takeRecords.apply(this, args);
  }
  static get supported() {
    return !!(window.MutationObserver || window.WebKitMutationObserver);
  }
  [$observe](target, opts) {
    let childList = opts && 'childList' in opts ? opts.childList : null;
    let attributes = opts && 'attributes' in opts ? opts.attributes : null;
    let characterData = opts && 'characterData' in opts ? opts.characterData : null;
    let subtree = opts && 'subtree' in opts ? opts.subtree : null;
    let attributeOldValue = opts && 'attributeOldValue' in opts ? opts.attributeOldValue : null;
    let characterDataOldValue = opts && 'characterDataOldValue' in opts ? opts.characterDataOldValue : null;
    let attributeFilter = opts && 'attributeFilter' in opts ? opts.attributeFilter : null;
    let parsedOptions = html$.MutationObserver._createDict();
    function override(key, value) {
      if (value != null) html$.MutationObserver._add(parsedOptions, core.String.as(key), value);
    }
    dart.fn(override, dynamicAnddynamicToNullN());
    override("childList", childList);
    override("attributes", attributes);
    override("characterData", characterData);
    override("subtree", subtree);
    override("attributeOldValue", attributeOldValue);
    override("characterDataOldValue", characterDataOldValue);
    if (attributeFilter != null) {
      override("attributeFilter", html$.MutationObserver._fixupList(attributeFilter));
    }
    this[_call](target, parsedOptions);
  }
  static _createDict() {
    return {};
  }
  static _add(m, key, value) {
    m[key] = value;
  }
  static _fixupList(list) {
    return list;
  }
  [_call](...args) {
    return this.observe.apply(this, args);
  }
  static new(callback) {
    0;
    return new (window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver)(_js_helper.convertDartClosureToJS(ListLAndMutationObserverLToLvoid(), html$._wrapBinaryZone(core.List, html$.MutationObserver, callback), 2));
  }
};
dart.addTypeTests(html$.MutationObserver);
dart.addTypeCaches(html$.MutationObserver);
dart.setMethodSignature(html$.MutationObserver, () => ({
  __proto__: dart.getMethods(html$.MutationObserver.__proto__),
  [$disconnect]: dart.fnType(dart.void, []),
  [_observe]: dart.fnType(dart.void, [html$.Node], [core.Map]),
  [_observe_1$]: dart.fnType(dart.void, [html$.Node, dart.dynamic]),
  [_observe_2]: dart.fnType(dart.void, [html$.Node]),
  [$takeRecords]: dart.fnType(core.List$(html$.MutationRecord), []),
  [$observe]: dart.fnType(dart.void, [html$.Node], {attributeFilter: core.List$(core.String), attributeOldValue: core.bool, attributes: core.bool, characterData: core.bool, characterDataOldValue: core.bool, childList: core.bool, subtree: core.bool}, {}),
  [_call]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic])
}));
dart.setLibraryUri(html$.MutationObserver, L65);
dart.defineLazy(html$.MutationObserver, {
  /*html$.MutationObserver._boolKeys*/get _boolKeys() {
    return C351 || CT.C351;
  }
}, true);
dart.registerExtension("MutationObserver", html$.MutationObserver);
dart.registerExtension("WebKitMutationObserver", html$.MutationObserver);
html$.MutationRecord = class MutationRecord extends _interceptors.Interceptor {
  get [$addedNodes]() {
    return this.addedNodes;
  }
  get [$attributeName]() {
    return this.attributeName;
  }
  get [$attributeNamespace]() {
    return this.attributeNamespace;
  }
  get [$nextSibling]() {
    return this.nextSibling;
  }
  get [$oldValue]() {
    return this.oldValue;
  }
  get [$previousSibling]() {
    return this.previousSibling;
  }
  get [$removedNodes]() {
    return this.removedNodes;
  }
  get [$target]() {
    return this.target;
  }
  get [$type]() {
    return this.type;
  }
};
dart.addTypeTests(html$.MutationRecord);
dart.addTypeCaches(html$.MutationRecord);
dart.setGetterSignature(html$.MutationRecord, () => ({
  __proto__: dart.getGetters(html$.MutationRecord.__proto__),
  [$addedNodes]: core.List$(html$.Node),
  [$attributeName]: core.String,
  [$attributeNamespace]: core.String,
  [$nextSibling]: html$.Node,
  [$oldValue]: core.String,
  [$previousSibling]: html$.Node,
  [$removedNodes]: core.List$(html$.Node),
  [$target]: html$.Node,
  [$type]: core.String
}));
dart.setLibraryUri(html$.MutationRecord, L65);
dart.registerExtension("MutationRecord", html$.MutationRecord);
html$.NavigationPreloadManager = class NavigationPreloadManager extends _interceptors.Interceptor {
  [$disable]() {
    return js_util.promiseToFuture(dart.dynamic, this.disable());
  }
  [$enable]() {
    return js_util.promiseToFuture(dart.dynamic, this.enable());
  }
  [$getState]() {
    return html$.promiseToFutureAsMap(this.getState());
  }
};
dart.addTypeTests(html$.NavigationPreloadManager);
dart.addTypeCaches(html$.NavigationPreloadManager);
dart.setMethodSignature(html$.NavigationPreloadManager, () => ({
  __proto__: dart.getMethods(html$.NavigationPreloadManager.__proto__),
  [$disable]: dart.fnType(async.Future, []),
  [$enable]: dart.fnType(async.Future, []),
  [$getState]: dart.fnType(async.Future$(core.Map$(core.String, dart.dynamic)), [])
}));
dart.setLibraryUri(html$.NavigationPreloadManager, L65);
dart.registerExtension("NavigationPreloadManager", html$.NavigationPreloadManager);
var _getGamepads = dart.privateName(html$, "_getGamepads");
var _ensureGetUserMedia = dart.privateName(html$, "_ensureGetUserMedia");
var _getUserMedia = dart.privateName(html$, "_getUserMedia");
var _requestKeyboardLock_1 = dart.privateName(html$, "_requestKeyboardLock_1");
var _requestKeyboardLock_2 = dart.privateName(html$, "_requestKeyboardLock_2");
html$.NavigatorConcurrentHardware = class NavigatorConcurrentHardware extends _interceptors.Interceptor {
  get [$hardwareConcurrency]() {
    return this.hardwareConcurrency;
  }
};
dart.addTypeTests(html$.NavigatorConcurrentHardware);
dart.addTypeCaches(html$.NavigatorConcurrentHardware);
dart.setGetterSignature(html$.NavigatorConcurrentHardware, () => ({
  __proto__: dart.getGetters(html$.NavigatorConcurrentHardware.__proto__),
  [$hardwareConcurrency]: core.int
}));
dart.setLibraryUri(html$.NavigatorConcurrentHardware, L65);
dart.registerExtension("NavigatorConcurrentHardware", html$.NavigatorConcurrentHardware);
html$.Navigator = class Navigator extends html$.NavigatorConcurrentHardware {
  [$getGamepads]() {
    let gamepadList = this[_getGamepads]();
    let jsProto = gamepadList.prototype;
    if (jsProto == null) {
      gamepadList.prototype = Object.create(null);
    }
    _js_helper.applyExtension("GamepadList", gamepadList);
    return gamepadList;
  }
  get [$language]() {
    return this.language || this.userLanguage;
  }
  [$getUserMedia](opts) {
    let audio = opts && 'audio' in opts ? opts.audio : false;
    let video = opts && 'video' in opts ? opts.video : false;
    let completer = CompleterOfMediaStreamL().new();
    let options = new (IdentityMapOfStringL$dynamic()).from(["audio", audio, "video", video]);
    this[_ensureGetUserMedia]();
    this[_getUserMedia](html_common.convertDartToNative_SerializedScriptValue(options), dart.fn(stream => {
      completer.complete(stream);
    }, MediaStreamLToNullN()), dart.fn(error => {
      completer.completeError(error);
    }, NavigatorUserMediaErrorLToNullN()));
    return completer.future;
  }
  [_ensureGetUserMedia]() {
    if (!this.getUserMedia) {
      this.getUserMedia = this.getUserMedia || this.webkitGetUserMedia || this.mozGetUserMedia || this.msGetUserMedia;
    }
  }
  [_getUserMedia](...args) {
    return this.getUserMedia.apply(this, args);
  }
  get [$budget]() {
    return this.budget;
  }
  get [$clipboard]() {
    return this.clipboard;
  }
  get [$connection]() {
    return this.connection;
  }
  get [$credentials]() {
    return this.credentials;
  }
  get [$deviceMemory]() {
    return this.deviceMemory;
  }
  get [$doNotTrack]() {
    return this.doNotTrack;
  }
  get [$geolocation]() {
    return this.geolocation;
  }
  get [$maxTouchPoints]() {
    return this.maxTouchPoints;
  }
  get [$mediaCapabilities]() {
    return this.mediaCapabilities;
  }
  get [$mediaDevices]() {
    return this.mediaDevices;
  }
  get [$mediaSession]() {
    return this.mediaSession;
  }
  get [$mimeTypes]() {
    return this.mimeTypes;
  }
  get [$nfc]() {
    return this.nfc;
  }
  get [$permissions]() {
    return this.permissions;
  }
  get [$presentation]() {
    return this.presentation;
  }
  get [$productSub]() {
    return this.productSub;
  }
  get [$serviceWorker]() {
    return this.serviceWorker;
  }
  get [$storage]() {
    return this.storage;
  }
  get [$vendor]() {
    return this.vendor;
  }
  get [$vendorSub]() {
    return this.vendorSub;
  }
  get [$vr]() {
    return this.vr;
  }
  get [$persistentStorage]() {
    return this.webkitPersistentStorage;
  }
  get [$temporaryStorage]() {
    return this.webkitTemporaryStorage;
  }
  [$cancelKeyboardLock](...args) {
    return this.cancelKeyboardLock.apply(this, args);
  }
  [$getBattery]() {
    return js_util.promiseToFuture(dart.dynamic, this.getBattery());
  }
  [_getGamepads](...args) {
    return this.getGamepads.apply(this, args);
  }
  [$getInstalledRelatedApps]() {
    return js_util.promiseToFuture(html$.RelatedApplication, this.getInstalledRelatedApps());
  }
  [$getVRDisplays]() {
    return js_util.promiseToFuture(dart.dynamic, this.getVRDisplays());
  }
  [$registerProtocolHandler](...args) {
    return this.registerProtocolHandler.apply(this, args);
  }
  [$requestKeyboardLock](keyCodes = null) {
    if (keyCodes != null) {
      let keyCodes_1 = html_common.convertDartToNative_StringArray(keyCodes);
      return this[_requestKeyboardLock_1](keyCodes_1);
    }
    return this[_requestKeyboardLock_2]();
  }
  [_requestKeyboardLock_1](keyCodes) {
    return js_util.promiseToFuture(dart.dynamic, this.requestKeyboardLock(keyCodes));
  }
  [_requestKeyboardLock_2]() {
    return js_util.promiseToFuture(dart.dynamic, this.requestKeyboardLock());
  }
  [$requestMidiAccess](options = null) {
    let options_dict = null;
    if (options != null) {
      options_dict = html_common.convertDartToNative_Dictionary(options);
    }
    return js_util.promiseToFuture(dart.dynamic, this.requestMidiAccess(options_dict));
  }
  [$requestMediaKeySystemAccess](keySystem, supportedConfigurations) {
    return js_util.promiseToFuture(dart.dynamic, this.requestMediaKeySystemAccess(keySystem, supportedConfigurations));
  }
  [$sendBeacon](...args) {
    return this.sendBeacon.apply(this, args);
  }
  [$share](data = null) {
    let data_dict = null;
    if (data != null) {
      data_dict = html_common.convertDartToNative_Dictionary(data);
    }
    return js_util.promiseToFuture(dart.dynamic, this.share(data_dict));
  }
  get [$webdriver]() {
    return this.webdriver;
  }
  get [$cookieEnabled]() {
    return this.cookieEnabled;
  }
  get [$appCodeName]() {
    return this.appCodeName;
  }
  get [$appName]() {
    return this.appName;
  }
  get [$appVersion]() {
    return this.appVersion;
  }
  get [$dartEnabled]() {
    return this.dartEnabled;
  }
  get [$platform]() {
    return this.platform;
  }
  get [$product]() {
    return this.product;
  }
  get [$userAgent]() {
    return this.userAgent;
  }
  get [$languages]() {
    return this.languages;
  }
  get [$onLine]() {
    return this.onLine;
  }
};
dart.addTypeTests(html$.Navigator);
dart.addTypeCaches(html$.Navigator);
html$.Navigator[dart.implements] = () => [html$.NavigatorCookies, html$.NavigatorLanguage, html$.NavigatorOnLine, html$.NavigatorAutomationInformation, html$.NavigatorID];
dart.setMethodSignature(html$.Navigator, () => ({
  __proto__: dart.getMethods(html$.Navigator.__proto__),
  [$getGamepads]: dart.fnType(core.List$(html$.Gamepad), []),
  [$getUserMedia]: dart.fnType(async.Future$(html$.MediaStream), [], {audio: dart.dynamic, video: dart.dynamic}, {}),
  [_ensureGetUserMedia]: dart.fnType(dart.dynamic, []),
  [_getUserMedia]: dart.fnType(dart.void, [dart.dynamic, dart.fnType(dart.void, [html$.MediaStream]), dart.fnType(dart.void, [html$.NavigatorUserMediaError])]),
  [$cancelKeyboardLock]: dart.fnType(dart.void, []),
  [$getBattery]: dart.fnType(async.Future, []),
  [_getGamepads]: dart.fnType(core.List$(html$.Gamepad), []),
  [$getInstalledRelatedApps]: dart.fnType(async.Future$(html$.RelatedApplication), []),
  [$getVRDisplays]: dart.fnType(async.Future, []),
  [$registerProtocolHandler]: dart.fnType(dart.void, [core.String, core.String, core.String]),
  [$requestKeyboardLock]: dart.fnType(async.Future, [], [core.List$(core.String)]),
  [_requestKeyboardLock_1]: dart.fnType(async.Future, [core.List]),
  [_requestKeyboardLock_2]: dart.fnType(async.Future, []),
  [$requestMidiAccess]: dart.fnType(async.Future, [], [core.Map]),
  [$requestMediaKeySystemAccess]: dart.fnType(async.Future, [core.String, core.List$(core.Map)]),
  [$sendBeacon]: dart.fnType(core.bool, [core.String, core.Object]),
  [$share]: dart.fnType(async.Future, [], [core.Map])
}));
dart.setGetterSignature(html$.Navigator, () => ({
  __proto__: dart.getGetters(html$.Navigator.__proto__),
  [$language]: core.String,
  [$budget]: html$._BudgetService,
  [$clipboard]: html$._Clipboard,
  [$connection]: html$.NetworkInformation,
  [$credentials]: html$.CredentialsContainer,
  [$deviceMemory]: core.num,
  [$doNotTrack]: core.String,
  [$geolocation]: html$.Geolocation,
  [$maxTouchPoints]: core.int,
  [$mediaCapabilities]: html$.MediaCapabilities,
  [$mediaDevices]: html$.MediaDevices,
  [$mediaSession]: html$.MediaSession,
  [$mimeTypes]: html$.MimeTypeArray,
  [$nfc]: html$._NFC,
  [$permissions]: html$.Permissions,
  [$presentation]: html$.Presentation,
  [$productSub]: core.String,
  [$serviceWorker]: html$.ServiceWorkerContainer,
  [$storage]: html$.StorageManager,
  [$vendor]: core.String,
  [$vendorSub]: core.String,
  [$vr]: html$.VR,
  [$persistentStorage]: html$.DeprecatedStorageQuota,
  [$temporaryStorage]: html$.DeprecatedStorageQuota,
  [$webdriver]: core.bool,
  [$cookieEnabled]: core.bool,
  [$appCodeName]: core.String,
  [$appName]: core.String,
  [$appVersion]: core.String,
  [$dartEnabled]: core.bool,
  [$platform]: core.String,
  [$product]: core.String,
  [$userAgent]: core.String,
  [$languages]: core.List$(core.String),
  [$onLine]: core.bool
}));
dart.setLibraryUri(html$.Navigator, L65);
dart.registerExtension("Navigator", html$.Navigator);
html$.NavigatorAutomationInformation = class NavigatorAutomationInformation extends _interceptors.Interceptor {
  get [$webdriver]() {
    return this.webdriver;
  }
};
dart.addTypeTests(html$.NavigatorAutomationInformation);
dart.addTypeCaches(html$.NavigatorAutomationInformation);
dart.setGetterSignature(html$.NavigatorAutomationInformation, () => ({
  __proto__: dart.getGetters(html$.NavigatorAutomationInformation.__proto__),
  [$webdriver]: core.bool
}));
dart.setLibraryUri(html$.NavigatorAutomationInformation, L65);
dart.registerExtension("NavigatorAutomationInformation", html$.NavigatorAutomationInformation);
html$.NavigatorCookies = class NavigatorCookies extends _interceptors.Interceptor {
  get [$cookieEnabled]() {
    return this.cookieEnabled;
  }
};
dart.addTypeTests(html$.NavigatorCookies);
dart.addTypeCaches(html$.NavigatorCookies);
dart.setGetterSignature(html$.NavigatorCookies, () => ({
  __proto__: dart.getGetters(html$.NavigatorCookies.__proto__),
  [$cookieEnabled]: core.bool
}));
dart.setLibraryUri(html$.NavigatorCookies, L65);
dart.registerExtension("NavigatorCookies", html$.NavigatorCookies);
html$.NavigatorID = class NavigatorID extends _interceptors.Interceptor {
  get appCodeName() {
    return this.appCodeName;
  }
  get appName() {
    return this.appName;
  }
  get appVersion() {
    return this.appVersion;
  }
  get dartEnabled() {
    return this.dartEnabled;
  }
  get platform() {
    return this.platform;
  }
  get product() {
    return this.product;
  }
  get userAgent() {
    return this.userAgent;
  }
};
dart.addTypeTests(html$.NavigatorID);
dart.addTypeCaches(html$.NavigatorID);
dart.setGetterSignature(html$.NavigatorID, () => ({
  __proto__: dart.getGetters(html$.NavigatorID.__proto__),
  appCodeName: core.String,
  [$appCodeName]: core.String,
  appName: core.String,
  [$appName]: core.String,
  appVersion: core.String,
  [$appVersion]: core.String,
  dartEnabled: core.bool,
  [$dartEnabled]: core.bool,
  platform: core.String,
  [$platform]: core.String,
  product: core.String,
  [$product]: core.String,
  userAgent: core.String,
  [$userAgent]: core.String
}));
dart.setLibraryUri(html$.NavigatorID, L65);
dart.defineExtensionAccessors(html$.NavigatorID, [
  'appCodeName',
  'appName',
  'appVersion',
  'dartEnabled',
  'platform',
  'product',
  'userAgent'
]);
html$.NavigatorLanguage = class NavigatorLanguage extends _interceptors.Interceptor {
  get language() {
    return this.language;
  }
  get languages() {
    return this.languages;
  }
};
dart.addTypeTests(html$.NavigatorLanguage);
dart.addTypeCaches(html$.NavigatorLanguage);
dart.setGetterSignature(html$.NavigatorLanguage, () => ({
  __proto__: dart.getGetters(html$.NavigatorLanguage.__proto__),
  language: core.String,
  [$language]: core.String,
  languages: core.List$(core.String),
  [$languages]: core.List$(core.String)
}));
dart.setLibraryUri(html$.NavigatorLanguage, L65);
dart.defineExtensionAccessors(html$.NavigatorLanguage, ['language', 'languages']);
html$.NavigatorOnLine = class NavigatorOnLine extends _interceptors.Interceptor {
  get onLine() {
    return this.onLine;
  }
};
dart.addTypeTests(html$.NavigatorOnLine);
dart.addTypeCaches(html$.NavigatorOnLine);
dart.setGetterSignature(html$.NavigatorOnLine, () => ({
  __proto__: dart.getGetters(html$.NavigatorOnLine.__proto__),
  onLine: core.bool,
  [$onLine]: core.bool
}));
dart.setLibraryUri(html$.NavigatorOnLine, L65);
dart.defineExtensionAccessors(html$.NavigatorOnLine, ['onLine']);
html$.NavigatorUserMediaError = class NavigatorUserMediaError extends _interceptors.Interceptor {
  get [$constraintName]() {
    return this.constraintName;
  }
  get [$message]() {
    return this.message;
  }
  get [$name]() {
    return this.name;
  }
};
dart.addTypeTests(html$.NavigatorUserMediaError);
dart.addTypeCaches(html$.NavigatorUserMediaError);
dart.setGetterSignature(html$.NavigatorUserMediaError, () => ({
  __proto__: dart.getGetters(html$.NavigatorUserMediaError.__proto__),
  [$constraintName]: core.String,
  [$message]: core.String,
  [$name]: core.String
}));
dart.setLibraryUri(html$.NavigatorUserMediaError, L65);
dart.registerExtension("NavigatorUserMediaError", html$.NavigatorUserMediaError);
html$.NetworkInformation = class NetworkInformation extends html$.EventTarget {
  get [$downlink]() {
    return this.downlink;
  }
  get [$downlinkMax]() {
    return this.downlinkMax;
  }
  get [$effectiveType]() {
    return this.effectiveType;
  }
  get [$rtt]() {
    return this.rtt;
  }
  get [$type]() {
    return this.type;
  }
  get [$onChange]() {
    return html$.NetworkInformation.changeEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.NetworkInformation);
dart.addTypeCaches(html$.NetworkInformation);
dart.setGetterSignature(html$.NetworkInformation, () => ({
  __proto__: dart.getGetters(html$.NetworkInformation.__proto__),
  [$downlink]: core.num,
  [$downlinkMax]: core.num,
  [$effectiveType]: core.String,
  [$rtt]: core.int,
  [$type]: core.String,
  [$onChange]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.NetworkInformation, L65);
dart.defineLazy(html$.NetworkInformation, {
  /*html$.NetworkInformation.changeEvent*/get changeEvent() {
    return C237 || CT.C237;
  }
}, true);
dart.registerExtension("NetworkInformation", html$.NetworkInformation);
html$._ChildNodeListLazy = class _ChildNodeListLazy extends collection.ListBase$(html$.Node) {
  get first() {
    let result = this[_this$].firstChild;
    if (result == null) dart.throw(new core.StateError.new("No elements"));
    return result;
  }
  set first(value) {
    super.first = value;
  }
  get last() {
    let result = this[_this$].lastChild;
    if (result == null) dart.throw(new core.StateError.new("No elements"));
    return result;
  }
  set last(value) {
    super.last = value;
  }
  get single() {
    let l = this.length;
    if (l === 0) dart.throw(new core.StateError.new("No elements"));
    if (dart.notNull(l) > 1) dart.throw(new core.StateError.new("More than one element"));
    return this[_this$].firstChild;
  }
  add(value) {
    html$.Node.as(value);
    this[_this$][$append](value);
  }
  addAll(iterable) {
    IterableOfNodeL().as(iterable);
    if (html$._ChildNodeListLazy.is(iterable)) {
      let otherList = iterable;
      if (otherList[_this$] != this[_this$]) {
        for (let i = 0, len = otherList.length; i < dart.notNull(len); i = i + 1) {
          this[_this$][$append](otherList[_this$].firstChild);
        }
      }
      return;
    }
    for (let node of iterable) {
      this[_this$][$append](node);
    }
  }
  insert(index, node) {
    html$.Node.as(node);
    if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this.length)) {
      dart.throw(new core.RangeError.range(index, 0, this.length));
    }
    if (index == this.length) {
      this[_this$][$append](node);
    } else {
      this[_this$].insertBefore(node, this._get(index));
    }
  }
  insertAll(index, iterable) {
    IterableOfNodeL().as(iterable);
    if (index == this.length) {
      this.addAll(iterable);
    } else {
      let item = this._get(index);
      this[_this$][$insertAllBefore](iterable, item);
    }
  }
  setAll(index, iterable) {
    IterableOfNodeL().as(iterable);
    dart.throw(new core.UnsupportedError.new("Cannot setAll on Node list"));
  }
  removeLast() {
    let result = this.last;
    if (result != null) {
      this[_this$][_removeChild](result);
    }
    return result;
  }
  removeAt(index) {
    let result = this._get(index);
    if (result != null) {
      this[_this$][_removeChild](result);
    }
    return result;
  }
  remove(object) {
    if (!html$.Node.is(object)) return false;
    let node = html$.Node.as(object);
    if (this[_this$] != node.parentNode) return false;
    this[_this$][_removeChild](node);
    return true;
  }
  [_filter$0](test, removeMatching) {
    let child = this[_this$].firstChild;
    while (child != null) {
      let nextChild = child[$nextNode];
      if (dart.equals(test(child), removeMatching)) {
        this[_this$][_removeChild](child);
      }
      child = nextChild;
    }
  }
  removeWhere(test) {
    this[_filter$0](test, true);
  }
  retainWhere(test) {
    this[_filter$0](test, false);
  }
  clear() {
    this[_this$][_clearChildren]();
  }
  _set(index, value$) {
    let value = value$;
    html$.Node.as(value);
    this[_this$][_replaceChild](value, this._get(index));
    return value$;
  }
  get iterator() {
    return this[_this$].childNodes[$iterator];
  }
  sort(compare = null) {
    dart.throw(new core.UnsupportedError.new("Cannot sort Node list"));
  }
  shuffle(random = null) {
    dart.throw(new core.UnsupportedError.new("Cannot shuffle Node list"));
  }
  setRange(start, end, iterable, skipCount = 0) {
    IterableOfNodeL().as(iterable);
    dart.throw(new core.UnsupportedError.new("Cannot setRange on Node list"));
  }
  fillRange(start, end, fill = null) {
    html$.Node.as(fill);
    dart.throw(new core.UnsupportedError.new("Cannot fillRange on Node list"));
  }
  removeRange(start, end) {
    dart.throw(new core.UnsupportedError.new("Cannot removeRange on Node list"));
  }
  get length() {
    return this[_this$].childNodes[$length];
  }
  set length(value) {
    dart.throw(new core.UnsupportedError.new("Cannot set length on immutable List."));
  }
  _get(index) {
    return this[_this$].childNodes[$_get](index);
  }
  get rawList() {
    return this[_this$].childNodes;
  }
};
(html$._ChildNodeListLazy.new = function(_this) {
  this[_this$] = _this;
  ;
}).prototype = html$._ChildNodeListLazy.prototype;
dart.addTypeTests(html$._ChildNodeListLazy);
dart.addTypeCaches(html$._ChildNodeListLazy);
html$._ChildNodeListLazy[dart.implements] = () => [html_common.NodeListWrapper];
dart.setMethodSignature(html$._ChildNodeListLazy, () => ({
  __proto__: dart.getMethods(html$._ChildNodeListLazy.__proto__),
  [_filter$0]: dart.fnType(dart.void, [dart.fnType(core.bool, [html$.Node]), core.bool]),
  _set: dart.fnType(dart.void, [core.int, core.Object]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  _get: dart.fnType(html$.Node, [core.int]),
  [$_get]: dart.fnType(html$.Node, [core.int])
}));
dart.setGetterSignature(html$._ChildNodeListLazy, () => ({
  __proto__: dart.getGetters(html$._ChildNodeListLazy.__proto__),
  length: core.int,
  [$length]: core.int,
  rawList: core.List$(html$.Node)
}));
dart.setSetterSignature(html$._ChildNodeListLazy, () => ({
  __proto__: dart.getSetters(html$._ChildNodeListLazy.__proto__),
  length: core.int,
  [$length]: core.int
}));
dart.setLibraryUri(html$._ChildNodeListLazy, L65);
dart.setFieldSignature(html$._ChildNodeListLazy, () => ({
  __proto__: dart.getFields(html$._ChildNodeListLazy.__proto__),
  [_this$]: dart.finalFieldType(html$.Node)
}));
dart.defineExtensionMethods(html$._ChildNodeListLazy, [
  'add',
  'addAll',
  'insert',
  'insertAll',
  'setAll',
  'removeLast',
  'removeAt',
  'remove',
  'removeWhere',
  'retainWhere',
  'clear',
  '_set',
  'sort',
  'shuffle',
  'setRange',
  'fillRange',
  'removeRange',
  '_get'
]);
dart.defineExtensionAccessors(html$._ChildNodeListLazy, [
  'first',
  'last',
  'single',
  'iterator',
  'length'
]);
html$.NodeFilter = class NodeFilter extends _interceptors.Interceptor {};
dart.addTypeTests(html$.NodeFilter);
dart.addTypeCaches(html$.NodeFilter);
dart.setLibraryUri(html$.NodeFilter, L65);
dart.defineLazy(html$.NodeFilter, {
  /*html$.NodeFilter.FILTER_ACCEPT*/get FILTER_ACCEPT() {
    return 1;
  },
  /*html$.NodeFilter.FILTER_REJECT*/get FILTER_REJECT() {
    return 2;
  },
  /*html$.NodeFilter.FILTER_SKIP*/get FILTER_SKIP() {
    return 3;
  },
  /*html$.NodeFilter.SHOW_ALL*/get SHOW_ALL() {
    return 4294967295.0;
  },
  /*html$.NodeFilter.SHOW_COMMENT*/get SHOW_COMMENT() {
    return 128;
  },
  /*html$.NodeFilter.SHOW_DOCUMENT*/get SHOW_DOCUMENT() {
    return 256;
  },
  /*html$.NodeFilter.SHOW_DOCUMENT_FRAGMENT*/get SHOW_DOCUMENT_FRAGMENT() {
    return 1024;
  },
  /*html$.NodeFilter.SHOW_DOCUMENT_TYPE*/get SHOW_DOCUMENT_TYPE() {
    return 512;
  },
  /*html$.NodeFilter.SHOW_ELEMENT*/get SHOW_ELEMENT() {
    return 1;
  },
  /*html$.NodeFilter.SHOW_PROCESSING_INSTRUCTION*/get SHOW_PROCESSING_INSTRUCTION() {
    return 64;
  },
  /*html$.NodeFilter.SHOW_TEXT*/get SHOW_TEXT() {
    return 4;
  }
}, true);
dart.registerExtension("NodeFilter", html$.NodeFilter);
html$.NodeIterator = class NodeIterator extends _interceptors.Interceptor {
  static new(root, whatToShow) {
    return html$.document[_createNodeIterator](root, whatToShow, null);
  }
  get [$pointerBeforeReferenceNode]() {
    return this.pointerBeforeReferenceNode;
  }
  get [$referenceNode]() {
    return this.referenceNode;
  }
  get [$root]() {
    return this.root;
  }
  get [$whatToShow]() {
    return this.whatToShow;
  }
  [$detach](...args) {
    return this.detach.apply(this, args);
  }
  [$nextNode](...args) {
    return this.nextNode.apply(this, args);
  }
  [$previousNode](...args) {
    return this.previousNode.apply(this, args);
  }
};
dart.addTypeTests(html$.NodeIterator);
dart.addTypeCaches(html$.NodeIterator);
dart.setMethodSignature(html$.NodeIterator, () => ({
  __proto__: dart.getMethods(html$.NodeIterator.__proto__),
  [$detach]: dart.fnType(dart.void, []),
  [$nextNode]: dart.fnType(html$.Node, []),
  [$previousNode]: dart.fnType(html$.Node, [])
}));
dart.setGetterSignature(html$.NodeIterator, () => ({
  __proto__: dart.getGetters(html$.NodeIterator.__proto__),
  [$pointerBeforeReferenceNode]: core.bool,
  [$referenceNode]: html$.Node,
  [$root]: html$.Node,
  [$whatToShow]: core.int
}));
dart.setLibraryUri(html$.NodeIterator, L65);
dart.registerExtension("NodeIterator", html$.NodeIterator);
const Interceptor_ListMixin$36$3 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$3.new = function() {
  Interceptor_ListMixin$36$3.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$3.prototype;
dart.applyMixin(Interceptor_ListMixin$36$3, collection.ListMixin$(html$.Node));
const Interceptor_ImmutableListMixin$36$3 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$3 {};
(Interceptor_ImmutableListMixin$36$3.new = function() {
  Interceptor_ImmutableListMixin$36$3.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$3.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$3, html$.ImmutableListMixin$(html$.Node));
html$.NodeList = class NodeList extends Interceptor_ImmutableListMixin$36$3 {
  get [$length]() {
    return this.length;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this[index];
  }
  [$_set](index, value$) {
    let value = value$;
    html$.Node.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [_item](...args) {
    return this.item.apply(this, args);
  }
};
html$.NodeList.prototype[dart.isList] = true;
dart.addTypeTests(html$.NodeList);
dart.addTypeCaches(html$.NodeList);
html$.NodeList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(html$.Node), core.List$(html$.Node)];
dart.setMethodSignature(html$.NodeList, () => ({
  __proto__: dart.getMethods(html$.NodeList.__proto__),
  [$_get]: dart.fnType(html$.Node, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [_item]: dart.fnType(html$.Node, [core.int])
}));
dart.setGetterSignature(html$.NodeList, () => ({
  __proto__: dart.getGetters(html$.NodeList.__proto__),
  [$length]: core.int
}));
dart.setSetterSignature(html$.NodeList, () => ({
  __proto__: dart.getSetters(html$.NodeList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$.NodeList, L65);
dart.registerExtension("NodeList", html$.NodeList);
dart.registerExtension("RadioNodeList", html$.NodeList);
html$.NonDocumentTypeChildNode = class NonDocumentTypeChildNode extends _interceptors.Interceptor {
  get [$nextElementSibling]() {
    return this.nextElementSibling;
  }
  get [$previousElementSibling]() {
    return this.previousElementSibling;
  }
};
dart.addTypeTests(html$.NonDocumentTypeChildNode);
dart.addTypeCaches(html$.NonDocumentTypeChildNode);
dart.setGetterSignature(html$.NonDocumentTypeChildNode, () => ({
  __proto__: dart.getGetters(html$.NonDocumentTypeChildNode.__proto__),
  [$nextElementSibling]: html$.Element,
  [$previousElementSibling]: html$.Element
}));
dart.setLibraryUri(html$.NonDocumentTypeChildNode, L65);
dart.registerExtension("NonDocumentTypeChildNode", html$.NonDocumentTypeChildNode);
html$.NonElementParentNode = class NonElementParentNode extends _interceptors.Interceptor {
  [$getElementById](...args) {
    return this.getElementById.apply(this, args);
  }
};
dart.addTypeTests(html$.NonElementParentNode);
dart.addTypeCaches(html$.NonElementParentNode);
dart.setMethodSignature(html$.NonElementParentNode, () => ({
  __proto__: dart.getMethods(html$.NonElementParentNode.__proto__),
  [$getElementById]: dart.fnType(html$.Element, [core.String])
}));
dart.setLibraryUri(html$.NonElementParentNode, L65);
dart.registerExtension("NonElementParentNode", html$.NonElementParentNode);
html$.NoncedElement = class NoncedElement extends _interceptors.Interceptor {
  get [$nonce]() {
    return this.nonce;
  }
  set [$nonce](value) {
    this.nonce = value;
  }
};
dart.addTypeTests(html$.NoncedElement);
dart.addTypeCaches(html$.NoncedElement);
dart.setGetterSignature(html$.NoncedElement, () => ({
  __proto__: dart.getGetters(html$.NoncedElement.__proto__),
  [$nonce]: core.String
}));
dart.setSetterSignature(html$.NoncedElement, () => ({
  __proto__: dart.getSetters(html$.NoncedElement.__proto__),
  [$nonce]: core.String
}));
dart.setLibraryUri(html$.NoncedElement, L65);
dart.registerExtension("NoncedElement", html$.NoncedElement);
var C352;
var C353;
html$.Notification = class Notification$ extends html$.EventTarget {
  static new(title, opts) {
    let dir = opts && 'dir' in opts ? opts.dir : null;
    let body = opts && 'body' in opts ? opts.body : null;
    let lang = opts && 'lang' in opts ? opts.lang : null;
    let tag = opts && 'tag' in opts ? opts.tag : null;
    let icon = opts && 'icon' in opts ? opts.icon : null;
    let parsedOptions = new _js_helper.LinkedMap.new();
    if (dir != null) parsedOptions[$_set]("dir", dir);
    if (body != null) parsedOptions[$_set]("body", body);
    if (lang != null) parsedOptions[$_set]("lang", lang);
    if (tag != null) parsedOptions[$_set]("tag", tag);
    if (icon != null) parsedOptions[$_set]("icon", icon);
    return html$.Notification._factoryNotification(title, parsedOptions);
  }
  static _factoryNotification(title, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return html$.Notification._create_1(title, options_1);
    }
    return html$.Notification._create_2(title);
  }
  static _create_1(title, options) {
    return new Notification(title, options);
  }
  static _create_2(title) {
    return new Notification(title);
  }
  static get supported() {
    return !!window.Notification;
  }
  get [$actions]() {
    return this.actions;
  }
  get [$badge]() {
    return this.badge;
  }
  get [$body]() {
    return this.body;
  }
  get [$data]() {
    return this.data;
  }
  get [$dir]() {
    return this.dir;
  }
  get [$icon]() {
    return this.icon;
  }
  get [$image]() {
    return this.image;
  }
  get [$lang]() {
    return this.lang;
  }
  get [$maxActions]() {
    return this.maxActions;
  }
  get [$permission]() {
    return this.permission;
  }
  get [$renotify]() {
    return this.renotify;
  }
  get [$requireInteraction]() {
    return this.requireInteraction;
  }
  get [$silent]() {
    return this.silent;
  }
  get [$tag]() {
    return this.tag;
  }
  get [$timestamp]() {
    return this.timestamp;
  }
  get [$title]() {
    return this.title;
  }
  get [$vibrate]() {
    return this.vibrate;
  }
  [$close](...args) {
    return this.close.apply(this, args);
  }
  static requestPermission() {
    let completer = CompleterOfStringL().new();
    dart.global.Notification.requestPermission(dart.fn(value => {
      completer.complete(value);
    }, StringLToNullN()));
    return completer.future;
  }
  get [$onClick]() {
    return html$.Notification.clickEvent.forTarget(this);
  }
  get [$onClose]() {
    return html$.Notification.closeEvent.forTarget(this);
  }
  get [$onError]() {
    return html$.Notification.errorEvent.forTarget(this);
  }
  get [$onShow]() {
    return html$.Notification.showEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.Notification);
dart.addTypeCaches(html$.Notification);
dart.setMethodSignature(html$.Notification, () => ({
  __proto__: dart.getMethods(html$.Notification.__proto__),
  [$close]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.Notification, () => ({
  __proto__: dart.getGetters(html$.Notification.__proto__),
  [$actions]: core.List,
  [$badge]: core.String,
  [$body]: core.String,
  [$data]: core.Object,
  [$dir]: core.String,
  [$icon]: core.String,
  [$image]: core.String,
  [$lang]: core.String,
  [$maxActions]: core.int,
  [$permission]: core.String,
  [$renotify]: core.bool,
  [$requireInteraction]: core.bool,
  [$silent]: core.bool,
  [$tag]: core.String,
  [$timestamp]: core.int,
  [$title]: core.String,
  [$vibrate]: core.List$(core.int),
  [$onClick]: async.Stream$(html$.Event),
  [$onClose]: async.Stream$(html$.Event),
  [$onError]: async.Stream$(html$.Event),
  [$onShow]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.Notification, L65);
dart.defineLazy(html$.Notification, {
  /*html$.Notification.clickEvent*/get clickEvent() {
    return C352 || CT.C352;
  },
  /*html$.Notification.closeEvent*/get closeEvent() {
    return C216 || CT.C216;
  },
  /*html$.Notification.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  },
  /*html$.Notification.showEvent*/get showEvent() {
    return C353 || CT.C353;
  }
}, true);
dart.registerExtension("Notification", html$.Notification);
html$.NotificationEvent = class NotificationEvent$ extends html$.ExtendableEvent {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$.NotificationEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new NotificationEvent(type, eventInitDict);
  }
  get [$action]() {
    return this.action;
  }
  get [$notification]() {
    return this.notification;
  }
  get [$reply]() {
    return this.reply;
  }
};
dart.addTypeTests(html$.NotificationEvent);
dart.addTypeCaches(html$.NotificationEvent);
dart.setGetterSignature(html$.NotificationEvent, () => ({
  __proto__: dart.getGetters(html$.NotificationEvent.__proto__),
  [$action]: core.String,
  [$notification]: html$.Notification,
  [$reply]: core.String
}));
dart.setLibraryUri(html$.NotificationEvent, L65);
dart.registerExtension("NotificationEvent", html$.NotificationEvent);
html$.OListElement = class OListElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("ol");
  }
  get [$reversed]() {
    return this.reversed;
  }
  set [$reversed](value) {
    this.reversed = value;
  }
  get [$start]() {
    return this.start;
  }
  set [$start](value) {
    this.start = value;
  }
  get [$type]() {
    return this.type;
  }
  set [$type](value) {
    this.type = value;
  }
};
(html$.OListElement.created = function() {
  html$.OListElement.__proto__.created.call(this);
  ;
}).prototype = html$.OListElement.prototype;
dart.addTypeTests(html$.OListElement);
dart.addTypeCaches(html$.OListElement);
dart.setGetterSignature(html$.OListElement, () => ({
  __proto__: dart.getGetters(html$.OListElement.__proto__),
  [$reversed]: core.bool,
  [$start]: core.int,
  [$type]: core.String
}));
dart.setSetterSignature(html$.OListElement, () => ({
  __proto__: dart.getSetters(html$.OListElement.__proto__),
  [$reversed]: core.bool,
  [$start]: core.int,
  [$type]: core.String
}));
dart.setLibraryUri(html$.OListElement, L65);
dart.registerExtension("HTMLOListElement", html$.OListElement);
html$.ObjectElement = class ObjectElement extends html$.HtmlElement {
  static new() {
    return html$.ObjectElement.as(html$.document[$createElement]("object"));
  }
  static get supported() {
    return html$.Element.isTagSupported("object");
  }
  get [$contentWindow]() {
    return html$._convertNativeToDart_Window(this[_get_contentWindow]);
  }
  get [_get_contentWindow]() {
    return this.contentWindow;
  }
  get [$data]() {
    return this.data;
  }
  set [$data](value) {
    this.data = value;
  }
  get [$form]() {
    return this.form;
  }
  get [$height]() {
    return this.height;
  }
  set [$height](value) {
    this.height = value;
  }
  get [$name]() {
    return this.name;
  }
  set [$name](value) {
    this.name = value;
  }
  get [$type]() {
    return this.type;
  }
  set [$type](value) {
    this.type = value;
  }
  get [$useMap]() {
    return this.useMap;
  }
  set [$useMap](value) {
    this.useMap = value;
  }
  get [$validationMessage]() {
    return this.validationMessage;
  }
  get [$validity]() {
    return this.validity;
  }
  get [$width]() {
    return this.width;
  }
  set [$width](value) {
    this.width = value;
  }
  get [$willValidate]() {
    return this.willValidate;
  }
  [__getter__](...args) {
    return this.__getter__.apply(this, args);
  }
  [__setter__](...args) {
    return this.__setter__.apply(this, args);
  }
  [$checkValidity](...args) {
    return this.checkValidity.apply(this, args);
  }
  [$reportValidity](...args) {
    return this.reportValidity.apply(this, args);
  }
  [$setCustomValidity](...args) {
    return this.setCustomValidity.apply(this, args);
  }
};
(html$.ObjectElement.created = function() {
  html$.ObjectElement.__proto__.created.call(this);
  ;
}).prototype = html$.ObjectElement.prototype;
dart.addTypeTests(html$.ObjectElement);
dart.addTypeCaches(html$.ObjectElement);
dart.setMethodSignature(html$.ObjectElement, () => ({
  __proto__: dart.getMethods(html$.ObjectElement.__proto__),
  [__getter__]: dart.fnType(html$.Node, [core.String]),
  [__setter__]: dart.fnType(dart.void, [core.String, html$.Node]),
  [$checkValidity]: dart.fnType(core.bool, []),
  [$reportValidity]: dart.fnType(core.bool, []),
  [$setCustomValidity]: dart.fnType(dart.void, [core.String])
}));
dart.setGetterSignature(html$.ObjectElement, () => ({
  __proto__: dart.getGetters(html$.ObjectElement.__proto__),
  [$contentWindow]: html$.WindowBase,
  [_get_contentWindow]: dart.dynamic,
  [$data]: core.String,
  [$form]: html$.FormElement,
  [$height]: core.String,
  [$name]: core.String,
  [$type]: core.String,
  [$useMap]: core.String,
  [$validationMessage]: core.String,
  [$validity]: html$.ValidityState,
  [$width]: core.String,
  [$willValidate]: core.bool
}));
dart.setSetterSignature(html$.ObjectElement, () => ({
  __proto__: dart.getSetters(html$.ObjectElement.__proto__),
  [$data]: core.String,
  [$height]: core.String,
  [$name]: core.String,
  [$type]: core.String,
  [$useMap]: core.String,
  [$width]: core.String
}));
dart.setLibraryUri(html$.ObjectElement, L65);
dart.registerExtension("HTMLObjectElement", html$.ObjectElement);
html$.OffscreenCanvas = class OffscreenCanvas$ extends html$.EventTarget {
  static new(width, height) {
    return html$.OffscreenCanvas._create_1(width, height);
  }
  static _create_1(width, height) {
    return new OffscreenCanvas(width, height);
  }
  get [$height]() {
    return this.height;
  }
  set [$height](value) {
    this.height = value;
  }
  get [$width]() {
    return this.width;
  }
  set [$width](value) {
    this.width = value;
  }
  [$convertToBlob](options = null) {
    let options_dict = null;
    if (options != null) {
      options_dict = html_common.convertDartToNative_Dictionary(options);
    }
    return js_util.promiseToFuture(html$.Blob, this.convertToBlob(options_dict));
  }
  [$getContext](contextType, attributes = null) {
    if (attributes != null) {
      let attributes_1 = html_common.convertDartToNative_Dictionary(attributes);
      return this[_getContext_1](contextType, attributes_1);
    }
    return this[_getContext_2](contextType);
  }
  [_getContext_1](...args) {
    return this.getContext.apply(this, args);
  }
  [_getContext_2](...args) {
    return this.getContext.apply(this, args);
  }
  [$transferToImageBitmap](...args) {
    return this.transferToImageBitmap.apply(this, args);
  }
};
dart.addTypeTests(html$.OffscreenCanvas);
dart.addTypeCaches(html$.OffscreenCanvas);
dart.setMethodSignature(html$.OffscreenCanvas, () => ({
  __proto__: dart.getMethods(html$.OffscreenCanvas.__proto__),
  [$convertToBlob]: dart.fnType(async.Future$(html$.Blob), [], [core.Map]),
  [$getContext]: dart.fnType(core.Object, [core.String], [core.Map]),
  [_getContext_1]: dart.fnType(core.Object, [dart.dynamic, dart.dynamic]),
  [_getContext_2]: dart.fnType(core.Object, [dart.dynamic]),
  [$transferToImageBitmap]: dart.fnType(html$.ImageBitmap, [])
}));
dart.setGetterSignature(html$.OffscreenCanvas, () => ({
  __proto__: dart.getGetters(html$.OffscreenCanvas.__proto__),
  [$height]: core.int,
  [$width]: core.int
}));
dart.setSetterSignature(html$.OffscreenCanvas, () => ({
  __proto__: dart.getSetters(html$.OffscreenCanvas.__proto__),
  [$height]: core.int,
  [$width]: core.int
}));
dart.setLibraryUri(html$.OffscreenCanvas, L65);
dart.registerExtension("OffscreenCanvas", html$.OffscreenCanvas);
html$.OffscreenCanvasRenderingContext2D = class OffscreenCanvasRenderingContext2D extends _interceptors.Interceptor {
  get [$canvas]() {
    return this.canvas;
  }
  get [$direction]() {
    return this.direction;
  }
  set [$direction](value) {
    this.direction = value;
  }
  get [$fillStyle]() {
    return this.fillStyle;
  }
  set [$fillStyle](value) {
    this.fillStyle = value;
  }
  get [$filter]() {
    return this.filter;
  }
  set [$filter](value) {
    this.filter = value;
  }
  get [$font]() {
    return this.font;
  }
  set [$font](value) {
    this.font = value;
  }
  get [$globalAlpha]() {
    return this.globalAlpha;
  }
  set [$globalAlpha](value) {
    this.globalAlpha = value;
  }
  get [$globalCompositeOperation]() {
    return this.globalCompositeOperation;
  }
  set [$globalCompositeOperation](value) {
    this.globalCompositeOperation = value;
  }
  get [$imageSmoothingEnabled]() {
    return this.imageSmoothingEnabled;
  }
  set [$imageSmoothingEnabled](value) {
    this.imageSmoothingEnabled = value;
  }
  get [$imageSmoothingQuality]() {
    return this.imageSmoothingQuality;
  }
  set [$imageSmoothingQuality](value) {
    this.imageSmoothingQuality = value;
  }
  get [$lineCap]() {
    return this.lineCap;
  }
  set [$lineCap](value) {
    this.lineCap = value;
  }
  get [$lineDashOffset]() {
    return this.lineDashOffset;
  }
  set [$lineDashOffset](value) {
    this.lineDashOffset = value;
  }
  get [$lineJoin]() {
    return this.lineJoin;
  }
  set [$lineJoin](value) {
    this.lineJoin = value;
  }
  get [$lineWidth]() {
    return this.lineWidth;
  }
  set [$lineWidth](value) {
    this.lineWidth = value;
  }
  get [$miterLimit]() {
    return this.miterLimit;
  }
  set [$miterLimit](value) {
    this.miterLimit = value;
  }
  get [$shadowBlur]() {
    return this.shadowBlur;
  }
  set [$shadowBlur](value) {
    this.shadowBlur = value;
  }
  get [$shadowColor]() {
    return this.shadowColor;
  }
  set [$shadowColor](value) {
    this.shadowColor = value;
  }
  get [$shadowOffsetX]() {
    return this.shadowOffsetX;
  }
  set [$shadowOffsetX](value) {
    this.shadowOffsetX = value;
  }
  get [$shadowOffsetY]() {
    return this.shadowOffsetY;
  }
  set [$shadowOffsetY](value) {
    this.shadowOffsetY = value;
  }
  get [$strokeStyle]() {
    return this.strokeStyle;
  }
  set [$strokeStyle](value) {
    this.strokeStyle = value;
  }
  get [$textAlign]() {
    return this.textAlign;
  }
  set [$textAlign](value) {
    this.textAlign = value;
  }
  get [$textBaseline]() {
    return this.textBaseline;
  }
  set [$textBaseline](value) {
    this.textBaseline = value;
  }
  [$beginPath](...args) {
    return this.beginPath.apply(this, args);
  }
  [$clearRect](...args) {
    return this.clearRect.apply(this, args);
  }
  [$clip](...args) {
    return this.clip.apply(this, args);
  }
  [$commit]() {
    return js_util.promiseToFuture(dart.dynamic, this.commit());
  }
  [$createImageData](data_OR_imagedata_OR_sw, sh_OR_sw = null, imageDataColorSettings_OR_sh = null, imageDataColorSettings = null) {
    if (html$.ImageData.is(data_OR_imagedata_OR_sw) && sh_OR_sw == null && imageDataColorSettings_OR_sh == null && imageDataColorSettings == null) {
      let imagedata_1 = html_common.convertDartToNative_ImageData(data_OR_imagedata_OR_sw);
      return html_common.convertNativeToDart_ImageData(this[_createImageData_1](imagedata_1));
    }
    if (sh_OR_sw != null && core.int.is(data_OR_imagedata_OR_sw) && imageDataColorSettings_OR_sh == null && imageDataColorSettings == null) {
      return html_common.convertNativeToDart_ImageData(this[_createImageData_2](data_OR_imagedata_OR_sw, sh_OR_sw));
    }
    if (core.Map.is(imageDataColorSettings_OR_sh) && sh_OR_sw != null && core.int.is(data_OR_imagedata_OR_sw) && imageDataColorSettings == null) {
      let imageDataColorSettings_1 = html_common.convertDartToNative_Dictionary(imageDataColorSettings_OR_sh);
      return html_common.convertNativeToDart_ImageData(this[_createImageData_3](data_OR_imagedata_OR_sw, sh_OR_sw, imageDataColorSettings_1));
    }
    if (imageDataColorSettings != null && core.int.is(imageDataColorSettings_OR_sh) && sh_OR_sw != null && data_OR_imagedata_OR_sw != null) {
      let imageDataColorSettings_1 = html_common.convertDartToNative_Dictionary(imageDataColorSettings);
      return html_common.convertNativeToDart_ImageData(this[_createImageData_4](data_OR_imagedata_OR_sw, sh_OR_sw, imageDataColorSettings_OR_sh, imageDataColorSettings_1));
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [_createImageData_1](...args) {
    return this.createImageData.apply(this, args);
  }
  [_createImageData_2](...args) {
    return this.createImageData.apply(this, args);
  }
  [_createImageData_3](...args) {
    return this.createImageData.apply(this, args);
  }
  [_createImageData_4](...args) {
    return this.createImageData.apply(this, args);
  }
  [$createLinearGradient](...args) {
    return this.createLinearGradient.apply(this, args);
  }
  [$createPattern](...args) {
    return this.createPattern.apply(this, args);
  }
  [$createRadialGradient](...args) {
    return this.createRadialGradient.apply(this, args);
  }
  [$drawImage](...args) {
    return this.drawImage.apply(this, args);
  }
  [$fill](...args) {
    return this.fill.apply(this, args);
  }
  [$fillRect](...args) {
    return this.fillRect.apply(this, args);
  }
  [$fillText](...args) {
    return this.fillText.apply(this, args);
  }
  [$getImageData](sx, sy, sw, sh) {
    return html_common.convertNativeToDart_ImageData(this[_getImageData_1](sx, sy, sw, sh));
  }
  [_getImageData_1](...args) {
    return this.getImageData.apply(this, args);
  }
  [$getLineDash](...args) {
    return this.getLineDash.apply(this, args);
  }
  [$isPointInPath](...args) {
    return this.isPointInPath.apply(this, args);
  }
  [$isPointInStroke](...args) {
    return this.isPointInStroke.apply(this, args);
  }
  [$measureText](...args) {
    return this.measureText.apply(this, args);
  }
  [$putImageData](imagedata, dx, dy, dirtyX = null, dirtyY = null, dirtyWidth = null, dirtyHeight = null) {
    if (dirtyX == null && dirtyY == null && dirtyWidth == null && dirtyHeight == null) {
      let imagedata_1 = html_common.convertDartToNative_ImageData(imagedata);
      this[_putImageData_1](imagedata_1, dx, dy);
      return;
    }
    if (dirtyHeight != null && dirtyWidth != null && dirtyY != null && dirtyX != null) {
      let imagedata_1 = html_common.convertDartToNative_ImageData(imagedata);
      this[_putImageData_2](imagedata_1, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
      return;
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [_putImageData_1](...args) {
    return this.putImageData.apply(this, args);
  }
  [_putImageData_2](...args) {
    return this.putImageData.apply(this, args);
  }
  [$resetTransform](...args) {
    return this.resetTransform.apply(this, args);
  }
  [$restore](...args) {
    return this.restore.apply(this, args);
  }
  [$rotate](...args) {
    return this.rotate.apply(this, args);
  }
  [$save](...args) {
    return this.save.apply(this, args);
  }
  [$scale](...args) {
    return this.scale.apply(this, args);
  }
  [$setLineDash](...args) {
    return this.setLineDash.apply(this, args);
  }
  [$setTransform](...args) {
    return this.setTransform.apply(this, args);
  }
  [$stroke](...args) {
    return this.stroke.apply(this, args);
  }
  [$strokeRect](...args) {
    return this.strokeRect.apply(this, args);
  }
  [$strokeText](...args) {
    return this.strokeText.apply(this, args);
  }
  [$transform](...args) {
    return this.transform.apply(this, args);
  }
  [$translate](...args) {
    return this.translate.apply(this, args);
  }
  [$arc](...args) {
    return this.arc.apply(this, args);
  }
  [$arcTo](...args) {
    return this.arcTo.apply(this, args);
  }
  [$bezierCurveTo](...args) {
    return this.bezierCurveTo.apply(this, args);
  }
  [$closePath](...args) {
    return this.closePath.apply(this, args);
  }
  [$ellipse](...args) {
    return this.ellipse.apply(this, args);
  }
  [$lineTo](...args) {
    return this.lineTo.apply(this, args);
  }
  [$moveTo](...args) {
    return this.moveTo.apply(this, args);
  }
  [$quadraticCurveTo](...args) {
    return this.quadraticCurveTo.apply(this, args);
  }
  [$rect](...args) {
    return this.rect.apply(this, args);
  }
};
dart.addTypeTests(html$.OffscreenCanvasRenderingContext2D);
dart.addTypeCaches(html$.OffscreenCanvasRenderingContext2D);
html$.OffscreenCanvasRenderingContext2D[dart.implements] = () => [html$._CanvasPath];
dart.setMethodSignature(html$.OffscreenCanvasRenderingContext2D, () => ({
  __proto__: dart.getMethods(html$.OffscreenCanvasRenderingContext2D.__proto__),
  [$beginPath]: dart.fnType(dart.void, []),
  [$clearRect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
  [$clip]: dart.fnType(dart.void, [], [html$.Path2D]),
  [$commit]: dart.fnType(async.Future, []),
  [$createImageData]: dart.fnType(html$.ImageData, [dart.dynamic], [core.int, dart.dynamic, core.Map]),
  [_createImageData_1]: dart.fnType(dart.dynamic, [dart.dynamic]),
  [_createImageData_2]: dart.fnType(dart.dynamic, [core.int, dart.dynamic]),
  [_createImageData_3]: dart.fnType(dart.dynamic, [core.int, dart.dynamic, dart.dynamic]),
  [_createImageData_4]: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic, core.int, dart.dynamic]),
  [$createLinearGradient]: dart.fnType(html$.CanvasGradient, [core.num, core.num, core.num, core.num]),
  [$createPattern]: dart.fnType(html$.CanvasPattern, [dart.dynamic, core.String]),
  [$createRadialGradient]: dart.fnType(html$.CanvasGradient, [core.num, core.num, core.num, core.num, core.num, core.num]),
  [$drawImage]: dart.fnType(dart.void, [dart.dynamic, core.num, core.num], [core.num, core.num, core.num, core.num, core.num, core.num]),
  [$fill]: dart.fnType(dart.void, [], [dart.dynamic, core.String]),
  [$fillRect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
  [$fillText]: dart.fnType(dart.void, [core.String, core.num, core.num], [core.num]),
  [$getImageData]: dart.fnType(html$.ImageData, [core.int, core.int, core.int, core.int]),
  [_getImageData_1]: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
  [$getLineDash]: dart.fnType(core.List$(core.num), []),
  [$isPointInPath]: dart.fnType(core.bool, [dart.dynamic, core.num], [dart.dynamic, core.String]),
  [$isPointInStroke]: dart.fnType(core.bool, [dart.dynamic, core.num], [core.num]),
  [$measureText]: dart.fnType(html$.TextMetrics, [core.String]),
  [$putImageData]: dart.fnType(dart.void, [html$.ImageData, core.int, core.int], [core.int, core.int, core.int, core.int]),
  [_putImageData_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
  [_putImageData_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
  [$resetTransform]: dart.fnType(dart.void, []),
  [$restore]: dart.fnType(dart.void, []),
  [$rotate]: dart.fnType(dart.void, [core.num]),
  [$save]: dart.fnType(dart.void, []),
  [$scale]: dart.fnType(dart.void, [core.num, core.num]),
  [$setLineDash]: dart.fnType(dart.void, [core.List$(core.num)]),
  [$setTransform]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
  [$stroke]: dart.fnType(dart.void, [], [html$.Path2D]),
  [$strokeRect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
  [$strokeText]: dart.fnType(dart.void, [core.String, core.num, core.num], [core.num]),
  [$transform]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
  [$translate]: dart.fnType(dart.void, [core.num, core.num]),
  [$arc]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.bool]),
  [$arcTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num]),
  [$bezierCurveTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
  [$closePath]: dart.fnType(dart.void, []),
  [$ellipse]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.bool]),
  [$lineTo]: dart.fnType(dart.void, [core.num, core.num]),
  [$moveTo]: dart.fnType(dart.void, [core.num, core.num]),
  [$quadraticCurveTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
  [$rect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num])
}));
dart.setGetterSignature(html$.OffscreenCanvasRenderingContext2D, () => ({
  __proto__: dart.getGetters(html$.OffscreenCanvasRenderingContext2D.__proto__),
  [$canvas]: html$.OffscreenCanvas,
  [$direction]: core.String,
  [$fillStyle]: core.Object,
  [$filter]: core.String,
  [$font]: core.String,
  [$globalAlpha]: core.num,
  [$globalCompositeOperation]: core.String,
  [$imageSmoothingEnabled]: core.bool,
  [$imageSmoothingQuality]: core.String,
  [$lineCap]: core.String,
  [$lineDashOffset]: core.num,
  [$lineJoin]: core.String,
  [$lineWidth]: core.num,
  [$miterLimit]: core.num,
  [$shadowBlur]: core.num,
  [$shadowColor]: core.String,
  [$shadowOffsetX]: core.num,
  [$shadowOffsetY]: core.num,
  [$strokeStyle]: core.Object,
  [$textAlign]: core.String,
  [$textBaseline]: core.String
}));
dart.setSetterSignature(html$.OffscreenCanvasRenderingContext2D, () => ({
  __proto__: dart.getSetters(html$.OffscreenCanvasRenderingContext2D.__proto__),
  [$direction]: core.String,
  [$fillStyle]: core.Object,
  [$filter]: core.String,
  [$font]: core.String,
  [$globalAlpha]: core.num,
  [$globalCompositeOperation]: core.String,
  [$imageSmoothingEnabled]: core.bool,
  [$imageSmoothingQuality]: core.String,
  [$lineCap]: core.String,
  [$lineDashOffset]: core.num,
  [$lineJoin]: core.String,
  [$lineWidth]: core.num,
  [$miterLimit]: core.num,
  [$shadowBlur]: core.num,
  [$shadowColor]: core.String,
  [$shadowOffsetX]: core.num,
  [$shadowOffsetY]: core.num,
  [$strokeStyle]: core.Object,
  [$textAlign]: core.String,
  [$textBaseline]: core.String
}));
dart.setLibraryUri(html$.OffscreenCanvasRenderingContext2D, L65);
dart.registerExtension("OffscreenCanvasRenderingContext2D", html$.OffscreenCanvasRenderingContext2D);
html$.OptGroupElement = class OptGroupElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("optgroup");
  }
  get [$disabled]() {
    return this.disabled;
  }
  set [$disabled](value) {
    this.disabled = value;
  }
  get [$label]() {
    return this.label;
  }
  set [$label](value) {
    this.label = value;
  }
};
(html$.OptGroupElement.created = function() {
  html$.OptGroupElement.__proto__.created.call(this);
  ;
}).prototype = html$.OptGroupElement.prototype;
dart.addTypeTests(html$.OptGroupElement);
dart.addTypeCaches(html$.OptGroupElement);
dart.setGetterSignature(html$.OptGroupElement, () => ({
  __proto__: dart.getGetters(html$.OptGroupElement.__proto__),
  [$disabled]: core.bool,
  [$label]: core.String
}));
dart.setSetterSignature(html$.OptGroupElement, () => ({
  __proto__: dart.getSetters(html$.OptGroupElement.__proto__),
  [$disabled]: core.bool,
  [$label]: core.String
}));
dart.setLibraryUri(html$.OptGroupElement, L65);
dart.registerExtension("HTMLOptGroupElement", html$.OptGroupElement);
html$.OptionElement = class OptionElement extends html$.HtmlElement {
  static new(opts) {
    let data = opts && 'data' in opts ? opts.data : "";
    let value = opts && 'value' in opts ? opts.value : "";
    let selected = opts && 'selected' in opts ? opts.selected : false;
    return html$.OptionElement.__(data, value, null, selected);
  }
  static __(data = null, value = null, defaultSelected = null, selected = null) {
    if (selected != null) {
      return html$.OptionElement._create_1(data, value, defaultSelected, selected);
    }
    if (defaultSelected != null) {
      return html$.OptionElement._create_2(data, value, defaultSelected);
    }
    if (value != null) {
      return html$.OptionElement._create_3(data, value);
    }
    if (data != null) {
      return html$.OptionElement._create_4(data);
    }
    return html$.OptionElement._create_5();
  }
  static _create_1(data, value, defaultSelected, selected) {
    return new Option(data, value, defaultSelected, selected);
  }
  static _create_2(data, value, defaultSelected) {
    return new Option(data, value, defaultSelected);
  }
  static _create_3(data, value) {
    return new Option(data, value);
  }
  static _create_4(data) {
    return new Option(data);
  }
  static _create_5() {
    return new Option();
  }
  get [$defaultSelected]() {
    return this.defaultSelected;
  }
  set [$defaultSelected](value) {
    this.defaultSelected = value;
  }
  get [$disabled]() {
    return this.disabled;
  }
  set [$disabled](value) {
    this.disabled = value;
  }
  get [$form]() {
    return this.form;
  }
  get [$index]() {
    return this.index;
  }
  get [$label]() {
    return this.label;
  }
  set [$label](value) {
    this.label = value;
  }
  get [$selected]() {
    return this.selected;
  }
  set [$selected](value) {
    this.selected = value;
  }
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
};
(html$.OptionElement.created = function() {
  html$.OptionElement.__proto__.created.call(this);
  ;
}).prototype = html$.OptionElement.prototype;
dart.addTypeTests(html$.OptionElement);
dart.addTypeCaches(html$.OptionElement);
dart.setGetterSignature(html$.OptionElement, () => ({
  __proto__: dart.getGetters(html$.OptionElement.__proto__),
  [$defaultSelected]: core.bool,
  [$disabled]: core.bool,
  [$form]: html$.FormElement,
  [$index]: core.int,
  [$label]: core.String,
  [$selected]: core.bool,
  [$value]: core.String
}));
dart.setSetterSignature(html$.OptionElement, () => ({
  __proto__: dart.getSetters(html$.OptionElement.__proto__),
  [$defaultSelected]: core.bool,
  [$disabled]: core.bool,
  [$label]: core.String,
  [$selected]: core.bool,
  [$value]: core.String
}));
dart.setLibraryUri(html$.OptionElement, L65);
dart.registerExtension("HTMLOptionElement", html$.OptionElement);
html$.OutputElement = class OutputElement extends html$.HtmlElement {
  static new() {
    return html$.OutputElement.as(html$.document[$createElement]("output"));
  }
  static get supported() {
    return html$.Element.isTagSupported("output");
  }
  get [$defaultValue]() {
    return this.defaultValue;
  }
  set [$defaultValue](value) {
    this.defaultValue = value;
  }
  get [$form]() {
    return this.form;
  }
  get [$htmlFor]() {
    return this.htmlFor;
  }
  get [$labels]() {
    return this.labels;
  }
  get [$name]() {
    return this.name;
  }
  set [$name](value) {
    this.name = value;
  }
  get [$type]() {
    return this.type;
  }
  get [$validationMessage]() {
    return this.validationMessage;
  }
  get [$validity]() {
    return this.validity;
  }
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
  get [$willValidate]() {
    return this.willValidate;
  }
  [$checkValidity](...args) {
    return this.checkValidity.apply(this, args);
  }
  [$reportValidity](...args) {
    return this.reportValidity.apply(this, args);
  }
  [$setCustomValidity](...args) {
    return this.setCustomValidity.apply(this, args);
  }
};
(html$.OutputElement.created = function() {
  html$.OutputElement.__proto__.created.call(this);
  ;
}).prototype = html$.OutputElement.prototype;
dart.addTypeTests(html$.OutputElement);
dart.addTypeCaches(html$.OutputElement);
dart.setMethodSignature(html$.OutputElement, () => ({
  __proto__: dart.getMethods(html$.OutputElement.__proto__),
  [$checkValidity]: dart.fnType(core.bool, []),
  [$reportValidity]: dart.fnType(core.bool, []),
  [$setCustomValidity]: dart.fnType(dart.void, [core.String])
}));
dart.setGetterSignature(html$.OutputElement, () => ({
  __proto__: dart.getGetters(html$.OutputElement.__proto__),
  [$defaultValue]: core.String,
  [$form]: html$.FormElement,
  [$htmlFor]: html$.DomTokenList,
  [$labels]: core.List$(html$.Node),
  [$name]: core.String,
  [$type]: core.String,
  [$validationMessage]: core.String,
  [$validity]: html$.ValidityState,
  [$value]: core.String,
  [$willValidate]: core.bool
}));
dart.setSetterSignature(html$.OutputElement, () => ({
  __proto__: dart.getSetters(html$.OutputElement.__proto__),
  [$defaultValue]: core.String,
  [$name]: core.String,
  [$value]: core.String
}));
dart.setLibraryUri(html$.OutputElement, L65);
dart.registerExtension("HTMLOutputElement", html$.OutputElement);
html$.OverconstrainedError = class OverconstrainedError$ extends _interceptors.Interceptor {
  static new(constraint, message) {
    return html$.OverconstrainedError._create_1(constraint, message);
  }
  static _create_1(constraint, message) {
    return new OverconstrainedError(constraint, message);
  }
  get [$constraint]() {
    return this.constraint;
  }
  get [$message]() {
    return this.message;
  }
  get [$name]() {
    return this.name;
  }
};
dart.addTypeTests(html$.OverconstrainedError);
dart.addTypeCaches(html$.OverconstrainedError);
dart.setGetterSignature(html$.OverconstrainedError, () => ({
  __proto__: dart.getGetters(html$.OverconstrainedError.__proto__),
  [$constraint]: core.String,
  [$message]: core.String,
  [$name]: core.String
}));
dart.setLibraryUri(html$.OverconstrainedError, L65);
dart.registerExtension("OverconstrainedError", html$.OverconstrainedError);
html$.PageTransitionEvent = class PageTransitionEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.PageTransitionEvent._create_1(type, eventInitDict_1);
    }
    return html$.PageTransitionEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new PageTransitionEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new PageTransitionEvent(type);
  }
  get [$persisted]() {
    return this.persisted;
  }
};
dart.addTypeTests(html$.PageTransitionEvent);
dart.addTypeCaches(html$.PageTransitionEvent);
dart.setGetterSignature(html$.PageTransitionEvent, () => ({
  __proto__: dart.getGetters(html$.PageTransitionEvent.__proto__),
  [$persisted]: core.bool
}));
dart.setLibraryUri(html$.PageTransitionEvent, L65);
dart.registerExtension("PageTransitionEvent", html$.PageTransitionEvent);
html$.PaintRenderingContext2D = class PaintRenderingContext2D extends _interceptors.Interceptor {
  get [$currentTransform]() {
    return this.currentTransform;
  }
  set [$currentTransform](value) {
    this.currentTransform = value;
  }
  get [$fillStyle]() {
    return this.fillStyle;
  }
  set [$fillStyle](value) {
    this.fillStyle = value;
  }
  get [$filter]() {
    return this.filter;
  }
  set [$filter](value) {
    this.filter = value;
  }
  get [$globalAlpha]() {
    return this.globalAlpha;
  }
  set [$globalAlpha](value) {
    this.globalAlpha = value;
  }
  get [$globalCompositeOperation]() {
    return this.globalCompositeOperation;
  }
  set [$globalCompositeOperation](value) {
    this.globalCompositeOperation = value;
  }
  get [$imageSmoothingEnabled]() {
    return this.imageSmoothingEnabled;
  }
  set [$imageSmoothingEnabled](value) {
    this.imageSmoothingEnabled = value;
  }
  get [$imageSmoothingQuality]() {
    return this.imageSmoothingQuality;
  }
  set [$imageSmoothingQuality](value) {
    this.imageSmoothingQuality = value;
  }
  get [$lineCap]() {
    return this.lineCap;
  }
  set [$lineCap](value) {
    this.lineCap = value;
  }
  get [$lineDashOffset]() {
    return this.lineDashOffset;
  }
  set [$lineDashOffset](value) {
    this.lineDashOffset = value;
  }
  get [$lineJoin]() {
    return this.lineJoin;
  }
  set [$lineJoin](value) {
    this.lineJoin = value;
  }
  get [$lineWidth]() {
    return this.lineWidth;
  }
  set [$lineWidth](value) {
    this.lineWidth = value;
  }
  get [$miterLimit]() {
    return this.miterLimit;
  }
  set [$miterLimit](value) {
    this.miterLimit = value;
  }
  get [$shadowBlur]() {
    return this.shadowBlur;
  }
  set [$shadowBlur](value) {
    this.shadowBlur = value;
  }
  get [$shadowColor]() {
    return this.shadowColor;
  }
  set [$shadowColor](value) {
    this.shadowColor = value;
  }
  get [$shadowOffsetX]() {
    return this.shadowOffsetX;
  }
  set [$shadowOffsetX](value) {
    this.shadowOffsetX = value;
  }
  get [$shadowOffsetY]() {
    return this.shadowOffsetY;
  }
  set [$shadowOffsetY](value) {
    this.shadowOffsetY = value;
  }
  get [$strokeStyle]() {
    return this.strokeStyle;
  }
  set [$strokeStyle](value) {
    this.strokeStyle = value;
  }
  [$beginPath](...args) {
    return this.beginPath.apply(this, args);
  }
  [$clearRect](...args) {
    return this.clearRect.apply(this, args);
  }
  [$clip](...args) {
    return this.clip.apply(this, args);
  }
  [$createLinearGradient](...args) {
    return this.createLinearGradient.apply(this, args);
  }
  [$createPattern](...args) {
    return this.createPattern.apply(this, args);
  }
  [$createRadialGradient](...args) {
    return this.createRadialGradient.apply(this, args);
  }
  [$drawImage](...args) {
    return this.drawImage.apply(this, args);
  }
  [$fill](...args) {
    return this.fill.apply(this, args);
  }
  [$fillRect](...args) {
    return this.fillRect.apply(this, args);
  }
  [$getLineDash](...args) {
    return this.getLineDash.apply(this, args);
  }
  [$isPointInPath](...args) {
    return this.isPointInPath.apply(this, args);
  }
  [$isPointInStroke](...args) {
    return this.isPointInStroke.apply(this, args);
  }
  [$resetTransform](...args) {
    return this.resetTransform.apply(this, args);
  }
  [$restore](...args) {
    return this.restore.apply(this, args);
  }
  [$rotate](...args) {
    return this.rotate.apply(this, args);
  }
  [$save](...args) {
    return this.save.apply(this, args);
  }
  [$scale](...args) {
    return this.scale.apply(this, args);
  }
  [$setLineDash](...args) {
    return this.setLineDash.apply(this, args);
  }
  [$setTransform](...args) {
    return this.setTransform.apply(this, args);
  }
  [$stroke](...args) {
    return this.stroke.apply(this, args);
  }
  [$strokeRect](...args) {
    return this.strokeRect.apply(this, args);
  }
  [$transform](...args) {
    return this.transform.apply(this, args);
  }
  [$translate](...args) {
    return this.translate.apply(this, args);
  }
  [$arc](...args) {
    return this.arc.apply(this, args);
  }
  [$arcTo](...args) {
    return this.arcTo.apply(this, args);
  }
  [$bezierCurveTo](...args) {
    return this.bezierCurveTo.apply(this, args);
  }
  [$closePath](...args) {
    return this.closePath.apply(this, args);
  }
  [$ellipse](...args) {
    return this.ellipse.apply(this, args);
  }
  [$lineTo](...args) {
    return this.lineTo.apply(this, args);
  }
  [$moveTo](...args) {
    return this.moveTo.apply(this, args);
  }
  [$quadraticCurveTo](...args) {
    return this.quadraticCurveTo.apply(this, args);
  }
  [$rect](...args) {
    return this.rect.apply(this, args);
  }
};
dart.addTypeTests(html$.PaintRenderingContext2D);
dart.addTypeCaches(html$.PaintRenderingContext2D);
html$.PaintRenderingContext2D[dart.implements] = () => [html$._CanvasPath];
dart.setMethodSignature(html$.PaintRenderingContext2D, () => ({
  __proto__: dart.getMethods(html$.PaintRenderingContext2D.__proto__),
  [$beginPath]: dart.fnType(dart.void, []),
  [$clearRect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
  [$clip]: dart.fnType(dart.void, [], [dart.dynamic, core.String]),
  [$createLinearGradient]: dart.fnType(html$.CanvasGradient, [core.num, core.num, core.num, core.num]),
  [$createPattern]: dart.fnType(html$.CanvasPattern, [dart.dynamic, core.String]),
  [$createRadialGradient]: dart.fnType(html$.CanvasGradient, [core.num, core.num, core.num, core.num, core.num, core.num]),
  [$drawImage]: dart.fnType(dart.void, [dart.dynamic, core.num, core.num], [core.num, core.num, core.num, core.num, core.num, core.num]),
  [$fill]: dart.fnType(dart.void, [], [dart.dynamic, core.String]),
  [$fillRect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
  [$getLineDash]: dart.fnType(core.List$(core.num), []),
  [$isPointInPath]: dart.fnType(core.bool, [dart.dynamic, core.num], [dart.dynamic, core.String]),
  [$isPointInStroke]: dart.fnType(core.bool, [dart.dynamic, core.num], [core.num]),
  [$resetTransform]: dart.fnType(dart.void, []),
  [$restore]: dart.fnType(dart.void, []),
  [$rotate]: dart.fnType(dart.void, [core.num]),
  [$save]: dart.fnType(dart.void, []),
  [$scale]: dart.fnType(dart.void, [core.num, core.num]),
  [$setLineDash]: dart.fnType(dart.void, [core.List$(core.num)]),
  [$setTransform]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
  [$stroke]: dart.fnType(dart.void, [], [html$.Path2D]),
  [$strokeRect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
  [$transform]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
  [$translate]: dart.fnType(dart.void, [core.num, core.num]),
  [$arc]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.bool]),
  [$arcTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num]),
  [$bezierCurveTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
  [$closePath]: dart.fnType(dart.void, []),
  [$ellipse]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.bool]),
  [$lineTo]: dart.fnType(dart.void, [core.num, core.num]),
  [$moveTo]: dart.fnType(dart.void, [core.num, core.num]),
  [$quadraticCurveTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
  [$rect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num])
}));
dart.setGetterSignature(html$.PaintRenderingContext2D, () => ({
  __proto__: dart.getGetters(html$.PaintRenderingContext2D.__proto__),
  [$currentTransform]: svg$.Matrix,
  [$fillStyle]: core.Object,
  [$filter]: core.String,
  [$globalAlpha]: core.num,
  [$globalCompositeOperation]: core.String,
  [$imageSmoothingEnabled]: core.bool,
  [$imageSmoothingQuality]: core.String,
  [$lineCap]: core.String,
  [$lineDashOffset]: core.num,
  [$lineJoin]: core.String,
  [$lineWidth]: core.num,
  [$miterLimit]: core.num,
  [$shadowBlur]: core.num,
  [$shadowColor]: core.String,
  [$shadowOffsetX]: core.num,
  [$shadowOffsetY]: core.num,
  [$strokeStyle]: core.Object
}));
dart.setSetterSignature(html$.PaintRenderingContext2D, () => ({
  __proto__: dart.getSetters(html$.PaintRenderingContext2D.__proto__),
  [$currentTransform]: svg$.Matrix,
  [$fillStyle]: core.Object,
  [$filter]: core.String,
  [$globalAlpha]: core.num,
  [$globalCompositeOperation]: core.String,
  [$imageSmoothingEnabled]: core.bool,
  [$imageSmoothingQuality]: core.String,
  [$lineCap]: core.String,
  [$lineDashOffset]: core.num,
  [$lineJoin]: core.String,
  [$lineWidth]: core.num,
  [$miterLimit]: core.num,
  [$shadowBlur]: core.num,
  [$shadowColor]: core.String,
  [$shadowOffsetX]: core.num,
  [$shadowOffsetY]: core.num,
  [$strokeStyle]: core.Object
}));
dart.setLibraryUri(html$.PaintRenderingContext2D, L65);
dart.registerExtension("PaintRenderingContext2D", html$.PaintRenderingContext2D);
html$.PaintSize = class PaintSize extends _interceptors.Interceptor {
  get [$height]() {
    return this.height;
  }
  get [$width]() {
    return this.width;
  }
};
dart.addTypeTests(html$.PaintSize);
dart.addTypeCaches(html$.PaintSize);
dart.setGetterSignature(html$.PaintSize, () => ({
  __proto__: dart.getGetters(html$.PaintSize.__proto__),
  [$height]: core.num,
  [$width]: core.num
}));
dart.setLibraryUri(html$.PaintSize, L65);
dart.registerExtension("PaintSize", html$.PaintSize);
html$.PaintWorkletGlobalScope = class PaintWorkletGlobalScope extends html$.WorkletGlobalScope {
  get [$devicePixelRatio]() {
    return this.devicePixelRatio;
  }
  [$registerPaint](...args) {
    return this.registerPaint.apply(this, args);
  }
};
dart.addTypeTests(html$.PaintWorkletGlobalScope);
dart.addTypeCaches(html$.PaintWorkletGlobalScope);
dart.setMethodSignature(html$.PaintWorkletGlobalScope, () => ({
  __proto__: dart.getMethods(html$.PaintWorkletGlobalScope.__proto__),
  [$registerPaint]: dart.fnType(dart.void, [core.String, core.Object])
}));
dart.setGetterSignature(html$.PaintWorkletGlobalScope, () => ({
  __proto__: dart.getGetters(html$.PaintWorkletGlobalScope.__proto__),
  [$devicePixelRatio]: core.num
}));
dart.setLibraryUri(html$.PaintWorkletGlobalScope, L65);
dart.registerExtension("PaintWorkletGlobalScope", html$.PaintWorkletGlobalScope);
html$.ParagraphElement = class ParagraphElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("p");
  }
};
(html$.ParagraphElement.created = function() {
  html$.ParagraphElement.__proto__.created.call(this);
  ;
}).prototype = html$.ParagraphElement.prototype;
dart.addTypeTests(html$.ParagraphElement);
dart.addTypeCaches(html$.ParagraphElement);
dart.setLibraryUri(html$.ParagraphElement, L65);
dart.registerExtension("HTMLParagraphElement", html$.ParagraphElement);
html$.ParamElement = class ParamElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("param");
  }
  get [$name]() {
    return this.name;
  }
  set [$name](value) {
    this.name = value;
  }
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
};
(html$.ParamElement.created = function() {
  html$.ParamElement.__proto__.created.call(this);
  ;
}).prototype = html$.ParamElement.prototype;
dart.addTypeTests(html$.ParamElement);
dart.addTypeCaches(html$.ParamElement);
dart.setGetterSignature(html$.ParamElement, () => ({
  __proto__: dart.getGetters(html$.ParamElement.__proto__),
  [$name]: core.String,
  [$value]: core.String
}));
dart.setSetterSignature(html$.ParamElement, () => ({
  __proto__: dart.getSetters(html$.ParamElement.__proto__),
  [$name]: core.String,
  [$value]: core.String
}));
dart.setLibraryUri(html$.ParamElement, L65);
dart.registerExtension("HTMLParamElement", html$.ParamElement);
html$.ParentNode = class ParentNode extends _interceptors.Interceptor {
  get [_childElementCount]() {
    return this._childElementCount;
  }
  get [_children]() {
    return this._children;
  }
  get [_firstElementChild]() {
    return this._firstElementChild;
  }
  get [_lastElementChild]() {
    return this._lastElementChild;
  }
};
dart.addTypeTests(html$.ParentNode);
dart.addTypeCaches(html$.ParentNode);
dart.setGetterSignature(html$.ParentNode, () => ({
  __proto__: dart.getGetters(html$.ParentNode.__proto__),
  [_childElementCount]: core.int,
  [_children]: core.List$(html$.Node),
  [_firstElementChild]: html$.Element,
  [_lastElementChild]: html$.Element
}));
dart.setLibraryUri(html$.ParentNode, L65);
html$.PasswordCredential = class PasswordCredential$ extends html$.Credential {
  static new(data_OR_form) {
    if (core.Map.is(data_OR_form)) {
      let data_1 = html_common.convertDartToNative_Dictionary(data_OR_form);
      return html$.PasswordCredential._create_1(data_1);
    }
    if (html$.FormElement.is(data_OR_form)) {
      return html$.PasswordCredential._create_2(data_OR_form);
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  static _create_1(data_OR_form) {
    return new PasswordCredential(data_OR_form);
  }
  static _create_2(data_OR_form) {
    return new PasswordCredential(data_OR_form);
  }
  get [$additionalData]() {
    return this.additionalData;
  }
  set [$additionalData](value) {
    this.additionalData = value;
  }
  get [$idName]() {
    return this.idName;
  }
  set [$idName](value) {
    this.idName = value;
  }
  get [$password]() {
    return this.password;
  }
  get [$passwordName]() {
    return this.passwordName;
  }
  set [$passwordName](value) {
    this.passwordName = value;
  }
  get [$iconUrl]() {
    return this.iconURL;
  }
  get [$name]() {
    return this.name;
  }
};
dart.addTypeTests(html$.PasswordCredential);
dart.addTypeCaches(html$.PasswordCredential);
html$.PasswordCredential[dart.implements] = () => [html$.CredentialUserData];
dart.setGetterSignature(html$.PasswordCredential, () => ({
  __proto__: dart.getGetters(html$.PasswordCredential.__proto__),
  [$additionalData]: core.Object,
  [$idName]: core.String,
  [$password]: core.String,
  [$passwordName]: core.String,
  [$iconUrl]: core.String,
  [$name]: core.String
}));
dart.setSetterSignature(html$.PasswordCredential, () => ({
  __proto__: dart.getSetters(html$.PasswordCredential.__proto__),
  [$additionalData]: core.Object,
  [$idName]: core.String,
  [$passwordName]: core.String
}));
dart.setLibraryUri(html$.PasswordCredential, L65);
dart.registerExtension("PasswordCredential", html$.PasswordCredential);
html$.Path2D = class Path2D$ extends _interceptors.Interceptor {
  static new(path_OR_text = null) {
    if (path_OR_text == null) {
      return html$.Path2D._create_1();
    }
    if (html$.Path2D.is(path_OR_text)) {
      return html$.Path2D._create_2(path_OR_text);
    }
    if (typeof path_OR_text == 'string') {
      return html$.Path2D._create_3(path_OR_text);
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  static _create_1() {
    return new Path2D();
  }
  static _create_2(path_OR_text) {
    return new Path2D(path_OR_text);
  }
  static _create_3(path_OR_text) {
    return new Path2D(path_OR_text);
  }
  [$addPath](...args) {
    return this.addPath.apply(this, args);
  }
  [$arc](...args) {
    return this.arc.apply(this, args);
  }
  [$arcTo](...args) {
    return this.arcTo.apply(this, args);
  }
  [$bezierCurveTo](...args) {
    return this.bezierCurveTo.apply(this, args);
  }
  [$closePath](...args) {
    return this.closePath.apply(this, args);
  }
  [$ellipse](...args) {
    return this.ellipse.apply(this, args);
  }
  [$lineTo](...args) {
    return this.lineTo.apply(this, args);
  }
  [$moveTo](...args) {
    return this.moveTo.apply(this, args);
  }
  [$quadraticCurveTo](...args) {
    return this.quadraticCurveTo.apply(this, args);
  }
  [$rect](...args) {
    return this.rect.apply(this, args);
  }
};
dart.addTypeTests(html$.Path2D);
dart.addTypeCaches(html$.Path2D);
html$.Path2D[dart.implements] = () => [html$._CanvasPath];
dart.setMethodSignature(html$.Path2D, () => ({
  __proto__: dart.getMethods(html$.Path2D.__proto__),
  [$addPath]: dart.fnType(dart.void, [html$.Path2D], [svg$.Matrix]),
  [$arc]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.bool]),
  [$arcTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num]),
  [$bezierCurveTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
  [$closePath]: dart.fnType(dart.void, []),
  [$ellipse]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.bool]),
  [$lineTo]: dart.fnType(dart.void, [core.num, core.num]),
  [$moveTo]: dart.fnType(dart.void, [core.num, core.num]),
  [$quadraticCurveTo]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
  [$rect]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num])
}));
dart.setLibraryUri(html$.Path2D, L65);
dart.registerExtension("Path2D", html$.Path2D);
html$.PaymentAddress = class PaymentAddress extends _interceptors.Interceptor {
  get [$addressLine]() {
    return this.addressLine;
  }
  get [$city]() {
    return this.city;
  }
  get [$country]() {
    return this.country;
  }
  get [$dependentLocality]() {
    return this.dependentLocality;
  }
  get [$languageCode]() {
    return this.languageCode;
  }
  get [$organization]() {
    return this.organization;
  }
  get [$phone]() {
    return this.phone;
  }
  get [$postalCode]() {
    return this.postalCode;
  }
  get [$recipient]() {
    return this.recipient;
  }
  get [$region]() {
    return this.region;
  }
  get [$sortingCode]() {
    return this.sortingCode;
  }
};
dart.addTypeTests(html$.PaymentAddress);
dart.addTypeCaches(html$.PaymentAddress);
dart.setGetterSignature(html$.PaymentAddress, () => ({
  __proto__: dart.getGetters(html$.PaymentAddress.__proto__),
  [$addressLine]: core.List$(core.String),
  [$city]: core.String,
  [$country]: core.String,
  [$dependentLocality]: core.String,
  [$languageCode]: core.String,
  [$organization]: core.String,
  [$phone]: core.String,
  [$postalCode]: core.String,
  [$recipient]: core.String,
  [$region]: core.String,
  [$sortingCode]: core.String
}));
dart.setLibraryUri(html$.PaymentAddress, L65);
dart.registerExtension("PaymentAddress", html$.PaymentAddress);
html$.PaymentInstruments = class PaymentInstruments extends _interceptors.Interceptor {
  [$clear]() {
    return js_util.promiseToFuture(dart.dynamic, this.clear());
  }
  [$delete](instrumentKey) {
    return js_util.promiseToFuture(core.bool, this.delete(instrumentKey));
  }
  [$get](instrumentKey) {
    return html$.promiseToFutureAsMap(this.get(instrumentKey));
  }
  [$has](instrumentKey) {
    return js_util.promiseToFuture(dart.dynamic, this.has(instrumentKey));
  }
  [$keys]() {
    return js_util.promiseToFuture(core.List, this.keys());
  }
  [$set](instrumentKey, details) {
    let details_dict = html_common.convertDartToNative_Dictionary(details);
    return js_util.promiseToFuture(dart.dynamic, this.set(instrumentKey, details_dict));
  }
};
dart.addTypeTests(html$.PaymentInstruments);
dart.addTypeCaches(html$.PaymentInstruments);
dart.setMethodSignature(html$.PaymentInstruments, () => ({
  __proto__: dart.getMethods(html$.PaymentInstruments.__proto__),
  [$clear]: dart.fnType(async.Future, []),
  [$delete]: dart.fnType(async.Future$(core.bool), [core.String]),
  [$get]: dart.fnType(async.Future$(core.Map$(core.String, dart.dynamic)), [core.String]),
  [$has]: dart.fnType(async.Future, [core.String]),
  [$keys]: dart.fnType(async.Future$(core.List), []),
  [$set]: dart.fnType(async.Future, [core.String, core.Map])
}));
dart.setLibraryUri(html$.PaymentInstruments, L65);
dart.registerExtension("PaymentInstruments", html$.PaymentInstruments);
html$.PaymentManager = class PaymentManager extends _interceptors.Interceptor {
  get [$instruments]() {
    return this.instruments;
  }
  get [$userHint]() {
    return this.userHint;
  }
  set [$userHint](value) {
    this.userHint = value;
  }
};
dart.addTypeTests(html$.PaymentManager);
dart.addTypeCaches(html$.PaymentManager);
dart.setGetterSignature(html$.PaymentManager, () => ({
  __proto__: dart.getGetters(html$.PaymentManager.__proto__),
  [$instruments]: html$.PaymentInstruments,
  [$userHint]: core.String
}));
dart.setSetterSignature(html$.PaymentManager, () => ({
  __proto__: dart.getSetters(html$.PaymentManager.__proto__),
  [$userHint]: core.String
}));
dart.setLibraryUri(html$.PaymentManager, L65);
dart.registerExtension("PaymentManager", html$.PaymentManager);
html$.PaymentRequest = class PaymentRequest$ extends html$.EventTarget {
  static new(methodData, details, options = null) {
    let methodData_1 = [];
    for (let i of methodData) {
      methodData_1[$add](html_common.convertDartToNative_Dictionary(i));
    }
    if (options != null) {
      let details_1 = html_common.convertDartToNative_Dictionary(details);
      let options_2 = html_common.convertDartToNative_Dictionary(options);
      return html$.PaymentRequest._create_1(methodData_1, details_1, options_2);
    }
    let details_1 = html_common.convertDartToNative_Dictionary(details);
    return html$.PaymentRequest._create_2(methodData_1, details_1);
  }
  static _create_1(methodData, details, options) {
    return new PaymentRequest(methodData, details, options);
  }
  static _create_2(methodData, details) {
    return new PaymentRequest(methodData, details);
  }
  get [$id]() {
    return this.id;
  }
  get [$shippingAddress]() {
    return this.shippingAddress;
  }
  get [$shippingOption]() {
    return this.shippingOption;
  }
  get [$shippingType]() {
    return this.shippingType;
  }
  [$abort]() {
    return js_util.promiseToFuture(dart.dynamic, this.abort());
  }
  [$canMakePayment]() {
    return js_util.promiseToFuture(core.bool, this.canMakePayment());
  }
  [$show]() {
    return js_util.promiseToFuture(html$.PaymentResponse, this.show());
  }
};
dart.addTypeTests(html$.PaymentRequest);
dart.addTypeCaches(html$.PaymentRequest);
dart.setMethodSignature(html$.PaymentRequest, () => ({
  __proto__: dart.getMethods(html$.PaymentRequest.__proto__),
  [$abort]: dart.fnType(async.Future, []),
  [$canMakePayment]: dart.fnType(async.Future$(core.bool), []),
  [$show]: dart.fnType(async.Future$(html$.PaymentResponse), [])
}));
dart.setGetterSignature(html$.PaymentRequest, () => ({
  __proto__: dart.getGetters(html$.PaymentRequest.__proto__),
  [$id]: core.String,
  [$shippingAddress]: html$.PaymentAddress,
  [$shippingOption]: core.String,
  [$shippingType]: core.String
}));
dart.setLibraryUri(html$.PaymentRequest, L65);
dart.registerExtension("PaymentRequest", html$.PaymentRequest);
html$.PaymentRequestEvent = class PaymentRequestEvent$ extends html$.ExtendableEvent {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$.PaymentRequestEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new PaymentRequestEvent(type, eventInitDict);
  }
  get [$instrumentKey]() {
    return this.instrumentKey;
  }
  get [$methodData]() {
    return this.methodData;
  }
  get [$modifiers]() {
    return this.modifiers;
  }
  get [$paymentRequestId]() {
    return this.paymentRequestId;
  }
  get [$paymentRequestOrigin]() {
    return this.paymentRequestOrigin;
  }
  get [$topLevelOrigin]() {
    return this.topLevelOrigin;
  }
  get [$total]() {
    return this.total;
  }
  [$openWindow](url) {
    return js_util.promiseToFuture(html$.WindowClient, this.openWindow(url));
  }
  [$respondWith](...args) {
    return this.respondWith.apply(this, args);
  }
};
dart.addTypeTests(html$.PaymentRequestEvent);
dart.addTypeCaches(html$.PaymentRequestEvent);
dart.setMethodSignature(html$.PaymentRequestEvent, () => ({
  __proto__: dart.getMethods(html$.PaymentRequestEvent.__proto__),
  [$openWindow]: dart.fnType(async.Future$(html$.WindowClient), [core.String]),
  [$respondWith]: dart.fnType(dart.void, [async.Future])
}));
dart.setGetterSignature(html$.PaymentRequestEvent, () => ({
  __proto__: dart.getGetters(html$.PaymentRequestEvent.__proto__),
  [$instrumentKey]: core.String,
  [$methodData]: core.List,
  [$modifiers]: core.List,
  [$paymentRequestId]: core.String,
  [$paymentRequestOrigin]: core.String,
  [$topLevelOrigin]: core.String,
  [$total]: core.Object
}));
dart.setLibraryUri(html$.PaymentRequestEvent, L65);
dart.registerExtension("PaymentRequestEvent", html$.PaymentRequestEvent);
html$.PaymentRequestUpdateEvent = class PaymentRequestUpdateEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.PaymentRequestUpdateEvent._create_1(type, eventInitDict_1);
    }
    return html$.PaymentRequestUpdateEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new PaymentRequestUpdateEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new PaymentRequestUpdateEvent(type);
  }
  [$updateWith](...args) {
    return this.updateWith.apply(this, args);
  }
};
dart.addTypeTests(html$.PaymentRequestUpdateEvent);
dart.addTypeCaches(html$.PaymentRequestUpdateEvent);
dart.setMethodSignature(html$.PaymentRequestUpdateEvent, () => ({
  __proto__: dart.getMethods(html$.PaymentRequestUpdateEvent.__proto__),
  [$updateWith]: dart.fnType(dart.void, [async.Future])
}));
dart.setLibraryUri(html$.PaymentRequestUpdateEvent, L65);
dart.registerExtension("PaymentRequestUpdateEvent", html$.PaymentRequestUpdateEvent);
html$.PaymentResponse = class PaymentResponse extends _interceptors.Interceptor {
  get [$details]() {
    return this.details;
  }
  get [$methodName]() {
    return this.methodName;
  }
  get [$payerEmail]() {
    return this.payerEmail;
  }
  get [$payerName]() {
    return this.payerName;
  }
  get [$payerPhone]() {
    return this.payerPhone;
  }
  get [$requestId]() {
    return this.requestId;
  }
  get [$shippingAddress]() {
    return this.shippingAddress;
  }
  get [$shippingOption]() {
    return this.shippingOption;
  }
  [$complete](paymentResult = null) {
    return js_util.promiseToFuture(dart.dynamic, this.complete(paymentResult));
  }
};
dart.addTypeTests(html$.PaymentResponse);
dart.addTypeCaches(html$.PaymentResponse);
dart.setMethodSignature(html$.PaymentResponse, () => ({
  __proto__: dart.getMethods(html$.PaymentResponse.__proto__),
  [$complete]: dart.fnType(async.Future, [], [core.String])
}));
dart.setGetterSignature(html$.PaymentResponse, () => ({
  __proto__: dart.getGetters(html$.PaymentResponse.__proto__),
  [$details]: core.Object,
  [$methodName]: core.String,
  [$payerEmail]: core.String,
  [$payerName]: core.String,
  [$payerPhone]: core.String,
  [$requestId]: core.String,
  [$shippingAddress]: html$.PaymentAddress,
  [$shippingOption]: core.String
}));
dart.setLibraryUri(html$.PaymentResponse, L65);
dart.registerExtension("PaymentResponse", html$.PaymentResponse);
html$.Performance = class Performance extends html$.EventTarget {
  static get supported() {
    return !!window.performance;
  }
  get [$memory]() {
    return this.memory;
  }
  get [$navigation]() {
    return this.navigation;
  }
  get [$timeOrigin]() {
    return this.timeOrigin;
  }
  get [$timing]() {
    return this.timing;
  }
  [$clearMarks](...args) {
    return this.clearMarks.apply(this, args);
  }
  [$clearMeasures](...args) {
    return this.clearMeasures.apply(this, args);
  }
  [$clearResourceTimings](...args) {
    return this.clearResourceTimings.apply(this, args);
  }
  [$getEntries](...args) {
    return this.getEntries.apply(this, args);
  }
  [$getEntriesByName](...args) {
    return this.getEntriesByName.apply(this, args);
  }
  [$getEntriesByType](...args) {
    return this.getEntriesByType.apply(this, args);
  }
  [$mark](...args) {
    return this.mark.apply(this, args);
  }
  [$measure](...args) {
    return this.measure.apply(this, args);
  }
  [$now](...args) {
    return this.now.apply(this, args);
  }
  [$setResourceTimingBufferSize](...args) {
    return this.setResourceTimingBufferSize.apply(this, args);
  }
};
dart.addTypeTests(html$.Performance);
dart.addTypeCaches(html$.Performance);
dart.setMethodSignature(html$.Performance, () => ({
  __proto__: dart.getMethods(html$.Performance.__proto__),
  [$clearMarks]: dart.fnType(dart.void, [core.String]),
  [$clearMeasures]: dart.fnType(dart.void, [core.String]),
  [$clearResourceTimings]: dart.fnType(dart.void, []),
  [$getEntries]: dart.fnType(core.List$(html$.PerformanceEntry), []),
  [$getEntriesByName]: dart.fnType(core.List$(html$.PerformanceEntry), [core.String, core.String]),
  [$getEntriesByType]: dart.fnType(core.List$(html$.PerformanceEntry), [core.String]),
  [$mark]: dart.fnType(dart.void, [core.String]),
  [$measure]: dart.fnType(dart.void, [core.String, core.String, core.String]),
  [$now]: dart.fnType(core.double, []),
  [$setResourceTimingBufferSize]: dart.fnType(dart.void, [core.int])
}));
dart.setGetterSignature(html$.Performance, () => ({
  __proto__: dart.getGetters(html$.Performance.__proto__),
  [$memory]: html$.MemoryInfo,
  [$navigation]: html$.PerformanceNavigation,
  [$timeOrigin]: core.num,
  [$timing]: html$.PerformanceTiming
}));
dart.setLibraryUri(html$.Performance, L65);
dart.registerExtension("Performance", html$.Performance);
html$.PerformanceEntry = class PerformanceEntry extends _interceptors.Interceptor {
  get [$duration]() {
    return this.duration;
  }
  get [$entryType]() {
    return this.entryType;
  }
  get [$name]() {
    return this.name;
  }
  get [$startTime]() {
    return this.startTime;
  }
};
dart.addTypeTests(html$.PerformanceEntry);
dart.addTypeCaches(html$.PerformanceEntry);
dart.setGetterSignature(html$.PerformanceEntry, () => ({
  __proto__: dart.getGetters(html$.PerformanceEntry.__proto__),
  [$duration]: core.num,
  [$entryType]: core.String,
  [$name]: core.String,
  [$startTime]: core.num
}));
dart.setLibraryUri(html$.PerformanceEntry, L65);
dart.registerExtension("PerformanceEntry", html$.PerformanceEntry);
html$.PerformanceLongTaskTiming = class PerformanceLongTaskTiming extends html$.PerformanceEntry {
  get [$attribution]() {
    return this.attribution;
  }
};
dart.addTypeTests(html$.PerformanceLongTaskTiming);
dart.addTypeCaches(html$.PerformanceLongTaskTiming);
dart.setGetterSignature(html$.PerformanceLongTaskTiming, () => ({
  __proto__: dart.getGetters(html$.PerformanceLongTaskTiming.__proto__),
  [$attribution]: core.List$(html$.TaskAttributionTiming)
}));
dart.setLibraryUri(html$.PerformanceLongTaskTiming, L65);
dart.registerExtension("PerformanceLongTaskTiming", html$.PerformanceLongTaskTiming);
html$.PerformanceMark = class PerformanceMark extends html$.PerformanceEntry {};
dart.addTypeTests(html$.PerformanceMark);
dart.addTypeCaches(html$.PerformanceMark);
dart.setLibraryUri(html$.PerformanceMark, L65);
dart.registerExtension("PerformanceMark", html$.PerformanceMark);
html$.PerformanceMeasure = class PerformanceMeasure extends html$.PerformanceEntry {};
dart.addTypeTests(html$.PerformanceMeasure);
dart.addTypeCaches(html$.PerformanceMeasure);
dart.setLibraryUri(html$.PerformanceMeasure, L65);
dart.registerExtension("PerformanceMeasure", html$.PerformanceMeasure);
html$.PerformanceNavigation = class PerformanceNavigation extends _interceptors.Interceptor {
  get [$redirectCount]() {
    return this.redirectCount;
  }
  get [$type]() {
    return this.type;
  }
};
dart.addTypeTests(html$.PerformanceNavigation);
dart.addTypeCaches(html$.PerformanceNavigation);
dart.setGetterSignature(html$.PerformanceNavigation, () => ({
  __proto__: dart.getGetters(html$.PerformanceNavigation.__proto__),
  [$redirectCount]: core.int,
  [$type]: core.int
}));
dart.setLibraryUri(html$.PerformanceNavigation, L65);
dart.defineLazy(html$.PerformanceNavigation, {
  /*html$.PerformanceNavigation.TYPE_BACK_FORWARD*/get TYPE_BACK_FORWARD() {
    return 2;
  },
  /*html$.PerformanceNavigation.TYPE_NAVIGATE*/get TYPE_NAVIGATE() {
    return 0;
  },
  /*html$.PerformanceNavigation.TYPE_RELOAD*/get TYPE_RELOAD() {
    return 1;
  },
  /*html$.PerformanceNavigation.TYPE_RESERVED*/get TYPE_RESERVED() {
    return 255;
  }
}, true);
dart.registerExtension("PerformanceNavigation", html$.PerformanceNavigation);
html$.PerformanceResourceTiming = class PerformanceResourceTiming extends html$.PerformanceEntry {
  get [$connectEnd]() {
    return this.connectEnd;
  }
  get [$connectStart]() {
    return this.connectStart;
  }
  get [$decodedBodySize]() {
    return this.decodedBodySize;
  }
  get [$domainLookupEnd]() {
    return this.domainLookupEnd;
  }
  get [$domainLookupStart]() {
    return this.domainLookupStart;
  }
  get [$encodedBodySize]() {
    return this.encodedBodySize;
  }
  get [$fetchStart]() {
    return this.fetchStart;
  }
  get [$initiatorType]() {
    return this.initiatorType;
  }
  get [$nextHopProtocol]() {
    return this.nextHopProtocol;
  }
  get [$redirectEnd]() {
    return this.redirectEnd;
  }
  get [$redirectStart]() {
    return this.redirectStart;
  }
  get [$requestStart]() {
    return this.requestStart;
  }
  get [$responseEnd]() {
    return this.responseEnd;
  }
  get [$responseStart]() {
    return this.responseStart;
  }
  get [$secureConnectionStart]() {
    return this.secureConnectionStart;
  }
  get [$serverTiming]() {
    return this.serverTiming;
  }
  get [$transferSize]() {
    return this.transferSize;
  }
  get [$workerStart]() {
    return this.workerStart;
  }
};
dart.addTypeTests(html$.PerformanceResourceTiming);
dart.addTypeCaches(html$.PerformanceResourceTiming);
dart.setGetterSignature(html$.PerformanceResourceTiming, () => ({
  __proto__: dart.getGetters(html$.PerformanceResourceTiming.__proto__),
  [$connectEnd]: core.num,
  [$connectStart]: core.num,
  [$decodedBodySize]: core.int,
  [$domainLookupEnd]: core.num,
  [$domainLookupStart]: core.num,
  [$encodedBodySize]: core.int,
  [$fetchStart]: core.num,
  [$initiatorType]: core.String,
  [$nextHopProtocol]: core.String,
  [$redirectEnd]: core.num,
  [$redirectStart]: core.num,
  [$requestStart]: core.num,
  [$responseEnd]: core.num,
  [$responseStart]: core.num,
  [$secureConnectionStart]: core.num,
  [$serverTiming]: core.List$(html$.PerformanceServerTiming),
  [$transferSize]: core.int,
  [$workerStart]: core.num
}));
dart.setLibraryUri(html$.PerformanceResourceTiming, L65);
dart.registerExtension("PerformanceResourceTiming", html$.PerformanceResourceTiming);
html$.PerformanceNavigationTiming = class PerformanceNavigationTiming extends html$.PerformanceResourceTiming {
  get [$domComplete]() {
    return this.domComplete;
  }
  get [$domContentLoadedEventEnd]() {
    return this.domContentLoadedEventEnd;
  }
  get [$domContentLoadedEventStart]() {
    return this.domContentLoadedEventStart;
  }
  get [$domInteractive]() {
    return this.domInteractive;
  }
  get [$loadEventEnd]() {
    return this.loadEventEnd;
  }
  get [$loadEventStart]() {
    return this.loadEventStart;
  }
  get [$redirectCount]() {
    return this.redirectCount;
  }
  get [$type]() {
    return this.type;
  }
  get [$unloadEventEnd]() {
    return this.unloadEventEnd;
  }
  get [$unloadEventStart]() {
    return this.unloadEventStart;
  }
};
dart.addTypeTests(html$.PerformanceNavigationTiming);
dart.addTypeCaches(html$.PerformanceNavigationTiming);
dart.setGetterSignature(html$.PerformanceNavigationTiming, () => ({
  __proto__: dart.getGetters(html$.PerformanceNavigationTiming.__proto__),
  [$domComplete]: core.num,
  [$domContentLoadedEventEnd]: core.num,
  [$domContentLoadedEventStart]: core.num,
  [$domInteractive]: core.num,
  [$loadEventEnd]: core.num,
  [$loadEventStart]: core.num,
  [$redirectCount]: core.int,
  [$type]: core.String,
  [$unloadEventEnd]: core.num,
  [$unloadEventStart]: core.num
}));
dart.setLibraryUri(html$.PerformanceNavigationTiming, L65);
dart.registerExtension("PerformanceNavigationTiming", html$.PerformanceNavigationTiming);
html$.PerformanceObserver = class PerformanceObserver$ extends _interceptors.Interceptor {
  static new(callback) {
    let callback_1 = _js_helper.convertDartClosureToJS(PerformanceObserverEntryListLAndPerformanceObserverLToLvoid(), callback, 2);
    return html$.PerformanceObserver._create_1(callback_1);
  }
  static _create_1(callback) {
    return new PerformanceObserver(callback);
  }
  [$disconnect](...args) {
    return this.disconnect.apply(this, args);
  }
  [$observe](options) {
    let options_1 = html_common.convertDartToNative_Dictionary(options);
    this[_observe_1$](options_1);
    return;
  }
  [_observe_1$](...args) {
    return this.observe.apply(this, args);
  }
};
dart.addTypeTests(html$.PerformanceObserver);
dart.addTypeCaches(html$.PerformanceObserver);
dart.setMethodSignature(html$.PerformanceObserver, () => ({
  __proto__: dart.getMethods(html$.PerformanceObserver.__proto__),
  [$disconnect]: dart.fnType(dart.void, []),
  [$observe]: dart.fnType(dart.void, [core.Map]),
  [_observe_1$]: dart.fnType(dart.void, [dart.dynamic])
}));
dart.setLibraryUri(html$.PerformanceObserver, L65);
dart.registerExtension("PerformanceObserver", html$.PerformanceObserver);
html$.PerformanceObserverEntryList = class PerformanceObserverEntryList extends _interceptors.Interceptor {
  [$getEntries](...args) {
    return this.getEntries.apply(this, args);
  }
  [$getEntriesByName](...args) {
    return this.getEntriesByName.apply(this, args);
  }
  [$getEntriesByType](...args) {
    return this.getEntriesByType.apply(this, args);
  }
};
dart.addTypeTests(html$.PerformanceObserverEntryList);
dart.addTypeCaches(html$.PerformanceObserverEntryList);
dart.setMethodSignature(html$.PerformanceObserverEntryList, () => ({
  __proto__: dart.getMethods(html$.PerformanceObserverEntryList.__proto__),
  [$getEntries]: dart.fnType(core.List$(html$.PerformanceEntry), []),
  [$getEntriesByName]: dart.fnType(core.List$(html$.PerformanceEntry), [core.String, core.String]),
  [$getEntriesByType]: dart.fnType(core.List$(html$.PerformanceEntry), [core.String])
}));
dart.setLibraryUri(html$.PerformanceObserverEntryList, L65);
dart.registerExtension("PerformanceObserverEntryList", html$.PerformanceObserverEntryList);
html$.PerformancePaintTiming = class PerformancePaintTiming extends html$.PerformanceEntry {};
dart.addTypeTests(html$.PerformancePaintTiming);
dart.addTypeCaches(html$.PerformancePaintTiming);
dart.setLibraryUri(html$.PerformancePaintTiming, L65);
dart.registerExtension("PerformancePaintTiming", html$.PerformancePaintTiming);
html$.PerformanceServerTiming = class PerformanceServerTiming extends _interceptors.Interceptor {
  get [$description]() {
    return this.description;
  }
  get [$duration]() {
    return this.duration;
  }
  get [$name]() {
    return this.name;
  }
};
dart.addTypeTests(html$.PerformanceServerTiming);
dart.addTypeCaches(html$.PerformanceServerTiming);
dart.setGetterSignature(html$.PerformanceServerTiming, () => ({
  __proto__: dart.getGetters(html$.PerformanceServerTiming.__proto__),
  [$description]: core.String,
  [$duration]: core.num,
  [$name]: core.String
}));
dart.setLibraryUri(html$.PerformanceServerTiming, L65);
dart.registerExtension("PerformanceServerTiming", html$.PerformanceServerTiming);
html$.PerformanceTiming = class PerformanceTiming extends _interceptors.Interceptor {
  get [$connectEnd]() {
    return this.connectEnd;
  }
  get [$connectStart]() {
    return this.connectStart;
  }
  get [$domComplete]() {
    return this.domComplete;
  }
  get [$domContentLoadedEventEnd]() {
    return this.domContentLoadedEventEnd;
  }
  get [$domContentLoadedEventStart]() {
    return this.domContentLoadedEventStart;
  }
  get [$domInteractive]() {
    return this.domInteractive;
  }
  get [$domLoading]() {
    return this.domLoading;
  }
  get [$domainLookupEnd]() {
    return this.domainLookupEnd;
  }
  get [$domainLookupStart]() {
    return this.domainLookupStart;
  }
  get [$fetchStart]() {
    return this.fetchStart;
  }
  get [$loadEventEnd]() {
    return this.loadEventEnd;
  }
  get [$loadEventStart]() {
    return this.loadEventStart;
  }
  get [$navigationStart]() {
    return this.navigationStart;
  }
  get [$redirectEnd]() {
    return this.redirectEnd;
  }
  get [$redirectStart]() {
    return this.redirectStart;
  }
  get [$requestStart]() {
    return this.requestStart;
  }
  get [$responseEnd]() {
    return this.responseEnd;
  }
  get [$responseStart]() {
    return this.responseStart;
  }
  get [$secureConnectionStart]() {
    return this.secureConnectionStart;
  }
  get [$unloadEventEnd]() {
    return this.unloadEventEnd;
  }
  get [$unloadEventStart]() {
    return this.unloadEventStart;
  }
};
dart.addTypeTests(html$.PerformanceTiming);
dart.addTypeCaches(html$.PerformanceTiming);
dart.setGetterSignature(html$.PerformanceTiming, () => ({
  __proto__: dart.getGetters(html$.PerformanceTiming.__proto__),
  [$connectEnd]: core.int,
  [$connectStart]: core.int,
  [$domComplete]: core.int,
  [$domContentLoadedEventEnd]: core.int,
  [$domContentLoadedEventStart]: core.int,
  [$domInteractive]: core.int,
  [$domLoading]: core.int,
  [$domainLookupEnd]: core.int,
  [$domainLookupStart]: core.int,
  [$fetchStart]: core.int,
  [$loadEventEnd]: core.int,
  [$loadEventStart]: core.int,
  [$navigationStart]: core.int,
  [$redirectEnd]: core.int,
  [$redirectStart]: core.int,
  [$requestStart]: core.int,
  [$responseEnd]: core.int,
  [$responseStart]: core.int,
  [$secureConnectionStart]: core.int,
  [$unloadEventEnd]: core.int,
  [$unloadEventStart]: core.int
}));
dart.setLibraryUri(html$.PerformanceTiming, L65);
dart.registerExtension("PerformanceTiming", html$.PerformanceTiming);
html$.PermissionStatus = class PermissionStatus extends html$.EventTarget {
  get [$state]() {
    return this.state;
  }
  get [$onChange]() {
    return html$.PermissionStatus.changeEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.PermissionStatus);
dart.addTypeCaches(html$.PermissionStatus);
dart.setGetterSignature(html$.PermissionStatus, () => ({
  __proto__: dart.getGetters(html$.PermissionStatus.__proto__),
  [$state]: core.String,
  [$onChange]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.PermissionStatus, L65);
dart.defineLazy(html$.PermissionStatus, {
  /*html$.PermissionStatus.changeEvent*/get changeEvent() {
    return C237 || CT.C237;
  }
}, true);
dart.registerExtension("PermissionStatus", html$.PermissionStatus);
html$.Permissions = class Permissions extends _interceptors.Interceptor {
  [$query](permission) {
    let permission_dict = html_common.convertDartToNative_Dictionary(permission);
    return js_util.promiseToFuture(html$.PermissionStatus, this.query(permission_dict));
  }
  [$request](permissions) {
    let permissions_dict = html_common.convertDartToNative_Dictionary(permissions);
    return js_util.promiseToFuture(html$.PermissionStatus, this.request(permissions_dict));
  }
  [$requestAll](permissions) {
    return js_util.promiseToFuture(html$.PermissionStatus, this.requestAll(permissions));
  }
  [$revoke](permission) {
    let permission_dict = html_common.convertDartToNative_Dictionary(permission);
    return js_util.promiseToFuture(html$.PermissionStatus, this.revoke(permission_dict));
  }
};
dart.addTypeTests(html$.Permissions);
dart.addTypeCaches(html$.Permissions);
dart.setMethodSignature(html$.Permissions, () => ({
  __proto__: dart.getMethods(html$.Permissions.__proto__),
  [$query]: dart.fnType(async.Future$(html$.PermissionStatus), [core.Map]),
  [$request]: dart.fnType(async.Future$(html$.PermissionStatus), [core.Map]),
  [$requestAll]: dart.fnType(async.Future$(html$.PermissionStatus), [core.List$(core.Map)]),
  [$revoke]: dart.fnType(async.Future$(html$.PermissionStatus), [core.Map])
}));
dart.setLibraryUri(html$.Permissions, L65);
dart.registerExtension("Permissions", html$.Permissions);
html$.PhotoCapabilities = class PhotoCapabilities extends _interceptors.Interceptor {
  get [$fillLightMode]() {
    return this.fillLightMode;
  }
  get [$imageHeight]() {
    return this.imageHeight;
  }
  get [$imageWidth]() {
    return this.imageWidth;
  }
  get [$redEyeReduction]() {
    return this.redEyeReduction;
  }
};
dart.addTypeTests(html$.PhotoCapabilities);
dart.addTypeCaches(html$.PhotoCapabilities);
dart.setGetterSignature(html$.PhotoCapabilities, () => ({
  __proto__: dart.getGetters(html$.PhotoCapabilities.__proto__),
  [$fillLightMode]: core.List,
  [$imageHeight]: html$.MediaSettingsRange,
  [$imageWidth]: html$.MediaSettingsRange,
  [$redEyeReduction]: core.String
}));
dart.setLibraryUri(html$.PhotoCapabilities, L65);
dart.registerExtension("PhotoCapabilities", html$.PhotoCapabilities);
html$.PictureElement = class PictureElement extends html$.HtmlElement {};
(html$.PictureElement.created = function() {
  html$.PictureElement.__proto__.created.call(this);
  ;
}).prototype = html$.PictureElement.prototype;
dart.addTypeTests(html$.PictureElement);
dart.addTypeCaches(html$.PictureElement);
dart.setLibraryUri(html$.PictureElement, L65);
dart.registerExtension("HTMLPictureElement", html$.PictureElement);
html$.Plugin = class Plugin extends _interceptors.Interceptor {
  get [$description]() {
    return this.description;
  }
  get [$filename]() {
    return this.filename;
  }
  get [$length]() {
    return this.length;
  }
  get [$name]() {
    return this.name;
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
  [$namedItem](...args) {
    return this.namedItem.apply(this, args);
  }
};
dart.addTypeTests(html$.Plugin);
dart.addTypeCaches(html$.Plugin);
dart.setMethodSignature(html$.Plugin, () => ({
  __proto__: dart.getMethods(html$.Plugin.__proto__),
  [$item]: dart.fnType(html$.MimeType, [core.int]),
  [$namedItem]: dart.fnType(html$.MimeType, [core.String])
}));
dart.setGetterSignature(html$.Plugin, () => ({
  __proto__: dart.getGetters(html$.Plugin.__proto__),
  [$description]: core.String,
  [$filename]: core.String,
  [$length]: core.int,
  [$name]: core.String
}));
dart.setLibraryUri(html$.Plugin, L65);
dart.registerExtension("Plugin", html$.Plugin);
const Interceptor_ListMixin$36$4 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$4.new = function() {
  Interceptor_ListMixin$36$4.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$4.prototype;
dart.applyMixin(Interceptor_ListMixin$36$4, collection.ListMixin$(html$.Plugin));
const Interceptor_ImmutableListMixin$36$4 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$4 {};
(Interceptor_ImmutableListMixin$36$4.new = function() {
  Interceptor_ImmutableListMixin$36$4.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$4.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$4, html$.ImmutableListMixin$(html$.Plugin));
html$.PluginArray = class PluginArray extends Interceptor_ImmutableListMixin$36$4 {
  get [$length]() {
    return this.length;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this[index];
  }
  [$_set](index, value$) {
    let value = value$;
    html$.Plugin.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
  [$namedItem](...args) {
    return this.namedItem.apply(this, args);
  }
  [$refresh](...args) {
    return this.refresh.apply(this, args);
  }
};
html$.PluginArray.prototype[dart.isList] = true;
dart.addTypeTests(html$.PluginArray);
dart.addTypeCaches(html$.PluginArray);
html$.PluginArray[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(html$.Plugin), core.List$(html$.Plugin)];
dart.setMethodSignature(html$.PluginArray, () => ({
  __proto__: dart.getMethods(html$.PluginArray.__proto__),
  [$_get]: dart.fnType(html$.Plugin, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [$item]: dart.fnType(html$.Plugin, [core.int]),
  [$namedItem]: dart.fnType(html$.Plugin, [core.String]),
  [$refresh]: dart.fnType(dart.void, [core.bool])
}));
dart.setGetterSignature(html$.PluginArray, () => ({
  __proto__: dart.getGetters(html$.PluginArray.__proto__),
  [$length]: core.int
}));
dart.setSetterSignature(html$.PluginArray, () => ({
  __proto__: dart.getSetters(html$.PluginArray.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$.PluginArray, L65);
dart.registerExtension("PluginArray", html$.PluginArray);
html$.PointerEvent = class PointerEvent$ extends html$.MouseEvent {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.PointerEvent._create_1(type, eventInitDict_1);
    }
    return html$.PointerEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new PointerEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new PointerEvent(type);
  }
  get [$height]() {
    return this.height;
  }
  get [$isPrimary]() {
    return this.isPrimary;
  }
  get [$pointerId]() {
    return this.pointerId;
  }
  get [$pointerType]() {
    return this.pointerType;
  }
  get [$pressure]() {
    return this.pressure;
  }
  get [$tangentialPressure]() {
    return this.tangentialPressure;
  }
  get [$tiltX]() {
    return this.tiltX;
  }
  get [$tiltY]() {
    return this.tiltY;
  }
  get [$twist]() {
    return this.twist;
  }
  get [$width]() {
    return this.width;
  }
  [$getCoalescedEvents](...args) {
    return this.getCoalescedEvents.apply(this, args);
  }
  static get supported() {
    try {
      return html$.PointerEvent.is(html$.PointerEvent.new("pointerover"));
    } catch (e) {
      let _ = dart.getThrown(e);
    }
    return false;
  }
};
dart.addTypeTests(html$.PointerEvent);
dart.addTypeCaches(html$.PointerEvent);
dart.setMethodSignature(html$.PointerEvent, () => ({
  __proto__: dart.getMethods(html$.PointerEvent.__proto__),
  [$getCoalescedEvents]: dart.fnType(core.List$(html$.PointerEvent), [])
}));
dart.setGetterSignature(html$.PointerEvent, () => ({
  __proto__: dart.getGetters(html$.PointerEvent.__proto__),
  [$height]: core.num,
  [$isPrimary]: core.bool,
  [$pointerId]: core.int,
  [$pointerType]: core.String,
  [$pressure]: core.num,
  [$tangentialPressure]: core.num,
  [$tiltX]: core.int,
  [$tiltY]: core.int,
  [$twist]: core.int,
  [$width]: core.num
}));
dart.setLibraryUri(html$.PointerEvent, L65);
dart.registerExtension("PointerEvent", html$.PointerEvent);
html$.PopStateEvent = class PopStateEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.PopStateEvent._create_1(type, eventInitDict_1);
    }
    return html$.PopStateEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new PopStateEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new PopStateEvent(type);
  }
  get [$state]() {
    return html_common.convertNativeToDart_SerializedScriptValue(this[_get_state]);
  }
  get [_get_state]() {
    return this.state;
  }
};
dart.addTypeTests(html$.PopStateEvent);
dart.addTypeCaches(html$.PopStateEvent);
dart.setGetterSignature(html$.PopStateEvent, () => ({
  __proto__: dart.getGetters(html$.PopStateEvent.__proto__),
  [$state]: dart.dynamic,
  [_get_state]: dart.dynamic
}));
dart.setLibraryUri(html$.PopStateEvent, L65);
dart.registerExtension("PopStateEvent", html$.PopStateEvent);
html$.PositionError = class PositionError extends _interceptors.Interceptor {
  get [$code]() {
    return this.code;
  }
  get [$message]() {
    return this.message;
  }
};
dart.addTypeTests(html$.PositionError);
dart.addTypeCaches(html$.PositionError);
dart.setGetterSignature(html$.PositionError, () => ({
  __proto__: dart.getGetters(html$.PositionError.__proto__),
  [$code]: core.int,
  [$message]: core.String
}));
dart.setLibraryUri(html$.PositionError, L65);
dart.defineLazy(html$.PositionError, {
  /*html$.PositionError.PERMISSION_DENIED*/get PERMISSION_DENIED() {
    return 1;
  },
  /*html$.PositionError.POSITION_UNAVAILABLE*/get POSITION_UNAVAILABLE() {
    return 2;
  },
  /*html$.PositionError.TIMEOUT*/get TIMEOUT() {
    return 3;
  }
}, true);
dart.registerExtension("PositionError", html$.PositionError);
html$.PreElement = class PreElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("pre");
  }
};
(html$.PreElement.created = function() {
  html$.PreElement.__proto__.created.call(this);
  ;
}).prototype = html$.PreElement.prototype;
dart.addTypeTests(html$.PreElement);
dart.addTypeCaches(html$.PreElement);
dart.setLibraryUri(html$.PreElement, L65);
dart.registerExtension("HTMLPreElement", html$.PreElement);
html$.Presentation = class Presentation extends _interceptors.Interceptor {
  get [$defaultRequest]() {
    return this.defaultRequest;
  }
  set [$defaultRequest](value) {
    this.defaultRequest = value;
  }
  get [$receiver]() {
    return this.receiver;
  }
};
dart.addTypeTests(html$.Presentation);
dart.addTypeCaches(html$.Presentation);
dart.setGetterSignature(html$.Presentation, () => ({
  __proto__: dart.getGetters(html$.Presentation.__proto__),
  [$defaultRequest]: html$.PresentationRequest,
  [$receiver]: html$.PresentationReceiver
}));
dart.setSetterSignature(html$.Presentation, () => ({
  __proto__: dart.getSetters(html$.Presentation.__proto__),
  [$defaultRequest]: html$.PresentationRequest
}));
dart.setLibraryUri(html$.Presentation, L65);
dart.registerExtension("Presentation", html$.Presentation);
html$.PresentationAvailability = class PresentationAvailability extends html$.EventTarget {
  get [$value]() {
    return this.value;
  }
  get [$onChange]() {
    return html$.PresentationAvailability.changeEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.PresentationAvailability);
dart.addTypeCaches(html$.PresentationAvailability);
dart.setGetterSignature(html$.PresentationAvailability, () => ({
  __proto__: dart.getGetters(html$.PresentationAvailability.__proto__),
  [$value]: core.bool,
  [$onChange]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.PresentationAvailability, L65);
dart.defineLazy(html$.PresentationAvailability, {
  /*html$.PresentationAvailability.changeEvent*/get changeEvent() {
    return C237 || CT.C237;
  }
}, true);
dart.registerExtension("PresentationAvailability", html$.PresentationAvailability);
html$.PresentationConnection = class PresentationConnection extends html$.EventTarget {
  get [$binaryType]() {
    return this.binaryType;
  }
  set [$binaryType](value) {
    this.binaryType = value;
  }
  get [$id]() {
    return this.id;
  }
  get [$state]() {
    return this.state;
  }
  get [$url]() {
    return this.url;
  }
  [$close](...args) {
    return this.close.apply(this, args);
  }
  [$send](...args) {
    return this.send.apply(this, args);
  }
  [$terminate](...args) {
    return this.terminate.apply(this, args);
  }
  get [$onMessage]() {
    return html$.PresentationConnection.messageEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.PresentationConnection);
dart.addTypeCaches(html$.PresentationConnection);
dart.setMethodSignature(html$.PresentationConnection, () => ({
  __proto__: dart.getMethods(html$.PresentationConnection.__proto__),
  [$close]: dart.fnType(dart.void, []),
  [$send]: dart.fnType(dart.void, [dart.dynamic]),
  [$terminate]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.PresentationConnection, () => ({
  __proto__: dart.getGetters(html$.PresentationConnection.__proto__),
  [$binaryType]: core.String,
  [$id]: core.String,
  [$state]: core.String,
  [$url]: core.String,
  [$onMessage]: async.Stream$(html$.MessageEvent)
}));
dart.setSetterSignature(html$.PresentationConnection, () => ({
  __proto__: dart.getSetters(html$.PresentationConnection.__proto__),
  [$binaryType]: core.String
}));
dart.setLibraryUri(html$.PresentationConnection, L65);
dart.defineLazy(html$.PresentationConnection, {
  /*html$.PresentationConnection.messageEvent*/get messageEvent() {
    return C313 || CT.C313;
  }
}, true);
dart.registerExtension("PresentationConnection", html$.PresentationConnection);
html$.PresentationConnectionAvailableEvent = class PresentationConnectionAvailableEvent$ extends html$.Event {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$.PresentationConnectionAvailableEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new PresentationConnectionAvailableEvent(type, eventInitDict);
  }
  get [$connection]() {
    return this.connection;
  }
};
dart.addTypeTests(html$.PresentationConnectionAvailableEvent);
dart.addTypeCaches(html$.PresentationConnectionAvailableEvent);
dart.setGetterSignature(html$.PresentationConnectionAvailableEvent, () => ({
  __proto__: dart.getGetters(html$.PresentationConnectionAvailableEvent.__proto__),
  [$connection]: html$.PresentationConnection
}));
dart.setLibraryUri(html$.PresentationConnectionAvailableEvent, L65);
dart.registerExtension("PresentationConnectionAvailableEvent", html$.PresentationConnectionAvailableEvent);
html$.PresentationConnectionCloseEvent = class PresentationConnectionCloseEvent$ extends html$.Event {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$.PresentationConnectionCloseEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new PresentationConnectionCloseEvent(type, eventInitDict);
  }
  get [$message]() {
    return this.message;
  }
  get [$reason]() {
    return this.reason;
  }
};
dart.addTypeTests(html$.PresentationConnectionCloseEvent);
dart.addTypeCaches(html$.PresentationConnectionCloseEvent);
dart.setGetterSignature(html$.PresentationConnectionCloseEvent, () => ({
  __proto__: dart.getGetters(html$.PresentationConnectionCloseEvent.__proto__),
  [$message]: core.String,
  [$reason]: core.String
}));
dart.setLibraryUri(html$.PresentationConnectionCloseEvent, L65);
dart.registerExtension("PresentationConnectionCloseEvent", html$.PresentationConnectionCloseEvent);
html$.PresentationConnectionList = class PresentationConnectionList extends html$.EventTarget {
  get [$connections]() {
    return this.connections;
  }
};
dart.addTypeTests(html$.PresentationConnectionList);
dart.addTypeCaches(html$.PresentationConnectionList);
dart.setGetterSignature(html$.PresentationConnectionList, () => ({
  __proto__: dart.getGetters(html$.PresentationConnectionList.__proto__),
  [$connections]: core.List$(html$.PresentationConnection)
}));
dart.setLibraryUri(html$.PresentationConnectionList, L65);
dart.registerExtension("PresentationConnectionList", html$.PresentationConnectionList);
html$.PresentationReceiver = class PresentationReceiver extends _interceptors.Interceptor {
  get [$connectionList]() {
    return js_util.promiseToFuture(html$.PresentationConnectionList, this.connectionList);
  }
};
dart.addTypeTests(html$.PresentationReceiver);
dart.addTypeCaches(html$.PresentationReceiver);
dart.setGetterSignature(html$.PresentationReceiver, () => ({
  __proto__: dart.getGetters(html$.PresentationReceiver.__proto__),
  [$connectionList]: async.Future$(html$.PresentationConnectionList)
}));
dart.setLibraryUri(html$.PresentationReceiver, L65);
dart.registerExtension("PresentationReceiver", html$.PresentationReceiver);
html$.PresentationRequest = class PresentationRequest$ extends html$.EventTarget {
  static new(url_OR_urls) {
    if (typeof url_OR_urls == 'string') {
      return html$.PresentationRequest._create_1(url_OR_urls);
    }
    if (ListOfStringL().is(url_OR_urls)) {
      let urls_1 = html_common.convertDartToNative_StringArray(url_OR_urls);
      return html$.PresentationRequest._create_2(urls_1);
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  static _create_1(url_OR_urls) {
    return new PresentationRequest(url_OR_urls);
  }
  static _create_2(url_OR_urls) {
    return new PresentationRequest(url_OR_urls);
  }
  [$getAvailability]() {
    return js_util.promiseToFuture(html$.PresentationAvailability, this.getAvailability());
  }
  [$reconnect](id) {
    return js_util.promiseToFuture(html$.PresentationConnection, this.reconnect(id));
  }
  [$start]() {
    return js_util.promiseToFuture(html$.PresentationConnection, this.start());
  }
};
dart.addTypeTests(html$.PresentationRequest);
dart.addTypeCaches(html$.PresentationRequest);
dart.setMethodSignature(html$.PresentationRequest, () => ({
  __proto__: dart.getMethods(html$.PresentationRequest.__proto__),
  [$getAvailability]: dart.fnType(async.Future$(html$.PresentationAvailability), []),
  [$reconnect]: dart.fnType(async.Future$(html$.PresentationConnection), [core.String]),
  [$start]: dart.fnType(async.Future$(html$.PresentationConnection), [])
}));
dart.setLibraryUri(html$.PresentationRequest, L65);
dart.registerExtension("PresentationRequest", html$.PresentationRequest);
html$.ProcessingInstruction = class ProcessingInstruction extends html$.CharacterData {
  get [$sheet]() {
    return this.sheet;
  }
  get [$target]() {
    return this.target;
  }
};
dart.addTypeTests(html$.ProcessingInstruction);
dart.addTypeCaches(html$.ProcessingInstruction);
dart.setGetterSignature(html$.ProcessingInstruction, () => ({
  __proto__: dart.getGetters(html$.ProcessingInstruction.__proto__),
  [$sheet]: html$.StyleSheet,
  [$target]: core.String
}));
dart.setLibraryUri(html$.ProcessingInstruction, L65);
dart.registerExtension("ProcessingInstruction", html$.ProcessingInstruction);
html$.ProgressElement = class ProgressElement extends html$.HtmlElement {
  static new() {
    return html$.ProgressElement.as(html$.document[$createElement]("progress"));
  }
  static get supported() {
    return html$.Element.isTagSupported("progress");
  }
  get [$labels]() {
    return this.labels;
  }
  get [$max]() {
    return this.max;
  }
  set [$max](value) {
    this.max = value;
  }
  get [$position]() {
    return this.position;
  }
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
};
(html$.ProgressElement.created = function() {
  html$.ProgressElement.__proto__.created.call(this);
  ;
}).prototype = html$.ProgressElement.prototype;
dart.addTypeTests(html$.ProgressElement);
dart.addTypeCaches(html$.ProgressElement);
dart.setGetterSignature(html$.ProgressElement, () => ({
  __proto__: dart.getGetters(html$.ProgressElement.__proto__),
  [$labels]: core.List$(html$.Node),
  [$max]: core.num,
  [$position]: core.num,
  [$value]: core.num
}));
dart.setSetterSignature(html$.ProgressElement, () => ({
  __proto__: dart.getSetters(html$.ProgressElement.__proto__),
  [$max]: core.num,
  [$value]: core.num
}));
dart.setLibraryUri(html$.ProgressElement, L65);
dart.registerExtension("HTMLProgressElement", html$.ProgressElement);
html$.ProgressEvent = class ProgressEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.ProgressEvent._create_1(type, eventInitDict_1);
    }
    return html$.ProgressEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new ProgressEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new ProgressEvent(type);
  }
  get [$lengthComputable]() {
    return this.lengthComputable;
  }
  get [$loaded]() {
    return this.loaded;
  }
  get [$total]() {
    return this.total;
  }
};
dart.addTypeTests(html$.ProgressEvent);
dart.addTypeCaches(html$.ProgressEvent);
dart.setGetterSignature(html$.ProgressEvent, () => ({
  __proto__: dart.getGetters(html$.ProgressEvent.__proto__),
  [$lengthComputable]: core.bool,
  [$loaded]: core.int,
  [$total]: core.int
}));
dart.setLibraryUri(html$.ProgressEvent, L65);
dart.registerExtension("ProgressEvent", html$.ProgressEvent);
html$.PromiseRejectionEvent = class PromiseRejectionEvent$ extends html$.Event {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$.PromiseRejectionEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new PromiseRejectionEvent(type, eventInitDict);
  }
  get [$promise]() {
    return js_util.promiseToFuture(dart.dynamic, this.promise);
  }
  get [$reason]() {
    return this.reason;
  }
};
dart.addTypeTests(html$.PromiseRejectionEvent);
dart.addTypeCaches(html$.PromiseRejectionEvent);
dart.setGetterSignature(html$.PromiseRejectionEvent, () => ({
  __proto__: dart.getGetters(html$.PromiseRejectionEvent.__proto__),
  [$promise]: async.Future,
  [$reason]: core.Object
}));
dart.setLibraryUri(html$.PromiseRejectionEvent, L65);
dart.registerExtension("PromiseRejectionEvent", html$.PromiseRejectionEvent);
html$.PublicKeyCredential = class PublicKeyCredential extends html$.Credential {
  get [$rawId]() {
    return this.rawId;
  }
  get [$response]() {
    return this.response;
  }
};
dart.addTypeTests(html$.PublicKeyCredential);
dart.addTypeCaches(html$.PublicKeyCredential);
dart.setGetterSignature(html$.PublicKeyCredential, () => ({
  __proto__: dart.getGetters(html$.PublicKeyCredential.__proto__),
  [$rawId]: typed_data.ByteBuffer,
  [$response]: html$.AuthenticatorResponse
}));
dart.setLibraryUri(html$.PublicKeyCredential, L65);
dart.registerExtension("PublicKeyCredential", html$.PublicKeyCredential);
html$.PushEvent = class PushEvent$ extends html$.ExtendableEvent {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.PushEvent._create_1(type, eventInitDict_1);
    }
    return html$.PushEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new PushEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new PushEvent(type);
  }
  get [$data]() {
    return this.data;
  }
};
dart.addTypeTests(html$.PushEvent);
dart.addTypeCaches(html$.PushEvent);
dart.setGetterSignature(html$.PushEvent, () => ({
  __proto__: dart.getGetters(html$.PushEvent.__proto__),
  [$data]: html$.PushMessageData
}));
dart.setLibraryUri(html$.PushEvent, L65);
dart.registerExtension("PushEvent", html$.PushEvent);
html$.PushManager = class PushManager extends _interceptors.Interceptor {
  get [$supportedContentEncodings]() {
    return this.supportedContentEncodings;
  }
  [$getSubscription]() {
    return js_util.promiseToFuture(html$.PushSubscription, this.getSubscription());
  }
  [$permissionState](options = null) {
    let options_dict = null;
    if (options != null) {
      options_dict = html_common.convertDartToNative_Dictionary(options);
    }
    return js_util.promiseToFuture(dart.dynamic, this.permissionState(options_dict));
  }
  [$subscribe](options = null) {
    let options_dict = null;
    if (options != null) {
      options_dict = html_common.convertDartToNative_Dictionary(options);
    }
    return js_util.promiseToFuture(html$.PushSubscription, this.subscribe(options_dict));
  }
};
dart.addTypeTests(html$.PushManager);
dart.addTypeCaches(html$.PushManager);
dart.setMethodSignature(html$.PushManager, () => ({
  __proto__: dart.getMethods(html$.PushManager.__proto__),
  [$getSubscription]: dart.fnType(async.Future$(html$.PushSubscription), []),
  [$permissionState]: dart.fnType(async.Future, [], [core.Map]),
  [$subscribe]: dart.fnType(async.Future$(html$.PushSubscription), [], [core.Map])
}));
dart.setGetterSignature(html$.PushManager, () => ({
  __proto__: dart.getGetters(html$.PushManager.__proto__),
  [$supportedContentEncodings]: core.List$(core.String)
}));
dart.setLibraryUri(html$.PushManager, L65);
dart.registerExtension("PushManager", html$.PushManager);
html$.PushMessageData = class PushMessageData extends _interceptors.Interceptor {
  [$arrayBuffer](...args) {
    return this.arrayBuffer.apply(this, args);
  }
  [$blob](...args) {
    return this.blob.apply(this, args);
  }
  [$json](...args) {
    return this.json.apply(this, args);
  }
  [$text](...args) {
    return this.text.apply(this, args);
  }
};
dart.addTypeTests(html$.PushMessageData);
dart.addTypeCaches(html$.PushMessageData);
dart.setMethodSignature(html$.PushMessageData, () => ({
  __proto__: dart.getMethods(html$.PushMessageData.__proto__),
  [$arrayBuffer]: dart.fnType(typed_data.ByteBuffer, []),
  [$blob]: dart.fnType(html$.Blob, []),
  [$json]: dart.fnType(core.Object, []),
  [$text]: dart.fnType(core.String, [])
}));
dart.setLibraryUri(html$.PushMessageData, L65);
dart.registerExtension("PushMessageData", html$.PushMessageData);
html$.PushSubscription = class PushSubscription extends _interceptors.Interceptor {
  get [$endpoint]() {
    return this.endpoint;
  }
  get [$expirationTime]() {
    return this.expirationTime;
  }
  get [$options]() {
    return this.options;
  }
  [$getKey](...args) {
    return this.getKey.apply(this, args);
  }
  [$unsubscribe]() {
    return js_util.promiseToFuture(core.bool, this.unsubscribe());
  }
};
dart.addTypeTests(html$.PushSubscription);
dart.addTypeCaches(html$.PushSubscription);
dart.setMethodSignature(html$.PushSubscription, () => ({
  __proto__: dart.getMethods(html$.PushSubscription.__proto__),
  [$getKey]: dart.fnType(typed_data.ByteBuffer, [core.String]),
  [$unsubscribe]: dart.fnType(async.Future$(core.bool), [])
}));
dart.setGetterSignature(html$.PushSubscription, () => ({
  __proto__: dart.getGetters(html$.PushSubscription.__proto__),
  [$endpoint]: core.String,
  [$expirationTime]: core.int,
  [$options]: html$.PushSubscriptionOptions
}));
dart.setLibraryUri(html$.PushSubscription, L65);
dart.registerExtension("PushSubscription", html$.PushSubscription);
html$.PushSubscriptionOptions = class PushSubscriptionOptions extends _interceptors.Interceptor {
  get [$applicationServerKey]() {
    return this.applicationServerKey;
  }
  get [$userVisibleOnly]() {
    return this.userVisibleOnly;
  }
};
dart.addTypeTests(html$.PushSubscriptionOptions);
dart.addTypeCaches(html$.PushSubscriptionOptions);
dart.setGetterSignature(html$.PushSubscriptionOptions, () => ({
  __proto__: dart.getGetters(html$.PushSubscriptionOptions.__proto__),
  [$applicationServerKey]: typed_data.ByteBuffer,
  [$userVisibleOnly]: core.bool
}));
dart.setLibraryUri(html$.PushSubscriptionOptions, L65);
dart.registerExtension("PushSubscriptionOptions", html$.PushSubscriptionOptions);
html$.QuoteElement = class QuoteElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("q");
  }
  get [$cite]() {
    return this.cite;
  }
  set [$cite](value) {
    this.cite = value;
  }
};
(html$.QuoteElement.created = function() {
  html$.QuoteElement.__proto__.created.call(this);
  ;
}).prototype = html$.QuoteElement.prototype;
dart.addTypeTests(html$.QuoteElement);
dart.addTypeCaches(html$.QuoteElement);
dart.setGetterSignature(html$.QuoteElement, () => ({
  __proto__: dart.getGetters(html$.QuoteElement.__proto__),
  [$cite]: core.String
}));
dart.setSetterSignature(html$.QuoteElement, () => ({
  __proto__: dart.getSetters(html$.QuoteElement.__proto__),
  [$cite]: core.String
}));
dart.setLibraryUri(html$.QuoteElement, L65);
dart.registerExtension("HTMLQuoteElement", html$.QuoteElement);
html$.Range = class Range extends _interceptors.Interceptor {
  static new() {
    return html$.document.createRange();
  }
  static fromPoint(point) {
    return html$.document[_caretRangeFromPoint](point.x[$toInt](), point.y[$toInt]());
  }
  get [$collapsed]() {
    return this.collapsed;
  }
  get [$commonAncestorContainer]() {
    return this.commonAncestorContainer;
  }
  get [$endContainer]() {
    return this.endContainer;
  }
  get [$endOffset]() {
    return this.endOffset;
  }
  get [$startContainer]() {
    return this.startContainer;
  }
  get [$startOffset]() {
    return this.startOffset;
  }
  [$cloneContents](...args) {
    return this.cloneContents.apply(this, args);
  }
  [$cloneRange](...args) {
    return this.cloneRange.apply(this, args);
  }
  [$collapse](...args) {
    return this.collapse.apply(this, args);
  }
  [$compareBoundaryPoints](...args) {
    return this.compareBoundaryPoints.apply(this, args);
  }
  [$comparePoint](...args) {
    return this.comparePoint.apply(this, args);
  }
  [$createContextualFragment](...args) {
    return this.createContextualFragment.apply(this, args);
  }
  [$deleteContents](...args) {
    return this.deleteContents.apply(this, args);
  }
  [$detach](...args) {
    return this.detach.apply(this, args);
  }
  [$expand](...args) {
    return this.expand.apply(this, args);
  }
  [$extractContents](...args) {
    return this.extractContents.apply(this, args);
  }
  [$getBoundingClientRect](...args) {
    return this.getBoundingClientRect.apply(this, args);
  }
  [_getClientRects](...args) {
    return this.getClientRects.apply(this, args);
  }
  [$insertNode](...args) {
    return this.insertNode.apply(this, args);
  }
  [$isPointInRange](...args) {
    return this.isPointInRange.apply(this, args);
  }
  [$selectNode](...args) {
    return this.selectNode.apply(this, args);
  }
  [$selectNodeContents](...args) {
    return this.selectNodeContents.apply(this, args);
  }
  [$setEnd](...args) {
    return this.setEnd.apply(this, args);
  }
  [$setEndAfter](...args) {
    return this.setEndAfter.apply(this, args);
  }
  [$setEndBefore](...args) {
    return this.setEndBefore.apply(this, args);
  }
  [$setStart](...args) {
    return this.setStart.apply(this, args);
  }
  [$setStartAfter](...args) {
    return this.setStartAfter.apply(this, args);
  }
  [$setStartBefore](...args) {
    return this.setStartBefore.apply(this, args);
  }
  [$surroundContents](...args) {
    return this.surroundContents.apply(this, args);
  }
  [$getClientRects]() {
    let value = this[_getClientRects]();
    let jsProto = value.prototype;
    if (jsProto == null) {
      value.prototype = Object.create(null);
    }
    _js_helper.applyExtension("DOMRectList", value);
    return value;
  }
  static get supportsCreateContextualFragment() {
    return "createContextualFragment" in window.Range.prototype;
  }
};
dart.addTypeTests(html$.Range);
dart.addTypeCaches(html$.Range);
dart.setMethodSignature(html$.Range, () => ({
  __proto__: dart.getMethods(html$.Range.__proto__),
  [$cloneContents]: dart.fnType(html$.DocumentFragment, []),
  [$cloneRange]: dart.fnType(html$.Range, []),
  [$collapse]: dart.fnType(dart.void, [], [core.bool]),
  [$compareBoundaryPoints]: dart.fnType(core.int, [core.int, html$.Range]),
  [$comparePoint]: dart.fnType(core.int, [html$.Node, core.int]),
  [$createContextualFragment]: dart.fnType(html$.DocumentFragment, [core.String]),
  [$deleteContents]: dart.fnType(dart.void, []),
  [$detach]: dart.fnType(dart.void, []),
  [$expand]: dart.fnType(dart.void, [core.String]),
  [$extractContents]: dart.fnType(html$.DocumentFragment, []),
  [$getBoundingClientRect]: dart.fnType(math.Rectangle$(core.num), []),
  [_getClientRects]: dart.fnType(core.List$(math.Rectangle$(core.num)), []),
  [$insertNode]: dart.fnType(dart.void, [html$.Node]),
  [$isPointInRange]: dart.fnType(core.bool, [html$.Node, core.int]),
  [$selectNode]: dart.fnType(dart.void, [html$.Node]),
  [$selectNodeContents]: dart.fnType(dart.void, [html$.Node]),
  [$setEnd]: dart.fnType(dart.void, [html$.Node, core.int]),
  [$setEndAfter]: dart.fnType(dart.void, [html$.Node]),
  [$setEndBefore]: dart.fnType(dart.void, [html$.Node]),
  [$setStart]: dart.fnType(dart.void, [html$.Node, core.int]),
  [$setStartAfter]: dart.fnType(dart.void, [html$.Node]),
  [$setStartBefore]: dart.fnType(dart.void, [html$.Node]),
  [$surroundContents]: dart.fnType(dart.void, [html$.Node]),
  [$getClientRects]: dart.fnType(core.List$(math.Rectangle$(core.num)), [])
}));
dart.setGetterSignature(html$.Range, () => ({
  __proto__: dart.getGetters(html$.Range.__proto__),
  [$collapsed]: core.bool,
  [$commonAncestorContainer]: html$.Node,
  [$endContainer]: html$.Node,
  [$endOffset]: core.int,
  [$startContainer]: html$.Node,
  [$startOffset]: core.int
}));
dart.setLibraryUri(html$.Range, L65);
dart.defineLazy(html$.Range, {
  /*html$.Range.END_TO_END*/get END_TO_END() {
    return 2;
  },
  /*html$.Range.END_TO_START*/get END_TO_START() {
    return 3;
  },
  /*html$.Range.START_TO_END*/get START_TO_END() {
    return 1;
  },
  /*html$.Range.START_TO_START*/get START_TO_START() {
    return 0;
  }
}, true);
dart.registerExtension("Range", html$.Range);
html$.RelatedApplication = class RelatedApplication extends _interceptors.Interceptor {
  get [$id]() {
    return this.id;
  }
  get [$platform]() {
    return this.platform;
  }
  get [$url]() {
    return this.url;
  }
};
dart.addTypeTests(html$.RelatedApplication);
dart.addTypeCaches(html$.RelatedApplication);
dart.setGetterSignature(html$.RelatedApplication, () => ({
  __proto__: dart.getGetters(html$.RelatedApplication.__proto__),
  [$id]: core.String,
  [$platform]: core.String,
  [$url]: core.String
}));
dart.setLibraryUri(html$.RelatedApplication, L65);
dart.registerExtension("RelatedApplication", html$.RelatedApplication);
html$.RelativeOrientationSensor = class RelativeOrientationSensor$ extends html$.OrientationSensor {
  static new(sensorOptions = null) {
    if (sensorOptions != null) {
      let sensorOptions_1 = html_common.convertDartToNative_Dictionary(sensorOptions);
      return html$.RelativeOrientationSensor._create_1(sensorOptions_1);
    }
    return html$.RelativeOrientationSensor._create_2();
  }
  static _create_1(sensorOptions) {
    return new RelativeOrientationSensor(sensorOptions);
  }
  static _create_2() {
    return new RelativeOrientationSensor();
  }
};
dart.addTypeTests(html$.RelativeOrientationSensor);
dart.addTypeCaches(html$.RelativeOrientationSensor);
dart.setLibraryUri(html$.RelativeOrientationSensor, L65);
dart.registerExtension("RelativeOrientationSensor", html$.RelativeOrientationSensor);
html$.RemotePlayback = class RemotePlayback extends html$.EventTarget {
  get [$state]() {
    return this.state;
  }
  [$cancelWatchAvailability](id = null) {
    return js_util.promiseToFuture(dart.dynamic, this.cancelWatchAvailability(id));
  }
  [$prompt]() {
    return js_util.promiseToFuture(dart.dynamic, this.prompt());
  }
  [$watchAvailability](callback) {
    return js_util.promiseToFuture(core.int, this.watchAvailability(callback));
  }
};
dart.addTypeTests(html$.RemotePlayback);
dart.addTypeCaches(html$.RemotePlayback);
dart.setMethodSignature(html$.RemotePlayback, () => ({
  __proto__: dart.getMethods(html$.RemotePlayback.__proto__),
  [$cancelWatchAvailability]: dart.fnType(async.Future, [], [core.int]),
  [$prompt]: dart.fnType(async.Future, []),
  [$watchAvailability]: dart.fnType(async.Future$(core.int), [dart.fnType(dart.void, [core.bool])])
}));
dart.setGetterSignature(html$.RemotePlayback, () => ({
  __proto__: dart.getGetters(html$.RemotePlayback.__proto__),
  [$state]: core.String
}));
dart.setLibraryUri(html$.RemotePlayback, L65);
dart.registerExtension("RemotePlayback", html$.RemotePlayback);
html$.ReportingObserver = class ReportingObserver$ extends _interceptors.Interceptor {
  static new(callback) {
    let callback_1 = _js_helper.convertDartClosureToJS(ListLAndReportingObserverLToLvoid(), callback, 2);
    return html$.ReportingObserver._create_1(callback_1);
  }
  static _create_1(callback) {
    return new ReportingObserver(callback);
  }
  [$disconnect](...args) {
    return this.disconnect.apply(this, args);
  }
  [$observe](...args) {
    return this.observe.apply(this, args);
  }
};
dart.addTypeTests(html$.ReportingObserver);
dart.addTypeCaches(html$.ReportingObserver);
dart.setMethodSignature(html$.ReportingObserver, () => ({
  __proto__: dart.getMethods(html$.ReportingObserver.__proto__),
  [$disconnect]: dart.fnType(dart.void, []),
  [$observe]: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(html$.ReportingObserver, L65);
dart.registerExtension("ReportingObserver", html$.ReportingObserver);
html$.ResizeObserver = class ResizeObserver$ extends _interceptors.Interceptor {
  static new(callback) {
    let callback_1 = _js_helper.convertDartClosureToJS(ListLAndResizeObserverLToLvoid(), callback, 2);
    return html$.ResizeObserver._create_1(callback_1);
  }
  static _create_1(callback) {
    return new ResizeObserver(callback);
  }
  [$disconnect](...args) {
    return this.disconnect.apply(this, args);
  }
  [$observe](...args) {
    return this.observe.apply(this, args);
  }
  [$unobserve](...args) {
    return this.unobserve.apply(this, args);
  }
};
dart.addTypeTests(html$.ResizeObserver);
dart.addTypeCaches(html$.ResizeObserver);
dart.setMethodSignature(html$.ResizeObserver, () => ({
  __proto__: dart.getMethods(html$.ResizeObserver.__proto__),
  [$disconnect]: dart.fnType(dart.void, []),
  [$observe]: dart.fnType(dart.void, [html$.Element]),
  [$unobserve]: dart.fnType(dart.void, [html$.Element])
}));
dart.setLibraryUri(html$.ResizeObserver, L65);
dart.registerExtension("ResizeObserver", html$.ResizeObserver);
html$.ResizeObserverEntry = class ResizeObserverEntry extends _interceptors.Interceptor {
  get [$contentRect]() {
    return this.contentRect;
  }
  get [$target]() {
    return this.target;
  }
};
dart.addTypeTests(html$.ResizeObserverEntry);
dart.addTypeCaches(html$.ResizeObserverEntry);
dart.setGetterSignature(html$.ResizeObserverEntry, () => ({
  __proto__: dart.getGetters(html$.ResizeObserverEntry.__proto__),
  [$contentRect]: html$.DomRectReadOnly,
  [$target]: html$.Element
}));
dart.setLibraryUri(html$.ResizeObserverEntry, L65);
dart.registerExtension("ResizeObserverEntry", html$.ResizeObserverEntry);
html$.RtcCertificate = class RtcCertificate extends _interceptors.Interceptor {
  get [$expires]() {
    return this.expires;
  }
  [$getFingerprints](...args) {
    return this.getFingerprints.apply(this, args);
  }
};
dart.addTypeTests(html$.RtcCertificate);
dart.addTypeCaches(html$.RtcCertificate);
dart.setMethodSignature(html$.RtcCertificate, () => ({
  __proto__: dart.getMethods(html$.RtcCertificate.__proto__),
  [$getFingerprints]: dart.fnType(core.List$(core.Map), [])
}));
dart.setGetterSignature(html$.RtcCertificate, () => ({
  __proto__: dart.getGetters(html$.RtcCertificate.__proto__),
  [$expires]: core.int
}));
dart.setLibraryUri(html$.RtcCertificate, L65);
dart.registerExtension("RTCCertificate", html$.RtcCertificate);
html$.RtcDataChannel = class RtcDataChannel extends html$.EventTarget {
  get [$binaryType]() {
    return this.binaryType;
  }
  set [$binaryType](value) {
    this.binaryType = value;
  }
  get [$bufferedAmount]() {
    return this.bufferedAmount;
  }
  get [$bufferedAmountLowThreshold]() {
    return this.bufferedAmountLowThreshold;
  }
  set [$bufferedAmountLowThreshold](value) {
    this.bufferedAmountLowThreshold = value;
  }
  get [$id]() {
    return this.id;
  }
  get [$label]() {
    return this.label;
  }
  get [$maxRetransmitTime]() {
    return this.maxRetransmitTime;
  }
  get [$maxRetransmits]() {
    return this.maxRetransmits;
  }
  get [$negotiated]() {
    return this.negotiated;
  }
  get [$ordered]() {
    return this.ordered;
  }
  get [$protocol]() {
    return this.protocol;
  }
  get [$readyState]() {
    return this.readyState;
  }
  get [$reliable]() {
    return this.reliable;
  }
  [$close](...args) {
    return this.close.apply(this, args);
  }
  [$send](...args) {
    return this.send.apply(this, args);
  }
  [$sendBlob](...args) {
    return this.send.apply(this, args);
  }
  [$sendByteBuffer](...args) {
    return this.send.apply(this, args);
  }
  [$sendString](...args) {
    return this.send.apply(this, args);
  }
  [$sendTypedData](...args) {
    return this.send.apply(this, args);
  }
  get [$onClose]() {
    return html$.RtcDataChannel.closeEvent.forTarget(this);
  }
  get [$onError]() {
    return html$.RtcDataChannel.errorEvent.forTarget(this);
  }
  get [$onMessage]() {
    return html$.RtcDataChannel.messageEvent.forTarget(this);
  }
  get [$onOpen]() {
    return html$.RtcDataChannel.openEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.RtcDataChannel);
dart.addTypeCaches(html$.RtcDataChannel);
dart.setMethodSignature(html$.RtcDataChannel, () => ({
  __proto__: dart.getMethods(html$.RtcDataChannel.__proto__),
  [$close]: dart.fnType(dart.void, []),
  [$send]: dart.fnType(dart.void, [dart.dynamic]),
  [$sendBlob]: dart.fnType(dart.void, [html$.Blob]),
  [$sendByteBuffer]: dart.fnType(dart.void, [typed_data.ByteBuffer]),
  [$sendString]: dart.fnType(dart.void, [core.String]),
  [$sendTypedData]: dart.fnType(dart.void, [typed_data.TypedData])
}));
dart.setGetterSignature(html$.RtcDataChannel, () => ({
  __proto__: dart.getGetters(html$.RtcDataChannel.__proto__),
  [$binaryType]: core.String,
  [$bufferedAmount]: core.int,
  [$bufferedAmountLowThreshold]: core.int,
  [$id]: core.int,
  [$label]: core.String,
  [$maxRetransmitTime]: core.int,
  [$maxRetransmits]: core.int,
  [$negotiated]: core.bool,
  [$ordered]: core.bool,
  [$protocol]: core.String,
  [$readyState]: core.String,
  [$reliable]: core.bool,
  [$onClose]: async.Stream$(html$.Event),
  [$onError]: async.Stream$(html$.Event),
  [$onMessage]: async.Stream$(html$.MessageEvent),
  [$onOpen]: async.Stream$(html$.Event)
}));
dart.setSetterSignature(html$.RtcDataChannel, () => ({
  __proto__: dart.getSetters(html$.RtcDataChannel.__proto__),
  [$binaryType]: core.String,
  [$bufferedAmountLowThreshold]: core.int
}));
dart.setLibraryUri(html$.RtcDataChannel, L65);
dart.defineLazy(html$.RtcDataChannel, {
  /*html$.RtcDataChannel.closeEvent*/get closeEvent() {
    return C216 || CT.C216;
  },
  /*html$.RtcDataChannel.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  },
  /*html$.RtcDataChannel.messageEvent*/get messageEvent() {
    return C313 || CT.C313;
  },
  /*html$.RtcDataChannel.openEvent*/get openEvent() {
    return C331 || CT.C331;
  }
}, true);
dart.registerExtension("RTCDataChannel", html$.RtcDataChannel);
dart.registerExtension("DataChannel", html$.RtcDataChannel);
html$.RtcDataChannelEvent = class RtcDataChannelEvent extends html$.Event {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$.RtcDataChannelEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new RTCDataChannelEvent(type, eventInitDict);
  }
  get [$channel]() {
    return this.channel;
  }
};
dart.addTypeTests(html$.RtcDataChannelEvent);
dart.addTypeCaches(html$.RtcDataChannelEvent);
dart.setGetterSignature(html$.RtcDataChannelEvent, () => ({
  __proto__: dart.getGetters(html$.RtcDataChannelEvent.__proto__),
  [$channel]: html$.RtcDataChannel
}));
dart.setLibraryUri(html$.RtcDataChannelEvent, L65);
dart.registerExtension("RTCDataChannelEvent", html$.RtcDataChannelEvent);
var C354;
html$.RtcDtmfSender = class RtcDtmfSender extends html$.EventTarget {
  get [$canInsertDtmf]() {
    return this.canInsertDTMF;
  }
  get [$duration]() {
    return this.duration;
  }
  get [$interToneGap]() {
    return this.interToneGap;
  }
  get [$toneBuffer]() {
    return this.toneBuffer;
  }
  get [$track]() {
    return this.track;
  }
  [$insertDtmf](...args) {
    return this.insertDTMF.apply(this, args);
  }
  get [$onToneChange]() {
    return html$.RtcDtmfSender.toneChangeEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.RtcDtmfSender);
dart.addTypeCaches(html$.RtcDtmfSender);
dart.setMethodSignature(html$.RtcDtmfSender, () => ({
  __proto__: dart.getMethods(html$.RtcDtmfSender.__proto__),
  [$insertDtmf]: dart.fnType(dart.void, [core.String], [core.int, core.int])
}));
dart.setGetterSignature(html$.RtcDtmfSender, () => ({
  __proto__: dart.getGetters(html$.RtcDtmfSender.__proto__),
  [$canInsertDtmf]: core.bool,
  [$duration]: core.int,
  [$interToneGap]: core.int,
  [$toneBuffer]: core.String,
  [$track]: html$.MediaStreamTrack,
  [$onToneChange]: async.Stream$(html$.RtcDtmfToneChangeEvent)
}));
dart.setLibraryUri(html$.RtcDtmfSender, L65);
dart.defineLazy(html$.RtcDtmfSender, {
  /*html$.RtcDtmfSender.toneChangeEvent*/get toneChangeEvent() {
    return C354 || CT.C354;
  }
}, true);
dart.registerExtension("RTCDTMFSender", html$.RtcDtmfSender);
html$.RtcDtmfToneChangeEvent = class RtcDtmfToneChangeEvent extends html$.Event {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$.RtcDtmfToneChangeEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new RTCDTMFToneChangeEvent(type, eventInitDict);
  }
  get [$tone]() {
    return this.tone;
  }
};
dart.addTypeTests(html$.RtcDtmfToneChangeEvent);
dart.addTypeCaches(html$.RtcDtmfToneChangeEvent);
dart.setGetterSignature(html$.RtcDtmfToneChangeEvent, () => ({
  __proto__: dart.getGetters(html$.RtcDtmfToneChangeEvent.__proto__),
  [$tone]: core.String
}));
dart.setLibraryUri(html$.RtcDtmfToneChangeEvent, L65);
dart.registerExtension("RTCDTMFToneChangeEvent", html$.RtcDtmfToneChangeEvent);
html$.RtcIceCandidate = class RtcIceCandidate extends _interceptors.Interceptor {
  static new(dictionary) {
    let constructorName = window.RTCIceCandidate;
    return new constructorName(html_common.convertDartToNative_SerializedScriptValue(dictionary));
  }
  get [$candidate]() {
    return this.candidate;
  }
  set [$candidate](value) {
    this.candidate = value;
  }
  get [$sdpMLineIndex]() {
    return this.sdpMLineIndex;
  }
  set [$sdpMLineIndex](value) {
    this.sdpMLineIndex = value;
  }
  get [$sdpMid]() {
    return this.sdpMid;
  }
  set [$sdpMid](value) {
    this.sdpMid = value;
  }
};
dart.addTypeTests(html$.RtcIceCandidate);
dart.addTypeCaches(html$.RtcIceCandidate);
dart.setGetterSignature(html$.RtcIceCandidate, () => ({
  __proto__: dart.getGetters(html$.RtcIceCandidate.__proto__),
  [$candidate]: core.String,
  [$sdpMLineIndex]: core.int,
  [$sdpMid]: core.String
}));
dart.setSetterSignature(html$.RtcIceCandidate, () => ({
  __proto__: dart.getSetters(html$.RtcIceCandidate.__proto__),
  [$candidate]: core.String,
  [$sdpMLineIndex]: core.int,
  [$sdpMid]: core.String
}));
dart.setLibraryUri(html$.RtcIceCandidate, L65);
dart.registerExtension("RTCIceCandidate", html$.RtcIceCandidate);
dart.registerExtension("mozRTCIceCandidate", html$.RtcIceCandidate);
var _get_timestamp = dart.privateName(html$, "_get_timestamp");
html$.RtcLegacyStatsReport = class RtcLegacyStatsReport extends _interceptors.Interceptor {
  get [$id]() {
    return this.id;
  }
  get [$timestamp]() {
    return html_common.convertNativeToDart_DateTime(this[_get_timestamp]);
  }
  get [_get_timestamp]() {
    return this.timestamp;
  }
  get [$type]() {
    return this.type;
  }
  [$names](...args) {
    return this.names.apply(this, args);
  }
  [$stat](...args) {
    return this.stat.apply(this, args);
  }
};
dart.addTypeTests(html$.RtcLegacyStatsReport);
dart.addTypeCaches(html$.RtcLegacyStatsReport);
dart.setMethodSignature(html$.RtcLegacyStatsReport, () => ({
  __proto__: dart.getMethods(html$.RtcLegacyStatsReport.__proto__),
  [$names]: dart.fnType(core.List$(core.String), []),
  [$stat]: dart.fnType(core.String, [core.String])
}));
dart.setGetterSignature(html$.RtcLegacyStatsReport, () => ({
  __proto__: dart.getGetters(html$.RtcLegacyStatsReport.__proto__),
  [$id]: core.String,
  [$timestamp]: core.DateTime,
  [_get_timestamp]: dart.dynamic,
  [$type]: core.String
}));
dart.setLibraryUri(html$.RtcLegacyStatsReport, L65);
dart.registerExtension("RTCLegacyStatsReport", html$.RtcLegacyStatsReport);
var _getStats = dart.privateName(html$, "_getStats");
var _addStream_1 = dart.privateName(html$, "_addStream_1");
var _addStream_2 = dart.privateName(html$, "_addStream_2");
var _createDataChannel_1 = dart.privateName(html$, "_createDataChannel_1");
var _createDataChannel_2 = dart.privateName(html$, "_createDataChannel_2");
var _setConfiguration_1 = dart.privateName(html$, "_setConfiguration_1");
var C355;
var C356;
var C357;
var C358;
var C359;
var C360;
var C361;
html$.RtcPeerConnection = class RtcPeerConnection extends html$.EventTarget {
  static new(rtcIceServers, mediaConstraints = null) {
    let constructorName = window.RTCPeerConnection;
    if (mediaConstraints != null) {
      return new constructorName(html_common.convertDartToNative_SerializedScriptValue(rtcIceServers), html_common.convertDartToNative_SerializedScriptValue(mediaConstraints));
    } else {
      return new constructorName(html_common.convertDartToNative_SerializedScriptValue(rtcIceServers));
    }
  }
  static get supported() {
    try {
      html$.RtcPeerConnection.new(new _js_helper.LinkedMap.from(["iceServers", JSArrayOfMapLOfStringL$StringL().of([new (IdentityMapOfStringL$StringL()).from(["url", "stun:localhost"])])]));
      return true;
    } catch (e) {
      let _ = dart.getThrown(e);
      return false;
    }
    return false;
  }
  [$getLegacyStats](selector = null) {
    let completer = CompleterOfRtcStatsResponseL().new();
    this[_getStats](dart.fn(value => {
      completer.complete(value);
    }, RtcStatsResponseLToNullN()), selector);
    return completer.future;
  }
  [_getStats](...args) {
    return this.getStats.apply(this, args);
  }
  static generateCertificate(keygenAlgorithm) {
    return generateCertificate(keygenAlgorithm);
  }
  get [$iceConnectionState]() {
    return this.iceConnectionState;
  }
  get [$iceGatheringState]() {
    return this.iceGatheringState;
  }
  get [$localDescription]() {
    return this.localDescription;
  }
  get [$remoteDescription]() {
    return this.remoteDescription;
  }
  get [$signalingState]() {
    return this.signalingState;
  }
  [$addIceCandidate](candidate, successCallback = null, failureCallback = null) {
    return js_util.promiseToFuture(dart.dynamic, this.addIceCandidate(candidate, successCallback, failureCallback));
  }
  [$addStream](stream, mediaConstraints = null) {
    if (mediaConstraints != null) {
      let mediaConstraints_1 = html_common.convertDartToNative_Dictionary(mediaConstraints);
      this[_addStream_1](stream, mediaConstraints_1);
      return;
    }
    this[_addStream_2](stream);
    return;
  }
  [_addStream_1](...args) {
    return this.addStream.apply(this, args);
  }
  [_addStream_2](...args) {
    return this.addStream.apply(this, args);
  }
  [$addTrack](...args) {
    return this.addTrack.apply(this, args);
  }
  [$close](...args) {
    return this.close.apply(this, args);
  }
  [$createAnswer](options = null) {
    let options_dict = null;
    if (options != null) {
      options_dict = html_common.convertDartToNative_Dictionary(options);
    }
    return js_util.promiseToFuture(html$.RtcSessionDescription, this.createAnswer(options_dict));
  }
  [$createDtmfSender](...args) {
    return this.createDTMFSender.apply(this, args);
  }
  [$createDataChannel](label, dataChannelDict = null) {
    if (dataChannelDict != null) {
      let dataChannelDict_1 = html_common.convertDartToNative_Dictionary(dataChannelDict);
      return this[_createDataChannel_1](label, dataChannelDict_1);
    }
    return this[_createDataChannel_2](label);
  }
  [_createDataChannel_1](...args) {
    return this.createDataChannel.apply(this, args);
  }
  [_createDataChannel_2](...args) {
    return this.createDataChannel.apply(this, args);
  }
  [$createOffer](options = null) {
    let options_dict = null;
    if (options != null) {
      options_dict = html_common.convertDartToNative_Dictionary(options);
    }
    return js_util.promiseToFuture(html$.RtcSessionDescription, this.createOffer(options_dict));
  }
  [$getLocalStreams](...args) {
    return this.getLocalStreams.apply(this, args);
  }
  [$getReceivers](...args) {
    return this.getReceivers.apply(this, args);
  }
  [$getRemoteStreams](...args) {
    return this.getRemoteStreams.apply(this, args);
  }
  [$getSenders](...args) {
    return this.getSenders.apply(this, args);
  }
  [$getStats]() {
    return js_util.promiseToFuture(html$.RtcStatsReport, this.getStats());
  }
  [$removeStream](...args) {
    return this.removeStream.apply(this, args);
  }
  [$removeTrack](...args) {
    return this.removeTrack.apply(this, args);
  }
  [$setConfiguration](configuration) {
    let configuration_1 = html_common.convertDartToNative_Dictionary(configuration);
    this[_setConfiguration_1](configuration_1);
    return;
  }
  [_setConfiguration_1](...args) {
    return this.setConfiguration.apply(this, args);
  }
  [$setLocalDescription](description) {
    let description_dict = html_common.convertDartToNative_Dictionary(description);
    return js_util.promiseToFuture(dart.dynamic, this.setLocalDescription(description_dict));
  }
  [$setRemoteDescription](description) {
    let description_dict = html_common.convertDartToNative_Dictionary(description);
    return js_util.promiseToFuture(dart.dynamic, this.setRemoteDescription(description_dict));
  }
  get [$onAddStream]() {
    return html$.RtcPeerConnection.addStreamEvent.forTarget(this);
  }
  get [$onDataChannel]() {
    return html$.RtcPeerConnection.dataChannelEvent.forTarget(this);
  }
  get [$onIceCandidate]() {
    return html$.RtcPeerConnection.iceCandidateEvent.forTarget(this);
  }
  get [$onIceConnectionStateChange]() {
    return html$.RtcPeerConnection.iceConnectionStateChangeEvent.forTarget(this);
  }
  get [$onNegotiationNeeded]() {
    return html$.RtcPeerConnection.negotiationNeededEvent.forTarget(this);
  }
  get [$onRemoveStream]() {
    return html$.RtcPeerConnection.removeStreamEvent.forTarget(this);
  }
  get [$onSignalingStateChange]() {
    return html$.RtcPeerConnection.signalingStateChangeEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.RtcPeerConnection);
dart.addTypeCaches(html$.RtcPeerConnection);
dart.setMethodSignature(html$.RtcPeerConnection, () => ({
  __proto__: dart.getMethods(html$.RtcPeerConnection.__proto__),
  [$getLegacyStats]: dart.fnType(async.Future$(html$.RtcStatsResponse), [], [html$.MediaStreamTrack]),
  [_getStats]: dart.fnType(async.Future, [], [dart.fnType(dart.void, [html$.RtcStatsResponse]), html$.MediaStreamTrack]),
  [$addIceCandidate]: dart.fnType(async.Future, [core.Object], [dart.fnType(dart.void, []), dart.fnType(dart.void, [html$.DomException])]),
  [$addStream]: dart.fnType(dart.void, [html$.MediaStream], [core.Map]),
  [_addStream_1]: dart.fnType(dart.void, [html$.MediaStream, dart.dynamic]),
  [_addStream_2]: dart.fnType(dart.void, [html$.MediaStream]),
  [$addTrack]: dart.fnType(html$.RtcRtpSender, [html$.MediaStreamTrack, html$.MediaStream]),
  [$close]: dart.fnType(dart.void, []),
  [$createAnswer]: dart.fnType(async.Future$(html$.RtcSessionDescription), [], [core.Map]),
  [$createDtmfSender]: dart.fnType(html$.RtcDtmfSender, [html$.MediaStreamTrack]),
  [$createDataChannel]: dart.fnType(html$.RtcDataChannel, [core.String], [core.Map]),
  [_createDataChannel_1]: dart.fnType(html$.RtcDataChannel, [dart.dynamic, dart.dynamic]),
  [_createDataChannel_2]: dart.fnType(html$.RtcDataChannel, [dart.dynamic]),
  [$createOffer]: dart.fnType(async.Future$(html$.RtcSessionDescription), [], [core.Map]),
  [$getLocalStreams]: dart.fnType(core.List$(html$.MediaStream), []),
  [$getReceivers]: dart.fnType(core.List$(html$.RtcRtpReceiver), []),
  [$getRemoteStreams]: dart.fnType(core.List$(html$.MediaStream), []),
  [$getSenders]: dart.fnType(core.List$(html$.RtcRtpSender), []),
  [$getStats]: dart.fnType(async.Future$(html$.RtcStatsReport), []),
  [$removeStream]: dart.fnType(dart.void, [html$.MediaStream]),
  [$removeTrack]: dart.fnType(dart.void, [html$.RtcRtpSender]),
  [$setConfiguration]: dart.fnType(dart.void, [core.Map]),
  [_setConfiguration_1]: dart.fnType(dart.void, [dart.dynamic]),
  [$setLocalDescription]: dart.fnType(async.Future, [core.Map]),
  [$setRemoteDescription]: dart.fnType(async.Future, [core.Map])
}));
dart.setGetterSignature(html$.RtcPeerConnection, () => ({
  __proto__: dart.getGetters(html$.RtcPeerConnection.__proto__),
  [$iceConnectionState]: core.String,
  [$iceGatheringState]: core.String,
  [$localDescription]: html$.RtcSessionDescription,
  [$remoteDescription]: html$.RtcSessionDescription,
  [$signalingState]: core.String,
  [$onAddStream]: async.Stream$(html$.MediaStreamEvent),
  [$onDataChannel]: async.Stream$(html$.RtcDataChannelEvent),
  [$onIceCandidate]: async.Stream$(html$.RtcPeerConnectionIceEvent),
  [$onIceConnectionStateChange]: async.Stream$(html$.Event),
  [$onNegotiationNeeded]: async.Stream$(html$.Event),
  [$onRemoveStream]: async.Stream$(html$.MediaStreamEvent),
  [$onSignalingStateChange]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.RtcPeerConnection, L65);
dart.defineLazy(html$.RtcPeerConnection, {
  /*html$.RtcPeerConnection.addStreamEvent*/get addStreamEvent() {
    return C355 || CT.C355;
  },
  /*html$.RtcPeerConnection.dataChannelEvent*/get dataChannelEvent() {
    return C356 || CT.C356;
  },
  /*html$.RtcPeerConnection.iceCandidateEvent*/get iceCandidateEvent() {
    return C357 || CT.C357;
  },
  /*html$.RtcPeerConnection.iceConnectionStateChangeEvent*/get iceConnectionStateChangeEvent() {
    return C358 || CT.C358;
  },
  /*html$.RtcPeerConnection.negotiationNeededEvent*/get negotiationNeededEvent() {
    return C359 || CT.C359;
  },
  /*html$.RtcPeerConnection.removeStreamEvent*/get removeStreamEvent() {
    return C360 || CT.C360;
  },
  /*html$.RtcPeerConnection.signalingStateChangeEvent*/get signalingStateChangeEvent() {
    return C361 || CT.C361;
  }
}, true);
dart.registerExtension("RTCPeerConnection", html$.RtcPeerConnection);
dart.registerExtension("webkitRTCPeerConnection", html$.RtcPeerConnection);
dart.registerExtension("mozRTCPeerConnection", html$.RtcPeerConnection);
html$.RtcPeerConnectionIceEvent = class RtcPeerConnectionIceEvent extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.RtcPeerConnectionIceEvent._create_1(type, eventInitDict_1);
    }
    return html$.RtcPeerConnectionIceEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new RTCPeerConnectionIceEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new RTCPeerConnectionIceEvent(type);
  }
  get [$candidate]() {
    return this.candidate;
  }
};
dart.addTypeTests(html$.RtcPeerConnectionIceEvent);
dart.addTypeCaches(html$.RtcPeerConnectionIceEvent);
dart.setGetterSignature(html$.RtcPeerConnectionIceEvent, () => ({
  __proto__: dart.getGetters(html$.RtcPeerConnectionIceEvent.__proto__),
  [$candidate]: html$.RtcIceCandidate
}));
dart.setLibraryUri(html$.RtcPeerConnectionIceEvent, L65);
dart.registerExtension("RTCPeerConnectionIceEvent", html$.RtcPeerConnectionIceEvent);
html$.RtcRtpContributingSource = class RtcRtpContributingSource extends _interceptors.Interceptor {
  get [$source]() {
    return this.source;
  }
  get [$timestamp]() {
    return this.timestamp;
  }
};
dart.addTypeTests(html$.RtcRtpContributingSource);
dart.addTypeCaches(html$.RtcRtpContributingSource);
dart.setGetterSignature(html$.RtcRtpContributingSource, () => ({
  __proto__: dart.getGetters(html$.RtcRtpContributingSource.__proto__),
  [$source]: core.int,
  [$timestamp]: core.num
}));
dart.setLibraryUri(html$.RtcRtpContributingSource, L65);
dart.registerExtension("RTCRtpContributingSource", html$.RtcRtpContributingSource);
html$.RtcRtpReceiver = class RtcRtpReceiver extends _interceptors.Interceptor {
  get [$track]() {
    return this.track;
  }
  [$getContributingSources](...args) {
    return this.getContributingSources.apply(this, args);
  }
};
dart.addTypeTests(html$.RtcRtpReceiver);
dart.addTypeCaches(html$.RtcRtpReceiver);
dart.setMethodSignature(html$.RtcRtpReceiver, () => ({
  __proto__: dart.getMethods(html$.RtcRtpReceiver.__proto__),
  [$getContributingSources]: dart.fnType(core.List$(html$.RtcRtpContributingSource), [])
}));
dart.setGetterSignature(html$.RtcRtpReceiver, () => ({
  __proto__: dart.getGetters(html$.RtcRtpReceiver.__proto__),
  [$track]: html$.MediaStreamTrack
}));
dart.setLibraryUri(html$.RtcRtpReceiver, L65);
dart.registerExtension("RTCRtpReceiver", html$.RtcRtpReceiver);
html$.RtcRtpSender = class RtcRtpSender extends _interceptors.Interceptor {
  get [$track]() {
    return this.track;
  }
};
dart.addTypeTests(html$.RtcRtpSender);
dart.addTypeCaches(html$.RtcRtpSender);
dart.setGetterSignature(html$.RtcRtpSender, () => ({
  __proto__: dart.getGetters(html$.RtcRtpSender.__proto__),
  [$track]: html$.MediaStreamTrack
}));
dart.setLibraryUri(html$.RtcRtpSender, L65);
dart.registerExtension("RTCRtpSender", html$.RtcRtpSender);
html$.RtcSessionDescription = class RtcSessionDescription extends _interceptors.Interceptor {
  static new(dictionary) {
    let constructorName = window.RTCSessionDescription;
    return new constructorName(html_common.convertDartToNative_SerializedScriptValue(dictionary));
  }
  get [$sdp]() {
    return this.sdp;
  }
  set [$sdp](value) {
    this.sdp = value;
  }
  get [$type]() {
    return this.type;
  }
  set [$type](value) {
    this.type = value;
  }
};
dart.addTypeTests(html$.RtcSessionDescription);
dart.addTypeCaches(html$.RtcSessionDescription);
dart.setGetterSignature(html$.RtcSessionDescription, () => ({
  __proto__: dart.getGetters(html$.RtcSessionDescription.__proto__),
  [$sdp]: core.String,
  [$type]: core.String
}));
dart.setSetterSignature(html$.RtcSessionDescription, () => ({
  __proto__: dart.getSetters(html$.RtcSessionDescription.__proto__),
  [$sdp]: core.String,
  [$type]: core.String
}));
dart.setLibraryUri(html$.RtcSessionDescription, L65);
dart.registerExtension("RTCSessionDescription", html$.RtcSessionDescription);
dart.registerExtension("mozRTCSessionDescription", html$.RtcSessionDescription);
const Interceptor_MapMixin$36$0 = class Interceptor_MapMixin extends _interceptors.Interceptor {};
(Interceptor_MapMixin$36$0.new = function() {
  Interceptor_MapMixin$36$0.__proto__.new.call(this);
}).prototype = Interceptor_MapMixin$36$0.prototype;
dart.applyMixin(Interceptor_MapMixin$36$0, collection.MapMixin$(core.String, dart.dynamic));
html$.RtcStatsReport = class RtcStatsReport extends Interceptor_MapMixin$36$0 {
  [_getItem](key) {
    return html_common.convertNativeToDart_Dictionary(this.get(key));
  }
  [$addAll](other) {
    MapOfStringL$dynamic().as(other);
    dart.throw(new core.UnsupportedError.new("Not supported"));
  }
  [$containsValue](value) {
    return this[$values][$any](dart.fn(e => dart.equals(e, value), MapLToboolL()));
  }
  [$containsKey](key) {
    return this[_getItem](core.String.as(key)) != null;
  }
  [$_get](key) {
    return this[_getItem](core.String.as(key));
  }
  [$forEach](f) {
    let entries = this.entries();
    while (true) {
      let entry = entries.next();
      if (entry.done) return;
      f(entry.value[0], html_common.convertNativeToDart_Dictionary(entry.value[1]));
    }
  }
  get [$keys]() {
    let keys = JSArrayOfStringL().of([]);
    this[$forEach](dart.fn((k, v) => keys[$add](k), StringLAnddynamicTovoid()));
    return keys;
  }
  get [$values]() {
    let values = JSArrayOfMapL().of([]);
    this[$forEach](dart.fn((k, v) => values[$add](core.Map.as(v)), StringLAnddynamicTovoid()));
    return values;
  }
  get [$length]() {
    return this.size;
  }
  get [$isEmpty]() {
    return this[$length] === 0;
  }
  get [$isNotEmpty]() {
    return !dart.test(this[$isEmpty]);
  }
  [$_set](key, value$) {
    let value = value$;
    core.String.as(key);
    dart.throw(new core.UnsupportedError.new("Not supported"));
    return value$;
  }
  [$putIfAbsent](key, ifAbsent) {
    core.String.as(key);
    VoidToLdynamic().as(ifAbsent);
    dart.throw(new core.UnsupportedError.new("Not supported"));
  }
  [$remove](key) {
    dart.throw(new core.UnsupportedError.new("Not supported"));
  }
  [$clear]() {
    dart.throw(new core.UnsupportedError.new("Not supported"));
  }
};
dart.addTypeTests(html$.RtcStatsReport);
dart.addTypeCaches(html$.RtcStatsReport);
dart.setMethodSignature(html$.RtcStatsReport, () => ({
  __proto__: dart.getMethods(html$.RtcStatsReport.__proto__),
  [_getItem]: dart.fnType(core.Map, [core.String]),
  [$containsValue]: dart.fnType(core.bool, [dart.dynamic]),
  [$containsKey]: dart.fnType(core.bool, [dart.dynamic]),
  [$_get]: dart.fnType(core.Map, [dart.dynamic]),
  [$_set]: dart.fnType(dart.void, [core.Object, core.Object]),
  [$remove]: dart.fnType(core.String, [dart.dynamic]),
  [$clear]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.RtcStatsReport, () => ({
  __proto__: dart.getGetters(html$.RtcStatsReport.__proto__),
  [$keys]: core.Iterable$(core.String),
  [$values]: core.Iterable$(core.Map)
}));
dart.setLibraryUri(html$.RtcStatsReport, L65);
dart.registerExtension("RTCStatsReport", html$.RtcStatsReport);
html$.RtcStatsResponse = class RtcStatsResponse extends _interceptors.Interceptor {
  [$namedItem](...args) {
    return this.namedItem.apply(this, args);
  }
  [$result](...args) {
    return this.result.apply(this, args);
  }
};
dart.addTypeTests(html$.RtcStatsResponse);
dart.addTypeCaches(html$.RtcStatsResponse);
dart.setMethodSignature(html$.RtcStatsResponse, () => ({
  __proto__: dart.getMethods(html$.RtcStatsResponse.__proto__),
  [$namedItem]: dart.fnType(html$.RtcLegacyStatsReport, [core.String]),
  [$result]: dart.fnType(core.List$(html$.RtcLegacyStatsReport), [])
}));
dart.setLibraryUri(html$.RtcStatsResponse, L65);
dart.registerExtension("RTCStatsResponse", html$.RtcStatsResponse);
html$.RtcTrackEvent = class RtcTrackEvent extends html$.Event {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$.RtcTrackEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new RTCTrackEvent(type, eventInitDict);
  }
  get [$receiver]() {
    return this.receiver;
  }
  get [$streams]() {
    return this.streams;
  }
  get [$track]() {
    return this.track;
  }
};
dart.addTypeTests(html$.RtcTrackEvent);
dart.addTypeCaches(html$.RtcTrackEvent);
dart.setGetterSignature(html$.RtcTrackEvent, () => ({
  __proto__: dart.getGetters(html$.RtcTrackEvent.__proto__),
  [$receiver]: html$.RtcRtpReceiver,
  [$streams]: core.List$(html$.MediaStream),
  [$track]: html$.MediaStreamTrack
}));
dart.setLibraryUri(html$.RtcTrackEvent, L65);
dart.registerExtension("RTCTrackEvent", html$.RtcTrackEvent);
var _availLeft = dart.privateName(html$, "_availLeft");
var _availTop = dart.privateName(html$, "_availTop");
var _availWidth = dart.privateName(html$, "_availWidth");
var _availHeight = dart.privateName(html$, "_availHeight");
html$.Screen = class Screen extends _interceptors.Interceptor {
  get [$available]() {
    return new (RectangleOfnumL()).new(this[_availLeft], this[_availTop], this[_availWidth], this[_availHeight]);
  }
  get [_availHeight]() {
    return this.availHeight;
  }
  get [_availLeft]() {
    return this.availLeft;
  }
  get [_availTop]() {
    return this.availTop;
  }
  get [_availWidth]() {
    return this.availWidth;
  }
  get [$colorDepth]() {
    return this.colorDepth;
  }
  get [$height]() {
    return this.height;
  }
  get [$keepAwake]() {
    return this.keepAwake;
  }
  set [$keepAwake](value) {
    this.keepAwake = value;
  }
  get [$orientation]() {
    return this.orientation;
  }
  get [$pixelDepth]() {
    return this.pixelDepth;
  }
  get [$width]() {
    return this.width;
  }
};
dart.addTypeTests(html$.Screen);
dart.addTypeCaches(html$.Screen);
dart.setGetterSignature(html$.Screen, () => ({
  __proto__: dart.getGetters(html$.Screen.__proto__),
  [$available]: math.Rectangle$(core.num),
  [_availHeight]: core.int,
  [_availLeft]: core.int,
  [_availTop]: core.int,
  [_availWidth]: core.int,
  [$colorDepth]: core.int,
  [$height]: core.int,
  [$keepAwake]: core.bool,
  [$orientation]: html$.ScreenOrientation,
  [$pixelDepth]: core.int,
  [$width]: core.int
}));
dart.setSetterSignature(html$.Screen, () => ({
  __proto__: dart.getSetters(html$.Screen.__proto__),
  [$keepAwake]: core.bool
}));
dart.setLibraryUri(html$.Screen, L65);
dart.registerExtension("Screen", html$.Screen);
html$.ScreenOrientation = class ScreenOrientation extends html$.EventTarget {
  get [$angle]() {
    return this.angle;
  }
  get [$type]() {
    return this.type;
  }
  [$lock](orientation) {
    return js_util.promiseToFuture(dart.dynamic, this.lock(orientation));
  }
  [$unlock](...args) {
    return this.unlock.apply(this, args);
  }
  get [$onChange]() {
    return html$.ScreenOrientation.changeEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.ScreenOrientation);
dart.addTypeCaches(html$.ScreenOrientation);
dart.setMethodSignature(html$.ScreenOrientation, () => ({
  __proto__: dart.getMethods(html$.ScreenOrientation.__proto__),
  [$lock]: dart.fnType(async.Future, [core.String]),
  [$unlock]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.ScreenOrientation, () => ({
  __proto__: dart.getGetters(html$.ScreenOrientation.__proto__),
  [$angle]: core.int,
  [$type]: core.String,
  [$onChange]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.ScreenOrientation, L65);
dart.defineLazy(html$.ScreenOrientation, {
  /*html$.ScreenOrientation.changeEvent*/get changeEvent() {
    return C237 || CT.C237;
  }
}, true);
dart.registerExtension("ScreenOrientation", html$.ScreenOrientation);
html$.ScriptElement = class ScriptElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("script");
  }
  get [$async]() {
    return this.async;
  }
  set [$async](value) {
    this.async = value;
  }
  get [$charset]() {
    return this.charset;
  }
  set [$charset](value) {
    this.charset = value;
  }
  get [$crossOrigin]() {
    return this.crossOrigin;
  }
  set [$crossOrigin](value) {
    this.crossOrigin = value;
  }
  get [$defer]() {
    return this.defer;
  }
  set [$defer](value) {
    this.defer = value;
  }
  get [$integrity]() {
    return this.integrity;
  }
  set [$integrity](value) {
    this.integrity = value;
  }
  get [$noModule]() {
    return this.noModule;
  }
  set [$noModule](value) {
    this.noModule = value;
  }
  get [$src]() {
    return this.src;
  }
  set [$src](value) {
    this.src = value;
  }
  get [$type]() {
    return this.type;
  }
  set [$type](value) {
    this.type = value;
  }
};
(html$.ScriptElement.created = function() {
  html$.ScriptElement.__proto__.created.call(this);
  ;
}).prototype = html$.ScriptElement.prototype;
dart.addTypeTests(html$.ScriptElement);
dart.addTypeCaches(html$.ScriptElement);
dart.setGetterSignature(html$.ScriptElement, () => ({
  __proto__: dart.getGetters(html$.ScriptElement.__proto__),
  [$async]: core.bool,
  [$charset]: core.String,
  [$crossOrigin]: core.String,
  [$defer]: core.bool,
  [$integrity]: core.String,
  [$noModule]: core.bool,
  [$src]: core.String,
  [$type]: core.String
}));
dart.setSetterSignature(html$.ScriptElement, () => ({
  __proto__: dart.getSetters(html$.ScriptElement.__proto__),
  [$async]: core.bool,
  [$charset]: core.String,
  [$crossOrigin]: core.String,
  [$defer]: core.bool,
  [$integrity]: core.String,
  [$noModule]: core.bool,
  [$src]: core.String,
  [$type]: core.String
}));
dart.setLibraryUri(html$.ScriptElement, L65);
dart.registerExtension("HTMLScriptElement", html$.ScriptElement);
html$.ScrollState = class ScrollState$ extends _interceptors.Interceptor {
  static new(scrollStateInit = null) {
    if (scrollStateInit != null) {
      let scrollStateInit_1 = html_common.convertDartToNative_Dictionary(scrollStateInit);
      return html$.ScrollState._create_1(scrollStateInit_1);
    }
    return html$.ScrollState._create_2();
  }
  static _create_1(scrollStateInit) {
    return new ScrollState(scrollStateInit);
  }
  static _create_2() {
    return new ScrollState();
  }
  get [$deltaGranularity]() {
    return this.deltaGranularity;
  }
  get [$deltaX]() {
    return this.deltaX;
  }
  get [$deltaY]() {
    return this.deltaY;
  }
  get [$fromUserInput]() {
    return this.fromUserInput;
  }
  get [$inInertialPhase]() {
    return this.inInertialPhase;
  }
  get [$isBeginning]() {
    return this.isBeginning;
  }
  get [$isDirectManipulation]() {
    return this.isDirectManipulation;
  }
  get [$isEnding]() {
    return this.isEnding;
  }
  get [$positionX]() {
    return this.positionX;
  }
  get [$positionY]() {
    return this.positionY;
  }
  get [$velocityX]() {
    return this.velocityX;
  }
  get [$velocityY]() {
    return this.velocityY;
  }
  [$consumeDelta](...args) {
    return this.consumeDelta.apply(this, args);
  }
  [$distributeToScrollChainDescendant](...args) {
    return this.distributeToScrollChainDescendant.apply(this, args);
  }
};
dart.addTypeTests(html$.ScrollState);
dart.addTypeCaches(html$.ScrollState);
dart.setMethodSignature(html$.ScrollState, () => ({
  __proto__: dart.getMethods(html$.ScrollState.__proto__),
  [$consumeDelta]: dart.fnType(dart.void, [core.num, core.num]),
  [$distributeToScrollChainDescendant]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.ScrollState, () => ({
  __proto__: dart.getGetters(html$.ScrollState.__proto__),
  [$deltaGranularity]: core.num,
  [$deltaX]: core.num,
  [$deltaY]: core.num,
  [$fromUserInput]: core.bool,
  [$inInertialPhase]: core.bool,
  [$isBeginning]: core.bool,
  [$isDirectManipulation]: core.bool,
  [$isEnding]: core.bool,
  [$positionX]: core.int,
  [$positionY]: core.int,
  [$velocityX]: core.num,
  [$velocityY]: core.num
}));
dart.setLibraryUri(html$.ScrollState, L65);
dart.registerExtension("ScrollState", html$.ScrollState);
html$.ScrollTimeline = class ScrollTimeline$ extends html$.AnimationTimeline {
  static new(options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return html$.ScrollTimeline._create_1(options_1);
    }
    return html$.ScrollTimeline._create_2();
  }
  static _create_1(options) {
    return new ScrollTimeline(options);
  }
  static _create_2() {
    return new ScrollTimeline();
  }
  get [$orientation]() {
    return this.orientation;
  }
  get [$scrollSource]() {
    return this.scrollSource;
  }
  get [$timeRange]() {
    return this.timeRange;
  }
};
dart.addTypeTests(html$.ScrollTimeline);
dart.addTypeCaches(html$.ScrollTimeline);
dart.setGetterSignature(html$.ScrollTimeline, () => ({
  __proto__: dart.getGetters(html$.ScrollTimeline.__proto__),
  [$orientation]: core.String,
  [$scrollSource]: html$.Element,
  [$timeRange]: core.Object
}));
dart.setLibraryUri(html$.ScrollTimeline, L65);
dart.registerExtension("ScrollTimeline", html$.ScrollTimeline);
html$.SecurityPolicyViolationEvent = class SecurityPolicyViolationEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.SecurityPolicyViolationEvent._create_1(type, eventInitDict_1);
    }
    return html$.SecurityPolicyViolationEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new SecurityPolicyViolationEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new SecurityPolicyViolationEvent(type);
  }
  get [$blockedUri]() {
    return this.blockedURI;
  }
  get [$columnNumber]() {
    return this.columnNumber;
  }
  get [$disposition]() {
    return this.disposition;
  }
  get [$documentUri]() {
    return this.documentURI;
  }
  get [$effectiveDirective]() {
    return this.effectiveDirective;
  }
  get [$lineNumber]() {
    return this.lineNumber;
  }
  get [$originalPolicy]() {
    return this.originalPolicy;
  }
  get [$referrer]() {
    return this.referrer;
  }
  get [$sample]() {
    return this.sample;
  }
  get [$sourceFile]() {
    return this.sourceFile;
  }
  get [$statusCode]() {
    return this.statusCode;
  }
  get [$violatedDirective]() {
    return this.violatedDirective;
  }
};
dart.addTypeTests(html$.SecurityPolicyViolationEvent);
dart.addTypeCaches(html$.SecurityPolicyViolationEvent);
dart.setGetterSignature(html$.SecurityPolicyViolationEvent, () => ({
  __proto__: dart.getGetters(html$.SecurityPolicyViolationEvent.__proto__),
  [$blockedUri]: core.String,
  [$columnNumber]: core.int,
  [$disposition]: core.String,
  [$documentUri]: core.String,
  [$effectiveDirective]: core.String,
  [$lineNumber]: core.int,
  [$originalPolicy]: core.String,
  [$referrer]: core.String,
  [$sample]: core.String,
  [$sourceFile]: core.String,
  [$statusCode]: core.int,
  [$violatedDirective]: core.String
}));
dart.setLibraryUri(html$.SecurityPolicyViolationEvent, L65);
dart.registerExtension("SecurityPolicyViolationEvent", html$.SecurityPolicyViolationEvent);
html$.SelectElement = class SelectElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("select");
  }
  get [$autofocus]() {
    return this.autofocus;
  }
  set [$autofocus](value) {
    this.autofocus = value;
  }
  get [$disabled]() {
    return this.disabled;
  }
  set [$disabled](value) {
    this.disabled = value;
  }
  get [$form]() {
    return this.form;
  }
  get [$labels]() {
    return this.labels;
  }
  get [$length]() {
    return this.length;
  }
  set [$length](value) {
    this.length = value;
  }
  get [$multiple]() {
    return this.multiple;
  }
  set [$multiple](value) {
    this.multiple = value;
  }
  get [$name]() {
    return this.name;
  }
  set [$name](value) {
    this.name = value;
  }
  get [$required]() {
    return this.required;
  }
  set [$required](value) {
    this.required = value;
  }
  get [$selectedIndex]() {
    return this.selectedIndex;
  }
  set [$selectedIndex](value) {
    this.selectedIndex = value;
  }
  get [$size]() {
    return this.size;
  }
  set [$size](value) {
    this.size = value;
  }
  get [$type]() {
    return this.type;
  }
  get [$validationMessage]() {
    return this.validationMessage;
  }
  get [$validity]() {
    return this.validity;
  }
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
  get [$willValidate]() {
    return this.willValidate;
  }
  [__setter__](...args) {
    return this.__setter__.apply(this, args);
  }
  [$add](...args) {
    return this.add.apply(this, args);
  }
  [$checkValidity](...args) {
    return this.checkValidity.apply(this, args);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
  [$namedItem](...args) {
    return this.namedItem.apply(this, args);
  }
  [$reportValidity](...args) {
    return this.reportValidity.apply(this, args);
  }
  [$setCustomValidity](...args) {
    return this.setCustomValidity.apply(this, args);
  }
  get [$options]() {
    let options = this[$querySelectorAll](html$.OptionElement, "option");
    return new (UnmodifiableListViewOfOptionElementL()).new(IterableOfOptionElementL().as(dart.dsend(options, 'toList', [])));
  }
  get [$selectedOptions]() {
    if (dart.test(this.multiple)) {
      let options = this[$options][$where](dart.fn(o => o.selected, OptionElementLToboolL()))[$toList]();
      return new (UnmodifiableListViewOfOptionElementL()).new(options);
    } else {
      return JSArrayOfOptionElementL().of([this[$options][$_get](this.selectedIndex)]);
    }
  }
};
(html$.SelectElement.created = function() {
  html$.SelectElement.__proto__.created.call(this);
  ;
}).prototype = html$.SelectElement.prototype;
dart.addTypeTests(html$.SelectElement);
dart.addTypeCaches(html$.SelectElement);
dart.setMethodSignature(html$.SelectElement, () => ({
  __proto__: dart.getMethods(html$.SelectElement.__proto__),
  [__setter__]: dart.fnType(dart.void, [core.int, html$.OptionElement]),
  [$add]: dart.fnType(dart.void, [core.Object, core.Object]),
  [$checkValidity]: dart.fnType(core.bool, []),
  [$item]: dart.fnType(html$.Element, [core.int]),
  [$namedItem]: dart.fnType(html$.OptionElement, [core.String]),
  [$reportValidity]: dart.fnType(core.bool, []),
  [$setCustomValidity]: dart.fnType(dart.void, [core.String])
}));
dart.setGetterSignature(html$.SelectElement, () => ({
  __proto__: dart.getGetters(html$.SelectElement.__proto__),
  [$autofocus]: core.bool,
  [$disabled]: core.bool,
  [$form]: html$.FormElement,
  [$labels]: core.List$(html$.Node),
  [$length]: core.int,
  [$multiple]: core.bool,
  [$name]: core.String,
  [$required]: core.bool,
  [$selectedIndex]: core.int,
  [$size]: core.int,
  [$type]: core.String,
  [$validationMessage]: core.String,
  [$validity]: html$.ValidityState,
  [$value]: core.String,
  [$willValidate]: core.bool,
  [$options]: core.List$(html$.OptionElement),
  [$selectedOptions]: core.List$(html$.OptionElement)
}));
dart.setSetterSignature(html$.SelectElement, () => ({
  __proto__: dart.getSetters(html$.SelectElement.__proto__),
  [$autofocus]: core.bool,
  [$disabled]: core.bool,
  [$length]: core.int,
  [$multiple]: core.bool,
  [$name]: core.String,
  [$required]: core.bool,
  [$selectedIndex]: core.int,
  [$size]: core.int,
  [$value]: core.String
}));
dart.setLibraryUri(html$.SelectElement, L65);
dart.registerExtension("HTMLSelectElement", html$.SelectElement);
html$.Selection = class Selection extends _interceptors.Interceptor {
  get [$anchorNode]() {
    return this.anchorNode;
  }
  get [$anchorOffset]() {
    return this.anchorOffset;
  }
  get [$baseNode]() {
    return this.baseNode;
  }
  get [$baseOffset]() {
    return this.baseOffset;
  }
  get [$extentNode]() {
    return this.extentNode;
  }
  get [$extentOffset]() {
    return this.extentOffset;
  }
  get [$focusNode]() {
    return this.focusNode;
  }
  get [$focusOffset]() {
    return this.focusOffset;
  }
  get [$isCollapsed]() {
    return this.isCollapsed;
  }
  get [$rangeCount]() {
    return this.rangeCount;
  }
  get [$type]() {
    return this.type;
  }
  [$addRange](...args) {
    return this.addRange.apply(this, args);
  }
  [$collapse](...args) {
    return this.collapse.apply(this, args);
  }
  [$collapseToEnd](...args) {
    return this.collapseToEnd.apply(this, args);
  }
  [$collapseToStart](...args) {
    return this.collapseToStart.apply(this, args);
  }
  [$containsNode](...args) {
    return this.containsNode.apply(this, args);
  }
  [$deleteFromDocument](...args) {
    return this.deleteFromDocument.apply(this, args);
  }
  [$empty](...args) {
    return this.empty.apply(this, args);
  }
  [$extend](...args) {
    return this.extend.apply(this, args);
  }
  [$getRangeAt](...args) {
    return this.getRangeAt.apply(this, args);
  }
  [$modify](...args) {
    return this.modify.apply(this, args);
  }
  [$removeAllRanges](...args) {
    return this.removeAllRanges.apply(this, args);
  }
  [$removeRange](...args) {
    return this.removeRange.apply(this, args);
  }
  [$selectAllChildren](...args) {
    return this.selectAllChildren.apply(this, args);
  }
  [$setBaseAndExtent](...args) {
    return this.setBaseAndExtent.apply(this, args);
  }
  [$setPosition](...args) {
    return this.setPosition.apply(this, args);
  }
};
dart.addTypeTests(html$.Selection);
dart.addTypeCaches(html$.Selection);
dart.setMethodSignature(html$.Selection, () => ({
  __proto__: dart.getMethods(html$.Selection.__proto__),
  [$addRange]: dart.fnType(dart.void, [html$.Range]),
  [$collapse]: dart.fnType(dart.void, [html$.Node], [core.int]),
  [$collapseToEnd]: dart.fnType(dart.void, []),
  [$collapseToStart]: dart.fnType(dart.void, []),
  [$containsNode]: dart.fnType(core.bool, [html$.Node], [core.bool]),
  [$deleteFromDocument]: dart.fnType(dart.void, []),
  [$empty]: dart.fnType(dart.void, []),
  [$extend]: dart.fnType(dart.void, [html$.Node], [core.int]),
  [$getRangeAt]: dart.fnType(html$.Range, [core.int]),
  [$modify]: dart.fnType(dart.void, [core.String, core.String, core.String]),
  [$removeAllRanges]: dart.fnType(dart.void, []),
  [$removeRange]: dart.fnType(dart.void, [html$.Range]),
  [$selectAllChildren]: dart.fnType(dart.void, [html$.Node]),
  [$setBaseAndExtent]: dart.fnType(dart.void, [html$.Node, core.int, html$.Node, core.int]),
  [$setPosition]: dart.fnType(dart.void, [html$.Node], [core.int])
}));
dart.setGetterSignature(html$.Selection, () => ({
  __proto__: dart.getGetters(html$.Selection.__proto__),
  [$anchorNode]: html$.Node,
  [$anchorOffset]: core.int,
  [$baseNode]: html$.Node,
  [$baseOffset]: core.int,
  [$extentNode]: html$.Node,
  [$extentOffset]: core.int,
  [$focusNode]: html$.Node,
  [$focusOffset]: core.int,
  [$isCollapsed]: core.bool,
  [$rangeCount]: core.int,
  [$type]: core.String
}));
dart.setLibraryUri(html$.Selection, L65);
dart.registerExtension("Selection", html$.Selection);
html$.SensorErrorEvent = class SensorErrorEvent$ extends html$.Event {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$.SensorErrorEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new SensorErrorEvent(type, eventInitDict);
  }
  get [$error]() {
    return this.error;
  }
};
dart.addTypeTests(html$.SensorErrorEvent);
dart.addTypeCaches(html$.SensorErrorEvent);
dart.setGetterSignature(html$.SensorErrorEvent, () => ({
  __proto__: dart.getGetters(html$.SensorErrorEvent.__proto__),
  [$error]: html$.DomException
}));
dart.setLibraryUri(html$.SensorErrorEvent, L65);
dart.registerExtension("SensorErrorEvent", html$.SensorErrorEvent);
html$.ServiceWorker = class ServiceWorker extends html$.EventTarget {
  get [$scriptUrl]() {
    return this.scriptURL;
  }
  get [$state]() {
    return this.state;
  }
  [$postMessage](message, transfer = null) {
    if (transfer != null) {
      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
      this[_postMessage_1](message_1, transfer);
      return;
    }
    let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
    this[_postMessage_2](message_1);
    return;
  }
  [_postMessage_1](...args) {
    return this.postMessage.apply(this, args);
  }
  [_postMessage_2](...args) {
    return this.postMessage.apply(this, args);
  }
  get [$onError]() {
    return html$.ServiceWorker.errorEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.ServiceWorker);
dart.addTypeCaches(html$.ServiceWorker);
html$.ServiceWorker[dart.implements] = () => [html$.AbstractWorker];
dart.setMethodSignature(html$.ServiceWorker, () => ({
  __proto__: dart.getMethods(html$.ServiceWorker.__proto__),
  [$postMessage]: dart.fnType(dart.void, [dart.dynamic], [core.List$(core.Object)]),
  [_postMessage_1]: dart.fnType(dart.void, [dart.dynamic, core.List$(core.Object)]),
  [_postMessage_2]: dart.fnType(dart.void, [dart.dynamic])
}));
dart.setGetterSignature(html$.ServiceWorker, () => ({
  __proto__: dart.getGetters(html$.ServiceWorker.__proto__),
  [$scriptUrl]: core.String,
  [$state]: core.String,
  [$onError]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.ServiceWorker, L65);
dart.defineLazy(html$.ServiceWorker, {
  /*html$.ServiceWorker.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  }
}, true);
dart.registerExtension("ServiceWorker", html$.ServiceWorker);
html$.ServiceWorkerContainer = class ServiceWorkerContainer extends html$.EventTarget {
  get [$controller]() {
    return this.controller;
  }
  get [$ready]() {
    return js_util.promiseToFuture(html$.ServiceWorkerRegistration, this.ready);
  }
  [$getRegistration](documentURL = null) {
    return js_util.promiseToFuture(html$.ServiceWorkerRegistration, this.getRegistration(documentURL));
  }
  [$getRegistrations]() {
    return js_util.promiseToFuture(core.List, this.getRegistrations());
  }
  [$register](url, options = null) {
    let options_dict = null;
    if (options != null) {
      options_dict = html_common.convertDartToNative_Dictionary(options);
    }
    return js_util.promiseToFuture(html$.ServiceWorkerRegistration, this.register(url, options_dict));
  }
  get [$onMessage]() {
    return html$.ServiceWorkerContainer.messageEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.ServiceWorkerContainer);
dart.addTypeCaches(html$.ServiceWorkerContainer);
dart.setMethodSignature(html$.ServiceWorkerContainer, () => ({
  __proto__: dart.getMethods(html$.ServiceWorkerContainer.__proto__),
  [$getRegistration]: dart.fnType(async.Future$(html$.ServiceWorkerRegistration), [], [core.String]),
  [$getRegistrations]: dart.fnType(async.Future$(core.List), []),
  [$register]: dart.fnType(async.Future$(html$.ServiceWorkerRegistration), [core.String], [core.Map])
}));
dart.setGetterSignature(html$.ServiceWorkerContainer, () => ({
  __proto__: dart.getGetters(html$.ServiceWorkerContainer.__proto__),
  [$controller]: html$.ServiceWorker,
  [$ready]: async.Future$(html$.ServiceWorkerRegistration),
  [$onMessage]: async.Stream$(html$.MessageEvent)
}));
dart.setLibraryUri(html$.ServiceWorkerContainer, L65);
dart.defineLazy(html$.ServiceWorkerContainer, {
  /*html$.ServiceWorkerContainer.messageEvent*/get messageEvent() {
    return C313 || CT.C313;
  }
}, true);
dart.registerExtension("ServiceWorkerContainer", html$.ServiceWorkerContainer);
var C362;
var C363;
var C364;
var C365;
html$.ServiceWorkerGlobalScope = class ServiceWorkerGlobalScope extends html$.WorkerGlobalScope {
  get [$clients]() {
    return this.clients;
  }
  get [$registration]() {
    return this.registration;
  }
  [$skipWaiting]() {
    return js_util.promiseToFuture(dart.dynamic, this.skipWaiting());
  }
  get [$onActivate]() {
    return html$.ServiceWorkerGlobalScope.activateEvent.forTarget(this);
  }
  get [$onFetch]() {
    return html$.ServiceWorkerGlobalScope.fetchEvent.forTarget(this);
  }
  get [$onForeignfetch]() {
    return html$.ServiceWorkerGlobalScope.foreignfetchEvent.forTarget(this);
  }
  get [$onInstall]() {
    return html$.ServiceWorkerGlobalScope.installEvent.forTarget(this);
  }
  get [$onMessage]() {
    return html$.ServiceWorkerGlobalScope.messageEvent.forTarget(this);
  }
  static get instance() {
    return html$.ServiceWorkerGlobalScope.as(html$._workerSelf);
  }
};
dart.addTypeTests(html$.ServiceWorkerGlobalScope);
dart.addTypeCaches(html$.ServiceWorkerGlobalScope);
dart.setMethodSignature(html$.ServiceWorkerGlobalScope, () => ({
  __proto__: dart.getMethods(html$.ServiceWorkerGlobalScope.__proto__),
  [$skipWaiting]: dart.fnType(async.Future, [])
}));
dart.setGetterSignature(html$.ServiceWorkerGlobalScope, () => ({
  __proto__: dart.getGetters(html$.ServiceWorkerGlobalScope.__proto__),
  [$clients]: html$.Clients,
  [$registration]: html$.ServiceWorkerRegistration,
  [$onActivate]: async.Stream$(html$.Event),
  [$onFetch]: async.Stream$(html$.Event),
  [$onForeignfetch]: async.Stream$(html$.ForeignFetchEvent),
  [$onInstall]: async.Stream$(html$.Event),
  [$onMessage]: async.Stream$(html$.MessageEvent)
}));
dart.setLibraryUri(html$.ServiceWorkerGlobalScope, L65);
dart.defineLazy(html$.ServiceWorkerGlobalScope, {
  /*html$.ServiceWorkerGlobalScope.activateEvent*/get activateEvent() {
    return C362 || CT.C362;
  },
  /*html$.ServiceWorkerGlobalScope.fetchEvent*/get fetchEvent() {
    return C363 || CT.C363;
  },
  /*html$.ServiceWorkerGlobalScope.foreignfetchEvent*/get foreignfetchEvent() {
    return C364 || CT.C364;
  },
  /*html$.ServiceWorkerGlobalScope.installEvent*/get installEvent() {
    return C365 || CT.C365;
  },
  /*html$.ServiceWorkerGlobalScope.messageEvent*/get messageEvent() {
    return C313 || CT.C313;
  }
}, true);
dart.registerExtension("ServiceWorkerGlobalScope", html$.ServiceWorkerGlobalScope);
html$.ServiceWorkerRegistration = class ServiceWorkerRegistration extends html$.EventTarget {
  get [$active]() {
    return this.active;
  }
  get [$backgroundFetch]() {
    return this.backgroundFetch;
  }
  get [$installing]() {
    return this.installing;
  }
  get [$navigationPreload]() {
    return this.navigationPreload;
  }
  get [$paymentManager]() {
    return this.paymentManager;
  }
  get [$pushManager]() {
    return this.pushManager;
  }
  get [$scope]() {
    return this.scope;
  }
  get [$sync]() {
    return this.sync;
  }
  get [$waiting]() {
    return this.waiting;
  }
  [$getNotifications](filter = null) {
    let filter_dict = null;
    if (filter != null) {
      filter_dict = html_common.convertDartToNative_Dictionary(filter);
    }
    return js_util.promiseToFuture(core.List, this.getNotifications(filter_dict));
  }
  [$showNotification](title, options = null) {
    let options_dict = null;
    if (options != null) {
      options_dict = html_common.convertDartToNative_Dictionary(options);
    }
    return js_util.promiseToFuture(dart.dynamic, this.showNotification(title, options_dict));
  }
  [$unregister]() {
    return js_util.promiseToFuture(core.bool, this.unregister());
  }
  [$update]() {
    return js_util.promiseToFuture(dart.dynamic, this.update());
  }
};
dart.addTypeTests(html$.ServiceWorkerRegistration);
dart.addTypeCaches(html$.ServiceWorkerRegistration);
dart.setMethodSignature(html$.ServiceWorkerRegistration, () => ({
  __proto__: dart.getMethods(html$.ServiceWorkerRegistration.__proto__),
  [$getNotifications]: dart.fnType(async.Future$(core.List), [], [core.Map]),
  [$showNotification]: dart.fnType(async.Future, [core.String], [core.Map]),
  [$unregister]: dart.fnType(async.Future$(core.bool), []),
  [$update]: dart.fnType(async.Future, [])
}));
dart.setGetterSignature(html$.ServiceWorkerRegistration, () => ({
  __proto__: dart.getGetters(html$.ServiceWorkerRegistration.__proto__),
  [$active]: html$.ServiceWorker,
  [$backgroundFetch]: html$.BackgroundFetchManager,
  [$installing]: html$.ServiceWorker,
  [$navigationPreload]: html$.NavigationPreloadManager,
  [$paymentManager]: html$.PaymentManager,
  [$pushManager]: html$.PushManager,
  [$scope]: core.String,
  [$sync]: html$.SyncManager,
  [$waiting]: html$.ServiceWorker
}));
dart.setLibraryUri(html$.ServiceWorkerRegistration, L65);
dart.registerExtension("ServiceWorkerRegistration", html$.ServiceWorkerRegistration);
html$.ShadowElement = class ShadowElement extends html$.HtmlElement {
  static new() {
    return html$.ShadowElement.as(html$.document[$createElement]("shadow"));
  }
  static get supported() {
    return html$.Element.isTagSupported("shadow");
  }
  [$getDistributedNodes](...args) {
    return this.getDistributedNodes.apply(this, args);
  }
};
(html$.ShadowElement.created = function() {
  html$.ShadowElement.__proto__.created.call(this);
  ;
}).prototype = html$.ShadowElement.prototype;
dart.addTypeTests(html$.ShadowElement);
dart.addTypeCaches(html$.ShadowElement);
dart.setMethodSignature(html$.ShadowElement, () => ({
  __proto__: dart.getMethods(html$.ShadowElement.__proto__),
  [$getDistributedNodes]: dart.fnType(core.List$(html$.Node), [])
}));
dart.setLibraryUri(html$.ShadowElement, L65);
dart.registerExtension("HTMLShadowElement", html$.ShadowElement);
html$.ShadowRoot = class ShadowRoot extends html$.DocumentFragment {
  get [$delegatesFocus]() {
    return this.delegatesFocus;
  }
  get [$host]() {
    return this.host;
  }
  get [$innerHtml]() {
    return this.innerHTML;
  }
  set [$innerHtml](value) {
    this.innerHTML = value;
  }
  get [$mode]() {
    return this.mode;
  }
  get [$olderShadowRoot]() {
    return this.olderShadowRoot;
  }
  get [$activeElement]() {
    return this.activeElement;
  }
  get [$fullscreenElement]() {
    return this.fullscreenElement;
  }
  get [$pointerLockElement]() {
    return this.pointerLockElement;
  }
  get [$styleSheets]() {
    return this.styleSheets;
  }
  [$elementFromPoint](...args) {
    return this.elementFromPoint.apply(this, args);
  }
  [$elementsFromPoint](...args) {
    return this.elementsFromPoint.apply(this, args);
  }
  [$getSelection](...args) {
    return this.getSelection.apply(this, args);
  }
  static get supported() {
    return !!(Element.prototype.createShadowRoot || Element.prototype.webkitCreateShadowRoot);
  }
  static _shadowRootDeprecationReport() {
    if (!dart.test(html$.ShadowRoot._shadowRootDeprecationReported)) {
      html$.window[$console].warn("ShadowRoot.resetStyleInheritance and ShadowRoot.applyAuthorStyles now deprecated in dart:html.\nPlease remove them from your code.\n");
      html$.ShadowRoot._shadowRootDeprecationReported = true;
    }
  }
  get [$resetStyleInheritance]() {
    html$.ShadowRoot._shadowRootDeprecationReport();
    return false;
  }
  set [$resetStyleInheritance](value) {
    html$.ShadowRoot._shadowRootDeprecationReport();
  }
  get [$applyAuthorStyles]() {
    html$.ShadowRoot._shadowRootDeprecationReport();
    return false;
  }
  set [$applyAuthorStyles](value) {
    html$.ShadowRoot._shadowRootDeprecationReport();
  }
};
dart.addTypeTests(html$.ShadowRoot);
dart.addTypeCaches(html$.ShadowRoot);
html$.ShadowRoot[dart.implements] = () => [html$.DocumentOrShadowRoot];
dart.setMethodSignature(html$.ShadowRoot, () => ({
  __proto__: dart.getMethods(html$.ShadowRoot.__proto__),
  [$elementFromPoint]: dart.fnType(html$.Element, [core.int, core.int]),
  [$elementsFromPoint]: dart.fnType(core.List$(html$.Element), [core.int, core.int]),
  [$getSelection]: dart.fnType(html$.Selection, [])
}));
dart.setGetterSignature(html$.ShadowRoot, () => ({
  __proto__: dart.getGetters(html$.ShadowRoot.__proto__),
  [$delegatesFocus]: core.bool,
  [$host]: html$.Element,
  [$mode]: core.String,
  [$olderShadowRoot]: html$.ShadowRoot,
  [$activeElement]: html$.Element,
  [$fullscreenElement]: html$.Element,
  [$pointerLockElement]: html$.Element,
  [$styleSheets]: core.List$(html$.StyleSheet),
  [$resetStyleInheritance]: core.bool,
  [$applyAuthorStyles]: core.bool
}));
dart.setSetterSignature(html$.ShadowRoot, () => ({
  __proto__: dart.getSetters(html$.ShadowRoot.__proto__),
  [$resetStyleInheritance]: core.bool,
  [$applyAuthorStyles]: core.bool
}));
dart.setLibraryUri(html$.ShadowRoot, L65);
dart.defineLazy(html$.ShadowRoot, {
  /*html$.ShadowRoot._shadowRootDeprecationReported*/get _shadowRootDeprecationReported() {
    return false;
  },
  set _shadowRootDeprecationReported(_) {}
}, true);
dart.registerExtension("ShadowRoot", html$.ShadowRoot);
html$.SharedArrayBuffer = class SharedArrayBuffer extends _interceptors.Interceptor {
  get [$byteLength]() {
    return this.byteLength;
  }
};
dart.addTypeTests(html$.SharedArrayBuffer);
dart.addTypeCaches(html$.SharedArrayBuffer);
dart.setGetterSignature(html$.SharedArrayBuffer, () => ({
  __proto__: dart.getGetters(html$.SharedArrayBuffer.__proto__),
  [$byteLength]: core.int
}));
dart.setLibraryUri(html$.SharedArrayBuffer, L65);
dart.registerExtension("SharedArrayBuffer", html$.SharedArrayBuffer);
html$.SharedWorker = class SharedWorker$ extends html$.EventTarget {
  static new(scriptURL, name = null) {
    if (name != null) {
      return html$.SharedWorker._create_1(scriptURL, name);
    }
    return html$.SharedWorker._create_2(scriptURL);
  }
  static _create_1(scriptURL, name) {
    return new SharedWorker(scriptURL, name);
  }
  static _create_2(scriptURL) {
    return new SharedWorker(scriptURL);
  }
  get [$port]() {
    return this.port;
  }
  get [$onError]() {
    return html$.SharedWorker.errorEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.SharedWorker);
dart.addTypeCaches(html$.SharedWorker);
html$.SharedWorker[dart.implements] = () => [html$.AbstractWorker];
dart.setGetterSignature(html$.SharedWorker, () => ({
  __proto__: dart.getGetters(html$.SharedWorker.__proto__),
  [$port]: html$.MessagePort,
  [$onError]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.SharedWorker, L65);
dart.defineLazy(html$.SharedWorker, {
  /*html$.SharedWorker.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  }
}, true);
dart.registerExtension("SharedWorker", html$.SharedWorker);
var C366;
html$.SharedWorkerGlobalScope = class SharedWorkerGlobalScope extends html$.WorkerGlobalScope {
  get [$name]() {
    return this.name;
  }
  [$close](...args) {
    return this.close.apply(this, args);
  }
  [_webkitRequestFileSystem](...args) {
    return this.webkitRequestFileSystem.apply(this, args);
  }
  [$requestFileSystemSync](...args) {
    return this.webkitRequestFileSystemSync.apply(this, args);
  }
  [$resolveLocalFileSystemSyncUrl](...args) {
    return this.webkitResolveLocalFileSystemSyncURL.apply(this, args);
  }
  [_webkitResolveLocalFileSystemUrl](...args) {
    return this.webkitResolveLocalFileSystemURL.apply(this, args);
  }
  get [$onConnect]() {
    return html$.SharedWorkerGlobalScope.connectEvent.forTarget(this);
  }
  static get instance() {
    return html$.SharedWorkerGlobalScope.as(html$._workerSelf);
  }
};
dart.addTypeTests(html$.SharedWorkerGlobalScope);
dart.addTypeCaches(html$.SharedWorkerGlobalScope);
dart.setMethodSignature(html$.SharedWorkerGlobalScope, () => ({
  __proto__: dart.getMethods(html$.SharedWorkerGlobalScope.__proto__),
  [$close]: dart.fnType(dart.void, []),
  [_webkitRequestFileSystem]: dart.fnType(dart.void, [core.int, core.int], [dart.fnType(dart.void, [html$.FileSystem]), dart.fnType(dart.void, [html$.DomException])]),
  [$requestFileSystemSync]: dart.fnType(html$._DOMFileSystemSync, [core.int, core.int]),
  [$resolveLocalFileSystemSyncUrl]: dart.fnType(html$._EntrySync, [core.String]),
  [_webkitResolveLocalFileSystemUrl]: dart.fnType(dart.void, [core.String, dart.fnType(dart.void, [html$.Entry])], [dart.fnType(dart.void, [html$.DomException])])
}));
dart.setGetterSignature(html$.SharedWorkerGlobalScope, () => ({
  __proto__: dart.getGetters(html$.SharedWorkerGlobalScope.__proto__),
  [$name]: core.String,
  [$onConnect]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.SharedWorkerGlobalScope, L65);
dart.defineLazy(html$.SharedWorkerGlobalScope, {
  /*html$.SharedWorkerGlobalScope.connectEvent*/get connectEvent() {
    return C366 || CT.C366;
  },
  /*html$.SharedWorkerGlobalScope.PERSISTENT*/get PERSISTENT() {
    return 1;
  },
  /*html$.SharedWorkerGlobalScope.TEMPORARY*/get TEMPORARY() {
    return 0;
  }
}, true);
dart.registerExtension("SharedWorkerGlobalScope", html$.SharedWorkerGlobalScope);
var _assignedNodes_1 = dart.privateName(html$, "_assignedNodes_1");
var _assignedNodes_2 = dart.privateName(html$, "_assignedNodes_2");
html$.SlotElement = class SlotElement extends html$.HtmlElement {
  get [$name]() {
    return this.name;
  }
  set [$name](value) {
    this.name = value;
  }
  [$assignedNodes](options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return this[_assignedNodes_1](options_1);
    }
    return this[_assignedNodes_2]();
  }
  [_assignedNodes_1](...args) {
    return this.assignedNodes.apply(this, args);
  }
  [_assignedNodes_2](...args) {
    return this.assignedNodes.apply(this, args);
  }
};
(html$.SlotElement.created = function() {
  html$.SlotElement.__proto__.created.call(this);
  ;
}).prototype = html$.SlotElement.prototype;
dart.addTypeTests(html$.SlotElement);
dart.addTypeCaches(html$.SlotElement);
dart.setMethodSignature(html$.SlotElement, () => ({
  __proto__: dart.getMethods(html$.SlotElement.__proto__),
  [$assignedNodes]: dart.fnType(core.List$(html$.Node), [], [core.Map]),
  [_assignedNodes_1]: dart.fnType(core.List$(html$.Node), [dart.dynamic]),
  [_assignedNodes_2]: dart.fnType(core.List$(html$.Node), [])
}));
dart.setGetterSignature(html$.SlotElement, () => ({
  __proto__: dart.getGetters(html$.SlotElement.__proto__),
  [$name]: core.String
}));
dart.setSetterSignature(html$.SlotElement, () => ({
  __proto__: dart.getSetters(html$.SlotElement.__proto__),
  [$name]: core.String
}));
dart.setLibraryUri(html$.SlotElement, L65);
dart.registerExtension("HTMLSlotElement", html$.SlotElement);
html$.SourceBuffer = class SourceBuffer extends html$.EventTarget {
  get [$appendWindowEnd]() {
    return this.appendWindowEnd;
  }
  set [$appendWindowEnd](value) {
    this.appendWindowEnd = value;
  }
  get [$appendWindowStart]() {
    return this.appendWindowStart;
  }
  set [$appendWindowStart](value) {
    this.appendWindowStart = value;
  }
  get [$audioTracks]() {
    return this.audioTracks;
  }
  get [$buffered]() {
    return this.buffered;
  }
  get [$mode]() {
    return this.mode;
  }
  set [$mode](value) {
    this.mode = value;
  }
  get [$timestampOffset]() {
    return this.timestampOffset;
  }
  set [$timestampOffset](value) {
    this.timestampOffset = value;
  }
  get [$trackDefaults]() {
    return this.trackDefaults;
  }
  set [$trackDefaults](value) {
    this.trackDefaults = value;
  }
  get [$updating]() {
    return this.updating;
  }
  get [$videoTracks]() {
    return this.videoTracks;
  }
  [$abort](...args) {
    return this.abort.apply(this, args);
  }
  [$appendBuffer](...args) {
    return this.appendBuffer.apply(this, args);
  }
  [$appendTypedData](...args) {
    return this.appendBuffer.apply(this, args);
  }
  [$remove](...args) {
    return this.remove.apply(this, args);
  }
  get [$onAbort]() {
    return html$.SourceBuffer.abortEvent.forTarget(this);
  }
  get [$onError]() {
    return html$.SourceBuffer.errorEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.SourceBuffer);
dart.addTypeCaches(html$.SourceBuffer);
dart.setMethodSignature(html$.SourceBuffer, () => ({
  __proto__: dart.getMethods(html$.SourceBuffer.__proto__),
  [$abort]: dart.fnType(dart.void, []),
  [$appendBuffer]: dart.fnType(dart.void, [typed_data.ByteBuffer]),
  [$appendTypedData]: dart.fnType(dart.void, [typed_data.TypedData]),
  [$remove]: dart.fnType(dart.void, [core.num, core.num])
}));
dart.setGetterSignature(html$.SourceBuffer, () => ({
  __proto__: dart.getGetters(html$.SourceBuffer.__proto__),
  [$appendWindowEnd]: core.num,
  [$appendWindowStart]: core.num,
  [$audioTracks]: web_audio.AudioTrackList,
  [$buffered]: html$.TimeRanges,
  [$mode]: core.String,
  [$timestampOffset]: core.num,
  [$trackDefaults]: html$.TrackDefaultList,
  [$updating]: core.bool,
  [$videoTracks]: html$.VideoTrackList,
  [$onAbort]: async.Stream$(html$.Event),
  [$onError]: async.Stream$(html$.Event)
}));
dart.setSetterSignature(html$.SourceBuffer, () => ({
  __proto__: dart.getSetters(html$.SourceBuffer.__proto__),
  [$appendWindowEnd]: core.num,
  [$appendWindowStart]: core.num,
  [$mode]: core.String,
  [$timestampOffset]: core.num,
  [$trackDefaults]: html$.TrackDefaultList
}));
dart.setLibraryUri(html$.SourceBuffer, L65);
dart.defineLazy(html$.SourceBuffer, {
  /*html$.SourceBuffer.abortEvent*/get abortEvent() {
    return C215 || CT.C215;
  },
  /*html$.SourceBuffer.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  }
}, true);
dart.registerExtension("SourceBuffer", html$.SourceBuffer);
const EventTarget_ListMixin$36 = class EventTarget_ListMixin extends html$.EventTarget {};
(EventTarget_ListMixin$36._created = function() {
  EventTarget_ListMixin$36.__proto__._created.call(this);
}).prototype = EventTarget_ListMixin$36.prototype;
dart.applyMixin(EventTarget_ListMixin$36, collection.ListMixin$(html$.SourceBuffer));
const EventTarget_ImmutableListMixin$36 = class EventTarget_ImmutableListMixin extends EventTarget_ListMixin$36 {};
(EventTarget_ImmutableListMixin$36._created = function() {
  EventTarget_ImmutableListMixin$36.__proto__._created.call(this);
}).prototype = EventTarget_ImmutableListMixin$36.prototype;
dart.applyMixin(EventTarget_ImmutableListMixin$36, html$.ImmutableListMixin$(html$.SourceBuffer));
html$.SourceBufferList = class SourceBufferList extends EventTarget_ImmutableListMixin$36 {
  get [$length]() {
    return this.length;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this[index];
  }
  [$_set](index, value$) {
    let value = value$;
    html$.SourceBuffer.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
};
html$.SourceBufferList.prototype[dart.isList] = true;
dart.addTypeTests(html$.SourceBufferList);
dart.addTypeCaches(html$.SourceBufferList);
html$.SourceBufferList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(html$.SourceBuffer), core.List$(html$.SourceBuffer)];
dart.setMethodSignature(html$.SourceBufferList, () => ({
  __proto__: dart.getMethods(html$.SourceBufferList.__proto__),
  [$_get]: dart.fnType(html$.SourceBuffer, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [$item]: dart.fnType(html$.SourceBuffer, [core.int])
}));
dart.setGetterSignature(html$.SourceBufferList, () => ({
  __proto__: dart.getGetters(html$.SourceBufferList.__proto__),
  [$length]: core.int
}));
dart.setSetterSignature(html$.SourceBufferList, () => ({
  __proto__: dart.getSetters(html$.SourceBufferList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$.SourceBufferList, L65);
dart.registerExtension("SourceBufferList", html$.SourceBufferList);
html$.SourceElement = class SourceElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("source");
  }
  get [$media]() {
    return this.media;
  }
  set [$media](value) {
    this.media = value;
  }
  get [$sizes]() {
    return this.sizes;
  }
  set [$sizes](value) {
    this.sizes = value;
  }
  get [$src]() {
    return this.src;
  }
  set [$src](value) {
    this.src = value;
  }
  get [$srcset]() {
    return this.srcset;
  }
  set [$srcset](value) {
    this.srcset = value;
  }
  get [$type]() {
    return this.type;
  }
  set [$type](value) {
    this.type = value;
  }
};
(html$.SourceElement.created = function() {
  html$.SourceElement.__proto__.created.call(this);
  ;
}).prototype = html$.SourceElement.prototype;
dart.addTypeTests(html$.SourceElement);
dart.addTypeCaches(html$.SourceElement);
dart.setGetterSignature(html$.SourceElement, () => ({
  __proto__: dart.getGetters(html$.SourceElement.__proto__),
  [$media]: core.String,
  [$sizes]: core.String,
  [$src]: core.String,
  [$srcset]: core.String,
  [$type]: core.String
}));
dart.setSetterSignature(html$.SourceElement, () => ({
  __proto__: dart.getSetters(html$.SourceElement.__proto__),
  [$media]: core.String,
  [$sizes]: core.String,
  [$src]: core.String,
  [$srcset]: core.String,
  [$type]: core.String
}));
dart.setLibraryUri(html$.SourceElement, L65);
dart.registerExtension("HTMLSourceElement", html$.SourceElement);
html$.SpanElement = class SpanElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("span");
  }
};
(html$.SpanElement.created = function() {
  html$.SpanElement.__proto__.created.call(this);
  ;
}).prototype = html$.SpanElement.prototype;
dart.addTypeTests(html$.SpanElement);
dart.addTypeCaches(html$.SpanElement);
dart.setLibraryUri(html$.SpanElement, L65);
dart.registerExtension("HTMLSpanElement", html$.SpanElement);
html$.SpeechGrammar = class SpeechGrammar$ extends _interceptors.Interceptor {
  static new() {
    return html$.SpeechGrammar._create_1();
  }
  static _create_1() {
    return new SpeechGrammar();
  }
  get [$src]() {
    return this.src;
  }
  set [$src](value) {
    this.src = value;
  }
  get [$weight]() {
    return this.weight;
  }
  set [$weight](value) {
    this.weight = value;
  }
};
dart.addTypeTests(html$.SpeechGrammar);
dart.addTypeCaches(html$.SpeechGrammar);
dart.setGetterSignature(html$.SpeechGrammar, () => ({
  __proto__: dart.getGetters(html$.SpeechGrammar.__proto__),
  [$src]: core.String,
  [$weight]: core.num
}));
dart.setSetterSignature(html$.SpeechGrammar, () => ({
  __proto__: dart.getSetters(html$.SpeechGrammar.__proto__),
  [$src]: core.String,
  [$weight]: core.num
}));
dart.setLibraryUri(html$.SpeechGrammar, L65);
dart.registerExtension("SpeechGrammar", html$.SpeechGrammar);
const Interceptor_ListMixin$36$5 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$5.new = function() {
  Interceptor_ListMixin$36$5.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$5.prototype;
dart.applyMixin(Interceptor_ListMixin$36$5, collection.ListMixin$(html$.SpeechGrammar));
const Interceptor_ImmutableListMixin$36$5 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$5 {};
(Interceptor_ImmutableListMixin$36$5.new = function() {
  Interceptor_ImmutableListMixin$36$5.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$5.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$5, html$.ImmutableListMixin$(html$.SpeechGrammar));
html$.SpeechGrammarList = class SpeechGrammarList$ extends Interceptor_ImmutableListMixin$36$5 {
  static new() {
    return html$.SpeechGrammarList._create_1();
  }
  static _create_1() {
    return new SpeechGrammarList();
  }
  get [$length]() {
    return this.length;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this[index];
  }
  [$_set](index, value$) {
    let value = value$;
    html$.SpeechGrammar.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [$addFromString](...args) {
    return this.addFromString.apply(this, args);
  }
  [$addFromUri](...args) {
    return this.addFromUri.apply(this, args);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
};
html$.SpeechGrammarList.prototype[dart.isList] = true;
dart.addTypeTests(html$.SpeechGrammarList);
dart.addTypeCaches(html$.SpeechGrammarList);
html$.SpeechGrammarList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(html$.SpeechGrammar), core.List$(html$.SpeechGrammar)];
dart.setMethodSignature(html$.SpeechGrammarList, () => ({
  __proto__: dart.getMethods(html$.SpeechGrammarList.__proto__),
  [$_get]: dart.fnType(html$.SpeechGrammar, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [$addFromString]: dart.fnType(dart.void, [core.String], [core.num]),
  [$addFromUri]: dart.fnType(dart.void, [core.String], [core.num]),
  [$item]: dart.fnType(html$.SpeechGrammar, [core.int])
}));
dart.setGetterSignature(html$.SpeechGrammarList, () => ({
  __proto__: dart.getGetters(html$.SpeechGrammarList.__proto__),
  [$length]: core.int
}));
dart.setSetterSignature(html$.SpeechGrammarList, () => ({
  __proto__: dart.getSetters(html$.SpeechGrammarList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$.SpeechGrammarList, L65);
dart.registerExtension("SpeechGrammarList", html$.SpeechGrammarList);
var C367;
var C368;
var C369;
var C370;
var C371;
var C372;
var C373;
var C374;
var C375;
var C376;
var C377;
html$.SpeechRecognition = class SpeechRecognition extends html$.EventTarget {
  static get supported() {
    return !!(window.SpeechRecognition || window.webkitSpeechRecognition);
  }
  get [$audioTrack]() {
    return this.audioTrack;
  }
  set [$audioTrack](value) {
    this.audioTrack = value;
  }
  get [$continuous]() {
    return this.continuous;
  }
  set [$continuous](value) {
    this.continuous = value;
  }
  get [$grammars]() {
    return this.grammars;
  }
  set [$grammars](value) {
    this.grammars = value;
  }
  get [$interimResults]() {
    return this.interimResults;
  }
  set [$interimResults](value) {
    this.interimResults = value;
  }
  get [$lang]() {
    return this.lang;
  }
  set [$lang](value) {
    this.lang = value;
  }
  get [$maxAlternatives]() {
    return this.maxAlternatives;
  }
  set [$maxAlternatives](value) {
    this.maxAlternatives = value;
  }
  [$abort](...args) {
    return this.abort.apply(this, args);
  }
  [$start](...args) {
    return this.start.apply(this, args);
  }
  [$stop](...args) {
    return this.stop.apply(this, args);
  }
  get [$onAudioEnd]() {
    return html$.SpeechRecognition.audioEndEvent.forTarget(this);
  }
  get [$onAudioStart]() {
    return html$.SpeechRecognition.audioStartEvent.forTarget(this);
  }
  get [$onEnd]() {
    return html$.SpeechRecognition.endEvent.forTarget(this);
  }
  get [$onError]() {
    return html$.SpeechRecognition.errorEvent.forTarget(this);
  }
  get [$onNoMatch]() {
    return html$.SpeechRecognition.noMatchEvent.forTarget(this);
  }
  get [$onResult]() {
    return html$.SpeechRecognition.resultEvent.forTarget(this);
  }
  get [$onSoundEnd]() {
    return html$.SpeechRecognition.soundEndEvent.forTarget(this);
  }
  get [$onSoundStart]() {
    return html$.SpeechRecognition.soundStartEvent.forTarget(this);
  }
  get [$onSpeechEnd]() {
    return html$.SpeechRecognition.speechEndEvent.forTarget(this);
  }
  get [$onSpeechStart]() {
    return html$.SpeechRecognition.speechStartEvent.forTarget(this);
  }
  get [$onStart]() {
    return html$.SpeechRecognition.startEvent.forTarget(this);
  }
  static new() {
    return new (window.SpeechRecognition || window.webkitSpeechRecognition)();
  }
};
dart.addTypeTests(html$.SpeechRecognition);
dart.addTypeCaches(html$.SpeechRecognition);
dart.setMethodSignature(html$.SpeechRecognition, () => ({
  __proto__: dart.getMethods(html$.SpeechRecognition.__proto__),
  [$abort]: dart.fnType(dart.void, []),
  [$start]: dart.fnType(dart.void, []),
  [$stop]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.SpeechRecognition, () => ({
  __proto__: dart.getGetters(html$.SpeechRecognition.__proto__),
  [$audioTrack]: html$.MediaStreamTrack,
  [$continuous]: core.bool,
  [$grammars]: html$.SpeechGrammarList,
  [$interimResults]: core.bool,
  [$lang]: core.String,
  [$maxAlternatives]: core.int,
  [$onAudioEnd]: async.Stream$(html$.Event),
  [$onAudioStart]: async.Stream$(html$.Event),
  [$onEnd]: async.Stream$(html$.Event),
  [$onError]: async.Stream$(html$.SpeechRecognitionError),
  [$onNoMatch]: async.Stream$(html$.SpeechRecognitionEvent),
  [$onResult]: async.Stream$(html$.SpeechRecognitionEvent),
  [$onSoundEnd]: async.Stream$(html$.Event),
  [$onSoundStart]: async.Stream$(html$.Event),
  [$onSpeechEnd]: async.Stream$(html$.Event),
  [$onSpeechStart]: async.Stream$(html$.Event),
  [$onStart]: async.Stream$(html$.Event)
}));
dart.setSetterSignature(html$.SpeechRecognition, () => ({
  __proto__: dart.getSetters(html$.SpeechRecognition.__proto__),
  [$audioTrack]: html$.MediaStreamTrack,
  [$continuous]: core.bool,
  [$grammars]: html$.SpeechGrammarList,
  [$interimResults]: core.bool,
  [$lang]: core.String,
  [$maxAlternatives]: core.int
}));
dart.setLibraryUri(html$.SpeechRecognition, L65);
dart.defineLazy(html$.SpeechRecognition, {
  /*html$.SpeechRecognition.audioEndEvent*/get audioEndEvent() {
    return C367 || CT.C367;
  },
  /*html$.SpeechRecognition.audioStartEvent*/get audioStartEvent() {
    return C368 || CT.C368;
  },
  /*html$.SpeechRecognition.endEvent*/get endEvent() {
    return C369 || CT.C369;
  },
  /*html$.SpeechRecognition.errorEvent*/get errorEvent() {
    return C370 || CT.C370;
  },
  /*html$.SpeechRecognition.noMatchEvent*/get noMatchEvent() {
    return C371 || CT.C371;
  },
  /*html$.SpeechRecognition.resultEvent*/get resultEvent() {
    return C372 || CT.C372;
  },
  /*html$.SpeechRecognition.soundEndEvent*/get soundEndEvent() {
    return C373 || CT.C373;
  },
  /*html$.SpeechRecognition.soundStartEvent*/get soundStartEvent() {
    return C374 || CT.C374;
  },
  /*html$.SpeechRecognition.speechEndEvent*/get speechEndEvent() {
    return C375 || CT.C375;
  },
  /*html$.SpeechRecognition.speechStartEvent*/get speechStartEvent() {
    return C376 || CT.C376;
  },
  /*html$.SpeechRecognition.startEvent*/get startEvent() {
    return C377 || CT.C377;
  }
}, true);
dart.registerExtension("SpeechRecognition", html$.SpeechRecognition);
html$.SpeechRecognitionAlternative = class SpeechRecognitionAlternative extends _interceptors.Interceptor {
  get [$confidence]() {
    return this.confidence;
  }
  get [$transcript]() {
    return this.transcript;
  }
};
dart.addTypeTests(html$.SpeechRecognitionAlternative);
dart.addTypeCaches(html$.SpeechRecognitionAlternative);
dart.setGetterSignature(html$.SpeechRecognitionAlternative, () => ({
  __proto__: dart.getGetters(html$.SpeechRecognitionAlternative.__proto__),
  [$confidence]: core.num,
  [$transcript]: core.String
}));
dart.setLibraryUri(html$.SpeechRecognitionAlternative, L65);
dart.registerExtension("SpeechRecognitionAlternative", html$.SpeechRecognitionAlternative);
html$.SpeechRecognitionError = class SpeechRecognitionError$ extends html$.Event {
  static new(type, initDict = null) {
    if (initDict != null) {
      let initDict_1 = html_common.convertDartToNative_Dictionary(initDict);
      return html$.SpeechRecognitionError._create_1(type, initDict_1);
    }
    return html$.SpeechRecognitionError._create_2(type);
  }
  static _create_1(type, initDict) {
    return new SpeechRecognitionError(type, initDict);
  }
  static _create_2(type) {
    return new SpeechRecognitionError(type);
  }
  get [$error]() {
    return this.error;
  }
  get [$message]() {
    return this.message;
  }
};
dart.addTypeTests(html$.SpeechRecognitionError);
dart.addTypeCaches(html$.SpeechRecognitionError);
dart.setGetterSignature(html$.SpeechRecognitionError, () => ({
  __proto__: dart.getGetters(html$.SpeechRecognitionError.__proto__),
  [$error]: core.String,
  [$message]: core.String
}));
dart.setLibraryUri(html$.SpeechRecognitionError, L65);
dart.registerExtension("SpeechRecognitionError", html$.SpeechRecognitionError);
html$.SpeechRecognitionEvent = class SpeechRecognitionEvent$ extends html$.Event {
  static new(type, initDict = null) {
    if (initDict != null) {
      let initDict_1 = html_common.convertDartToNative_Dictionary(initDict);
      return html$.SpeechRecognitionEvent._create_1(type, initDict_1);
    }
    return html$.SpeechRecognitionEvent._create_2(type);
  }
  static _create_1(type, initDict) {
    return new SpeechRecognitionEvent(type, initDict);
  }
  static _create_2(type) {
    return new SpeechRecognitionEvent(type);
  }
  get [$emma]() {
    return this.emma;
  }
  get [$interpretation]() {
    return this.interpretation;
  }
  get [$resultIndex]() {
    return this.resultIndex;
  }
  get [$results]() {
    return this.results;
  }
};
dart.addTypeTests(html$.SpeechRecognitionEvent);
dart.addTypeCaches(html$.SpeechRecognitionEvent);
dart.setGetterSignature(html$.SpeechRecognitionEvent, () => ({
  __proto__: dart.getGetters(html$.SpeechRecognitionEvent.__proto__),
  [$emma]: html$.Document,
  [$interpretation]: html$.Document,
  [$resultIndex]: core.int,
  [$results]: core.List$(html$.SpeechRecognitionResult)
}));
dart.setLibraryUri(html$.SpeechRecognitionEvent, L65);
dart.registerExtension("SpeechRecognitionEvent", html$.SpeechRecognitionEvent);
html$.SpeechRecognitionResult = class SpeechRecognitionResult extends _interceptors.Interceptor {
  get [$isFinal]() {
    return this.isFinal;
  }
  get [$length]() {
    return this.length;
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
};
dart.addTypeTests(html$.SpeechRecognitionResult);
dart.addTypeCaches(html$.SpeechRecognitionResult);
dart.setMethodSignature(html$.SpeechRecognitionResult, () => ({
  __proto__: dart.getMethods(html$.SpeechRecognitionResult.__proto__),
  [$item]: dart.fnType(html$.SpeechRecognitionAlternative, [core.int])
}));
dart.setGetterSignature(html$.SpeechRecognitionResult, () => ({
  __proto__: dart.getGetters(html$.SpeechRecognitionResult.__proto__),
  [$isFinal]: core.bool,
  [$length]: core.int
}));
dart.setLibraryUri(html$.SpeechRecognitionResult, L65);
dart.registerExtension("SpeechRecognitionResult", html$.SpeechRecognitionResult);
var _getVoices = dart.privateName(html$, "_getVoices");
html$.SpeechSynthesis = class SpeechSynthesis extends html$.EventTarget {
  [$getVoices]() {
    let voices = this[_getVoices]();
    if (dart.notNull(voices[$length]) > 0) _js_helper.applyExtension("SpeechSynthesisVoice", voices[$_get](0));
    return voices;
  }
  get [$paused]() {
    return this.paused;
  }
  get [$pending]() {
    return this.pending;
  }
  get [$speaking]() {
    return this.speaking;
  }
  [$cancel](...args) {
    return this.cancel.apply(this, args);
  }
  [_getVoices](...args) {
    return this.getVoices.apply(this, args);
  }
  [$pause](...args) {
    return this.pause.apply(this, args);
  }
  [$resume](...args) {
    return this.resume.apply(this, args);
  }
  [$speak](...args) {
    return this.speak.apply(this, args);
  }
};
dart.addTypeTests(html$.SpeechSynthesis);
dart.addTypeCaches(html$.SpeechSynthesis);
dart.setMethodSignature(html$.SpeechSynthesis, () => ({
  __proto__: dart.getMethods(html$.SpeechSynthesis.__proto__),
  [$getVoices]: dart.fnType(core.List$(html$.SpeechSynthesisVoice), []),
  [$cancel]: dart.fnType(dart.void, []),
  [_getVoices]: dart.fnType(core.List$(html$.SpeechSynthesisVoice), []),
  [$pause]: dart.fnType(dart.void, []),
  [$resume]: dart.fnType(dart.void, []),
  [$speak]: dart.fnType(dart.void, [html$.SpeechSynthesisUtterance])
}));
dart.setGetterSignature(html$.SpeechSynthesis, () => ({
  __proto__: dart.getGetters(html$.SpeechSynthesis.__proto__),
  [$paused]: core.bool,
  [$pending]: core.bool,
  [$speaking]: core.bool
}));
dart.setLibraryUri(html$.SpeechSynthesis, L65);
dart.registerExtension("SpeechSynthesis", html$.SpeechSynthesis);
html$.SpeechSynthesisEvent = class SpeechSynthesisEvent extends html$.Event {
  get [$charIndex]() {
    return this.charIndex;
  }
  get [$elapsedTime]() {
    return this.elapsedTime;
  }
  get [$name]() {
    return this.name;
  }
  get [$utterance]() {
    return this.utterance;
  }
};
dart.addTypeTests(html$.SpeechSynthesisEvent);
dart.addTypeCaches(html$.SpeechSynthesisEvent);
dart.setGetterSignature(html$.SpeechSynthesisEvent, () => ({
  __proto__: dart.getGetters(html$.SpeechSynthesisEvent.__proto__),
  [$charIndex]: core.int,
  [$elapsedTime]: core.num,
  [$name]: core.String,
  [$utterance]: html$.SpeechSynthesisUtterance
}));
dart.setLibraryUri(html$.SpeechSynthesisEvent, L65);
dart.registerExtension("SpeechSynthesisEvent", html$.SpeechSynthesisEvent);
var C378;
var C379;
var C380;
var C381;
var C382;
html$.SpeechSynthesisUtterance = class SpeechSynthesisUtterance$ extends html$.EventTarget {
  static new(text = null) {
    if (text != null) {
      return html$.SpeechSynthesisUtterance._create_1(text);
    }
    return html$.SpeechSynthesisUtterance._create_2();
  }
  static _create_1(text) {
    return new SpeechSynthesisUtterance(text);
  }
  static _create_2() {
    return new SpeechSynthesisUtterance();
  }
  get [$lang]() {
    return this.lang;
  }
  set [$lang](value) {
    this.lang = value;
  }
  get [$pitch]() {
    return this.pitch;
  }
  set [$pitch](value) {
    this.pitch = value;
  }
  get [$rate]() {
    return this.rate;
  }
  set [$rate](value) {
    this.rate = value;
  }
  get [$text]() {
    return this.text;
  }
  set [$text](value) {
    this.text = value;
  }
  get [$voice]() {
    return this.voice;
  }
  set [$voice](value) {
    this.voice = value;
  }
  get [$volume]() {
    return this.volume;
  }
  set [$volume](value) {
    this.volume = value;
  }
  get [$onBoundary]() {
    return html$.SpeechSynthesisUtterance.boundaryEvent.forTarget(this);
  }
  get [$onEnd]() {
    return html$.SpeechSynthesisUtterance.endEvent.forTarget(this);
  }
  get [$onError]() {
    return html$.SpeechSynthesisUtterance.errorEvent.forTarget(this);
  }
  get [$onMark]() {
    return html$.SpeechSynthesisUtterance.markEvent.forTarget(this);
  }
  get [$onPause]() {
    return html$.SpeechSynthesisUtterance.pauseEvent.forTarget(this);
  }
  get [$onResume]() {
    return html$.SpeechSynthesisUtterance.resumeEvent.forTarget(this);
  }
  get [$onStart]() {
    return html$.SpeechSynthesisUtterance.startEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.SpeechSynthesisUtterance);
dart.addTypeCaches(html$.SpeechSynthesisUtterance);
dart.setGetterSignature(html$.SpeechSynthesisUtterance, () => ({
  __proto__: dart.getGetters(html$.SpeechSynthesisUtterance.__proto__),
  [$lang]: core.String,
  [$pitch]: core.num,
  [$rate]: core.num,
  [$text]: core.String,
  [$voice]: html$.SpeechSynthesisVoice,
  [$volume]: core.num,
  [$onBoundary]: async.Stream$(html$.SpeechSynthesisEvent),
  [$onEnd]: async.Stream$(html$.SpeechSynthesisEvent),
  [$onError]: async.Stream$(html$.Event),
  [$onMark]: async.Stream$(html$.SpeechSynthesisEvent),
  [$onPause]: async.Stream$(html$.Event),
  [$onResume]: async.Stream$(html$.SpeechSynthesisEvent),
  [$onStart]: async.Stream$(html$.SpeechSynthesisEvent)
}));
dart.setSetterSignature(html$.SpeechSynthesisUtterance, () => ({
  __proto__: dart.getSetters(html$.SpeechSynthesisUtterance.__proto__),
  [$lang]: core.String,
  [$pitch]: core.num,
  [$rate]: core.num,
  [$text]: core.String,
  [$voice]: html$.SpeechSynthesisVoice,
  [$volume]: core.num
}));
dart.setLibraryUri(html$.SpeechSynthesisUtterance, L65);
dart.defineLazy(html$.SpeechSynthesisUtterance, {
  /*html$.SpeechSynthesisUtterance.boundaryEvent*/get boundaryEvent() {
    return C378 || CT.C378;
  },
  /*html$.SpeechSynthesisUtterance.endEvent*/get endEvent() {
    return C379 || CT.C379;
  },
  /*html$.SpeechSynthesisUtterance.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  },
  /*html$.SpeechSynthesisUtterance.markEvent*/get markEvent() {
    return C380 || CT.C380;
  },
  /*html$.SpeechSynthesisUtterance.pauseEvent*/get pauseEvent() {
    return C270 || CT.C270;
  },
  /*html$.SpeechSynthesisUtterance.resumeEvent*/get resumeEvent() {
    return C381 || CT.C381;
  },
  /*html$.SpeechSynthesisUtterance.startEvent*/get startEvent() {
    return C382 || CT.C382;
  }
}, true);
dart.registerExtension("SpeechSynthesisUtterance", html$.SpeechSynthesisUtterance);
html$.SpeechSynthesisVoice = class SpeechSynthesisVoice extends _interceptors.Interceptor {
  get [$defaultValue]() {
    return this.default;
  }
  get [$lang]() {
    return this.lang;
  }
  get [$localService]() {
    return this.localService;
  }
  get [$name]() {
    return this.name;
  }
  get [$voiceUri]() {
    return this.voiceURI;
  }
};
dart.addTypeTests(html$.SpeechSynthesisVoice);
dart.addTypeCaches(html$.SpeechSynthesisVoice);
dart.setGetterSignature(html$.SpeechSynthesisVoice, () => ({
  __proto__: dart.getGetters(html$.SpeechSynthesisVoice.__proto__),
  [$defaultValue]: core.bool,
  [$lang]: core.String,
  [$localService]: core.bool,
  [$name]: core.String,
  [$voiceUri]: core.String
}));
dart.setLibraryUri(html$.SpeechSynthesisVoice, L65);
dart.registerExtension("SpeechSynthesisVoice", html$.SpeechSynthesisVoice);
html$.StaticRange = class StaticRange extends _interceptors.Interceptor {
  get [$collapsed]() {
    return this.collapsed;
  }
  get [$endContainer]() {
    return this.endContainer;
  }
  get [$endOffset]() {
    return this.endOffset;
  }
  get [$startContainer]() {
    return this.startContainer;
  }
  get [$startOffset]() {
    return this.startOffset;
  }
};
dart.addTypeTests(html$.StaticRange);
dart.addTypeCaches(html$.StaticRange);
dart.setGetterSignature(html$.StaticRange, () => ({
  __proto__: dart.getGetters(html$.StaticRange.__proto__),
  [$collapsed]: core.bool,
  [$endContainer]: html$.Node,
  [$endOffset]: core.int,
  [$startContainer]: html$.Node,
  [$startOffset]: core.int
}));
dart.setLibraryUri(html$.StaticRange, L65);
dart.registerExtension("StaticRange", html$.StaticRange);
var _setItem = dart.privateName(html$, "_setItem");
var _removeItem = dart.privateName(html$, "_removeItem");
var _key = dart.privateName(html$, "_key");
var _length$2 = dart.privateName(html$, "_length");
const Interceptor_MapMixin$36$1 = class Interceptor_MapMixin extends _interceptors.Interceptor {};
(Interceptor_MapMixin$36$1.new = function() {
  Interceptor_MapMixin$36$1.__proto__.new.call(this);
}).prototype = Interceptor_MapMixin$36$1.prototype;
dart.applyMixin(Interceptor_MapMixin$36$1, collection.MapMixin$(core.String, core.String));
html$.Storage = class Storage extends Interceptor_MapMixin$36$1 {
  [$addAll](other) {
    MapOfStringL$StringL().as(other);
    other[$forEach](dart.fn((k, v) => {
      this[$_set](k, v);
    }, StringLAndStringLToNullN()));
  }
  [$containsValue](value) {
    return this[$values][$any](dart.fn(e => core.identical(e, value), StringLToboolL()));
  }
  [$containsKey](key) {
    return this[_getItem](core.String.as(key)) != null;
  }
  [$_get](key) {
    return this[_getItem](core.String.as(key));
  }
  [$_set](key, value$) {
    let value = value$;
    core.String.as(key);
    core.String.as(value);
    this[_setItem](key, value);
    return value$;
  }
  [$putIfAbsent](key, ifAbsent) {
    core.String.as(key);
    VoidToLStringL().as(ifAbsent);
    if (!dart.test(this[$containsKey](key))) this[$_set](key, ifAbsent());
    return this[$_get](key);
  }
  [$remove](key) {
    let value = this[$_get](key);
    this[_removeItem](core.String.as(key));
    return value;
  }
  [$clear]() {
    return this[_clear$0]();
  }
  [$forEach](f) {
    for (let i = 0; true; i = i + 1) {
      let key = this[_key](i);
      if (key == null) return;
      f(key, this[$_get](key));
    }
  }
  get [$keys]() {
    let keys = JSArrayOfStringL().of([]);
    this[$forEach](dart.fn((k, v) => keys[$add](k), StringLAndStringLTovoid()));
    return keys;
  }
  get [$values]() {
    let values = JSArrayOfStringL().of([]);
    this[$forEach](dart.fn((k, v) => values[$add](v), StringLAndStringLTovoid()));
    return values;
  }
  get [$length]() {
    return this[_length$2];
  }
  get [$isEmpty]() {
    return this[_key](0) == null;
  }
  get [$isNotEmpty]() {
    return !dart.test(this[$isEmpty]);
  }
  get [_length$2]() {
    return this.length;
  }
  [_clear$0](...args) {
    return this.clear.apply(this, args);
  }
  [_getItem](...args) {
    return this.getItem.apply(this, args);
  }
  [_key](...args) {
    return this.key.apply(this, args);
  }
  [_removeItem](...args) {
    return this.removeItem.apply(this, args);
  }
  [_setItem](...args) {
    return this.setItem.apply(this, args);
  }
};
dart.addTypeTests(html$.Storage);
dart.addTypeCaches(html$.Storage);
dart.setMethodSignature(html$.Storage, () => ({
  __proto__: dart.getMethods(html$.Storage.__proto__),
  [$_get]: dart.fnType(core.String, [core.Object]),
  [$_set]: dart.fnType(dart.void, [core.Object, core.Object]),
  [$remove]: dart.fnType(core.String, [core.Object]),
  [$clear]: dart.fnType(dart.void, []),
  [_clear$0]: dart.fnType(dart.void, []),
  [_getItem]: dart.fnType(core.String, [core.String]),
  [_key]: dart.fnType(core.String, [core.int]),
  [_removeItem]: dart.fnType(dart.void, [core.String]),
  [_setItem]: dart.fnType(dart.void, [core.String, core.String])
}));
dart.setGetterSignature(html$.Storage, () => ({
  __proto__: dart.getGetters(html$.Storage.__proto__),
  [$keys]: core.Iterable$(core.String),
  [_length$2]: core.int
}));
dart.setLibraryUri(html$.Storage, L65);
dart.registerExtension("Storage", html$.Storage);
var _initStorageEvent = dart.privateName(html$, "_initStorageEvent");
html$.StorageEvent = class StorageEvent$ extends html$.Event {
  static new(type, opts) {
    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
    let key = opts && 'key' in opts ? opts.key : null;
    let oldValue = opts && 'oldValue' in opts ? opts.oldValue : null;
    let newValue = opts && 'newValue' in opts ? opts.newValue : null;
    let url = opts && 'url' in opts ? opts.url : null;
    let storageArea = opts && 'storageArea' in opts ? opts.storageArea : null;
    let e = html$.StorageEvent.as(html$.document[_createEvent]("StorageEvent"));
    e[_initStorageEvent](type, canBubble, cancelable, key, oldValue, newValue, url, storageArea);
    return e;
  }
  static __(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.StorageEvent._create_1(type, eventInitDict_1);
    }
    return html$.StorageEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new StorageEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new StorageEvent(type);
  }
  get [$key]() {
    return this.key;
  }
  get [$newValue]() {
    return this.newValue;
  }
  get [$oldValue]() {
    return this.oldValue;
  }
  get [$storageArea]() {
    return this.storageArea;
  }
  get [$url]() {
    return this.url;
  }
  [_initStorageEvent](...args) {
    return this.initStorageEvent.apply(this, args);
  }
};
dart.addTypeTests(html$.StorageEvent);
dart.addTypeCaches(html$.StorageEvent);
dart.setMethodSignature(html$.StorageEvent, () => ({
  __proto__: dart.getMethods(html$.StorageEvent.__proto__),
  [_initStorageEvent]: dart.fnType(dart.void, [core.String, core.bool, core.bool, core.String, core.String, core.String, core.String, html$.Storage])
}));
dart.setGetterSignature(html$.StorageEvent, () => ({
  __proto__: dart.getGetters(html$.StorageEvent.__proto__),
  [$key]: core.String,
  [$newValue]: core.String,
  [$oldValue]: core.String,
  [$storageArea]: html$.Storage,
  [$url]: core.String
}));
dart.setLibraryUri(html$.StorageEvent, L65);
dart.registerExtension("StorageEvent", html$.StorageEvent);
html$.StorageManager = class StorageManager extends _interceptors.Interceptor {
  [$estimate]() {
    return html$.promiseToFutureAsMap(this.estimate());
  }
  [$persist]() {
    return js_util.promiseToFuture(core.bool, this.persist());
  }
  [$persisted]() {
    return js_util.promiseToFuture(core.bool, this.persisted());
  }
};
dart.addTypeTests(html$.StorageManager);
dart.addTypeCaches(html$.StorageManager);
dart.setMethodSignature(html$.StorageManager, () => ({
  __proto__: dart.getMethods(html$.StorageManager.__proto__),
  [$estimate]: dart.fnType(async.Future$(core.Map$(core.String, dart.dynamic)), []),
  [$persist]: dart.fnType(async.Future$(core.bool), []),
  [$persisted]: dart.fnType(async.Future$(core.bool), [])
}));
dart.setLibraryUri(html$.StorageManager, L65);
dart.registerExtension("StorageManager", html$.StorageManager);
html$.StyleElement = class StyleElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("style");
  }
  get [$disabled]() {
    return this.disabled;
  }
  set [$disabled](value) {
    this.disabled = value;
  }
  get [$media]() {
    return this.media;
  }
  set [$media](value) {
    this.media = value;
  }
  get [$sheet]() {
    return this.sheet;
  }
  get [$type]() {
    return this.type;
  }
  set [$type](value) {
    this.type = value;
  }
};
(html$.StyleElement.created = function() {
  html$.StyleElement.__proto__.created.call(this);
  ;
}).prototype = html$.StyleElement.prototype;
dart.addTypeTests(html$.StyleElement);
dart.addTypeCaches(html$.StyleElement);
dart.setGetterSignature(html$.StyleElement, () => ({
  __proto__: dart.getGetters(html$.StyleElement.__proto__),
  [$disabled]: core.bool,
  [$media]: core.String,
  [$sheet]: html$.StyleSheet,
  [$type]: core.String
}));
dart.setSetterSignature(html$.StyleElement, () => ({
  __proto__: dart.getSetters(html$.StyleElement.__proto__),
  [$disabled]: core.bool,
  [$media]: core.String,
  [$type]: core.String
}));
dart.setLibraryUri(html$.StyleElement, L65);
dart.registerExtension("HTMLStyleElement", html$.StyleElement);
html$.StyleMedia = class StyleMedia extends _interceptors.Interceptor {
  get [$type]() {
    return this.type;
  }
  [$matchMedium](...args) {
    return this.matchMedium.apply(this, args);
  }
};
dart.addTypeTests(html$.StyleMedia);
dart.addTypeCaches(html$.StyleMedia);
dart.setMethodSignature(html$.StyleMedia, () => ({
  __proto__: dart.getMethods(html$.StyleMedia.__proto__),
  [$matchMedium]: dart.fnType(core.bool, [core.String])
}));
dart.setGetterSignature(html$.StyleMedia, () => ({
  __proto__: dart.getGetters(html$.StyleMedia.__proto__),
  [$type]: core.String
}));
dart.setLibraryUri(html$.StyleMedia, L65);
dart.registerExtension("StyleMedia", html$.StyleMedia);
html$.StylePropertyMapReadonly = class StylePropertyMapReadonly extends _interceptors.Interceptor {
  [$get](...args) {
    return this.get.apply(this, args);
  }
  [$getAll](...args) {
    return this.getAll.apply(this, args);
  }
  [$getProperties](...args) {
    return this.getProperties.apply(this, args);
  }
  [$has](...args) {
    return this.has.apply(this, args);
  }
};
dart.addTypeTests(html$.StylePropertyMapReadonly);
dart.addTypeCaches(html$.StylePropertyMapReadonly);
dart.setMethodSignature(html$.StylePropertyMapReadonly, () => ({
  __proto__: dart.getMethods(html$.StylePropertyMapReadonly.__proto__),
  [$get]: dart.fnType(html$.CssStyleValue, [core.String]),
  [$getAll]: dart.fnType(core.List$(html$.CssStyleValue), [core.String]),
  [$getProperties]: dart.fnType(core.List$(core.String), []),
  [$has]: dart.fnType(core.bool, [core.String])
}));
dart.setLibraryUri(html$.StylePropertyMapReadonly, L65);
dart.registerExtension("StylePropertyMapReadonly", html$.StylePropertyMapReadonly);
html$.StylePropertyMap = class StylePropertyMap extends html$.StylePropertyMapReadonly {
  [$append](...args) {
    return this.append.apply(this, args);
  }
  [$delete](...args) {
    return this.delete.apply(this, args);
  }
  [$set](...args) {
    return this.set.apply(this, args);
  }
};
dart.addTypeTests(html$.StylePropertyMap);
dart.addTypeCaches(html$.StylePropertyMap);
dart.setMethodSignature(html$.StylePropertyMap, () => ({
  __proto__: dart.getMethods(html$.StylePropertyMap.__proto__),
  [$append]: dart.fnType(dart.void, [core.String, core.Object]),
  [$delete]: dart.fnType(dart.void, [core.String]),
  [$set]: dart.fnType(dart.void, [core.String, core.Object])
}));
dart.setLibraryUri(html$.StylePropertyMap, L65);
dart.registerExtension("StylePropertyMap", html$.StylePropertyMap);
html$.SyncEvent = class SyncEvent$ extends html$.ExtendableEvent {
  static new(type, init) {
    let init_1 = html_common.convertDartToNative_Dictionary(init);
    return html$.SyncEvent._create_1(type, init_1);
  }
  static _create_1(type, init) {
    return new SyncEvent(type, init);
  }
  get [$lastChance]() {
    return this.lastChance;
  }
  get [$tag]() {
    return this.tag;
  }
};
dart.addTypeTests(html$.SyncEvent);
dart.addTypeCaches(html$.SyncEvent);
dart.setGetterSignature(html$.SyncEvent, () => ({
  __proto__: dart.getGetters(html$.SyncEvent.__proto__),
  [$lastChance]: core.bool,
  [$tag]: core.String
}));
dart.setLibraryUri(html$.SyncEvent, L65);
dart.registerExtension("SyncEvent", html$.SyncEvent);
html$.SyncManager = class SyncManager extends _interceptors.Interceptor {
  [$getTags]() {
    return js_util.promiseToFuture(core.List, this.getTags());
  }
  [$register](tag) {
    return js_util.promiseToFuture(dart.dynamic, this.register(tag));
  }
};
dart.addTypeTests(html$.SyncManager);
dart.addTypeCaches(html$.SyncManager);
dart.setMethodSignature(html$.SyncManager, () => ({
  __proto__: dart.getMethods(html$.SyncManager.__proto__),
  [$getTags]: dart.fnType(async.Future$(core.List), []),
  [$register]: dart.fnType(async.Future, [core.String])
}));
dart.setLibraryUri(html$.SyncManager, L65);
dart.registerExtension("SyncManager", html$.SyncManager);
html$.TableCaptionElement = class TableCaptionElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("caption");
  }
};
(html$.TableCaptionElement.created = function() {
  html$.TableCaptionElement.__proto__.created.call(this);
  ;
}).prototype = html$.TableCaptionElement.prototype;
dart.addTypeTests(html$.TableCaptionElement);
dart.addTypeCaches(html$.TableCaptionElement);
dart.setLibraryUri(html$.TableCaptionElement, L65);
dart.registerExtension("HTMLTableCaptionElement", html$.TableCaptionElement);
html$.TableCellElement = class TableCellElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("td");
  }
  get [$cellIndex]() {
    return this.cellIndex;
  }
  get [$colSpan]() {
    return this.colSpan;
  }
  set [$colSpan](value) {
    this.colSpan = value;
  }
  get [$headers]() {
    return this.headers;
  }
  set [$headers](value) {
    this.headers = value;
  }
  get [$rowSpan]() {
    return this.rowSpan;
  }
  set [$rowSpan](value) {
    this.rowSpan = value;
  }
};
(html$.TableCellElement.created = function() {
  html$.TableCellElement.__proto__.created.call(this);
  ;
}).prototype = html$.TableCellElement.prototype;
dart.addTypeTests(html$.TableCellElement);
dart.addTypeCaches(html$.TableCellElement);
dart.setGetterSignature(html$.TableCellElement, () => ({
  __proto__: dart.getGetters(html$.TableCellElement.__proto__),
  [$cellIndex]: core.int,
  [$colSpan]: core.int,
  [$headers]: core.String,
  [$rowSpan]: core.int
}));
dart.setSetterSignature(html$.TableCellElement, () => ({
  __proto__: dart.getSetters(html$.TableCellElement.__proto__),
  [$colSpan]: core.int,
  [$headers]: core.String,
  [$rowSpan]: core.int
}));
dart.setLibraryUri(html$.TableCellElement, L65);
dart.registerExtension("HTMLTableCellElement", html$.TableCellElement);
dart.registerExtension("HTMLTableDataCellElement", html$.TableCellElement);
dart.registerExtension("HTMLTableHeaderCellElement", html$.TableCellElement);
html$.TableColElement = class TableColElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("col");
  }
  get [$span]() {
    return this.span;
  }
  set [$span](value) {
    this.span = value;
  }
};
(html$.TableColElement.created = function() {
  html$.TableColElement.__proto__.created.call(this);
  ;
}).prototype = html$.TableColElement.prototype;
dart.addTypeTests(html$.TableColElement);
dart.addTypeCaches(html$.TableColElement);
dart.setGetterSignature(html$.TableColElement, () => ({
  __proto__: dart.getGetters(html$.TableColElement.__proto__),
  [$span]: core.int
}));
dart.setSetterSignature(html$.TableColElement, () => ({
  __proto__: dart.getSetters(html$.TableColElement.__proto__),
  [$span]: core.int
}));
dart.setLibraryUri(html$.TableColElement, L65);
dart.registerExtension("HTMLTableColElement", html$.TableColElement);
var _tBodies = dart.privateName(html$, "_tBodies");
var _rows = dart.privateName(html$, "_rows");
var _createCaption = dart.privateName(html$, "_createCaption");
var _createTBody = dart.privateName(html$, "_createTBody");
var _createTFoot = dart.privateName(html$, "_createTFoot");
var _createTHead = dart.privateName(html$, "_createTHead");
var _insertRow = dart.privateName(html$, "_insertRow");
var _nativeCreateTBody = dart.privateName(html$, "_nativeCreateTBody");
html$.TableElement = class TableElement extends html$.HtmlElement {
  get [$tBodies]() {
    return new (_WrappedListOfTableSectionElementL()).new(this[_tBodies]);
  }
  get [$rows]() {
    return new (_WrappedListOfTableRowElementL()).new(this[_rows]);
  }
  [$addRow]() {
    return this[$insertRow](-1);
  }
  [$createCaption]() {
    return this[_createCaption]();
  }
  [$createTBody]() {
    return this[_createTBody]();
  }
  [$createTFoot]() {
    return this[_createTFoot]();
  }
  [$createTHead]() {
    return this[_createTHead]();
  }
  [$insertRow](index) {
    return this[_insertRow](index);
  }
  [_createTBody]() {
    if (!!this.createTBody) {
      return this[_nativeCreateTBody]();
    }
    let tbody = html$.Element.tag("tbody");
    this[$children][$add](tbody);
    return html$.TableSectionElement.as(tbody);
  }
  [_nativeCreateTBody](...args) {
    return this.createTBody.apply(this, args);
  }
  [$createFragment](html, opts) {
    let validator = opts && 'validator' in opts ? opts.validator : null;
    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
    if (dart.test(html$.Range.supportsCreateContextualFragment)) {
      return super[$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
    }
    let contextualHtml = "<table>" + dart.str(html) + "</table>";
    let table = html$.Element.html(contextualHtml, {validator: validator, treeSanitizer: treeSanitizer});
    let fragment = html$.DocumentFragment.new();
    fragment[$nodes][$addAll](table[$nodes]);
    return fragment;
  }
  static new() {
    return html$.document.createElement("table");
  }
  get [$caption]() {
    return this.caption;
  }
  set [$caption](value) {
    this.caption = value;
  }
  get [_rows]() {
    return this.rows;
  }
  get [_tBodies]() {
    return this.tBodies;
  }
  get [$tFoot]() {
    return this.tFoot;
  }
  set [$tFoot](value) {
    this.tFoot = value;
  }
  get [$tHead]() {
    return this.tHead;
  }
  set [$tHead](value) {
    this.tHead = value;
  }
  [_createCaption](...args) {
    return this.createCaption.apply(this, args);
  }
  [_createTFoot](...args) {
    return this.createTFoot.apply(this, args);
  }
  [_createTHead](...args) {
    return this.createTHead.apply(this, args);
  }
  [$deleteCaption](...args) {
    return this.deleteCaption.apply(this, args);
  }
  [$deleteRow](...args) {
    return this.deleteRow.apply(this, args);
  }
  [$deleteTFoot](...args) {
    return this.deleteTFoot.apply(this, args);
  }
  [$deleteTHead](...args) {
    return this.deleteTHead.apply(this, args);
  }
  [_insertRow](...args) {
    return this.insertRow.apply(this, args);
  }
};
(html$.TableElement.created = function() {
  html$.TableElement.__proto__.created.call(this);
  ;
}).prototype = html$.TableElement.prototype;
dart.addTypeTests(html$.TableElement);
dart.addTypeCaches(html$.TableElement);
dart.setMethodSignature(html$.TableElement, () => ({
  __proto__: dart.getMethods(html$.TableElement.__proto__),
  [$addRow]: dart.fnType(html$.TableRowElement, []),
  [$createCaption]: dart.fnType(html$.TableCaptionElement, []),
  [$createTBody]: dart.fnType(html$.TableSectionElement, []),
  [$createTFoot]: dart.fnType(html$.TableSectionElement, []),
  [$createTHead]: dart.fnType(html$.TableSectionElement, []),
  [$insertRow]: dart.fnType(html$.TableRowElement, [core.int]),
  [_createTBody]: dart.fnType(html$.TableSectionElement, []),
  [_nativeCreateTBody]: dart.fnType(html$.TableSectionElement, []),
  [_createCaption]: dart.fnType(html$.TableCaptionElement, []),
  [_createTFoot]: dart.fnType(html$.TableSectionElement, []),
  [_createTHead]: dart.fnType(html$.TableSectionElement, []),
  [$deleteCaption]: dart.fnType(dart.void, []),
  [$deleteRow]: dart.fnType(dart.void, [core.int]),
  [$deleteTFoot]: dart.fnType(dart.void, []),
  [$deleteTHead]: dart.fnType(dart.void, []),
  [_insertRow]: dart.fnType(html$.TableRowElement, [], [core.int])
}));
dart.setGetterSignature(html$.TableElement, () => ({
  __proto__: dart.getGetters(html$.TableElement.__proto__),
  [$tBodies]: core.List$(html$.TableSectionElement),
  [$rows]: core.List$(html$.TableRowElement),
  [$caption]: html$.TableCaptionElement,
  [_rows]: core.List$(html$.Node),
  [_tBodies]: core.List$(html$.Node),
  [$tFoot]: html$.TableSectionElement,
  [$tHead]: html$.TableSectionElement
}));
dart.setSetterSignature(html$.TableElement, () => ({
  __proto__: dart.getSetters(html$.TableElement.__proto__),
  [$caption]: html$.TableCaptionElement,
  [$tFoot]: html$.TableSectionElement,
  [$tHead]: html$.TableSectionElement
}));
dart.setLibraryUri(html$.TableElement, L65);
dart.registerExtension("HTMLTableElement", html$.TableElement);
var _cells = dart.privateName(html$, "_cells");
var _insertCell = dart.privateName(html$, "_insertCell");
html$.TableRowElement = class TableRowElement extends html$.HtmlElement {
  get [$cells]() {
    return new (_WrappedListOfTableCellElementL()).new(this[_cells]);
  }
  [$addCell]() {
    return this[$insertCell](-1);
  }
  [$insertCell](index) {
    return html$.TableCellElement.as(this[_insertCell](index));
  }
  [$createFragment](html, opts) {
    let validator = opts && 'validator' in opts ? opts.validator : null;
    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
    if (dart.test(html$.Range.supportsCreateContextualFragment)) {
      return super[$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
    }
    let fragment = html$.DocumentFragment.new();
    let section = html$.TableElement.new()[$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer})[$nodes][$single];
    let row = section[$nodes][$single];
    fragment[$nodes][$addAll](row[$nodes]);
    return fragment;
  }
  static new() {
    return html$.document.createElement("tr");
  }
  get [_cells]() {
    return this.cells;
  }
  get [$rowIndex]() {
    return this.rowIndex;
  }
  get [$sectionRowIndex]() {
    return this.sectionRowIndex;
  }
  [$deleteCell](...args) {
    return this.deleteCell.apply(this, args);
  }
  [_insertCell](...args) {
    return this.insertCell.apply(this, args);
  }
};
(html$.TableRowElement.created = function() {
  html$.TableRowElement.__proto__.created.call(this);
  ;
}).prototype = html$.TableRowElement.prototype;
dart.addTypeTests(html$.TableRowElement);
dart.addTypeCaches(html$.TableRowElement);
dart.setMethodSignature(html$.TableRowElement, () => ({
  __proto__: dart.getMethods(html$.TableRowElement.__proto__),
  [$addCell]: dart.fnType(html$.TableCellElement, []),
  [$insertCell]: dart.fnType(html$.TableCellElement, [core.int]),
  [$deleteCell]: dart.fnType(dart.void, [core.int]),
  [_insertCell]: dart.fnType(html$.HtmlElement, [], [core.int])
}));
dart.setGetterSignature(html$.TableRowElement, () => ({
  __proto__: dart.getGetters(html$.TableRowElement.__proto__),
  [$cells]: core.List$(html$.TableCellElement),
  [_cells]: core.List$(html$.Node),
  [$rowIndex]: core.int,
  [$sectionRowIndex]: core.int
}));
dart.setLibraryUri(html$.TableRowElement, L65);
dart.registerExtension("HTMLTableRowElement", html$.TableRowElement);
html$.TableSectionElement = class TableSectionElement extends html$.HtmlElement {
  get [$rows]() {
    return new (_WrappedListOfTableRowElementL()).new(this[_rows]);
  }
  [$addRow]() {
    return this[$insertRow](-1);
  }
  [$insertRow](index) {
    return html$.TableRowElement.as(this[_insertRow](index));
  }
  [$createFragment](html, opts) {
    let validator = opts && 'validator' in opts ? opts.validator : null;
    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
    if (dart.test(html$.Range.supportsCreateContextualFragment)) {
      return super[$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
    }
    let fragment = html$.DocumentFragment.new();
    let section = html$.TableElement.new()[$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer})[$nodes][$single];
    fragment[$nodes][$addAll](section[$nodes]);
    return fragment;
  }
  get [_rows]() {
    return this.rows;
  }
  [$deleteRow](...args) {
    return this.deleteRow.apply(this, args);
  }
  [_insertRow](...args) {
    return this.insertRow.apply(this, args);
  }
};
(html$.TableSectionElement.created = function() {
  html$.TableSectionElement.__proto__.created.call(this);
  ;
}).prototype = html$.TableSectionElement.prototype;
dart.addTypeTests(html$.TableSectionElement);
dart.addTypeCaches(html$.TableSectionElement);
dart.setMethodSignature(html$.TableSectionElement, () => ({
  __proto__: dart.getMethods(html$.TableSectionElement.__proto__),
  [$addRow]: dart.fnType(html$.TableRowElement, []),
  [$insertRow]: dart.fnType(html$.TableRowElement, [core.int]),
  [$deleteRow]: dart.fnType(dart.void, [core.int]),
  [_insertRow]: dart.fnType(html$.HtmlElement, [], [core.int])
}));
dart.setGetterSignature(html$.TableSectionElement, () => ({
  __proto__: dart.getGetters(html$.TableSectionElement.__proto__),
  [$rows]: core.List$(html$.TableRowElement),
  [_rows]: core.List$(html$.Node)
}));
dart.setLibraryUri(html$.TableSectionElement, L65);
dart.registerExtension("HTMLTableSectionElement", html$.TableSectionElement);
html$.TaskAttributionTiming = class TaskAttributionTiming extends html$.PerformanceEntry {
  get [$containerId]() {
    return this.containerId;
  }
  get [$containerName]() {
    return this.containerName;
  }
  get [$containerSrc]() {
    return this.containerSrc;
  }
  get [$containerType]() {
    return this.containerType;
  }
  get [$scriptUrl]() {
    return this.scriptURL;
  }
};
dart.addTypeTests(html$.TaskAttributionTiming);
dart.addTypeCaches(html$.TaskAttributionTiming);
dart.setGetterSignature(html$.TaskAttributionTiming, () => ({
  __proto__: dart.getGetters(html$.TaskAttributionTiming.__proto__),
  [$containerId]: core.String,
  [$containerName]: core.String,
  [$containerSrc]: core.String,
  [$containerType]: core.String,
  [$scriptUrl]: core.String
}));
dart.setLibraryUri(html$.TaskAttributionTiming, L65);
dart.registerExtension("TaskAttributionTiming", html$.TaskAttributionTiming);
html$.TemplateElement = class TemplateElement extends html$.HtmlElement {
  static new() {
    return html$.TemplateElement.as(html$.document[$createElement]("template"));
  }
  static get supported() {
    return html$.Element.isTagSupported("template");
  }
  get [$content]() {
    return this.content;
  }
  [$setInnerHtml](html, opts) {
    let validator = opts && 'validator' in opts ? opts.validator : null;
    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
    this[$text] = null;
    this.content[$nodes][$clear]();
    let fragment = this[$createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
    this.content[$append](fragment);
  }
};
(html$.TemplateElement.created = function() {
  html$.TemplateElement.__proto__.created.call(this);
  ;
}).prototype = html$.TemplateElement.prototype;
dart.addTypeTests(html$.TemplateElement);
dart.addTypeCaches(html$.TemplateElement);
dart.setGetterSignature(html$.TemplateElement, () => ({
  __proto__: dart.getGetters(html$.TemplateElement.__proto__),
  [$content]: html$.DocumentFragment
}));
dart.setLibraryUri(html$.TemplateElement, L65);
dart.registerExtension("HTMLTemplateElement", html$.TemplateElement);
html$.TextAreaElement = class TextAreaElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("textarea");
  }
  get [$autocapitalize]() {
    return this.autocapitalize;
  }
  set [$autocapitalize](value) {
    this.autocapitalize = value;
  }
  get [$autofocus]() {
    return this.autofocus;
  }
  set [$autofocus](value) {
    this.autofocus = value;
  }
  get [$cols]() {
    return this.cols;
  }
  set [$cols](value) {
    this.cols = value;
  }
  get [$defaultValue]() {
    return this.defaultValue;
  }
  set [$defaultValue](value) {
    this.defaultValue = value;
  }
  get [$dirName]() {
    return this.dirName;
  }
  set [$dirName](value) {
    this.dirName = value;
  }
  get [$disabled]() {
    return this.disabled;
  }
  set [$disabled](value) {
    this.disabled = value;
  }
  get [$form]() {
    return this.form;
  }
  get [$labels]() {
    return this.labels;
  }
  get [$maxLength]() {
    return this.maxLength;
  }
  set [$maxLength](value) {
    this.maxLength = value;
  }
  get [$minLength]() {
    return this.minLength;
  }
  set [$minLength](value) {
    this.minLength = value;
  }
  get [$name]() {
    return this.name;
  }
  set [$name](value) {
    this.name = value;
  }
  get [$placeholder]() {
    return this.placeholder;
  }
  set [$placeholder](value) {
    this.placeholder = value;
  }
  get [$readOnly]() {
    return this.readOnly;
  }
  set [$readOnly](value) {
    this.readOnly = value;
  }
  get [$required]() {
    return this.required;
  }
  set [$required](value) {
    this.required = value;
  }
  get [$rows]() {
    return this.rows;
  }
  set [$rows](value) {
    this.rows = value;
  }
  get [$selectionDirection]() {
    return this.selectionDirection;
  }
  set [$selectionDirection](value) {
    this.selectionDirection = value;
  }
  get [$selectionEnd]() {
    return this.selectionEnd;
  }
  set [$selectionEnd](value) {
    this.selectionEnd = value;
  }
  get [$selectionStart]() {
    return this.selectionStart;
  }
  set [$selectionStart](value) {
    this.selectionStart = value;
  }
  get [$textLength]() {
    return this.textLength;
  }
  get [$type]() {
    return this.type;
  }
  get [$validationMessage]() {
    return this.validationMessage;
  }
  get [$validity]() {
    return this.validity;
  }
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
  get [$willValidate]() {
    return this.willValidate;
  }
  get [$wrap]() {
    return this.wrap;
  }
  set [$wrap](value) {
    this.wrap = value;
  }
  [$checkValidity](...args) {
    return this.checkValidity.apply(this, args);
  }
  [$reportValidity](...args) {
    return this.reportValidity.apply(this, args);
  }
  [$select](...args) {
    return this.select.apply(this, args);
  }
  [$setCustomValidity](...args) {
    return this.setCustomValidity.apply(this, args);
  }
  [$setRangeText](...args) {
    return this.setRangeText.apply(this, args);
  }
  [$setSelectionRange](...args) {
    return this.setSelectionRange.apply(this, args);
  }
};
(html$.TextAreaElement.created = function() {
  html$.TextAreaElement.__proto__.created.call(this);
  ;
}).prototype = html$.TextAreaElement.prototype;
dart.addTypeTests(html$.TextAreaElement);
dart.addTypeCaches(html$.TextAreaElement);
dart.setMethodSignature(html$.TextAreaElement, () => ({
  __proto__: dart.getMethods(html$.TextAreaElement.__proto__),
  [$checkValidity]: dart.fnType(core.bool, []),
  [$reportValidity]: dart.fnType(core.bool, []),
  [$select]: dart.fnType(dart.void, []),
  [$setCustomValidity]: dart.fnType(dart.void, [core.String]),
  [$setRangeText]: dart.fnType(dart.void, [core.String], {end: core.int, selectionMode: core.String, start: core.int}, {}),
  [$setSelectionRange]: dart.fnType(dart.void, [core.int, core.int], [core.String])
}));
dart.setGetterSignature(html$.TextAreaElement, () => ({
  __proto__: dart.getGetters(html$.TextAreaElement.__proto__),
  [$autocapitalize]: core.String,
  [$autofocus]: core.bool,
  [$cols]: core.int,
  [$defaultValue]: core.String,
  [$dirName]: core.String,
  [$disabled]: core.bool,
  [$form]: html$.FormElement,
  [$labels]: core.List$(html$.Node),
  [$maxLength]: core.int,
  [$minLength]: core.int,
  [$name]: core.String,
  [$placeholder]: core.String,
  [$readOnly]: core.bool,
  [$required]: core.bool,
  [$rows]: core.int,
  [$selectionDirection]: core.String,
  [$selectionEnd]: core.int,
  [$selectionStart]: core.int,
  [$textLength]: core.int,
  [$type]: core.String,
  [$validationMessage]: core.String,
  [$validity]: html$.ValidityState,
  [$value]: core.String,
  [$willValidate]: core.bool,
  [$wrap]: core.String
}));
dart.setSetterSignature(html$.TextAreaElement, () => ({
  __proto__: dart.getSetters(html$.TextAreaElement.__proto__),
  [$autocapitalize]: core.String,
  [$autofocus]: core.bool,
  [$cols]: core.int,
  [$defaultValue]: core.String,
  [$dirName]: core.String,
  [$disabled]: core.bool,
  [$maxLength]: core.int,
  [$minLength]: core.int,
  [$name]: core.String,
  [$placeholder]: core.String,
  [$readOnly]: core.bool,
  [$required]: core.bool,
  [$rows]: core.int,
  [$selectionDirection]: core.String,
  [$selectionEnd]: core.int,
  [$selectionStart]: core.int,
  [$value]: core.String,
  [$wrap]: core.String
}));
dart.setLibraryUri(html$.TextAreaElement, L65);
dart.registerExtension("HTMLTextAreaElement", html$.TextAreaElement);
html$.TextDetector = class TextDetector$ extends _interceptors.Interceptor {
  static new() {
    return html$.TextDetector._create_1();
  }
  static _create_1() {
    return new TextDetector();
  }
  [$detect](image) {
    return js_util.promiseToFuture(core.List, this.detect(image));
  }
};
dart.addTypeTests(html$.TextDetector);
dart.addTypeCaches(html$.TextDetector);
dart.setMethodSignature(html$.TextDetector, () => ({
  __proto__: dart.getMethods(html$.TextDetector.__proto__),
  [$detect]: dart.fnType(async.Future$(core.List), [dart.dynamic])
}));
dart.setLibraryUri(html$.TextDetector, L65);
dart.registerExtension("TextDetector", html$.TextDetector);
var _initTextEvent = dart.privateName(html$, "_initTextEvent");
html$.TextEvent = class TextEvent extends html$.UIEvent {
  static new(type, opts) {
    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
    let view = opts && 'view' in opts ? opts.view : null;
    let data = opts && 'data' in opts ? opts.data : null;
    if (view == null) {
      view = html$.window;
    }
    let e = html$.TextEvent.as(html$.document[_createEvent]("TextEvent"));
    e[_initTextEvent](type, canBubble, cancelable, view, data);
    return e;
  }
  get [$data]() {
    return this.data;
  }
  [_initTextEvent](...args) {
    return this.initTextEvent.apply(this, args);
  }
};
dart.addTypeTests(html$.TextEvent);
dart.addTypeCaches(html$.TextEvent);
dart.setMethodSignature(html$.TextEvent, () => ({
  __proto__: dart.getMethods(html$.TextEvent.__proto__),
  [_initTextEvent]: dart.fnType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.String])
}));
dart.setGetterSignature(html$.TextEvent, () => ({
  __proto__: dart.getGetters(html$.TextEvent.__proto__),
  [$data]: core.String
}));
dart.setLibraryUri(html$.TextEvent, L65);
dart.registerExtension("TextEvent", html$.TextEvent);
html$.TextMetrics = class TextMetrics extends _interceptors.Interceptor {
  get [$actualBoundingBoxAscent]() {
    return this.actualBoundingBoxAscent;
  }
  get [$actualBoundingBoxDescent]() {
    return this.actualBoundingBoxDescent;
  }
  get [$actualBoundingBoxLeft]() {
    return this.actualBoundingBoxLeft;
  }
  get [$actualBoundingBoxRight]() {
    return this.actualBoundingBoxRight;
  }
  get [$alphabeticBaseline]() {
    return this.alphabeticBaseline;
  }
  get [$emHeightAscent]() {
    return this.emHeightAscent;
  }
  get [$emHeightDescent]() {
    return this.emHeightDescent;
  }
  get [$fontBoundingBoxAscent]() {
    return this.fontBoundingBoxAscent;
  }
  get [$fontBoundingBoxDescent]() {
    return this.fontBoundingBoxDescent;
  }
  get [$hangingBaseline]() {
    return this.hangingBaseline;
  }
  get [$ideographicBaseline]() {
    return this.ideographicBaseline;
  }
  get [$width]() {
    return this.width;
  }
};
dart.addTypeTests(html$.TextMetrics);
dart.addTypeCaches(html$.TextMetrics);
dart.setGetterSignature(html$.TextMetrics, () => ({
  __proto__: dart.getGetters(html$.TextMetrics.__proto__),
  [$actualBoundingBoxAscent]: core.num,
  [$actualBoundingBoxDescent]: core.num,
  [$actualBoundingBoxLeft]: core.num,
  [$actualBoundingBoxRight]: core.num,
  [$alphabeticBaseline]: core.num,
  [$emHeightAscent]: core.num,
  [$emHeightDescent]: core.num,
  [$fontBoundingBoxAscent]: core.num,
  [$fontBoundingBoxDescent]: core.num,
  [$hangingBaseline]: core.num,
  [$ideographicBaseline]: core.num,
  [$width]: core.num
}));
dart.setLibraryUri(html$.TextMetrics, L65);
dart.registerExtension("TextMetrics", html$.TextMetrics);
var C383;
html$.TextTrack = class TextTrack extends html$.EventTarget {
  get [$activeCues]() {
    return this.activeCues;
  }
  get [$cues]() {
    return this.cues;
  }
  get [$id]() {
    return this.id;
  }
  get [$kind]() {
    return this.kind;
  }
  get [$label]() {
    return this.label;
  }
  get [$language]() {
    return this.language;
  }
  get [$mode]() {
    return this.mode;
  }
  set [$mode](value) {
    this.mode = value;
  }
  [$addCue](...args) {
    return this.addCue.apply(this, args);
  }
  [$removeCue](...args) {
    return this.removeCue.apply(this, args);
  }
  get [$onCueChange]() {
    return html$.TextTrack.cueChangeEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.TextTrack);
dart.addTypeCaches(html$.TextTrack);
dart.setMethodSignature(html$.TextTrack, () => ({
  __proto__: dart.getMethods(html$.TextTrack.__proto__),
  [$addCue]: dart.fnType(dart.void, [html$.TextTrackCue]),
  [$removeCue]: dart.fnType(dart.void, [html$.TextTrackCue])
}));
dart.setGetterSignature(html$.TextTrack, () => ({
  __proto__: dart.getGetters(html$.TextTrack.__proto__),
  [$activeCues]: html$.TextTrackCueList,
  [$cues]: html$.TextTrackCueList,
  [$id]: core.String,
  [$kind]: core.String,
  [$label]: core.String,
  [$language]: core.String,
  [$mode]: core.String,
  [$onCueChange]: async.Stream$(html$.Event)
}));
dart.setSetterSignature(html$.TextTrack, () => ({
  __proto__: dart.getSetters(html$.TextTrack.__proto__),
  [$mode]: core.String
}));
dart.setLibraryUri(html$.TextTrack, L65);
dart.defineLazy(html$.TextTrack, {
  /*html$.TextTrack.cueChangeEvent*/get cueChangeEvent() {
    return C383 || CT.C383;
  }
}, true);
dart.registerExtension("TextTrack", html$.TextTrack);
var C384;
var C385;
html$.TextTrackCue = class TextTrackCue extends html$.EventTarget {
  get [$endTime]() {
    return this.endTime;
  }
  set [$endTime](value) {
    this.endTime = value;
  }
  get [$id]() {
    return this.id;
  }
  set [$id](value) {
    this.id = value;
  }
  get [$pauseOnExit]() {
    return this.pauseOnExit;
  }
  set [$pauseOnExit](value) {
    this.pauseOnExit = value;
  }
  get [$startTime]() {
    return this.startTime;
  }
  set [$startTime](value) {
    this.startTime = value;
  }
  get [$track]() {
    return this.track;
  }
  get [$onEnter]() {
    return html$.TextTrackCue.enterEvent.forTarget(this);
  }
  get [$onExit]() {
    return html$.TextTrackCue.exitEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.TextTrackCue);
dart.addTypeCaches(html$.TextTrackCue);
dart.setGetterSignature(html$.TextTrackCue, () => ({
  __proto__: dart.getGetters(html$.TextTrackCue.__proto__),
  [$endTime]: core.num,
  [$id]: core.String,
  [$pauseOnExit]: core.bool,
  [$startTime]: core.num,
  [$track]: html$.TextTrack,
  [$onEnter]: async.Stream$(html$.Event),
  [$onExit]: async.Stream$(html$.Event)
}));
dart.setSetterSignature(html$.TextTrackCue, () => ({
  __proto__: dart.getSetters(html$.TextTrackCue.__proto__),
  [$endTime]: core.num,
  [$id]: core.String,
  [$pauseOnExit]: core.bool,
  [$startTime]: core.num
}));
dart.setLibraryUri(html$.TextTrackCue, L65);
dart.defineLazy(html$.TextTrackCue, {
  /*html$.TextTrackCue.enterEvent*/get enterEvent() {
    return C384 || CT.C384;
  },
  /*html$.TextTrackCue.exitEvent*/get exitEvent() {
    return C385 || CT.C385;
  }
}, true);
dart.registerExtension("TextTrackCue", html$.TextTrackCue);
const Interceptor_ListMixin$36$6 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$6.new = function() {
  Interceptor_ListMixin$36$6.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$6.prototype;
dart.applyMixin(Interceptor_ListMixin$36$6, collection.ListMixin$(html$.TextTrackCue));
const Interceptor_ImmutableListMixin$36$6 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$6 {};
(Interceptor_ImmutableListMixin$36$6.new = function() {
  Interceptor_ImmutableListMixin$36$6.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$6.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$6, html$.ImmutableListMixin$(html$.TextTrackCue));
html$.TextTrackCueList = class TextTrackCueList extends Interceptor_ImmutableListMixin$36$6 {
  get [$length]() {
    return this.length;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this[index];
  }
  [$_set](index, value$) {
    let value = value$;
    html$.TextTrackCue.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [__getter__](...args) {
    return this.__getter__.apply(this, args);
  }
  [$getCueById](...args) {
    return this.getCueById.apply(this, args);
  }
};
html$.TextTrackCueList.prototype[dart.isList] = true;
dart.addTypeTests(html$.TextTrackCueList);
dart.addTypeCaches(html$.TextTrackCueList);
html$.TextTrackCueList[dart.implements] = () => [core.List$(html$.TextTrackCue), _js_helper.JavaScriptIndexingBehavior$(html$.TextTrackCue)];
dart.setMethodSignature(html$.TextTrackCueList, () => ({
  __proto__: dart.getMethods(html$.TextTrackCueList.__proto__),
  [$_get]: dart.fnType(html$.TextTrackCue, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [__getter__]: dart.fnType(html$.TextTrackCue, [core.int]),
  [$getCueById]: dart.fnType(html$.TextTrackCue, [core.String])
}));
dart.setGetterSignature(html$.TextTrackCueList, () => ({
  __proto__: dart.getGetters(html$.TextTrackCueList.__proto__),
  [$length]: core.int
}));
dart.setSetterSignature(html$.TextTrackCueList, () => ({
  __proto__: dart.getSetters(html$.TextTrackCueList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$.TextTrackCueList, L65);
dart.registerExtension("TextTrackCueList", html$.TextTrackCueList);
var C386;
const EventTarget_ListMixin$36$ = class EventTarget_ListMixin extends html$.EventTarget {};
(EventTarget_ListMixin$36$._created = function() {
  EventTarget_ListMixin$36$.__proto__._created.call(this);
}).prototype = EventTarget_ListMixin$36$.prototype;
dart.applyMixin(EventTarget_ListMixin$36$, collection.ListMixin$(html$.TextTrack));
const EventTarget_ImmutableListMixin$36$ = class EventTarget_ImmutableListMixin extends EventTarget_ListMixin$36$ {};
(EventTarget_ImmutableListMixin$36$._created = function() {
  EventTarget_ImmutableListMixin$36$.__proto__._created.call(this);
}).prototype = EventTarget_ImmutableListMixin$36$.prototype;
dart.applyMixin(EventTarget_ImmutableListMixin$36$, html$.ImmutableListMixin$(html$.TextTrack));
html$.TextTrackList = class TextTrackList extends EventTarget_ImmutableListMixin$36$ {
  get [$length]() {
    return this.length;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this[index];
  }
  [$_set](index, value$) {
    let value = value$;
    html$.TextTrack.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [__getter__](...args) {
    return this.__getter__.apply(this, args);
  }
  [$getTrackById](...args) {
    return this.getTrackById.apply(this, args);
  }
  get [$onAddTrack]() {
    return html$.TextTrackList.addTrackEvent.forTarget(this);
  }
  get [$onChange]() {
    return html$.TextTrackList.changeEvent.forTarget(this);
  }
};
html$.TextTrackList.prototype[dart.isList] = true;
dart.addTypeTests(html$.TextTrackList);
dart.addTypeCaches(html$.TextTrackList);
html$.TextTrackList[dart.implements] = () => [core.List$(html$.TextTrack), _js_helper.JavaScriptIndexingBehavior$(html$.TextTrack)];
dart.setMethodSignature(html$.TextTrackList, () => ({
  __proto__: dart.getMethods(html$.TextTrackList.__proto__),
  [$_get]: dart.fnType(html$.TextTrack, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [__getter__]: dart.fnType(html$.TextTrack, [core.int]),
  [$getTrackById]: dart.fnType(html$.TextTrack, [core.String])
}));
dart.setGetterSignature(html$.TextTrackList, () => ({
  __proto__: dart.getGetters(html$.TextTrackList.__proto__),
  [$length]: core.int,
  [$onAddTrack]: async.Stream$(html$.TrackEvent),
  [$onChange]: async.Stream$(html$.Event)
}));
dart.setSetterSignature(html$.TextTrackList, () => ({
  __proto__: dart.getSetters(html$.TextTrackList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$.TextTrackList, L65);
dart.defineLazy(html$.TextTrackList, {
  /*html$.TextTrackList.addTrackEvent*/get addTrackEvent() {
    return C386 || CT.C386;
  },
  /*html$.TextTrackList.changeEvent*/get changeEvent() {
    return C237 || CT.C237;
  }
}, true);
dart.registerExtension("TextTrackList", html$.TextTrackList);
html$.TimeElement = class TimeElement extends html$.HtmlElement {
  get [$dateTime]() {
    return this.dateTime;
  }
  set [$dateTime](value) {
    this.dateTime = value;
  }
};
(html$.TimeElement.created = function() {
  html$.TimeElement.__proto__.created.call(this);
  ;
}).prototype = html$.TimeElement.prototype;
dart.addTypeTests(html$.TimeElement);
dart.addTypeCaches(html$.TimeElement);
dart.setGetterSignature(html$.TimeElement, () => ({
  __proto__: dart.getGetters(html$.TimeElement.__proto__),
  [$dateTime]: core.String
}));
dart.setSetterSignature(html$.TimeElement, () => ({
  __proto__: dart.getSetters(html$.TimeElement.__proto__),
  [$dateTime]: core.String
}));
dart.setLibraryUri(html$.TimeElement, L65);
dart.registerExtension("HTMLTimeElement", html$.TimeElement);
html$.TimeRanges = class TimeRanges extends _interceptors.Interceptor {
  get [$length]() {
    return this.length;
  }
  [$end](...args) {
    return this.end.apply(this, args);
  }
  [$start](...args) {
    return this.start.apply(this, args);
  }
};
dart.addTypeTests(html$.TimeRanges);
dart.addTypeCaches(html$.TimeRanges);
dart.setMethodSignature(html$.TimeRanges, () => ({
  __proto__: dart.getMethods(html$.TimeRanges.__proto__),
  [$end]: dart.fnType(core.double, [core.int]),
  [$start]: dart.fnType(core.double, [core.int])
}));
dart.setGetterSignature(html$.TimeRanges, () => ({
  __proto__: dart.getGetters(html$.TimeRanges.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$.TimeRanges, L65);
dart.registerExtension("TimeRanges", html$.TimeRanges);
html$.TitleElement = class TitleElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("title");
  }
};
(html$.TitleElement.created = function() {
  html$.TitleElement.__proto__.created.call(this);
  ;
}).prototype = html$.TitleElement.prototype;
dart.addTypeTests(html$.TitleElement);
dart.addTypeCaches(html$.TitleElement);
dart.setLibraryUri(html$.TitleElement, L65);
dart.registerExtension("HTMLTitleElement", html$.TitleElement);
var _radiusX = dart.privateName(html$, "_radiusX");
var _radiusY = dart.privateName(html$, "_radiusY");
var __clientX = dart.privateName(html$, "__clientX");
var __clientY = dart.privateName(html$, "__clientY");
var __screenX = dart.privateName(html$, "__screenX");
var __screenY = dart.privateName(html$, "__screenY");
var __pageX = dart.privateName(html$, "__pageX");
var __pageY = dart.privateName(html$, "__pageY");
var __radiusX = dart.privateName(html$, "__radiusX");
var __radiusY = dart.privateName(html$, "__radiusY");
html$.Touch = class Touch$ extends _interceptors.Interceptor {
  static new(initDict) {
    let initDict_1 = html_common.convertDartToNative_Dictionary(initDict);
    return html$.Touch._create_1(initDict_1);
  }
  static _create_1(initDict) {
    return new Touch(initDict);
  }
  get [_clientX]() {
    return this.clientX;
  }
  get [_clientY]() {
    return this.clientY;
  }
  get [$force]() {
    return this.force;
  }
  get [$identifier]() {
    return this.identifier;
  }
  get [_pageX]() {
    return this.pageX;
  }
  get [_pageY]() {
    return this.pageY;
  }
  get [_radiusX]() {
    return this.radiusX;
  }
  get [_radiusY]() {
    return this.radiusY;
  }
  get [$region]() {
    return this.region;
  }
  get [$rotationAngle]() {
    return this.rotationAngle;
  }
  get [_screenX]() {
    return this.screenX;
  }
  get [_screenY]() {
    return this.screenY;
  }
  get [$target]() {
    return html$._convertNativeToDart_EventTarget(this[_get_target]);
  }
  get [_get_target]() {
    return this.target;
  }
  get [__clientX]() {
    return this.clientX[$round]();
  }
  get [__clientY]() {
    return this.clientY[$round]();
  }
  get [__screenX]() {
    return this.screenX[$round]();
  }
  get [__screenY]() {
    return this.screenY[$round]();
  }
  get [__pageX]() {
    return this.pageX[$round]();
  }
  get [__pageY]() {
    return this.pageY[$round]();
  }
  get [__radiusX]() {
    return this.radiusX[$round]();
  }
  get [__radiusY]() {
    return this.radiusY[$round]();
  }
  get [$client]() {
    return new (PointOfnumL()).new(this[__clientX], this[__clientY]);
  }
  get [$page]() {
    return new (PointOfnumL()).new(this[__pageX], this[__pageY]);
  }
  get [$screen]() {
    return new (PointOfnumL()).new(this[__screenX], this[__screenY]);
  }
  get [$radiusX]() {
    return this[__radiusX];
  }
  get [$radiusY]() {
    return this[__radiusY];
  }
};
dart.addTypeTests(html$.Touch);
dart.addTypeCaches(html$.Touch);
dart.setGetterSignature(html$.Touch, () => ({
  __proto__: dart.getGetters(html$.Touch.__proto__),
  [_clientX]: core.num,
  [_clientY]: core.num,
  [$force]: core.num,
  [$identifier]: core.int,
  [_pageX]: core.num,
  [_pageY]: core.num,
  [_radiusX]: core.num,
  [_radiusY]: core.num,
  [$region]: core.String,
  [$rotationAngle]: core.num,
  [_screenX]: core.num,
  [_screenY]: core.num,
  [$target]: html$.EventTarget,
  [_get_target]: dart.dynamic,
  [__clientX]: core.int,
  [__clientY]: core.int,
  [__screenX]: core.int,
  [__screenY]: core.int,
  [__pageX]: core.int,
  [__pageY]: core.int,
  [__radiusX]: core.int,
  [__radiusY]: core.int,
  [$client]: math.Point$(core.num),
  [$page]: math.Point$(core.num),
  [$screen]: math.Point$(core.num),
  [$radiusX]: core.int,
  [$radiusY]: core.int
}));
dart.setLibraryUri(html$.Touch, L65);
dart.registerExtension("Touch", html$.Touch);
html$.TouchEvent = class TouchEvent$ extends html$.UIEvent {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.TouchEvent._create_1(type, eventInitDict_1);
    }
    return html$.TouchEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new TouchEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new TouchEvent(type);
  }
  get [$altKey]() {
    return this.altKey;
  }
  get [$changedTouches]() {
    return this.changedTouches;
  }
  get [$ctrlKey]() {
    return this.ctrlKey;
  }
  get [$metaKey]() {
    return this.metaKey;
  }
  get [$shiftKey]() {
    return this.shiftKey;
  }
  get [$targetTouches]() {
    return this.targetTouches;
  }
  get [$touches]() {
    return this.touches;
  }
  static get supported() {
    try {
      return html$.TouchEvent.is(html$.TouchEvent.new("touches"));
    } catch (e) {
      let _ = dart.getThrown(e);
    }
    return false;
  }
};
dart.addTypeTests(html$.TouchEvent);
dart.addTypeCaches(html$.TouchEvent);
dart.setGetterSignature(html$.TouchEvent, () => ({
  __proto__: dart.getGetters(html$.TouchEvent.__proto__),
  [$altKey]: core.bool,
  [$changedTouches]: html$.TouchList,
  [$ctrlKey]: core.bool,
  [$metaKey]: core.bool,
  [$shiftKey]: core.bool,
  [$targetTouches]: html$.TouchList,
  [$touches]: html$.TouchList
}));
dart.setLibraryUri(html$.TouchEvent, L65);
dart.registerExtension("TouchEvent", html$.TouchEvent);
const Interceptor_ListMixin$36$7 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$7.new = function() {
  Interceptor_ListMixin$36$7.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$7.prototype;
dart.applyMixin(Interceptor_ListMixin$36$7, collection.ListMixin$(html$.Touch));
const Interceptor_ImmutableListMixin$36$7 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$7 {};
(Interceptor_ImmutableListMixin$36$7.new = function() {
  Interceptor_ImmutableListMixin$36$7.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$7.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$7, html$.ImmutableListMixin$(html$.Touch));
html$.TouchList = class TouchList extends Interceptor_ImmutableListMixin$36$7 {
  static get supported() {
    return !!document.createTouchList;
  }
  get [$length]() {
    return this.length;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this[index];
  }
  [$_set](index, value$) {
    let value = value$;
    html$.Touch.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
};
html$.TouchList.prototype[dart.isList] = true;
dart.addTypeTests(html$.TouchList);
dart.addTypeCaches(html$.TouchList);
html$.TouchList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(html$.Touch), core.List$(html$.Touch)];
dart.setMethodSignature(html$.TouchList, () => ({
  __proto__: dart.getMethods(html$.TouchList.__proto__),
  [$_get]: dart.fnType(html$.Touch, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [$item]: dart.fnType(html$.Touch, [core.int])
}));
dart.setGetterSignature(html$.TouchList, () => ({
  __proto__: dart.getGetters(html$.TouchList.__proto__),
  [$length]: core.int
}));
dart.setSetterSignature(html$.TouchList, () => ({
  __proto__: dart.getSetters(html$.TouchList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$.TouchList, L65);
dart.registerExtension("TouchList", html$.TouchList);
html$.TrackDefault = class TrackDefault$ extends _interceptors.Interceptor {
  static new(type, language, label, kinds, byteStreamTrackID = null) {
    if (byteStreamTrackID != null) {
      let kinds_1 = html_common.convertDartToNative_StringArray(kinds);
      return html$.TrackDefault._create_1(type, language, label, kinds_1, byteStreamTrackID);
    }
    let kinds_1 = html_common.convertDartToNative_StringArray(kinds);
    return html$.TrackDefault._create_2(type, language, label, kinds_1);
  }
  static _create_1(type, language, label, kinds, byteStreamTrackID) {
    return new TrackDefault(type, language, label, kinds, byteStreamTrackID);
  }
  static _create_2(type, language, label, kinds) {
    return new TrackDefault(type, language, label, kinds);
  }
  get [$byteStreamTrackID]() {
    return this.byteStreamTrackID;
  }
  get [$kinds]() {
    return this.kinds;
  }
  get [$label]() {
    return this.label;
  }
  get [$language]() {
    return this.language;
  }
  get [$type]() {
    return this.type;
  }
};
dart.addTypeTests(html$.TrackDefault);
dart.addTypeCaches(html$.TrackDefault);
dart.setGetterSignature(html$.TrackDefault, () => ({
  __proto__: dart.getGetters(html$.TrackDefault.__proto__),
  [$byteStreamTrackID]: core.String,
  [$kinds]: core.Object,
  [$label]: core.String,
  [$language]: core.String,
  [$type]: core.String
}));
dart.setLibraryUri(html$.TrackDefault, L65);
dart.registerExtension("TrackDefault", html$.TrackDefault);
html$.TrackDefaultList = class TrackDefaultList$ extends _interceptors.Interceptor {
  static new(trackDefaults = null) {
    if (trackDefaults != null) {
      return html$.TrackDefaultList._create_1(trackDefaults);
    }
    return html$.TrackDefaultList._create_2();
  }
  static _create_1(trackDefaults) {
    return new TrackDefaultList(trackDefaults);
  }
  static _create_2() {
    return new TrackDefaultList();
  }
  get [$length]() {
    return this.length;
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
};
dart.addTypeTests(html$.TrackDefaultList);
dart.addTypeCaches(html$.TrackDefaultList);
dart.setMethodSignature(html$.TrackDefaultList, () => ({
  __proto__: dart.getMethods(html$.TrackDefaultList.__proto__),
  [$item]: dart.fnType(html$.TrackDefault, [core.int])
}));
dart.setGetterSignature(html$.TrackDefaultList, () => ({
  __proto__: dart.getGetters(html$.TrackDefaultList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$.TrackDefaultList, L65);
dart.registerExtension("TrackDefaultList", html$.TrackDefaultList);
html$.TrackElement = class TrackElement extends html$.HtmlElement {
  static new() {
    return html$.TrackElement.as(html$.document[$createElement]("track"));
  }
  static get supported() {
    return html$.Element.isTagSupported("track");
  }
  get [$defaultValue]() {
    return this.default;
  }
  set [$defaultValue](value) {
    this.default = value;
  }
  get [$kind]() {
    return this.kind;
  }
  set [$kind](value) {
    this.kind = value;
  }
  get [$label]() {
    return this.label;
  }
  set [$label](value) {
    this.label = value;
  }
  get [$readyState]() {
    return this.readyState;
  }
  get [$src]() {
    return this.src;
  }
  set [$src](value) {
    this.src = value;
  }
  get [$srclang]() {
    return this.srclang;
  }
  set [$srclang](value) {
    this.srclang = value;
  }
  get [$track]() {
    return this.track;
  }
};
(html$.TrackElement.created = function() {
  html$.TrackElement.__proto__.created.call(this);
  ;
}).prototype = html$.TrackElement.prototype;
dart.addTypeTests(html$.TrackElement);
dart.addTypeCaches(html$.TrackElement);
dart.setGetterSignature(html$.TrackElement, () => ({
  __proto__: dart.getGetters(html$.TrackElement.__proto__),
  [$defaultValue]: core.bool,
  [$kind]: core.String,
  [$label]: core.String,
  [$readyState]: core.int,
  [$src]: core.String,
  [$srclang]: core.String,
  [$track]: html$.TextTrack
}));
dart.setSetterSignature(html$.TrackElement, () => ({
  __proto__: dart.getSetters(html$.TrackElement.__proto__),
  [$defaultValue]: core.bool,
  [$kind]: core.String,
  [$label]: core.String,
  [$src]: core.String,
  [$srclang]: core.String
}));
dart.setLibraryUri(html$.TrackElement, L65);
dart.defineLazy(html$.TrackElement, {
  /*html$.TrackElement.ERROR*/get ERROR() {
    return 3;
  },
  /*html$.TrackElement.LOADED*/get LOADED() {
    return 2;
  },
  /*html$.TrackElement.LOADING*/get LOADING() {
    return 1;
  },
  /*html$.TrackElement.NONE*/get NONE() {
    return 0;
  }
}, true);
dart.registerExtension("HTMLTrackElement", html$.TrackElement);
html$.TrackEvent = class TrackEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.TrackEvent._create_1(type, eventInitDict_1);
    }
    return html$.TrackEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new TrackEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new TrackEvent(type);
  }
  get [$track]() {
    return this.track;
  }
};
dart.addTypeTests(html$.TrackEvent);
dart.addTypeCaches(html$.TrackEvent);
dart.setGetterSignature(html$.TrackEvent, () => ({
  __proto__: dart.getGetters(html$.TrackEvent.__proto__),
  [$track]: core.Object
}));
dart.setLibraryUri(html$.TrackEvent, L65);
dart.registerExtension("TrackEvent", html$.TrackEvent);
html$.TransitionEvent = class TransitionEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.TransitionEvent._create_1(type, eventInitDict_1);
    }
    return html$.TransitionEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new TransitionEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new TransitionEvent(type);
  }
  get [$elapsedTime]() {
    return this.elapsedTime;
  }
  get [$propertyName]() {
    return this.propertyName;
  }
  get [$pseudoElement]() {
    return this.pseudoElement;
  }
};
dart.addTypeTests(html$.TransitionEvent);
dart.addTypeCaches(html$.TransitionEvent);
dart.setGetterSignature(html$.TransitionEvent, () => ({
  __proto__: dart.getGetters(html$.TransitionEvent.__proto__),
  [$elapsedTime]: core.num,
  [$propertyName]: core.String,
  [$pseudoElement]: core.String
}));
dart.setLibraryUri(html$.TransitionEvent, L65);
dart.registerExtension("TransitionEvent", html$.TransitionEvent);
dart.registerExtension("WebKitTransitionEvent", html$.TransitionEvent);
html$.TreeWalker = class TreeWalker extends _interceptors.Interceptor {
  static new(root, whatToShow) {
    return html$.document[_createTreeWalker](root, whatToShow, null);
  }
  get [$currentNode]() {
    return this.currentNode;
  }
  set [$currentNode](value) {
    this.currentNode = value;
  }
  get [$filter]() {
    return this.filter;
  }
  get [$root]() {
    return this.root;
  }
  get [$whatToShow]() {
    return this.whatToShow;
  }
  [$firstChild](...args) {
    return this.firstChild.apply(this, args);
  }
  [$lastChild](...args) {
    return this.lastChild.apply(this, args);
  }
  [$nextNode](...args) {
    return this.nextNode.apply(this, args);
  }
  [$nextSibling](...args) {
    return this.nextSibling.apply(this, args);
  }
  [$parentNode](...args) {
    return this.parentNode.apply(this, args);
  }
  [$previousNode](...args) {
    return this.previousNode.apply(this, args);
  }
  [$previousSibling](...args) {
    return this.previousSibling.apply(this, args);
  }
};
dart.addTypeTests(html$.TreeWalker);
dart.addTypeCaches(html$.TreeWalker);
dart.setMethodSignature(html$.TreeWalker, () => ({
  __proto__: dart.getMethods(html$.TreeWalker.__proto__),
  [$firstChild]: dart.fnType(html$.Node, []),
  [$lastChild]: dart.fnType(html$.Node, []),
  [$nextNode]: dart.fnType(html$.Node, []),
  [$nextSibling]: dart.fnType(html$.Node, []),
  [$parentNode]: dart.fnType(html$.Node, []),
  [$previousNode]: dart.fnType(html$.Node, []),
  [$previousSibling]: dart.fnType(html$.Node, [])
}));
dart.setGetterSignature(html$.TreeWalker, () => ({
  __proto__: dart.getGetters(html$.TreeWalker.__proto__),
  [$currentNode]: html$.Node,
  [$filter]: html$.NodeFilter,
  [$root]: html$.Node,
  [$whatToShow]: core.int
}));
dart.setSetterSignature(html$.TreeWalker, () => ({
  __proto__: dart.getSetters(html$.TreeWalker.__proto__),
  [$currentNode]: html$.Node
}));
dart.setLibraryUri(html$.TreeWalker, L65);
dart.registerExtension("TreeWalker", html$.TreeWalker);
html$.TrustedHtml = class TrustedHtml extends _interceptors.Interceptor {};
dart.addTypeTests(html$.TrustedHtml);
dart.addTypeCaches(html$.TrustedHtml);
dart.setLibraryUri(html$.TrustedHtml, L65);
dart.registerExtension("TrustedHTML", html$.TrustedHtml);
html$.TrustedScriptUrl = class TrustedScriptUrl extends _interceptors.Interceptor {};
dart.addTypeTests(html$.TrustedScriptUrl);
dart.addTypeCaches(html$.TrustedScriptUrl);
dart.setLibraryUri(html$.TrustedScriptUrl, L65);
dart.registerExtension("TrustedScriptURL", html$.TrustedScriptUrl);
html$.TrustedUrl = class TrustedUrl extends _interceptors.Interceptor {};
dart.addTypeTests(html$.TrustedUrl);
dart.addTypeCaches(html$.TrustedUrl);
dart.setLibraryUri(html$.TrustedUrl, L65);
dart.registerExtension("TrustedURL", html$.TrustedUrl);
html$.UListElement = class UListElement extends html$.HtmlElement {
  static new() {
    return html$.document.createElement("ul");
  }
};
(html$.UListElement.created = function() {
  html$.UListElement.__proto__.created.call(this);
  ;
}).prototype = html$.UListElement.prototype;
dart.addTypeTests(html$.UListElement);
dart.addTypeCaches(html$.UListElement);
dart.setLibraryUri(html$.UListElement, L65);
dart.registerExtension("HTMLUListElement", html$.UListElement);
html$.UnderlyingSourceBase = class UnderlyingSourceBase extends _interceptors.Interceptor {
  [$cancel](reason) {
    return js_util.promiseToFuture(dart.dynamic, this.cancel(reason));
  }
  [$notifyLockAcquired](...args) {
    return this.notifyLockAcquired.apply(this, args);
  }
  [$notifyLockReleased](...args) {
    return this.notifyLockReleased.apply(this, args);
  }
  [$pull]() {
    return js_util.promiseToFuture(dart.dynamic, this.pull());
  }
  [$start](stream) {
    return js_util.promiseToFuture(dart.dynamic, this.start(stream));
  }
};
dart.addTypeTests(html$.UnderlyingSourceBase);
dart.addTypeCaches(html$.UnderlyingSourceBase);
dart.setMethodSignature(html$.UnderlyingSourceBase, () => ({
  __proto__: dart.getMethods(html$.UnderlyingSourceBase.__proto__),
  [$cancel]: dart.fnType(async.Future, [core.Object]),
  [$notifyLockAcquired]: dart.fnType(dart.void, []),
  [$notifyLockReleased]: dart.fnType(dart.void, []),
  [$pull]: dart.fnType(async.Future, []),
  [$start]: dart.fnType(async.Future, [core.Object])
}));
dart.setLibraryUri(html$.UnderlyingSourceBase, L65);
dart.registerExtension("UnderlyingSourceBase", html$.UnderlyingSourceBase);
html$.UnknownElement = class UnknownElement extends html$.HtmlElement {};
(html$.UnknownElement.created = function() {
  html$.UnknownElement.__proto__.created.call(this);
  ;
}).prototype = html$.UnknownElement.prototype;
dart.addTypeTests(html$.UnknownElement);
dart.addTypeCaches(html$.UnknownElement);
dart.setLibraryUri(html$.UnknownElement, L65);
dart.registerExtension("HTMLUnknownElement", html$.UnknownElement);
html$.Url = class Url extends _interceptors.Interceptor {
  static createObjectUrl(blob_OR_source_OR_stream) {
    return (self.URL || self.webkitURL).createObjectURL(blob_OR_source_OR_stream);
  }
  static createObjectUrlFromSource(source) {
    return (self.URL || self.webkitURL).createObjectURL(source);
  }
  static createObjectUrlFromStream(stream) {
    return (self.URL || self.webkitURL).createObjectURL(stream);
  }
  static createObjectUrlFromBlob(blob) {
    return (self.URL || self.webkitURL).createObjectURL(blob);
  }
  static revokeObjectUrl(url) {
    return (self.URL || self.webkitURL).revokeObjectURL(url);
  }
  [$toString]() {
    return String(this);
  }
  get [$hash]() {
    return this.hash;
  }
  set [$hash](value) {
    this.hash = value;
  }
  get [$host]() {
    return this.host;
  }
  set [$host](value) {
    this.host = value;
  }
  get [$hostname]() {
    return this.hostname;
  }
  set [$hostname](value) {
    this.hostname = value;
  }
  get [$href]() {
    return this.href;
  }
  set [$href](value) {
    this.href = value;
  }
  get [$origin]() {
    return this.origin;
  }
  get [$password]() {
    return this.password;
  }
  set [$password](value) {
    this.password = value;
  }
  get [$pathname]() {
    return this.pathname;
  }
  set [$pathname](value) {
    this.pathname = value;
  }
  get [$port]() {
    return this.port;
  }
  set [$port](value) {
    this.port = value;
  }
  get [$protocol]() {
    return this.protocol;
  }
  set [$protocol](value) {
    this.protocol = value;
  }
  get [$search]() {
    return this.search;
  }
  set [$search](value) {
    this.search = value;
  }
  get [$searchParams]() {
    return this.searchParams;
  }
  get [$username]() {
    return this.username;
  }
  set [$username](value) {
    this.username = value;
  }
};
dart.addTypeTests(html$.Url);
dart.addTypeCaches(html$.Url);
dart.setGetterSignature(html$.Url, () => ({
  __proto__: dart.getGetters(html$.Url.__proto__),
  [$hash]: core.String,
  [$host]: core.String,
  [$hostname]: core.String,
  [$href]: core.String,
  [$origin]: core.String,
  [$password]: core.String,
  [$pathname]: core.String,
  [$port]: core.String,
  [$protocol]: core.String,
  [$search]: core.String,
  [$searchParams]: html$.UrlSearchParams,
  [$username]: core.String
}));
dart.setSetterSignature(html$.Url, () => ({
  __proto__: dart.getSetters(html$.Url.__proto__),
  [$hash]: core.String,
  [$host]: core.String,
  [$hostname]: core.String,
  [$href]: core.String,
  [$password]: core.String,
  [$pathname]: core.String,
  [$port]: core.String,
  [$protocol]: core.String,
  [$search]: core.String,
  [$username]: core.String
}));
dart.setLibraryUri(html$.Url, L65);
dart.registerExtension("URL", html$.Url);
html$.UrlSearchParams = class UrlSearchParams extends _interceptors.Interceptor {
  static new(init = null) {
    if (init != null) {
      return html$.UrlSearchParams._create_1(init);
    }
    return html$.UrlSearchParams._create_2();
  }
  static _create_1(init) {
    return new URLSearchParams(init);
  }
  static _create_2() {
    return new URLSearchParams();
  }
  [$append](...args) {
    return this.append.apply(this, args);
  }
  [$delete](...args) {
    return this.delete.apply(this, args);
  }
  [$get](...args) {
    return this.get.apply(this, args);
  }
  [$getAll](...args) {
    return this.getAll.apply(this, args);
  }
  [$has](...args) {
    return this.has.apply(this, args);
  }
  [$set](...args) {
    return this.set.apply(this, args);
  }
  [$sort](...args) {
    return this.sort.apply(this, args);
  }
};
dart.addTypeTests(html$.UrlSearchParams);
dart.addTypeCaches(html$.UrlSearchParams);
dart.setMethodSignature(html$.UrlSearchParams, () => ({
  __proto__: dart.getMethods(html$.UrlSearchParams.__proto__),
  [$append]: dart.fnType(dart.void, [core.String, core.String]),
  [$delete]: dart.fnType(dart.void, [core.String]),
  [$get]: dart.fnType(core.String, [core.String]),
  [$getAll]: dart.fnType(core.List$(core.String), [core.String]),
  [$has]: dart.fnType(core.bool, [core.String]),
  [$set]: dart.fnType(dart.void, [core.String, core.String]),
  [$sort]: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(html$.UrlSearchParams, L65);
dart.registerExtension("URLSearchParams", html$.UrlSearchParams);
html$.UrlUtilsReadOnly = class UrlUtilsReadOnly extends _interceptors.Interceptor {
  get hash() {
    return this.hash;
  }
  get host() {
    return this.host;
  }
  get hostname() {
    return this.hostname;
  }
  get href() {
    return this.href;
  }
  get origin() {
    return this.origin;
  }
  get pathname() {
    return this.pathname;
  }
  get port() {
    return this.port;
  }
  get protocol() {
    return this.protocol;
  }
  get search() {
    return this.search;
  }
};
dart.addTypeTests(html$.UrlUtilsReadOnly);
dart.addTypeCaches(html$.UrlUtilsReadOnly);
dart.setGetterSignature(html$.UrlUtilsReadOnly, () => ({
  __proto__: dart.getGetters(html$.UrlUtilsReadOnly.__proto__),
  hash: core.String,
  [$hash]: core.String,
  host: core.String,
  [$host]: core.String,
  hostname: core.String,
  [$hostname]: core.String,
  href: core.String,
  [$href]: core.String,
  origin: core.String,
  [$origin]: core.String,
  pathname: core.String,
  [$pathname]: core.String,
  port: core.String,
  [$port]: core.String,
  protocol: core.String,
  [$protocol]: core.String,
  search: core.String,
  [$search]: core.String
}));
dart.setLibraryUri(html$.UrlUtilsReadOnly, L65);
dart.defineExtensionAccessors(html$.UrlUtilsReadOnly, [
  'hash',
  'host',
  'hostname',
  'href',
  'origin',
  'pathname',
  'port',
  'protocol',
  'search'
]);
html$.VR = class VR extends html$.EventTarget {
  [$getDevices]() {
    return js_util.promiseToFuture(dart.dynamic, this.getDevices());
  }
};
dart.addTypeTests(html$.VR);
dart.addTypeCaches(html$.VR);
dart.setMethodSignature(html$.VR, () => ({
  __proto__: dart.getMethods(html$.VR.__proto__),
  [$getDevices]: dart.fnType(async.Future, [])
}));
dart.setLibraryUri(html$.VR, L65);
dart.registerExtension("VR", html$.VR);
html$.VRCoordinateSystem = class VRCoordinateSystem extends _interceptors.Interceptor {
  [$getTransformTo](...args) {
    return this.getTransformTo.apply(this, args);
  }
};
dart.addTypeTests(html$.VRCoordinateSystem);
dart.addTypeCaches(html$.VRCoordinateSystem);
dart.setMethodSignature(html$.VRCoordinateSystem, () => ({
  __proto__: dart.getMethods(html$.VRCoordinateSystem.__proto__),
  [$getTransformTo]: dart.fnType(typed_data.Float32List, [html$.VRCoordinateSystem])
}));
dart.setLibraryUri(html$.VRCoordinateSystem, L65);
dart.registerExtension("VRCoordinateSystem", html$.VRCoordinateSystem);
html$.VRDevice = class VRDevice extends html$.EventTarget {
  get [$deviceName]() {
    return this.deviceName;
  }
  get [$isExternal]() {
    return this.isExternal;
  }
  [$requestSession](options = null) {
    let options_dict = null;
    if (options != null) {
      options_dict = html_common.convertDartToNative_Dictionary(options);
    }
    return js_util.promiseToFuture(dart.dynamic, this.requestSession(options_dict));
  }
  [$supportsSession](options = null) {
    let options_dict = null;
    if (options != null) {
      options_dict = html_common.convertDartToNative_Dictionary(options);
    }
    return js_util.promiseToFuture(dart.dynamic, this.supportsSession(options_dict));
  }
};
dart.addTypeTests(html$.VRDevice);
dart.addTypeCaches(html$.VRDevice);
dart.setMethodSignature(html$.VRDevice, () => ({
  __proto__: dart.getMethods(html$.VRDevice.__proto__),
  [$requestSession]: dart.fnType(async.Future, [], [core.Map]),
  [$supportsSession]: dart.fnType(async.Future, [], [core.Map])
}));
dart.setGetterSignature(html$.VRDevice, () => ({
  __proto__: dart.getGetters(html$.VRDevice.__proto__),
  [$deviceName]: core.String,
  [$isExternal]: core.bool
}));
dart.setLibraryUri(html$.VRDevice, L65);
dart.registerExtension("VRDevice", html$.VRDevice);
html$.VRDeviceEvent = class VRDeviceEvent$ extends html$.Event {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$.VRDeviceEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new VRDeviceEvent(type, eventInitDict);
  }
  get [$device]() {
    return this.device;
  }
};
dart.addTypeTests(html$.VRDeviceEvent);
dart.addTypeCaches(html$.VRDeviceEvent);
dart.setGetterSignature(html$.VRDeviceEvent, () => ({
  __proto__: dart.getGetters(html$.VRDeviceEvent.__proto__),
  [$device]: html$.VRDevice
}));
dart.setLibraryUri(html$.VRDeviceEvent, L65);
dart.registerExtension("VRDeviceEvent", html$.VRDeviceEvent);
html$.VRDisplay = class VRDisplay extends html$.EventTarget {
  get [$capabilities]() {
    return this.capabilities;
  }
  get [$depthFar]() {
    return this.depthFar;
  }
  set [$depthFar](value) {
    this.depthFar = value;
  }
  get [$depthNear]() {
    return this.depthNear;
  }
  set [$depthNear](value) {
    this.depthNear = value;
  }
  get [$displayId]() {
    return this.displayId;
  }
  get [$displayName]() {
    return this.displayName;
  }
  get [$isPresenting]() {
    return this.isPresenting;
  }
  get [$stageParameters]() {
    return this.stageParameters;
  }
  [$cancelAnimationFrame](...args) {
    return this.cancelAnimationFrame.apply(this, args);
  }
  [$exitPresent]() {
    return js_util.promiseToFuture(dart.dynamic, this.exitPresent());
  }
  [$getEyeParameters](...args) {
    return this.getEyeParameters.apply(this, args);
  }
  [$getFrameData](...args) {
    return this.getFrameData.apply(this, args);
  }
  [$getLayers](...args) {
    return this.getLayers.apply(this, args);
  }
  [$requestAnimationFrame](...args) {
    return this.requestAnimationFrame.apply(this, args);
  }
  [$requestPresent](layers) {
    return js_util.promiseToFuture(dart.dynamic, this.requestPresent(layers));
  }
  [$submitFrame](...args) {
    return this.submitFrame.apply(this, args);
  }
};
dart.addTypeTests(html$.VRDisplay);
dart.addTypeCaches(html$.VRDisplay);
dart.setMethodSignature(html$.VRDisplay, () => ({
  __proto__: dart.getMethods(html$.VRDisplay.__proto__),
  [$cancelAnimationFrame]: dart.fnType(dart.void, [core.int]),
  [$exitPresent]: dart.fnType(async.Future, []),
  [$getEyeParameters]: dart.fnType(html$.VREyeParameters, [core.String]),
  [$getFrameData]: dart.fnType(core.bool, [html$.VRFrameData]),
  [$getLayers]: dart.fnType(core.List$(core.Map), []),
  [$requestAnimationFrame]: dart.fnType(core.int, [dart.fnType(dart.void, [core.num])]),
  [$requestPresent]: dart.fnType(async.Future, [core.List$(core.Map)]),
  [$submitFrame]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.VRDisplay, () => ({
  __proto__: dart.getGetters(html$.VRDisplay.__proto__),
  [$capabilities]: html$.VRDisplayCapabilities,
  [$depthFar]: core.num,
  [$depthNear]: core.num,
  [$displayId]: core.int,
  [$displayName]: core.String,
  [$isPresenting]: core.bool,
  [$stageParameters]: html$.VRStageParameters
}));
dart.setSetterSignature(html$.VRDisplay, () => ({
  __proto__: dart.getSetters(html$.VRDisplay.__proto__),
  [$depthFar]: core.num,
  [$depthNear]: core.num
}));
dart.setLibraryUri(html$.VRDisplay, L65);
dart.registerExtension("VRDisplay", html$.VRDisplay);
html$.VRDisplayCapabilities = class VRDisplayCapabilities extends _interceptors.Interceptor {
  get [$canPresent]() {
    return this.canPresent;
  }
  get [$hasExternalDisplay]() {
    return this.hasExternalDisplay;
  }
  get [$hasPosition]() {
    return this.hasPosition;
  }
  get [$maxLayers]() {
    return this.maxLayers;
  }
};
dart.addTypeTests(html$.VRDisplayCapabilities);
dart.addTypeCaches(html$.VRDisplayCapabilities);
dart.setGetterSignature(html$.VRDisplayCapabilities, () => ({
  __proto__: dart.getGetters(html$.VRDisplayCapabilities.__proto__),
  [$canPresent]: core.bool,
  [$hasExternalDisplay]: core.bool,
  [$hasPosition]: core.bool,
  [$maxLayers]: core.int
}));
dart.setLibraryUri(html$.VRDisplayCapabilities, L65);
dart.registerExtension("VRDisplayCapabilities", html$.VRDisplayCapabilities);
html$.VRDisplayEvent = class VRDisplayEvent$ extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.VRDisplayEvent._create_1(type, eventInitDict_1);
    }
    return html$.VRDisplayEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new VRDisplayEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new VRDisplayEvent(type);
  }
  get [$display]() {
    return this.display;
  }
  get [$reason]() {
    return this.reason;
  }
};
dart.addTypeTests(html$.VRDisplayEvent);
dart.addTypeCaches(html$.VRDisplayEvent);
dart.setGetterSignature(html$.VRDisplayEvent, () => ({
  __proto__: dart.getGetters(html$.VRDisplayEvent.__proto__),
  [$display]: html$.VRDisplay,
  [$reason]: core.String
}));
dart.setLibraryUri(html$.VRDisplayEvent, L65);
dart.registerExtension("VRDisplayEvent", html$.VRDisplayEvent);
html$.VREyeParameters = class VREyeParameters extends _interceptors.Interceptor {
  get [$offset]() {
    return this.offset;
  }
  get [$renderHeight]() {
    return this.renderHeight;
  }
  get [$renderWidth]() {
    return this.renderWidth;
  }
};
dart.addTypeTests(html$.VREyeParameters);
dart.addTypeCaches(html$.VREyeParameters);
dart.setGetterSignature(html$.VREyeParameters, () => ({
  __proto__: dart.getGetters(html$.VREyeParameters.__proto__),
  [$offset]: typed_data.Float32List,
  [$renderHeight]: core.int,
  [$renderWidth]: core.int
}));
dart.setLibraryUri(html$.VREyeParameters, L65);
dart.registerExtension("VREyeParameters", html$.VREyeParameters);
html$.VRFrameData = class VRFrameData$ extends _interceptors.Interceptor {
  static new() {
    return html$.VRFrameData._create_1();
  }
  static _create_1() {
    return new VRFrameData();
  }
  get [$leftProjectionMatrix]() {
    return this.leftProjectionMatrix;
  }
  get [$leftViewMatrix]() {
    return this.leftViewMatrix;
  }
  get [$pose]() {
    return this.pose;
  }
  get [$rightProjectionMatrix]() {
    return this.rightProjectionMatrix;
  }
  get [$rightViewMatrix]() {
    return this.rightViewMatrix;
  }
};
dart.addTypeTests(html$.VRFrameData);
dart.addTypeCaches(html$.VRFrameData);
dart.setGetterSignature(html$.VRFrameData, () => ({
  __proto__: dart.getGetters(html$.VRFrameData.__proto__),
  [$leftProjectionMatrix]: typed_data.Float32List,
  [$leftViewMatrix]: typed_data.Float32List,
  [$pose]: html$.VRPose,
  [$rightProjectionMatrix]: typed_data.Float32List,
  [$rightViewMatrix]: typed_data.Float32List
}));
dart.setLibraryUri(html$.VRFrameData, L65);
dart.registerExtension("VRFrameData", html$.VRFrameData);
html$.VRFrameOfReference = class VRFrameOfReference extends html$.VRCoordinateSystem {
  get [$bounds]() {
    return this.bounds;
  }
  get [$emulatedHeight]() {
    return this.emulatedHeight;
  }
};
dart.addTypeTests(html$.VRFrameOfReference);
dart.addTypeCaches(html$.VRFrameOfReference);
dart.setGetterSignature(html$.VRFrameOfReference, () => ({
  __proto__: dart.getGetters(html$.VRFrameOfReference.__proto__),
  [$bounds]: html$.VRStageBounds,
  [$emulatedHeight]: core.num
}));
dart.setLibraryUri(html$.VRFrameOfReference, L65);
dart.registerExtension("VRFrameOfReference", html$.VRFrameOfReference);
html$.VRPose = class VRPose extends _interceptors.Interceptor {
  get [$angularAcceleration]() {
    return this.angularAcceleration;
  }
  get [$angularVelocity]() {
    return this.angularVelocity;
  }
  get [$linearAcceleration]() {
    return this.linearAcceleration;
  }
  get [$linearVelocity]() {
    return this.linearVelocity;
  }
  get [$orientation]() {
    return this.orientation;
  }
  get [$position]() {
    return this.position;
  }
};
dart.addTypeTests(html$.VRPose);
dart.addTypeCaches(html$.VRPose);
dart.setGetterSignature(html$.VRPose, () => ({
  __proto__: dart.getGetters(html$.VRPose.__proto__),
  [$angularAcceleration]: typed_data.Float32List,
  [$angularVelocity]: typed_data.Float32List,
  [$linearAcceleration]: typed_data.Float32List,
  [$linearVelocity]: typed_data.Float32List,
  [$orientation]: typed_data.Float32List,
  [$position]: typed_data.Float32List
}));
dart.setLibraryUri(html$.VRPose, L65);
dart.registerExtension("VRPose", html$.VRPose);
html$.VRSession = class VRSession extends html$.EventTarget {
  get [$depthFar]() {
    return this.depthFar;
  }
  set [$depthFar](value) {
    this.depthFar = value;
  }
  get [$depthNear]() {
    return this.depthNear;
  }
  set [$depthNear](value) {
    this.depthNear = value;
  }
  get [$device]() {
    return this.device;
  }
  get [$exclusive]() {
    return this.exclusive;
  }
  [$end]() {
    return js_util.promiseToFuture(dart.dynamic, this.end());
  }
  [$requestFrameOfReference](type, options = null) {
    let options_dict = null;
    if (options != null) {
      options_dict = html_common.convertDartToNative_Dictionary(options);
    }
    return js_util.promiseToFuture(dart.dynamic, this.requestFrameOfReference(type, options_dict));
  }
  get [$onBlur]() {
    return html$.VRSession.blurEvent.forTarget(this);
  }
  get [$onFocus]() {
    return html$.VRSession.focusEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.VRSession);
dart.addTypeCaches(html$.VRSession);
dart.setMethodSignature(html$.VRSession, () => ({
  __proto__: dart.getMethods(html$.VRSession.__proto__),
  [$end]: dart.fnType(async.Future, []),
  [$requestFrameOfReference]: dart.fnType(async.Future, [core.String], [core.Map])
}));
dart.setGetterSignature(html$.VRSession, () => ({
  __proto__: dart.getGetters(html$.VRSession.__proto__),
  [$depthFar]: core.num,
  [$depthNear]: core.num,
  [$device]: html$.VRDevice,
  [$exclusive]: core.bool,
  [$onBlur]: async.Stream$(html$.Event),
  [$onFocus]: async.Stream$(html$.Event)
}));
dart.setSetterSignature(html$.VRSession, () => ({
  __proto__: dart.getSetters(html$.VRSession.__proto__),
  [$depthFar]: core.num,
  [$depthNear]: core.num
}));
dart.setLibraryUri(html$.VRSession, L65);
dart.defineLazy(html$.VRSession, {
  /*html$.VRSession.blurEvent*/get blurEvent() {
    return C234 || CT.C234;
  },
  /*html$.VRSession.focusEvent*/get focusEvent() {
    return C253 || CT.C253;
  }
}, true);
dart.registerExtension("VRSession", html$.VRSession);
html$.VRSessionEvent = class VRSessionEvent$ extends html$.Event {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$.VRSessionEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new VRSessionEvent(type, eventInitDict);
  }
  get [$session]() {
    return this.session;
  }
};
dart.addTypeTests(html$.VRSessionEvent);
dart.addTypeCaches(html$.VRSessionEvent);
dart.setGetterSignature(html$.VRSessionEvent, () => ({
  __proto__: dart.getGetters(html$.VRSessionEvent.__proto__),
  [$session]: html$.VRSession
}));
dart.setLibraryUri(html$.VRSessionEvent, L65);
dart.registerExtension("VRSessionEvent", html$.VRSessionEvent);
html$.VRStageBounds = class VRStageBounds extends _interceptors.Interceptor {
  get [$geometry]() {
    return this.geometry;
  }
};
dart.addTypeTests(html$.VRStageBounds);
dart.addTypeCaches(html$.VRStageBounds);
dart.setGetterSignature(html$.VRStageBounds, () => ({
  __proto__: dart.getGetters(html$.VRStageBounds.__proto__),
  [$geometry]: core.List$(html$.VRStageBoundsPoint)
}));
dart.setLibraryUri(html$.VRStageBounds, L65);
dart.registerExtension("VRStageBounds", html$.VRStageBounds);
html$.VRStageBoundsPoint = class VRStageBoundsPoint extends _interceptors.Interceptor {
  get [$x]() {
    return this.x;
  }
  get [$z]() {
    return this.z;
  }
};
dart.addTypeTests(html$.VRStageBoundsPoint);
dart.addTypeCaches(html$.VRStageBoundsPoint);
dart.setGetterSignature(html$.VRStageBoundsPoint, () => ({
  __proto__: dart.getGetters(html$.VRStageBoundsPoint.__proto__),
  [$x]: core.num,
  [$z]: core.num
}));
dart.setLibraryUri(html$.VRStageBoundsPoint, L65);
dart.registerExtension("VRStageBoundsPoint", html$.VRStageBoundsPoint);
html$.VRStageParameters = class VRStageParameters extends _interceptors.Interceptor {
  get [$sittingToStandingTransform]() {
    return this.sittingToStandingTransform;
  }
  get [$sizeX]() {
    return this.sizeX;
  }
  get [$sizeZ]() {
    return this.sizeZ;
  }
};
dart.addTypeTests(html$.VRStageParameters);
dart.addTypeCaches(html$.VRStageParameters);
dart.setGetterSignature(html$.VRStageParameters, () => ({
  __proto__: dart.getGetters(html$.VRStageParameters.__proto__),
  [$sittingToStandingTransform]: typed_data.Float32List,
  [$sizeX]: core.num,
  [$sizeZ]: core.num
}));
dart.setLibraryUri(html$.VRStageParameters, L65);
dart.registerExtension("VRStageParameters", html$.VRStageParameters);
html$.ValidityState = class ValidityState extends _interceptors.Interceptor {
  get [$badInput]() {
    return this.badInput;
  }
  get [$customError]() {
    return this.customError;
  }
  get [$patternMismatch]() {
    return this.patternMismatch;
  }
  get [$rangeOverflow]() {
    return this.rangeOverflow;
  }
  get [$rangeUnderflow]() {
    return this.rangeUnderflow;
  }
  get [$stepMismatch]() {
    return this.stepMismatch;
  }
  get [$tooLong]() {
    return this.tooLong;
  }
  get [$tooShort]() {
    return this.tooShort;
  }
  get [$typeMismatch]() {
    return this.typeMismatch;
  }
  get [$valid]() {
    return this.valid;
  }
  get [$valueMissing]() {
    return this.valueMissing;
  }
};
dart.addTypeTests(html$.ValidityState);
dart.addTypeCaches(html$.ValidityState);
dart.setGetterSignature(html$.ValidityState, () => ({
  __proto__: dart.getGetters(html$.ValidityState.__proto__),
  [$badInput]: core.bool,
  [$customError]: core.bool,
  [$patternMismatch]: core.bool,
  [$rangeOverflow]: core.bool,
  [$rangeUnderflow]: core.bool,
  [$stepMismatch]: core.bool,
  [$tooLong]: core.bool,
  [$tooShort]: core.bool,
  [$typeMismatch]: core.bool,
  [$valid]: core.bool,
  [$valueMissing]: core.bool
}));
dart.setLibraryUri(html$.ValidityState, L65);
dart.registerExtension("ValidityState", html$.ValidityState);
html$.VideoElement = class VideoElement extends html$.MediaElement {
  static new() {
    return html$.document.createElement("video");
  }
  get [$height]() {
    return this.height;
  }
  set [$height](value) {
    this.height = value;
  }
  get [$poster]() {
    return this.poster;
  }
  set [$poster](value) {
    this.poster = value;
  }
  get [$videoHeight]() {
    return this.videoHeight;
  }
  get [$videoWidth]() {
    return this.videoWidth;
  }
  get [$decodedFrameCount]() {
    return this.webkitDecodedFrameCount;
  }
  get [$droppedFrameCount]() {
    return this.webkitDroppedFrameCount;
  }
  get [$width]() {
    return this.width;
  }
  set [$width](value) {
    this.width = value;
  }
  [$getVideoPlaybackQuality](...args) {
    return this.getVideoPlaybackQuality.apply(this, args);
  }
  [$enterFullscreen](...args) {
    return this.webkitEnterFullscreen.apply(this, args);
  }
  [$exitFullscreen](...args) {
    return this.webkitExitFullscreen.apply(this, args);
  }
};
(html$.VideoElement.created = function() {
  html$.VideoElement.__proto__.created.call(this);
  ;
}).prototype = html$.VideoElement.prototype;
dart.addTypeTests(html$.VideoElement);
dart.addTypeCaches(html$.VideoElement);
html$.VideoElement[dart.implements] = () => [html$.CanvasImageSource];
dart.setMethodSignature(html$.VideoElement, () => ({
  __proto__: dart.getMethods(html$.VideoElement.__proto__),
  [$getVideoPlaybackQuality]: dart.fnType(html$.VideoPlaybackQuality, []),
  [$enterFullscreen]: dart.fnType(dart.void, []),
  [$exitFullscreen]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.VideoElement, () => ({
  __proto__: dart.getGetters(html$.VideoElement.__proto__),
  [$height]: core.int,
  [$poster]: core.String,
  [$videoHeight]: core.int,
  [$videoWidth]: core.int,
  [$decodedFrameCount]: core.int,
  [$droppedFrameCount]: core.int,
  [$width]: core.int
}));
dart.setSetterSignature(html$.VideoElement, () => ({
  __proto__: dart.getSetters(html$.VideoElement.__proto__),
  [$height]: core.int,
  [$poster]: core.String,
  [$width]: core.int
}));
dart.setLibraryUri(html$.VideoElement, L65);
dart.registerExtension("HTMLVideoElement", html$.VideoElement);
html$.VideoPlaybackQuality = class VideoPlaybackQuality extends _interceptors.Interceptor {
  get [$corruptedVideoFrames]() {
    return this.corruptedVideoFrames;
  }
  get [$creationTime]() {
    return this.creationTime;
  }
  get [$droppedVideoFrames]() {
    return this.droppedVideoFrames;
  }
  get [$totalVideoFrames]() {
    return this.totalVideoFrames;
  }
};
dart.addTypeTests(html$.VideoPlaybackQuality);
dart.addTypeCaches(html$.VideoPlaybackQuality);
dart.setGetterSignature(html$.VideoPlaybackQuality, () => ({
  __proto__: dart.getGetters(html$.VideoPlaybackQuality.__proto__),
  [$corruptedVideoFrames]: core.int,
  [$creationTime]: core.num,
  [$droppedVideoFrames]: core.int,
  [$totalVideoFrames]: core.int
}));
dart.setLibraryUri(html$.VideoPlaybackQuality, L65);
dart.registerExtension("VideoPlaybackQuality", html$.VideoPlaybackQuality);
html$.VideoTrack = class VideoTrack extends _interceptors.Interceptor {
  get [$id]() {
    return this.id;
  }
  get [$kind]() {
    return this.kind;
  }
  get [$label]() {
    return this.label;
  }
  get [$language]() {
    return this.language;
  }
  get [$selected]() {
    return this.selected;
  }
  set [$selected](value) {
    this.selected = value;
  }
  get [$sourceBuffer]() {
    return this.sourceBuffer;
  }
};
dart.addTypeTests(html$.VideoTrack);
dart.addTypeCaches(html$.VideoTrack);
dart.setGetterSignature(html$.VideoTrack, () => ({
  __proto__: dart.getGetters(html$.VideoTrack.__proto__),
  [$id]: core.String,
  [$kind]: core.String,
  [$label]: core.String,
  [$language]: core.String,
  [$selected]: core.bool,
  [$sourceBuffer]: html$.SourceBuffer
}));
dart.setSetterSignature(html$.VideoTrack, () => ({
  __proto__: dart.getSetters(html$.VideoTrack.__proto__),
  [$selected]: core.bool
}));
dart.setLibraryUri(html$.VideoTrack, L65);
dart.registerExtension("VideoTrack", html$.VideoTrack);
html$.VideoTrackList = class VideoTrackList extends html$.EventTarget {
  get [$length]() {
    return this.length;
  }
  get [$selectedIndex]() {
    return this.selectedIndex;
  }
  [__getter__](...args) {
    return this.__getter__.apply(this, args);
  }
  [$getTrackById](...args) {
    return this.getTrackById.apply(this, args);
  }
  get [$onChange]() {
    return html$.VideoTrackList.changeEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.VideoTrackList);
dart.addTypeCaches(html$.VideoTrackList);
dart.setMethodSignature(html$.VideoTrackList, () => ({
  __proto__: dart.getMethods(html$.VideoTrackList.__proto__),
  [__getter__]: dart.fnType(html$.VideoTrack, [core.int]),
  [$getTrackById]: dart.fnType(html$.VideoTrack, [core.String])
}));
dart.setGetterSignature(html$.VideoTrackList, () => ({
  __proto__: dart.getGetters(html$.VideoTrackList.__proto__),
  [$length]: core.int,
  [$selectedIndex]: core.int,
  [$onChange]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.VideoTrackList, L65);
dart.defineLazy(html$.VideoTrackList, {
  /*html$.VideoTrackList.changeEvent*/get changeEvent() {
    return C237 || CT.C237;
  }
}, true);
dart.registerExtension("VideoTrackList", html$.VideoTrackList);
html$.VisualViewport = class VisualViewport extends html$.EventTarget {
  get [$height]() {
    return this.height;
  }
  get [$offsetLeft]() {
    return this.offsetLeft;
  }
  get [$offsetTop]() {
    return this.offsetTop;
  }
  get [$pageLeft]() {
    return this.pageLeft;
  }
  get [$pageTop]() {
    return this.pageTop;
  }
  get [$scale]() {
    return this.scale;
  }
  get [$width]() {
    return this.width;
  }
  get [$onResize]() {
    return html$.VisualViewport.resizeEvent.forTarget(this);
  }
  get [$onScroll]() {
    return html$.VisualViewport.scrollEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.VisualViewport);
dart.addTypeCaches(html$.VisualViewport);
dart.setGetterSignature(html$.VisualViewport, () => ({
  __proto__: dart.getGetters(html$.VisualViewport.__proto__),
  [$height]: core.num,
  [$offsetLeft]: core.num,
  [$offsetTop]: core.num,
  [$pageLeft]: core.num,
  [$pageTop]: core.num,
  [$scale]: core.num,
  [$width]: core.num,
  [$onResize]: async.Stream$(html$.Event),
  [$onScroll]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.VisualViewport, L65);
dart.defineLazy(html$.VisualViewport, {
  /*html$.VisualViewport.resizeEvent*/get resizeEvent() {
    return C275 || CT.C275;
  },
  /*html$.VisualViewport.scrollEvent*/get scrollEvent() {
    return C276 || CT.C276;
  }
}, true);
dart.registerExtension("VisualViewport", html$.VisualViewport);
html$.VttCue = class VttCue extends html$.TextTrackCue {
  static new(startTime, endTime, text) {
    return html$.VttCue._create_1(startTime, endTime, text);
  }
  static _create_1(startTime, endTime, text) {
    return new VTTCue(startTime, endTime, text);
  }
  get [$align]() {
    return this.align;
  }
  set [$align](value) {
    this.align = value;
  }
  get [$line]() {
    return this.line;
  }
  set [$line](value) {
    this.line = value;
  }
  get [$position]() {
    return this.position;
  }
  set [$position](value) {
    this.position = value;
  }
  get [$region]() {
    return this.region;
  }
  set [$region](value) {
    this.region = value;
  }
  get [$size]() {
    return this.size;
  }
  set [$size](value) {
    this.size = value;
  }
  get [$snapToLines]() {
    return this.snapToLines;
  }
  set [$snapToLines](value) {
    this.snapToLines = value;
  }
  get [$text]() {
    return this.text;
  }
  set [$text](value) {
    this.text = value;
  }
  get [$vertical]() {
    return this.vertical;
  }
  set [$vertical](value) {
    this.vertical = value;
  }
  [$getCueAsHtml](...args) {
    return this.getCueAsHTML.apply(this, args);
  }
};
dart.addTypeTests(html$.VttCue);
dart.addTypeCaches(html$.VttCue);
dart.setMethodSignature(html$.VttCue, () => ({
  __proto__: dart.getMethods(html$.VttCue.__proto__),
  [$getCueAsHtml]: dart.fnType(html$.DocumentFragment, [])
}));
dart.setGetterSignature(html$.VttCue, () => ({
  __proto__: dart.getGetters(html$.VttCue.__proto__),
  [$align]: core.String,
  [$line]: core.Object,
  [$position]: core.Object,
  [$region]: html$.VttRegion,
  [$size]: core.num,
  [$snapToLines]: core.bool,
  [$text]: core.String,
  [$vertical]: core.String
}));
dart.setSetterSignature(html$.VttCue, () => ({
  __proto__: dart.getSetters(html$.VttCue.__proto__),
  [$align]: core.String,
  [$line]: core.Object,
  [$position]: core.Object,
  [$region]: html$.VttRegion,
  [$size]: core.num,
  [$snapToLines]: core.bool,
  [$text]: core.String,
  [$vertical]: core.String
}));
dart.setLibraryUri(html$.VttCue, L65);
dart.registerExtension("VTTCue", html$.VttCue);
html$.VttRegion = class VttRegion extends _interceptors.Interceptor {
  static new() {
    return html$.VttRegion._create_1();
  }
  static _create_1() {
    return new VTTRegion();
  }
  get [$id]() {
    return this.id;
  }
  set [$id](value) {
    this.id = value;
  }
  get [$lines]() {
    return this.lines;
  }
  set [$lines](value) {
    this.lines = value;
  }
  get [$regionAnchorX]() {
    return this.regionAnchorX;
  }
  set [$regionAnchorX](value) {
    this.regionAnchorX = value;
  }
  get [$regionAnchorY]() {
    return this.regionAnchorY;
  }
  set [$regionAnchorY](value) {
    this.regionAnchorY = value;
  }
  get [$scroll]() {
    return this.scroll;
  }
  set [$scroll](value) {
    this.scroll = value;
  }
  get [$viewportAnchorX]() {
    return this.viewportAnchorX;
  }
  set [$viewportAnchorX](value) {
    this.viewportAnchorX = value;
  }
  get [$viewportAnchorY]() {
    return this.viewportAnchorY;
  }
  set [$viewportAnchorY](value) {
    this.viewportAnchorY = value;
  }
  get [$width]() {
    return this.width;
  }
  set [$width](value) {
    this.width = value;
  }
};
dart.addTypeTests(html$.VttRegion);
dart.addTypeCaches(html$.VttRegion);
dart.setGetterSignature(html$.VttRegion, () => ({
  __proto__: dart.getGetters(html$.VttRegion.__proto__),
  [$id]: core.String,
  [$lines]: core.int,
  [$regionAnchorX]: core.num,
  [$regionAnchorY]: core.num,
  [$scroll]: core.String,
  [$viewportAnchorX]: core.num,
  [$viewportAnchorY]: core.num,
  [$width]: core.num
}));
dart.setSetterSignature(html$.VttRegion, () => ({
  __proto__: dart.getSetters(html$.VttRegion.__proto__),
  [$id]: core.String,
  [$lines]: core.int,
  [$regionAnchorX]: core.num,
  [$regionAnchorY]: core.num,
  [$scroll]: core.String,
  [$viewportAnchorX]: core.num,
  [$viewportAnchorY]: core.num,
  [$width]: core.num
}));
dart.setLibraryUri(html$.VttRegion, L65);
dart.registerExtension("VTTRegion", html$.VttRegion);
var C387;
html$.WebSocket = class WebSocket$ extends html$.EventTarget {
  static new(url, protocols = null) {
    if (protocols != null) {
      return html$.WebSocket._create_1(url, protocols);
    }
    return html$.WebSocket._create_2(url);
  }
  static _create_1(url, protocols) {
    return new WebSocket(url, protocols);
  }
  static _create_2(url) {
    return new WebSocket(url);
  }
  static get supported() {
    return typeof window.WebSocket != "undefined";
  }
  get [$binaryType]() {
    return this.binaryType;
  }
  set [$binaryType](value) {
    this.binaryType = value;
  }
  get [$bufferedAmount]() {
    return this.bufferedAmount;
  }
  get [$extensions]() {
    return this.extensions;
  }
  get [$protocol]() {
    return this.protocol;
  }
  get [$readyState]() {
    return this.readyState;
  }
  get [$url]() {
    return this.url;
  }
  [$close](...args) {
    return this.close.apply(this, args);
  }
  [$send](...args) {
    return this.send.apply(this, args);
  }
  [$sendBlob](...args) {
    return this.send.apply(this, args);
  }
  [$sendByteBuffer](...args) {
    return this.send.apply(this, args);
  }
  [$sendString](...args) {
    return this.send.apply(this, args);
  }
  [$sendTypedData](...args) {
    return this.send.apply(this, args);
  }
  get [$onClose]() {
    return html$.WebSocket.closeEvent.forTarget(this);
  }
  get [$onError]() {
    return html$.WebSocket.errorEvent.forTarget(this);
  }
  get [$onMessage]() {
    return html$.WebSocket.messageEvent.forTarget(this);
  }
  get [$onOpen]() {
    return html$.WebSocket.openEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.WebSocket);
dart.addTypeCaches(html$.WebSocket);
dart.setMethodSignature(html$.WebSocket, () => ({
  __proto__: dart.getMethods(html$.WebSocket.__proto__),
  [$close]: dart.fnType(dart.void, [], [core.int, core.String]),
  [$send]: dart.fnType(dart.void, [dart.dynamic]),
  [$sendBlob]: dart.fnType(dart.void, [html$.Blob]),
  [$sendByteBuffer]: dart.fnType(dart.void, [typed_data.ByteBuffer]),
  [$sendString]: dart.fnType(dart.void, [core.String]),
  [$sendTypedData]: dart.fnType(dart.void, [typed_data.TypedData])
}));
dart.setGetterSignature(html$.WebSocket, () => ({
  __proto__: dart.getGetters(html$.WebSocket.__proto__),
  [$binaryType]: core.String,
  [$bufferedAmount]: core.int,
  [$extensions]: core.String,
  [$protocol]: core.String,
  [$readyState]: core.int,
  [$url]: core.String,
  [$onClose]: async.Stream$(html$.CloseEvent),
  [$onError]: async.Stream$(html$.Event),
  [$onMessage]: async.Stream$(html$.MessageEvent),
  [$onOpen]: async.Stream$(html$.Event)
}));
dart.setSetterSignature(html$.WebSocket, () => ({
  __proto__: dart.getSetters(html$.WebSocket.__proto__),
  [$binaryType]: core.String
}));
dart.setLibraryUri(html$.WebSocket, L65);
dart.defineLazy(html$.WebSocket, {
  /*html$.WebSocket.closeEvent*/get closeEvent() {
    return C387 || CT.C387;
  },
  /*html$.WebSocket.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  },
  /*html$.WebSocket.messageEvent*/get messageEvent() {
    return C313 || CT.C313;
  },
  /*html$.WebSocket.openEvent*/get openEvent() {
    return C331 || CT.C331;
  },
  /*html$.WebSocket.CLOSED*/get CLOSED() {
    return 3;
  },
  /*html$.WebSocket.CLOSING*/get CLOSING() {
    return 2;
  },
  /*html$.WebSocket.CONNECTING*/get CONNECTING() {
    return 0;
  },
  /*html$.WebSocket.OPEN*/get OPEN() {
    return 1;
  }
}, true);
dart.registerExtension("WebSocket", html$.WebSocket);
var _deltaX = dart.privateName(html$, "_deltaX");
var _deltaY = dart.privateName(html$, "_deltaY");
var _wheelDelta = dart.privateName(html$, "_wheelDelta");
var _wheelDeltaX = dart.privateName(html$, "_wheelDeltaX");
var _hasInitMouseScrollEvent = dart.privateName(html$, "_hasInitMouseScrollEvent");
var _initMouseScrollEvent = dart.privateName(html$, "_initMouseScrollEvent");
var _hasInitWheelEvent = dart.privateName(html$, "_hasInitWheelEvent");
var _initWheelEvent = dart.privateName(html$, "_initWheelEvent");
html$.WheelEvent = class WheelEvent$ extends html$.MouseEvent {
  static new(type, opts) {
    let view = opts && 'view' in opts ? opts.view : null;
    let deltaX = opts && 'deltaX' in opts ? opts.deltaX : 0;
    let deltaY = opts && 'deltaY' in opts ? opts.deltaY : 0;
    let deltaZ = opts && 'deltaZ' in opts ? opts.deltaZ : 0;
    let deltaMode = opts && 'deltaMode' in opts ? opts.deltaMode : 0;
    let detail = opts && 'detail' in opts ? opts.detail : 0;
    let screenX = opts && 'screenX' in opts ? opts.screenX : 0;
    let screenY = opts && 'screenY' in opts ? opts.screenY : 0;
    let clientX = opts && 'clientX' in opts ? opts.clientX : 0;
    let clientY = opts && 'clientY' in opts ? opts.clientY : 0;
    let button = opts && 'button' in opts ? opts.button : 0;
    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
    let ctrlKey = opts && 'ctrlKey' in opts ? opts.ctrlKey : false;
    let altKey = opts && 'altKey' in opts ? opts.altKey : false;
    let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
    let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
    let relatedTarget = opts && 'relatedTarget' in opts ? opts.relatedTarget : null;
    let options = new (IdentityMapOfStringL$ObjectL()).from(["view", view, "deltaMode", deltaMode, "deltaX", deltaX, "deltaY", deltaY, "deltaZ", deltaZ, "detail", detail, "screenX", screenX, "screenY", screenY, "clientX", clientX, "clientY", clientY, "button", button, "bubbles", canBubble, "cancelable", cancelable, "ctrlKey", ctrlKey, "altKey", altKey, "shiftKey", shiftKey, "metaKey", metaKey, "relatedTarget", relatedTarget]);
    if (view == null) {
      view = html$.window;
    }
    return new WheelEvent(type, html_common.convertDartToNative_Dictionary(options));
  }
  static __(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$.WheelEvent._create_1(type, eventInitDict_1);
    }
    return html$.WheelEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new WheelEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new WheelEvent(type);
  }
  get [_deltaX]() {
    return this.deltaX;
  }
  get [_deltaY]() {
    return this.deltaY;
  }
  get [$deltaZ]() {
    return this.deltaZ;
  }
  get [$deltaY]() {
    if (this.deltaY !== undefined) {
      return this[_deltaY];
    }
    dart.throw(new core.UnsupportedError.new("deltaY is not supported"));
  }
  get [$deltaX]() {
    if (this.deltaX !== undefined) {
      return this[_deltaX];
    }
    dart.throw(new core.UnsupportedError.new("deltaX is not supported"));
  }
  get [$deltaMode]() {
    if (!!this.deltaMode) {
      return this.deltaMode;
    }
    return 0;
  }
  get [_wheelDelta]() {
    return this.wheelDelta;
  }
  get [_wheelDeltaX]() {
    return this.wheelDeltaX;
  }
  get [_detail]() {
    return this.detail;
  }
  get [_hasInitMouseScrollEvent]() {
    return !!this.initMouseScrollEvent;
  }
  [_initMouseScrollEvent](...args) {
    return this.initMouseScrollEvent.apply(this, args);
  }
  get [_hasInitWheelEvent]() {
    return !!this.initWheelEvent;
  }
  [_initWheelEvent](...args) {
    return this.initWheelEvent.apply(this, args);
  }
};
dart.addTypeTests(html$.WheelEvent);
dart.addTypeCaches(html$.WheelEvent);
dart.setMethodSignature(html$.WheelEvent, () => ({
  __proto__: dart.getMethods(html$.WheelEvent.__proto__),
  [_initMouseScrollEvent]: dart.fnType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int, core.int, core.int, core.int, core.int, core.bool, core.bool, core.bool, core.bool, core.int, html$.EventTarget, core.int]),
  [_initWheelEvent]: dart.fnType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int, core.int, core.int, core.int, core.int, core.int, html$.EventTarget, core.String, core.int, core.int, core.int, core.int])
}));
dart.setGetterSignature(html$.WheelEvent, () => ({
  __proto__: dart.getGetters(html$.WheelEvent.__proto__),
  [_deltaX]: core.num,
  [_deltaY]: core.num,
  [$deltaZ]: core.num,
  [$deltaY]: core.num,
  [$deltaX]: core.num,
  [$deltaMode]: core.int,
  [_wheelDelta]: core.num,
  [_wheelDeltaX]: core.num,
  [_detail]: core.num,
  [_hasInitMouseScrollEvent]: core.bool,
  [_hasInitWheelEvent]: core.bool
}));
dart.setLibraryUri(html$.WheelEvent, L65);
dart.defineLazy(html$.WheelEvent, {
  /*html$.WheelEvent.DOM_DELTA_LINE*/get DOM_DELTA_LINE() {
    return 1;
  },
  /*html$.WheelEvent.DOM_DELTA_PAGE*/get DOM_DELTA_PAGE() {
    return 2;
  },
  /*html$.WheelEvent.DOM_DELTA_PIXEL*/get DOM_DELTA_PIXEL() {
    return 0;
  }
}, true);
dart.registerExtension("WheelEvent", html$.WheelEvent);
var _open2 = dart.privateName(html$, "_open2");
var _open3 = dart.privateName(html$, "_open3");
var _location$ = dart.privateName(html$, "_location");
var _ensureRequestAnimationFrame = dart.privateName(html$, "_ensureRequestAnimationFrame");
var _requestAnimationFrame = dart.privateName(html$, "_requestAnimationFrame");
var _cancelAnimationFrame = dart.privateName(html$, "_cancelAnimationFrame");
var _requestFileSystem = dart.privateName(html$, "_requestFileSystem");
var _get_opener = dart.privateName(html$, "_get_opener");
var _pageXOffset = dart.privateName(html$, "_pageXOffset");
var _pageYOffset = dart.privateName(html$, "_pageYOffset");
var _get_parent = dart.privateName(html$, "_get_parent");
var _get_self = dart.privateName(html$, "_get_self");
var _get_top = dart.privateName(html$, "_get_top");
var __getter___1 = dart.privateName(html$, "__getter___1");
var __getter___2 = dart.privateName(html$, "__getter___2");
var _openDatabase = dart.privateName(html$, "_openDatabase");
var _requestIdleCallback_1 = dart.privateName(html$, "_requestIdleCallback_1");
var _requestIdleCallback_2 = dart.privateName(html$, "_requestIdleCallback_2");
var _scroll_4 = dart.privateName(html$, "_scroll_4");
var _scroll_5 = dart.privateName(html$, "_scroll_5");
var _scrollBy_4 = dart.privateName(html$, "_scrollBy_4");
var _scrollBy_5 = dart.privateName(html$, "_scrollBy_5");
var _scrollTo_4 = dart.privateName(html$, "_scrollTo_4");
var _scrollTo_5 = dart.privateName(html$, "_scrollTo_5");
var __requestFileSystem = dart.privateName(html$, "__requestFileSystem");
var _resolveLocalFileSystemUrl = dart.privateName(html$, "_resolveLocalFileSystemUrl");
var C388;
var C389;
var C390;
var C391;
var C392;
var C393;
var C394;
var C395;
var C396;
var C397;
var _BeforeUnloadEventStreamProvider__eventType = dart.privateName(html$, "_BeforeUnloadEventStreamProvider._eventType");
var C398;
html$.Window = class Window extends html$.EventTarget {
  get [$animationFrame]() {
    let completer = CompleterOfnumL().sync();
    this[$requestAnimationFrame](dart.fn(time => {
      completer.complete(time);
    }, numLToNullN()));
    return completer.future;
  }
  get [$document]() {
    return this.document;
  }
  [_open2](url, name) {
    return this.open(url, name);
  }
  [_open3](url, name, options) {
    return this.open(url, name, options);
  }
  [$open](url, name, options = null) {
    if (options == null) {
      return html$._DOMWindowCrossFrame._createSafe(this[_open2](url, name));
    } else {
      return html$._DOMWindowCrossFrame._createSafe(this[_open3](url, name, options));
    }
  }
  get [$location]() {
    return html$.Location.as(this[_location$]);
  }
  set [$location](value) {
    this[_location$] = value;
  }
  get [_location$]() {
    return this.location;
  }
  set [_location$](value) {
    this.location = value;
  }
  [$requestAnimationFrame](callback) {
    this[_ensureRequestAnimationFrame]();
    return this[_requestAnimationFrame](html$._wrapZone(core.num, callback));
  }
  [$cancelAnimationFrame](id) {
    this[_ensureRequestAnimationFrame]();
    this[_cancelAnimationFrame](id);
  }
  [_requestAnimationFrame](...args) {
    return this.requestAnimationFrame.apply(this, args);
  }
  [_cancelAnimationFrame](...args) {
    return this.cancelAnimationFrame.apply(this, args);
  }
  [_ensureRequestAnimationFrame]() {
    if (!!(this.requestAnimationFrame && this.cancelAnimationFrame)) return;
    (function($this) {
      var vendors = ['ms', 'moz', 'webkit', 'o'];
      for (var i = 0; i < vendors.length && !$this.requestAnimationFrame; ++i) {
        $this.requestAnimationFrame = $this[vendors[i] + 'RequestAnimationFrame'];
        $this.cancelAnimationFrame = $this[vendors[i] + 'CancelAnimationFrame'] || $this[vendors[i] + 'CancelRequestAnimationFrame'];
      }
      if ($this.requestAnimationFrame && $this.cancelAnimationFrame) return;
      $this.requestAnimationFrame = function(callback) {
        return window.setTimeout(function() {
          callback(Date.now());
        }, 16);
      };
      $this.cancelAnimationFrame = function(id) {
        clearTimeout(id);
      };
    })(this);
  }
  get [$indexedDB]() {
    return this.indexedDB || this.webkitIndexedDB || this.mozIndexedDB;
  }
  get [$console]() {
    return html$.Console._safeConsole;
  }
  [$requestFileSystem](size, opts) {
    let persistent = opts && 'persistent' in opts ? opts.persistent : false;
    return this[_requestFileSystem](dart.test(persistent) ? 1 : 0, size);
  }
  static get supportsPointConversions() {
    return html$.DomPoint.supported;
  }
  get [$animationWorklet]() {
    return this.animationWorklet;
  }
  get [$applicationCache]() {
    return this.applicationCache;
  }
  get [$audioWorklet]() {
    return this.audioWorklet;
  }
  get [$caches]() {
    return this.caches;
  }
  get [$closed]() {
    return this.closed;
  }
  get [$cookieStore]() {
    return this.cookieStore;
  }
  get [$crypto]() {
    return this.crypto;
  }
  get [$customElements]() {
    return this.customElements;
  }
  get [$defaultStatus]() {
    return this.defaultStatus;
  }
  set [$defaultStatus](value) {
    this.defaultStatus = value;
  }
  get [$defaultstatus]() {
    return this.defaultstatus;
  }
  set [$defaultstatus](value) {
    this.defaultstatus = value;
  }
  get [$devicePixelRatio]() {
    return this.devicePixelRatio;
  }
  get [$external]() {
    return this.external;
  }
  get [$history]() {
    return this.history;
  }
  get [$innerHeight]() {
    return this.innerHeight;
  }
  get [$innerWidth]() {
    return this.innerWidth;
  }
  get [$isSecureContext]() {
    return this.isSecureContext;
  }
  get [$localStorage]() {
    return this.localStorage;
  }
  get [$locationbar]() {
    return this.locationbar;
  }
  get [$menubar]() {
    return this.menubar;
  }
  get [$name]() {
    return this.name;
  }
  set [$name](value) {
    this.name = value;
  }
  get [$navigator]() {
    return this.navigator;
  }
  get [$offscreenBuffering]() {
    return this.offscreenBuffering;
  }
  get [$opener]() {
    return html$._convertNativeToDart_Window(this[_get_opener]);
  }
  get [_get_opener]() {
    return this.opener;
  }
  set [$opener](value) {
    this.opener = value;
  }
  get [$orientation]() {
    return this.orientation;
  }
  get [$origin]() {
    return this.origin;
  }
  get [$outerHeight]() {
    return this.outerHeight;
  }
  get [$outerWidth]() {
    return this.outerWidth;
  }
  get [_pageXOffset]() {
    return this.pageXOffset;
  }
  get [_pageYOffset]() {
    return this.pageYOffset;
  }
  get [$parent]() {
    return html$._convertNativeToDart_Window(this[_get_parent]);
  }
  get [_get_parent]() {
    return this.parent;
  }
  get [$performance]() {
    return this.performance;
  }
  get [$screen]() {
    return this.screen;
  }
  get [$screenLeft]() {
    return this.screenLeft;
  }
  get [$screenTop]() {
    return this.screenTop;
  }
  get [$screenX]() {
    return this.screenX;
  }
  get [$screenY]() {
    return this.screenY;
  }
  get [$scrollbars]() {
    return this.scrollbars;
  }
  get [$self]() {
    return html$._convertNativeToDart_Window(this[_get_self]);
  }
  get [_get_self]() {
    return this.self;
  }
  get [$sessionStorage]() {
    return this.sessionStorage;
  }
  get [$speechSynthesis]() {
    return this.speechSynthesis;
  }
  get [$status]() {
    return this.status;
  }
  set [$status](value) {
    this.status = value;
  }
  get [$statusbar]() {
    return this.statusbar;
  }
  get [$styleMedia]() {
    return this.styleMedia;
  }
  get [$toolbar]() {
    return this.toolbar;
  }
  get [$top]() {
    return html$._convertNativeToDart_Window(this[_get_top]);
  }
  get [_get_top]() {
    return this.top;
  }
  get [$visualViewport]() {
    return this.visualViewport;
  }
  get [$window]() {
    return html$._convertNativeToDart_Window(this[_get_window]);
  }
  get [_get_window]() {
    return this.window;
  }
  [__getter__](index_OR_name) {
    if (core.int.is(index_OR_name)) {
      return html$._convertNativeToDart_Window(this[__getter___1](index_OR_name));
    }
    if (typeof index_OR_name == 'string') {
      return html$._convertNativeToDart_Window(this[__getter___2](index_OR_name));
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [__getter___1](...args) {
    return this.__getter__.apply(this, args);
  }
  [__getter___2](...args) {
    return this.__getter__.apply(this, args);
  }
  [$alert](...args) {
    return this.alert.apply(this, args);
  }
  [$cancelIdleCallback](...args) {
    return this.cancelIdleCallback.apply(this, args);
  }
  [$close](...args) {
    return this.close.apply(this, args);
  }
  [$confirm](...args) {
    return this.confirm.apply(this, args);
  }
  [$fetch](input, init = null) {
    let init_dict = null;
    if (init != null) {
      init_dict = html_common.convertDartToNative_Dictionary(init);
    }
    return js_util.promiseToFuture(dart.dynamic, this.fetch(input, init_dict));
  }
  [$find](...args) {
    return this.find.apply(this, args);
  }
  [_getComputedStyle](...args) {
    return this.getComputedStyle.apply(this, args);
  }
  [$getComputedStyleMap](...args) {
    return this.getComputedStyleMap.apply(this, args);
  }
  [$getMatchedCssRules](...args) {
    return this.getMatchedCSSRules.apply(this, args);
  }
  [$getSelection](...args) {
    return this.getSelection.apply(this, args);
  }
  [$matchMedia](...args) {
    return this.matchMedia.apply(this, args);
  }
  [$moveBy](...args) {
    return this.moveBy.apply(this, args);
  }
  [_moveTo](...args) {
    return this.moveTo.apply(this, args);
  }
  [_openDatabase](...args) {
    return this.openDatabase.apply(this, args);
  }
  [$postMessage](message, targetOrigin, transfer = null) {
    if (transfer != null) {
      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
      this[_postMessage_1](message_1, targetOrigin, transfer);
      return;
    }
    let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
    this[_postMessage_2](message_1, targetOrigin);
    return;
  }
  [_postMessage_1](...args) {
    return this.postMessage.apply(this, args);
  }
  [_postMessage_2](...args) {
    return this.postMessage.apply(this, args);
  }
  [$print](...args) {
    return this.print.apply(this, args);
  }
  [$requestIdleCallback](callback, options = null) {
    if (options != null) {
      let callback_1 = _js_helper.convertDartClosureToJS(IdleDeadlineLToLvoid(), callback, 1);
      let options_2 = html_common.convertDartToNative_Dictionary(options);
      return this[_requestIdleCallback_1](callback_1, options_2);
    }
    let callback_1 = _js_helper.convertDartClosureToJS(IdleDeadlineLToLvoid(), callback, 1);
    return this[_requestIdleCallback_2](callback_1);
  }
  [_requestIdleCallback_1](...args) {
    return this.requestIdleCallback.apply(this, args);
  }
  [_requestIdleCallback_2](...args) {
    return this.requestIdleCallback.apply(this, args);
  }
  [$resizeBy](...args) {
    return this.resizeBy.apply(this, args);
  }
  [$resizeTo](...args) {
    return this.resizeTo.apply(this, args);
  }
  [$scroll](options_OR_x = null, y = null, scrollOptions = null) {
    if (options_OR_x == null && y == null && scrollOptions == null) {
      this[_scroll_1]();
      return;
    }
    if (core.Map.is(options_OR_x) && y == null && scrollOptions == null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
      this[_scroll_2](options_1);
      return;
    }
    if (typeof y == 'number' && typeof options_OR_x == 'number' && scrollOptions == null) {
      this[_scroll_3](options_OR_x, y);
      return;
    }
    if (core.int.is(y) && core.int.is(options_OR_x) && scrollOptions == null) {
      this[_scroll_4](options_OR_x, y);
      return;
    }
    if (scrollOptions != null && core.int.is(y) && core.int.is(options_OR_x)) {
      let scrollOptions_1 = html_common.convertDartToNative_Dictionary(scrollOptions);
      this[_scroll_5](options_OR_x, y, scrollOptions_1);
      return;
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [_scroll_1](...args) {
    return this.scroll.apply(this, args);
  }
  [_scroll_2](...args) {
    return this.scroll.apply(this, args);
  }
  [_scroll_3](...args) {
    return this.scroll.apply(this, args);
  }
  [_scroll_4](...args) {
    return this.scroll.apply(this, args);
  }
  [_scroll_5](...args) {
    return this.scroll.apply(this, args);
  }
  [$scrollBy](options_OR_x = null, y = null, scrollOptions = null) {
    if (options_OR_x == null && y == null && scrollOptions == null) {
      this[_scrollBy_1]();
      return;
    }
    if (core.Map.is(options_OR_x) && y == null && scrollOptions == null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
      this[_scrollBy_2](options_1);
      return;
    }
    if (typeof y == 'number' && typeof options_OR_x == 'number' && scrollOptions == null) {
      this[_scrollBy_3](options_OR_x, y);
      return;
    }
    if (core.int.is(y) && core.int.is(options_OR_x) && scrollOptions == null) {
      this[_scrollBy_4](options_OR_x, y);
      return;
    }
    if (scrollOptions != null && core.int.is(y) && core.int.is(options_OR_x)) {
      let scrollOptions_1 = html_common.convertDartToNative_Dictionary(scrollOptions);
      this[_scrollBy_5](options_OR_x, y, scrollOptions_1);
      return;
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [_scrollBy_1](...args) {
    return this.scrollBy.apply(this, args);
  }
  [_scrollBy_2](...args) {
    return this.scrollBy.apply(this, args);
  }
  [_scrollBy_3](...args) {
    return this.scrollBy.apply(this, args);
  }
  [_scrollBy_4](...args) {
    return this.scrollBy.apply(this, args);
  }
  [_scrollBy_5](...args) {
    return this.scrollBy.apply(this, args);
  }
  [$scrollTo](options_OR_x = null, y = null, scrollOptions = null) {
    if (options_OR_x == null && y == null && scrollOptions == null) {
      this[_scrollTo_1]();
      return;
    }
    if (core.Map.is(options_OR_x) && y == null && scrollOptions == null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
      this[_scrollTo_2](options_1);
      return;
    }
    if (typeof y == 'number' && typeof options_OR_x == 'number' && scrollOptions == null) {
      this[_scrollTo_3](options_OR_x, y);
      return;
    }
    if (core.int.is(y) && core.int.is(options_OR_x) && scrollOptions == null) {
      this[_scrollTo_4](options_OR_x, y);
      return;
    }
    if (scrollOptions != null && core.int.is(y) && core.int.is(options_OR_x)) {
      let scrollOptions_1 = html_common.convertDartToNative_Dictionary(scrollOptions);
      this[_scrollTo_5](options_OR_x, y, scrollOptions_1);
      return;
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [_scrollTo_1](...args) {
    return this.scrollTo.apply(this, args);
  }
  [_scrollTo_2](...args) {
    return this.scrollTo.apply(this, args);
  }
  [_scrollTo_3](...args) {
    return this.scrollTo.apply(this, args);
  }
  [_scrollTo_4](...args) {
    return this.scrollTo.apply(this, args);
  }
  [_scrollTo_5](...args) {
    return this.scrollTo.apply(this, args);
  }
  [$stop](...args) {
    return this.stop.apply(this, args);
  }
  [__requestFileSystem](...args) {
    return this.webkitRequestFileSystem.apply(this, args);
  }
  [_requestFileSystem](type, size) {
    let completer = CompleterOfFileSystemL().new();
    this[__requestFileSystem](type, size, dart.fn(value => {
      _js_helper.applyExtension("DOMFileSystem", value);
      _js_helper.applyExtension("DirectoryEntry", value.root);
      completer.complete(value);
    }, FileSystemLToNullN()), dart.fn(error => {
      completer.completeError(error);
    }, DomExceptionLToNullN()));
    return completer.future;
  }
  [_resolveLocalFileSystemUrl](...args) {
    return this.webkitResolveLocalFileSystemURL.apply(this, args);
  }
  [$resolveLocalFileSystemUrl](url) {
    let completer = CompleterOfEntryL().new();
    this[_resolveLocalFileSystemUrl](url, dart.fn(value => {
      completer.complete(value);
    }, EntryLToNullN()), dart.fn(error => {
      completer.completeError(error);
    }, DomExceptionLToNullN()));
    return completer.future;
  }
  [$atob](...args) {
    return this.atob.apply(this, args);
  }
  [$btoa](...args) {
    return this.btoa.apply(this, args);
  }
  [_setInterval_String](...args) {
    return this.setInterval.apply(this, args);
  }
  [_setTimeout_String](...args) {
    return this.setTimeout.apply(this, args);
  }
  [_clearInterval](...args) {
    return this.clearInterval.apply(this, args);
  }
  [_clearTimeout](...args) {
    return this.clearTimeout.apply(this, args);
  }
  [_setInterval](...args) {
    return this.setInterval.apply(this, args);
  }
  [_setTimeout](...args) {
    return this.setTimeout.apply(this, args);
  }
  get [$onContentLoaded]() {
    return html$.Window.contentLoadedEvent.forTarget(this);
  }
  get [$onAbort]() {
    return html$.Element.abortEvent.forTarget(this);
  }
  get [$onBlur]() {
    return html$.Element.blurEvent.forTarget(this);
  }
  get [$onCanPlay]() {
    return html$.Element.canPlayEvent.forTarget(this);
  }
  get [$onCanPlayThrough]() {
    return html$.Element.canPlayThroughEvent.forTarget(this);
  }
  get [$onChange]() {
    return html$.Element.changeEvent.forTarget(this);
  }
  get [$onClick]() {
    return html$.Element.clickEvent.forTarget(this);
  }
  get [$onContextMenu]() {
    return html$.Element.contextMenuEvent.forTarget(this);
  }
  get [$onDoubleClick]() {
    return html$.Element.doubleClickEvent.forTarget(this);
  }
  get [$onDeviceMotion]() {
    return html$.Window.deviceMotionEvent.forTarget(this);
  }
  get [$onDeviceOrientation]() {
    return html$.Window.deviceOrientationEvent.forTarget(this);
  }
  get [$onDrag]() {
    return html$.Element.dragEvent.forTarget(this);
  }
  get [$onDragEnd]() {
    return html$.Element.dragEndEvent.forTarget(this);
  }
  get [$onDragEnter]() {
    return html$.Element.dragEnterEvent.forTarget(this);
  }
  get [$onDragLeave]() {
    return html$.Element.dragLeaveEvent.forTarget(this);
  }
  get [$onDragOver]() {
    return html$.Element.dragOverEvent.forTarget(this);
  }
  get [$onDragStart]() {
    return html$.Element.dragStartEvent.forTarget(this);
  }
  get [$onDrop]() {
    return html$.Element.dropEvent.forTarget(this);
  }
  get [$onDurationChange]() {
    return html$.Element.durationChangeEvent.forTarget(this);
  }
  get [$onEmptied]() {
    return html$.Element.emptiedEvent.forTarget(this);
  }
  get [$onEnded]() {
    return html$.Element.endedEvent.forTarget(this);
  }
  get [$onError]() {
    return html$.Element.errorEvent.forTarget(this);
  }
  get [$onFocus]() {
    return html$.Element.focusEvent.forTarget(this);
  }
  get [$onHashChange]() {
    return html$.Window.hashChangeEvent.forTarget(this);
  }
  get [$onInput]() {
    return html$.Element.inputEvent.forTarget(this);
  }
  get [$onInvalid]() {
    return html$.Element.invalidEvent.forTarget(this);
  }
  get [$onKeyDown]() {
    return html$.Element.keyDownEvent.forTarget(this);
  }
  get [$onKeyPress]() {
    return html$.Element.keyPressEvent.forTarget(this);
  }
  get [$onKeyUp]() {
    return html$.Element.keyUpEvent.forTarget(this);
  }
  get [$onLoad]() {
    return html$.Element.loadEvent.forTarget(this);
  }
  get [$onLoadedData]() {
    return html$.Element.loadedDataEvent.forTarget(this);
  }
  get [$onLoadedMetadata]() {
    return html$.Element.loadedMetadataEvent.forTarget(this);
  }
  get [$onLoadStart]() {
    return html$.Window.loadStartEvent.forTarget(this);
  }
  get [$onMessage]() {
    return html$.Window.messageEvent.forTarget(this);
  }
  get [$onMouseDown]() {
    return html$.Element.mouseDownEvent.forTarget(this);
  }
  get [$onMouseEnter]() {
    return html$.Element.mouseEnterEvent.forTarget(this);
  }
  get [$onMouseLeave]() {
    return html$.Element.mouseLeaveEvent.forTarget(this);
  }
  get [$onMouseMove]() {
    return html$.Element.mouseMoveEvent.forTarget(this);
  }
  get [$onMouseOut]() {
    return html$.Element.mouseOutEvent.forTarget(this);
  }
  get [$onMouseOver]() {
    return html$.Element.mouseOverEvent.forTarget(this);
  }
  get [$onMouseUp]() {
    return html$.Element.mouseUpEvent.forTarget(this);
  }
  get [$onMouseWheel]() {
    return html$.Element.mouseWheelEvent.forTarget(this);
  }
  get [$onOffline]() {
    return html$.Window.offlineEvent.forTarget(this);
  }
  get [$onOnline]() {
    return html$.Window.onlineEvent.forTarget(this);
  }
  get [$onPageHide]() {
    return html$.Window.pageHideEvent.forTarget(this);
  }
  get [$onPageShow]() {
    return html$.Window.pageShowEvent.forTarget(this);
  }
  get [$onPause]() {
    return html$.Element.pauseEvent.forTarget(this);
  }
  get [$onPlay]() {
    return html$.Element.playEvent.forTarget(this);
  }
  get [$onPlaying]() {
    return html$.Element.playingEvent.forTarget(this);
  }
  get [$onPopState]() {
    return html$.Window.popStateEvent.forTarget(this);
  }
  get [$onProgress]() {
    return html$.Window.progressEvent.forTarget(this);
  }
  get [$onRateChange]() {
    return html$.Element.rateChangeEvent.forTarget(this);
  }
  get [$onReset]() {
    return html$.Element.resetEvent.forTarget(this);
  }
  get [$onResize]() {
    return html$.Element.resizeEvent.forTarget(this);
  }
  get [$onScroll]() {
    return html$.Element.scrollEvent.forTarget(this);
  }
  get [$onSearch]() {
    return html$.Element.searchEvent.forTarget(this);
  }
  get [$onSeeked]() {
    return html$.Element.seekedEvent.forTarget(this);
  }
  get [$onSeeking]() {
    return html$.Element.seekingEvent.forTarget(this);
  }
  get [$onSelect]() {
    return html$.Element.selectEvent.forTarget(this);
  }
  get [$onStalled]() {
    return html$.Element.stalledEvent.forTarget(this);
  }
  get [$onStorage]() {
    return html$.Window.storageEvent.forTarget(this);
  }
  get [$onSubmit]() {
    return html$.Element.submitEvent.forTarget(this);
  }
  get [$onSuspend]() {
    return html$.Element.suspendEvent.forTarget(this);
  }
  get [$onTimeUpdate]() {
    return html$.Element.timeUpdateEvent.forTarget(this);
  }
  get [$onTouchCancel]() {
    return html$.Element.touchCancelEvent.forTarget(this);
  }
  get [$onTouchEnd]() {
    return html$.Element.touchEndEvent.forTarget(this);
  }
  get [$onTouchMove]() {
    return html$.Element.touchMoveEvent.forTarget(this);
  }
  get [$onTouchStart]() {
    return html$.Element.touchStartEvent.forTarget(this);
  }
  get [$onTransitionEnd]() {
    return html$.Element.transitionEndEvent.forTarget(this);
  }
  get [$onUnload]() {
    return html$.Window.unloadEvent.forTarget(this);
  }
  get [$onVolumeChange]() {
    return html$.Element.volumeChangeEvent.forTarget(this);
  }
  get [$onWaiting]() {
    return html$.Element.waitingEvent.forTarget(this);
  }
  get [$onAnimationEnd]() {
    return html$.Window.animationEndEvent.forTarget(this);
  }
  get [$onAnimationIteration]() {
    return html$.Window.animationIterationEvent.forTarget(this);
  }
  get [$onAnimationStart]() {
    return html$.Window.animationStartEvent.forTarget(this);
  }
  get [$onBeforeUnload]() {
    return html$.Window.beforeUnloadEvent.forTarget(this);
  }
  get [$onWheel]() {
    return html$.Element.wheelEvent.forTarget(this);
  }
  [$moveTo](p) {
    this[_moveTo](p.x[$toInt](), p.y[$toInt]());
  }
  [$openDatabase](name, version, displayName, estimatedSize, creationCallback = null) {
    let db = null;
    if (creationCallback == null)
      db = this[_openDatabase](name, version, displayName, estimatedSize);
    else
      db = this[_openDatabase](name, version, displayName, estimatedSize, creationCallback);
    _js_helper.applyExtension("Database", db);
    return web_sql.SqlDatabase.as(db);
  }
  get [$pageXOffset]() {
    return this.pageXOffset[$round]();
  }
  get [$pageYOffset]() {
    return this.pageYOffset[$round]();
  }
  get [$scrollX]() {
    return "scrollX" in this ? this.scrollX[$round]() : this[$document].documentElement[$scrollLeft];
  }
  get [$scrollY]() {
    return "scrollY" in this ? this.scrollY[$round]() : this[$document].documentElement[$scrollTop];
  }
};
dart.addTypeTests(html$.Window);
dart.addTypeCaches(html$.Window);
html$.Window[dart.implements] = () => [html$.WindowEventHandlers, html$.WindowBase, html$.GlobalEventHandlers, html$._WindowTimers, html$.WindowBase64];
dart.setMethodSignature(html$.Window, () => ({
  __proto__: dart.getMethods(html$.Window.__proto__),
  [_open2]: dart.fnType(html$.WindowBase, [dart.dynamic, dart.dynamic]),
  [_open3]: dart.fnType(html$.WindowBase, [dart.dynamic, dart.dynamic, dart.dynamic]),
  [$open]: dart.fnType(html$.WindowBase, [core.String, core.String], [core.String]),
  [$requestAnimationFrame]: dart.fnType(core.int, [dart.fnType(dart.void, [core.num])]),
  [$cancelAnimationFrame]: dart.fnType(dart.void, [core.int]),
  [_requestAnimationFrame]: dart.fnType(core.int, [dart.fnType(dart.void, [core.num])]),
  [_cancelAnimationFrame]: dart.fnType(dart.void, [core.int]),
  [_ensureRequestAnimationFrame]: dart.fnType(dart.dynamic, []),
  [$requestFileSystem]: dart.fnType(async.Future$(html$.FileSystem), [core.int], {persistent: core.bool}, {}),
  [__getter__]: dart.fnType(html$.WindowBase, [dart.dynamic]),
  [__getter___1]: dart.fnType(dart.dynamic, [core.int]),
  [__getter___2]: dart.fnType(dart.dynamic, [core.String]),
  [$alert]: dart.fnType(dart.void, [], [core.String]),
  [$cancelIdleCallback]: dart.fnType(dart.void, [core.int]),
  [$close]: dart.fnType(dart.void, []),
  [$confirm]: dart.fnType(core.bool, [], [core.String]),
  [$fetch]: dart.fnType(async.Future, [dart.dynamic], [core.Map]),
  [$find]: dart.fnType(core.bool, [core.String, core.bool, core.bool, core.bool, core.bool, core.bool, core.bool]),
  [_getComputedStyle]: dart.fnType(html$.CssStyleDeclaration, [html$.Element], [core.String]),
  [$getComputedStyleMap]: dart.fnType(html$.StylePropertyMapReadonly, [html$.Element, core.String]),
  [$getMatchedCssRules]: dart.fnType(core.List$(html$.CssRule), [html$.Element, core.String]),
  [$getSelection]: dart.fnType(html$.Selection, []),
  [$matchMedia]: dart.fnType(html$.MediaQueryList, [core.String]),
  [$moveBy]: dart.fnType(dart.void, [core.int, core.int]),
  [_moveTo]: dart.fnType(dart.void, [core.int, core.int]),
  [_openDatabase]: dart.fnType(web_sql.SqlDatabase, [core.String, core.String, core.String, core.int], [dart.fnType(dart.void, [web_sql.SqlDatabase])]),
  [$postMessage]: dart.fnType(dart.void, [dart.dynamic, core.String], [core.List$(core.Object)]),
  [_postMessage_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, core.List$(core.Object)]),
  [_postMessage_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic]),
  [$print]: dart.fnType(dart.void, []),
  [$requestIdleCallback]: dart.fnType(core.int, [dart.fnType(dart.void, [html$.IdleDeadline])], [core.Map]),
  [_requestIdleCallback_1]: dart.fnType(core.int, [dart.dynamic, dart.dynamic]),
  [_requestIdleCallback_2]: dart.fnType(core.int, [dart.dynamic]),
  [$resizeBy]: dart.fnType(dart.void, [core.int, core.int]),
  [$resizeTo]: dart.fnType(dart.void, [core.int, core.int]),
  [$scroll]: dart.fnType(dart.void, [], [dart.dynamic, dart.dynamic, core.Map]),
  [_scroll_1]: dart.fnType(dart.void, []),
  [_scroll_2]: dart.fnType(dart.void, [dart.dynamic]),
  [_scroll_3]: dart.fnType(dart.void, [core.num, core.num]),
  [_scroll_4]: dart.fnType(dart.void, [core.int, core.int]),
  [_scroll_5]: dart.fnType(dart.void, [core.int, core.int, dart.dynamic]),
  [$scrollBy]: dart.fnType(dart.void, [], [dart.dynamic, dart.dynamic, core.Map]),
  [_scrollBy_1]: dart.fnType(dart.void, []),
  [_scrollBy_2]: dart.fnType(dart.void, [dart.dynamic]),
  [_scrollBy_3]: dart.fnType(dart.void, [core.num, core.num]),
  [_scrollBy_4]: dart.fnType(dart.void, [core.int, core.int]),
  [_scrollBy_5]: dart.fnType(dart.void, [core.int, core.int, dart.dynamic]),
  [$scrollTo]: dart.fnType(dart.void, [], [dart.dynamic, dart.dynamic, core.Map]),
  [_scrollTo_1]: dart.fnType(dart.void, []),
  [_scrollTo_2]: dart.fnType(dart.void, [dart.dynamic]),
  [_scrollTo_3]: dart.fnType(dart.void, [core.num, core.num]),
  [_scrollTo_4]: dart.fnType(dart.void, [core.int, core.int]),
  [_scrollTo_5]: dart.fnType(dart.void, [core.int, core.int, dart.dynamic]),
  [$stop]: dart.fnType(dart.void, []),
  [__requestFileSystem]: dart.fnType(dart.void, [core.int, core.int, dart.fnType(dart.void, [html$.FileSystem])], [dart.fnType(dart.void, [html$.DomException])]),
  [_requestFileSystem]: dart.fnType(async.Future$(html$.FileSystem), [core.int, core.int]),
  [_resolveLocalFileSystemUrl]: dart.fnType(dart.void, [core.String, dart.fnType(dart.void, [html$.Entry])], [dart.fnType(dart.void, [html$.DomException])]),
  [$resolveLocalFileSystemUrl]: dart.fnType(async.Future$(html$.Entry), [core.String]),
  [$atob]: dart.fnType(core.String, [core.String]),
  [$btoa]: dart.fnType(core.String, [core.String]),
  [_setInterval_String]: dart.fnType(core.int, [core.String], [core.int, core.Object]),
  [_setTimeout_String]: dart.fnType(core.int, [core.String], [core.int, core.Object]),
  [_clearInterval]: dart.fnType(dart.void, [], [core.int]),
  [_clearTimeout]: dart.fnType(dart.void, [], [core.int]),
  [_setInterval]: dart.fnType(core.int, [core.Object], [core.int]),
  [_setTimeout]: dart.fnType(core.int, [core.Object], [core.int]),
  [$moveTo]: dart.fnType(dart.void, [math.Point$(core.num)]),
  [$openDatabase]: dart.fnType(web_sql.SqlDatabase, [core.String, core.String, core.String, core.int], [dart.fnType(dart.void, [web_sql.SqlDatabase])])
}));
dart.setGetterSignature(html$.Window, () => ({
  __proto__: dart.getGetters(html$.Window.__proto__),
  [$animationFrame]: async.Future$(core.num),
  [$document]: html$.Document,
  [$location]: html$.Location,
  [_location$]: dart.dynamic,
  [$indexedDB]: indexed_db.IdbFactory,
  [$console]: html$.Console,
  [$animationWorklet]: html$._Worklet,
  [$applicationCache]: html$.ApplicationCache,
  [$audioWorklet]: html$._Worklet,
  [$caches]: html$.CacheStorage,
  [$closed]: core.bool,
  [$cookieStore]: html$.CookieStore,
  [$crypto]: html$.Crypto,
  [$customElements]: html$.CustomElementRegistry,
  [$defaultStatus]: core.String,
  [$defaultstatus]: core.String,
  [$devicePixelRatio]: core.num,
  [$external]: html$.External,
  [$history]: html$.History,
  [$innerHeight]: core.int,
  [$innerWidth]: core.int,
  [$isSecureContext]: core.bool,
  [$localStorage]: html$.Storage,
  [$locationbar]: html$.BarProp,
  [$menubar]: html$.BarProp,
  [$name]: core.String,
  [$navigator]: html$.Navigator,
  [$offscreenBuffering]: core.bool,
  [$opener]: html$.WindowBase,
  [_get_opener]: dart.dynamic,
  [$orientation]: core.int,
  [$origin]: core.String,
  [$outerHeight]: core.int,
  [$outerWidth]: core.int,
  [_pageXOffset]: core.num,
  [_pageYOffset]: core.num,
  [$parent]: html$.WindowBase,
  [_get_parent]: dart.dynamic,
  [$performance]: html$.Performance,
  [$screen]: html$.Screen,
  [$screenLeft]: core.int,
  [$screenTop]: core.int,
  [$screenX]: core.int,
  [$screenY]: core.int,
  [$scrollbars]: html$.BarProp,
  [$self]: html$.WindowBase,
  [_get_self]: dart.dynamic,
  [$sessionStorage]: html$.Storage,
  [$speechSynthesis]: html$.SpeechSynthesis,
  [$status]: core.String,
  [$statusbar]: html$.BarProp,
  [$styleMedia]: html$.StyleMedia,
  [$toolbar]: html$.BarProp,
  [$top]: html$.WindowBase,
  [_get_top]: dart.dynamic,
  [$visualViewport]: html$.VisualViewport,
  [$window]: html$.WindowBase,
  [_get_window]: dart.dynamic,
  [$onContentLoaded]: async.Stream$(html$.Event),
  [$onAbort]: async.Stream$(html$.Event),
  [$onBlur]: async.Stream$(html$.Event),
  [$onCanPlay]: async.Stream$(html$.Event),
  [$onCanPlayThrough]: async.Stream$(html$.Event),
  [$onChange]: async.Stream$(html$.Event),
  [$onClick]: async.Stream$(html$.MouseEvent),
  [$onContextMenu]: async.Stream$(html$.MouseEvent),
  [$onDoubleClick]: async.Stream$(html$.Event),
  [$onDeviceMotion]: async.Stream$(html$.DeviceMotionEvent),
  [$onDeviceOrientation]: async.Stream$(html$.DeviceOrientationEvent),
  [$onDrag]: async.Stream$(html$.MouseEvent),
  [$onDragEnd]: async.Stream$(html$.MouseEvent),
  [$onDragEnter]: async.Stream$(html$.MouseEvent),
  [$onDragLeave]: async.Stream$(html$.MouseEvent),
  [$onDragOver]: async.Stream$(html$.MouseEvent),
  [$onDragStart]: async.Stream$(html$.MouseEvent),
  [$onDrop]: async.Stream$(html$.MouseEvent),
  [$onDurationChange]: async.Stream$(html$.Event),
  [$onEmptied]: async.Stream$(html$.Event),
  [$onEnded]: async.Stream$(html$.Event),
  [$onError]: async.Stream$(html$.Event),
  [$onFocus]: async.Stream$(html$.Event),
  [$onHashChange]: async.Stream$(html$.Event),
  [$onInput]: async.Stream$(html$.Event),
  [$onInvalid]: async.Stream$(html$.Event),
  [$onKeyDown]: async.Stream$(html$.KeyboardEvent),
  [$onKeyPress]: async.Stream$(html$.KeyboardEvent),
  [$onKeyUp]: async.Stream$(html$.KeyboardEvent),
  [$onLoad]: async.Stream$(html$.Event),
  [$onLoadedData]: async.Stream$(html$.Event),
  [$onLoadedMetadata]: async.Stream$(html$.Event),
  [$onLoadStart]: async.Stream$(html$.Event),
  [$onMessage]: async.Stream$(html$.MessageEvent),
  [$onMouseDown]: async.Stream$(html$.MouseEvent),
  [$onMouseEnter]: async.Stream$(html$.MouseEvent),
  [$onMouseLeave]: async.Stream$(html$.MouseEvent),
  [$onMouseMove]: async.Stream$(html$.MouseEvent),
  [$onMouseOut]: async.Stream$(html$.MouseEvent),
  [$onMouseOver]: async.Stream$(html$.MouseEvent),
  [$onMouseUp]: async.Stream$(html$.MouseEvent),
  [$onMouseWheel]: async.Stream$(html$.WheelEvent),
  [$onOffline]: async.Stream$(html$.Event),
  [$onOnline]: async.Stream$(html$.Event),
  [$onPageHide]: async.Stream$(html$.Event),
  [$onPageShow]: async.Stream$(html$.Event),
  [$onPause]: async.Stream$(html$.Event),
  [$onPlay]: async.Stream$(html$.Event),
  [$onPlaying]: async.Stream$(html$.Event),
  [$onPopState]: async.Stream$(html$.PopStateEvent),
  [$onProgress]: async.Stream$(html$.Event),
  [$onRateChange]: async.Stream$(html$.Event),
  [$onReset]: async.Stream$(html$.Event),
  [$onResize]: async.Stream$(html$.Event),
  [$onScroll]: async.Stream$(html$.Event),
  [$onSearch]: async.Stream$(html$.Event),
  [$onSeeked]: async.Stream$(html$.Event),
  [$onSeeking]: async.Stream$(html$.Event),
  [$onSelect]: async.Stream$(html$.Event),
  [$onStalled]: async.Stream$(html$.Event),
  [$onStorage]: async.Stream$(html$.StorageEvent),
  [$onSubmit]: async.Stream$(html$.Event),
  [$onSuspend]: async.Stream$(html$.Event),
  [$onTimeUpdate]: async.Stream$(html$.Event),
  [$onTouchCancel]: async.Stream$(html$.TouchEvent),
  [$onTouchEnd]: async.Stream$(html$.TouchEvent),
  [$onTouchMove]: async.Stream$(html$.TouchEvent),
  [$onTouchStart]: async.Stream$(html$.TouchEvent),
  [$onTransitionEnd]: async.Stream$(html$.TransitionEvent),
  [$onUnload]: async.Stream$(html$.Event),
  [$onVolumeChange]: async.Stream$(html$.Event),
  [$onWaiting]: async.Stream$(html$.Event),
  [$onAnimationEnd]: async.Stream$(html$.AnimationEvent),
  [$onAnimationIteration]: async.Stream$(html$.AnimationEvent),
  [$onAnimationStart]: async.Stream$(html$.AnimationEvent),
  [$onBeforeUnload]: async.Stream$(html$.Event),
  [$onWheel]: async.Stream$(html$.WheelEvent),
  [$pageXOffset]: core.int,
  [$pageYOffset]: core.int,
  [$scrollX]: core.int,
  [$scrollY]: core.int
}));
dart.setSetterSignature(html$.Window, () => ({
  __proto__: dart.getSetters(html$.Window.__proto__),
  [$location]: dart.dynamic,
  [_location$]: dart.dynamic,
  [$defaultStatus]: core.String,
  [$defaultstatus]: core.String,
  [$name]: core.String,
  [$opener]: html$.WindowBase,
  [$status]: core.String
}));
dart.setLibraryUri(html$.Window, L65);
dart.defineLazy(html$.Window, {
  /*html$.Window.contentLoadedEvent*/get contentLoadedEvent() {
    return C388 || CT.C388;
  },
  /*html$.Window.deviceMotionEvent*/get deviceMotionEvent() {
    return C389 || CT.C389;
  },
  /*html$.Window.deviceOrientationEvent*/get deviceOrientationEvent() {
    return C390 || CT.C390;
  },
  /*html$.Window.hashChangeEvent*/get hashChangeEvent() {
    return C312 || CT.C312;
  },
  /*html$.Window.loadStartEvent*/get loadStartEvent() {
    return C391 || CT.C391;
  },
  /*html$.Window.messageEvent*/get messageEvent() {
    return C313 || CT.C313;
  },
  /*html$.Window.offlineEvent*/get offlineEvent() {
    return C314 || CT.C314;
  },
  /*html$.Window.onlineEvent*/get onlineEvent() {
    return C315 || CT.C315;
  },
  /*html$.Window.pageHideEvent*/get pageHideEvent() {
    return C392 || CT.C392;
  },
  /*html$.Window.pageShowEvent*/get pageShowEvent() {
    return C393 || CT.C393;
  },
  /*html$.Window.popStateEvent*/get popStateEvent() {
    return C316 || CT.C316;
  },
  /*html$.Window.progressEvent*/get progressEvent() {
    return C394 || CT.C394;
  },
  /*html$.Window.storageEvent*/get storageEvent() {
    return C317 || CT.C317;
  },
  /*html$.Window.unloadEvent*/get unloadEvent() {
    return C318 || CT.C318;
  },
  /*html$.Window.animationEndEvent*/get animationEndEvent() {
    return C395 || CT.C395;
  },
  /*html$.Window.animationIterationEvent*/get animationIterationEvent() {
    return C396 || CT.C396;
  },
  /*html$.Window.animationStartEvent*/get animationStartEvent() {
    return C397 || CT.C397;
  },
  /*html$.Window.PERSISTENT*/get PERSISTENT() {
    return 1;
  },
  /*html$.Window.TEMPORARY*/get TEMPORARY() {
    return 0;
  },
  /*html$.Window.beforeUnloadEvent*/get beforeUnloadEvent() {
    return C398 || CT.C398;
  }
}, true);
dart.registerExtension("Window", html$.Window);
dart.registerExtension("DOMWindow", html$.Window);
var _returnValue = dart.privateName(html$, "_returnValue");
var wrapped$ = dart.privateName(html$, "_WrappedEvent.wrapped");
html$._WrappedEvent = class _WrappedEvent extends core.Object {
  get wrapped() {
    return this[wrapped$];
  }
  set wrapped(value) {
    super.wrapped = value;
  }
  get bubbles() {
    return this.wrapped.bubbles;
  }
  get cancelable() {
    return this.wrapped.cancelable;
  }
  get composed() {
    return this.wrapped.composed;
  }
  get currentTarget() {
    return this.wrapped[$currentTarget];
  }
  get defaultPrevented() {
    return this.wrapped.defaultPrevented;
  }
  get eventPhase() {
    return this.wrapped.eventPhase;
  }
  get isTrusted() {
    return this.wrapped.isTrusted;
  }
  get target() {
    return this.wrapped[$target];
  }
  get timeStamp() {
    return this.wrapped.timeStamp;
  }
  get type() {
    return this.wrapped.type;
  }
  [_initEvent](type, bubbles = null, cancelable = null) {
    dart.throw(new core.UnsupportedError.new("Cannot initialize this Event."));
  }
  preventDefault() {
    this.wrapped.preventDefault();
  }
  stopImmediatePropagation() {
    this.wrapped.stopImmediatePropagation();
  }
  stopPropagation() {
    this.wrapped.stopPropagation();
  }
  composedPath() {
    return this.wrapped.composedPath();
  }
  get matchingTarget() {
    if (this[_selector] == null) {
      dart.throw(new core.UnsupportedError.new("Cannot call matchingTarget if this Event did" + " not arise as a result of event delegation."));
    }
    let currentTarget = html$.Element.as(this.currentTarget);
    let target = html$.Element.as(this.target);
    let matchedTarget = null;
    do {
      if (dart.test(target[$matches](this[_selector]))) return target;
      target = target[$parent];
    } while (target != null && !dart.equals(target, currentTarget[$parent]));
    dart.throw(new core.StateError.new("No selector matched for populating matchedTarget."));
  }
  get path() {
    return ListOfNodeL().as(this.wrapped[$path]);
  }
  get [_get_currentTarget]() {
    return this.wrapped[_get_currentTarget];
  }
  get [_get_target]() {
    return this.wrapped[_get_target];
  }
};
(html$._WrappedEvent.new = function(wrapped) {
  this[_selector] = null;
  this[wrapped$] = wrapped;
  ;
}).prototype = html$._WrappedEvent.prototype;
dart.addTypeTests(html$._WrappedEvent);
dart.addTypeCaches(html$._WrappedEvent);
html$._WrappedEvent[dart.implements] = () => [html$.Event];
dart.setMethodSignature(html$._WrappedEvent, () => ({
  __proto__: dart.getMethods(html$._WrappedEvent.__proto__),
  [_initEvent]: dart.fnType(dart.void, [core.String], [core.bool, core.bool]),
  preventDefault: dart.fnType(dart.void, []),
  [$preventDefault]: dart.fnType(dart.void, []),
  stopImmediatePropagation: dart.fnType(dart.void, []),
  [$stopImmediatePropagation]: dart.fnType(dart.void, []),
  stopPropagation: dart.fnType(dart.void, []),
  [$stopPropagation]: dart.fnType(dart.void, []),
  composedPath: dart.fnType(core.List$(html$.EventTarget), []),
  [$composedPath]: dart.fnType(core.List$(html$.EventTarget), [])
}));
dart.setGetterSignature(html$._WrappedEvent, () => ({
  __proto__: dart.getGetters(html$._WrappedEvent.__proto__),
  bubbles: core.bool,
  [$bubbles]: core.bool,
  cancelable: core.bool,
  [$cancelable]: core.bool,
  composed: core.bool,
  [$composed]: core.bool,
  currentTarget: html$.EventTarget,
  [$currentTarget]: html$.EventTarget,
  defaultPrevented: core.bool,
  [$defaultPrevented]: core.bool,
  eventPhase: core.int,
  [$eventPhase]: core.int,
  isTrusted: core.bool,
  [$isTrusted]: core.bool,
  target: html$.EventTarget,
  [$target]: html$.EventTarget,
  timeStamp: core.double,
  [$timeStamp]: core.double,
  type: core.String,
  [$type]: core.String,
  matchingTarget: html$.Element,
  [$matchingTarget]: html$.Element,
  path: core.List$(html$.Node),
  [$path]: core.List$(html$.Node),
  [_get_currentTarget]: dart.dynamic,
  [_get_target]: dart.dynamic
}));
dart.setLibraryUri(html$._WrappedEvent, L65);
dart.setFieldSignature(html$._WrappedEvent, () => ({
  __proto__: dart.getFields(html$._WrappedEvent.__proto__),
  wrapped: dart.finalFieldType(html$.Event),
  [_selector]: dart.fieldType(core.String)
}));
dart.defineExtensionMethods(html$._WrappedEvent, ['preventDefault', 'stopImmediatePropagation', 'stopPropagation', 'composedPath']);
dart.defineExtensionAccessors(html$._WrappedEvent, [
  'bubbles',
  'cancelable',
  'composed',
  'currentTarget',
  'defaultPrevented',
  'eventPhase',
  'isTrusted',
  'target',
  'timeStamp',
  'type',
  'matchingTarget',
  'path'
]);
html$._BeforeUnloadEvent = class _BeforeUnloadEvent extends html$._WrappedEvent {
  get returnValue() {
    return this[_returnValue];
  }
  set returnValue(value) {
    this[_returnValue] = value;
    if ("returnValue" in this.wrapped) {
      this.wrapped.returnValue = value;
    }
  }
};
(html$._BeforeUnloadEvent.new = function(base) {
  this[_returnValue] = null;
  html$._BeforeUnloadEvent.__proto__.new.call(this, base);
  ;
}).prototype = html$._BeforeUnloadEvent.prototype;
dart.addTypeTests(html$._BeforeUnloadEvent);
dart.addTypeCaches(html$._BeforeUnloadEvent);
html$._BeforeUnloadEvent[dart.implements] = () => [html$.BeforeUnloadEvent];
dart.setGetterSignature(html$._BeforeUnloadEvent, () => ({
  __proto__: dart.getGetters(html$._BeforeUnloadEvent.__proto__),
  returnValue: core.String,
  [$returnValue]: core.String
}));
dart.setSetterSignature(html$._BeforeUnloadEvent, () => ({
  __proto__: dart.getSetters(html$._BeforeUnloadEvent.__proto__),
  returnValue: core.String,
  [$returnValue]: core.String
}));
dart.setLibraryUri(html$._BeforeUnloadEvent, L65);
dart.setFieldSignature(html$._BeforeUnloadEvent, () => ({
  __proto__: dart.getFields(html$._BeforeUnloadEvent.__proto__),
  [_returnValue]: dart.fieldType(core.String)
}));
dart.defineExtensionAccessors(html$._BeforeUnloadEvent, ['returnValue']);
var _eventType$ = dart.privateName(html$, "_eventType");
html$._BeforeUnloadEventStreamProvider = class _BeforeUnloadEventStreamProvider extends core.Object {
  get [_eventType$]() {
    return this[_eventType$0];
  }
  set [_eventType$](value) {
    super[_eventType$] = value;
  }
  forTarget(e, opts) {
    let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
    let stream = new (_EventStreamOfBeforeUnloadEventL()).new(e, this[_eventType$], useCapture);
    let controller = StreamControllerOfBeforeUnloadEventL().new({sync: true});
    stream.listen(dart.fn(event => {
      let wrapped = new html$._BeforeUnloadEvent.new(event);
      controller.add(wrapped);
    }, BeforeUnloadEventLToNullN()));
    return controller.stream;
  }
  getEventType(target) {
    return this[_eventType$];
  }
  forElement(e, opts) {
    let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
    return new (_ElementEventStreamImplOfBeforeUnloadEventL()).new(e, this[_eventType$], useCapture);
  }
  [_forElementList](e, opts) {
    let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
    return new (_ElementListEventStreamImplOfBeforeUnloadEventL()).new(e, this[_eventType$], useCapture);
  }
};
(html$._BeforeUnloadEventStreamProvider.new = function(_eventType) {
  this[_eventType$0] = _eventType;
  ;
}).prototype = html$._BeforeUnloadEventStreamProvider.prototype;
dart.addTypeTests(html$._BeforeUnloadEventStreamProvider);
dart.addTypeCaches(html$._BeforeUnloadEventStreamProvider);
const _eventType$0 = _BeforeUnloadEventStreamProvider__eventType;
html$._BeforeUnloadEventStreamProvider[dart.implements] = () => [html$.EventStreamProvider$(html$.BeforeUnloadEvent)];
dart.setMethodSignature(html$._BeforeUnloadEventStreamProvider, () => ({
  __proto__: dart.getMethods(html$._BeforeUnloadEventStreamProvider.__proto__),
  forTarget: dart.fnType(async.Stream$(html$.BeforeUnloadEvent), [html$.EventTarget], {useCapture: core.bool}, {}),
  getEventType: dart.fnType(core.String, [html$.EventTarget]),
  forElement: dart.fnType(html$.ElementStream$(html$.BeforeUnloadEvent), [html$.Element], {useCapture: core.bool}, {}),
  [_forElementList]: dart.fnType(html$.ElementStream$(html$.BeforeUnloadEvent), [html$.ElementList$(html$.Element)], {useCapture: core.bool}, {})
}));
dart.setLibraryUri(html$._BeforeUnloadEventStreamProvider, L65);
dart.setFieldSignature(html$._BeforeUnloadEventStreamProvider, () => ({
  __proto__: dart.getFields(html$._BeforeUnloadEventStreamProvider.__proto__),
  [_eventType$]: dart.finalFieldType(core.String)
}));
html$.WindowBase64 = class WindowBase64 extends _interceptors.Interceptor {};
dart.addTypeTests(html$.WindowBase64);
dart.addTypeCaches(html$.WindowBase64);
dart.setLibraryUri(html$.WindowBase64, L65);
html$.WindowClient = class WindowClient extends html$.Client {
  get [$focused]() {
    return this.focused;
  }
  get [$visibilityState]() {
    return this.visibilityState;
  }
  [$focus]() {
    return js_util.promiseToFuture(html$.WindowClient, this.focus());
  }
  [$navigate](url) {
    return js_util.promiseToFuture(html$.WindowClient, this.navigate(url));
  }
};
dart.addTypeTests(html$.WindowClient);
dart.addTypeCaches(html$.WindowClient);
dart.setMethodSignature(html$.WindowClient, () => ({
  __proto__: dart.getMethods(html$.WindowClient.__proto__),
  [$focus]: dart.fnType(async.Future$(html$.WindowClient), []),
  [$navigate]: dart.fnType(async.Future$(html$.WindowClient), [core.String])
}));
dart.setGetterSignature(html$.WindowClient, () => ({
  __proto__: dart.getGetters(html$.WindowClient.__proto__),
  [$focused]: core.bool,
  [$visibilityState]: core.String
}));
dart.setLibraryUri(html$.WindowClient, L65);
dart.registerExtension("WindowClient", html$.WindowClient);
html$.WindowEventHandlers = class WindowEventHandlers extends html$.EventTarget {
  get onHashChange() {
    return html$.WindowEventHandlers.hashChangeEvent.forTarget(this);
  }
  get onMessage() {
    return html$.WindowEventHandlers.messageEvent.forTarget(this);
  }
  get onOffline() {
    return html$.WindowEventHandlers.offlineEvent.forTarget(this);
  }
  get onOnline() {
    return html$.WindowEventHandlers.onlineEvent.forTarget(this);
  }
  get onPopState() {
    return html$.WindowEventHandlers.popStateEvent.forTarget(this);
  }
  get onStorage() {
    return html$.WindowEventHandlers.storageEvent.forTarget(this);
  }
  get onUnload() {
    return html$.WindowEventHandlers.unloadEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.WindowEventHandlers);
dart.addTypeCaches(html$.WindowEventHandlers);
dart.setGetterSignature(html$.WindowEventHandlers, () => ({
  __proto__: dart.getGetters(html$.WindowEventHandlers.__proto__),
  onHashChange: async.Stream$(html$.Event),
  [$onHashChange]: async.Stream$(html$.Event),
  onMessage: async.Stream$(html$.MessageEvent),
  [$onMessage]: async.Stream$(html$.MessageEvent),
  onOffline: async.Stream$(html$.Event),
  [$onOffline]: async.Stream$(html$.Event),
  onOnline: async.Stream$(html$.Event),
  [$onOnline]: async.Stream$(html$.Event),
  onPopState: async.Stream$(html$.PopStateEvent),
  [$onPopState]: async.Stream$(html$.PopStateEvent),
  onStorage: async.Stream$(html$.StorageEvent),
  [$onStorage]: async.Stream$(html$.StorageEvent),
  onUnload: async.Stream$(html$.Event),
  [$onUnload]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(html$.WindowEventHandlers, L65);
dart.defineExtensionAccessors(html$.WindowEventHandlers, [
  'onHashChange',
  'onMessage',
  'onOffline',
  'onOnline',
  'onPopState',
  'onStorage',
  'onUnload'
]);
dart.defineLazy(html$.WindowEventHandlers, {
  /*html$.WindowEventHandlers.hashChangeEvent*/get hashChangeEvent() {
    return C312 || CT.C312;
  },
  /*html$.WindowEventHandlers.messageEvent*/get messageEvent() {
    return C313 || CT.C313;
  },
  /*html$.WindowEventHandlers.offlineEvent*/get offlineEvent() {
    return C314 || CT.C314;
  },
  /*html$.WindowEventHandlers.onlineEvent*/get onlineEvent() {
    return C315 || CT.C315;
  },
  /*html$.WindowEventHandlers.popStateEvent*/get popStateEvent() {
    return C316 || CT.C316;
  },
  /*html$.WindowEventHandlers.storageEvent*/get storageEvent() {
    return C317 || CT.C317;
  },
  /*html$.WindowEventHandlers.unloadEvent*/get unloadEvent() {
    return C318 || CT.C318;
  }
}, true);
html$.Worker = class Worker$ extends html$.EventTarget {
  static new(scriptUrl) {
    return html$.Worker._create_1(scriptUrl);
  }
  static _create_1(scriptUrl) {
    return new Worker(scriptUrl);
  }
  static get supported() {
    return typeof window.Worker != "undefined";
  }
  [$postMessage](message, transfer = null) {
    if (transfer != null) {
      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
      this[_postMessage_1](message_1, transfer);
      return;
    }
    let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
    this[_postMessage_2](message_1);
    return;
  }
  [_postMessage_1](...args) {
    return this.postMessage.apply(this, args);
  }
  [_postMessage_2](...args) {
    return this.postMessage.apply(this, args);
  }
  [$terminate](...args) {
    return this.terminate.apply(this, args);
  }
  get [$onError]() {
    return html$.Worker.errorEvent.forTarget(this);
  }
  get [$onMessage]() {
    return html$.Worker.messageEvent.forTarget(this);
  }
};
dart.addTypeTests(html$.Worker);
dart.addTypeCaches(html$.Worker);
html$.Worker[dart.implements] = () => [html$.AbstractWorker];
dart.setMethodSignature(html$.Worker, () => ({
  __proto__: dart.getMethods(html$.Worker.__proto__),
  [$postMessage]: dart.fnType(dart.void, [dart.dynamic], [core.List$(core.Object)]),
  [_postMessage_1]: dart.fnType(dart.void, [dart.dynamic, core.List$(core.Object)]),
  [_postMessage_2]: dart.fnType(dart.void, [dart.dynamic]),
  [$terminate]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.Worker, () => ({
  __proto__: dart.getGetters(html$.Worker.__proto__),
  [$onError]: async.Stream$(html$.Event),
  [$onMessage]: async.Stream$(html$.MessageEvent)
}));
dart.setLibraryUri(html$.Worker, L65);
dart.defineLazy(html$.Worker, {
  /*html$.Worker.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  },
  /*html$.Worker.messageEvent*/get messageEvent() {
    return C313 || CT.C313;
  }
}, true);
dart.registerExtension("Worker", html$.Worker);
html$.WorkerPerformance = class WorkerPerformance extends html$.EventTarget {
  get [$memory]() {
    return this.memory;
  }
  get [$timeOrigin]() {
    return this.timeOrigin;
  }
  [$clearMarks](...args) {
    return this.clearMarks.apply(this, args);
  }
  [$clearMeasures](...args) {
    return this.clearMeasures.apply(this, args);
  }
  [$clearResourceTimings](...args) {
    return this.clearResourceTimings.apply(this, args);
  }
  [$getEntries](...args) {
    return this.getEntries.apply(this, args);
  }
  [$getEntriesByName](...args) {
    return this.getEntriesByName.apply(this, args);
  }
  [$getEntriesByType](...args) {
    return this.getEntriesByType.apply(this, args);
  }
  [$mark](...args) {
    return this.mark.apply(this, args);
  }
  [$measure](...args) {
    return this.measure.apply(this, args);
  }
  [$now](...args) {
    return this.now.apply(this, args);
  }
  [$setResourceTimingBufferSize](...args) {
    return this.setResourceTimingBufferSize.apply(this, args);
  }
};
dart.addTypeTests(html$.WorkerPerformance);
dart.addTypeCaches(html$.WorkerPerformance);
dart.setMethodSignature(html$.WorkerPerformance, () => ({
  __proto__: dart.getMethods(html$.WorkerPerformance.__proto__),
  [$clearMarks]: dart.fnType(dart.void, [core.String]),
  [$clearMeasures]: dart.fnType(dart.void, [core.String]),
  [$clearResourceTimings]: dart.fnType(dart.void, []),
  [$getEntries]: dart.fnType(core.List$(html$.PerformanceEntry), []),
  [$getEntriesByName]: dart.fnType(core.List$(html$.PerformanceEntry), [core.String, core.String]),
  [$getEntriesByType]: dart.fnType(core.List$(html$.PerformanceEntry), [core.String]),
  [$mark]: dart.fnType(dart.void, [core.String]),
  [$measure]: dart.fnType(dart.void, [core.String, core.String, core.String]),
  [$now]: dart.fnType(core.double, []),
  [$setResourceTimingBufferSize]: dart.fnType(dart.void, [core.int])
}));
dart.setGetterSignature(html$.WorkerPerformance, () => ({
  __proto__: dart.getGetters(html$.WorkerPerformance.__proto__),
  [$memory]: html$.MemoryInfo,
  [$timeOrigin]: core.num
}));
dart.setLibraryUri(html$.WorkerPerformance, L65);
dart.registerExtension("WorkerPerformance", html$.WorkerPerformance);
html$.WorkletAnimation = class WorkletAnimation$ extends _interceptors.Interceptor {
  static new(animatorName, effects, timelines, options) {
    let options_1 = html_common.convertDartToNative_SerializedScriptValue(options);
    return html$.WorkletAnimation._create_1(animatorName, effects, timelines, options_1);
  }
  static _create_1(animatorName, effects, timelines, options) {
    return new WorkletAnimation(animatorName, effects, timelines, options);
  }
  get [$playState]() {
    return this.playState;
  }
  [$cancel](...args) {
    return this.cancel.apply(this, args);
  }
  [$play](...args) {
    return this.play.apply(this, args);
  }
};
dart.addTypeTests(html$.WorkletAnimation);
dart.addTypeCaches(html$.WorkletAnimation);
dart.setMethodSignature(html$.WorkletAnimation, () => ({
  __proto__: dart.getMethods(html$.WorkletAnimation.__proto__),
  [$cancel]: dart.fnType(dart.void, []),
  [$play]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$.WorkletAnimation, () => ({
  __proto__: dart.getGetters(html$.WorkletAnimation.__proto__),
  [$playState]: core.String
}));
dart.setLibraryUri(html$.WorkletAnimation, L65);
dart.registerExtension("WorkletAnimation", html$.WorkletAnimation);
html$.XPathEvaluator = class XPathEvaluator$ extends _interceptors.Interceptor {
  static new() {
    return html$.XPathEvaluator._create_1();
  }
  static _create_1() {
    return new XPathEvaluator();
  }
  [$createExpression](...args) {
    return this.createExpression.apply(this, args);
  }
  [$createNSResolver](...args) {
    return this.createNSResolver.apply(this, args);
  }
  [$evaluate](...args) {
    return this.evaluate.apply(this, args);
  }
};
dart.addTypeTests(html$.XPathEvaluator);
dart.addTypeCaches(html$.XPathEvaluator);
dart.setMethodSignature(html$.XPathEvaluator, () => ({
  __proto__: dart.getMethods(html$.XPathEvaluator.__proto__),
  [$createExpression]: dart.fnType(html$.XPathExpression, [core.String, html$.XPathNSResolver]),
  [$createNSResolver]: dart.fnType(html$.XPathNSResolver, [html$.Node]),
  [$evaluate]: dart.fnType(html$.XPathResult, [core.String, html$.Node, html$.XPathNSResolver], [core.int, core.Object])
}));
dart.setLibraryUri(html$.XPathEvaluator, L65);
dart.registerExtension("XPathEvaluator", html$.XPathEvaluator);
html$.XPathExpression = class XPathExpression extends _interceptors.Interceptor {
  [$evaluate](...args) {
    return this.evaluate.apply(this, args);
  }
};
dart.addTypeTests(html$.XPathExpression);
dart.addTypeCaches(html$.XPathExpression);
dart.setMethodSignature(html$.XPathExpression, () => ({
  __proto__: dart.getMethods(html$.XPathExpression.__proto__),
  [$evaluate]: dart.fnType(html$.XPathResult, [html$.Node], [core.int, core.Object])
}));
dart.setLibraryUri(html$.XPathExpression, L65);
dart.registerExtension("XPathExpression", html$.XPathExpression);
html$.XPathNSResolver = class XPathNSResolver extends _interceptors.Interceptor {
  [$lookupNamespaceUri](...args) {
    return this.lookupNamespaceURI.apply(this, args);
  }
};
dart.addTypeTests(html$.XPathNSResolver);
dart.addTypeCaches(html$.XPathNSResolver);
dart.setMethodSignature(html$.XPathNSResolver, () => ({
  __proto__: dart.getMethods(html$.XPathNSResolver.__proto__),
  [$lookupNamespaceUri]: dart.fnType(core.String, [core.String])
}));
dart.setLibraryUri(html$.XPathNSResolver, L65);
dart.registerExtension("XPathNSResolver", html$.XPathNSResolver);
html$.XPathResult = class XPathResult extends _interceptors.Interceptor {
  get [$booleanValue]() {
    return this.booleanValue;
  }
  get [$invalidIteratorState]() {
    return this.invalidIteratorState;
  }
  get [$numberValue]() {
    return this.numberValue;
  }
  get [$resultType]() {
    return this.resultType;
  }
  get [$singleNodeValue]() {
    return this.singleNodeValue;
  }
  get [$snapshotLength]() {
    return this.snapshotLength;
  }
  get [$stringValue]() {
    return this.stringValue;
  }
  [$iterateNext](...args) {
    return this.iterateNext.apply(this, args);
  }
  [$snapshotItem](...args) {
    return this.snapshotItem.apply(this, args);
  }
};
dart.addTypeTests(html$.XPathResult);
dart.addTypeCaches(html$.XPathResult);
dart.setMethodSignature(html$.XPathResult, () => ({
  __proto__: dart.getMethods(html$.XPathResult.__proto__),
  [$iterateNext]: dart.fnType(html$.Node, []),
  [$snapshotItem]: dart.fnType(html$.Node, [core.int])
}));
dart.setGetterSignature(html$.XPathResult, () => ({
  __proto__: dart.getGetters(html$.XPathResult.__proto__),
  [$booleanValue]: core.bool,
  [$invalidIteratorState]: core.bool,
  [$numberValue]: core.num,
  [$resultType]: core.int,
  [$singleNodeValue]: html$.Node,
  [$snapshotLength]: core.int,
  [$stringValue]: core.String
}));
dart.setLibraryUri(html$.XPathResult, L65);
dart.defineLazy(html$.XPathResult, {
  /*html$.XPathResult.ANY_TYPE*/get ANY_TYPE() {
    return 0;
  },
  /*html$.XPathResult.ANY_UNORDERED_NODE_TYPE*/get ANY_UNORDERED_NODE_TYPE() {
    return 8;
  },
  /*html$.XPathResult.BOOLEAN_TYPE*/get BOOLEAN_TYPE() {
    return 3;
  },
  /*html$.XPathResult.FIRST_ORDERED_NODE_TYPE*/get FIRST_ORDERED_NODE_TYPE() {
    return 9;
  },
  /*html$.XPathResult.NUMBER_TYPE*/get NUMBER_TYPE() {
    return 1;
  },
  /*html$.XPathResult.ORDERED_NODE_ITERATOR_TYPE*/get ORDERED_NODE_ITERATOR_TYPE() {
    return 5;
  },
  /*html$.XPathResult.ORDERED_NODE_SNAPSHOT_TYPE*/get ORDERED_NODE_SNAPSHOT_TYPE() {
    return 7;
  },
  /*html$.XPathResult.STRING_TYPE*/get STRING_TYPE() {
    return 2;
  },
  /*html$.XPathResult.UNORDERED_NODE_ITERATOR_TYPE*/get UNORDERED_NODE_ITERATOR_TYPE() {
    return 4;
  },
  /*html$.XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE*/get UNORDERED_NODE_SNAPSHOT_TYPE() {
    return 6;
  }
}, true);
dart.registerExtension("XPathResult", html$.XPathResult);
html$.XmlDocument = class XmlDocument extends html$.Document {};
dart.addTypeTests(html$.XmlDocument);
dart.addTypeCaches(html$.XmlDocument);
dart.setLibraryUri(html$.XmlDocument, L65);
dart.registerExtension("XMLDocument", html$.XmlDocument);
html$.XmlSerializer = class XmlSerializer extends _interceptors.Interceptor {
  static new() {
    return html$.XmlSerializer._create_1();
  }
  static _create_1() {
    return new XMLSerializer();
  }
  [$serializeToString](...args) {
    return this.serializeToString.apply(this, args);
  }
};
dart.addTypeTests(html$.XmlSerializer);
dart.addTypeCaches(html$.XmlSerializer);
dart.setMethodSignature(html$.XmlSerializer, () => ({
  __proto__: dart.getMethods(html$.XmlSerializer.__proto__),
  [$serializeToString]: dart.fnType(core.String, [html$.Node])
}));
dart.setLibraryUri(html$.XmlSerializer, L65);
dart.registerExtension("XMLSerializer", html$.XmlSerializer);
html$.XsltProcessor = class XsltProcessor extends _interceptors.Interceptor {
  static new() {
    return html$.XsltProcessor._create_1();
  }
  static _create_1() {
    return new XSLTProcessor();
  }
  static get supported() {
    return !!window.XSLTProcessor;
  }
  [$clearParameters](...args) {
    return this.clearParameters.apply(this, args);
  }
  [$getParameter](...args) {
    return this.getParameter.apply(this, args);
  }
  [$importStylesheet](...args) {
    return this.importStylesheet.apply(this, args);
  }
  [$removeParameter](...args) {
    return this.removeParameter.apply(this, args);
  }
  [$reset](...args) {
    return this.reset.apply(this, args);
  }
  [$setParameter](...args) {
    return this.setParameter.apply(this, args);
  }
  [$transformToDocument](...args) {
    return this.transformToDocument.apply(this, args);
  }
  [$transformToFragment](...args) {
    return this.transformToFragment.apply(this, args);
  }
};
dart.addTypeTests(html$.XsltProcessor);
dart.addTypeCaches(html$.XsltProcessor);
dart.setMethodSignature(html$.XsltProcessor, () => ({
  __proto__: dart.getMethods(html$.XsltProcessor.__proto__),
  [$clearParameters]: dart.fnType(dart.void, []),
  [$getParameter]: dart.fnType(core.String, [core.String, core.String]),
  [$importStylesheet]: dart.fnType(dart.void, [html$.Node]),
  [$removeParameter]: dart.fnType(dart.void, [core.String, core.String]),
  [$reset]: dart.fnType(dart.void, []),
  [$setParameter]: dart.fnType(dart.void, [core.String, core.String, core.String]),
  [$transformToDocument]: dart.fnType(html$.Document, [html$.Node]),
  [$transformToFragment]: dart.fnType(html$.DocumentFragment, [html$.Node, html$.Document])
}));
dart.setLibraryUri(html$.XsltProcessor, L65);
dart.registerExtension("XSLTProcessor", html$.XsltProcessor);
html$._Attr = class _Attr extends html$.Node {
  get [_localName]() {
    return this.localName;
  }
  get [$name]() {
    return this.name;
  }
  get [_namespaceUri]() {
    return this.namespaceURI;
  }
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
};
dart.addTypeTests(html$._Attr);
dart.addTypeCaches(html$._Attr);
dart.setGetterSignature(html$._Attr, () => ({
  __proto__: dart.getGetters(html$._Attr.__proto__),
  [_localName]: core.String,
  [$name]: core.String,
  [_namespaceUri]: core.String,
  [$value]: core.String
}));
dart.setSetterSignature(html$._Attr, () => ({
  __proto__: dart.getSetters(html$._Attr.__proto__),
  [$value]: core.String
}));
dart.setLibraryUri(html$._Attr, L65);
dart.registerExtension("Attr", html$._Attr);
html$._Bluetooth = class _Bluetooth extends _interceptors.Interceptor {};
dart.addTypeTests(html$._Bluetooth);
dart.addTypeCaches(html$._Bluetooth);
dart.setLibraryUri(html$._Bluetooth, L65);
dart.registerExtension("Bluetooth", html$._Bluetooth);
html$._BluetoothCharacteristicProperties = class _BluetoothCharacteristicProperties extends _interceptors.Interceptor {};
dart.addTypeTests(html$._BluetoothCharacteristicProperties);
dart.addTypeCaches(html$._BluetoothCharacteristicProperties);
dart.setLibraryUri(html$._BluetoothCharacteristicProperties, L65);
dart.registerExtension("BluetoothCharacteristicProperties", html$._BluetoothCharacteristicProperties);
html$._BluetoothDevice = class _BluetoothDevice extends html$.EventTarget {};
dart.addTypeTests(html$._BluetoothDevice);
dart.addTypeCaches(html$._BluetoothDevice);
dart.setLibraryUri(html$._BluetoothDevice, L65);
dart.registerExtension("BluetoothDevice", html$._BluetoothDevice);
html$._BluetoothRemoteGATTCharacteristic = class _BluetoothRemoteGATTCharacteristic extends html$.EventTarget {};
dart.addTypeTests(html$._BluetoothRemoteGATTCharacteristic);
dart.addTypeCaches(html$._BluetoothRemoteGATTCharacteristic);
dart.setLibraryUri(html$._BluetoothRemoteGATTCharacteristic, L65);
dart.registerExtension("BluetoothRemoteGATTCharacteristic", html$._BluetoothRemoteGATTCharacteristic);
html$._BluetoothRemoteGATTServer = class _BluetoothRemoteGATTServer extends _interceptors.Interceptor {};
dart.addTypeTests(html$._BluetoothRemoteGATTServer);
dart.addTypeCaches(html$._BluetoothRemoteGATTServer);
dart.setLibraryUri(html$._BluetoothRemoteGATTServer, L65);
dart.registerExtension("BluetoothRemoteGATTServer", html$._BluetoothRemoteGATTServer);
html$._BluetoothRemoteGATTService = class _BluetoothRemoteGATTService extends _interceptors.Interceptor {};
dart.addTypeTests(html$._BluetoothRemoteGATTService);
dart.addTypeCaches(html$._BluetoothRemoteGATTService);
dart.setLibraryUri(html$._BluetoothRemoteGATTService, L65);
dart.registerExtension("BluetoothRemoteGATTService", html$._BluetoothRemoteGATTService);
html$._BluetoothUUID = class _BluetoothUUID extends _interceptors.Interceptor {};
dart.addTypeTests(html$._BluetoothUUID);
dart.addTypeCaches(html$._BluetoothUUID);
dart.setLibraryUri(html$._BluetoothUUID, L65);
dart.registerExtension("BluetoothUUID", html$._BluetoothUUID);
html$._BudgetService = class _BudgetService extends _interceptors.Interceptor {
  [$getBudget]() {
    return js_util.promiseToFuture(html$.BudgetState, this.getBudget());
  }
  [$getCost](operation) {
    return js_util.promiseToFuture(core.double, this.getCost(operation));
  }
  [$reserve](operation) {
    return js_util.promiseToFuture(core.bool, this.reserve(operation));
  }
};
dart.addTypeTests(html$._BudgetService);
dart.addTypeCaches(html$._BudgetService);
dart.setMethodSignature(html$._BudgetService, () => ({
  __proto__: dart.getMethods(html$._BudgetService.__proto__),
  [$getBudget]: dart.fnType(async.Future$(html$.BudgetState), []),
  [$getCost]: dart.fnType(async.Future$(core.double), [core.String]),
  [$reserve]: dart.fnType(async.Future$(core.bool), [core.String])
}));
dart.setLibraryUri(html$._BudgetService, L65);
dart.registerExtension("BudgetService", html$._BudgetService);
html$._Cache = class _Cache extends _interceptors.Interceptor {};
dart.addTypeTests(html$._Cache);
dart.addTypeCaches(html$._Cache);
dart.setLibraryUri(html$._Cache, L65);
dart.registerExtension("Cache", html$._Cache);
html$._CanvasPath = class _CanvasPath extends _interceptors.Interceptor {};
dart.addTypeTests(html$._CanvasPath);
dart.addTypeCaches(html$._CanvasPath);
dart.setLibraryUri(html$._CanvasPath, L65);
html$._Clipboard = class _Clipboard extends html$.EventTarget {
  [$read]() {
    return js_util.promiseToFuture(html$.DataTransfer, this.read());
  }
  [$readText]() {
    return js_util.promiseToFuture(core.String, this.readText());
  }
  [$write](data) {
    return js_util.promiseToFuture(dart.dynamic, this.write(data));
  }
  [$writeText](data) {
    return js_util.promiseToFuture(dart.dynamic, this.writeText(data));
  }
};
dart.addTypeTests(html$._Clipboard);
dart.addTypeCaches(html$._Clipboard);
dart.setMethodSignature(html$._Clipboard, () => ({
  __proto__: dart.getMethods(html$._Clipboard.__proto__),
  [$read]: dart.fnType(async.Future$(html$.DataTransfer), []),
  [$readText]: dart.fnType(async.Future$(core.String), []),
  [$write]: dart.fnType(async.Future, [html$.DataTransfer]),
  [$writeText]: dart.fnType(async.Future, [core.String])
}));
dart.setLibraryUri(html$._Clipboard, L65);
dart.registerExtension("Clipboard", html$._Clipboard);
const Interceptor_ListMixin$36$8 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$8.new = function() {
  Interceptor_ListMixin$36$8.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$8.prototype;
dart.applyMixin(Interceptor_ListMixin$36$8, collection.ListMixin$(html$.CssRule));
const Interceptor_ImmutableListMixin$36$8 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$8 {};
(Interceptor_ImmutableListMixin$36$8.new = function() {
  Interceptor_ImmutableListMixin$36$8.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$8.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$8, html$.ImmutableListMixin$(html$.CssRule));
html$._CssRuleList = class _CssRuleList extends Interceptor_ImmutableListMixin$36$8 {
  get [$length]() {
    return this.length;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this[index];
  }
  [$_set](index, value$) {
    let value = value$;
    html$.CssRule.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
};
html$._CssRuleList.prototype[dart.isList] = true;
dart.addTypeTests(html$._CssRuleList);
dart.addTypeCaches(html$._CssRuleList);
html$._CssRuleList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(html$.CssRule), core.List$(html$.CssRule)];
dart.setMethodSignature(html$._CssRuleList, () => ({
  __proto__: dart.getMethods(html$._CssRuleList.__proto__),
  [$_get]: dart.fnType(html$.CssRule, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [$item]: dart.fnType(html$.CssRule, [core.int])
}));
dart.setGetterSignature(html$._CssRuleList, () => ({
  __proto__: dart.getGetters(html$._CssRuleList.__proto__),
  [$length]: core.int
}));
dart.setSetterSignature(html$._CssRuleList, () => ({
  __proto__: dart.getSetters(html$._CssRuleList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$._CssRuleList, L65);
dart.registerExtension("CSSRuleList", html$._CssRuleList);
html$._DOMFileSystemSync = class _DOMFileSystemSync extends _interceptors.Interceptor {};
dart.addTypeTests(html$._DOMFileSystemSync);
dart.addTypeCaches(html$._DOMFileSystemSync);
dart.setLibraryUri(html$._DOMFileSystemSync, L65);
dart.registerExtension("DOMFileSystemSync", html$._DOMFileSystemSync);
html$._EntrySync = class _EntrySync extends _interceptors.Interceptor {};
dart.addTypeTests(html$._EntrySync);
dart.addTypeCaches(html$._EntrySync);
dart.setLibraryUri(html$._EntrySync, L65);
dart.registerExtension("EntrySync", html$._EntrySync);
html$._DirectoryEntrySync = class _DirectoryEntrySync extends html$._EntrySync {};
dart.addTypeTests(html$._DirectoryEntrySync);
dart.addTypeCaches(html$._DirectoryEntrySync);
dart.setLibraryUri(html$._DirectoryEntrySync, L65);
dart.registerExtension("DirectoryEntrySync", html$._DirectoryEntrySync);
html$._DirectoryReaderSync = class _DirectoryReaderSync extends _interceptors.Interceptor {};
dart.addTypeTests(html$._DirectoryReaderSync);
dart.addTypeCaches(html$._DirectoryReaderSync);
dart.setLibraryUri(html$._DirectoryReaderSync, L65);
dart.registerExtension("DirectoryReaderSync", html$._DirectoryReaderSync);
html$._DocumentType = class _DocumentType extends html$.Node {};
dart.addTypeTests(html$._DocumentType);
dart.addTypeCaches(html$._DocumentType);
html$._DocumentType[dart.implements] = () => [html$.ChildNode];
dart.setLibraryUri(html$._DocumentType, L65);
dart.registerExtension("DocumentType", html$._DocumentType);
html$._DomRect = class _DomRect extends html$.DomRectReadOnly {
  [$toString]() {
    return "Rectangle (" + dart.str(this.left) + ", " + dart.str(this.top) + ") " + dart.str(this.width) + " x " + dart.str(this.height);
  }
  [$_equals](other) {
    if (other == null) return false;
    return RectangleOfnumL().is(other) && this.left == other[$left] && this.top == other[$top] && this.width == other[$width] && this.height == other[$height];
  }
  get [$hashCode]() {
    return html$._JenkinsSmiHash.hash4(dart.hashCode(this.left), dart.hashCode(this.top), dart.hashCode(this.width), dart.hashCode(this.height));
  }
  [$intersection](other) {
    RectangleOfnumL().as(other);
    let x0 = math.max(core.num, this.left, other[$left]);
    let x1 = math.min(core.num, dart.notNull(this.left) + dart.notNull(this.width), dart.notNull(other[$left]) + dart.notNull(other[$width]));
    if (x0 <= x1) {
      let y0 = math.max(core.num, this.top, other[$top]);
      let y1 = math.min(core.num, dart.notNull(this.top) + dart.notNull(this.height), dart.notNull(other[$top]) + dart.notNull(other[$height]));
      if (y0 <= y1) {
        return new (RectangleOfnumL()).new(x0, y0, x1 - x0, y1 - y0);
      }
    }
    return null;
  }
  [$intersects](other) {
    return dart.notNull(this.left) <= dart.notNull(other[$left]) + dart.notNull(other[$width]) && dart.notNull(other[$left]) <= dart.notNull(this.left) + dart.notNull(this.width) && dart.notNull(this.top) <= dart.notNull(other[$top]) + dart.notNull(other[$height]) && dart.notNull(other[$top]) <= dart.notNull(this.top) + dart.notNull(this.height);
  }
  [$boundingBox](other) {
    RectangleOfnumL().as(other);
    let right = math.max(core.num, dart.notNull(this.left) + dart.notNull(this.width), dart.notNull(other[$left]) + dart.notNull(other[$width]));
    let bottom = math.max(core.num, dart.notNull(this.top) + dart.notNull(this.height), dart.notNull(other[$top]) + dart.notNull(other[$height]));
    let left = math.min(core.num, this.left, other[$left]);
    let top = math.min(core.num, this.top, other[$top]);
    return new (RectangleOfnumL()).new(left, top, right - left, bottom - top);
  }
  [$containsRectangle](another) {
    return dart.notNull(this.left) <= dart.notNull(another[$left]) && dart.notNull(this.left) + dart.notNull(this.width) >= dart.notNull(another[$left]) + dart.notNull(another[$width]) && dart.notNull(this.top) <= dart.notNull(another[$top]) && dart.notNull(this.top) + dart.notNull(this.height) >= dart.notNull(another[$top]) + dart.notNull(another[$height]);
  }
  [$containsPoint](another) {
    return dart.notNull(another.x) >= dart.notNull(this.left) && dart.notNull(another.x) <= dart.notNull(this.left) + dart.notNull(this.width) && dart.notNull(another.y) >= dart.notNull(this.top) && dart.notNull(another.y) <= dart.notNull(this.top) + dart.notNull(this.height);
  }
  get [$topLeft]() {
    return new (PointOfnumL()).new(this.left, this.top);
  }
  get [$topRight]() {
    return new (PointOfnumL()).new(dart.notNull(this.left) + dart.notNull(this.width), this.top);
  }
  get [$bottomRight]() {
    return new (PointOfnumL()).new(dart.notNull(this.left) + dart.notNull(this.width), dart.notNull(this.top) + dart.notNull(this.height));
  }
  get [$bottomLeft]() {
    return new (PointOfnumL()).new(this.left, dart.notNull(this.top) + dart.notNull(this.height));
  }
  static new(x = null, y = null, width = null, height = null) {
    if (height != null) {
      return html$._DomRect._create_1(x, y, width, height);
    }
    if (width != null) {
      return html$._DomRect._create_2(x, y, width);
    }
    if (y != null) {
      return html$._DomRect._create_3(x, y);
    }
    if (x != null) {
      return html$._DomRect._create_4(x);
    }
    return html$._DomRect._create_5();
  }
  static _create_1(x, y, width, height) {
    return new DOMRect(x, y, width, height);
  }
  static _create_2(x, y, width) {
    return new DOMRect(x, y, width);
  }
  static _create_3(x, y) {
    return new DOMRect(x, y);
  }
  static _create_4(x) {
    return new DOMRect(x);
  }
  static _create_5() {
    return new DOMRect();
  }
  get [$height]() {
    return this.height;
  }
  set [$height](value) {
    this.height = value;
  }
  get [$width]() {
    return this.width;
  }
  set [$width](value) {
    this.width = value;
  }
  get [$x]() {
    return this.x;
  }
  set [$x](value) {
    this.x = value;
  }
  get [$y]() {
    return this.y;
  }
  set [$y](value) {
    this.y = value;
  }
};
dart.addTypeTests(html$._DomRect);
dart.addTypeCaches(html$._DomRect);
html$._DomRect[dart.implements] = () => [math.Rectangle$(core.num)];
dart.setSetterSignature(html$._DomRect, () => ({
  __proto__: dart.getSetters(html$._DomRect.__proto__),
  [$height]: core.num,
  [$width]: core.num,
  [$x]: core.num,
  [$y]: core.num
}));
dart.setLibraryUri(html$._DomRect, L65);
dart.registerExtension("ClientRect", html$._DomRect);
dart.registerExtension("DOMRect", html$._DomRect);
html$._JenkinsSmiHash = class _JenkinsSmiHash extends core.Object {
  static combine(hash, value) {
    hash = 536870911 & dart.notNull(hash) + dart.notNull(value);
    hash = 536870911 & dart.notNull(hash) + ((524287 & dart.notNull(hash)) << 10);
    return (dart.notNull(hash) ^ hash[$rightShift](6)) >>> 0;
  }
  static finish(hash) {
    hash = 536870911 & dart.notNull(hash) + ((67108863 & dart.notNull(hash)) << 3);
    hash = (dart.notNull(hash) ^ hash[$rightShift](11)) >>> 0;
    return 536870911 & dart.notNull(hash) + ((16383 & dart.notNull(hash)) << 15);
  }
  static hash2(a, b) {
    return html$._JenkinsSmiHash.finish(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(0, core.int.as(a)), core.int.as(b)));
  }
  static hash4(a, b, c, d) {
    return html$._JenkinsSmiHash.finish(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(0, core.int.as(a)), core.int.as(b)), core.int.as(c)), core.int.as(d)));
  }
};
(html$._JenkinsSmiHash.new = function() {
  ;
}).prototype = html$._JenkinsSmiHash.prototype;
dart.addTypeTests(html$._JenkinsSmiHash);
dart.addTypeCaches(html$._JenkinsSmiHash);
dart.setLibraryUri(html$._JenkinsSmiHash, L65);
html$._FileEntrySync = class _FileEntrySync extends html$._EntrySync {};
dart.addTypeTests(html$._FileEntrySync);
dart.addTypeCaches(html$._FileEntrySync);
dart.setLibraryUri(html$._FileEntrySync, L65);
dart.registerExtension("FileEntrySync", html$._FileEntrySync);
html$._FileReaderSync = class _FileReaderSync extends _interceptors.Interceptor {
  static new() {
    return html$._FileReaderSync._create_1();
  }
  static _create_1() {
    return new FileReaderSync();
  }
};
dart.addTypeTests(html$._FileReaderSync);
dart.addTypeCaches(html$._FileReaderSync);
dart.setLibraryUri(html$._FileReaderSync, L65);
dart.registerExtension("FileReaderSync", html$._FileReaderSync);
html$._FileWriterSync = class _FileWriterSync extends _interceptors.Interceptor {};
dart.addTypeTests(html$._FileWriterSync);
dart.addTypeCaches(html$._FileWriterSync);
dart.setLibraryUri(html$._FileWriterSync, L65);
dart.registerExtension("FileWriterSync", html$._FileWriterSync);
const Interceptor_ListMixin$36$9 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$9.new = function() {
  Interceptor_ListMixin$36$9.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$9.prototype;
dart.applyMixin(Interceptor_ListMixin$36$9, collection.ListMixin$(html$.Gamepad));
const Interceptor_ImmutableListMixin$36$9 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$9 {};
(Interceptor_ImmutableListMixin$36$9.new = function() {
  Interceptor_ImmutableListMixin$36$9.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$9.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$9, html$.ImmutableListMixin$(html$.Gamepad));
html$._GamepadList = class _GamepadList extends Interceptor_ImmutableListMixin$36$9 {
  get [$length]() {
    return this.length;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this[index];
  }
  [$_set](index, value$) {
    let value = value$;
    html$.Gamepad.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
};
html$._GamepadList.prototype[dart.isList] = true;
dart.addTypeTests(html$._GamepadList);
dart.addTypeCaches(html$._GamepadList);
html$._GamepadList[dart.implements] = () => [core.List$(html$.Gamepad), _js_helper.JavaScriptIndexingBehavior$(html$.Gamepad)];
dart.setMethodSignature(html$._GamepadList, () => ({
  __proto__: dart.getMethods(html$._GamepadList.__proto__),
  [$_get]: dart.fnType(html$.Gamepad, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [$item]: dart.fnType(html$.Gamepad, [core.int])
}));
dart.setGetterSignature(html$._GamepadList, () => ({
  __proto__: dart.getGetters(html$._GamepadList.__proto__),
  [$length]: core.int
}));
dart.setSetterSignature(html$._GamepadList, () => ({
  __proto__: dart.getSetters(html$._GamepadList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$._GamepadList, L65);
dart.registerExtension("GamepadList", html$._GamepadList);
html$._HTMLAllCollection = class _HTMLAllCollection extends _interceptors.Interceptor {
  [_item](...args) {
    return this.item.apply(this, args);
  }
};
dart.addTypeTests(html$._HTMLAllCollection);
dart.addTypeCaches(html$._HTMLAllCollection);
dart.setMethodSignature(html$._HTMLAllCollection, () => ({
  __proto__: dart.getMethods(html$._HTMLAllCollection.__proto__),
  [_item]: dart.fnType(html$.Element, [core.int])
}));
dart.setLibraryUri(html$._HTMLAllCollection, L65);
dart.registerExtension("HTMLAllCollection", html$._HTMLAllCollection);
html$._HTMLDirectoryElement = class _HTMLDirectoryElement extends html$.HtmlElement {};
(html$._HTMLDirectoryElement.created = function() {
  html$._HTMLDirectoryElement.__proto__.created.call(this);
  ;
}).prototype = html$._HTMLDirectoryElement.prototype;
dart.addTypeTests(html$._HTMLDirectoryElement);
dart.addTypeCaches(html$._HTMLDirectoryElement);
dart.setLibraryUri(html$._HTMLDirectoryElement, L65);
dart.registerExtension("HTMLDirectoryElement", html$._HTMLDirectoryElement);
html$._HTMLFontElement = class _HTMLFontElement extends html$.HtmlElement {};
(html$._HTMLFontElement.created = function() {
  html$._HTMLFontElement.__proto__.created.call(this);
  ;
}).prototype = html$._HTMLFontElement.prototype;
dart.addTypeTests(html$._HTMLFontElement);
dart.addTypeCaches(html$._HTMLFontElement);
dart.setLibraryUri(html$._HTMLFontElement, L65);
dart.registerExtension("HTMLFontElement", html$._HTMLFontElement);
html$._HTMLFrameElement = class _HTMLFrameElement extends html$.HtmlElement {};
(html$._HTMLFrameElement.created = function() {
  html$._HTMLFrameElement.__proto__.created.call(this);
  ;
}).prototype = html$._HTMLFrameElement.prototype;
dart.addTypeTests(html$._HTMLFrameElement);
dart.addTypeCaches(html$._HTMLFrameElement);
dart.setLibraryUri(html$._HTMLFrameElement, L65);
dart.registerExtension("HTMLFrameElement", html$._HTMLFrameElement);
html$._HTMLFrameSetElement = class _HTMLFrameSetElement extends html$.HtmlElement {};
(html$._HTMLFrameSetElement.created = function() {
  html$._HTMLFrameSetElement.__proto__.created.call(this);
  ;
}).prototype = html$._HTMLFrameSetElement.prototype;
dart.addTypeTests(html$._HTMLFrameSetElement);
dart.addTypeCaches(html$._HTMLFrameSetElement);
html$._HTMLFrameSetElement[dart.implements] = () => [html$.WindowEventHandlers];
dart.setLibraryUri(html$._HTMLFrameSetElement, L65);
dart.registerExtension("HTMLFrameSetElement", html$._HTMLFrameSetElement);
html$._HTMLMarqueeElement = class _HTMLMarqueeElement extends html$.HtmlElement {};
(html$._HTMLMarqueeElement.created = function() {
  html$._HTMLMarqueeElement.__proto__.created.call(this);
  ;
}).prototype = html$._HTMLMarqueeElement.prototype;
dart.addTypeTests(html$._HTMLMarqueeElement);
dart.addTypeCaches(html$._HTMLMarqueeElement);
dart.setLibraryUri(html$._HTMLMarqueeElement, L65);
dart.registerExtension("HTMLMarqueeElement", html$._HTMLMarqueeElement);
html$._Mojo = class _Mojo extends _interceptors.Interceptor {};
dart.addTypeTests(html$._Mojo);
dart.addTypeCaches(html$._Mojo);
dart.setLibraryUri(html$._Mojo, L65);
dart.registerExtension("Mojo", html$._Mojo);
html$._MojoHandle = class _MojoHandle extends _interceptors.Interceptor {};
dart.addTypeTests(html$._MojoHandle);
dart.addTypeCaches(html$._MojoHandle);
dart.setLibraryUri(html$._MojoHandle, L65);
dart.registerExtension("MojoHandle", html$._MojoHandle);
html$._MojoInterfaceInterceptor = class _MojoInterfaceInterceptor extends html$.EventTarget {
  static new(interfaceName, scope = null) {
    if (scope != null) {
      return html$._MojoInterfaceInterceptor._create_1(interfaceName, scope);
    }
    return html$._MojoInterfaceInterceptor._create_2(interfaceName);
  }
  static _create_1(interfaceName, scope) {
    return new MojoInterfaceInterceptor(interfaceName, scope);
  }
  static _create_2(interfaceName) {
    return new MojoInterfaceInterceptor(interfaceName);
  }
};
dart.addTypeTests(html$._MojoInterfaceInterceptor);
dart.addTypeCaches(html$._MojoInterfaceInterceptor);
dart.setLibraryUri(html$._MojoInterfaceInterceptor, L65);
dart.registerExtension("MojoInterfaceInterceptor", html$._MojoInterfaceInterceptor);
html$._MojoInterfaceRequestEvent = class _MojoInterfaceRequestEvent extends html$.Event {
  static new(type, eventInitDict = null) {
    if (eventInitDict != null) {
      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
      return html$._MojoInterfaceRequestEvent._create_1(type, eventInitDict_1);
    }
    return html$._MojoInterfaceRequestEvent._create_2(type);
  }
  static _create_1(type, eventInitDict) {
    return new MojoInterfaceRequestEvent(type, eventInitDict);
  }
  static _create_2(type) {
    return new MojoInterfaceRequestEvent(type);
  }
};
dart.addTypeTests(html$._MojoInterfaceRequestEvent);
dart.addTypeCaches(html$._MojoInterfaceRequestEvent);
dart.setLibraryUri(html$._MojoInterfaceRequestEvent, L65);
dart.registerExtension("MojoInterfaceRequestEvent", html$._MojoInterfaceRequestEvent);
html$._MojoWatcher = class _MojoWatcher extends _interceptors.Interceptor {};
dart.addTypeTests(html$._MojoWatcher);
dart.addTypeCaches(html$._MojoWatcher);
dart.setLibraryUri(html$._MojoWatcher, L65);
dart.registerExtension("MojoWatcher", html$._MojoWatcher);
html$._NFC = class _NFC extends _interceptors.Interceptor {};
dart.addTypeTests(html$._NFC);
dart.addTypeCaches(html$._NFC);
dart.setLibraryUri(html$._NFC, L65);
dart.registerExtension("NFC", html$._NFC);
const Interceptor_ListMixin$36$10 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$10.new = function() {
  Interceptor_ListMixin$36$10.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$10.prototype;
dart.applyMixin(Interceptor_ListMixin$36$10, collection.ListMixin$(html$.Node));
const Interceptor_ImmutableListMixin$36$10 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$10 {};
(Interceptor_ImmutableListMixin$36$10.new = function() {
  Interceptor_ImmutableListMixin$36$10.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$10.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$10, html$.ImmutableListMixin$(html$.Node));
html$._NamedNodeMap = class _NamedNodeMap extends Interceptor_ImmutableListMixin$36$10 {
  get [$length]() {
    return this.length;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this[index];
  }
  [$_set](index, value$) {
    let value = value$;
    html$.Node.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [$getNamedItem](...args) {
    return this.getNamedItem.apply(this, args);
  }
  [$getNamedItemNS](...args) {
    return this.getNamedItemNS.apply(this, args);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
  [$removeNamedItem](...args) {
    return this.removeNamedItem.apply(this, args);
  }
  [$removeNamedItemNS](...args) {
    return this.removeNamedItemNS.apply(this, args);
  }
  [$setNamedItem](...args) {
    return this.setNamedItem.apply(this, args);
  }
  [$setNamedItemNS](...args) {
    return this.setNamedItemNS.apply(this, args);
  }
};
html$._NamedNodeMap.prototype[dart.isList] = true;
dart.addTypeTests(html$._NamedNodeMap);
dart.addTypeCaches(html$._NamedNodeMap);
html$._NamedNodeMap[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(html$.Node), core.List$(html$.Node)];
dart.setMethodSignature(html$._NamedNodeMap, () => ({
  __proto__: dart.getMethods(html$._NamedNodeMap.__proto__),
  [$_get]: dart.fnType(html$.Node, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [$getNamedItem]: dart.fnType(html$._Attr, [core.String]),
  [$getNamedItemNS]: dart.fnType(html$._Attr, [core.String, core.String]),
  [$item]: dart.fnType(html$._Attr, [core.int]),
  [$removeNamedItem]: dart.fnType(html$._Attr, [core.String]),
  [$removeNamedItemNS]: dart.fnType(html$._Attr, [core.String, core.String]),
  [$setNamedItem]: dart.fnType(html$._Attr, [html$._Attr]),
  [$setNamedItemNS]: dart.fnType(html$._Attr, [html$._Attr])
}));
dart.setGetterSignature(html$._NamedNodeMap, () => ({
  __proto__: dart.getGetters(html$._NamedNodeMap.__proto__),
  [$length]: core.int
}));
dart.setSetterSignature(html$._NamedNodeMap, () => ({
  __proto__: dart.getSetters(html$._NamedNodeMap.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$._NamedNodeMap, L65);
dart.registerExtension("NamedNodeMap", html$._NamedNodeMap);
dart.registerExtension("MozNamedAttrMap", html$._NamedNodeMap);
html$._PagePopupController = class _PagePopupController extends _interceptors.Interceptor {};
dart.addTypeTests(html$._PagePopupController);
dart.addTypeCaches(html$._PagePopupController);
dart.setLibraryUri(html$._PagePopupController, L65);
dart.registerExtension("PagePopupController", html$._PagePopupController);
html$._Report = class _Report extends _interceptors.Interceptor {
  get [$body]() {
    return this.body;
  }
  get [$type]() {
    return this.type;
  }
  get [$url]() {
    return this.url;
  }
};
dart.addTypeTests(html$._Report);
dart.addTypeCaches(html$._Report);
dart.setGetterSignature(html$._Report, () => ({
  __proto__: dart.getGetters(html$._Report.__proto__),
  [$body]: html$.ReportBody,
  [$type]: core.String,
  [$url]: core.String
}));
dart.setLibraryUri(html$._Report, L65);
dart.registerExtension("Report", html$._Report);
html$._Request = class _Request extends html$.Body {
  static new(input, requestInitDict = null) {
    if (requestInitDict != null) {
      let requestInitDict_1 = html_common.convertDartToNative_Dictionary(requestInitDict);
      return html$._Request._create_1(input, requestInitDict_1);
    }
    return html$._Request._create_2(input);
  }
  static _create_1(input, requestInitDict) {
    return new Request(input, requestInitDict);
  }
  static _create_2(input) {
    return new Request(input);
  }
  get [$cache]() {
    return this.cache;
  }
  get [$credentials]() {
    return this.credentials;
  }
  get [$headers]() {
    return this.headers;
  }
  get [$integrity]() {
    return this.integrity;
  }
  get [$mode]() {
    return this.mode;
  }
  get [$redirect]() {
    return this.redirect;
  }
  get [$referrer]() {
    return this.referrer;
  }
  get [$referrerPolicy]() {
    return this.referrerPolicy;
  }
  get [$url]() {
    return this.url;
  }
  [$clone](...args) {
    return this.clone.apply(this, args);
  }
};
dart.addTypeTests(html$._Request);
dart.addTypeCaches(html$._Request);
dart.setMethodSignature(html$._Request, () => ({
  __proto__: dart.getMethods(html$._Request.__proto__),
  [$clone]: dart.fnType(html$._Request, [])
}));
dart.setGetterSignature(html$._Request, () => ({
  __proto__: dart.getGetters(html$._Request.__proto__),
  [$cache]: core.String,
  [$credentials]: core.String,
  [$headers]: html$.Headers,
  [$integrity]: core.String,
  [$mode]: core.String,
  [$redirect]: core.String,
  [$referrer]: core.String,
  [$referrerPolicy]: core.String,
  [$url]: core.String
}));
dart.setLibraryUri(html$._Request, L65);
dart.registerExtension("Request", html$._Request);
html$._ResourceProgressEvent = class _ResourceProgressEvent extends html$.ProgressEvent {};
dart.addTypeTests(html$._ResourceProgressEvent);
dart.addTypeCaches(html$._ResourceProgressEvent);
dart.setLibraryUri(html$._ResourceProgressEvent, L65);
dart.registerExtension("ResourceProgressEvent", html$._ResourceProgressEvent);
html$._Response = class _Response extends html$.Body {
  static new(body = null, init = null) {
    if (init != null) {
      let init_1 = html_common.convertDartToNative_Dictionary(init);
      return html$._Response._create_1(body, init_1);
    }
    if (body != null) {
      return html$._Response._create_2(body);
    }
    return html$._Response._create_3();
  }
  static _create_1(body, init) {
    return new Response(body, init);
  }
  static _create_2(body) {
    return new Response(body);
  }
  static _create_3() {
    return new Response();
  }
};
dart.addTypeTests(html$._Response);
dart.addTypeCaches(html$._Response);
dart.setLibraryUri(html$._Response, L65);
dart.registerExtension("Response", html$._Response);
const Interceptor_ListMixin$36$11 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$11.new = function() {
  Interceptor_ListMixin$36$11.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$11.prototype;
dart.applyMixin(Interceptor_ListMixin$36$11, collection.ListMixin$(html$.SpeechRecognitionResult));
const Interceptor_ImmutableListMixin$36$11 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$11 {};
(Interceptor_ImmutableListMixin$36$11.new = function() {
  Interceptor_ImmutableListMixin$36$11.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$11.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$11, html$.ImmutableListMixin$(html$.SpeechRecognitionResult));
html$._SpeechRecognitionResultList = class _SpeechRecognitionResultList extends Interceptor_ImmutableListMixin$36$11 {
  get [$length]() {
    return this.length;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this[index];
  }
  [$_set](index, value$) {
    let value = value$;
    html$.SpeechRecognitionResult.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
};
html$._SpeechRecognitionResultList.prototype[dart.isList] = true;
dart.addTypeTests(html$._SpeechRecognitionResultList);
dart.addTypeCaches(html$._SpeechRecognitionResultList);
html$._SpeechRecognitionResultList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior$(html$.SpeechRecognitionResult), core.List$(html$.SpeechRecognitionResult)];
dart.setMethodSignature(html$._SpeechRecognitionResultList, () => ({
  __proto__: dart.getMethods(html$._SpeechRecognitionResultList.__proto__),
  [$_get]: dart.fnType(html$.SpeechRecognitionResult, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [$item]: dart.fnType(html$.SpeechRecognitionResult, [core.int])
}));
dart.setGetterSignature(html$._SpeechRecognitionResultList, () => ({
  __proto__: dart.getGetters(html$._SpeechRecognitionResultList.__proto__),
  [$length]: core.int
}));
dart.setSetterSignature(html$._SpeechRecognitionResultList, () => ({
  __proto__: dart.getSetters(html$._SpeechRecognitionResultList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$._SpeechRecognitionResultList, L65);
dart.registerExtension("SpeechRecognitionResultList", html$._SpeechRecognitionResultList);
const Interceptor_ListMixin$36$12 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$12.new = function() {
  Interceptor_ListMixin$36$12.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$12.prototype;
dart.applyMixin(Interceptor_ListMixin$36$12, collection.ListMixin$(html$.StyleSheet));
const Interceptor_ImmutableListMixin$36$12 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$12 {};
(Interceptor_ImmutableListMixin$36$12.new = function() {
  Interceptor_ImmutableListMixin$36$12.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$12.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$12, html$.ImmutableListMixin$(html$.StyleSheet));
html$._StyleSheetList = class _StyleSheetList extends Interceptor_ImmutableListMixin$36$12 {
  get [$length]() {
    return this.length;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this[index];
  }
  [$_set](index, value$) {
    let value = value$;
    html$.StyleSheet.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [__getter__](...args) {
    return this.__getter__.apply(this, args);
  }
  [$item](...args) {
    return this.item.apply(this, args);
  }
};
html$._StyleSheetList.prototype[dart.isList] = true;
dart.addTypeTests(html$._StyleSheetList);
dart.addTypeCaches(html$._StyleSheetList);
html$._StyleSheetList[dart.implements] = () => [core.List$(html$.StyleSheet), _js_helper.JavaScriptIndexingBehavior$(html$.StyleSheet)];
dart.setMethodSignature(html$._StyleSheetList, () => ({
  __proto__: dart.getMethods(html$._StyleSheetList.__proto__),
  [$_get]: dart.fnType(html$.StyleSheet, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [__getter__]: dart.fnType(html$.CssStyleSheet, [core.String]),
  [$item]: dart.fnType(html$.StyleSheet, [core.int])
}));
dart.setGetterSignature(html$._StyleSheetList, () => ({
  __proto__: dart.getGetters(html$._StyleSheetList.__proto__),
  [$length]: core.int
}));
dart.setSetterSignature(html$._StyleSheetList, () => ({
  __proto__: dart.getSetters(html$._StyleSheetList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(html$._StyleSheetList, L65);
dart.registerExtension("StyleSheetList", html$._StyleSheetList);
html$._SubtleCrypto = class _SubtleCrypto extends _interceptors.Interceptor {};
dart.addTypeTests(html$._SubtleCrypto);
dart.addTypeCaches(html$._SubtleCrypto);
dart.setLibraryUri(html$._SubtleCrypto, L65);
dart.registerExtension("SubtleCrypto", html$._SubtleCrypto);
html$._USB = class _USB extends html$.EventTarget {};
dart.addTypeTests(html$._USB);
dart.addTypeCaches(html$._USB);
dart.setLibraryUri(html$._USB, L65);
dart.registerExtension("USB", html$._USB);
html$._USBAlternateInterface = class _USBAlternateInterface extends _interceptors.Interceptor {
  static new(deviceInterface, alternateSetting) {
    return html$._USBAlternateInterface._create_1(deviceInterface, alternateSetting);
  }
  static _create_1(deviceInterface, alternateSetting) {
    return new USBAlternateInterface(deviceInterface, alternateSetting);
  }
};
dart.addTypeTests(html$._USBAlternateInterface);
dart.addTypeCaches(html$._USBAlternateInterface);
dart.setLibraryUri(html$._USBAlternateInterface, L65);
dart.registerExtension("USBAlternateInterface", html$._USBAlternateInterface);
html$._USBConfiguration = class _USBConfiguration extends _interceptors.Interceptor {
  static new(device, configurationValue) {
    return html$._USBConfiguration._create_1(device, configurationValue);
  }
  static _create_1(device, configurationValue) {
    return new USBConfiguration(device, configurationValue);
  }
};
dart.addTypeTests(html$._USBConfiguration);
dart.addTypeCaches(html$._USBConfiguration);
dart.setLibraryUri(html$._USBConfiguration, L65);
dart.registerExtension("USBConfiguration", html$._USBConfiguration);
html$._USBConnectionEvent = class _USBConnectionEvent extends html$.Event {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return html$._USBConnectionEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new USBConnectionEvent(type, eventInitDict);
  }
};
dart.addTypeTests(html$._USBConnectionEvent);
dart.addTypeCaches(html$._USBConnectionEvent);
dart.setLibraryUri(html$._USBConnectionEvent, L65);
dart.registerExtension("USBConnectionEvent", html$._USBConnectionEvent);
html$._USBDevice = class _USBDevice extends _interceptors.Interceptor {};
dart.addTypeTests(html$._USBDevice);
dart.addTypeCaches(html$._USBDevice);
dart.setLibraryUri(html$._USBDevice, L65);
dart.registerExtension("USBDevice", html$._USBDevice);
html$._USBEndpoint = class _USBEndpoint extends _interceptors.Interceptor {
  static new(alternate, endpointNumber, direction) {
    return html$._USBEndpoint._create_1(alternate, endpointNumber, direction);
  }
  static _create_1(alternate, endpointNumber, direction) {
    return new USBEndpoint(alternate, endpointNumber, direction);
  }
};
dart.addTypeTests(html$._USBEndpoint);
dart.addTypeCaches(html$._USBEndpoint);
dart.setLibraryUri(html$._USBEndpoint, L65);
dart.registerExtension("USBEndpoint", html$._USBEndpoint);
html$._USBInTransferResult = class _USBInTransferResult extends _interceptors.Interceptor {
  static new(status, data = null) {
    if (data != null) {
      return html$._USBInTransferResult._create_1(status, data);
    }
    return html$._USBInTransferResult._create_2(status);
  }
  static _create_1(status, data) {
    return new USBInTransferResult(status, data);
  }
  static _create_2(status) {
    return new USBInTransferResult(status);
  }
};
dart.addTypeTests(html$._USBInTransferResult);
dart.addTypeCaches(html$._USBInTransferResult);
dart.setLibraryUri(html$._USBInTransferResult, L65);
dart.registerExtension("USBInTransferResult", html$._USBInTransferResult);
html$._USBInterface = class _USBInterface extends _interceptors.Interceptor {
  static new(configuration, interfaceNumber) {
    return html$._USBInterface._create_1(configuration, interfaceNumber);
  }
  static _create_1(configuration, interfaceNumber) {
    return new USBInterface(configuration, interfaceNumber);
  }
};
dart.addTypeTests(html$._USBInterface);
dart.addTypeCaches(html$._USBInterface);
dart.setLibraryUri(html$._USBInterface, L65);
dart.registerExtension("USBInterface", html$._USBInterface);
html$._USBIsochronousInTransferPacket = class _USBIsochronousInTransferPacket extends _interceptors.Interceptor {
  static new(status, data = null) {
    if (data != null) {
      return html$._USBIsochronousInTransferPacket._create_1(status, data);
    }
    return html$._USBIsochronousInTransferPacket._create_2(status);
  }
  static _create_1(status, data) {
    return new USBIsochronousInTransferPacket(status, data);
  }
  static _create_2(status) {
    return new USBIsochronousInTransferPacket(status);
  }
};
dart.addTypeTests(html$._USBIsochronousInTransferPacket);
dart.addTypeCaches(html$._USBIsochronousInTransferPacket);
dart.setLibraryUri(html$._USBIsochronousInTransferPacket, L65);
dart.registerExtension("USBIsochronousInTransferPacket", html$._USBIsochronousInTransferPacket);
html$._USBIsochronousInTransferResult = class _USBIsochronousInTransferResult extends _interceptors.Interceptor {
  static new(packets, data = null) {
    if (data != null) {
      return html$._USBIsochronousInTransferResult._create_1(packets, data);
    }
    return html$._USBIsochronousInTransferResult._create_2(packets);
  }
  static _create_1(packets, data) {
    return new USBIsochronousInTransferResult(packets, data);
  }
  static _create_2(packets) {
    return new USBIsochronousInTransferResult(packets);
  }
};
dart.addTypeTests(html$._USBIsochronousInTransferResult);
dart.addTypeCaches(html$._USBIsochronousInTransferResult);
dart.setLibraryUri(html$._USBIsochronousInTransferResult, L65);
dart.registerExtension("USBIsochronousInTransferResult", html$._USBIsochronousInTransferResult);
html$._USBIsochronousOutTransferPacket = class _USBIsochronousOutTransferPacket extends _interceptors.Interceptor {
  static new(status, bytesWritten = null) {
    if (bytesWritten != null) {
      return html$._USBIsochronousOutTransferPacket._create_1(status, bytesWritten);
    }
    return html$._USBIsochronousOutTransferPacket._create_2(status);
  }
  static _create_1(status, bytesWritten) {
    return new USBIsochronousOutTransferPacket(status, bytesWritten);
  }
  static _create_2(status) {
    return new USBIsochronousOutTransferPacket(status);
  }
};
dart.addTypeTests(html$._USBIsochronousOutTransferPacket);
dart.addTypeCaches(html$._USBIsochronousOutTransferPacket);
dart.setLibraryUri(html$._USBIsochronousOutTransferPacket, L65);
dart.registerExtension("USBIsochronousOutTransferPacket", html$._USBIsochronousOutTransferPacket);
html$._USBIsochronousOutTransferResult = class _USBIsochronousOutTransferResult extends _interceptors.Interceptor {
  static new(packets) {
    return html$._USBIsochronousOutTransferResult._create_1(packets);
  }
  static _create_1(packets) {
    return new USBIsochronousOutTransferResult(packets);
  }
};
dart.addTypeTests(html$._USBIsochronousOutTransferResult);
dart.addTypeCaches(html$._USBIsochronousOutTransferResult);
dart.setLibraryUri(html$._USBIsochronousOutTransferResult, L65);
dart.registerExtension("USBIsochronousOutTransferResult", html$._USBIsochronousOutTransferResult);
html$._USBOutTransferResult = class _USBOutTransferResult extends _interceptors.Interceptor {
  static new(status, bytesWritten = null) {
    if (bytesWritten != null) {
      return html$._USBOutTransferResult._create_1(status, bytesWritten);
    }
    return html$._USBOutTransferResult._create_2(status);
  }
  static _create_1(status, bytesWritten) {
    return new USBOutTransferResult(status, bytesWritten);
  }
  static _create_2(status) {
    return new USBOutTransferResult(status);
  }
};
dart.addTypeTests(html$._USBOutTransferResult);
dart.addTypeCaches(html$._USBOutTransferResult);
dart.setLibraryUri(html$._USBOutTransferResult, L65);
dart.registerExtension("USBOutTransferResult", html$._USBOutTransferResult);
html$._WindowTimers = class _WindowTimers extends _interceptors.Interceptor {};
dart.addTypeTests(html$._WindowTimers);
dart.addTypeCaches(html$._WindowTimers);
dart.setLibraryUri(html$._WindowTimers, L65);
html$._WorkerLocation = class _WorkerLocation extends _interceptors.Interceptor {};
dart.addTypeTests(html$._WorkerLocation);
dart.addTypeCaches(html$._WorkerLocation);
html$._WorkerLocation[dart.implements] = () => [html$.UrlUtilsReadOnly];
dart.setLibraryUri(html$._WorkerLocation, L65);
dart.registerExtension("WorkerLocation", html$._WorkerLocation);
html$._WorkerNavigator = class _WorkerNavigator extends html$.NavigatorConcurrentHardware {};
dart.addTypeTests(html$._WorkerNavigator);
dart.addTypeCaches(html$._WorkerNavigator);
html$._WorkerNavigator[dart.implements] = () => [html$.NavigatorOnLine, html$.NavigatorID];
dart.setLibraryUri(html$._WorkerNavigator, L65);
dart.registerExtension("WorkerNavigator", html$._WorkerNavigator);
html$._Worklet = class _Worklet extends _interceptors.Interceptor {};
dart.addTypeTests(html$._Worklet);
dart.addTypeCaches(html$._Worklet);
dart.setLibraryUri(html$._Worklet, L65);
dart.registerExtension("Worklet", html$._Worklet);
var _matches = dart.privateName(html$, "_matches");
html$._AttributeMap = class _AttributeMap extends collection.MapBase$(core.String, core.String) {
  addAll(other) {
    MapOfStringL$StringL().as(other);
    other[$forEach](dart.fn((k, v) => {
      this[$_set](k, v);
    }, StringLAndStringLToNullN()));
  }
  cast(K, V) {
    return core.Map.castFrom(core.String, core.String, K, V, this);
  }
  containsValue(value) {
    for (let v of this.values) {
      if (dart.equals(value, v)) {
        return true;
      }
    }
    return false;
  }
  putIfAbsent(key, ifAbsent) {
    core.String.as(key);
    VoidToLStringL().as(ifAbsent);
    if (!dart.test(this[$containsKey](key))) {
      this[$_set](key, ifAbsent());
    }
    return this[$_get](key);
  }
  clear() {
    for (let key of this.keys) {
      this[$remove](key);
    }
  }
  forEach(f) {
    for (let key of this.keys) {
      let value = this[$_get](key);
      f(key, value);
    }
  }
  get keys() {
    let attributes = this[_element$][_attributes$];
    let keys = JSArrayOfStringL().of([]);
    for (let i = 0, len = attributes[$length]; i < dart.notNull(len); i = i + 1) {
      let attr = html$._Attr.as(attributes[$_get](i));
      if (dart.test(this[_matches](attr))) {
        keys[$add](attr.name);
      }
    }
    return keys;
  }
  get values() {
    let attributes = this[_element$][_attributes$];
    let values = JSArrayOfStringL().of([]);
    for (let i = 0, len = attributes[$length]; i < dart.notNull(len); i = i + 1) {
      let attr = html$._Attr.as(attributes[$_get](i));
      if (dart.test(this[_matches](attr))) {
        values[$add](attr.value);
      }
    }
    return values;
  }
  get isEmpty() {
    return this[$length] === 0;
  }
  get isNotEmpty() {
    return !dart.test(this.isEmpty);
  }
};
(html$._AttributeMap.new = function(_element) {
  this[_element$] = _element;
  ;
}).prototype = html$._AttributeMap.prototype;
dart.addTypeTests(html$._AttributeMap);
dart.addTypeCaches(html$._AttributeMap);
dart.setMethodSignature(html$._AttributeMap, () => ({
  __proto__: dart.getMethods(html$._AttributeMap.__proto__),
  cast: dart.gFnType((K, V) => [core.Map$(K, V), []]),
  [$cast]: dart.gFnType((K, V) => [core.Map$(K, V), []]),
  clear: dart.fnType(dart.void, []),
  [$clear]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(html$._AttributeMap, () => ({
  __proto__: dart.getGetters(html$._AttributeMap.__proto__),
  keys: core.Iterable$(core.String),
  [$keys]: core.Iterable$(core.String)
}));
dart.setLibraryUri(html$._AttributeMap, L65);
dart.setFieldSignature(html$._AttributeMap, () => ({
  __proto__: dart.getFields(html$._AttributeMap.__proto__),
  [_element$]: dart.finalFieldType(html$.Element)
}));
dart.defineExtensionMethods(html$._AttributeMap, [
  'addAll',
  'cast',
  'containsValue',
  'putIfAbsent',
  'clear',
  'forEach'
]);
dart.defineExtensionAccessors(html$._AttributeMap, ['keys', 'values', 'isEmpty', 'isNotEmpty']);
html$._ElementAttributeMap = class _ElementAttributeMap extends html$._AttributeMap {
  containsKey(key) {
    return this[_element$][_hasAttribute](core.String.as(key));
  }
  _get(key) {
    return this[_element$][$getAttribute](core.String.as(key));
  }
  _set(key, value$) {
    let value = value$;
    core.String.as(key);
    core.String.as(value);
    this[_element$][$setAttribute](key, value);
    return value$;
  }
  remove(key) {
    return typeof key == 'string' ? html$._ElementAttributeMap._remove(this[_element$], key) : null;
  }
  get length() {
    return this.keys[$length];
  }
  [_matches](node) {
    return node[_namespaceUri] == null;
  }
  static _remove(element, key) {
    let value = element.getAttribute(key);
    element.removeAttribute(key);
    return value;
  }
};
(html$._ElementAttributeMap.new = function(element) {
  html$._ElementAttributeMap.__proto__.new.call(this, element);
  ;
}).prototype = html$._ElementAttributeMap.prototype;
dart.addTypeTests(html$._ElementAttributeMap);
dart.addTypeCaches(html$._ElementAttributeMap);
dart.setMethodSignature(html$._ElementAttributeMap, () => ({
  __proto__: dart.getMethods(html$._ElementAttributeMap.__proto__),
  _get: dart.fnType(core.String, [core.Object]),
  [$_get]: dart.fnType(core.String, [core.Object]),
  _set: dart.fnType(dart.void, [core.Object, core.Object]),
  [$_set]: dart.fnType(dart.void, [core.Object, core.Object]),
  remove: dart.fnType(core.String, [core.Object]),
  [$remove]: dart.fnType(core.String, [core.Object]),
  [_matches]: dart.fnType(core.bool, [html$._Attr])
}));
dart.setLibraryUri(html$._ElementAttributeMap, L65);
dart.defineExtensionMethods(html$._ElementAttributeMap, ['containsKey', '_get', '_set', 'remove']);
dart.defineExtensionAccessors(html$._ElementAttributeMap, ['length']);
var _namespace$ = dart.privateName(html$, "_namespace");
html$._NamespacedAttributeMap = class _NamespacedAttributeMap extends html$._AttributeMap {
  containsKey(key) {
    return this[_element$][_hasAttributeNS](this[_namespace$], core.String.as(key));
  }
  _get(key) {
    return this[_element$][$getAttributeNS](this[_namespace$], core.String.as(key));
  }
  _set(key, value$) {
    let value = value$;
    core.String.as(key);
    core.String.as(value);
    this[_element$][$setAttributeNS](this[_namespace$], key, value);
    return value$;
  }
  remove(key) {
    return typeof key == 'string' ? html$._NamespacedAttributeMap._remove(this[_namespace$], this[_element$], key) : null;
  }
  get length() {
    return this.keys[$length];
  }
  [_matches](node) {
    return node[_namespaceUri] == this[_namespace$];
  }
  static _remove(namespace, element, key) {
    let value = element.getAttributeNS(namespace, key);
    element.removeAttributeNS(namespace, key);
    return value;
  }
};
(html$._NamespacedAttributeMap.new = function(element, _namespace) {
  this[_namespace$] = _namespace;
  html$._NamespacedAttributeMap.__proto__.new.call(this, element);
  ;
}).prototype = html$._NamespacedAttributeMap.prototype;
dart.addTypeTests(html$._NamespacedAttributeMap);
dart.addTypeCaches(html$._NamespacedAttributeMap);
dart.setMethodSignature(html$._NamespacedAttributeMap, () => ({
  __proto__: dart.getMethods(html$._NamespacedAttributeMap.__proto__),
  _get: dart.fnType(core.String, [core.Object]),
  [$_get]: dart.fnType(core.String, [core.Object]),
  _set: dart.fnType(dart.void, [core.Object, core.Object]),
  [$_set]: dart.fnType(dart.void, [core.Object, core.Object]),
  remove: dart.fnType(core.String, [core.Object]),
  [$remove]: dart.fnType(core.String, [core.Object]),
  [_matches]: dart.fnType(core.bool, [html$._Attr])
}));
dart.setLibraryUri(html$._NamespacedAttributeMap, L65);
dart.setFieldSignature(html$._NamespacedAttributeMap, () => ({
  __proto__: dart.getFields(html$._NamespacedAttributeMap.__proto__),
  [_namespace$]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(html$._NamespacedAttributeMap, ['containsKey', '_get', '_set', 'remove']);
dart.defineExtensionAccessors(html$._NamespacedAttributeMap, ['length']);
var _attr = dart.privateName(html$, "_attr");
var _strip = dart.privateName(html$, "_strip");
var _toHyphenedName = dart.privateName(html$, "_toHyphenedName");
var _toCamelCase = dart.privateName(html$, "_toCamelCase");
html$._DataAttributeMap = class _DataAttributeMap extends collection.MapBase$(core.String, core.String) {
  addAll(other) {
    MapOfStringL$StringL().as(other);
    other[$forEach](dart.fn((k, v) => {
      this._set(k, v);
    }, StringLAndStringLToNullN()));
  }
  cast(K, V) {
    return core.Map.castFrom(core.String, core.String, K, V, this);
  }
  containsValue(value) {
    return this.values[$any](dart.fn(v => core.identical(v, value), StringLToboolL()));
  }
  containsKey(key) {
    return this[_attributes$][$containsKey](this[_attr](core.String.as(key)));
  }
  _get(key) {
    return this[_attributes$][$_get](this[_attr](core.String.as(key)));
  }
  _set(key, value$) {
    let value = value$;
    core.String.as(key);
    core.String.as(value);
    this[_attributes$][$_set](this[_attr](key), value);
    return value$;
  }
  putIfAbsent(key, ifAbsent) {
    core.String.as(key);
    VoidToLStringL().as(ifAbsent);
    return this[_attributes$][$putIfAbsent](this[_attr](key), ifAbsent);
  }
  remove(key) {
    return this[_attributes$][$remove](this[_attr](core.String.as(key)));
  }
  clear() {
    for (let key of this.keys) {
      this.remove(key);
    }
  }
  forEach(f) {
    this[_attributes$][$forEach](dart.fn((key, value) => {
      if (dart.test(this[_matches](key))) {
        f(this[_strip](key), value);
      }
    }, StringLAndStringLToNullN()));
  }
  get keys() {
    let keys = JSArrayOfStringL().of([]);
    this[_attributes$][$forEach](dart.fn((key, value) => {
      if (dart.test(this[_matches](key))) {
        keys[$add](this[_strip](key));
      }
    }, StringLAndStringLToNullN()));
    return keys;
  }
  get values() {
    let values = JSArrayOfStringL().of([]);
    this[_attributes$][$forEach](dart.fn((key, value) => {
      if (dart.test(this[_matches](key))) {
        values[$add](value);
      }
    }, StringLAndStringLToNullN()));
    return values;
  }
  get length() {
    return this.keys[$length];
  }
  get isEmpty() {
    return this.length === 0;
  }
  get isNotEmpty() {
    return !dart.test(this.isEmpty);
  }
  [_attr](key) {
    return "data-" + dart.str(this[_toHyphenedName](key));
  }
  [_matches](key) {
    return key[$startsWith]("data-");
  }
  [_strip](key) {
    return this[_toCamelCase](key[$substring](5));
  }
  [_toCamelCase](hyphenedName, opts) {
    let startUppercase = opts && 'startUppercase' in opts ? opts.startUppercase : false;
    let segments = hyphenedName[$split]("-");
    let start = dart.test(startUppercase) ? 0 : 1;
    for (let i = start; i < dart.notNull(segments[$length]); i = i + 1) {
      let segment = segments[$_get](i);
      if (segment.length > 0) {
        segments[$_set](i, segment[$_get](0)[$toUpperCase]() + segment[$substring](1));
      }
    }
    return segments[$join]("");
  }
  [_toHyphenedName](word) {
    let sb = new core.StringBuffer.new();
    for (let i = 0; i < word.length; i = i + 1) {
      let lower = word[$_get](i)[$toLowerCase]();
      if (word[$_get](i) !== lower && i > 0) sb.write("-");
      sb.write(lower);
    }
    return sb.toString();
  }
};
(html$._DataAttributeMap.new = function(_attributes) {
  this[_attributes$] = _attributes;
  ;
}).prototype = html$._DataAttributeMap.prototype;
dart.addTypeTests(html$._DataAttributeMap);
dart.addTypeCaches(html$._DataAttributeMap);
dart.setMethodSignature(html$._DataAttributeMap, () => ({
  __proto__: dart.getMethods(html$._DataAttributeMap.__proto__),
  cast: dart.gFnType((K, V) => [core.Map$(K, V), []]),
  [$cast]: dart.gFnType((K, V) => [core.Map$(K, V), []]),
  _get: dart.fnType(core.String, [core.Object]),
  [$_get]: dart.fnType(core.String, [core.Object]),
  _set: dart.fnType(dart.void, [core.Object, core.Object]),
  [$_set]: dart.fnType(dart.void, [core.Object, core.Object]),
  remove: dart.fnType(core.String, [core.Object]),
  [$remove]: dart.fnType(core.String, [core.Object]),
  clear: dart.fnType(dart.void, []),
  [$clear]: dart.fnType(dart.void, []),
  [_attr]: dart.fnType(core.String, [core.String]),
  [_matches]: dart.fnType(core.bool, [core.String]),
  [_strip]: dart.fnType(core.String, [core.String]),
  [_toCamelCase]: dart.fnType(core.String, [core.String], {startUppercase: core.bool}, {}),
  [_toHyphenedName]: dart.fnType(core.String, [core.String])
}));
dart.setGetterSignature(html$._DataAttributeMap, () => ({
  __proto__: dart.getGetters(html$._DataAttributeMap.__proto__),
  keys: core.Iterable$(core.String),
  [$keys]: core.Iterable$(core.String)
}));
dart.setLibraryUri(html$._DataAttributeMap, L65);
dart.setFieldSignature(html$._DataAttributeMap, () => ({
  __proto__: dart.getFields(html$._DataAttributeMap.__proto__),
  [_attributes$]: dart.finalFieldType(core.Map$(core.String, core.String))
}));
dart.defineExtensionMethods(html$._DataAttributeMap, [
  'addAll',
  'cast',
  'containsValue',
  'containsKey',
  '_get',
  '_set',
  'putIfAbsent',
  'remove',
  'clear',
  'forEach'
]);
dart.defineExtensionAccessors(html$._DataAttributeMap, [
  'keys',
  'values',
  'length',
  'isEmpty',
  'isNotEmpty'
]);
html$.CanvasImageSource = class CanvasImageSource extends core.Object {};
(html$.CanvasImageSource.new = function() {
  ;
}).prototype = html$.CanvasImageSource.prototype;
dart.addTypeTests(html$.CanvasImageSource);
dart.addTypeCaches(html$.CanvasImageSource);
dart.setLibraryUri(html$.CanvasImageSource, L65);
html$.WindowBase = class WindowBase extends core.Object {};
(html$.WindowBase.new = function() {
  ;
}).prototype = html$.WindowBase.prototype;
dart.addTypeTests(html$.WindowBase);
dart.addTypeCaches(html$.WindowBase);
html$.WindowBase[dart.implements] = () => [html$.EventTarget];
dart.setLibraryUri(html$.WindowBase, L65);
html$.LocationBase = class LocationBase extends core.Object {};
(html$.LocationBase.new = function() {
  ;
}).prototype = html$.LocationBase.prototype;
dart.addTypeTests(html$.LocationBase);
dart.addTypeCaches(html$.LocationBase);
dart.setLibraryUri(html$.LocationBase, L65);
html$.HistoryBase = class HistoryBase extends core.Object {};
(html$.HistoryBase.new = function() {
  ;
}).prototype = html$.HistoryBase.prototype;
dart.addTypeTests(html$.HistoryBase);
dart.addTypeCaches(html$.HistoryBase);
dart.setLibraryUri(html$.HistoryBase, L65);
html$.CssClassSet = class CssClassSet extends core.Object {
  [Symbol.iterator]() {
    return new dart.JsIterator(this[$iterator]);
  }
};
(html$.CssClassSet.new = function() {
  ;
}).prototype = html$.CssClassSet.prototype;
dart.addTypeTests(html$.CssClassSet);
dart.addTypeCaches(html$.CssClassSet);
html$.CssClassSet[dart.implements] = () => [core.Set$(core.String)];
dart.setLibraryUri(html$.CssClassSet, L65);
var _addOrSubtractToBoxModel = dart.privateName(html$, "_addOrSubtractToBoxModel");
html$.CssRect = class CssRect extends core.Object {
  set height(newHeight) {
    dart.throw(new core.UnsupportedError.new("Can only set height for content rect."));
  }
  set width(newWidth) {
    dart.throw(new core.UnsupportedError.new("Can only set width for content rect."));
  }
  [_addOrSubtractToBoxModel](dimensions, augmentingMeasurement) {
    let styles = this[_element$][$getComputedStyle]();
    let val = 0;
    for (let measurement of dimensions) {
      if (augmentingMeasurement == html$._MARGIN) {
        val = val + dart.notNull(new html$.Dimension.css(styles[$getPropertyValue](dart.str(augmentingMeasurement) + "-" + dart.str(measurement))).value);
      }
      if (augmentingMeasurement == html$._CONTENT) {
        val = val - dart.notNull(new html$.Dimension.css(styles[$getPropertyValue](dart.str(html$._PADDING) + "-" + dart.str(measurement))).value);
      }
      if (augmentingMeasurement != html$._MARGIN) {
        val = val - dart.notNull(new html$.Dimension.css(styles[$getPropertyValue]("border-" + dart.str(measurement) + "-width")).value);
      }
    }
    return val;
  }
  get right() {
    return dart.notNull(this.left) + dart.notNull(this.width);
  }
  get bottom() {
    return dart.notNull(this.top) + dart.notNull(this.height);
  }
  toString() {
    return "Rectangle (" + dart.str(this.left) + ", " + dart.str(this.top) + ") " + dart.str(this.width) + " x " + dart.str(this.height);
  }
  _equals(other) {
    if (other == null) return false;
    return RectangleOfnumL().is(other) && this.left == other[$left] && this.top == other[$top] && this.right == other[$right] && this.bottom == other[$bottom];
  }
  get hashCode() {
    return html$._JenkinsSmiHash.hash4(dart.hashCode(this.left), dart.hashCode(this.top), dart.hashCode(this.right), dart.hashCode(this.bottom));
  }
  intersection(other) {
    RectangleOfnumL().as(other);
    let x0 = math.max(core.num, this.left, other[$left]);
    let x1 = math.min(core.num, dart.notNull(this.left) + dart.notNull(this.width), dart.notNull(other[$left]) + dart.notNull(other[$width]));
    if (x0 <= x1) {
      let y0 = math.max(core.num, this.top, other[$top]);
      let y1 = math.min(core.num, dart.notNull(this.top) + dart.notNull(this.height), dart.notNull(other[$top]) + dart.notNull(other[$height]));
      if (y0 <= y1) {
        return new (RectangleOfnumL()).new(x0, y0, x1 - x0, y1 - y0);
      }
    }
    return null;
  }
  intersects(other) {
    return dart.notNull(this.left) <= dart.notNull(other[$left]) + dart.notNull(other[$width]) && dart.notNull(other[$left]) <= dart.notNull(this.left) + dart.notNull(this.width) && dart.notNull(this.top) <= dart.notNull(other[$top]) + dart.notNull(other[$height]) && dart.notNull(other[$top]) <= dart.notNull(this.top) + dart.notNull(this.height);
  }
  boundingBox(other) {
    RectangleOfnumL().as(other);
    let right = math.max(core.num, dart.notNull(this.left) + dart.notNull(this.width), dart.notNull(other[$left]) + dart.notNull(other[$width]));
    let bottom = math.max(core.num, dart.notNull(this.top) + dart.notNull(this.height), dart.notNull(other[$top]) + dart.notNull(other[$height]));
    let left = math.min(core.num, this.left, other[$left]);
    let top = math.min(core.num, this.top, other[$top]);
    return new (RectangleOfnumL()).new(left, top, right - left, bottom - top);
  }
  containsRectangle(another) {
    return dart.notNull(this.left) <= dart.notNull(another[$left]) && dart.notNull(this.left) + dart.notNull(this.width) >= dart.notNull(another[$left]) + dart.notNull(another[$width]) && dart.notNull(this.top) <= dart.notNull(another[$top]) && dart.notNull(this.top) + dart.notNull(this.height) >= dart.notNull(another[$top]) + dart.notNull(another[$height]);
  }
  containsPoint(another) {
    return dart.notNull(another.x) >= dart.notNull(this.left) && dart.notNull(another.x) <= dart.notNull(this.left) + dart.notNull(this.width) && dart.notNull(another.y) >= dart.notNull(this.top) && dart.notNull(another.y) <= dart.notNull(this.top) + dart.notNull(this.height);
  }
  get topLeft() {
    return new (PointOfnumL()).new(this.left, this.top);
  }
  get topRight() {
    return new (PointOfnumL()).new(dart.notNull(this.left) + dart.notNull(this.width), this.top);
  }
  get bottomRight() {
    return new (PointOfnumL()).new(dart.notNull(this.left) + dart.notNull(this.width), dart.notNull(this.top) + dart.notNull(this.height));
  }
  get bottomLeft() {
    return new (PointOfnumL()).new(this.left, dart.notNull(this.top) + dart.notNull(this.height));
  }
};
(html$.CssRect.new = function(_element) {
  this[_element$] = _element;
  ;
}).prototype = html$.CssRect.prototype;
dart.addTypeTests(html$.CssRect);
dart.addTypeCaches(html$.CssRect);
html$.CssRect[dart.implements] = () => [math.Rectangle$(core.num)];
dart.setMethodSignature(html$.CssRect, () => ({
  __proto__: dart.getMethods(html$.CssRect.__proto__),
  [_addOrSubtractToBoxModel]: dart.fnType(core.num, [core.List$(core.String), core.String]),
  intersection: dart.fnType(math.Rectangle$(core.num), [core.Object]),
  [$intersection]: dart.fnType(math.Rectangle$(core.num), [core.Object]),
  intersects: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
  [$intersects]: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
  boundingBox: dart.fnType(math.Rectangle$(core.num), [core.Object]),
  [$boundingBox]: dart.fnType(math.Rectangle$(core.num), [core.Object]),
  containsRectangle: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
  [$containsRectangle]: dart.fnType(core.bool, [math.Rectangle$(core.num)]),
  containsPoint: dart.fnType(core.bool, [math.Point$(core.num)]),
  [$containsPoint]: dart.fnType(core.bool, [math.Point$(core.num)])
}));
dart.setGetterSignature(html$.CssRect, () => ({
  __proto__: dart.getGetters(html$.CssRect.__proto__),
  right: core.num,
  [$right]: core.num,
  bottom: core.num,
  [$bottom]: core.num,
  topLeft: math.Point$(core.num),
  [$topLeft]: math.Point$(core.num),
  topRight: math.Point$(core.num),
  [$topRight]: math.Point$(core.num),
  bottomRight: math.Point$(core.num),
  [$bottomRight]: math.Point$(core.num),
  bottomLeft: math.Point$(core.num),
  [$bottomLeft]: math.Point$(core.num)
}));
dart.setSetterSignature(html$.CssRect, () => ({
  __proto__: dart.getSetters(html$.CssRect.__proto__),
  height: dart.dynamic,
  [$height]: dart.dynamic,
  width: dart.dynamic,
  [$width]: dart.dynamic
}));
dart.setLibraryUri(html$.CssRect, L65);
dart.setFieldSignature(html$.CssRect, () => ({
  __proto__: dart.getFields(html$.CssRect.__proto__),
  [_element$]: dart.fieldType(html$.Element)
}));
dart.defineExtensionMethods(html$.CssRect, [
  'toString',
  '_equals',
  'intersection',
  'intersects',
  'boundingBox',
  'containsRectangle',
  'containsPoint'
]);
dart.defineExtensionAccessors(html$.CssRect, [
  'height',
  'width',
  'right',
  'bottom',
  'hashCode',
  'topLeft',
  'topRight',
  'bottomRight',
  'bottomLeft'
]);
html$._ContentCssRect = class _ContentCssRect extends html$.CssRect {
  get height() {
    return dart.notNull(this[_element$][$offsetHeight]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._HEIGHT, html$._CONTENT));
  }
  get width() {
    return dart.notNull(this[_element$][$offsetWidth]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._WIDTH, html$._CONTENT));
  }
  set height(newHeight) {
    if (html$.Dimension.is(newHeight)) {
      let newHeightAsDimension = newHeight;
      if (dart.notNull(newHeightAsDimension.value) < 0) newHeight = new html$.Dimension.px(0);
      this[_element$].style[$height] = dart.toString(newHeight);
    } else if (typeof newHeight == 'number') {
      if (dart.notNull(newHeight) < 0) newHeight = 0;
      this[_element$].style[$height] = dart.str(newHeight) + "px";
    } else {
      dart.throw(new core.ArgumentError.new("newHeight is not a Dimension or num"));
    }
  }
  set width(newWidth) {
    if (html$.Dimension.is(newWidth)) {
      let newWidthAsDimension = newWidth;
      if (dart.notNull(newWidthAsDimension.value) < 0) newWidth = new html$.Dimension.px(0);
      this[_element$].style[$width] = dart.toString(newWidth);
    } else if (typeof newWidth == 'number') {
      if (dart.notNull(newWidth) < 0) newWidth = 0;
      this[_element$].style[$width] = dart.str(newWidth) + "px";
    } else {
      dart.throw(new core.ArgumentError.new("newWidth is not a Dimension or num"));
    }
  }
  get left() {
    return dart.notNull(this[_element$].getBoundingClientRect()[$left]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfStringL().of(["left"]), html$._CONTENT));
  }
  get top() {
    return dart.notNull(this[_element$].getBoundingClientRect()[$top]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfStringL().of(["top"]), html$._CONTENT));
  }
};
(html$._ContentCssRect.new = function(element) {
  html$._ContentCssRect.__proto__.new.call(this, element);
  ;
}).prototype = html$._ContentCssRect.prototype;
dart.addTypeTests(html$._ContentCssRect);
dart.addTypeCaches(html$._ContentCssRect);
dart.setGetterSignature(html$._ContentCssRect, () => ({
  __proto__: dart.getGetters(html$._ContentCssRect.__proto__),
  height: core.num,
  [$height]: core.num,
  width: core.num,
  [$width]: core.num,
  left: core.num,
  [$left]: core.num,
  top: core.num,
  [$top]: core.num
}));
dart.setLibraryUri(html$._ContentCssRect, L65);
dart.defineExtensionAccessors(html$._ContentCssRect, ['height', 'width', 'left', 'top']);
var _elementList = dart.privateName(html$, "_elementList");
html$._ContentCssListRect = class _ContentCssListRect extends html$._ContentCssRect {
  set height(newHeight) {
    this[_elementList][$forEach](dart.fn(e => e[$contentEdge].height = newHeight, ElementLTodynamic()));
  }
  get height() {
    return super.height;
  }
  set width(newWidth) {
    this[_elementList][$forEach](dart.fn(e => e[$contentEdge].width = newWidth, ElementLTodynamic()));
  }
  get width() {
    return super.width;
  }
};
(html$._ContentCssListRect.new = function(elementList) {
  this[_elementList] = null;
  html$._ContentCssListRect.__proto__.new.call(this, elementList[$first]);
  this[_elementList] = elementList;
}).prototype = html$._ContentCssListRect.prototype;
dart.addTypeTests(html$._ContentCssListRect);
dart.addTypeCaches(html$._ContentCssListRect);
dart.setLibraryUri(html$._ContentCssListRect, L65);
dart.setFieldSignature(html$._ContentCssListRect, () => ({
  __proto__: dart.getFields(html$._ContentCssListRect.__proto__),
  [_elementList]: dart.fieldType(core.List$(html$.Element))
}));
dart.defineExtensionAccessors(html$._ContentCssListRect, ['height', 'width']);
html$._PaddingCssRect = class _PaddingCssRect extends html$.CssRect {
  get height() {
    return dart.notNull(this[_element$][$offsetHeight]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._HEIGHT, html$._PADDING));
  }
  set height(value) {
    super.height = value;
  }
  get width() {
    return dart.notNull(this[_element$][$offsetWidth]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._WIDTH, html$._PADDING));
  }
  set width(value) {
    super.width = value;
  }
  get left() {
    return dart.notNull(this[_element$].getBoundingClientRect()[$left]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfStringL().of(["left"]), html$._PADDING));
  }
  get top() {
    return dart.notNull(this[_element$].getBoundingClientRect()[$top]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfStringL().of(["top"]), html$._PADDING));
  }
};
(html$._PaddingCssRect.new = function(element) {
  html$._PaddingCssRect.__proto__.new.call(this, html$.Element.as(element));
  ;
}).prototype = html$._PaddingCssRect.prototype;
dart.addTypeTests(html$._PaddingCssRect);
dart.addTypeCaches(html$._PaddingCssRect);
dart.setGetterSignature(html$._PaddingCssRect, () => ({
  __proto__: dart.getGetters(html$._PaddingCssRect.__proto__),
  height: core.num,
  [$height]: core.num,
  width: core.num,
  [$width]: core.num,
  left: core.num,
  [$left]: core.num,
  top: core.num,
  [$top]: core.num
}));
dart.setLibraryUri(html$._PaddingCssRect, L65);
dart.defineExtensionAccessors(html$._PaddingCssRect, ['height', 'width', 'left', 'top']);
html$._BorderCssRect = class _BorderCssRect extends html$.CssRect {
  get height() {
    return this[_element$][$offsetHeight];
  }
  set height(value) {
    super.height = value;
  }
  get width() {
    return this[_element$][$offsetWidth];
  }
  set width(value) {
    super.width = value;
  }
  get left() {
    return this[_element$].getBoundingClientRect()[$left];
  }
  get top() {
    return this[_element$].getBoundingClientRect()[$top];
  }
};
(html$._BorderCssRect.new = function(element) {
  html$._BorderCssRect.__proto__.new.call(this, html$.Element.as(element));
  ;
}).prototype = html$._BorderCssRect.prototype;
dart.addTypeTests(html$._BorderCssRect);
dart.addTypeCaches(html$._BorderCssRect);
dart.setGetterSignature(html$._BorderCssRect, () => ({
  __proto__: dart.getGetters(html$._BorderCssRect.__proto__),
  height: core.num,
  [$height]: core.num,
  width: core.num,
  [$width]: core.num,
  left: core.num,
  [$left]: core.num,
  top: core.num,
  [$top]: core.num
}));
dart.setLibraryUri(html$._BorderCssRect, L65);
dart.defineExtensionAccessors(html$._BorderCssRect, ['height', 'width', 'left', 'top']);
html$._MarginCssRect = class _MarginCssRect extends html$.CssRect {
  get height() {
    return dart.notNull(this[_element$][$offsetHeight]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._HEIGHT, html$._MARGIN));
  }
  set height(value) {
    super.height = value;
  }
  get width() {
    return dart.notNull(this[_element$][$offsetWidth]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._WIDTH, html$._MARGIN));
  }
  set width(value) {
    super.width = value;
  }
  get left() {
    return dart.notNull(this[_element$].getBoundingClientRect()[$left]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfStringL().of(["left"]), html$._MARGIN));
  }
  get top() {
    return dart.notNull(this[_element$].getBoundingClientRect()[$top]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfStringL().of(["top"]), html$._MARGIN));
  }
};
(html$._MarginCssRect.new = function(element) {
  html$._MarginCssRect.__proto__.new.call(this, html$.Element.as(element));
  ;
}).prototype = html$._MarginCssRect.prototype;
dart.addTypeTests(html$._MarginCssRect);
dart.addTypeCaches(html$._MarginCssRect);
dart.setGetterSignature(html$._MarginCssRect, () => ({
  __proto__: dart.getGetters(html$._MarginCssRect.__proto__),
  height: core.num,
  [$height]: core.num,
  width: core.num,
  [$width]: core.num,
  left: core.num,
  [$left]: core.num,
  top: core.num,
  [$top]: core.num
}));
dart.setLibraryUri(html$._MarginCssRect, L65);
dart.defineExtensionAccessors(html$._MarginCssRect, ['height', 'width', 'left', 'top']);
var _sets$ = dart.privateName(html$, "_sets");
var _validateToken = dart.privateName(html_common, "_validateToken");
html_common.CssClassSetImpl = class CssClassSetImpl extends collection.SetBase$(core.String) {
  [_validateToken](value) {
    if (dart.test(html_common.CssClassSetImpl._validTokenRE.hasMatch(value))) return value;
    dart.throw(new core.ArgumentError.value(value, "value", "Not a valid class token"));
  }
  toString() {
    return this.readClasses()[$join](" ");
  }
  toggle(value, shouldAdd = null) {
    this[_validateToken](value);
    let s = this.readClasses();
    let result = false;
    if (shouldAdd == null) shouldAdd = !dart.test(s.contains(value));
    if (dart.test(shouldAdd)) {
      s.add(value);
      result = true;
    } else {
      s.remove(value);
    }
    this.writeClasses(s);
    return result;
  }
  get frozen() {
    return false;
  }
  get iterator() {
    return this.readClasses().iterator;
  }
  forEach(f) {
    this.readClasses()[$forEach](f);
  }
  join(separator = "") {
    return this.readClasses()[$join](separator);
  }
  map(T, f) {
    return this.readClasses()[$map](T, f);
  }
  where(f) {
    return this.readClasses()[$where](f);
  }
  expand(T, f) {
    return this.readClasses()[$expand](T, f);
  }
  every(f) {
    return this.readClasses()[$every](f);
  }
  any(f) {
    return this.readClasses()[$any](f);
  }
  get isEmpty() {
    return this.readClasses()[$isEmpty];
  }
  get isNotEmpty() {
    return this.readClasses()[$isNotEmpty];
  }
  get length() {
    return this.readClasses()[$length];
  }
  reduce(combine) {
    StringLAndStringLToLStringL().as(combine);
    return this.readClasses()[$reduce](combine);
  }
  fold(T, initialValue, combine) {
    return this.readClasses()[$fold](T, initialValue, combine);
  }
  contains(value) {
    if (!(typeof value == 'string')) return false;
    this[_validateToken](core.String.as(value));
    return this.readClasses().contains(value);
  }
  lookup(value) {
    return core.String.as(dart.test(this.contains(value)) ? value : null);
  }
  add(value) {
    core.String.as(value);
    this[_validateToken](value);
    return core.bool.as(this.modify(dart.fn(s => s.add(value), SetLOfStringLToboolL())));
  }
  remove(value) {
    this[_validateToken](core.String.as(value));
    if (!(typeof value == 'string')) return false;
    let s = this.readClasses();
    let result = s.remove(value);
    this.writeClasses(s);
    return result;
  }
  addAll(iterable) {
    IterableOfStringL().as(iterable);
    this.modify(dart.fn(s => s.addAll(iterable[$map](core.String, dart.bind(this, _validateToken))), SetLOfStringLTovoid()));
  }
  removeAll(iterable) {
    this.modify(dart.fn(s => s.removeAll(iterable), SetLOfStringLTovoid()));
  }
  toggleAll(iterable, shouldAdd = null) {
    iterable[$forEach](dart.fn(e => this.toggle(e, shouldAdd), StringLToboolL()));
  }
  retainAll(iterable) {
    this.modify(dart.fn(s => s.retainAll(iterable), SetLOfStringLTovoid()));
  }
  removeWhere(test) {
    this.modify(dart.fn(s => s.removeWhere(test), SetLOfStringLTovoid()));
  }
  retainWhere(test) {
    this.modify(dart.fn(s => s.retainWhere(test), SetLOfStringLTovoid()));
  }
  containsAll(collection) {
    return this.readClasses().containsAll(collection);
  }
  intersection(other) {
    return this.readClasses().intersection(other);
  }
  union(other) {
    SetOfStringL().as(other);
    return this.readClasses().union(other);
  }
  difference(other) {
    return this.readClasses().difference(other);
  }
  get first() {
    return this.readClasses()[$first];
  }
  get last() {
    return this.readClasses()[$last];
  }
  get single() {
    return this.readClasses()[$single];
  }
  toList(opts) {
    let growable = opts && 'growable' in opts ? opts.growable : true;
    return this.readClasses()[$toList]({growable: growable});
  }
  toSet() {
    return this.readClasses().toSet();
  }
  take(n) {
    return this.readClasses()[$take](n);
  }
  takeWhile(test) {
    return this.readClasses()[$takeWhile](test);
  }
  skip(n) {
    return this.readClasses()[$skip](n);
  }
  skipWhile(test) {
    return this.readClasses()[$skipWhile](test);
  }
  firstWhere(test, opts) {
    let orElse = opts && 'orElse' in opts ? opts.orElse : null;
    VoidToLStringL().as(orElse);
    return this.readClasses()[$firstWhere](test, {orElse: orElse});
  }
  lastWhere(test, opts) {
    let orElse = opts && 'orElse' in opts ? opts.orElse : null;
    VoidToLStringL().as(orElse);
    return this.readClasses()[$lastWhere](test, {orElse: orElse});
  }
  singleWhere(test, opts) {
    let orElse = opts && 'orElse' in opts ? opts.orElse : null;
    VoidToLStringL().as(orElse);
    return this.readClasses()[$singleWhere](test, {orElse: orElse});
  }
  elementAt(index) {
    return this.readClasses()[$elementAt](index);
  }
  clear() {
    this.modify(dart.fn(s => s.clear(), SetLOfStringLTovoid()));
  }
  modify(f) {
    let s = this.readClasses();
    let ret = f(s);
    this.writeClasses(s);
    return ret;
  }
};
(html_common.CssClassSetImpl.new = function() {
  ;
}).prototype = html_common.CssClassSetImpl.prototype;
dart.addTypeTests(html_common.CssClassSetImpl);
dart.addTypeCaches(html_common.CssClassSetImpl);
html_common.CssClassSetImpl[dart.implements] = () => [html$.CssClassSet];
dart.setMethodSignature(html_common.CssClassSetImpl, () => ({
  __proto__: dart.getMethods(html_common.CssClassSetImpl.__proto__),
  [_validateToken]: dart.fnType(core.String, [core.String]),
  toggle: dart.fnType(core.bool, [core.String], [core.bool]),
  map: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [core.String])]]),
  [$map]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(T, [core.String])]]),
  expand: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [core.String])]]),
  [$expand]: dart.gFnType(T => [core.Iterable$(T), [dart.fnType(core.Iterable$(T), [core.String])]]),
  fold: dart.gFnType(T => [T, [T, dart.fnType(T, [T, core.String])]]),
  [$fold]: dart.gFnType(T => [T, [T, dart.fnType(T, [T, core.String])]]),
  contains: dart.fnType(core.bool, [core.Object]),
  [$contains]: dart.fnType(core.bool, [core.Object]),
  lookup: dart.fnType(core.String, [core.Object]),
  add: dart.fnType(core.bool, [core.Object]),
  remove: dart.fnType(core.bool, [core.Object]),
  toggleAll: dart.fnType(dart.void, [core.Iterable$(core.String)], [core.bool]),
  toSet: dart.fnType(core.Set$(core.String), []),
  [$toSet]: dart.fnType(core.Set$(core.String), []),
  modify: dart.fnType(dart.dynamic, [dart.fnType(dart.dynamic, [core.Set$(core.String)])])
}));
dart.setGetterSignature(html_common.CssClassSetImpl, () => ({
  __proto__: dart.getGetters(html_common.CssClassSetImpl.__proto__),
  frozen: core.bool,
  iterator: core.Iterator$(core.String),
  [$iterator]: core.Iterator$(core.String),
  length: core.int,
  [$length]: core.int
}));
dart.setLibraryUri(html_common.CssClassSetImpl, L67);
dart.defineExtensionMethods(html_common.CssClassSetImpl, [
  'toString',
  'forEach',
  'join',
  'map',
  'where',
  'expand',
  'every',
  'any',
  'reduce',
  'fold',
  'contains',
  'toList',
  'toSet',
  'take',
  'takeWhile',
  'skip',
  'skipWhile',
  'firstWhere',
  'lastWhere',
  'singleWhere',
  'elementAt'
]);
dart.defineExtensionAccessors(html_common.CssClassSetImpl, [
  'iterator',
  'isEmpty',
  'isNotEmpty',
  'length',
  'first',
  'last',
  'single'
]);
dart.defineLazy(html_common.CssClassSetImpl, {
  /*html_common.CssClassSetImpl._validTokenRE*/get _validTokenRE() {
    return core.RegExp.new("^\\S+$");
  }
}, true);
html$._MultiElementCssClassSet = class _MultiElementCssClassSet extends html_common.CssClassSetImpl {
  static new(elements) {
    return new html$._MultiElementCssClassSet.__(elements, ListOfCssClassSetImplL().from(elements[$map](dart.dynamic, dart.fn(e => e[$classes], ElementLToCssClassSetL()))));
  }
  readClasses() {
    let s = new (_IdentityHashSetOfStringL()).new();
    this[_sets$][$forEach](dart.fn(e => s.addAll(e.readClasses()), CssClassSetImplLTovoid()));
    return s;
  }
  writeClasses(s) {
    let classes = s[$join](" ");
    for (let e of this[_elementIterable$]) {
      e.className = classes;
    }
  }
  modify(f) {
    this[_sets$][$forEach](dart.fn(e => e.modify(f), CssClassSetImplLTodynamic()));
  }
  toggle(value, shouldAdd = null) {
    return this[_sets$][$fold](core.bool, false, dart.fn((changed, e) => dart.test(e.toggle(value, shouldAdd)) || dart.test(changed), boolLAndCssClassSetImplLToboolL()));
  }
  remove(value) {
    return this[_sets$][$fold](core.bool, false, dart.fn((changed, e) => dart.test(e.remove(value)) || dart.test(changed), boolLAndCssClassSetImplLToboolL()));
  }
};
(html$._MultiElementCssClassSet.__ = function(_elementIterable, _sets) {
  this[_elementIterable$] = _elementIterable;
  this[_sets$] = _sets;
  ;
}).prototype = html$._MultiElementCssClassSet.prototype;
dart.addTypeTests(html$._MultiElementCssClassSet);
dart.addTypeCaches(html$._MultiElementCssClassSet);
dart.setMethodSignature(html$._MultiElementCssClassSet, () => ({
  __proto__: dart.getMethods(html$._MultiElementCssClassSet.__proto__),
  readClasses: dart.fnType(core.Set$(core.String), []),
  writeClasses: dart.fnType(dart.void, [core.Set$(core.String)])
}));
dart.setLibraryUri(html$._MultiElementCssClassSet, L65);
dart.setFieldSignature(html$._MultiElementCssClassSet, () => ({
  __proto__: dart.getFields(html$._MultiElementCssClassSet.__proto__),
  [_elementIterable$]: dart.finalFieldType(core.Iterable$(html$.Element)),
  [_sets$]: dart.finalFieldType(core.List$(html_common.CssClassSetImpl))
}));
html$._ElementCssClassSet = class _ElementCssClassSet extends html_common.CssClassSetImpl {
  readClasses() {
    let s = new (_IdentityHashSetOfStringL()).new();
    let classname = this[_element$].className;
    for (let name of classname[$split](" ")) {
      let trimmed = name[$trim]();
      if (!trimmed[$isEmpty]) {
        s.add(trimmed);
      }
    }
    return s;
  }
  writeClasses(s) {
    this[_element$].className = s[$join](" ");
  }
  get length() {
    return html$._ElementCssClassSet._classListLength(html$._ElementCssClassSet._classListOf(this[_element$]));
  }
  get isEmpty() {
    return this.length === 0;
  }
  get isNotEmpty() {
    return this.length !== 0;
  }
  clear() {
    this[_element$].className = "";
  }
  contains(value) {
    return html$._ElementCssClassSet._contains(this[_element$], value);
  }
  add(value) {
    core.String.as(value);
    return html$._ElementCssClassSet._add(this[_element$], value);
  }
  remove(value) {
    return typeof value == 'string' && dart.test(html$._ElementCssClassSet._remove(this[_element$], value));
  }
  toggle(value, shouldAdd = null) {
    return html$._ElementCssClassSet._toggle(this[_element$], value, shouldAdd);
  }
  addAll(iterable) {
    IterableOfStringL().as(iterable);
    html$._ElementCssClassSet._addAll(this[_element$], iterable);
  }
  removeAll(iterable) {
    html$._ElementCssClassSet._removeAll(this[_element$], iterable);
  }
  retainAll(iterable) {
    html$._ElementCssClassSet._removeWhere(this[_element$], dart.bind(iterable[$toSet](), 'contains'), false);
  }
  removeWhere(test) {
    html$._ElementCssClassSet._removeWhere(this[_element$], test, true);
  }
  retainWhere(test) {
    html$._ElementCssClassSet._removeWhere(this[_element$], test, false);
  }
  static _contains(_element, value) {
    return typeof value == 'string' && dart.test(html$._ElementCssClassSet._classListContains(html$._ElementCssClassSet._classListOf(_element), value));
  }
  static _add(_element, value) {
    let list = html$._ElementCssClassSet._classListOf(_element);
    let added = !dart.test(html$._ElementCssClassSet._classListContainsBeforeAddOrRemove(list, value));
    html$._ElementCssClassSet._classListAdd(list, value);
    return added;
  }
  static _remove(_element, value) {
    let list = html$._ElementCssClassSet._classListOf(_element);
    let removed = html$._ElementCssClassSet._classListContainsBeforeAddOrRemove(list, value);
    html$._ElementCssClassSet._classListRemove(list, value);
    return removed;
  }
  static _toggle(_element, value, shouldAdd) {
    return shouldAdd == null ? html$._ElementCssClassSet._toggleDefault(_element, value) : html$._ElementCssClassSet._toggleOnOff(_element, value, shouldAdd);
  }
  static _toggleDefault(_element, value) {
    let list = html$._ElementCssClassSet._classListOf(_element);
    return html$._ElementCssClassSet._classListToggle1(list, value);
  }
  static _toggleOnOff(_element, value, shouldAdd) {
    let list = html$._ElementCssClassSet._classListOf(_element);
    if (dart.test(shouldAdd)) {
      html$._ElementCssClassSet._classListAdd(list, value);
      return true;
    } else {
      html$._ElementCssClassSet._classListRemove(list, value);
      return false;
    }
  }
  static _addAll(_element, iterable) {
    let list = html$._ElementCssClassSet._classListOf(_element);
    for (let value of iterable) {
      html$._ElementCssClassSet._classListAdd(list, value);
    }
  }
  static _removeAll(_element, iterable) {
    let list = html$._ElementCssClassSet._classListOf(_element);
    for (let t116 of iterable) {
      let value = core.String.as(t116);
      html$._ElementCssClassSet._classListRemove(list, value);
    }
  }
  static _removeWhere(_element, test, doRemove) {
    let list = html$._ElementCssClassSet._classListOf(_element);
    let i = 0;
    while (i < dart.notNull(html$._ElementCssClassSet._classListLength(list))) {
      let item = list.item(i);
      if (dart.equals(doRemove, test(item))) {
        html$._ElementCssClassSet._classListRemove(list, item);
      } else {
        i = i + 1;
      }
    }
  }
  static _classListOf(e) {
    return e.classList;
  }
  static _classListLength(list) {
    return list.length;
  }
  static _classListContains(list, value) {
    return list.contains(value);
  }
  static _classListContainsBeforeAddOrRemove(list, value) {
    return list.contains(value);
  }
  static _classListAdd(list, value) {
    list.add(value);
  }
  static _classListRemove(list, value) {
    list.remove(value);
  }
  static _classListToggle1(list, value) {
    return list.toggle(value);
  }
  static _classListToggle2(list, value, shouldAdd) {
    return list.toggle(value, shouldAdd);
  }
};
(html$._ElementCssClassSet.new = function(_element) {
  this[_element$] = _element;
  ;
}).prototype = html$._ElementCssClassSet.prototype;
dart.addTypeTests(html$._ElementCssClassSet);
dart.addTypeCaches(html$._ElementCssClassSet);
dart.setMethodSignature(html$._ElementCssClassSet, () => ({
  __proto__: dart.getMethods(html$._ElementCssClassSet.__proto__),
  readClasses: dart.fnType(core.Set$(core.String), []),
  writeClasses: dart.fnType(dart.void, [core.Set$(core.String)])
}));
dart.setLibraryUri(html$._ElementCssClassSet, L65);
dart.setFieldSignature(html$._ElementCssClassSet, () => ({
  __proto__: dart.getFields(html$._ElementCssClassSet.__proto__),
  [_element$]: dart.finalFieldType(html$.Element)
}));
dart.defineExtensionMethods(html$._ElementCssClassSet, ['contains']);
dart.defineExtensionAccessors(html$._ElementCssClassSet, ['length', 'isEmpty', 'isNotEmpty']);
var _unit = dart.privateName(html$, "_unit");
html$.Dimension = class Dimension extends core.Object {
  toString() {
    return dart.str(this[_value$6]) + dart.str(this[_unit]);
  }
  get value() {
    return this[_value$6];
  }
};
(html$.Dimension.percent = function(_value) {
  this[_value$6] = _value;
  this[_unit] = "%";
  ;
}).prototype = html$.Dimension.prototype;
(html$.Dimension.px = function(_value) {
  this[_value$6] = _value;
  this[_unit] = "px";
  ;
}).prototype = html$.Dimension.prototype;
(html$.Dimension.pc = function(_value) {
  this[_value$6] = _value;
  this[_unit] = "pc";
  ;
}).prototype = html$.Dimension.prototype;
(html$.Dimension.pt = function(_value) {
  this[_value$6] = _value;
  this[_unit] = "pt";
  ;
}).prototype = html$.Dimension.prototype;
(html$.Dimension.inch = function(_value) {
  this[_value$6] = _value;
  this[_unit] = "in";
  ;
}).prototype = html$.Dimension.prototype;
(html$.Dimension.cm = function(_value) {
  this[_value$6] = _value;
  this[_unit] = "cm";
  ;
}).prototype = html$.Dimension.prototype;
(html$.Dimension.mm = function(_value) {
  this[_value$6] = _value;
  this[_unit] = "mm";
  ;
}).prototype = html$.Dimension.prototype;
(html$.Dimension.em = function(_value) {
  this[_value$6] = _value;
  this[_unit] = "em";
  ;
}).prototype = html$.Dimension.prototype;
(html$.Dimension.ex = function(_value) {
  this[_value$6] = _value;
  this[_unit] = "ex";
  ;
}).prototype = html$.Dimension.prototype;
(html$.Dimension.css = function(cssValue) {
  this[_unit] = null;
  this[_value$6] = null;
  if (cssValue === "") cssValue = "0px";
  if (cssValue[$endsWith]("%")) {
    this[_unit] = "%";
  } else {
    this[_unit] = cssValue[$substring](cssValue.length - 2);
  }
  if (cssValue[$contains](".")) {
    this[_value$6] = core.double.parse(cssValue[$substring](0, cssValue.length - this[_unit].length));
  } else {
    this[_value$6] = core.int.parse(cssValue[$substring](0, cssValue.length - this[_unit].length));
  }
}).prototype = html$.Dimension.prototype;
dart.addTypeTests(html$.Dimension);
dart.addTypeCaches(html$.Dimension);
dart.setGetterSignature(html$.Dimension, () => ({
  __proto__: dart.getGetters(html$.Dimension.__proto__),
  value: core.num
}));
dart.setLibraryUri(html$.Dimension, L65);
dart.setFieldSignature(html$.Dimension, () => ({
  __proto__: dart.getFields(html$.Dimension.__proto__),
  [_value$6]: dart.fieldType(core.num),
  [_unit]: dart.fieldType(core.String)
}));
dart.defineExtensionMethods(html$.Dimension, ['toString']);
const _is_EventStreamProvider_default = Symbol('_is_EventStreamProvider_default');
html$.EventStreamProvider$ = dart.generic(T => {
  var _EventStreamOfTL = () => (_EventStreamOfTL = dart.constFn(html$._EventStream$(T)))();
  var _ElementEventStreamImplOfTL = () => (_ElementEventStreamImplOfTL = dart.constFn(html$._ElementEventStreamImpl$(T)))();
  var _ElementListEventStreamImplOfTL = () => (_ElementListEventStreamImplOfTL = dart.constFn(html$._ElementListEventStreamImpl$(T)))();
  class EventStreamProvider extends core.Object {
    get [_eventType$]() {
      return this[_eventType$0];
    }
    set [_eventType$](value) {
      super[_eventType$] = value;
    }
    forTarget(e, opts) {
      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
      return new (_EventStreamOfTL()).new(e, this[_eventType$], useCapture);
    }
    forElement(e, opts) {
      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
      return new (_ElementEventStreamImplOfTL()).new(e, this[_eventType$], useCapture);
    }
    [_forElementList](e, opts) {
      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
      return new (_ElementListEventStreamImplOfTL()).new(e, this[_eventType$], useCapture);
    }
    getEventType(target) {
      return this[_eventType$];
    }
  }
  (EventStreamProvider.new = function(_eventType) {
    this[_eventType$0] = _eventType;
    ;
  }).prototype = EventStreamProvider.prototype;
  dart.addTypeTests(EventStreamProvider);
  EventStreamProvider.prototype[_is_EventStreamProvider_default] = true;
  dart.addTypeCaches(EventStreamProvider);
  const _eventType$0 = EventStreamProvider__eventType;
  dart.setMethodSignature(EventStreamProvider, () => ({
    __proto__: dart.getMethods(EventStreamProvider.__proto__),
    forTarget: dart.fnType(async.Stream$(T), [html$.EventTarget], {useCapture: core.bool}, {}),
    forElement: dart.fnType(html$.ElementStream$(T), [html$.Element], {useCapture: core.bool}, {}),
    [_forElementList]: dart.fnType(html$.ElementStream$(T), [html$.ElementList$(html$.Element)], {useCapture: core.bool}, {}),
    getEventType: dart.fnType(core.String, [html$.EventTarget])
  }));
  dart.setLibraryUri(EventStreamProvider, L65);
  dart.setFieldSignature(EventStreamProvider, () => ({
    __proto__: dart.getFields(EventStreamProvider.__proto__),
    [_eventType$]: dart.finalFieldType(core.String)
  }));
  return EventStreamProvider;
});
html$.EventStreamProvider = html$.EventStreamProvider$();
dart.addTypeTests(html$.EventStreamProvider, _is_EventStreamProvider_default);
const _is_ElementStream_default = Symbol('_is_ElementStream_default');
html$.ElementStream$ = dart.generic(T => {
  class ElementStream extends core.Object {}
  (ElementStream.new = function() {
    ;
  }).prototype = ElementStream.prototype;
  ElementStream.prototype[dart.isStream] = true;
  dart.addTypeTests(ElementStream);
  ElementStream.prototype[_is_ElementStream_default] = true;
  dart.addTypeCaches(ElementStream);
  ElementStream[dart.implements] = () => [async.Stream$(T)];
  dart.setLibraryUri(ElementStream, L65);
  return ElementStream;
});
html$.ElementStream = html$.ElementStream$();
dart.addTypeTests(html$.ElementStream, _is_ElementStream_default);
var _target$1 = dart.privateName(html$, "_target");
var _useCapture$ = dart.privateName(html$, "_useCapture");
const _is__EventStream_default = Symbol('_is__EventStream_default');
html$._EventStream$ = dart.generic(T => {
  var _EventStreamSubscriptionOfTL = () => (_EventStreamSubscriptionOfTL = dart.constFn(html$._EventStreamSubscription$(T)))();
  class _EventStream extends async.Stream$(T) {
    asBroadcastStream(opts) {
      let onListen = opts && 'onListen' in opts ? opts.onListen : null;
      let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
      return this;
    }
    get isBroadcast() {
      return true;
    }
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      return new (_EventStreamSubscriptionOfTL()).new(this[_target$1], this[_eventType$], onData, this[_useCapture$]);
    }
  }
  (_EventStream.new = function(_target, _eventType, _useCapture) {
    this[_target$1] = _target;
    this[_eventType$] = _eventType;
    this[_useCapture$] = _useCapture;
    _EventStream.__proto__.new.call(this);
    ;
  }).prototype = _EventStream.prototype;
  dart.addTypeTests(_EventStream);
  _EventStream.prototype[_is__EventStream_default] = true;
  dart.addTypeCaches(_EventStream);
  dart.setMethodSignature(_EventStream, () => ({
    __proto__: dart.getMethods(_EventStream.__proto__),
    listen: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {})
  }));
  dart.setLibraryUri(_EventStream, L65);
  dart.setFieldSignature(_EventStream, () => ({
    __proto__: dart.getFields(_EventStream.__proto__),
    [_target$1]: dart.finalFieldType(html$.EventTarget),
    [_eventType$]: dart.finalFieldType(core.String),
    [_useCapture$]: dart.finalFieldType(core.bool)
  }));
  return _EventStream;
});
html$._EventStream = html$._EventStream$();
dart.addTypeTests(html$._EventStream, _is__EventStream_default);
const _is__ElementEventStreamImpl_default = Symbol('_is__ElementEventStreamImpl_default');
html$._ElementEventStreamImpl$ = dart.generic(T => {
  var TLToboolL = () => (TLToboolL = dart.constFn(dart.fnType(core.bool, [T])))();
  var TLToTL = () => (TLToTL = dart.constFn(dart.fnType(T, [T])))();
  var _EventStreamSubscriptionOfTL = () => (_EventStreamSubscriptionOfTL = dart.constFn(html$._EventStreamSubscription$(T)))();
  class _ElementEventStreamImpl extends html$._EventStream$(T) {
    matches(selector) {
      return this.where(dart.fn(event => html$._matchesWithAncestors(event, selector), TLToboolL())).map(T, dart.fn(e => {
        e[_selector] = selector;
        return e;
      }, TLToTL()));
    }
    capture(onData) {
      return new (_EventStreamSubscriptionOfTL()).new(this[_target$1], this[_eventType$], onData, true);
    }
  }
  (_ElementEventStreamImpl.new = function(target, eventType, useCapture) {
    _ElementEventStreamImpl.__proto__.new.call(this, html$.EventTarget.as(target), core.String.as(eventType), core.bool.as(useCapture));
    ;
  }).prototype = _ElementEventStreamImpl.prototype;
  dart.addTypeTests(_ElementEventStreamImpl);
  _ElementEventStreamImpl.prototype[_is__ElementEventStreamImpl_default] = true;
  dart.addTypeCaches(_ElementEventStreamImpl);
  _ElementEventStreamImpl[dart.implements] = () => [html$.ElementStream$(T)];
  dart.setMethodSignature(_ElementEventStreamImpl, () => ({
    __proto__: dart.getMethods(_ElementEventStreamImpl.__proto__),
    matches: dart.fnType(async.Stream$(T), [core.String]),
    capture: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T])])
  }));
  dart.setLibraryUri(_ElementEventStreamImpl, L65);
  return _ElementEventStreamImpl;
});
html$._ElementEventStreamImpl = html$._ElementEventStreamImpl$();
dart.addTypeTests(html$._ElementEventStreamImpl, _is__ElementEventStreamImpl_default);
var _targetList$ = dart.privateName(html$, "_targetList");
const _is__ElementListEventStreamImpl_default = Symbol('_is__ElementListEventStreamImpl_default');
html$._ElementListEventStreamImpl$ = dart.generic(T => {
  var TLToboolL = () => (TLToboolL = dart.constFn(dart.fnType(core.bool, [T])))();
  var TLToTL = () => (TLToTL = dart.constFn(dart.fnType(T, [T])))();
  var _StreamPoolOfTL = () => (_StreamPoolOfTL = dart.constFn(html$._StreamPool$(T)))();
  var _EventStreamOfTL = () => (_EventStreamOfTL = dart.constFn(html$._EventStream$(T)))();
  class _ElementListEventStreamImpl extends async.Stream$(T) {
    matches(selector) {
      return this.where(dart.fn(event => html$._matchesWithAncestors(event, selector), TLToboolL())).map(T, dart.fn(e => {
        e[_selector] = selector;
        return e;
      }, TLToTL()));
    }
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      let pool = new (_StreamPoolOfTL()).broadcast();
      for (let target of this[_targetList$]) {
        pool.add(new (_EventStreamOfTL()).new(target, this[_eventType$], this[_useCapture$]));
      }
      return pool.stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
    }
    capture(onData) {
      let pool = new (_StreamPoolOfTL()).broadcast();
      for (let target of this[_targetList$]) {
        pool.add(new (_EventStreamOfTL()).new(target, this[_eventType$], true));
      }
      return pool.stream.listen(onData);
    }
    asBroadcastStream(opts) {
      let onListen = opts && 'onListen' in opts ? opts.onListen : null;
      let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
      return this;
    }
    get isBroadcast() {
      return true;
    }
  }
  (_ElementListEventStreamImpl.new = function(_targetList, _eventType, _useCapture) {
    this[_targetList$] = _targetList;
    this[_eventType$] = _eventType;
    this[_useCapture$] = _useCapture;
    _ElementListEventStreamImpl.__proto__.new.call(this);
    ;
  }).prototype = _ElementListEventStreamImpl.prototype;
  dart.addTypeTests(_ElementListEventStreamImpl);
  _ElementListEventStreamImpl.prototype[_is__ElementListEventStreamImpl_default] = true;
  dart.addTypeCaches(_ElementListEventStreamImpl);
  _ElementListEventStreamImpl[dart.implements] = () => [html$.ElementStream$(T)];
  dart.setMethodSignature(_ElementListEventStreamImpl, () => ({
    __proto__: dart.getMethods(_ElementListEventStreamImpl.__proto__),
    matches: dart.fnType(async.Stream$(T), [core.String]),
    listen: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {}),
    capture: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T])])
  }));
  dart.setLibraryUri(_ElementListEventStreamImpl, L65);
  dart.setFieldSignature(_ElementListEventStreamImpl, () => ({
    __proto__: dart.getFields(_ElementListEventStreamImpl.__proto__),
    [_targetList$]: dart.finalFieldType(core.Iterable$(html$.Element)),
    [_useCapture$]: dart.finalFieldType(core.bool),
    [_eventType$]: dart.finalFieldType(core.String)
  }));
  return _ElementListEventStreamImpl;
});
html$._ElementListEventStreamImpl = html$._ElementListEventStreamImpl$();
dart.addTypeTests(html$._ElementListEventStreamImpl, _is__ElementListEventStreamImpl_default);
var _pauseCount$ = dart.privateName(html$, "_pauseCount");
var _onData$1 = dart.privateName(html$, "_onData");
var _tryResume = dart.privateName(html$, "_tryResume");
var _canceled = dart.privateName(html$, "_canceled");
var _unlisten = dart.privateName(html$, "_unlisten");
const _is__EventStreamSubscription_default = Symbol('_is__EventStreamSubscription_default');
html$._EventStreamSubscription$ = dart.generic(T => {
  class _EventStreamSubscription extends async.StreamSubscription$(T) {
    cancel() {
      if (dart.test(this[_canceled])) return null;
      this[_unlisten]();
      this[_target$1] = null;
      this[_onData$1] = null;
      return null;
    }
    get [_canceled]() {
      return this[_target$1] == null;
    }
    onData(handleData) {
      if (dart.test(this[_canceled])) {
        dart.throw(new core.StateError.new("Subscription has been canceled."));
      }
      this[_unlisten]();
      this[_onData$1] = handleData == null ? null : html$._wrapZone(html$.Event, dart.fn(e => dart.dcall(handleData, [e]), EventLTodynamic()));
      this[_tryResume]();
    }
    onError(handleError) {
    }
    onDone(handleDone) {
    }
    pause(resumeSignal = null) {
      if (dart.test(this[_canceled])) return;
      this[_pauseCount$] = dart.notNull(this[_pauseCount$]) + 1;
      this[_unlisten]();
      if (resumeSignal != null) {
        resumeSignal.whenComplete(dart.bind(this, 'resume'));
      }
    }
    get isPaused() {
      return dart.notNull(this[_pauseCount$]) > 0;
    }
    resume() {
      if (dart.test(this[_canceled]) || !dart.test(this.isPaused)) return;
      this[_pauseCount$] = dart.notNull(this[_pauseCount$]) - 1;
      this[_tryResume]();
    }
    [_tryResume]() {
      if (this[_onData$1] != null && !dart.test(this.isPaused)) {
        this[_target$1][$addEventListener](this[_eventType$], this[_onData$1], this[_useCapture$]);
      }
    }
    [_unlisten]() {
      if (this[_onData$1] != null) {
        this[_target$1][$removeEventListener](this[_eventType$], this[_onData$1], this[_useCapture$]);
      }
    }
    asFuture(E, futureValue = null) {
      let completer = async.Completer$(E).new();
      return completer.future;
    }
  }
  (_EventStreamSubscription.new = function(_target, _eventType, onData, _useCapture) {
    this[_pauseCount$] = 0;
    this[_target$1] = _target;
    this[_eventType$] = _eventType;
    this[_useCapture$] = _useCapture;
    this[_onData$1] = onData == null ? null : html$._wrapZone(html$.Event, dart.fn(e => dart.dcall(onData, [e]), EventLTodynamic()));
    this[_tryResume]();
  }).prototype = _EventStreamSubscription.prototype;
  dart.addTypeTests(_EventStreamSubscription);
  _EventStreamSubscription.prototype[_is__EventStreamSubscription_default] = true;
  dart.addTypeCaches(_EventStreamSubscription);
  dart.setMethodSignature(_EventStreamSubscription, () => ({
    __proto__: dart.getMethods(_EventStreamSubscription.__proto__),
    cancel: dart.fnType(async.Future, []),
    onData: dart.fnType(dart.void, [dart.fnType(dart.void, [T])]),
    onError: dart.fnType(dart.void, [core.Function]),
    onDone: dart.fnType(dart.void, [dart.fnType(dart.void, [])]),
    pause: dart.fnType(dart.void, [], [async.Future]),
    resume: dart.fnType(dart.void, []),
    [_tryResume]: dart.fnType(dart.void, []),
    [_unlisten]: dart.fnType(dart.void, []),
    asFuture: dart.gFnType(E => [async.Future$(E), [], [E]])
  }));
  dart.setGetterSignature(_EventStreamSubscription, () => ({
    __proto__: dart.getGetters(_EventStreamSubscription.__proto__),
    [_canceled]: core.bool,
    isPaused: core.bool
  }));
  dart.setLibraryUri(_EventStreamSubscription, L65);
  dart.setFieldSignature(_EventStreamSubscription, () => ({
    __proto__: dart.getFields(_EventStreamSubscription.__proto__),
    [_pauseCount$]: dart.fieldType(core.int),
    [_target$1]: dart.fieldType(html$.EventTarget),
    [_eventType$]: dart.finalFieldType(core.String),
    [_onData$1]: dart.fieldType(dart.fnType(dart.dynamic, [html$.Event])),
    [_useCapture$]: dart.finalFieldType(core.bool)
  }));
  return _EventStreamSubscription;
});
html$._EventStreamSubscription = html$._EventStreamSubscription$();
dart.addTypeTests(html$._EventStreamSubscription, _is__EventStreamSubscription_default);
const _is_CustomStream_default = Symbol('_is_CustomStream_default');
html$.CustomStream$ = dart.generic(T => {
  class CustomStream extends core.Object {}
  (CustomStream.new = function() {
    ;
  }).prototype = CustomStream.prototype;
  CustomStream.prototype[dart.isStream] = true;
  dart.addTypeTests(CustomStream);
  CustomStream.prototype[_is_CustomStream_default] = true;
  dart.addTypeCaches(CustomStream);
  CustomStream[dart.implements] = () => [async.Stream$(T)];
  dart.setLibraryUri(CustomStream, L65);
  return CustomStream;
});
html$.CustomStream = html$.CustomStream$();
dart.addTypeTests(html$.CustomStream, _is_CustomStream_default);
var _streamController = dart.privateName(html$, "_streamController");
var _type$3 = dart.privateName(html$, "_type");
const _is__CustomEventStreamImpl_default = Symbol('_is__CustomEventStreamImpl_default');
html$._CustomEventStreamImpl$ = dart.generic(T => {
  var StreamControllerOfTL = () => (StreamControllerOfTL = dart.constFn(async.StreamController$(T)))();
  class _CustomEventStreamImpl extends async.Stream$(T) {
    listen(onData, opts) {
      let onError = opts && 'onError' in opts ? opts.onError : null;
      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
      return this[_streamController].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
    }
    asBroadcastStream(opts) {
      let onListen = opts && 'onListen' in opts ? opts.onListen : null;
      let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
      return this[_streamController].stream;
    }
    get isBroadcast() {
      return true;
    }
    add(event) {
      T.as(event);
      if (event.type == this[_type$3]) this[_streamController].add(event);
    }
  }
  (_CustomEventStreamImpl.new = function(type) {
    this[_streamController] = null;
    this[_type$3] = null;
    _CustomEventStreamImpl.__proto__.new.call(this);
    this[_type$3] = type;
    this[_streamController] = StreamControllerOfTL().broadcast({sync: true});
  }).prototype = _CustomEventStreamImpl.prototype;
  dart.addTypeTests(_CustomEventStreamImpl);
  _CustomEventStreamImpl.prototype[_is__CustomEventStreamImpl_default] = true;
  dart.addTypeCaches(_CustomEventStreamImpl);
  _CustomEventStreamImpl[dart.implements] = () => [html$.CustomStream$(T)];
  dart.setMethodSignature(_CustomEventStreamImpl, () => ({
    __proto__: dart.getMethods(_CustomEventStreamImpl.__proto__),
    listen: dart.fnType(async.StreamSubscription$(T), [dart.fnType(dart.void, [T])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {}),
    add: dart.fnType(dart.void, [core.Object])
  }));
  dart.setLibraryUri(_CustomEventStreamImpl, L65);
  dart.setFieldSignature(_CustomEventStreamImpl, () => ({
    __proto__: dart.getFields(_CustomEventStreamImpl.__proto__),
    [_streamController]: dart.fieldType(async.StreamController$(T)),
    [_type$3]: dart.fieldType(core.String)
  }));
  return _CustomEventStreamImpl;
});
html$._CustomEventStreamImpl = html$._CustomEventStreamImpl$();
dart.addTypeTests(html$._CustomEventStreamImpl, _is__CustomEventStreamImpl_default);
var _parent$0 = dart.privateName(html$, "_parent");
var _shadowAltKey = dart.privateName(html$, "_shadowAltKey");
var _shadowCharCode = dart.privateName(html$, "_shadowCharCode");
var _shadowKeyCode = dart.privateName(html$, "_shadowKeyCode");
var _currentTarget = dart.privateName(html$, "_currentTarget");
var _realAltKey = dart.privateName(html$, "_realAltKey");
var _realCharCode = dart.privateName(html$, "_realCharCode");
var _realKeyCode = dart.privateName(html$, "_realKeyCode");
var _shadowKeyIdentifier = dart.privateName(html$, "_shadowKeyIdentifier");
var _keyIdentifier = dart.privateName(html$, "_keyIdentifier");
var sourceCapabilities = dart.privateName(html$, "KeyEvent.sourceCapabilities");
html$.KeyEvent = class KeyEvent extends html$._WrappedEvent {
  get sourceCapabilities() {
    return this[sourceCapabilities];
  }
  set sourceCapabilities(value) {
    super.sourceCapabilities = value;
  }
  get keyCode() {
    return this[_shadowKeyCode];
  }
  get charCode() {
    return this.type === "keypress" ? this[_shadowCharCode] : 0;
  }
  get altKey() {
    return this[_shadowAltKey];
  }
  get which() {
    return this.keyCode;
  }
  get [_realKeyCode]() {
    return this[_parent$0].keyCode;
  }
  get [_realCharCode]() {
    return this[_parent$0].charCode;
  }
  get [_realAltKey]() {
    return this[_parent$0].altKey;
  }
  static _makeRecord() {
    let interceptor = _foreign_helper.JS_INTERCEPTOR_CONSTANT(dart.wrapType(html$.KeyboardEvent));
    return _js_helper.makeLeafDispatchRecord(interceptor);
  }
  static new(type, opts) {
    let view = opts && 'view' in opts ? opts.view : null;
    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
    let keyCode = opts && 'keyCode' in opts ? opts.keyCode : 0;
    let charCode = opts && 'charCode' in opts ? opts.charCode : 0;
    let location = opts && 'location' in opts ? opts.location : 1;
    let ctrlKey = opts && 'ctrlKey' in opts ? opts.ctrlKey : false;
    let altKey = opts && 'altKey' in opts ? opts.altKey : false;
    let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
    let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
    let currentTarget = opts && 'currentTarget' in opts ? opts.currentTarget : null;
    if (view == null) {
      view = html$.window;
    }
    let eventObj = null;
    eventObj = html$.Event.eventType("KeyboardEvent", type, {canBubble: canBubble, cancelable: cancelable});
    Object.defineProperty(eventObj, 'keyCode', {
      get: function() {
        return this.keyCodeVal;
      }
    });
    Object.defineProperty(eventObj, 'which', {
      get: function() {
        return this.keyCodeVal;
      }
    });
    Object.defineProperty(eventObj, 'charCode', {
      get: function() {
        return this.charCodeVal;
      }
    });
    let keyIdentifier = html$.KeyEvent._convertToHexString(charCode, keyCode);
    dart.dsend(eventObj, _initKeyboardEvent, [type, canBubble, cancelable, view, keyIdentifier, location, ctrlKey, altKey, shiftKey, metaKey]);
    eventObj.keyCodeVal = keyCode;
    eventObj.charCodeVal = charCode;
    _interceptors.setDispatchProperty(eventObj, html$.KeyEvent._keyboardEventDispatchRecord);
    let keyEvent = new html$.KeyEvent.wrap(html$.KeyboardEvent.as(eventObj));
    if (keyEvent[_currentTarget] == null) {
      keyEvent[_currentTarget] = currentTarget == null ? html$.window : currentTarget;
    }
    return keyEvent;
  }
  static get canUseDispatchEvent() {
    return typeof document.body.dispatchEvent == "function" && document.body.dispatchEvent.length > 0;
  }
  get currentTarget() {
    return this[_currentTarget];
  }
  static _convertToHexString(charCode, keyCode) {
    if (charCode !== -1) {
      let hex = charCode[$toRadixString](16);
      let sb = new core.StringBuffer.new("U+");
      for (let i = 0; i < 4 - hex.length; i = i + 1)
        sb.write("0");
      sb.write(hex);
      return sb.toString();
    } else {
      return html$.KeyCode._convertKeyCodeToKeyName(keyCode);
    }
  }
  get code() {
    return this[_parent$0].code;
  }
  get ctrlKey() {
    return this[_parent$0].ctrlKey;
  }
  get detail() {
    return this[_parent$0].detail;
  }
  get isComposing() {
    return this[_parent$0].isComposing;
  }
  get key() {
    return this[_parent$0].key;
  }
  get location() {
    return this[_parent$0].location;
  }
  get metaKey() {
    return this[_parent$0].metaKey;
  }
  get shiftKey() {
    return this[_parent$0].shiftKey;
  }
  get view() {
    return html$.Window.as(this[_parent$0][$view]);
  }
  [_initUIEvent](type, canBubble, cancelable, view, detail) {
    dart.throw(new core.UnsupportedError.new("Cannot initialize a UI Event from a KeyEvent."));
  }
  get [_shadowKeyIdentifier]() {
    return this[_parent$0].keyIdentifier;
  }
  get [_charCode]() {
    return this.charCode;
  }
  get [_keyCode]() {
    return this.keyCode;
  }
  get [_which]() {
    return this.which;
  }
  get [_keyIdentifier]() {
    dart.throw(new core.UnsupportedError.new("keyIdentifier is unsupported."));
  }
  [_initKeyboardEvent](type, canBubble, cancelable, view, keyIdentifier, location, ctrlKey, altKey, shiftKey, metaKey) {
    dart.throw(new core.UnsupportedError.new("Cannot initialize a KeyboardEvent from a KeyEvent."));
  }
  getModifierState(keyArgument) {
    return dart.throw(new core.UnimplementedError.new());
  }
  get repeat() {
    return dart.throw(new core.UnimplementedError.new());
  }
  get isComposed() {
    return dart.throw(new core.UnimplementedError.new());
  }
  get [_get_view]() {
    return dart.throw(new core.UnimplementedError.new());
  }
};
(html$.KeyEvent.wrap = function(parent) {
  this[_parent$0] = null;
  this[_shadowAltKey] = null;
  this[_shadowCharCode] = null;
  this[_shadowKeyCode] = null;
  this[_currentTarget] = null;
  this[sourceCapabilities] = null;
  html$.KeyEvent.__proto__.new.call(this, parent);
  this[_parent$0] = parent;
  this[_shadowAltKey] = this[_realAltKey];
  this[_shadowCharCode] = this[_realCharCode];
  this[_shadowKeyCode] = this[_realKeyCode];
  this[_currentTarget] = this[_parent$0][$currentTarget];
}).prototype = html$.KeyEvent.prototype;
dart.addTypeTests(html$.KeyEvent);
dart.addTypeCaches(html$.KeyEvent);
html$.KeyEvent[dart.implements] = () => [html$.KeyboardEvent];
dart.setMethodSignature(html$.KeyEvent, () => ({
  __proto__: dart.getMethods(html$.KeyEvent.__proto__),
  [_initUIEvent]: dart.fnType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int]),
  [_initKeyboardEvent]: dart.fnType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.String, core.int, core.bool, core.bool, core.bool, core.bool]),
  getModifierState: dart.fnType(core.bool, [core.String]),
  [$getModifierState]: dart.fnType(core.bool, [core.String])
}));
dart.setGetterSignature(html$.KeyEvent, () => ({
  __proto__: dart.getGetters(html$.KeyEvent.__proto__),
  keyCode: core.int,
  [$keyCode]: core.int,
  charCode: core.int,
  [$charCode]: core.int,
  altKey: core.bool,
  [$altKey]: core.bool,
  which: core.int,
  [$which]: core.int,
  [_realKeyCode]: core.int,
  [_realCharCode]: core.int,
  [_realAltKey]: core.bool,
  code: core.String,
  [$code]: core.String,
  ctrlKey: core.bool,
  [$ctrlKey]: core.bool,
  detail: core.int,
  [$detail]: core.int,
  isComposing: core.bool,
  [$isComposing]: core.bool,
  key: core.String,
  [$key]: core.String,
  location: core.int,
  [$location]: core.int,
  metaKey: core.bool,
  [$metaKey]: core.bool,
  shiftKey: core.bool,
  [$shiftKey]: core.bool,
  view: html$.Window,
  [$view]: html$.Window,
  [_shadowKeyIdentifier]: core.String,
  [_charCode]: core.int,
  [_keyCode]: core.int,
  [_which]: core.int,
  [_keyIdentifier]: core.String,
  repeat: core.bool,
  [$repeat]: core.bool,
  isComposed: core.bool,
  [_get_view]: dart.dynamic
}));
dart.setLibraryUri(html$.KeyEvent, L65);
dart.setFieldSignature(html$.KeyEvent, () => ({
  __proto__: dart.getFields(html$.KeyEvent.__proto__),
  [_parent$0]: dart.fieldType(html$.KeyboardEvent),
  [_shadowAltKey]: dart.fieldType(core.bool),
  [_shadowCharCode]: dart.fieldType(core.int),
  [_shadowKeyCode]: dart.fieldType(core.int),
  [_currentTarget]: dart.fieldType(html$.EventTarget),
  sourceCapabilities: dart.finalFieldType(html$.InputDeviceCapabilities)
}));
dart.defineExtensionMethods(html$.KeyEvent, ['getModifierState']);
dart.defineExtensionAccessors(html$.KeyEvent, [
  'sourceCapabilities',
  'keyCode',
  'charCode',
  'altKey',
  'which',
  'currentTarget',
  'code',
  'ctrlKey',
  'detail',
  'isComposing',
  'key',
  'location',
  'metaKey',
  'shiftKey',
  'view',
  'repeat'
]);
dart.defineLazy(html$.KeyEvent, {
  /*html$.KeyEvent._keyboardEventDispatchRecord*/get _keyboardEventDispatchRecord() {
    return html$.KeyEvent._makeRecord();
  },
  /*html$.KeyEvent.keyDownEvent*/get keyDownEvent() {
    return new html$._KeyboardEventHandler.new("keydown");
  },
  set keyDownEvent(_) {},
  /*html$.KeyEvent.keyUpEvent*/get keyUpEvent() {
    return new html$._KeyboardEventHandler.new("keyup");
  },
  set keyUpEvent(_) {},
  /*html$.KeyEvent.keyPressEvent*/get keyPressEvent() {
    return new html$._KeyboardEventHandler.new("keypress");
  },
  set keyPressEvent(_) {}
}, true);
html$._CustomKeyEventStreamImpl = class _CustomKeyEventStreamImpl extends html$._CustomEventStreamImpl$(html$.KeyEvent) {
  add(event) {
    html$.KeyEvent.as(event);
    if (event.type == this[_type$3]) {
      event.currentTarget.dispatchEvent(event[_parent$0]);
      this[_streamController].add(event);
    }
  }
};
(html$._CustomKeyEventStreamImpl.new = function(type) {
  html$._CustomKeyEventStreamImpl.__proto__.new.call(this, type);
  ;
}).prototype = html$._CustomKeyEventStreamImpl.prototype;
dart.addTypeTests(html$._CustomKeyEventStreamImpl);
dart.addTypeCaches(html$._CustomKeyEventStreamImpl);
html$._CustomKeyEventStreamImpl[dart.implements] = () => [html$.CustomStream$(html$.KeyEvent)];
dart.setLibraryUri(html$._CustomKeyEventStreamImpl, L65);
var _controller$0 = dart.privateName(html$, "_controller");
var _subscriptions = dart.privateName(html$, "_subscriptions");
const _is__StreamPool_default = Symbol('_is__StreamPool_default');
html$._StreamPool$ = dart.generic(T => {
  var StreamOfTL = () => (StreamOfTL = dart.constFn(async.Stream$(T)))();
  var StreamSubscriptionOfTL = () => (StreamSubscriptionOfTL = dart.constFn(async.StreamSubscription$(T)))();
  var LinkedMapOfStreamLOfTL$StreamSubscriptionLOfTL = () => (LinkedMapOfStreamLOfTL$StreamSubscriptionLOfTL = dart.constFn(_js_helper.LinkedMap$(StreamOfTL(), StreamSubscriptionOfTL())))();
  var StreamControllerOfTL = () => (StreamControllerOfTL = dart.constFn(async.StreamController$(T)))();
  class _StreamPool extends core.Object {
    get stream() {
      return this[_controller$0].stream;
    }
    add(stream) {
      StreamOfTL().as(stream);
      if (dart.test(this[_subscriptions][$containsKey](stream))) return;
      this[_subscriptions][$_set](stream, stream.listen(dart.bind(this[_controller$0], 'add'), {onError: dart.bind(this[_controller$0], 'addError'), onDone: dart.fn(() => this.remove(stream), VoidTovoid())}));
    }
    remove(stream) {
      StreamOfTL().as(stream);
      let subscription = this[_subscriptions][$remove](stream);
      if (subscription != null) subscription.cancel();
    }
    close() {
      for (let subscription of this[_subscriptions][$values]) {
        subscription.cancel();
      }
      this[_subscriptions][$clear]();
      this[_controller$0].close();
    }
  }
  (_StreamPool.broadcast = function() {
    this[_controller$0] = null;
    this[_subscriptions] = new (LinkedMapOfStreamLOfTL$StreamSubscriptionLOfTL()).new();
    this[_controller$0] = StreamControllerOfTL().broadcast({sync: true, onCancel: dart.bind(this, 'close')});
  }).prototype = _StreamPool.prototype;
  dart.addTypeTests(_StreamPool);
  _StreamPool.prototype[_is__StreamPool_default] = true;
  dart.addTypeCaches(_StreamPool);
  dart.setMethodSignature(_StreamPool, () => ({
    __proto__: dart.getMethods(_StreamPool.__proto__),
    add: dart.fnType(dart.void, [core.Object]),
    remove: dart.fnType(dart.void, [core.Object]),
    close: dart.fnType(dart.void, [])
  }));
  dart.setGetterSignature(_StreamPool, () => ({
    __proto__: dart.getGetters(_StreamPool.__proto__),
    stream: async.Stream$(T)
  }));
  dart.setLibraryUri(_StreamPool, L65);
  dart.setFieldSignature(_StreamPool, () => ({
    __proto__: dart.getFields(_StreamPool.__proto__),
    [_controller$0]: dart.fieldType(async.StreamController$(T)),
    [_subscriptions]: dart.fieldType(core.Map$(async.Stream$(T), async.StreamSubscription$(T)))
  }));
  return _StreamPool;
});
html$._StreamPool = html$._StreamPool$();
dart.addTypeTests(html$._StreamPool, _is__StreamPool_default);
var _eventTypeGetter = dart.privateName(html$, "_eventTypeGetter");
const _is__CustomEventStreamProvider_default = Symbol('_is__CustomEventStreamProvider_default');
html$._CustomEventStreamProvider$ = dart.generic(T => {
  var _EventStreamOfTL = () => (_EventStreamOfTL = dart.constFn(html$._EventStream$(T)))();
  var _ElementEventStreamImplOfTL = () => (_ElementEventStreamImplOfTL = dart.constFn(html$._ElementEventStreamImpl$(T)))();
  var _ElementListEventStreamImplOfTL = () => (_ElementListEventStreamImplOfTL = dart.constFn(html$._ElementListEventStreamImpl$(T)))();
  class _CustomEventStreamProvider extends core.Object {
    get [_eventTypeGetter]() {
      return this[_eventTypeGetter$];
    }
    set [_eventTypeGetter](value) {
      super[_eventTypeGetter] = value;
    }
    forTarget(e, opts) {
      let t117;
      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
      return new (_EventStreamOfTL()).new(e, core.String.as((t117 = e, dart.dsend(this, _eventTypeGetter, [t117]))), useCapture);
    }
    forElement(e, opts) {
      let t117;
      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
      return new (_ElementEventStreamImplOfTL()).new(e, (t117 = e, dart.dsend(this, _eventTypeGetter, [t117])), useCapture);
    }
    [_forElementList](e, opts) {
      let t117;
      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
      return new (_ElementListEventStreamImplOfTL()).new(e, core.String.as((t117 = e, dart.dsend(this, _eventTypeGetter, [t117]))), useCapture);
    }
    getEventType(target) {
      let t117;
      return core.String.as((t117 = target, dart.dsend(this, _eventTypeGetter, [t117])));
    }
    get [_eventType$]() {
      return dart.throw(new core.UnsupportedError.new("Access type through getEventType method."));
    }
  }
  (_CustomEventStreamProvider.new = function(_eventTypeGetter) {
    this[_eventTypeGetter$] = _eventTypeGetter;
    ;
  }).prototype = _CustomEventStreamProvider.prototype;
  dart.addTypeTests(_CustomEventStreamProvider);
  _CustomEventStreamProvider.prototype[_is__CustomEventStreamProvider_default] = true;
  dart.addTypeCaches(_CustomEventStreamProvider);
  const _eventTypeGetter$ = _CustomEventStreamProvider__eventTypeGetter;
  _CustomEventStreamProvider[dart.implements] = () => [html$.EventStreamProvider$(T)];
  dart.setMethodSignature(_CustomEventStreamProvider, () => ({
    __proto__: dart.getMethods(_CustomEventStreamProvider.__proto__),
    forTarget: dart.fnType(async.Stream$(T), [html$.EventTarget], {useCapture: core.bool}, {}),
    forElement: dart.fnType(html$.ElementStream$(T), [html$.Element], {useCapture: core.bool}, {}),
    [_forElementList]: dart.fnType(html$.ElementStream$(T), [html$.ElementList$(html$.Element)], {useCapture: core.bool}, {}),
    getEventType: dart.fnType(core.String, [html$.EventTarget])
  }));
  dart.setGetterSignature(_CustomEventStreamProvider, () => ({
    __proto__: dart.getGetters(_CustomEventStreamProvider.__proto__),
    [_eventType$]: core.String
  }));
  dart.setLibraryUri(_CustomEventStreamProvider, L65);
  dart.setFieldSignature(_CustomEventStreamProvider, () => ({
    __proto__: dart.getFields(_CustomEventStreamProvider.__proto__),
    [_eventTypeGetter]: dart.finalFieldType(dart.dynamic)
  }));
  return _CustomEventStreamProvider;
});
html$._CustomEventStreamProvider = html$._CustomEventStreamProvider$();
dart.addTypeTests(html$._CustomEventStreamProvider, _is__CustomEventStreamProvider_default);
var C399;
var C400;
var C401;
var C402;
html$._Html5NodeValidator = class _Html5NodeValidator extends core.Object {
  allowsElement(element) {
    return html$._Html5NodeValidator._allowedElements.contains(html$.Element._safeTagName(element));
  }
  allowsAttribute(element, attributeName, value) {
    let tagName = html$.Element._safeTagName(element);
    let validator = html$._Html5NodeValidator._attributeValidators[$_get](dart.str(tagName) + "::" + dart.str(attributeName));
    if (validator == null) {
      validator = html$._Html5NodeValidator._attributeValidators[$_get]("*::" + dart.str(attributeName));
    }
    if (validator == null) {
      return false;
    }
    return core.bool.as(dart.dcall(validator, [element, attributeName, value, this]));
  }
  static _standardAttributeValidator(element, attributeName, value, context) {
    return true;
  }
  static _uriAttributeValidator(element, attributeName, value, context) {
    return context.uriPolicy.allowsUri(value);
  }
};
(html$._Html5NodeValidator.new = function(opts) {
  let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
  this.uriPolicy = uriPolicy != null ? uriPolicy : html$.UriPolicy.new();
  if (dart.test(html$._Html5NodeValidator._attributeValidators[$isEmpty])) {
    for (let attr of html$._Html5NodeValidator._standardAttributes) {
      html$._Html5NodeValidator._attributeValidators[$_set](attr, C399 || CT.C399);
    }
    for (let attr of html$._Html5NodeValidator._uriAttributes) {
      html$._Html5NodeValidator._attributeValidators[$_set](attr, C400 || CT.C400);
    }
  }
}).prototype = html$._Html5NodeValidator.prototype;
dart.addTypeTests(html$._Html5NodeValidator);
dart.addTypeCaches(html$._Html5NodeValidator);
html$._Html5NodeValidator[dart.implements] = () => [html$.NodeValidator];
dart.setMethodSignature(html$._Html5NodeValidator, () => ({
  __proto__: dart.getMethods(html$._Html5NodeValidator.__proto__),
  allowsElement: dart.fnType(core.bool, [html$.Element]),
  allowsAttribute: dart.fnType(core.bool, [html$.Element, core.String, core.String])
}));
dart.setLibraryUri(html$._Html5NodeValidator, L65);
dart.setFieldSignature(html$._Html5NodeValidator, () => ({
  __proto__: dart.getFields(html$._Html5NodeValidator.__proto__),
  uriPolicy: dart.finalFieldType(html$.UriPolicy)
}));
dart.defineLazy(html$._Html5NodeValidator, {
  /*html$._Html5NodeValidator._allowedElements*/get _allowedElements() {
    return LinkedHashSetOfStringL().from(["A", "ABBR", "ACRONYM", "ADDRESS", "AREA", "ARTICLE", "ASIDE", "AUDIO", "B", "BDI", "BDO", "BIG", "BLOCKQUOTE", "BR", "BUTTON", "CANVAS", "CAPTION", "CENTER", "CITE", "CODE", "COL", "COLGROUP", "COMMAND", "DATA", "DATALIST", "DD", "DEL", "DETAILS", "DFN", "DIR", "DIV", "DL", "DT", "EM", "FIELDSET", "FIGCAPTION", "FIGURE", "FONT", "FOOTER", "FORM", "H1", "H2", "H3", "H4", "H5", "H6", "HEADER", "HGROUP", "HR", "I", "IFRAME", "IMG", "INPUT", "INS", "KBD", "LABEL", "LEGEND", "LI", "MAP", "MARK", "MENU", "METER", "NAV", "NOBR", "OL", "OPTGROUP", "OPTION", "OUTPUT", "P", "PRE", "PROGRESS", "Q", "S", "SAMP", "SECTION", "SELECT", "SMALL", "SOURCE", "SPAN", "STRIKE", "STRONG", "SUB", "SUMMARY", "SUP", "TABLE", "TBODY", "TD", "TEXTAREA", "TFOOT", "TH", "THEAD", "TIME", "TR", "TRACK", "TT", "U", "UL", "VAR", "VIDEO", "WBR"]);
  },
  /*html$._Html5NodeValidator._standardAttributes*/get _standardAttributes() {
    return C401 || CT.C401;
  },
  /*html$._Html5NodeValidator._uriAttributes*/get _uriAttributes() {
    return C402 || CT.C402;
  },
  /*html$._Html5NodeValidator._attributeValidators*/get _attributeValidators() {
    return new (IdentityMapOfStringL$FunctionL()).new();
  }
}, true);
html$.KeyCode = class KeyCode extends core.Object {
  static isCharacterKey(keyCode) {
    if (dart.notNull(keyCode) >= 48 && dart.notNull(keyCode) <= 57 || dart.notNull(keyCode) >= 96 && dart.notNull(keyCode) <= 106 || dart.notNull(keyCode) >= 65 && dart.notNull(keyCode) <= 90) {
      return true;
    }
    if (dart.test(html_common.Device.isWebKit) && keyCode === 0) {
      return true;
    }
    return keyCode === 32 || keyCode === 63 || keyCode === 107 || keyCode === 109 || keyCode === 110 || keyCode === 111 || keyCode === 186 || keyCode === 59 || keyCode === 189 || keyCode === 187 || keyCode === 61 || keyCode === 188 || keyCode === 190 || keyCode === 191 || keyCode === 192 || keyCode === 222 || keyCode === 219 || keyCode === 220 || keyCode === 221;
  }
  static _convertKeyCodeToKeyName(keyCode) {
    switch (keyCode) {
      case 18:
      {
        return "Alt";
      }
      case 8:
      {
        return "Backspace";
      }
      case 20:
      {
        return "CapsLock";
      }
      case 17:
      {
        return "Control";
      }
      case 46:
      {
        return "Del";
      }
      case 40:
      {
        return "Down";
      }
      case 35:
      {
        return "End";
      }
      case 13:
      {
        return "Enter";
      }
      case 27:
      {
        return "Esc";
      }
      case 112:
      {
        return "F1";
      }
      case 113:
      {
        return "F2";
      }
      case 114:
      {
        return "F3";
      }
      case 115:
      {
        return "F4";
      }
      case 116:
      {
        return "F5";
      }
      case 117:
      {
        return "F6";
      }
      case 118:
      {
        return "F7";
      }
      case 119:
      {
        return "F8";
      }
      case 120:
      {
        return "F9";
      }
      case 121:
      {
        return "F10";
      }
      case 122:
      {
        return "F11";
      }
      case 123:
      {
        return "F12";
      }
      case 36:
      {
        return "Home";
      }
      case 45:
      {
        return "Insert";
      }
      case 37:
      {
        return "Left";
      }
      case 91:
      {
        return "Meta";
      }
      case 144:
      {
        return "NumLock";
      }
      case 34:
      {
        return "PageDown";
      }
      case 33:
      {
        return "PageUp";
      }
      case 19:
      {
        return "Pause";
      }
      case 44:
      {
        return "PrintScreen";
      }
      case 39:
      {
        return "Right";
      }
      case 145:
      {
        return "Scroll";
      }
      case 16:
      {
        return "Shift";
      }
      case 32:
      {
        return "Spacebar";
      }
      case 9:
      {
        return "Tab";
      }
      case 38:
      {
        return "Up";
      }
      case 229:
      case 224:
      case 91:
      case 92:
      {
        return "Win";
      }
      default:
      {
        return "Unidentified";
      }
    }
    return "Unidentified";
  }
};
(html$.KeyCode.new = function() {
  ;
}).prototype = html$.KeyCode.prototype;
dart.addTypeTests(html$.KeyCode);
dart.addTypeCaches(html$.KeyCode);
dart.setLibraryUri(html$.KeyCode, L65);
dart.defineLazy(html$.KeyCode, {
  /*html$.KeyCode.WIN_KEY_FF_LINUX*/get WIN_KEY_FF_LINUX() {
    return 0;
  },
  /*html$.KeyCode.MAC_ENTER*/get MAC_ENTER() {
    return 3;
  },
  /*html$.KeyCode.BACKSPACE*/get BACKSPACE() {
    return 8;
  },
  /*html$.KeyCode.TAB*/get TAB() {
    return 9;
  },
  /*html$.KeyCode.NUM_CENTER*/get NUM_CENTER() {
    return 12;
  },
  /*html$.KeyCode.ENTER*/get ENTER() {
    return 13;
  },
  /*html$.KeyCode.SHIFT*/get SHIFT() {
    return 16;
  },
  /*html$.KeyCode.CTRL*/get CTRL() {
    return 17;
  },
  /*html$.KeyCode.ALT*/get ALT() {
    return 18;
  },
  /*html$.KeyCode.PAUSE*/get PAUSE() {
    return 19;
  },
  /*html$.KeyCode.CAPS_LOCK*/get CAPS_LOCK() {
    return 20;
  },
  /*html$.KeyCode.ESC*/get ESC() {
    return 27;
  },
  /*html$.KeyCode.SPACE*/get SPACE() {
    return 32;
  },
  /*html$.KeyCode.PAGE_UP*/get PAGE_UP() {
    return 33;
  },
  /*html$.KeyCode.PAGE_DOWN*/get PAGE_DOWN() {
    return 34;
  },
  /*html$.KeyCode.END*/get END() {
    return 35;
  },
  /*html$.KeyCode.HOME*/get HOME() {
    return 36;
  },
  /*html$.KeyCode.LEFT*/get LEFT() {
    return 37;
  },
  /*html$.KeyCode.UP*/get UP() {
    return 38;
  },
  /*html$.KeyCode.RIGHT*/get RIGHT() {
    return 39;
  },
  /*html$.KeyCode.DOWN*/get DOWN() {
    return 40;
  },
  /*html$.KeyCode.NUM_NORTH_EAST*/get NUM_NORTH_EAST() {
    return 33;
  },
  /*html$.KeyCode.NUM_SOUTH_EAST*/get NUM_SOUTH_EAST() {
    return 34;
  },
  /*html$.KeyCode.NUM_SOUTH_WEST*/get NUM_SOUTH_WEST() {
    return 35;
  },
  /*html$.KeyCode.NUM_NORTH_WEST*/get NUM_NORTH_WEST() {
    return 36;
  },
  /*html$.KeyCode.NUM_WEST*/get NUM_WEST() {
    return 37;
  },
  /*html$.KeyCode.NUM_NORTH*/get NUM_NORTH() {
    return 38;
  },
  /*html$.KeyCode.NUM_EAST*/get NUM_EAST() {
    return 39;
  },
  /*html$.KeyCode.NUM_SOUTH*/get NUM_SOUTH() {
    return 40;
  },
  /*html$.KeyCode.PRINT_SCREEN*/get PRINT_SCREEN() {
    return 44;
  },
  /*html$.KeyCode.INSERT*/get INSERT() {
    return 45;
  },
  /*html$.KeyCode.NUM_INSERT*/get NUM_INSERT() {
    return 45;
  },
  /*html$.KeyCode.DELETE*/get DELETE() {
    return 46;
  },
  /*html$.KeyCode.NUM_DELETE*/get NUM_DELETE() {
    return 46;
  },
  /*html$.KeyCode.ZERO*/get ZERO() {
    return 48;
  },
  /*html$.KeyCode.ONE*/get ONE() {
    return 49;
  },
  /*html$.KeyCode.TWO*/get TWO() {
    return 50;
  },
  /*html$.KeyCode.THREE*/get THREE() {
    return 51;
  },
  /*html$.KeyCode.FOUR*/get FOUR() {
    return 52;
  },
  /*html$.KeyCode.FIVE*/get FIVE() {
    return 53;
  },
  /*html$.KeyCode.SIX*/get SIX() {
    return 54;
  },
  /*html$.KeyCode.SEVEN*/get SEVEN() {
    return 55;
  },
  /*html$.KeyCode.EIGHT*/get EIGHT() {
    return 56;
  },
  /*html$.KeyCode.NINE*/get NINE() {
    return 57;
  },
  /*html$.KeyCode.FF_SEMICOLON*/get FF_SEMICOLON() {
    return 59;
  },
  /*html$.KeyCode.FF_EQUALS*/get FF_EQUALS() {
    return 61;
  },
  /*html$.KeyCode.QUESTION_MARK*/get QUESTION_MARK() {
    return 63;
  },
  /*html$.KeyCode.A*/get A() {
    return 65;
  },
  /*html$.KeyCode.B*/get B() {
    return 66;
  },
  /*html$.KeyCode.C*/get C() {
    return 67;
  },
  /*html$.KeyCode.D*/get D() {
    return 68;
  },
  /*html$.KeyCode.E*/get E() {
    return 69;
  },
  /*html$.KeyCode.F*/get F() {
    return 70;
  },
  /*html$.KeyCode.G*/get G() {
    return 71;
  },
  /*html$.KeyCode.H*/get H() {
    return 72;
  },
  /*html$.KeyCode.I*/get I() {
    return 73;
  },
  /*html$.KeyCode.J*/get J() {
    return 74;
  },
  /*html$.KeyCode.K*/get K() {
    return 75;
  },
  /*html$.KeyCode.L*/get L() {
    return 76;
  },
  /*html$.KeyCode.M*/get M() {
    return 77;
  },
  /*html$.KeyCode.N*/get N() {
    return 78;
  },
  /*html$.KeyCode.O*/get O() {
    return 79;
  },
  /*html$.KeyCode.P*/get P() {
    return 80;
  },
  /*html$.KeyCode.Q*/get Q() {
    return 81;
  },
  /*html$.KeyCode.R*/get R() {
    return 82;
  },
  /*html$.KeyCode.S*/get S() {
    return 83;
  },
  /*html$.KeyCode.T*/get T() {
    return 84;
  },
  /*html$.KeyCode.U*/get U() {
    return 85;
  },
  /*html$.KeyCode.V*/get V() {
    return 86;
  },
  /*html$.KeyCode.W*/get W() {
    return 87;
  },
  /*html$.KeyCode.X*/get X() {
    return 88;
  },
  /*html$.KeyCode.Y*/get Y() {
    return 89;
  },
  /*html$.KeyCode.Z*/get Z() {
    return 90;
  },
  /*html$.KeyCode.META*/get META() {
    return 91;
  },
  /*html$.KeyCode.WIN_KEY_LEFT*/get WIN_KEY_LEFT() {
    return 91;
  },
  /*html$.KeyCode.WIN_KEY_RIGHT*/get WIN_KEY_RIGHT() {
    return 92;
  },
  /*html$.KeyCode.CONTEXT_MENU*/get CONTEXT_MENU() {
    return 93;
  },
  /*html$.KeyCode.NUM_ZERO*/get NUM_ZERO() {
    return 96;
  },
  /*html$.KeyCode.NUM_ONE*/get NUM_ONE() {
    return 97;
  },
  /*html$.KeyCode.NUM_TWO*/get NUM_TWO() {
    return 98;
  },
  /*html$.KeyCode.NUM_THREE*/get NUM_THREE() {
    return 99;
  },
  /*html$.KeyCode.NUM_FOUR*/get NUM_FOUR() {
    return 100;
  },
  /*html$.KeyCode.NUM_FIVE*/get NUM_FIVE() {
    return 101;
  },
  /*html$.KeyCode.NUM_SIX*/get NUM_SIX() {
    return 102;
  },
  /*html$.KeyCode.NUM_SEVEN*/get NUM_SEVEN() {
    return 103;
  },
  /*html$.KeyCode.NUM_EIGHT*/get NUM_EIGHT() {
    return 104;
  },
  /*html$.KeyCode.NUM_NINE*/get NUM_NINE() {
    return 105;
  },
  /*html$.KeyCode.NUM_MULTIPLY*/get NUM_MULTIPLY() {
    return 106;
  },
  /*html$.KeyCode.NUM_PLUS*/get NUM_PLUS() {
    return 107;
  },
  /*html$.KeyCode.NUM_MINUS*/get NUM_MINUS() {
    return 109;
  },
  /*html$.KeyCode.NUM_PERIOD*/get NUM_PERIOD() {
    return 110;
  },
  /*html$.KeyCode.NUM_DIVISION*/get NUM_DIVISION() {
    return 111;
  },
  /*html$.KeyCode.F1*/get F1() {
    return 112;
  },
  /*html$.KeyCode.F2*/get F2() {
    return 113;
  },
  /*html$.KeyCode.F3*/get F3() {
    return 114;
  },
  /*html$.KeyCode.F4*/get F4() {
    return 115;
  },
  /*html$.KeyCode.F5*/get F5() {
    return 116;
  },
  /*html$.KeyCode.F6*/get F6() {
    return 117;
  },
  /*html$.KeyCode.F7*/get F7() {
    return 118;
  },
  /*html$.KeyCode.F8*/get F8() {
    return 119;
  },
  /*html$.KeyCode.F9*/get F9() {
    return 120;
  },
  /*html$.KeyCode.F10*/get F10() {
    return 121;
  },
  /*html$.KeyCode.F11*/get F11() {
    return 122;
  },
  /*html$.KeyCode.F12*/get F12() {
    return 123;
  },
  /*html$.KeyCode.NUMLOCK*/get NUMLOCK() {
    return 144;
  },
  /*html$.KeyCode.SCROLL_LOCK*/get SCROLL_LOCK() {
    return 145;
  },
  /*html$.KeyCode.FIRST_MEDIA_KEY*/get FIRST_MEDIA_KEY() {
    return 166;
  },
  /*html$.KeyCode.LAST_MEDIA_KEY*/get LAST_MEDIA_KEY() {
    return 183;
  },
  /*html$.KeyCode.SEMICOLON*/get SEMICOLON() {
    return 186;
  },
  /*html$.KeyCode.DASH*/get DASH() {
    return 189;
  },
  /*html$.KeyCode.EQUALS*/get EQUALS() {
    return 187;
  },
  /*html$.KeyCode.COMMA*/get COMMA() {
    return 188;
  },
  /*html$.KeyCode.PERIOD*/get PERIOD() {
    return 190;
  },
  /*html$.KeyCode.SLASH*/get SLASH() {
    return 191;
  },
  /*html$.KeyCode.APOSTROPHE*/get APOSTROPHE() {
    return 192;
  },
  /*html$.KeyCode.TILDE*/get TILDE() {
    return 192;
  },
  /*html$.KeyCode.SINGLE_QUOTE*/get SINGLE_QUOTE() {
    return 222;
  },
  /*html$.KeyCode.OPEN_SQUARE_BRACKET*/get OPEN_SQUARE_BRACKET() {
    return 219;
  },
  /*html$.KeyCode.BACKSLASH*/get BACKSLASH() {
    return 220;
  },
  /*html$.KeyCode.CLOSE_SQUARE_BRACKET*/get CLOSE_SQUARE_BRACKET() {
    return 221;
  },
  /*html$.KeyCode.WIN_KEY*/get WIN_KEY() {
    return 224;
  },
  /*html$.KeyCode.MAC_FF_META*/get MAC_FF_META() {
    return 224;
  },
  /*html$.KeyCode.WIN_IME*/get WIN_IME() {
    return 229;
  },
  /*html$.KeyCode.UNKNOWN*/get UNKNOWN() {
    return -1;
  }
}, true);
html$.KeyLocation = class KeyLocation extends core.Object {};
(html$.KeyLocation.new = function() {
  ;
}).prototype = html$.KeyLocation.prototype;
dart.addTypeTests(html$.KeyLocation);
dart.addTypeCaches(html$.KeyLocation);
dart.setLibraryUri(html$.KeyLocation, L65);
dart.defineLazy(html$.KeyLocation, {
  /*html$.KeyLocation.STANDARD*/get STANDARD() {
    return 0;
  },
  /*html$.KeyLocation.LEFT*/get LEFT() {
    return 1;
  },
  /*html$.KeyLocation.RIGHT*/get RIGHT() {
    return 2;
  },
  /*html$.KeyLocation.NUMPAD*/get NUMPAD() {
    return 3;
  },
  /*html$.KeyLocation.MOBILE*/get MOBILE() {
    return 4;
  },
  /*html$.KeyLocation.JOYSTICK*/get JOYSTICK() {
    return 5;
  }
}, true);
html$._KeyName = class _KeyName extends core.Object {};
(html$._KeyName.new = function() {
  ;
}).prototype = html$._KeyName.prototype;
dart.addTypeTests(html$._KeyName);
dart.addTypeCaches(html$._KeyName);
dart.setLibraryUri(html$._KeyName, L65);
dart.defineLazy(html$._KeyName, {
  /*html$._KeyName.ACCEPT*/get ACCEPT() {
    return "Accept";
  },
  /*html$._KeyName.ADD*/get ADD() {
    return "Add";
  },
  /*html$._KeyName.AGAIN*/get AGAIN() {
    return "Again";
  },
  /*html$._KeyName.ALL_CANDIDATES*/get ALL_CANDIDATES() {
    return "AllCandidates";
  },
  /*html$._KeyName.ALPHANUMERIC*/get ALPHANUMERIC() {
    return "Alphanumeric";
  },
  /*html$._KeyName.ALT*/get ALT() {
    return "Alt";
  },
  /*html$._KeyName.ALT_GRAPH*/get ALT_GRAPH() {
    return "AltGraph";
  },
  /*html$._KeyName.APPS*/get APPS() {
    return "Apps";
  },
  /*html$._KeyName.ATTN*/get ATTN() {
    return "Attn";
  },
  /*html$._KeyName.BROWSER_BACK*/get BROWSER_BACK() {
    return "BrowserBack";
  },
  /*html$._KeyName.BROWSER_FAVORTIES*/get BROWSER_FAVORTIES() {
    return "BrowserFavorites";
  },
  /*html$._KeyName.BROWSER_FORWARD*/get BROWSER_FORWARD() {
    return "BrowserForward";
  },
  /*html$._KeyName.BROWSER_NAME*/get BROWSER_NAME() {
    return "BrowserHome";
  },
  /*html$._KeyName.BROWSER_REFRESH*/get BROWSER_REFRESH() {
    return "BrowserRefresh";
  },
  /*html$._KeyName.BROWSER_SEARCH*/get BROWSER_SEARCH() {
    return "BrowserSearch";
  },
  /*html$._KeyName.BROWSER_STOP*/get BROWSER_STOP() {
    return "BrowserStop";
  },
  /*html$._KeyName.CAMERA*/get CAMERA() {
    return "Camera";
  },
  /*html$._KeyName.CAPS_LOCK*/get CAPS_LOCK() {
    return "CapsLock";
  },
  /*html$._KeyName.CLEAR*/get CLEAR() {
    return "Clear";
  },
  /*html$._KeyName.CODE_INPUT*/get CODE_INPUT() {
    return "CodeInput";
  },
  /*html$._KeyName.COMPOSE*/get COMPOSE() {
    return "Compose";
  },
  /*html$._KeyName.CONTROL*/get CONTROL() {
    return "Control";
  },
  /*html$._KeyName.CRSEL*/get CRSEL() {
    return "Crsel";
  },
  /*html$._KeyName.CONVERT*/get CONVERT() {
    return "Convert";
  },
  /*html$._KeyName.COPY*/get COPY() {
    return "Copy";
  },
  /*html$._KeyName.CUT*/get CUT() {
    return "Cut";
  },
  /*html$._KeyName.DECIMAL*/get DECIMAL() {
    return "Decimal";
  },
  /*html$._KeyName.DIVIDE*/get DIVIDE() {
    return "Divide";
  },
  /*html$._KeyName.DOWN*/get DOWN() {
    return "Down";
  },
  /*html$._KeyName.DOWN_LEFT*/get DOWN_LEFT() {
    return "DownLeft";
  },
  /*html$._KeyName.DOWN_RIGHT*/get DOWN_RIGHT() {
    return "DownRight";
  },
  /*html$._KeyName.EJECT*/get EJECT() {
    return "Eject";
  },
  /*html$._KeyName.END*/get END() {
    return "End";
  },
  /*html$._KeyName.ENTER*/get ENTER() {
    return "Enter";
  },
  /*html$._KeyName.ERASE_EOF*/get ERASE_EOF() {
    return "EraseEof";
  },
  /*html$._KeyName.EXECUTE*/get EXECUTE() {
    return "Execute";
  },
  /*html$._KeyName.EXSEL*/get EXSEL() {
    return "Exsel";
  },
  /*html$._KeyName.FN*/get FN() {
    return "Fn";
  },
  /*html$._KeyName.F1*/get F1() {
    return "F1";
  },
  /*html$._KeyName.F2*/get F2() {
    return "F2";
  },
  /*html$._KeyName.F3*/get F3() {
    return "F3";
  },
  /*html$._KeyName.F4*/get F4() {
    return "F4";
  },
  /*html$._KeyName.F5*/get F5() {
    return "F5";
  },
  /*html$._KeyName.F6*/get F6() {
    return "F6";
  },
  /*html$._KeyName.F7*/get F7() {
    return "F7";
  },
  /*html$._KeyName.F8*/get F8() {
    return "F8";
  },
  /*html$._KeyName.F9*/get F9() {
    return "F9";
  },
  /*html$._KeyName.F10*/get F10() {
    return "F10";
  },
  /*html$._KeyName.F11*/get F11() {
    return "F11";
  },
  /*html$._KeyName.F12*/get F12() {
    return "F12";
  },
  /*html$._KeyName.F13*/get F13() {
    return "F13";
  },
  /*html$._KeyName.F14*/get F14() {
    return "F14";
  },
  /*html$._KeyName.F15*/get F15() {
    return "F15";
  },
  /*html$._KeyName.F16*/get F16() {
    return "F16";
  },
  /*html$._KeyName.F17*/get F17() {
    return "F17";
  },
  /*html$._KeyName.F18*/get F18() {
    return "F18";
  },
  /*html$._KeyName.F19*/get F19() {
    return "F19";
  },
  /*html$._KeyName.F20*/get F20() {
    return "F20";
  },
  /*html$._KeyName.F21*/get F21() {
    return "F21";
  },
  /*html$._KeyName.F22*/get F22() {
    return "F22";
  },
  /*html$._KeyName.F23*/get F23() {
    return "F23";
  },
  /*html$._KeyName.F24*/get F24() {
    return "F24";
  },
  /*html$._KeyName.FINAL_MODE*/get FINAL_MODE() {
    return "FinalMode";
  },
  /*html$._KeyName.FIND*/get FIND() {
    return "Find";
  },
  /*html$._KeyName.FULL_WIDTH*/get FULL_WIDTH() {
    return "FullWidth";
  },
  /*html$._KeyName.HALF_WIDTH*/get HALF_WIDTH() {
    return "HalfWidth";
  },
  /*html$._KeyName.HANGUL_MODE*/get HANGUL_MODE() {
    return "HangulMode";
  },
  /*html$._KeyName.HANJA_MODE*/get HANJA_MODE() {
    return "HanjaMode";
  },
  /*html$._KeyName.HELP*/get HELP() {
    return "Help";
  },
  /*html$._KeyName.HIRAGANA*/get HIRAGANA() {
    return "Hiragana";
  },
  /*html$._KeyName.HOME*/get HOME() {
    return "Home";
  },
  /*html$._KeyName.INSERT*/get INSERT() {
    return "Insert";
  },
  /*html$._KeyName.JAPANESE_HIRAGANA*/get JAPANESE_HIRAGANA() {
    return "JapaneseHiragana";
  },
  /*html$._KeyName.JAPANESE_KATAKANA*/get JAPANESE_KATAKANA() {
    return "JapaneseKatakana";
  },
  /*html$._KeyName.JAPANESE_ROMAJI*/get JAPANESE_ROMAJI() {
    return "JapaneseRomaji";
  },
  /*html$._KeyName.JUNJA_MODE*/get JUNJA_MODE() {
    return "JunjaMode";
  },
  /*html$._KeyName.KANA_MODE*/get KANA_MODE() {
    return "KanaMode";
  },
  /*html$._KeyName.KANJI_MODE*/get KANJI_MODE() {
    return "KanjiMode";
  },
  /*html$._KeyName.KATAKANA*/get KATAKANA() {
    return "Katakana";
  },
  /*html$._KeyName.LAUNCH_APPLICATION_1*/get LAUNCH_APPLICATION_1() {
    return "LaunchApplication1";
  },
  /*html$._KeyName.LAUNCH_APPLICATION_2*/get LAUNCH_APPLICATION_2() {
    return "LaunchApplication2";
  },
  /*html$._KeyName.LAUNCH_MAIL*/get LAUNCH_MAIL() {
    return "LaunchMail";
  },
  /*html$._KeyName.LEFT*/get LEFT() {
    return "Left";
  },
  /*html$._KeyName.MENU*/get MENU() {
    return "Menu";
  },
  /*html$._KeyName.META*/get META() {
    return "Meta";
  },
  /*html$._KeyName.MEDIA_NEXT_TRACK*/get MEDIA_NEXT_TRACK() {
    return "MediaNextTrack";
  },
  /*html$._KeyName.MEDIA_PAUSE_PLAY*/get MEDIA_PAUSE_PLAY() {
    return "MediaPlayPause";
  },
  /*html$._KeyName.MEDIA_PREVIOUS_TRACK*/get MEDIA_PREVIOUS_TRACK() {
    return "MediaPreviousTrack";
  },
  /*html$._KeyName.MEDIA_STOP*/get MEDIA_STOP() {
    return "MediaStop";
  },
  /*html$._KeyName.MODE_CHANGE*/get MODE_CHANGE() {
    return "ModeChange";
  },
  /*html$._KeyName.NEXT_CANDIDATE*/get NEXT_CANDIDATE() {
    return "NextCandidate";
  },
  /*html$._KeyName.NON_CONVERT*/get NON_CONVERT() {
    return "Nonconvert";
  },
  /*html$._KeyName.NUM_LOCK*/get NUM_LOCK() {
    return "NumLock";
  },
  /*html$._KeyName.PAGE_DOWN*/get PAGE_DOWN() {
    return "PageDown";
  },
  /*html$._KeyName.PAGE_UP*/get PAGE_UP() {
    return "PageUp";
  },
  /*html$._KeyName.PASTE*/get PASTE() {
    return "Paste";
  },
  /*html$._KeyName.PAUSE*/get PAUSE() {
    return "Pause";
  },
  /*html$._KeyName.PLAY*/get PLAY() {
    return "Play";
  },
  /*html$._KeyName.POWER*/get POWER() {
    return "Power";
  },
  /*html$._KeyName.PREVIOUS_CANDIDATE*/get PREVIOUS_CANDIDATE() {
    return "PreviousCandidate";
  },
  /*html$._KeyName.PRINT_SCREEN*/get PRINT_SCREEN() {
    return "PrintScreen";
  },
  /*html$._KeyName.PROCESS*/get PROCESS() {
    return "Process";
  },
  /*html$._KeyName.PROPS*/get PROPS() {
    return "Props";
  },
  /*html$._KeyName.RIGHT*/get RIGHT() {
    return "Right";
  },
  /*html$._KeyName.ROMAN_CHARACTERS*/get ROMAN_CHARACTERS() {
    return "RomanCharacters";
  },
  /*html$._KeyName.SCROLL*/get SCROLL() {
    return "Scroll";
  },
  /*html$._KeyName.SELECT*/get SELECT() {
    return "Select";
  },
  /*html$._KeyName.SELECT_MEDIA*/get SELECT_MEDIA() {
    return "SelectMedia";
  },
  /*html$._KeyName.SEPARATOR*/get SEPARATOR() {
    return "Separator";
  },
  /*html$._KeyName.SHIFT*/get SHIFT() {
    return "Shift";
  },
  /*html$._KeyName.SOFT_1*/get SOFT_1() {
    return "Soft1";
  },
  /*html$._KeyName.SOFT_2*/get SOFT_2() {
    return "Soft2";
  },
  /*html$._KeyName.SOFT_3*/get SOFT_3() {
    return "Soft3";
  },
  /*html$._KeyName.SOFT_4*/get SOFT_4() {
    return "Soft4";
  },
  /*html$._KeyName.STOP*/get STOP() {
    return "Stop";
  },
  /*html$._KeyName.SUBTRACT*/get SUBTRACT() {
    return "Subtract";
  },
  /*html$._KeyName.SYMBOL_LOCK*/get SYMBOL_LOCK() {
    return "SymbolLock";
  },
  /*html$._KeyName.UP*/get UP() {
    return "Up";
  },
  /*html$._KeyName.UP_LEFT*/get UP_LEFT() {
    return "UpLeft";
  },
  /*html$._KeyName.UP_RIGHT*/get UP_RIGHT() {
    return "UpRight";
  },
  /*html$._KeyName.UNDO*/get UNDO() {
    return "Undo";
  },
  /*html$._KeyName.VOLUME_DOWN*/get VOLUME_DOWN() {
    return "VolumeDown";
  },
  /*html$._KeyName.VOLUMN_MUTE*/get VOLUMN_MUTE() {
    return "VolumeMute";
  },
  /*html$._KeyName.VOLUMN_UP*/get VOLUMN_UP() {
    return "VolumeUp";
  },
  /*html$._KeyName.WIN*/get WIN() {
    return "Win";
  },
  /*html$._KeyName.ZOOM*/get ZOOM() {
    return "Zoom";
  },
  /*html$._KeyName.BACKSPACE*/get BACKSPACE() {
    return "Backspace";
  },
  /*html$._KeyName.TAB*/get TAB() {
    return "Tab";
  },
  /*html$._KeyName.CANCEL*/get CANCEL() {
    return "Cancel";
  },
  /*html$._KeyName.ESC*/get ESC() {
    return "Esc";
  },
  /*html$._KeyName.SPACEBAR*/get SPACEBAR() {
    return "Spacebar";
  },
  /*html$._KeyName.DEL*/get DEL() {
    return "Del";
  },
  /*html$._KeyName.DEAD_GRAVE*/get DEAD_GRAVE() {
    return "DeadGrave";
  },
  /*html$._KeyName.DEAD_EACUTE*/get DEAD_EACUTE() {
    return "DeadEacute";
  },
  /*html$._KeyName.DEAD_CIRCUMFLEX*/get DEAD_CIRCUMFLEX() {
    return "DeadCircumflex";
  },
  /*html$._KeyName.DEAD_TILDE*/get DEAD_TILDE() {
    return "DeadTilde";
  },
  /*html$._KeyName.DEAD_MACRON*/get DEAD_MACRON() {
    return "DeadMacron";
  },
  /*html$._KeyName.DEAD_BREVE*/get DEAD_BREVE() {
    return "DeadBreve";
  },
  /*html$._KeyName.DEAD_ABOVE_DOT*/get DEAD_ABOVE_DOT() {
    return "DeadAboveDot";
  },
  /*html$._KeyName.DEAD_UMLAUT*/get DEAD_UMLAUT() {
    return "DeadUmlaut";
  },
  /*html$._KeyName.DEAD_ABOVE_RING*/get DEAD_ABOVE_RING() {
    return "DeadAboveRing";
  },
  /*html$._KeyName.DEAD_DOUBLEACUTE*/get DEAD_DOUBLEACUTE() {
    return "DeadDoubleacute";
  },
  /*html$._KeyName.DEAD_CARON*/get DEAD_CARON() {
    return "DeadCaron";
  },
  /*html$._KeyName.DEAD_CEDILLA*/get DEAD_CEDILLA() {
    return "DeadCedilla";
  },
  /*html$._KeyName.DEAD_OGONEK*/get DEAD_OGONEK() {
    return "DeadOgonek";
  },
  /*html$._KeyName.DEAD_IOTA*/get DEAD_IOTA() {
    return "DeadIota";
  },
  /*html$._KeyName.DEAD_VOICED_SOUND*/get DEAD_VOICED_SOUND() {
    return "DeadVoicedSound";
  },
  /*html$._KeyName.DEC_SEMIVOICED_SOUND*/get DEC_SEMIVOICED_SOUND() {
    return "DeadSemivoicedSound";
  },
  /*html$._KeyName.UNIDENTIFIED*/get UNIDENTIFIED() {
    return "Unidentified";
  }
}, true);
var _keyDownList = dart.privateName(html$, "_keyDownList");
var _stream$1 = dart.privateName(html$, "_stream");
var _capsLockOn = dart.privateName(html$, "_capsLockOn");
var _determineKeyCodeForKeypress = dart.privateName(html$, "_determineKeyCodeForKeypress");
var _findCharCodeKeyDown = dart.privateName(html$, "_findCharCodeKeyDown");
var _firesKeyPressEvent = dart.privateName(html$, "_firesKeyPressEvent");
var _normalizeKeyCodes = dart.privateName(html$, "_normalizeKeyCodes");
var C403;
html$._KeyboardEventHandler = class _KeyboardEventHandler extends html$.EventStreamProvider$(html$.KeyEvent) {
  forTarget(e, opts) {
    let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
    let handler = new html$._KeyboardEventHandler.initializeAllEventListeners(this[_type$3], e);
    return handler[_stream$1];
  }
  get [_capsLockOn]() {
    return this[_keyDownList][$any](dart.fn(element => element.keyCode === 20, KeyEventLToboolL()));
  }
  [_determineKeyCodeForKeypress](event) {
    for (let prevEvent of this[_keyDownList]) {
      if (prevEvent[_shadowCharCode] == event.charCode) {
        return prevEvent.keyCode;
      }
      if ((dart.test(event.shiftKey) || dart.test(this[_capsLockOn])) && dart.notNull(event.charCode) >= dart.notNull("A"[$codeUnits][$_get](0)) && dart.notNull(event.charCode) <= dart.notNull("Z"[$codeUnits][$_get](0)) && dart.notNull(event.charCode) + dart.notNull(html$._KeyboardEventHandler._ROMAN_ALPHABET_OFFSET) === prevEvent[_shadowCharCode]) {
        return prevEvent.keyCode;
      }
    }
    return -1;
  }
  [_findCharCodeKeyDown](event) {
    if (event.location === 3) {
      switch (event.keyCode) {
        case 96:
        {
          return 48;
        }
        case 97:
        {
          return 49;
        }
        case 98:
        {
          return 50;
        }
        case 99:
        {
          return 51;
        }
        case 100:
        {
          return 52;
        }
        case 101:
        {
          return 53;
        }
        case 102:
        {
          return 54;
        }
        case 103:
        {
          return 55;
        }
        case 104:
        {
          return 56;
        }
        case 105:
        {
          return 57;
        }
        case 106:
        {
          return 42;
        }
        case 107:
        {
          return 43;
        }
        case 109:
        {
          return 45;
        }
        case 110:
        {
          return 46;
        }
        case 111:
        {
          return 47;
        }
      }
    } else if (dart.notNull(event.keyCode) >= 65 && dart.notNull(event.keyCode) <= 90) {
      return dart.notNull(event.keyCode) + dart.notNull(html$._KeyboardEventHandler._ROMAN_ALPHABET_OFFSET);
    }
    switch (event.keyCode) {
      case 186:
      {
        return 59;
      }
      case 187:
      {
        return 61;
      }
      case 188:
      {
        return 44;
      }
      case 189:
      {
        return 45;
      }
      case 190:
      {
        return 46;
      }
      case 191:
      {
        return 47;
      }
      case 192:
      {
        return 96;
      }
      case 219:
      {
        return 91;
      }
      case 220:
      {
        return 92;
      }
      case 221:
      {
        return 93;
      }
      case 222:
      {
        return 39;
      }
    }
    return event.keyCode;
  }
  [_firesKeyPressEvent](event) {
    if (!dart.test(html_common.Device.isIE) && !dart.test(html_common.Device.isWebKit)) {
      return true;
    }
    if (html_common.Device.userAgent[$contains]("Mac") && dart.test(event.altKey)) {
      return html$.KeyCode.isCharacterKey(event.keyCode);
    }
    if (dart.test(event.altKey) && !dart.test(event.ctrlKey)) {
      return false;
    }
    if (!dart.test(event.shiftKey) && (this[_keyDownList][$last].keyCode === 17 || this[_keyDownList][$last].keyCode === 18 || html_common.Device.userAgent[$contains]("Mac") && this[_keyDownList][$last].keyCode === 91)) {
      return false;
    }
    if (dart.test(html_common.Device.isWebKit) && dart.test(event.ctrlKey) && dart.test(event.shiftKey) && (event.keyCode === 220 || event.keyCode === 219 || event.keyCode === 221 || event.keyCode === 192 || event.keyCode === 186 || event.keyCode === 189 || event.keyCode === 187 || event.keyCode === 188 || event.keyCode === 190 || event.keyCode === 191 || event.keyCode === 192 || event.keyCode === 222)) {
      return false;
    }
    switch (event.keyCode) {
      case 13:
      {
        return !dart.test(html_common.Device.isIE);
      }
      case 27:
      {
        return !dart.test(html_common.Device.isWebKit);
      }
    }
    return html$.KeyCode.isCharacterKey(event.keyCode);
  }
  [_normalizeKeyCodes](event) {
    if (dart.test(html_common.Device.isFirefox)) {
      switch (event.keyCode) {
        case 61:
        {
          return 187;
        }
        case 59:
        {
          return 186;
        }
        case 224:
        {
          return 91;
        }
        case 0:
        {
          return 224;
        }
      }
    }
    return event.keyCode;
  }
  processKeyDown(e) {
    if (dart.notNull(this[_keyDownList][$length]) > 0 && (this[_keyDownList][$last].keyCode === 17 && !dart.test(e.ctrlKey) || this[_keyDownList][$last].keyCode === 18 && !dart.test(e.altKey) || html_common.Device.userAgent[$contains]("Mac") && this[_keyDownList][$last].keyCode === 91 && !dart.test(e.metaKey))) {
      this[_keyDownList][$clear]();
    }
    let event = new html$.KeyEvent.wrap(e);
    event[_shadowKeyCode] = this[_normalizeKeyCodes](event);
    event[_shadowCharCode] = this[_findCharCodeKeyDown](event);
    if (dart.notNull(this[_keyDownList][$length]) > 0 && event.keyCode != this[_keyDownList][$last].keyCode && !dart.test(this[_firesKeyPressEvent](event))) {
      this.processKeyPress(e);
    }
    this[_keyDownList][$add](event);
    this[_stream$1].add(event);
  }
  processKeyPress(event) {
    let e = new html$.KeyEvent.wrap(event);
    if (dart.test(html_common.Device.isIE)) {
      if (e.keyCode === 13 || e.keyCode === 27) {
        e[_shadowCharCode] = 0;
      } else {
        e[_shadowCharCode] = e.keyCode;
      }
    } else if (dart.test(html_common.Device.isOpera)) {
      e[_shadowCharCode] = dart.test(html$.KeyCode.isCharacterKey(e.keyCode)) ? e.keyCode : 0;
    }
    e[_shadowKeyCode] = this[_determineKeyCodeForKeypress](e);
    if (e[_shadowKeyIdentifier] != null && dart.test(html$._KeyboardEventHandler._keyIdentifier[$containsKey](e[_shadowKeyIdentifier]))) {
      e[_shadowKeyCode] = html$._KeyboardEventHandler._keyIdentifier[$_get](e[_shadowKeyIdentifier]);
    }
    e[_shadowAltKey] = this[_keyDownList][$any](dart.fn(element => element.altKey, KeyEventLToboolL()));
    this[_stream$1].add(e);
  }
  processKeyUp(event) {
    let e = new html$.KeyEvent.wrap(event);
    let toRemove = null;
    for (let key of this[_keyDownList]) {
      if (key.keyCode == e.keyCode) {
        toRemove = key;
      }
    }
    if (toRemove != null) {
      this[_keyDownList][$removeWhere](dart.fn(element => dart.equals(element, toRemove), KeyEventLToboolL()));
    } else if (dart.notNull(this[_keyDownList][$length]) > 0) {
      this[_keyDownList][$removeLast]();
    }
    this[_stream$1].add(e);
  }
};
(html$._KeyboardEventHandler.new = function(_type) {
  this[_keyDownList] = JSArrayOfKeyEventL().of([]);
  this[_type$3] = _type;
  this[_stream$1] = new html$._CustomKeyEventStreamImpl.new("event");
  this[_target$1] = null;
  html$._KeyboardEventHandler.__proto__.new.call(this, "KeyEvent");
  ;
}).prototype = html$._KeyboardEventHandler.prototype;
(html$._KeyboardEventHandler.initializeAllEventListeners = function(_type, _target) {
  this[_keyDownList] = JSArrayOfKeyEventL().of([]);
  this[_stream$1] = null;
  this[_type$3] = _type;
  this[_target$1] = _target;
  html$._KeyboardEventHandler.__proto__.new.call(this, "KeyEvent");
  html$.Element.keyDownEvent.forTarget(this[_target$1], {useCapture: true}).listen(dart.bind(this, 'processKeyDown'));
  html$.Element.keyPressEvent.forTarget(this[_target$1], {useCapture: true}).listen(dart.bind(this, 'processKeyPress'));
  html$.Element.keyUpEvent.forTarget(this[_target$1], {useCapture: true}).listen(dart.bind(this, 'processKeyUp'));
  this[_stream$1] = new html$._CustomKeyEventStreamImpl.new(this[_type$3]);
}).prototype = html$._KeyboardEventHandler.prototype;
dart.addTypeTests(html$._KeyboardEventHandler);
dart.addTypeCaches(html$._KeyboardEventHandler);
dart.setMethodSignature(html$._KeyboardEventHandler, () => ({
  __proto__: dart.getMethods(html$._KeyboardEventHandler.__proto__),
  forTarget: dart.fnType(html$.CustomStream$(html$.KeyEvent), [html$.EventTarget], {useCapture: core.bool}, {}),
  [_determineKeyCodeForKeypress]: dart.fnType(core.int, [html$.KeyboardEvent]),
  [_findCharCodeKeyDown]: dart.fnType(core.int, [html$.KeyboardEvent]),
  [_firesKeyPressEvent]: dart.fnType(core.bool, [html$.KeyEvent]),
  [_normalizeKeyCodes]: dart.fnType(core.int, [html$.KeyboardEvent]),
  processKeyDown: dart.fnType(dart.void, [html$.KeyboardEvent]),
  processKeyPress: dart.fnType(dart.void, [html$.KeyboardEvent]),
  processKeyUp: dart.fnType(dart.void, [html$.KeyboardEvent])
}));
dart.setGetterSignature(html$._KeyboardEventHandler, () => ({
  __proto__: dart.getGetters(html$._KeyboardEventHandler.__proto__),
  [_capsLockOn]: core.bool
}));
dart.setLibraryUri(html$._KeyboardEventHandler, L65);
dart.setFieldSignature(html$._KeyboardEventHandler, () => ({
  __proto__: dart.getFields(html$._KeyboardEventHandler.__proto__),
  [_keyDownList]: dart.finalFieldType(core.List$(html$.KeyEvent)),
  [_type$3]: dart.finalFieldType(core.String),
  [_target$1]: dart.finalFieldType(html$.EventTarget),
  [_stream$1]: dart.fieldType(html$._CustomKeyEventStreamImpl)
}));
dart.defineLazy(html$._KeyboardEventHandler, {
  /*html$._KeyboardEventHandler._ROMAN_ALPHABET_OFFSET*/get _ROMAN_ALPHABET_OFFSET() {
    return dart.notNull("a"[$codeUnits][$_get](0)) - dart.notNull("A"[$codeUnits][$_get](0));
  },
  /*html$._KeyboardEventHandler._EVENT_TYPE*/get _EVENT_TYPE() {
    return "KeyEvent";
  },
  /*html$._KeyboardEventHandler._keyIdentifier*/get _keyIdentifier() {
    return C403 || CT.C403;
  }
}, true);
html$.KeyboardEventStream = class KeyboardEventStream extends core.Object {
  static onKeyPress(target) {
    return new html$._KeyboardEventHandler.new("keypress").forTarget(target);
  }
  static onKeyUp(target) {
    return new html$._KeyboardEventHandler.new("keyup").forTarget(target);
  }
  static onKeyDown(target) {
    return new html$._KeyboardEventHandler.new("keydown").forTarget(target);
  }
};
(html$.KeyboardEventStream.new = function() {
  ;
}).prototype = html$.KeyboardEventStream.prototype;
dart.addTypeTests(html$.KeyboardEventStream);
dart.addTypeCaches(html$.KeyboardEventStream);
dart.setLibraryUri(html$.KeyboardEventStream, L65);
var _validators = dart.privateName(html$, "_validators");
html$.NodeValidatorBuilder = class NodeValidatorBuilder extends core.Object {
  allowNavigation(uriPolicy = null) {
    if (uriPolicy == null) {
      uriPolicy = html$.UriPolicy.new();
    }
    this.add(html$._SimpleNodeValidator.allowNavigation(uriPolicy));
  }
  allowImages(uriPolicy = null) {
    if (uriPolicy == null) {
      uriPolicy = html$.UriPolicy.new();
    }
    this.add(html$._SimpleNodeValidator.allowImages(uriPolicy));
  }
  allowTextElements() {
    this.add(html$._SimpleNodeValidator.allowTextElements());
  }
  allowInlineStyles(opts) {
    let tagName = opts && 'tagName' in opts ? opts.tagName : null;
    if (tagName == null) {
      tagName = "*";
    } else {
      tagName = tagName[$toUpperCase]();
    }
    this.add(new html$._SimpleNodeValidator.new(null, {allowedAttributes: JSArrayOfStringL().of([dart.str(tagName) + "::style"])}));
  }
  allowHtml5(opts) {
    let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
    this.add(new html$._Html5NodeValidator.new({uriPolicy: uriPolicy}));
  }
  allowSvg() {
    this.add(new html$._SvgNodeValidator.new());
  }
  allowCustomElement(tagName, opts) {
    let t117, t117$;
    let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
    let attributes = opts && 'attributes' in opts ? opts.attributes : null;
    let uriAttributes = opts && 'uriAttributes' in opts ? opts.uriAttributes : null;
    let tagNameUpper = tagName[$toUpperCase]();
    let attrs = (t117 = attributes, t117 == null ? null : t117[$map](core.String, dart.fn(name => tagNameUpper + "::" + name[$toLowerCase](), StringLToStringL())));
    let uriAttrs = (t117$ = uriAttributes, t117$ == null ? null : t117$[$map](core.String, dart.fn(name => tagNameUpper + "::" + name[$toLowerCase](), StringLToStringL())));
    if (uriPolicy == null) {
      uriPolicy = html$.UriPolicy.new();
    }
    this.add(new html$._CustomElementNodeValidator.new(uriPolicy, JSArrayOfStringL().of([tagNameUpper]), attrs, uriAttrs, false, true));
  }
  allowTagExtension(tagName, baseName, opts) {
    let t117, t117$;
    let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
    let attributes = opts && 'attributes' in opts ? opts.attributes : null;
    let uriAttributes = opts && 'uriAttributes' in opts ? opts.uriAttributes : null;
    let baseNameUpper = baseName[$toUpperCase]();
    let tagNameUpper = tagName[$toUpperCase]();
    let attrs = (t117 = attributes, t117 == null ? null : t117[$map](core.String, dart.fn(name => baseNameUpper + "::" + name[$toLowerCase](), StringLToStringL())));
    let uriAttrs = (t117$ = uriAttributes, t117$ == null ? null : t117$[$map](core.String, dart.fn(name => baseNameUpper + "::" + name[$toLowerCase](), StringLToStringL())));
    if (uriPolicy == null) {
      uriPolicy = html$.UriPolicy.new();
    }
    this.add(new html$._CustomElementNodeValidator.new(uriPolicy, JSArrayOfStringL().of([tagNameUpper, baseNameUpper]), attrs, uriAttrs, true, false));
  }
  allowElement(tagName, opts) {
    let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
    let attributes = opts && 'attributes' in opts ? opts.attributes : null;
    let uriAttributes = opts && 'uriAttributes' in opts ? opts.uriAttributes : null;
    this.allowCustomElement(tagName, {uriPolicy: uriPolicy, attributes: attributes, uriAttributes: uriAttributes});
  }
  allowTemplating() {
    this.add(new html$._TemplatingNodeValidator.new());
  }
  add(validator) {
    this[_validators][$add](validator);
  }
  allowsElement(element) {
    return this[_validators][$any](dart.fn(v => v.allowsElement(element), NodeValidatorLToboolL()));
  }
  allowsAttribute(element, attributeName, value) {
    return this[_validators][$any](dart.fn(v => v.allowsAttribute(element, attributeName, value), NodeValidatorLToboolL()));
  }
};
(html$.NodeValidatorBuilder.new = function() {
  this[_validators] = JSArrayOfNodeValidatorL().of([]);
}).prototype = html$.NodeValidatorBuilder.prototype;
(html$.NodeValidatorBuilder.common = function() {
  this[_validators] = JSArrayOfNodeValidatorL().of([]);
  this.allowHtml5();
  this.allowTemplating();
}).prototype = html$.NodeValidatorBuilder.prototype;
dart.addTypeTests(html$.NodeValidatorBuilder);
dart.addTypeCaches(html$.NodeValidatorBuilder);
html$.NodeValidatorBuilder[dart.implements] = () => [html$.NodeValidator];
dart.setMethodSignature(html$.NodeValidatorBuilder, () => ({
  __proto__: dart.getMethods(html$.NodeValidatorBuilder.__proto__),
  allowNavigation: dart.fnType(dart.void, [], [html$.UriPolicy]),
  allowImages: dart.fnType(dart.void, [], [html$.UriPolicy]),
  allowTextElements: dart.fnType(dart.void, []),
  allowInlineStyles: dart.fnType(dart.void, [], {tagName: core.String}, {}),
  allowHtml5: dart.fnType(dart.void, [], {uriPolicy: html$.UriPolicy}, {}),
  allowSvg: dart.fnType(dart.void, []),
  allowCustomElement: dart.fnType(dart.void, [core.String], {attributes: core.Iterable$(core.String), uriAttributes: core.Iterable$(core.String), uriPolicy: html$.UriPolicy}, {}),
  allowTagExtension: dart.fnType(dart.void, [core.String, core.String], {attributes: core.Iterable$(core.String), uriAttributes: core.Iterable$(core.String), uriPolicy: html$.UriPolicy}, {}),
  allowElement: dart.fnType(dart.void, [core.String], {attributes: core.Iterable$(core.String), uriAttributes: core.Iterable$(core.String), uriPolicy: html$.UriPolicy}, {}),
  allowTemplating: dart.fnType(dart.void, []),
  add: dart.fnType(dart.void, [html$.NodeValidator]),
  allowsElement: dart.fnType(core.bool, [html$.Element]),
  allowsAttribute: dart.fnType(core.bool, [html$.Element, core.String, core.String])
}));
dart.setLibraryUri(html$.NodeValidatorBuilder, L65);
dart.setFieldSignature(html$.NodeValidatorBuilder, () => ({
  __proto__: dart.getFields(html$.NodeValidatorBuilder.__proto__),
  [_validators]: dart.finalFieldType(core.List$(html$.NodeValidator))
}));
var C404;
var C405;
var C406;
var C407;
var C408;
var C409;
var C410;
var C411;
html$._SimpleNodeValidator = class _SimpleNodeValidator extends core.Object {
  static allowNavigation(uriPolicy) {
    return new html$._SimpleNodeValidator.new(uriPolicy, {allowedElements: C405 || CT.C405, allowedAttributes: C406 || CT.C406, allowedUriAttributes: C407 || CT.C407});
  }
  static allowImages(uriPolicy) {
    return new html$._SimpleNodeValidator.new(uriPolicy, {allowedElements: C408 || CT.C408, allowedAttributes: C409 || CT.C409, allowedUriAttributes: C410 || CT.C410});
  }
  static allowTextElements() {
    return new html$._SimpleNodeValidator.new(null, {allowedElements: C411 || CT.C411});
  }
  allowsElement(element) {
    return this.allowedElements.contains(html$.Element._safeTagName(element));
  }
  allowsAttribute(element, attributeName, value) {
    let tagName = html$.Element._safeTagName(element);
    if (dart.test(this.allowedUriAttributes.contains(dart.str(tagName) + "::" + dart.str(attributeName)))) {
      return this.uriPolicy.allowsUri(value);
    } else if (dart.test(this.allowedUriAttributes.contains("*::" + dart.str(attributeName)))) {
      return this.uriPolicy.allowsUri(value);
    } else if (dart.test(this.allowedAttributes.contains(dart.str(tagName) + "::" + dart.str(attributeName)))) {
      return true;
    } else if (dart.test(this.allowedAttributes.contains("*::" + dart.str(attributeName)))) {
      return true;
    } else if (dart.test(this.allowedAttributes.contains(dart.str(tagName) + "::*"))) {
      return true;
    } else if (dart.test(this.allowedAttributes.contains("*::*"))) {
      return true;
    }
    return false;
  }
};
(html$._SimpleNodeValidator.new = function(uriPolicy, opts) {
  let t117, t117$, t117$0;
  let allowedElements = opts && 'allowedElements' in opts ? opts.allowedElements : null;
  let allowedAttributes = opts && 'allowedAttributes' in opts ? opts.allowedAttributes : null;
  let allowedUriAttributes = opts && 'allowedUriAttributes' in opts ? opts.allowedUriAttributes : null;
  this.allowedElements = new (_IdentityHashSetOfStringL()).new();
  this.allowedAttributes = new (_IdentityHashSetOfStringL()).new();
  this.allowedUriAttributes = new (_IdentityHashSetOfStringL()).new();
  this.uriPolicy = uriPolicy;
  this.allowedElements.addAll((t117 = allowedElements, t117 == null ? C404 || CT.C404 : t117));
  allowedAttributes = (t117$ = allowedAttributes, t117$ == null ? C404 || CT.C404 : t117$);
  allowedUriAttributes = (t117$0 = allowedUriAttributes, t117$0 == null ? C404 || CT.C404 : t117$0);
  let legalAttributes = allowedAttributes[$where](dart.fn(x => !dart.test(html$._Html5NodeValidator._uriAttributes[$contains](x)), StringLToboolL()));
  let extraUriAttributes = allowedAttributes[$where](dart.fn(x => html$._Html5NodeValidator._uriAttributes[$contains](x), StringLToboolL()));
  this.allowedAttributes.addAll(legalAttributes);
  this.allowedUriAttributes.addAll(allowedUriAttributes);
  this.allowedUriAttributes.addAll(extraUriAttributes);
}).prototype = html$._SimpleNodeValidator.prototype;
dart.addTypeTests(html$._SimpleNodeValidator);
dart.addTypeCaches(html$._SimpleNodeValidator);
html$._SimpleNodeValidator[dart.implements] = () => [html$.NodeValidator];
dart.setMethodSignature(html$._SimpleNodeValidator, () => ({
  __proto__: dart.getMethods(html$._SimpleNodeValidator.__proto__),
  allowsElement: dart.fnType(core.bool, [html$.Element]),
  allowsAttribute: dart.fnType(core.bool, [html$.Element, core.String, core.String])
}));
dart.setLibraryUri(html$._SimpleNodeValidator, L65);
dart.setFieldSignature(html$._SimpleNodeValidator, () => ({
  __proto__: dart.getFields(html$._SimpleNodeValidator.__proto__),
  allowedElements: dart.finalFieldType(core.Set$(core.String)),
  allowedAttributes: dart.finalFieldType(core.Set$(core.String)),
  allowedUriAttributes: dart.finalFieldType(core.Set$(core.String)),
  uriPolicy: dart.finalFieldType(html$.UriPolicy)
}));
html$._CustomElementNodeValidator = class _CustomElementNodeValidator extends html$._SimpleNodeValidator {
  allowsElement(element) {
    if (dart.test(this.allowTypeExtension)) {
      let isAttr = element[$attributes][$_get]("is");
      if (isAttr != null) {
        return dart.test(this.allowedElements.contains(isAttr[$toUpperCase]())) && dart.test(this.allowedElements.contains(html$.Element._safeTagName(element)));
      }
    }
    return dart.test(this.allowCustomTag) && dart.test(this.allowedElements.contains(html$.Element._safeTagName(element)));
  }
  allowsAttribute(element, attributeName, value) {
    if (dart.test(this.allowsElement(element))) {
      if (dart.test(this.allowTypeExtension) && attributeName === "is" && dart.test(this.allowedElements.contains(value[$toUpperCase]()))) {
        return true;
      }
      return super.allowsAttribute(element, attributeName, value);
    }
    return false;
  }
};
(html$._CustomElementNodeValidator.new = function(uriPolicy, allowedElements, allowedAttributes, allowedUriAttributes, allowTypeExtension, allowCustomTag) {
  this.allowTypeExtension = dart.equals(allowTypeExtension, true);
  this.allowCustomTag = dart.equals(allowCustomTag, true);
  html$._CustomElementNodeValidator.__proto__.new.call(this, uriPolicy, {allowedElements: allowedElements, allowedAttributes: allowedAttributes, allowedUriAttributes: allowedUriAttributes});
  ;
}).prototype = html$._CustomElementNodeValidator.prototype;
dart.addTypeTests(html$._CustomElementNodeValidator);
dart.addTypeCaches(html$._CustomElementNodeValidator);
dart.setLibraryUri(html$._CustomElementNodeValidator, L65);
dart.setFieldSignature(html$._CustomElementNodeValidator, () => ({
  __proto__: dart.getFields(html$._CustomElementNodeValidator.__proto__),
  allowTypeExtension: dart.finalFieldType(core.bool),
  allowCustomTag: dart.finalFieldType(core.bool)
}));
var _templateAttrs = dart.privateName(html$, "_templateAttrs");
var C412;
html$._TemplatingNodeValidator = class _TemplatingNodeValidator extends html$._SimpleNodeValidator {
  allowsAttribute(element, attributeName, value) {
    if (dart.test(super.allowsAttribute(element, attributeName, value))) {
      return true;
    }
    if (attributeName === "template" && value === "") {
      return true;
    }
    if (element[$attributes][$_get]("template") === "") {
      return this[_templateAttrs].contains(attributeName);
    }
    return false;
  }
};
(html$._TemplatingNodeValidator.new = function() {
  this[_templateAttrs] = LinkedHashSetOfStringL().from(html$._TemplatingNodeValidator._TEMPLATE_ATTRS);
  html$._TemplatingNodeValidator.__proto__.new.call(this, null, {allowedElements: JSArrayOfStringL().of(["TEMPLATE"]), allowedAttributes: html$._TemplatingNodeValidator._TEMPLATE_ATTRS[$map](core.String, dart.fn(attr => "TEMPLATE::" + dart.str(attr), StringLToStringL()))});
}).prototype = html$._TemplatingNodeValidator.prototype;
dart.addTypeTests(html$._TemplatingNodeValidator);
dart.addTypeCaches(html$._TemplatingNodeValidator);
dart.setLibraryUri(html$._TemplatingNodeValidator, L65);
dart.setFieldSignature(html$._TemplatingNodeValidator, () => ({
  __proto__: dart.getFields(html$._TemplatingNodeValidator.__proto__),
  [_templateAttrs]: dart.finalFieldType(core.Set$(core.String))
}));
dart.defineLazy(html$._TemplatingNodeValidator, {
  /*html$._TemplatingNodeValidator._TEMPLATE_ATTRS*/get _TEMPLATE_ATTRS() {
    return C412 || CT.C412;
  }
}, true);
html$._SvgNodeValidator = class _SvgNodeValidator extends core.Object {
  allowsElement(element) {
    if (svg$.ScriptElement.is(element)) {
      return false;
    }
    if (svg$.SvgElement.is(element) && html$.Element._safeTagName(element) === "foreignObject") {
      return false;
    }
    if (svg$.SvgElement.is(element)) {
      return true;
    }
    return false;
  }
  allowsAttribute(element, attributeName, value) {
    if (attributeName === "is" || attributeName[$startsWith]("on")) {
      return false;
    }
    return this.allowsElement(element);
  }
};
(html$._SvgNodeValidator.new = function() {
  ;
}).prototype = html$._SvgNodeValidator.prototype;
dart.addTypeTests(html$._SvgNodeValidator);
dart.addTypeCaches(html$._SvgNodeValidator);
html$._SvgNodeValidator[dart.implements] = () => [html$.NodeValidator];
dart.setMethodSignature(html$._SvgNodeValidator, () => ({
  __proto__: dart.getMethods(html$._SvgNodeValidator.__proto__),
  allowsElement: dart.fnType(core.bool, [html$.Element]),
  allowsAttribute: dart.fnType(core.bool, [html$.Element, core.String, core.String])
}));
dart.setLibraryUri(html$._SvgNodeValidator, L65);
html$.ReadyState = class ReadyState extends core.Object {};
(html$.ReadyState.new = function() {
  ;
}).prototype = html$.ReadyState.prototype;
dart.addTypeTests(html$.ReadyState);
dart.addTypeCaches(html$.ReadyState);
dart.setLibraryUri(html$.ReadyState, L65);
dart.defineLazy(html$.ReadyState, {
  /*html$.ReadyState.LOADING*/get LOADING() {
    return "loading";
  },
  /*html$.ReadyState.INTERACTIVE*/get INTERACTIVE() {
    return "interactive";
  },
  /*html$.ReadyState.COMPLETE*/get COMPLETE() {
    return "complete";
  }
}, true);
var _list$17 = dart.privateName(html$, "_list");
const _is__WrappedList_default = Symbol('_is__WrappedList_default');
html$._WrappedList$ = dart.generic(E => {
  var _WrappedIteratorOfEL = () => (_WrappedIteratorOfEL = dart.constFn(html$._WrappedIterator$(E)))();
  var IterableOfEL = () => (IterableOfEL = dart.constFn(core.Iterable$(E)))();
  class _WrappedList extends collection.ListBase$(E) {
    get iterator() {
      return new (_WrappedIteratorOfEL()).new(this[_list$17][$iterator]);
    }
    get length() {
      return this[_list$17][$length];
    }
    add(element) {
      E.as(element);
      this[_list$17][$add](element);
    }
    remove(element) {
      return this[_list$17][$remove](element);
    }
    clear() {
      this[_list$17][$clear]();
    }
    _get(index) {
      return E.as(this[_list$17][$_get](index));
    }
    _set(index, value$) {
      let value = value$;
      E.as(value);
      this[_list$17][$_set](index, value);
      return value$;
    }
    set length(newLength) {
      this[_list$17][$length] = newLength;
    }
    sort(compare = null) {
      this[_list$17][$sort](dart.fn((a, b) => compare(E.as(a), E.as(b)), NodeLAndNodeLTointL()));
    }
    indexOf(element, start = 0) {
      return this[_list$17][$indexOf](html$.Node.as(element), start);
    }
    lastIndexOf(element, start = null) {
      return this[_list$17][$lastIndexOf](html$.Node.as(element), start);
    }
    insert(index, element) {
      E.as(element);
      return this[_list$17][$insert](index, element);
    }
    removeAt(index) {
      return E.as(this[_list$17][$removeAt](index));
    }
    setRange(start, end, iterable, skipCount = 0) {
      IterableOfEL().as(iterable);
      this[_list$17][$setRange](start, end, iterable, skipCount);
    }
    removeRange(start, end) {
      this[_list$17][$removeRange](start, end);
    }
    replaceRange(start, end, iterable) {
      IterableOfEL().as(iterable);
      this[_list$17][$replaceRange](start, end, iterable);
    }
    fillRange(start, end, fillValue = null) {
      E.as(fillValue);
      this[_list$17][$fillRange](start, end, fillValue);
    }
    get rawList() {
      return this[_list$17];
    }
  }
  (_WrappedList.new = function(_list) {
    this[_list$17] = _list;
    ;
  }).prototype = _WrappedList.prototype;
  dart.addTypeTests(_WrappedList);
  _WrappedList.prototype[_is__WrappedList_default] = true;
  dart.addTypeCaches(_WrappedList);
  _WrappedList[dart.implements] = () => [html_common.NodeListWrapper];
  dart.setMethodSignature(_WrappedList, () => ({
    __proto__: dart.getMethods(_WrappedList.__proto__),
    _get: dart.fnType(E, [core.int]),
    [$_get]: dart.fnType(E, [core.int]),
    _set: dart.fnType(dart.void, [core.int, core.Object]),
    [$_set]: dart.fnType(dart.void, [core.int, core.Object])
  }));
  dart.setGetterSignature(_WrappedList, () => ({
    __proto__: dart.getGetters(_WrappedList.__proto__),
    length: core.int,
    [$length]: core.int,
    rawList: core.List$(html$.Node)
  }));
  dart.setSetterSignature(_WrappedList, () => ({
    __proto__: dart.getSetters(_WrappedList.__proto__),
    length: core.int,
    [$length]: core.int
  }));
  dart.setLibraryUri(_WrappedList, L65);
  dart.setFieldSignature(_WrappedList, () => ({
    __proto__: dart.getFields(_WrappedList.__proto__),
    [_list$17]: dart.finalFieldType(core.List$(html$.Node))
  }));
  dart.defineExtensionMethods(_WrappedList, [
    'add',
    'remove',
    'clear',
    '_get',
    '_set',
    'sort',
    'indexOf',
    'lastIndexOf',
    'insert',
    'removeAt',
    'setRange',
    'removeRange',
    'replaceRange',
    'fillRange'
  ]);
  dart.defineExtensionAccessors(_WrappedList, ['iterator', 'length']);
  return _WrappedList;
});
html$._WrappedList = html$._WrappedList$();
dart.addTypeTests(html$._WrappedList, _is__WrappedList_default);
var _iterator$1 = dart.privateName(html$, "_iterator");
const _is__WrappedIterator_default = Symbol('_is__WrappedIterator_default');
html$._WrappedIterator$ = dart.generic(E => {
  class _WrappedIterator extends core.Object {
    moveNext() {
      return this[_iterator$1].moveNext();
    }
    get current() {
      return E.as(this[_iterator$1].current);
    }
  }
  (_WrappedIterator.new = function(_iterator) {
    this[_iterator$1] = _iterator;
    ;
  }).prototype = _WrappedIterator.prototype;
  dart.addTypeTests(_WrappedIterator);
  _WrappedIterator.prototype[_is__WrappedIterator_default] = true;
  dart.addTypeCaches(_WrappedIterator);
  _WrappedIterator[dart.implements] = () => [core.Iterator$(E)];
  dart.setMethodSignature(_WrappedIterator, () => ({
    __proto__: dart.getMethods(_WrappedIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(_WrappedIterator, () => ({
    __proto__: dart.getGetters(_WrappedIterator.__proto__),
    current: E
  }));
  dart.setLibraryUri(_WrappedIterator, L65);
  dart.setFieldSignature(_WrappedIterator, () => ({
    __proto__: dart.getFields(_WrappedIterator.__proto__),
    [_iterator$1]: dart.fieldType(core.Iterator$(html$.Node))
  }));
  return _WrappedIterator;
});
html$._WrappedIterator = html$._WrappedIterator$();
dart.addTypeTests(html$._WrappedIterator, _is__WrappedIterator_default);
html$._HttpRequestUtils = class _HttpRequestUtils extends core.Object {
  static get(url, onComplete, withCredentials) {
    let request = html$.HttpRequest.new();
    request.open("GET", url, {async: true});
    request.withCredentials = withCredentials;
    request[$onReadyStateChange].listen(dart.fn(e => {
      if (request.readyState === 4) {
        onComplete(request);
      }
    }, EventLToNullN()));
    request.send();
    return request;
  }
};
(html$._HttpRequestUtils.new = function() {
  ;
}).prototype = html$._HttpRequestUtils.prototype;
dart.addTypeTests(html$._HttpRequestUtils);
dart.addTypeCaches(html$._HttpRequestUtils);
dart.setLibraryUri(html$._HttpRequestUtils, L65);
var _current$2 = dart.privateName(html$, "_current");
var _array = dart.privateName(html$, "_array");
const _is_FixedSizeListIterator_default = Symbol('_is_FixedSizeListIterator_default');
html$.FixedSizeListIterator$ = dart.generic(T => {
  class FixedSizeListIterator extends core.Object {
    moveNext() {
      let nextPosition = dart.notNull(this[_position$0]) + 1;
      if (nextPosition < dart.notNull(this[_length$2])) {
        this[_current$2] = this[_array][$_get](nextPosition);
        this[_position$0] = nextPosition;
        return true;
      }
      this[_current$2] = null;
      this[_position$0] = this[_length$2];
      return false;
    }
    get current() {
      return this[_current$2];
    }
  }
  (FixedSizeListIterator.new = function(array) {
    this[_current$2] = null;
    this[_array] = array;
    this[_position$0] = -1;
    this[_length$2] = array[$length];
    ;
  }).prototype = FixedSizeListIterator.prototype;
  dart.addTypeTests(FixedSizeListIterator);
  FixedSizeListIterator.prototype[_is_FixedSizeListIterator_default] = true;
  dart.addTypeCaches(FixedSizeListIterator);
  FixedSizeListIterator[dart.implements] = () => [core.Iterator$(T)];
  dart.setMethodSignature(FixedSizeListIterator, () => ({
    __proto__: dart.getMethods(FixedSizeListIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(FixedSizeListIterator, () => ({
    __proto__: dart.getGetters(FixedSizeListIterator.__proto__),
    current: T
  }));
  dart.setLibraryUri(FixedSizeListIterator, L65);
  dart.setFieldSignature(FixedSizeListIterator, () => ({
    __proto__: dart.getFields(FixedSizeListIterator.__proto__),
    [_array]: dart.finalFieldType(core.List$(T)),
    [_length$2]: dart.finalFieldType(core.int),
    [_position$0]: dart.fieldType(core.int),
    [_current$2]: dart.fieldType(T)
  }));
  return FixedSizeListIterator;
});
html$.FixedSizeListIterator = html$.FixedSizeListIterator$();
dart.addTypeTests(html$.FixedSizeListIterator, _is_FixedSizeListIterator_default);
const _is__VariableSizeListIterator_default = Symbol('_is__VariableSizeListIterator_default');
html$._VariableSizeListIterator$ = dart.generic(T => {
  class _VariableSizeListIterator extends core.Object {
    moveNext() {
      let nextPosition = dart.notNull(this[_position$0]) + 1;
      if (nextPosition < dart.notNull(this[_array][$length])) {
        this[_current$2] = this[_array][$_get](nextPosition);
        this[_position$0] = nextPosition;
        return true;
      }
      this[_current$2] = null;
      this[_position$0] = this[_array][$length];
      return false;
    }
    get current() {
      return this[_current$2];
    }
  }
  (_VariableSizeListIterator.new = function(array) {
    this[_current$2] = null;
    this[_array] = array;
    this[_position$0] = -1;
    ;
  }).prototype = _VariableSizeListIterator.prototype;
  dart.addTypeTests(_VariableSizeListIterator);
  _VariableSizeListIterator.prototype[_is__VariableSizeListIterator_default] = true;
  dart.addTypeCaches(_VariableSizeListIterator);
  _VariableSizeListIterator[dart.implements] = () => [core.Iterator$(T)];
  dart.setMethodSignature(_VariableSizeListIterator, () => ({
    __proto__: dart.getMethods(_VariableSizeListIterator.__proto__),
    moveNext: dart.fnType(core.bool, [])
  }));
  dart.setGetterSignature(_VariableSizeListIterator, () => ({
    __proto__: dart.getGetters(_VariableSizeListIterator.__proto__),
    current: T
  }));
  dart.setLibraryUri(_VariableSizeListIterator, L65);
  dart.setFieldSignature(_VariableSizeListIterator, () => ({
    __proto__: dart.getFields(_VariableSizeListIterator.__proto__),
    [_array]: dart.finalFieldType(core.List$(T)),
    [_position$0]: dart.fieldType(core.int),
    [_current$2]: dart.fieldType(T)
  }));
  return _VariableSizeListIterator;
});
html$._VariableSizeListIterator = html$._VariableSizeListIterator$();
dart.addTypeTests(html$._VariableSizeListIterator, _is__VariableSizeListIterator_default);
var _isConsoleDefined = dart.privateName(html$, "_isConsoleDefined");
var C413;
html$.Console = class Console extends core.Object {
  get [_isConsoleDefined]() {
    return typeof console != "undefined";
  }
  get memory() {
    return dart.test(this[_isConsoleDefined]) ? window.console.memory : null;
  }
  assertCondition(condition, arg) {
    return dart.test(this[_isConsoleDefined]) ? window.console.assertCondition(condition, arg) : null;
  }
  clear(arg) {
    return dart.test(this[_isConsoleDefined]) ? window.console.clear(arg) : null;
  }
  count(arg) {
    return dart.test(this[_isConsoleDefined]) ? window.console.count(arg) : null;
  }
  debug(arg) {
    return dart.test(this[_isConsoleDefined]) ? window.console.debug(arg) : null;
  }
  dir(arg) {
    return dart.test(this[_isConsoleDefined]) ? window.console.dir(arg) : null;
  }
  dirxml(arg) {
    return dart.test(this[_isConsoleDefined]) ? window.console.dirxml(arg) : null;
  }
  error(arg) {
    return dart.test(this[_isConsoleDefined]) ? window.console.error(arg) : null;
  }
  group(arg) {
    return dart.test(this[_isConsoleDefined]) ? window.console.group(arg) : null;
  }
  groupCollapsed(arg) {
    return dart.test(this[_isConsoleDefined]) ? window.console.groupCollapsed(arg) : null;
  }
  groupEnd() {
    return dart.test(this[_isConsoleDefined]) ? window.console.groupEnd() : null;
  }
  info(arg) {
    return dart.test(this[_isConsoleDefined]) ? window.console.info(arg) : null;
  }
  log(arg) {
    return dart.test(this[_isConsoleDefined]) ? window.console.log(arg) : null;
  }
  markTimeline(arg) {
    return dart.test(this[_isConsoleDefined]) ? window.console.markTimeline(arg) : null;
  }
  profile(title) {
    return dart.test(this[_isConsoleDefined]) ? window.console.profile(title) : null;
  }
  profileEnd(title) {
    return dart.test(this[_isConsoleDefined]) ? window.console.profileEnd(title) : null;
  }
  table(arg) {
    return dart.test(this[_isConsoleDefined]) ? window.console.table(arg) : null;
  }
  time(title) {
    return dart.test(this[_isConsoleDefined]) ? window.console.time(title) : null;
  }
  timeEnd(title) {
    return dart.test(this[_isConsoleDefined]) ? window.console.timeEnd(title) : null;
  }
  timeStamp(arg) {
    return dart.test(this[_isConsoleDefined]) ? window.console.timeStamp(arg) : null;
  }
  trace(arg) {
    return dart.test(this[_isConsoleDefined]) ? window.console.trace(arg) : null;
  }
  warn(arg) {
    return dart.test(this[_isConsoleDefined]) ? window.console.warn(arg) : null;
  }
};
(html$.Console._safe = function() {
  ;
}).prototype = html$.Console.prototype;
dart.addTypeTests(html$.Console);
dart.addTypeCaches(html$.Console);
dart.setMethodSignature(html$.Console, () => ({
  __proto__: dart.getMethods(html$.Console.__proto__),
  assertCondition: dart.fnType(dart.void, [core.bool, core.Object]),
  clear: dart.fnType(dart.void, [core.Object]),
  count: dart.fnType(dart.void, [core.Object]),
  debug: dart.fnType(dart.void, [core.Object]),
  dir: dart.fnType(dart.void, [core.Object]),
  dirxml: dart.fnType(dart.void, [core.Object]),
  error: dart.fnType(dart.void, [core.Object]),
  group: dart.fnType(dart.void, [core.Object]),
  groupCollapsed: dart.fnType(dart.void, [core.Object]),
  groupEnd: dart.fnType(dart.void, []),
  info: dart.fnType(dart.void, [core.Object]),
  log: dart.fnType(dart.void, [core.Object]),
  markTimeline: dart.fnType(dart.void, [core.Object]),
  profile: dart.fnType(dart.void, [core.String]),
  profileEnd: dart.fnType(dart.void, [core.String]),
  table: dart.fnType(dart.void, [core.Object]),
  time: dart.fnType(dart.void, [core.String]),
  timeEnd: dart.fnType(dart.void, [core.String]),
  timeStamp: dart.fnType(dart.void, [core.Object]),
  trace: dart.fnType(dart.void, [core.Object]),
  warn: dart.fnType(dart.void, [core.Object])
}));
dart.setGetterSignature(html$.Console, () => ({
  __proto__: dart.getGetters(html$.Console.__proto__),
  [_isConsoleDefined]: core.bool,
  memory: html$.MemoryInfo
}));
dart.setLibraryUri(html$.Console, L65);
dart.defineLazy(html$.Console, {
  /*html$.Console._safeConsole*/get _safeConsole() {
    return C413 || CT.C413;
  }
}, true);
var _interceptor = dart.privateName(html$, "_interceptor");
var _constructor = dart.privateName(html$, "_constructor");
var _nativeType = dart.privateName(html$, "_nativeType");
html$._JSElementUpgrader = class _JSElementUpgrader extends core.Object {
  upgrade(element) {
    if (!dart.equals(dart.runtimeType(element), this[_nativeType])) {
      if (!dart.equals(this[_nativeType], dart.wrapType(html$.HtmlElement)) || !dart.equals(dart.runtimeType(element), dart.wrapType(html$.UnknownElement))) {
        dart.throw(new core.ArgumentError.new("element is not subclass of " + dart.str(this[_nativeType])));
      }
    }
    _js_helper.setNativeSubclassDispatchRecord(element, this[_interceptor]);
    this[_constructor](element);
    return element;
  }
};
(html$._JSElementUpgrader.new = function(document, type, extendsTag) {
  this[_interceptor] = null;
  this[_constructor] = null;
  this[_nativeType] = null;
  let interceptorClass = _interceptors.findInterceptorConstructorForType(type);
  if (interceptorClass == null) {
    dart.throw(new core.ArgumentError.new(type));
  }
  this[_constructor] = _interceptors.findConstructorForNativeSubclassType(type, "created");
  if (this[_constructor] == null) {
    dart.throw(new core.ArgumentError.new(dart.str(type) + " has no constructor called 'created'"));
  }
  _interceptors.getNativeInterceptor(html$.Element.tag("article"));
  let baseClassName = _js_helper.findDispatchTagForInterceptorClass(interceptorClass);
  if (baseClassName == null) {
    dart.throw(new core.ArgumentError.new(type));
  }
  if (extendsTag == null) {
    if (!dart.equals(baseClassName, "HTMLElement")) {
      dart.throw(new core.UnsupportedError.new("Class must provide extendsTag if base " + "native class is not HtmlElement"));
    }
    this[_nativeType] = dart.wrapType(html$.HtmlElement);
  } else {
    let element = document[$createElement](extendsTag);
    html$._checkExtendsNativeClassOrTemplate(element, extendsTag, core.String.as(baseClassName));
    this[_nativeType] = dart.runtimeType(element);
  }
  this[_interceptor] = interceptorClass.prototype;
}).prototype = html$._JSElementUpgrader.prototype;
dart.addTypeTests(html$._JSElementUpgrader);
dart.addTypeCaches(html$._JSElementUpgrader);
html$._JSElementUpgrader[dart.implements] = () => [html$.ElementUpgrader];
dart.setMethodSignature(html$._JSElementUpgrader, () => ({
  __proto__: dart.getMethods(html$._JSElementUpgrader.__proto__),
  upgrade: dart.fnType(html$.Element, [html$.Element])
}));
dart.setLibraryUri(html$._JSElementUpgrader, L65);
dart.setFieldSignature(html$._JSElementUpgrader, () => ({
  __proto__: dart.getFields(html$._JSElementUpgrader.__proto__),
  [_interceptor]: dart.fieldType(dart.dynamic),
  [_constructor]: dart.fieldType(dart.dynamic),
  [_nativeType]: dart.fieldType(dart.dynamic)
}));
var _window$ = dart.privateName(html$, "_window");
html$._DOMWindowCrossFrame = class _DOMWindowCrossFrame extends core.Object {
  get history() {
    return html$._HistoryCrossFrame._createSafe(this[_window$].history);
  }
  get location() {
    return html$._LocationCrossFrame._createSafe(this[_window$].location);
  }
  get closed() {
    return this[_window$].closed;
  }
  get opener() {
    return html$._DOMWindowCrossFrame._createSafe(this[_window$].opener);
  }
  get parent() {
    return html$._DOMWindowCrossFrame._createSafe(this[_window$].parent);
  }
  get top() {
    return html$._DOMWindowCrossFrame._createSafe(this[_window$].top);
  }
  close() {
    return this[_window$].close();
  }
  postMessage(message, targetOrigin, messagePorts = null) {
    if (messagePorts == null) {
      this[_window$].postMessage(html_common.convertDartToNative_SerializedScriptValue(message), targetOrigin);
    } else {
      this[_window$].postMessage(html_common.convertDartToNative_SerializedScriptValue(message), targetOrigin, messagePorts);
    }
  }
  static _createSafe(w) {
    if (core.identical(w, html$.window)) {
      return html$.WindowBase.as(w);
    } else {
      _js_helper.registerGlobalObject(w);
      return new html$._DOMWindowCrossFrame.new(w);
    }
  }
  get on() {
    return dart.throw(new core.UnsupportedError.new("You can only attach EventListeners to your own window."));
  }
  [_addEventListener](type, listener, useCapture = null) {
    return dart.throw(new core.UnsupportedError.new("You can only attach EventListeners to your own window."));
  }
  addEventListener(type, listener, useCapture = null) {
    return dart.throw(new core.UnsupportedError.new("You can only attach EventListeners to your own window."));
  }
  dispatchEvent(event) {
    return dart.throw(new core.UnsupportedError.new("You can only attach EventListeners to your own window."));
  }
  [_removeEventListener](type, listener, useCapture = null) {
    return dart.throw(new core.UnsupportedError.new("You can only attach EventListeners to your own window."));
  }
  removeEventListener(type, listener, useCapture = null) {
    return dart.throw(new core.UnsupportedError.new("You can only attach EventListeners to your own window."));
  }
};
(html$._DOMWindowCrossFrame.new = function(_window) {
  this[_window$] = _window;
  ;
}).prototype = html$._DOMWindowCrossFrame.prototype;
dart.addTypeTests(html$._DOMWindowCrossFrame);
dart.addTypeCaches(html$._DOMWindowCrossFrame);
html$._DOMWindowCrossFrame[dart.implements] = () => [html$.WindowBase];
dart.setMethodSignature(html$._DOMWindowCrossFrame, () => ({
  __proto__: dart.getMethods(html$._DOMWindowCrossFrame.__proto__),
  close: dart.fnType(dart.void, []),
  [$close]: dart.fnType(dart.void, []),
  postMessage: dart.fnType(dart.void, [dart.dynamic, core.String], [core.List]),
  [$postMessage]: dart.fnType(dart.void, [dart.dynamic, core.String], [core.List]),
  [_addEventListener]: dart.fnType(dart.void, [core.String, dart.fnType(dart.dynamic, [html$.Event])], [core.bool]),
  addEventListener: dart.fnType(dart.void, [core.String, dart.fnType(dart.dynamic, [html$.Event])], [core.bool]),
  [$addEventListener]: dart.fnType(dart.void, [core.String, dart.fnType(dart.dynamic, [html$.Event])], [core.bool]),
  dispatchEvent: dart.fnType(core.bool, [html$.Event]),
  [$dispatchEvent]: dart.fnType(core.bool, [html$.Event]),
  [_removeEventListener]: dart.fnType(dart.void, [core.String, dart.fnType(dart.dynamic, [html$.Event])], [core.bool]),
  removeEventListener: dart.fnType(dart.void, [core.String, dart.fnType(dart.dynamic, [html$.Event])], [core.bool]),
  [$removeEventListener]: dart.fnType(dart.void, [core.String, dart.fnType(dart.dynamic, [html$.Event])], [core.bool])
}));
dart.setGetterSignature(html$._DOMWindowCrossFrame, () => ({
  __proto__: dart.getGetters(html$._DOMWindowCrossFrame.__proto__),
  history: html$.HistoryBase,
  [$history]: html$.HistoryBase,
  location: html$.LocationBase,
  [$location]: html$.LocationBase,
  closed: core.bool,
  [$closed]: core.bool,
  opener: html$.WindowBase,
  [$opener]: html$.WindowBase,
  parent: html$.WindowBase,
  [$parent]: html$.WindowBase,
  top: html$.WindowBase,
  [$top]: html$.WindowBase,
  on: html$.Events,
  [$on]: html$.Events
}));
dart.setLibraryUri(html$._DOMWindowCrossFrame, L65);
dart.setFieldSignature(html$._DOMWindowCrossFrame, () => ({
  __proto__: dart.getFields(html$._DOMWindowCrossFrame.__proto__),
  [_window$]: dart.finalFieldType(dart.dynamic)
}));
dart.defineExtensionMethods(html$._DOMWindowCrossFrame, [
  'close',
  'postMessage',
  'addEventListener',
  'dispatchEvent',
  'removeEventListener'
]);
dart.defineExtensionAccessors(html$._DOMWindowCrossFrame, [
  'history',
  'location',
  'closed',
  'opener',
  'parent',
  'top',
  'on'
]);
html$._LocationCrossFrame = class _LocationCrossFrame extends core.Object {
  set href(val) {
    return html$._LocationCrossFrame._setHref(this[_location$], val);
  }
  static _setHref(location, val) {
    location.href = val;
  }
  static _createSafe(location) {
    if (core.identical(location, html$.window[$location])) {
      return html$.LocationBase.as(location);
    } else {
      return new html$._LocationCrossFrame.new(location);
    }
  }
};
(html$._LocationCrossFrame.new = function(_location) {
  this[_location$] = _location;
  ;
}).prototype = html$._LocationCrossFrame.prototype;
dart.addTypeTests(html$._LocationCrossFrame);
dart.addTypeCaches(html$._LocationCrossFrame);
html$._LocationCrossFrame[dart.implements] = () => [html$.LocationBase];
dart.setSetterSignature(html$._LocationCrossFrame, () => ({
  __proto__: dart.getSetters(html$._LocationCrossFrame.__proto__),
  href: core.String,
  [$href]: core.String
}));
dart.setLibraryUri(html$._LocationCrossFrame, L65);
dart.setFieldSignature(html$._LocationCrossFrame, () => ({
  __proto__: dart.getFields(html$._LocationCrossFrame.__proto__),
  [_location$]: dart.fieldType(dart.dynamic)
}));
dart.defineExtensionAccessors(html$._LocationCrossFrame, ['href']);
var _history$ = dart.privateName(html$, "_history");
html$._HistoryCrossFrame = class _HistoryCrossFrame extends core.Object {
  back() {
    return this[_history$].back();
  }
  forward() {
    return this[_history$].forward();
  }
  go(distance) {
    return this[_history$].go(distance);
  }
  static _createSafe(h) {
    if (core.identical(h, html$.window.history)) {
      return html$.HistoryBase.as(h);
    } else {
      return new html$._HistoryCrossFrame.new(h);
    }
  }
};
(html$._HistoryCrossFrame.new = function(_history) {
  this[_history$] = _history;
  ;
}).prototype = html$._HistoryCrossFrame.prototype;
dart.addTypeTests(html$._HistoryCrossFrame);
dart.addTypeCaches(html$._HistoryCrossFrame);
html$._HistoryCrossFrame[dart.implements] = () => [html$.HistoryBase];
dart.setMethodSignature(html$._HistoryCrossFrame, () => ({
  __proto__: dart.getMethods(html$._HistoryCrossFrame.__proto__),
  back: dart.fnType(dart.void, []),
  [$back]: dart.fnType(dart.void, []),
  forward: dart.fnType(dart.void, []),
  [$forward]: dart.fnType(dart.void, []),
  go: dart.fnType(dart.void, [core.int]),
  [$go]: dart.fnType(dart.void, [core.int])
}));
dart.setLibraryUri(html$._HistoryCrossFrame, L65);
dart.setFieldSignature(html$._HistoryCrossFrame, () => ({
  __proto__: dart.getFields(html$._HistoryCrossFrame.__proto__),
  [_history$]: dart.fieldType(dart.dynamic)
}));
dart.defineExtensionMethods(html$._HistoryCrossFrame, ['back', 'forward', 'go']);
html$.Platform = class Platform extends core.Object {};
(html$.Platform.new = function() {
  ;
}).prototype = html$.Platform.prototype;
dart.addTypeTests(html$.Platform);
dart.addTypeCaches(html$.Platform);
dart.setLibraryUri(html$.Platform, L65);
dart.defineLazy(html$.Platform, {
  /*html$.Platform.supportsTypedData*/get supportsTypedData() {
    return !!window.ArrayBuffer;
  },
  /*html$.Platform.supportsSimd*/get supportsSimd() {
    return false;
  }
}, true);
html$.ElementUpgrader = class ElementUpgrader extends core.Object {};
(html$.ElementUpgrader.new = function() {
  ;
}).prototype = html$.ElementUpgrader.prototype;
dart.addTypeTests(html$.ElementUpgrader);
dart.addTypeCaches(html$.ElementUpgrader);
dart.setLibraryUri(html$.ElementUpgrader, L65);
html$.NodeValidator = class NodeValidator extends core.Object {
  static new(opts) {
    let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
    return new html$._Html5NodeValidator.new({uriPolicy: uriPolicy});
  }
  static throws(base) {
    return new html$._ThrowsNodeValidator.new(base);
  }
};
(html$.NodeValidator[dart.mixinNew] = function() {
}).prototype = html$.NodeValidator.prototype;
dart.addTypeTests(html$.NodeValidator);
dart.addTypeCaches(html$.NodeValidator);
dart.setLibraryUri(html$.NodeValidator, L65);
var C414;
html$.NodeTreeSanitizer = class NodeTreeSanitizer extends core.Object {
  static new(validator) {
    return new html$._ValidatingTreeSanitizer.new(validator);
  }
};
(html$.NodeTreeSanitizer[dart.mixinNew] = function() {
}).prototype = html$.NodeTreeSanitizer.prototype;
dart.addTypeTests(html$.NodeTreeSanitizer);
dart.addTypeCaches(html$.NodeTreeSanitizer);
dart.setLibraryUri(html$.NodeTreeSanitizer, L65);
dart.defineLazy(html$.NodeTreeSanitizer, {
  /*html$.NodeTreeSanitizer.trusted*/get trusted() {
    return C414 || CT.C414;
  }
}, true);
html$._TrustedHtmlTreeSanitizer = class _TrustedHtmlTreeSanitizer extends core.Object {
  sanitizeTree(node) {
  }
};
(html$._TrustedHtmlTreeSanitizer.new = function() {
  ;
}).prototype = html$._TrustedHtmlTreeSanitizer.prototype;
dart.addTypeTests(html$._TrustedHtmlTreeSanitizer);
dart.addTypeCaches(html$._TrustedHtmlTreeSanitizer);
html$._TrustedHtmlTreeSanitizer[dart.implements] = () => [html$.NodeTreeSanitizer];
dart.setMethodSignature(html$._TrustedHtmlTreeSanitizer, () => ({
  __proto__: dart.getMethods(html$._TrustedHtmlTreeSanitizer.__proto__),
  sanitizeTree: dart.fnType(dart.void, [html$.Node])
}));
dart.setLibraryUri(html$._TrustedHtmlTreeSanitizer, L65);
html$.UriPolicy = class UriPolicy extends core.Object {
  static new() {
    return new html$._SameOriginUriPolicy.new();
  }
};
(html$.UriPolicy[dart.mixinNew] = function() {
}).prototype = html$.UriPolicy.prototype;
dart.addTypeTests(html$.UriPolicy);
dart.addTypeCaches(html$.UriPolicy);
dart.setLibraryUri(html$.UriPolicy, L65);
var _hiddenAnchor = dart.privateName(html$, "_hiddenAnchor");
var _loc = dart.privateName(html$, "_loc");
html$._SameOriginUriPolicy = class _SameOriginUriPolicy extends core.Object {
  allowsUri(uri) {
    this[_hiddenAnchor].href = uri;
    return this[_hiddenAnchor].hostname == this[_loc].hostname && this[_hiddenAnchor].port == this[_loc].port && this[_hiddenAnchor].protocol == this[_loc].protocol || this[_hiddenAnchor].hostname === "" && this[_hiddenAnchor].port === "" && (this[_hiddenAnchor].protocol === ":" || this[_hiddenAnchor].protocol === "");
  }
};
(html$._SameOriginUriPolicy.new = function() {
  this[_hiddenAnchor] = html$.AnchorElement.new();
  this[_loc] = html$.window[$location];
  ;
}).prototype = html$._SameOriginUriPolicy.prototype;
dart.addTypeTests(html$._SameOriginUriPolicy);
dart.addTypeCaches(html$._SameOriginUriPolicy);
html$._SameOriginUriPolicy[dart.implements] = () => [html$.UriPolicy];
dart.setMethodSignature(html$._SameOriginUriPolicy, () => ({
  __proto__: dart.getMethods(html$._SameOriginUriPolicy.__proto__),
  allowsUri: dart.fnType(core.bool, [core.String])
}));
dart.setLibraryUri(html$._SameOriginUriPolicy, L65);
dart.setFieldSignature(html$._SameOriginUriPolicy, () => ({
  __proto__: dart.getFields(html$._SameOriginUriPolicy.__proto__),
  [_hiddenAnchor]: dart.finalFieldType(html$.AnchorElement),
  [_loc]: dart.finalFieldType(html$.Location)
}));
html$._ThrowsNodeValidator = class _ThrowsNodeValidator extends core.Object {
  allowsElement(element) {
    if (!dart.test(this.validator.allowsElement(element))) {
      dart.throw(new core.ArgumentError.new(html$.Element._safeTagName(element)));
    }
    return true;
  }
  allowsAttribute(element, attributeName, value) {
    if (!dart.test(this.validator.allowsAttribute(element, attributeName, value))) {
      dart.throw(new core.ArgumentError.new(dart.str(html$.Element._safeTagName(element)) + "[" + dart.str(attributeName) + "=\"" + dart.str(value) + "\"]"));
    }
    return true;
  }
};
(html$._ThrowsNodeValidator.new = function(validator) {
  this.validator = validator;
}).prototype = html$._ThrowsNodeValidator.prototype;
dart.addTypeTests(html$._ThrowsNodeValidator);
dart.addTypeCaches(html$._ThrowsNodeValidator);
html$._ThrowsNodeValidator[dart.implements] = () => [html$.NodeValidator];
dart.setMethodSignature(html$._ThrowsNodeValidator, () => ({
  __proto__: dart.getMethods(html$._ThrowsNodeValidator.__proto__),
  allowsElement: dart.fnType(core.bool, [html$.Element]),
  allowsAttribute: dart.fnType(core.bool, [html$.Element, core.String, core.String])
}));
dart.setLibraryUri(html$._ThrowsNodeValidator, L65);
dart.setFieldSignature(html$._ThrowsNodeValidator, () => ({
  __proto__: dart.getFields(html$._ThrowsNodeValidator.__proto__),
  validator: dart.finalFieldType(html$.NodeValidator)
}));
var _removeNode = dart.privateName(html$, "_removeNode");
var _sanitizeElement = dart.privateName(html$, "_sanitizeElement");
var _sanitizeUntrustedElement = dart.privateName(html$, "_sanitizeUntrustedElement");
html$._ValidatingTreeSanitizer = class _ValidatingTreeSanitizer extends core.Object {
  sanitizeTree(node) {
    const walk = (node, parent) => {
      this.sanitizeNode(node, parent);
      let child = node.lastChild;
      while (null != child) {
        let nextChild = null;
        try {
          nextChild = child[$previousNode];
          if (nextChild != null && !dart.equals(nextChild[$nextNode], child)) {
            dart.throw(new core.StateError.new("Corrupt HTML"));
          }
        } catch (e$) {
          let e = dart.getThrown(e$);
          this[_removeNode](child, node);
          child = null;
          nextChild = node.lastChild;
        }
        if (child != null) walk(child, node);
        child = nextChild;
      }
    };
    dart.fn(walk, NodeLAndNodeLTovoid());
    this.modifiedTree = false;
    walk(node, null);
    while (dart.test(this.modifiedTree)) {
      this.modifiedTree = false;
      walk(node, null);
    }
  }
  [_removeNode](node, parent) {
    this.modifiedTree = true;
    if (parent == null || !dart.equals(parent, node.parentNode)) {
      node[$remove]();
    } else {
      parent[_removeChild](node);
    }
  }
  [_sanitizeUntrustedElement](element, parent) {
    let corrupted = true;
    let attrs = null;
    let isAttr = null;
    try {
      attrs = dart.dload(element, 'attributes');
      isAttr = dart.dsend(attrs, '_get', ["is"]);
      let corruptedTest1 = html$.Element._hasCorruptedAttributes(html$.Element.as(element));
      corrupted = dart.test(corruptedTest1) ? true : html$.Element._hasCorruptedAttributesAdditionalCheck(html$.Element.as(element));
    } catch (e$) {
      let e = dart.getThrown(e$);
    }
    let elementText = "element unprintable";
    try {
      elementText = dart.toString(element);
    } catch (e$0) {
      let e = dart.getThrown(e$0);
    }
    try {
      let elementTagName = html$.Element._safeTagName(element);
      this[_sanitizeElement](html$.Element.as(element), parent, corrupted, elementText, elementTagName, core.Map.as(attrs), core.String.as(isAttr));
    } catch (e$1) {
      let ex = dart.getThrown(e$1);
      if (core.ArgumentError.is(ex)) {
        dart.rethrow(e$1);
      } else {
        let e = ex;
        this[_removeNode](html$.Node.as(element), parent);
        html$.window[$console].warn("Removing corrupted element " + dart.str(elementText));
      }
    }
  }
  [_sanitizeElement](element, parent, corrupted, text, tag, attrs, isAttr) {
    if (!false[$_equals](corrupted)) {
      this[_removeNode](element, parent);
      html$.window[$console].warn("Removing element due to corrupted attributes on <" + dart.str(text) + ">");
      return;
    }
    if (!dart.test(this.validator.allowsElement(element))) {
      this[_removeNode](element, parent);
      html$.window[$console].warn("Removing disallowed element <" + dart.str(tag) + "> from " + dart.str(parent));
      return;
    }
    if (isAttr != null) {
      if (!dart.test(this.validator.allowsAttribute(element, "is", isAttr))) {
        this[_removeNode](element, parent);
        html$.window[$console].warn("Removing disallowed type extension " + "<" + dart.str(tag) + " is=\"" + dart.str(isAttr) + "\">");
        return;
      }
    }
    let keys = attrs[$keys][$toList]();
    for (let i = dart.notNull(attrs[$length]) - 1; i >= 0; i = i - 1) {
      let name = keys[$_get](i);
      if (!dart.test(this.validator.allowsAttribute(element, core.String.as(dart.dsend(name, 'toLowerCase', [])), core.String.as(attrs[$_get](name))))) {
        html$.window[$console].warn("Removing disallowed attribute " + "<" + dart.str(tag) + " " + dart.str(name) + "=\"" + dart.str(attrs[$_get](name)) + "\">");
        attrs[$remove](name);
      }
    }
    if (html$.TemplateElement.is(element)) {
      let template = element;
      this.sanitizeTree(template.content);
    }
  }
  sanitizeNode(node, parent) {
    switch (node.nodeType) {
      case 1:
      {
        this[_sanitizeUntrustedElement](node, parent);
        break;
      }
      case 8:
      case 11:
      case 3:
      case 4:
      {
        break;
      }
      default:
      {
        this[_removeNode](node, parent);
      }
    }
  }
};
(html$._ValidatingTreeSanitizer.new = function(validator) {
  this.modifiedTree = false;
  this.validator = validator;
}).prototype = html$._ValidatingTreeSanitizer.prototype;
dart.addTypeTests(html$._ValidatingTreeSanitizer);
dart.addTypeCaches(html$._ValidatingTreeSanitizer);
html$._ValidatingTreeSanitizer[dart.implements] = () => [html$.NodeTreeSanitizer];
dart.setMethodSignature(html$._ValidatingTreeSanitizer, () => ({
  __proto__: dart.getMethods(html$._ValidatingTreeSanitizer.__proto__),
  sanitizeTree: dart.fnType(dart.void, [html$.Node]),
  [_removeNode]: dart.fnType(dart.void, [html$.Node, html$.Node]),
  [_sanitizeUntrustedElement]: dart.fnType(dart.void, [dart.dynamic, html$.Node]),
  [_sanitizeElement]: dart.fnType(dart.void, [html$.Element, html$.Node, core.bool, core.String, core.String, core.Map, core.String]),
  sanitizeNode: dart.fnType(dart.void, [html$.Node, html$.Node])
}));
dart.setLibraryUri(html$._ValidatingTreeSanitizer, L65);
dart.setFieldSignature(html$._ValidatingTreeSanitizer, () => ({
  __proto__: dart.getFields(html$._ValidatingTreeSanitizer.__proto__),
  validator: dart.fieldType(html$.NodeValidator),
  modifiedTree: dart.fieldType(core.bool)
}));
var C415;
html$.promiseToFutureAsMap = function promiseToFutureAsMap(jsPromise) {
  return js_util.promiseToFuture(dart.dynamic, jsPromise).then(MapOfStringL$dynamic(), C415 || CT.C415);
};
html$._matchesWithAncestors = function _matchesWithAncestors(event, selector) {
  let target = event[$target];
  return html$.Element.is(target) ? target[$matchesWithAncestors](selector) : false;
};
html$._convertNativeToDart_Window = function _convertNativeToDart_Window(win) {
  if (win == null) return null;
  return html$._DOMWindowCrossFrame._createSafe(win);
};
html$._convertNativeToDart_EventTarget = function _convertNativeToDart_EventTarget(e) {
  if (e == null) {
    return null;
  }
  if ("postMessage" in e) {
    let window = html$._DOMWindowCrossFrame._createSafe(e);
    if (html$.EventTarget.is(window)) {
      return window;
    }
    return null;
  } else
    return html$.EventTarget.as(e);
};
html$._convertDartToNative_EventTarget = function _convertDartToNative_EventTarget(e) {
  if (html$._DOMWindowCrossFrame.is(e)) {
    return html$.EventTarget.as(e[_window$]);
  } else {
    return html$.EventTarget.as(e);
  }
};
html$._convertNativeToDart_XHR_Response = function _convertNativeToDart_XHR_Response(o) {
  if (html$.Document.is(o)) {
    return o;
  }
  return html_common.convertNativeToDart_SerializedScriptValue(o);
};
html$._callConstructor = function _callConstructor(constructor, interceptor) {
  return dart.fn(receiver => {
    _js_helper.setNativeSubclassDispatchRecord(receiver, interceptor);
    receiver.constructor = receiver.__proto__.constructor;
    return constructor(receiver);
  }, dynamicToObjectL());
};
html$._callAttached = function _callAttached(receiver) {
  return dart.dsend(receiver, 'attached', []);
};
html$._callDetached = function _callDetached(receiver) {
  return dart.dsend(receiver, 'detached', []);
};
html$._callAttributeChanged = function _callAttributeChanged(receiver, name, oldValue, newValue) {
  return dart.dsend(receiver, 'attributeChanged', [name, oldValue, newValue]);
};
html$._makeCallbackMethod = function _makeCallbackMethod(callback) {
  return (function(invokeCallback) {
    return function() {
      return invokeCallback(this);
    };
  })(_js_helper.convertDartClosureToJS(dart.dynamic, callback, 1));
};
html$._makeCallbackMethod3 = function _makeCallbackMethod3(callback) {
  return (function(invokeCallback) {
    return function(arg1, arg2, arg3) {
      return invokeCallback(this, arg1, arg2, arg3);
    };
  })(_js_helper.convertDartClosureToJS(dart.dynamic, callback, 4));
};
html$._checkExtendsNativeClassOrTemplate = function _checkExtendsNativeClassOrTemplate(element, extendsTag, baseClassName) {
  if (!(element instanceof window[baseClassName]) && !(extendsTag === "template" && element instanceof window.HTMLUnknownElement)) {
    dart.throw(new core.UnsupportedError.new("extendsTag does not match base native class"));
  }
};
html$._registerCustomElement = function _registerCustomElement(context, document, tag, options = null) {
  let extendsTagName = "";
  let type = null;
  if (options != null) {
    extendsTagName = core.String.as(options[$_get]("extends"));
    type = core.Type.as(options[$_get]("prototype"));
  }
  let interceptorClass = _interceptors.findInterceptorConstructorForType(type);
  if (interceptorClass == null) {
    dart.throw(new core.ArgumentError.new(type));
  }
  let interceptor = interceptorClass.prototype;
  let constructor = _interceptors.findConstructorForNativeSubclassType(type, "created");
  if (constructor == null) {
    dart.throw(new core.ArgumentError.new(dart.str(type) + " has no constructor called 'created'"));
  }
  _interceptors.getNativeInterceptor(html$.Element.tag("article"));
  let baseClassName = core.String.as(_js_helper.findDispatchTagForInterceptorClass(interceptorClass));
  if (baseClassName == null) {
    dart.throw(new core.ArgumentError.new(type));
  }
  if (extendsTagName == null) {
    if (baseClassName !== "HTMLElement") {
      dart.throw(new core.UnsupportedError.new("Class must provide extendsTag if base " + "native class is not HtmlElement"));
    }
  } else {
    let element = dart.dsend(document, 'createElement', [extendsTagName]);
    html$._checkExtendsNativeClassOrTemplate(html$.Element.as(element), extendsTagName, baseClassName);
  }
  let baseConstructor = context[baseClassName];
  let properties = {};
  properties.createdCallback = {value: html$._makeCallbackMethod(html$._callConstructor(constructor, interceptor))};
  properties.attachedCallback = {value: html$._makeCallbackMethod(html$._callAttached)};
  properties.detachedCallback = {value: html$._makeCallbackMethod(html$._callDetached)};
  properties.attributeChangedCallback = {value: html$._makeCallbackMethod3(html$._callAttributeChanged)};
  let baseProto = baseConstructor.prototype;
  let proto = Object.create(baseProto, properties);
  _js_helper.setNativeSubclassDispatchRecord(proto, interceptor);
  let opts = {prototype: proto};
  if (extendsTagName != null) {
    opts.extends = extendsTagName;
  }
  return document.registerElement(tag, opts);
};
html$._initializeCustomElement = function _initializeCustomElement(e) {
};
html$._wrapZone = function _wrapZone(T, callback) {
  if (dart.equals(async.Zone.current, async.Zone.root)) return callback;
  if (callback == null) return null;
  return async.Zone.current.bindUnaryCallbackGuarded(T, callback);
};
html$._wrapBinaryZone = function _wrapBinaryZone(T1, T2, callback) {
  if (dart.equals(async.Zone.current, async.Zone.root)) return callback;
  if (callback == null) return null;
  return async.Zone.current.bindBinaryCallbackGuarded(T1, T2, callback);
};
html$.querySelector = function querySelector(selectors) {
  return html$.document.querySelector(selectors);
};
html$.querySelectorAll = function querySelectorAll(T, selectors) {
  return html$.document[$querySelectorAll](T, selectors);
};
dart.copyProperties(html$, {
  get window() {
    return window;
  },
  get document() {
    return document;
  },
  get _workerSelf() {
    return self;
  }
});
dart.defineLazy(html$, {
  /*html$._HEIGHT*/get _HEIGHT() {
    return JSArrayOfStringL().of(["top", "bottom"]);
  },
  /*html$._WIDTH*/get _WIDTH() {
    return JSArrayOfStringL().of(["right", "left"]);
  },
  /*html$._CONTENT*/get _CONTENT() {
    return "content";
  },
  /*html$._PADDING*/get _PADDING() {
    return "padding";
  },
  /*html$._MARGIN*/get _MARGIN() {
    return "margin";
  }
}, true);
html_common._StructuredClone = class _StructuredClone extends core.Object {
  findSlot(value) {
    let length = this.values[$length];
    for (let i = 0; i < dart.notNull(length); i = i + 1) {
      if (core.identical(this.values[$_get](i), value)) return i;
    }
    this.values[$add](value);
    this.copies[$add](null);
    return length;
  }
  readSlot(i) {
    return this.copies[$_get](i);
  }
  writeSlot(i, x) {
    this.copies[$_set](i, x);
  }
  cleanupSlots() {
  }
  walk(e) {
    if (e == null) return e;
    if (typeof e == 'boolean') return e;
    if (typeof e == 'number') return e;
    if (typeof e == 'string') return e;
    if (core.DateTime.is(e)) {
      return html_common.convertDartToNative_DateTime(e);
    }
    if (core.RegExp.is(e)) {
      dart.throw(new core.UnimplementedError.new("structured clone of RegExp"));
    }
    if (html$.File.is(e)) return e;
    if (html$.Blob.is(e)) return e;
    if (html$.FileList.is(e)) return e;
    if (html$.ImageData.is(e)) return e;
    if (dart.test(this.cloneNotRequired(e))) return e;
    if (core.Map.is(e)) {
      let slot = this.findSlot(e);
      let copy = this.readSlot(slot);
      if (copy != null) return copy;
      copy = this.newJsMap();
      this.writeSlot(slot, copy);
      e[$forEach](dart.fn((key, value) => {
        this.putIntoMap(copy, key, this.walk(value));
      }, dynamicAnddynamicToNullN()));
      return copy;
    }
    if (core.List.is(e)) {
      let slot = this.findSlot(e);
      let copy = this.readSlot(slot);
      if (copy != null) return copy;
      copy = this.copyList(e, slot);
      return copy;
    }
    if (_interceptors.JSObject.is(e)) {
      let slot = this.findSlot(e);
      let copy = this.readSlot(slot);
      if (copy != null) return copy;
      copy = this.newJsObject();
      this.writeSlot(slot, copy);
      this.forEachObjectKey(e, dart.fn((key, value) => {
        this.putIntoObject(copy, key, this.walk(value));
      }, dynamicAnddynamicToNullN()));
      return copy;
    }
    dart.throw(new core.UnimplementedError.new("structured clone of other type"));
  }
  copyList(e, slot) {
    let i = 0;
    let length = e[$length];
    let copy = this.newJsList(length);
    this.writeSlot(slot, copy);
    for (; i < dart.notNull(length); i = i + 1) {
      copy[$_set](i, this.walk(e[$_get](i)));
    }
    return copy;
  }
  convertDartToNative_PrepareForStructuredClone(value) {
    let copy = this.walk(value);
    this.cleanupSlots();
    return copy;
  }
};
(html_common._StructuredClone.new = function() {
  this.values = [];
  this.copies = [];
  ;
}).prototype = html_common._StructuredClone.prototype;
dart.addTypeTests(html_common._StructuredClone);
dart.addTypeCaches(html_common._StructuredClone);
dart.setMethodSignature(html_common._StructuredClone, () => ({
  __proto__: dart.getMethods(html_common._StructuredClone.__proto__),
  findSlot: dart.fnType(core.int, [dart.dynamic]),
  readSlot: dart.fnType(dart.dynamic, [core.int]),
  writeSlot: dart.fnType(dart.dynamic, [core.int, dart.dynamic]),
  cleanupSlots: dart.fnType(dart.dynamic, []),
  walk: dart.fnType(dart.dynamic, [dart.dynamic]),
  copyList: dart.fnType(core.List, [core.List, core.int]),
  convertDartToNative_PrepareForStructuredClone: dart.fnType(dart.dynamic, [dart.dynamic])
}));
dart.setLibraryUri(html_common._StructuredClone, L67);
dart.setFieldSignature(html_common._StructuredClone, () => ({
  __proto__: dart.getFields(html_common._StructuredClone.__proto__),
  values: dart.fieldType(core.List),
  copies: dart.fieldType(core.List)
}));
html_common._AcceptStructuredClone = class _AcceptStructuredClone extends core.Object {
  findSlot(value) {
    let length = this.values[$length];
    for (let i = 0; i < dart.notNull(length); i = i + 1) {
      if (dart.test(this.identicalInJs(this.values[$_get](i), value))) return i;
    }
    this.values[$add](value);
    this.copies[$add](null);
    return length;
  }
  readSlot(i) {
    return this.copies[$_get](i);
  }
  writeSlot(i, x) {
    this.copies[$_set](i, x);
  }
  walk(e) {
    if (e == null) return e;
    if (typeof e == 'boolean') return e;
    if (typeof e == 'number') return e;
    if (typeof e == 'string') return e;
    if (dart.test(html_common.isJavaScriptDate(e))) {
      return html_common.convertNativeToDart_DateTime(e);
    }
    if (dart.test(html_common.isJavaScriptRegExp(e))) {
      dart.throw(new core.UnimplementedError.new("structured clone of RegExp"));
    }
    if (dart.test(html_common.isJavaScriptPromise(e))) {
      return js_util.promiseToFuture(dart.dynamic, e);
    }
    if (dart.test(html_common.isJavaScriptSimpleObject(e))) {
      let slot = this.findSlot(e);
      let copy = this.readSlot(slot);
      if (copy != null) return copy;
      copy = new _js_helper.LinkedMap.new();
      this.writeSlot(slot, copy);
      this.forEachJsField(e, dart.fn((key, value) => {
        let t124, t123, t122;
        t122 = copy;
        t123 = key;
        t124 = this.walk(value);
        dart.dsend(t122, '_set', [t123, t124]);
        return t124;
      }, dynamicAnddynamicTodynamic()));
      return copy;
    }
    if (dart.test(html_common.isJavaScriptArray(e))) {
      let l = e;
      let slot = this.findSlot(l);
      let copy = this.readSlot(slot);
      if (copy != null) return copy;
      let length = l[$length];
      copy = dart.test(this.mustCopy) ? this.newDartList(length) : l;
      this.writeSlot(slot, copy);
      for (let i = 0; i < dart.notNull(length); i = i + 1) {
        copy[$_set](i, this.walk(l[$_get](i)));
      }
      return copy;
    }
    return e;
  }
  convertNativeToDart_AcceptStructuredClone(object, opts) {
    let mustCopy = opts && 'mustCopy' in opts ? opts.mustCopy : false;
    this.mustCopy = core.bool.as(mustCopy);
    let copy = this.walk(object);
    return copy;
  }
};
(html_common._AcceptStructuredClone.new = function() {
  this.values = [];
  this.copies = [];
  this.mustCopy = false;
  ;
}).prototype = html_common._AcceptStructuredClone.prototype;
dart.addTypeTests(html_common._AcceptStructuredClone);
dart.addTypeCaches(html_common._AcceptStructuredClone);
dart.setMethodSignature(html_common._AcceptStructuredClone, () => ({
  __proto__: dart.getMethods(html_common._AcceptStructuredClone.__proto__),
  findSlot: dart.fnType(core.int, [dart.dynamic]),
  readSlot: dart.fnType(dart.dynamic, [core.int]),
  writeSlot: dart.fnType(dart.dynamic, [core.int, dart.dynamic]),
  walk: dart.fnType(dart.dynamic, [dart.dynamic]),
  convertNativeToDart_AcceptStructuredClone: dart.fnType(dart.dynamic, [dart.dynamic], {mustCopy: dart.dynamic}, {})
}));
dart.setLibraryUri(html_common._AcceptStructuredClone, L67);
dart.setFieldSignature(html_common._AcceptStructuredClone, () => ({
  __proto__: dart.getFields(html_common._AcceptStructuredClone.__proto__),
  values: dart.fieldType(core.List),
  copies: dart.fieldType(core.List),
  mustCopy: dart.fieldType(core.bool)
}));
var alpha$ = dart.privateName(html_common, "ContextAttributes.alpha");
var antialias$ = dart.privateName(html_common, "ContextAttributes.antialias");
var depth$ = dart.privateName(html_common, "ContextAttributes.depth");
var premultipliedAlpha$ = dart.privateName(html_common, "ContextAttributes.premultipliedAlpha");
var preserveDrawingBuffer$ = dart.privateName(html_common, "ContextAttributes.preserveDrawingBuffer");
var stencil$ = dart.privateName(html_common, "ContextAttributes.stencil");
var failIfMajorPerformanceCaveat$ = dart.privateName(html_common, "ContextAttributes.failIfMajorPerformanceCaveat");
html_common.ContextAttributes = class ContextAttributes extends core.Object {
  get alpha() {
    return this[alpha$];
  }
  set alpha(value) {
    this[alpha$] = value;
  }
  get antialias() {
    return this[antialias$];
  }
  set antialias(value) {
    this[antialias$] = value;
  }
  get depth() {
    return this[depth$];
  }
  set depth(value) {
    this[depth$] = value;
  }
  get premultipliedAlpha() {
    return this[premultipliedAlpha$];
  }
  set premultipliedAlpha(value) {
    this[premultipliedAlpha$] = value;
  }
  get preserveDrawingBuffer() {
    return this[preserveDrawingBuffer$];
  }
  set preserveDrawingBuffer(value) {
    this[preserveDrawingBuffer$] = value;
  }
  get stencil() {
    return this[stencil$];
  }
  set stencil(value) {
    this[stencil$] = value;
  }
  get failIfMajorPerformanceCaveat() {
    return this[failIfMajorPerformanceCaveat$];
  }
  set failIfMajorPerformanceCaveat(value) {
    this[failIfMajorPerformanceCaveat$] = value;
  }
};
(html_common.ContextAttributes.new = function(alpha, antialias, depth, failIfMajorPerformanceCaveat, premultipliedAlpha, preserveDrawingBuffer, stencil) {
  this[alpha$] = alpha;
  this[antialias$] = antialias;
  this[depth$] = depth;
  this[failIfMajorPerformanceCaveat$] = failIfMajorPerformanceCaveat;
  this[premultipliedAlpha$] = premultipliedAlpha;
  this[preserveDrawingBuffer$] = preserveDrawingBuffer;
  this[stencil$] = stencil;
  ;
}).prototype = html_common.ContextAttributes.prototype;
dart.addTypeTests(html_common.ContextAttributes);
dart.addTypeCaches(html_common.ContextAttributes);
dart.setLibraryUri(html_common.ContextAttributes, L67);
dart.setFieldSignature(html_common.ContextAttributes, () => ({
  __proto__: dart.getFields(html_common.ContextAttributes.__proto__),
  alpha: dart.fieldType(core.bool),
  antialias: dart.fieldType(core.bool),
  depth: dart.fieldType(core.bool),
  premultipliedAlpha: dart.fieldType(core.bool),
  preserveDrawingBuffer: dart.fieldType(core.bool),
  stencil: dart.fieldType(core.bool),
  failIfMajorPerformanceCaveat: dart.fieldType(core.bool)
}));
var data$0 = dart.privateName(html_common, "_TypedImageData.data");
var height$0 = dart.privateName(html_common, "_TypedImageData.height");
var width$0 = dart.privateName(html_common, "_TypedImageData.width");
html_common._TypedImageData = class _TypedImageData extends core.Object {
  get data() {
    return this[data$0];
  }
  set data(value) {
    super.data = value;
  }
  get height() {
    return this[height$0];
  }
  set height(value) {
    super.height = value;
  }
  get width() {
    return this[width$0];
  }
  set width(value) {
    super.width = value;
  }
};
(html_common._TypedImageData.new = function(data, height, width) {
  this[data$0] = data;
  this[height$0] = height;
  this[width$0] = width;
  ;
}).prototype = html_common._TypedImageData.prototype;
dart.addTypeTests(html_common._TypedImageData);
dart.addTypeCaches(html_common._TypedImageData);
html_common._TypedImageData[dart.implements] = () => [html$.ImageData];
dart.setLibraryUri(html_common._TypedImageData, L67);
dart.setFieldSignature(html_common._TypedImageData, () => ({
  __proto__: dart.getFields(html_common._TypedImageData.__proto__),
  data: dart.finalFieldType(typed_data.Uint8ClampedList),
  height: dart.finalFieldType(core.int),
  width: dart.finalFieldType(core.int)
}));
dart.defineExtensionAccessors(html_common._TypedImageData, ['data', 'height', 'width']);
html_common._StructuredCloneDart2Js = class _StructuredCloneDart2Js extends html_common._StructuredClone {
  newJsObject() {
    return {};
  }
  forEachObjectKey(object, action) {
    for (let key of Object.keys(object)) {
      action(key, object[key]);
    }
  }
  putIntoObject(object, key, value) {
    return object[key] = value;
  }
  newJsMap() {
    return {};
  }
  putIntoMap(map, key, value) {
    return map[key] = value;
  }
  newJsList(length) {
    return new Array(length);
  }
  cloneNotRequired(e) {
    return _native_typed_data.NativeByteBuffer.is(e) || _native_typed_data.NativeTypedData.is(e) || html$.MessagePort.is(e);
  }
};
(html_common._StructuredCloneDart2Js.new = function() {
  html_common._StructuredCloneDart2Js.__proto__.new.call(this);
  ;
}).prototype = html_common._StructuredCloneDart2Js.prototype;
dart.addTypeTests(html_common._StructuredCloneDart2Js);
dart.addTypeCaches(html_common._StructuredCloneDart2Js);
dart.setMethodSignature(html_common._StructuredCloneDart2Js, () => ({
  __proto__: dart.getMethods(html_common._StructuredCloneDart2Js.__proto__),
  newJsObject: dart.fnType(_interceptors.JSObject, []),
  forEachObjectKey: dart.fnType(dart.void, [dart.dynamic, dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic])]),
  putIntoObject: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
  newJsMap: dart.fnType(dart.dynamic, []),
  putIntoMap: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
  newJsList: dart.fnType(core.List, [dart.dynamic]),
  cloneNotRequired: dart.fnType(core.bool, [dart.dynamic])
}));
dart.setLibraryUri(html_common._StructuredCloneDart2Js, L67);
html_common._AcceptStructuredCloneDart2Js = class _AcceptStructuredCloneDart2Js extends html_common._AcceptStructuredClone {
  newJsList(length) {
    return new Array(length);
  }
  newDartList(length) {
    return this.newJsList(length);
  }
  identicalInJs(a, b) {
    return core.identical(a, b);
  }
  forEachJsField(object, action) {
    for (let key of Object.keys(object)) {
      action(key, object[key]);
    }
  }
};
(html_common._AcceptStructuredCloneDart2Js.new = function() {
  html_common._AcceptStructuredCloneDart2Js.__proto__.new.call(this);
  ;
}).prototype = html_common._AcceptStructuredCloneDart2Js.prototype;
dart.addTypeTests(html_common._AcceptStructuredCloneDart2Js);
dart.addTypeCaches(html_common._AcceptStructuredCloneDart2Js);
dart.setMethodSignature(html_common._AcceptStructuredCloneDart2Js, () => ({
  __proto__: dart.getMethods(html_common._AcceptStructuredCloneDart2Js.__proto__),
  newJsList: dart.fnType(core.List, [dart.dynamic]),
  newDartList: dart.fnType(core.List, [dart.dynamic]),
  identicalInJs: dart.fnType(core.bool, [dart.dynamic, dart.dynamic]),
  forEachJsField: dart.fnType(dart.void, [dart.dynamic, dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic])])
}));
dart.setLibraryUri(html_common._AcceptStructuredCloneDart2Js, L67);
html_common.Device = class Device extends core.Object {
  static get userAgent() {
    return html$.window.navigator.userAgent;
  }
  static get isOpera() {
    if (html_common.Device._isOpera == null) {
      html_common.Device._isOpera = html_common.Device.userAgent[$contains]("Opera", 0);
    }
    return html_common.Device._isOpera;
  }
  static get isIE() {
    if (html_common.Device._isIE == null) {
      html_common.Device._isIE = !dart.test(html_common.Device.isOpera) && html_common.Device.userAgent[$contains]("Trident/", 0);
    }
    return html_common.Device._isIE;
  }
  static get isFirefox() {
    if (html_common.Device._isFirefox == null) {
      html_common.Device._isFirefox = html_common.Device.userAgent[$contains]("Firefox", 0);
    }
    return html_common.Device._isFirefox;
  }
  static get isWebKit() {
    if (html_common.Device._isWebKit == null) {
      html_common.Device._isWebKit = !dart.test(html_common.Device.isOpera) && html_common.Device.userAgent[$contains]("WebKit", 0);
    }
    return html_common.Device._isWebKit;
  }
  static get cssPrefix() {
    let prefix = html_common.Device._cachedCssPrefix;
    if (prefix != null) return prefix;
    if (dart.test(html_common.Device.isFirefox)) {
      prefix = "-moz-";
    } else if (dart.test(html_common.Device.isIE)) {
      prefix = "-ms-";
    } else if (dart.test(html_common.Device.isOpera)) {
      prefix = "-o-";
    } else {
      prefix = "-webkit-";
    }
    return html_common.Device._cachedCssPrefix = prefix;
  }
  static get propertyPrefix() {
    let prefix = html_common.Device._cachedPropertyPrefix;
    if (prefix != null) return prefix;
    if (dart.test(html_common.Device.isFirefox)) {
      prefix = "moz";
    } else if (dart.test(html_common.Device.isIE)) {
      prefix = "ms";
    } else if (dart.test(html_common.Device.isOpera)) {
      prefix = "o";
    } else {
      prefix = "webkit";
    }
    return html_common.Device._cachedPropertyPrefix = prefix;
  }
  static isEventTypeSupported(eventType) {
    try {
      let e = html$.Event.eventType(eventType, "");
      return html$.Event.is(e);
    } catch (e$) {
      let _ = dart.getThrown(e$);
    }
    return false;
  }
};
(html_common.Device.new = function() {
  ;
}).prototype = html_common.Device.prototype;
dart.addTypeTests(html_common.Device);
dart.addTypeCaches(html_common.Device);
dart.setLibraryUri(html_common.Device, L67);
dart.defineLazy(html_common.Device, {
  /*html_common.Device._isOpera*/get _isOpera() {
    return null;
  },
  set _isOpera(_) {},
  /*html_common.Device._isIE*/get _isIE() {
    return null;
  },
  set _isIE(_) {},
  /*html_common.Device._isFirefox*/get _isFirefox() {
    return null;
  },
  set _isFirefox(_) {},
  /*html_common.Device._isWebKit*/get _isWebKit() {
    return null;
  },
  set _isWebKit(_) {},
  /*html_common.Device._cachedCssPrefix*/get _cachedCssPrefix() {
    return null;
  },
  set _cachedCssPrefix(_) {},
  /*html_common.Device._cachedPropertyPrefix*/get _cachedPropertyPrefix() {
    return null;
  },
  set _cachedPropertyPrefix(_) {}
}, true);
var _childNodes = dart.privateName(html_common, "_childNodes");
var _node = dart.privateName(html_common, "_node");
var _iterable$0 = dart.privateName(html_common, "_iterable");
var _filtered = dart.privateName(html_common, "_filtered");
html_common.FilteredElementList = class FilteredElementList extends collection.ListBase$(html$.Element) {
  get [_iterable$0]() {
    return this[_childNodes][$where](dart.fn(n => html$.Element.is(n), NodeLToboolL()))[$map](html$.Element, dart.fn(n => html$.Element.as(n), NodeLToElementL()));
  }
  get [_filtered]() {
    return ListOfElementL().from(this[_iterable$0], {growable: false});
  }
  forEach(f) {
    this[_filtered][$forEach](f);
  }
  _set(index, value$) {
    let value = value$;
    html$.Element.as(value);
    this._get(index)[$replaceWith](value);
    return value$;
  }
  set length(newLength) {
    let len = this.length;
    if (dart.notNull(newLength) >= dart.notNull(len)) {
      return;
    } else if (dart.notNull(newLength) < 0) {
      dart.throw(new core.ArgumentError.new("Invalid list length"));
    }
    this.removeRange(newLength, len);
  }
  add(value) {
    html$.Element.as(value);
    this[_childNodes][$add](value);
  }
  addAll(iterable) {
    IterableOfElementL().as(iterable);
    for (let element of iterable) {
      this.add(element);
    }
  }
  contains(needle) {
    if (!html$.Element.is(needle)) return false;
    let element = html$.Element.as(needle);
    return dart.equals(element.parentNode, this[_node]);
  }
  get reversed() {
    return this[_filtered][$reversed];
  }
  sort(compare = null) {
    dart.throw(new core.UnsupportedError.new("Cannot sort filtered list"));
  }
  setRange(start, end, iterable, skipCount = 0) {
    IterableOfElementL().as(iterable);
    dart.throw(new core.UnsupportedError.new("Cannot setRange on filtered list"));
  }
  fillRange(start, end, fillValue = null) {
    html$.Element.as(fillValue);
    dart.throw(new core.UnsupportedError.new("Cannot fillRange on filtered list"));
  }
  replaceRange(start, end, iterable) {
    IterableOfElementL().as(iterable);
    dart.throw(new core.UnsupportedError.new("Cannot replaceRange on filtered list"));
  }
  removeRange(start, end) {
    core.List.from(this[_iterable$0][$skip](start)[$take](dart.notNull(end) - dart.notNull(start)))[$forEach](dart.fn(el => dart.dsend(el, 'remove', []), dynamicTodynamic()));
  }
  clear() {
    this[_childNodes][$clear]();
  }
  removeLast() {
    let result = this[_iterable$0][$last];
    if (result != null) {
      result[$remove]();
    }
    return result;
  }
  insert(index, value) {
    html$.Element.as(value);
    if (index == this.length) {
      this.add(value);
    } else {
      let element = this[_iterable$0][$elementAt](index);
      element.parentNode.insertBefore(value, element);
    }
  }
  insertAll(index, iterable) {
    IterableOfElementL().as(iterable);
    if (index == this.length) {
      this.addAll(iterable);
    } else {
      let element = this[_iterable$0][$elementAt](index);
      element.parentNode[$insertAllBefore](iterable, element);
    }
  }
  removeAt(index) {
    let result = this._get(index);
    result[$remove]();
    return result;
  }
  remove(element) {
    if (!html$.Element.is(element)) return false;
    if (dart.test(this.contains(element))) {
      html$.Element.as(element)[$remove]();
      return true;
    } else {
      return false;
    }
  }
  get length() {
    return this[_iterable$0][$length];
  }
  _get(index) {
    return this[_iterable$0][$elementAt](index);
  }
  get iterator() {
    return this[_filtered][$iterator];
  }
  get rawList() {
    return this[_node].childNodes;
  }
};
(html_common.FilteredElementList.new = function(node) {
  this[_childNodes] = node[$nodes];
  this[_node] = node;
  ;
}).prototype = html_common.FilteredElementList.prototype;
dart.addTypeTests(html_common.FilteredElementList);
dart.addTypeCaches(html_common.FilteredElementList);
html_common.FilteredElementList[dart.implements] = () => [html_common.NodeListWrapper];
dart.setMethodSignature(html_common.FilteredElementList, () => ({
  __proto__: dart.getMethods(html_common.FilteredElementList.__proto__),
  _set: dart.fnType(dart.void, [core.int, core.Object]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  _get: dart.fnType(html$.Element, [core.int]),
  [$_get]: dart.fnType(html$.Element, [core.int])
}));
dart.setGetterSignature(html_common.FilteredElementList, () => ({
  __proto__: dart.getGetters(html_common.FilteredElementList.__proto__),
  [_iterable$0]: core.Iterable$(html$.Element),
  [_filtered]: core.List$(html$.Element),
  length: core.int,
  [$length]: core.int,
  rawList: core.List$(html$.Node)
}));
dart.setSetterSignature(html_common.FilteredElementList, () => ({
  __proto__: dart.getSetters(html_common.FilteredElementList.__proto__),
  length: core.int,
  [$length]: core.int
}));
dart.setLibraryUri(html_common.FilteredElementList, L67);
dart.setFieldSignature(html_common.FilteredElementList, () => ({
  __proto__: dart.getFields(html_common.FilteredElementList.__proto__),
  [_node]: dart.finalFieldType(html$.Node),
  [_childNodes]: dart.finalFieldType(core.List$(html$.Node))
}));
dart.defineExtensionMethods(html_common.FilteredElementList, [
  'forEach',
  '_set',
  'add',
  'addAll',
  'contains',
  'sort',
  'setRange',
  'fillRange',
  'replaceRange',
  'removeRange',
  'clear',
  'removeLast',
  'insert',
  'insertAll',
  'removeAt',
  'remove',
  '_get'
]);
dart.defineExtensionAccessors(html_common.FilteredElementList, ['length', 'reversed', 'iterator']);
html_common.Lists = class Lists extends core.Object {
  static indexOf(a, element, startIndex, endIndex) {
    if (dart.notNull(startIndex) >= dart.notNull(a[$length])) {
      return -1;
    }
    if (dart.notNull(startIndex) < 0) {
      startIndex = 0;
    }
    for (let i = startIndex; dart.notNull(i) < dart.notNull(endIndex); i = dart.notNull(i) + 1) {
      if (dart.equals(a[$_get](i), element)) {
        return i;
      }
    }
    return -1;
  }
  static lastIndexOf(a, element, startIndex) {
    if (dart.notNull(startIndex) < 0) {
      return -1;
    }
    if (dart.notNull(startIndex) >= dart.notNull(a[$length])) {
      startIndex = dart.notNull(a[$length]) - 1;
    }
    for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
      if (dart.equals(a[$_get](i), element)) {
        return i;
      }
    }
    return -1;
  }
  static getRange(a, start, end, accumulator) {
    if (dart.notNull(start) < 0) dart.throw(new core.RangeError.value(start));
    if (dart.notNull(end) < dart.notNull(start)) dart.throw(new core.RangeError.value(end));
    if (dart.notNull(end) > dart.notNull(a[$length])) dart.throw(new core.RangeError.value(end));
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      accumulator[$add](a[$_get](i));
    }
    return accumulator;
  }
};
(html_common.Lists.new = function() {
  ;
}).prototype = html_common.Lists.prototype;
dart.addTypeTests(html_common.Lists);
dart.addTypeCaches(html_common.Lists);
dart.setLibraryUri(html_common.Lists, L67);
html_common.NodeListWrapper = class NodeListWrapper extends core.Object {};
(html_common.NodeListWrapper.new = function() {
  ;
}).prototype = html_common.NodeListWrapper.prototype;
dart.addTypeTests(html_common.NodeListWrapper);
dart.addTypeCaches(html_common.NodeListWrapper);
dart.setLibraryUri(html_common.NodeListWrapper, L67);
html_common.convertDartToNative_SerializedScriptValue = function convertDartToNative_SerializedScriptValue(value) {
  return html_common.convertDartToNative_PrepareForStructuredClone(value);
};
html_common.convertNativeToDart_SerializedScriptValue = function convertNativeToDart_SerializedScriptValue(object) {
  return html_common.convertNativeToDart_AcceptStructuredClone(object, {mustCopy: true});
};
html_common.convertNativeToDart_ContextAttributes = function convertNativeToDart_ContextAttributes(nativeContextAttributes) {
  return new html_common.ContextAttributes.new(nativeContextAttributes.alpha, nativeContextAttributes.antialias, nativeContextAttributes.depth, nativeContextAttributes.failIfMajorPerformanceCaveat, nativeContextAttributes.premultipliedAlpha, nativeContextAttributes.preserveDrawingBuffer, nativeContextAttributes.stencil);
};
html_common.convertNativeToDart_ImageData = function convertNativeToDart_ImageData(nativeImageData) {
  0;
  if (html$.ImageData.is(nativeImageData)) {
    let data = nativeImageData.data;
    if (data.constructor === Array) {
      if (typeof CanvasPixelArray !== "undefined") {
        data.constructor = CanvasPixelArray;
        data.BYTES_PER_ELEMENT = 1;
      }
    }
    return nativeImageData;
  }
  return new html_common._TypedImageData.new(nativeImageData.data, nativeImageData.height, nativeImageData.width);
};
html_common.convertDartToNative_ImageData = function convertDartToNative_ImageData(imageData) {
  if (html_common._TypedImageData.is(imageData)) {
    return {data: imageData.data, height: imageData.height, width: imageData.width};
  }
  return imageData;
};
html_common.convertNativeToDart_Dictionary = function convertNativeToDart_Dictionary(object) {
  if (object == null) return null;
  let dict = new (IdentityMapOfStringL$dynamic()).new();
  let keys = Object.getOwnPropertyNames(object);
  for (let key of core.Iterable.as(keys)) {
    dict[$_set](core.String.as(key), object[key]);
  }
  return dict;
};
html_common.convertDartToNative_Dictionary = function convertDartToNative_Dictionary(dict, postCreate = null) {
  if (dict == null) return null;
  let object = {};
  if (postCreate != null) {
    postCreate(object);
  }
  dict[$forEach](dart.fn((key, value) => {
    object[key] = value;
  }, dynamicAnddynamicToNullN()));
  return object;
};
html_common.convertDartToNative_StringArray = function convertDartToNative_StringArray(input) {
  return input;
};
html_common.convertNativeToDart_DateTime = function convertNativeToDart_DateTime(date) {
  let millisSinceEpoch = date.getTime();
  return new core.DateTime.fromMillisecondsSinceEpoch(core.int.as(millisSinceEpoch), {isUtc: true});
};
html_common.convertDartToNative_DateTime = function convertDartToNative_DateTime(date) {
  return new Date(date.millisecondsSinceEpoch);
};
html_common.convertDartToNative_PrepareForStructuredClone = function convertDartToNative_PrepareForStructuredClone(value) {
  return new html_common._StructuredCloneDart2Js.new().convertDartToNative_PrepareForStructuredClone(value);
};
html_common.convertNativeToDart_AcceptStructuredClone = function convertNativeToDart_AcceptStructuredClone(object, opts) {
  let mustCopy = opts && 'mustCopy' in opts ? opts.mustCopy : false;
  return new html_common._AcceptStructuredCloneDart2Js.new().convertNativeToDart_AcceptStructuredClone(object, {mustCopy: mustCopy});
};
html_common.isJavaScriptDate = function isJavaScriptDate(value) {
  return value instanceof Date;
};
html_common.isJavaScriptRegExp = function isJavaScriptRegExp(value) {
  return value instanceof RegExp;
};
html_common.isJavaScriptArray = function isJavaScriptArray(value) {
  return value instanceof Array;
};
html_common.isJavaScriptSimpleObject = function isJavaScriptSimpleObject(value) {
  let proto = Object.getPrototypeOf(value);
  return proto === Object.prototype || proto === null;
};
html_common.isImmutableJavaScriptArray = function isImmutableJavaScriptArray(value) {
  return !!value.immutable$list;
};
html_common.isJavaScriptPromise = function isJavaScriptPromise(value) {
  return typeof Promise != "undefined" && value instanceof Promise;
};
var C416;
var C417;
dart.defineLazy(html_common, {
  /*html_common._serializedScriptValue*/get _serializedScriptValue() {
    return "num|String|bool|JSExtendableArray|=Object|Blob|File|NativeByteBuffer|NativeTypedData|MessagePort";
  },
  /*html_common.annotation_Creates_SerializedScriptValue*/get annotation_Creates_SerializedScriptValue() {
    return C416 || CT.C416;
  },
  /*html_common.annotation_Returns_SerializedScriptValue*/get annotation_Returns_SerializedScriptValue() {
    return C417 || CT.C417;
  }
}, true);
svg$._SvgElementFactoryProvider = class _SvgElementFactoryProvider extends core.Object {
  static createSvgElement_tag(tag) {
    let temp = html$.document[$createElementNS]("http://www.w3.org/2000/svg", tag);
    return svg$.SvgElement.as(temp);
  }
};
(svg$._SvgElementFactoryProvider.new = function() {
  ;
}).prototype = svg$._SvgElementFactoryProvider.prototype;
dart.addTypeTests(svg$._SvgElementFactoryProvider);
dart.addTypeCaches(svg$._SvgElementFactoryProvider);
dart.setLibraryUri(svg$._SvgElementFactoryProvider, L68);
var _children$ = dart.privateName(svg$, "_children");
var _svgClassName = dart.privateName(svg$, "_svgClassName");
svg$.SvgElement = class SvgElement extends html$.Element {
  static tag(tag) {
    return svg$.SvgElement.as(html$.document[$createElementNS]("http://www.w3.org/2000/svg", tag));
  }
  static svg(svg, opts) {
    let t123;
    let validator = opts && 'validator' in opts ? opts.validator : null;
    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
    if (validator == null && treeSanitizer == null) {
      validator = (t123 = new html$.NodeValidatorBuilder.common(), t123.allowSvg(), t123);
    }
    let match = svg$.SvgElement._START_TAG_REGEXP.firstMatch(svg);
    let parentElement = null;
    if (match != null && match.group(1)[$toLowerCase]() === "svg") {
      parentElement = html$.document.body;
    } else {
      parentElement = svg$.SvgSvgElement.new();
    }
    let fragment = dart.dsend(parentElement, 'createFragment', [svg], {validator: validator, treeSanitizer: treeSanitizer});
    return svg$.SvgElement.as(dart.dload(dart.dsend(dart.dload(fragment, 'nodes'), 'where', [dart.fn(e => svg$.SvgElement.is(e), dynamicToboolL())]), 'single'));
  }
  get [$classes]() {
    return new svg$.AttributeClassSet.new(this);
  }
  set [$classes](value) {
    super[$classes] = value;
  }
  get [$children]() {
    return new html_common.FilteredElementList.new(this);
  }
  set [$children](value) {
    let children = this[$children];
    children[$clear]();
    children[$addAll](value);
  }
  get [$outerHtml]() {
    let container = html$.DivElement.new();
    let cloned = svg$.SvgElement.as(this[$clone](true));
    container[$children][$add](cloned);
    return container[$innerHtml];
  }
  get [$innerHtml]() {
    let container = html$.DivElement.new();
    let cloned = svg$.SvgElement.as(this[$clone](true));
    container[$children][$addAll](cloned[$children]);
    return container[$innerHtml];
  }
  set [$innerHtml](value) {
    this[$setInnerHtml](value);
  }
  [$createFragment](svg, opts) {
    let t123;
    let validator = opts && 'validator' in opts ? opts.validator : null;
    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
    if (treeSanitizer == null) {
      if (validator == null) {
        validator = (t123 = new html$.NodeValidatorBuilder.common(), t123.allowSvg(), t123);
      }
      treeSanitizer = html$.NodeTreeSanitizer.new(validator);
    }
    let html = "<svg version=\"1.1\">" + dart.str(svg) + "</svg>";
    let fragment = html$.document.body[$createFragment](html, {treeSanitizer: treeSanitizer});
    let svgFragment = html$.DocumentFragment.new();
    let root = fragment[$nodes][$single];
    while (root.firstChild != null) {
      svgFragment[$append](root.firstChild);
    }
    return svgFragment;
  }
  [$insertAdjacentText](where, text) {
    dart.throw(new core.UnsupportedError.new("Cannot invoke insertAdjacentText on SVG."));
  }
  [$insertAdjacentHtml](where, text, opts) {
    let validator = opts && 'validator' in opts ? opts.validator : null;
    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
    dart.throw(new core.UnsupportedError.new("Cannot invoke insertAdjacentHtml on SVG."));
  }
  [$insertAdjacentElement](where, element) {
    dart.throw(new core.UnsupportedError.new("Cannot invoke insertAdjacentElement on SVG."));
  }
  get [_children$]() {
    dart.throw(new core.UnsupportedError.new("Cannot get _children on SVG."));
  }
  get [$isContentEditable]() {
    return false;
  }
  [$click]() {
    dart.throw(new core.UnsupportedError.new("Cannot invoke click SVG."));
  }
  static isTagSupported(tag) {
    let e = svg$.SvgElement.tag(tag);
    return svg$.SvgElement.is(e) && !html$.UnknownElement.is(e);
  }
  get [_svgClassName]() {
    return this._svgClassName;
  }
  get [$ownerSvgElement]() {
    return this.ownerSVGElement;
  }
  get [$viewportElement]() {
    return this.viewportElement;
  }
  [$blur](...args) {
    return this.blur.apply(this, args);
  }
  [$focus](...args) {
    return this.focus.apply(this, args);
  }
  get [$nonce]() {
    return this.nonce;
  }
  set [$nonce](value) {
    this.nonce = value;
  }
  get [$onAbort]() {
    return svg$.SvgElement.abortEvent.forElement(this);
  }
  get [$onBlur]() {
    return svg$.SvgElement.blurEvent.forElement(this);
  }
  get [$onCanPlay]() {
    return svg$.SvgElement.canPlayEvent.forElement(this);
  }
  get [$onCanPlayThrough]() {
    return svg$.SvgElement.canPlayThroughEvent.forElement(this);
  }
  get [$onChange]() {
    return svg$.SvgElement.changeEvent.forElement(this);
  }
  get [$onClick]() {
    return svg$.SvgElement.clickEvent.forElement(this);
  }
  get [$onContextMenu]() {
    return svg$.SvgElement.contextMenuEvent.forElement(this);
  }
  get [$onDoubleClick]() {
    return svg$.SvgElement.doubleClickEvent.forElement(this);
  }
  get [$onDrag]() {
    return svg$.SvgElement.dragEvent.forElement(this);
  }
  get [$onDragEnd]() {
    return svg$.SvgElement.dragEndEvent.forElement(this);
  }
  get [$onDragEnter]() {
    return svg$.SvgElement.dragEnterEvent.forElement(this);
  }
  get [$onDragLeave]() {
    return svg$.SvgElement.dragLeaveEvent.forElement(this);
  }
  get [$onDragOver]() {
    return svg$.SvgElement.dragOverEvent.forElement(this);
  }
  get [$onDragStart]() {
    return svg$.SvgElement.dragStartEvent.forElement(this);
  }
  get [$onDrop]() {
    return svg$.SvgElement.dropEvent.forElement(this);
  }
  get [$onDurationChange]() {
    return svg$.SvgElement.durationChangeEvent.forElement(this);
  }
  get [$onEmptied]() {
    return svg$.SvgElement.emptiedEvent.forElement(this);
  }
  get [$onEnded]() {
    return svg$.SvgElement.endedEvent.forElement(this);
  }
  get [$onError]() {
    return svg$.SvgElement.errorEvent.forElement(this);
  }
  get [$onFocus]() {
    return svg$.SvgElement.focusEvent.forElement(this);
  }
  get [$onInput]() {
    return svg$.SvgElement.inputEvent.forElement(this);
  }
  get [$onInvalid]() {
    return svg$.SvgElement.invalidEvent.forElement(this);
  }
  get [$onKeyDown]() {
    return svg$.SvgElement.keyDownEvent.forElement(this);
  }
  get [$onKeyPress]() {
    return svg$.SvgElement.keyPressEvent.forElement(this);
  }
  get [$onKeyUp]() {
    return svg$.SvgElement.keyUpEvent.forElement(this);
  }
  get [$onLoad]() {
    return svg$.SvgElement.loadEvent.forElement(this);
  }
  get [$onLoadedData]() {
    return svg$.SvgElement.loadedDataEvent.forElement(this);
  }
  get [$onLoadedMetadata]() {
    return svg$.SvgElement.loadedMetadataEvent.forElement(this);
  }
  get [$onMouseDown]() {
    return svg$.SvgElement.mouseDownEvent.forElement(this);
  }
  get [$onMouseEnter]() {
    return svg$.SvgElement.mouseEnterEvent.forElement(this);
  }
  get [$onMouseLeave]() {
    return svg$.SvgElement.mouseLeaveEvent.forElement(this);
  }
  get [$onMouseMove]() {
    return svg$.SvgElement.mouseMoveEvent.forElement(this);
  }
  get [$onMouseOut]() {
    return svg$.SvgElement.mouseOutEvent.forElement(this);
  }
  get [$onMouseOver]() {
    return svg$.SvgElement.mouseOverEvent.forElement(this);
  }
  get [$onMouseUp]() {
    return svg$.SvgElement.mouseUpEvent.forElement(this);
  }
  get [$onMouseWheel]() {
    return svg$.SvgElement.mouseWheelEvent.forElement(this);
  }
  get [$onPause]() {
    return svg$.SvgElement.pauseEvent.forElement(this);
  }
  get [$onPlay]() {
    return svg$.SvgElement.playEvent.forElement(this);
  }
  get [$onPlaying]() {
    return svg$.SvgElement.playingEvent.forElement(this);
  }
  get [$onRateChange]() {
    return svg$.SvgElement.rateChangeEvent.forElement(this);
  }
  get [$onReset]() {
    return svg$.SvgElement.resetEvent.forElement(this);
  }
  get [$onResize]() {
    return svg$.SvgElement.resizeEvent.forElement(this);
  }
  get [$onScroll]() {
    return svg$.SvgElement.scrollEvent.forElement(this);
  }
  get [$onSeeked]() {
    return svg$.SvgElement.seekedEvent.forElement(this);
  }
  get [$onSeeking]() {
    return svg$.SvgElement.seekingEvent.forElement(this);
  }
  get [$onSelect]() {
    return svg$.SvgElement.selectEvent.forElement(this);
  }
  get [$onStalled]() {
    return svg$.SvgElement.stalledEvent.forElement(this);
  }
  get [$onSubmit]() {
    return svg$.SvgElement.submitEvent.forElement(this);
  }
  get [$onSuspend]() {
    return svg$.SvgElement.suspendEvent.forElement(this);
  }
  get [$onTimeUpdate]() {
    return svg$.SvgElement.timeUpdateEvent.forElement(this);
  }
  get [$onTouchCancel]() {
    return svg$.SvgElement.touchCancelEvent.forElement(this);
  }
  get [$onTouchEnd]() {
    return svg$.SvgElement.touchEndEvent.forElement(this);
  }
  get [$onTouchMove]() {
    return svg$.SvgElement.touchMoveEvent.forElement(this);
  }
  get [$onTouchStart]() {
    return svg$.SvgElement.touchStartEvent.forElement(this);
  }
  get [$onVolumeChange]() {
    return svg$.SvgElement.volumeChangeEvent.forElement(this);
  }
  get [$onWaiting]() {
    return svg$.SvgElement.waitingEvent.forElement(this);
  }
  get [$onWheel]() {
    return svg$.SvgElement.wheelEvent.forElement(this);
  }
};
(svg$.SvgElement.created = function() {
  svg$.SvgElement.__proto__.created.call(this);
  ;
}).prototype = svg$.SvgElement.prototype;
dart.addTypeTests(svg$.SvgElement);
dart.addTypeCaches(svg$.SvgElement);
svg$.SvgElement[dart.implements] = () => [html$.GlobalEventHandlers, html$.NoncedElement];
dart.setGetterSignature(svg$.SvgElement, () => ({
  __proto__: dart.getGetters(svg$.SvgElement.__proto__),
  [_children$]: html$.HtmlCollection,
  [_svgClassName]: svg$.AnimatedString,
  [$ownerSvgElement]: svg$.SvgSvgElement,
  [$viewportElement]: svg$.SvgElement,
  [$nonce]: core.String
}));
dart.setSetterSignature(svg$.SvgElement, () => ({
  __proto__: dart.getSetters(svg$.SvgElement.__proto__),
  [$nonce]: core.String
}));
dart.setLibraryUri(svg$.SvgElement, L68);
dart.defineLazy(svg$.SvgElement, {
  /*svg$.SvgElement._START_TAG_REGEXP*/get _START_TAG_REGEXP() {
    return core.RegExp.new("<(\\w+)");
  },
  /*svg$.SvgElement.abortEvent*/get abortEvent() {
    return C215 || CT.C215;
  },
  /*svg$.SvgElement.blurEvent*/get blurEvent() {
    return C234 || CT.C234;
  },
  /*svg$.SvgElement.canPlayEvent*/get canPlayEvent() {
    return C235 || CT.C235;
  },
  /*svg$.SvgElement.canPlayThroughEvent*/get canPlayThroughEvent() {
    return C236 || CT.C236;
  },
  /*svg$.SvgElement.changeEvent*/get changeEvent() {
    return C237 || CT.C237;
  },
  /*svg$.SvgElement.clickEvent*/get clickEvent() {
    return C238 || CT.C238;
  },
  /*svg$.SvgElement.contextMenuEvent*/get contextMenuEvent() {
    return C239 || CT.C239;
  },
  /*svg$.SvgElement.doubleClickEvent*/get doubleClickEvent() {
    return C242 || CT.C242;
  },
  /*svg$.SvgElement.dragEvent*/get dragEvent() {
    return C243 || CT.C243;
  },
  /*svg$.SvgElement.dragEndEvent*/get dragEndEvent() {
    return C244 || CT.C244;
  },
  /*svg$.SvgElement.dragEnterEvent*/get dragEnterEvent() {
    return C245 || CT.C245;
  },
  /*svg$.SvgElement.dragLeaveEvent*/get dragLeaveEvent() {
    return C246 || CT.C246;
  },
  /*svg$.SvgElement.dragOverEvent*/get dragOverEvent() {
    return C247 || CT.C247;
  },
  /*svg$.SvgElement.dragStartEvent*/get dragStartEvent() {
    return C248 || CT.C248;
  },
  /*svg$.SvgElement.dropEvent*/get dropEvent() {
    return C249 || CT.C249;
  },
  /*svg$.SvgElement.durationChangeEvent*/get durationChangeEvent() {
    return C250 || CT.C250;
  },
  /*svg$.SvgElement.emptiedEvent*/get emptiedEvent() {
    return C251 || CT.C251;
  },
  /*svg$.SvgElement.endedEvent*/get endedEvent() {
    return C252 || CT.C252;
  },
  /*svg$.SvgElement.errorEvent*/get errorEvent() {
    return C217 || CT.C217;
  },
  /*svg$.SvgElement.focusEvent*/get focusEvent() {
    return C253 || CT.C253;
  },
  /*svg$.SvgElement.inputEvent*/get inputEvent() {
    return C254 || CT.C254;
  },
  /*svg$.SvgElement.invalidEvent*/get invalidEvent() {
    return C255 || CT.C255;
  },
  /*svg$.SvgElement.keyDownEvent*/get keyDownEvent() {
    return C256 || CT.C256;
  },
  /*svg$.SvgElement.keyPressEvent*/get keyPressEvent() {
    return C257 || CT.C257;
  },
  /*svg$.SvgElement.keyUpEvent*/get keyUpEvent() {
    return C258 || CT.C258;
  },
  /*svg$.SvgElement.loadEvent*/get loadEvent() {
    return C259 || CT.C259;
  },
  /*svg$.SvgElement.loadedDataEvent*/get loadedDataEvent() {
    return C260 || CT.C260;
  },
  /*svg$.SvgElement.loadedMetadataEvent*/get loadedMetadataEvent() {
    return C261 || CT.C261;
  },
  /*svg$.SvgElement.mouseDownEvent*/get mouseDownEvent() {
    return C262 || CT.C262;
  },
  /*svg$.SvgElement.mouseEnterEvent*/get mouseEnterEvent() {
    return C263 || CT.C263;
  },
  /*svg$.SvgElement.mouseLeaveEvent*/get mouseLeaveEvent() {
    return C264 || CT.C264;
  },
  /*svg$.SvgElement.mouseMoveEvent*/get mouseMoveEvent() {
    return C265 || CT.C265;
  },
  /*svg$.SvgElement.mouseOutEvent*/get mouseOutEvent() {
    return C266 || CT.C266;
  },
  /*svg$.SvgElement.mouseOverEvent*/get mouseOverEvent() {
    return C267 || CT.C267;
  },
  /*svg$.SvgElement.mouseUpEvent*/get mouseUpEvent() {
    return C268 || CT.C268;
  },
  /*svg$.SvgElement.mouseWheelEvent*/get mouseWheelEvent() {
    return C343 || CT.C343;
  },
  /*svg$.SvgElement.pauseEvent*/get pauseEvent() {
    return C270 || CT.C270;
  },
  /*svg$.SvgElement.playEvent*/get playEvent() {
    return C271 || CT.C271;
  },
  /*svg$.SvgElement.playingEvent*/get playingEvent() {
    return C272 || CT.C272;
  },
  /*svg$.SvgElement.rateChangeEvent*/get rateChangeEvent() {
    return C273 || CT.C273;
  },
  /*svg$.SvgElement.resetEvent*/get resetEvent() {
    return C274 || CT.C274;
  },
  /*svg$.SvgElement.resizeEvent*/get resizeEvent() {
    return C275 || CT.C275;
  },
  /*svg$.SvgElement.scrollEvent*/get scrollEvent() {
    return C276 || CT.C276;
  },
  /*svg$.SvgElement.seekedEvent*/get seekedEvent() {
    return C278 || CT.C278;
  },
  /*svg$.SvgElement.seekingEvent*/get seekingEvent() {
    return C279 || CT.C279;
  },
  /*svg$.SvgElement.selectEvent*/get selectEvent() {
    return C280 || CT.C280;
  },
  /*svg$.SvgElement.stalledEvent*/get stalledEvent() {
    return C282 || CT.C282;
  },
  /*svg$.SvgElement.submitEvent*/get submitEvent() {
    return C283 || CT.C283;
  },
  /*svg$.SvgElement.suspendEvent*/get suspendEvent() {
    return C284 || CT.C284;
  },
  /*svg$.SvgElement.timeUpdateEvent*/get timeUpdateEvent() {
    return C285 || CT.C285;
  },
  /*svg$.SvgElement.touchCancelEvent*/get touchCancelEvent() {
    return C286 || CT.C286;
  },
  /*svg$.SvgElement.touchEndEvent*/get touchEndEvent() {
    return C287 || CT.C287;
  },
  /*svg$.SvgElement.touchMoveEvent*/get touchMoveEvent() {
    return C290 || CT.C290;
  },
  /*svg$.SvgElement.touchStartEvent*/get touchStartEvent() {
    return C291 || CT.C291;
  },
  /*svg$.SvgElement.volumeChangeEvent*/get volumeChangeEvent() {
    return C292 || CT.C292;
  },
  /*svg$.SvgElement.waitingEvent*/get waitingEvent() {
    return C293 || CT.C293;
  },
  /*svg$.SvgElement.wheelEvent*/get wheelEvent() {
    return C296 || CT.C296;
  }
}, true);
dart.registerExtension("SVGElement", svg$.SvgElement);
svg$.GraphicsElement = class GraphicsElement extends svg$.SvgElement {
  get [$farthestViewportElement]() {
    return this.farthestViewportElement;
  }
  get [$nearestViewportElement]() {
    return this.nearestViewportElement;
  }
  get [$transform]() {
    return this.transform;
  }
  [$getBBox](...args) {
    return this.getBBox.apply(this, args);
  }
  [$getCtm](...args) {
    return this.getCTM.apply(this, args);
  }
  [$getScreenCtm](...args) {
    return this.getScreenCTM.apply(this, args);
  }
  get [$requiredExtensions]() {
    return this.requiredExtensions;
  }
  get [$systemLanguage]() {
    return this.systemLanguage;
  }
};
(svg$.GraphicsElement.created = function() {
  svg$.GraphicsElement.__proto__.created.call(this);
  ;
}).prototype = svg$.GraphicsElement.prototype;
dart.addTypeTests(svg$.GraphicsElement);
dart.addTypeCaches(svg$.GraphicsElement);
svg$.GraphicsElement[dart.implements] = () => [svg$.Tests];
dart.setMethodSignature(svg$.GraphicsElement, () => ({
  __proto__: dart.getMethods(svg$.GraphicsElement.__proto__),
  [$getBBox]: dart.fnType(svg$.Rect, []),
  [$getCtm]: dart.fnType(svg$.Matrix, []),
  [$getScreenCtm]: dart.fnType(svg$.Matrix, [])
}));
dart.setGetterSignature(svg$.GraphicsElement, () => ({
  __proto__: dart.getGetters(svg$.GraphicsElement.__proto__),
  [$farthestViewportElement]: svg$.SvgElement,
  [$nearestViewportElement]: svg$.SvgElement,
  [$transform]: svg$.AnimatedTransformList,
  [$requiredExtensions]: svg$.StringList,
  [$systemLanguage]: svg$.StringList
}));
dart.setLibraryUri(svg$.GraphicsElement, L68);
dart.registerExtension("SVGGraphicsElement", svg$.GraphicsElement);
svg$.AElement = class AElement extends svg$.GraphicsElement {
  static new() {
    return svg$.AElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("a"));
  }
  get [$target]() {
    return this.target;
  }
  get [$href]() {
    return this.href;
  }
};
(svg$.AElement.created = function() {
  svg$.AElement.__proto__.created.call(this);
  ;
}).prototype = svg$.AElement.prototype;
dart.addTypeTests(svg$.AElement);
dart.addTypeCaches(svg$.AElement);
svg$.AElement[dart.implements] = () => [svg$.UriReference];
dart.setGetterSignature(svg$.AElement, () => ({
  __proto__: dart.getGetters(svg$.AElement.__proto__),
  [$target]: svg$.AnimatedString,
  [$href]: svg$.AnimatedString
}));
dart.setLibraryUri(svg$.AElement, L68);
dart.registerExtension("SVGAElement", svg$.AElement);
svg$.Angle = class Angle extends _interceptors.Interceptor {
  get [$unitType]() {
    return this.unitType;
  }
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
  get [$valueAsString]() {
    return this.valueAsString;
  }
  set [$valueAsString](value) {
    this.valueAsString = value;
  }
  get [$valueInSpecifiedUnits]() {
    return this.valueInSpecifiedUnits;
  }
  set [$valueInSpecifiedUnits](value) {
    this.valueInSpecifiedUnits = value;
  }
  [$convertToSpecifiedUnits](...args) {
    return this.convertToSpecifiedUnits.apply(this, args);
  }
  [$newValueSpecifiedUnits](...args) {
    return this.newValueSpecifiedUnits.apply(this, args);
  }
};
dart.addTypeTests(svg$.Angle);
dart.addTypeCaches(svg$.Angle);
dart.setMethodSignature(svg$.Angle, () => ({
  __proto__: dart.getMethods(svg$.Angle.__proto__),
  [$convertToSpecifiedUnits]: dart.fnType(dart.void, [core.int]),
  [$newValueSpecifiedUnits]: dart.fnType(dart.void, [core.int, core.num])
}));
dart.setGetterSignature(svg$.Angle, () => ({
  __proto__: dart.getGetters(svg$.Angle.__proto__),
  [$unitType]: core.int,
  [$value]: core.num,
  [$valueAsString]: core.String,
  [$valueInSpecifiedUnits]: core.num
}));
dart.setSetterSignature(svg$.Angle, () => ({
  __proto__: dart.getSetters(svg$.Angle.__proto__),
  [$value]: core.num,
  [$valueAsString]: core.String,
  [$valueInSpecifiedUnits]: core.num
}));
dart.setLibraryUri(svg$.Angle, L68);
dart.defineLazy(svg$.Angle, {
  /*svg$.Angle.SVG_ANGLETYPE_DEG*/get SVG_ANGLETYPE_DEG() {
    return 2;
  },
  /*svg$.Angle.SVG_ANGLETYPE_GRAD*/get SVG_ANGLETYPE_GRAD() {
    return 4;
  },
  /*svg$.Angle.SVG_ANGLETYPE_RAD*/get SVG_ANGLETYPE_RAD() {
    return 3;
  },
  /*svg$.Angle.SVG_ANGLETYPE_UNKNOWN*/get SVG_ANGLETYPE_UNKNOWN() {
    return 0;
  },
  /*svg$.Angle.SVG_ANGLETYPE_UNSPECIFIED*/get SVG_ANGLETYPE_UNSPECIFIED() {
    return 1;
  }
}, true);
dart.registerExtension("SVGAngle", svg$.Angle);
svg$.AnimationElement = class AnimationElement extends svg$.SvgElement {
  static new() {
    return svg$.AnimationElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("animation"));
  }
  get [$targetElement]() {
    return this.targetElement;
  }
  [$beginElement](...args) {
    return this.beginElement.apply(this, args);
  }
  [$beginElementAt](...args) {
    return this.beginElementAt.apply(this, args);
  }
  [$endElement](...args) {
    return this.endElement.apply(this, args);
  }
  [$endElementAt](...args) {
    return this.endElementAt.apply(this, args);
  }
  [$getCurrentTime](...args) {
    return this.getCurrentTime.apply(this, args);
  }
  [$getSimpleDuration](...args) {
    return this.getSimpleDuration.apply(this, args);
  }
  [$getStartTime](...args) {
    return this.getStartTime.apply(this, args);
  }
  get [$requiredExtensions]() {
    return this.requiredExtensions;
  }
  get [$systemLanguage]() {
    return this.systemLanguage;
  }
};
(svg$.AnimationElement.created = function() {
  svg$.AnimationElement.__proto__.created.call(this);
  ;
}).prototype = svg$.AnimationElement.prototype;
dart.addTypeTests(svg$.AnimationElement);
dart.addTypeCaches(svg$.AnimationElement);
svg$.AnimationElement[dart.implements] = () => [svg$.Tests];
dart.setMethodSignature(svg$.AnimationElement, () => ({
  __proto__: dart.getMethods(svg$.AnimationElement.__proto__),
  [$beginElement]: dart.fnType(dart.void, []),
  [$beginElementAt]: dart.fnType(dart.void, [core.num]),
  [$endElement]: dart.fnType(dart.void, []),
  [$endElementAt]: dart.fnType(dart.void, [core.num]),
  [$getCurrentTime]: dart.fnType(core.double, []),
  [$getSimpleDuration]: dart.fnType(core.double, []),
  [$getStartTime]: dart.fnType(core.double, [])
}));
dart.setGetterSignature(svg$.AnimationElement, () => ({
  __proto__: dart.getGetters(svg$.AnimationElement.__proto__),
  [$targetElement]: svg$.SvgElement,
  [$requiredExtensions]: svg$.StringList,
  [$systemLanguage]: svg$.StringList
}));
dart.setLibraryUri(svg$.AnimationElement, L68);
dart.registerExtension("SVGAnimationElement", svg$.AnimationElement);
svg$.AnimateElement = class AnimateElement extends svg$.AnimationElement {
  static new() {
    return svg$.AnimateElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("animate"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("animate")) && svg$.AnimateElement.is(svg$.SvgElement.tag("animate"));
  }
};
(svg$.AnimateElement.created = function() {
  svg$.AnimateElement.__proto__.created.call(this);
  ;
}).prototype = svg$.AnimateElement.prototype;
dart.addTypeTests(svg$.AnimateElement);
dart.addTypeCaches(svg$.AnimateElement);
dart.setLibraryUri(svg$.AnimateElement, L68);
dart.registerExtension("SVGAnimateElement", svg$.AnimateElement);
svg$.AnimateMotionElement = class AnimateMotionElement extends svg$.AnimationElement {
  static new() {
    return svg$.AnimateMotionElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("animateMotion"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("animateMotion")) && svg$.AnimateMotionElement.is(svg$.SvgElement.tag("animateMotion"));
  }
};
(svg$.AnimateMotionElement.created = function() {
  svg$.AnimateMotionElement.__proto__.created.call(this);
  ;
}).prototype = svg$.AnimateMotionElement.prototype;
dart.addTypeTests(svg$.AnimateMotionElement);
dart.addTypeCaches(svg$.AnimateMotionElement);
dart.setLibraryUri(svg$.AnimateMotionElement, L68);
dart.registerExtension("SVGAnimateMotionElement", svg$.AnimateMotionElement);
svg$.AnimateTransformElement = class AnimateTransformElement extends svg$.AnimationElement {
  static new() {
    return svg$.AnimateTransformElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("animateTransform"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("animateTransform")) && svg$.AnimateTransformElement.is(svg$.SvgElement.tag("animateTransform"));
  }
};
(svg$.AnimateTransformElement.created = function() {
  svg$.AnimateTransformElement.__proto__.created.call(this);
  ;
}).prototype = svg$.AnimateTransformElement.prototype;
dart.addTypeTests(svg$.AnimateTransformElement);
dart.addTypeCaches(svg$.AnimateTransformElement);
dart.setLibraryUri(svg$.AnimateTransformElement, L68);
dart.registerExtension("SVGAnimateTransformElement", svg$.AnimateTransformElement);
svg$.AnimatedAngle = class AnimatedAngle extends _interceptors.Interceptor {
  get [$animVal]() {
    return this.animVal;
  }
  get [$baseVal]() {
    return this.baseVal;
  }
};
dart.addTypeTests(svg$.AnimatedAngle);
dart.addTypeCaches(svg$.AnimatedAngle);
dart.setGetterSignature(svg$.AnimatedAngle, () => ({
  __proto__: dart.getGetters(svg$.AnimatedAngle.__proto__),
  [$animVal]: svg$.Angle,
  [$baseVal]: svg$.Angle
}));
dart.setLibraryUri(svg$.AnimatedAngle, L68);
dart.registerExtension("SVGAnimatedAngle", svg$.AnimatedAngle);
svg$.AnimatedBoolean = class AnimatedBoolean extends _interceptors.Interceptor {
  get [$animVal]() {
    return this.animVal;
  }
  get [$baseVal]() {
    return this.baseVal;
  }
  set [$baseVal](value) {
    this.baseVal = value;
  }
};
dart.addTypeTests(svg$.AnimatedBoolean);
dart.addTypeCaches(svg$.AnimatedBoolean);
dart.setGetterSignature(svg$.AnimatedBoolean, () => ({
  __proto__: dart.getGetters(svg$.AnimatedBoolean.__proto__),
  [$animVal]: core.bool,
  [$baseVal]: core.bool
}));
dart.setSetterSignature(svg$.AnimatedBoolean, () => ({
  __proto__: dart.getSetters(svg$.AnimatedBoolean.__proto__),
  [$baseVal]: core.bool
}));
dart.setLibraryUri(svg$.AnimatedBoolean, L68);
dart.registerExtension("SVGAnimatedBoolean", svg$.AnimatedBoolean);
svg$.AnimatedEnumeration = class AnimatedEnumeration extends _interceptors.Interceptor {
  get [$animVal]() {
    return this.animVal;
  }
  get [$baseVal]() {
    return this.baseVal;
  }
  set [$baseVal](value) {
    this.baseVal = value;
  }
};
dart.addTypeTests(svg$.AnimatedEnumeration);
dart.addTypeCaches(svg$.AnimatedEnumeration);
dart.setGetterSignature(svg$.AnimatedEnumeration, () => ({
  __proto__: dart.getGetters(svg$.AnimatedEnumeration.__proto__),
  [$animVal]: core.int,
  [$baseVal]: core.int
}));
dart.setSetterSignature(svg$.AnimatedEnumeration, () => ({
  __proto__: dart.getSetters(svg$.AnimatedEnumeration.__proto__),
  [$baseVal]: core.int
}));
dart.setLibraryUri(svg$.AnimatedEnumeration, L68);
dart.registerExtension("SVGAnimatedEnumeration", svg$.AnimatedEnumeration);
svg$.AnimatedInteger = class AnimatedInteger extends _interceptors.Interceptor {
  get [$animVal]() {
    return this.animVal;
  }
  get [$baseVal]() {
    return this.baseVal;
  }
  set [$baseVal](value) {
    this.baseVal = value;
  }
};
dart.addTypeTests(svg$.AnimatedInteger);
dart.addTypeCaches(svg$.AnimatedInteger);
dart.setGetterSignature(svg$.AnimatedInteger, () => ({
  __proto__: dart.getGetters(svg$.AnimatedInteger.__proto__),
  [$animVal]: core.int,
  [$baseVal]: core.int
}));
dart.setSetterSignature(svg$.AnimatedInteger, () => ({
  __proto__: dart.getSetters(svg$.AnimatedInteger.__proto__),
  [$baseVal]: core.int
}));
dart.setLibraryUri(svg$.AnimatedInteger, L68);
dart.registerExtension("SVGAnimatedInteger", svg$.AnimatedInteger);
svg$.AnimatedLength = class AnimatedLength extends _interceptors.Interceptor {
  get [$animVal]() {
    return this.animVal;
  }
  get [$baseVal]() {
    return this.baseVal;
  }
};
dart.addTypeTests(svg$.AnimatedLength);
dart.addTypeCaches(svg$.AnimatedLength);
dart.setGetterSignature(svg$.AnimatedLength, () => ({
  __proto__: dart.getGetters(svg$.AnimatedLength.__proto__),
  [$animVal]: svg$.Length,
  [$baseVal]: svg$.Length
}));
dart.setLibraryUri(svg$.AnimatedLength, L68);
dart.registerExtension("SVGAnimatedLength", svg$.AnimatedLength);
svg$.AnimatedLengthList = class AnimatedLengthList extends _interceptors.Interceptor {
  get [$animVal]() {
    return this.animVal;
  }
  get [$baseVal]() {
    return this.baseVal;
  }
};
dart.addTypeTests(svg$.AnimatedLengthList);
dart.addTypeCaches(svg$.AnimatedLengthList);
dart.setGetterSignature(svg$.AnimatedLengthList, () => ({
  __proto__: dart.getGetters(svg$.AnimatedLengthList.__proto__),
  [$animVal]: svg$.LengthList,
  [$baseVal]: svg$.LengthList
}));
dart.setLibraryUri(svg$.AnimatedLengthList, L68);
dart.registerExtension("SVGAnimatedLengthList", svg$.AnimatedLengthList);
svg$.AnimatedNumber = class AnimatedNumber extends _interceptors.Interceptor {
  get [$animVal]() {
    return this.animVal;
  }
  get [$baseVal]() {
    return this.baseVal;
  }
  set [$baseVal](value) {
    this.baseVal = value;
  }
};
dart.addTypeTests(svg$.AnimatedNumber);
dart.addTypeCaches(svg$.AnimatedNumber);
dart.setGetterSignature(svg$.AnimatedNumber, () => ({
  __proto__: dart.getGetters(svg$.AnimatedNumber.__proto__),
  [$animVal]: core.num,
  [$baseVal]: core.num
}));
dart.setSetterSignature(svg$.AnimatedNumber, () => ({
  __proto__: dart.getSetters(svg$.AnimatedNumber.__proto__),
  [$baseVal]: core.num
}));
dart.setLibraryUri(svg$.AnimatedNumber, L68);
dart.registerExtension("SVGAnimatedNumber", svg$.AnimatedNumber);
svg$.AnimatedNumberList = class AnimatedNumberList extends _interceptors.Interceptor {
  get [$animVal]() {
    return this.animVal;
  }
  get [$baseVal]() {
    return this.baseVal;
  }
};
dart.addTypeTests(svg$.AnimatedNumberList);
dart.addTypeCaches(svg$.AnimatedNumberList);
dart.setGetterSignature(svg$.AnimatedNumberList, () => ({
  __proto__: dart.getGetters(svg$.AnimatedNumberList.__proto__),
  [$animVal]: svg$.NumberList,
  [$baseVal]: svg$.NumberList
}));
dart.setLibraryUri(svg$.AnimatedNumberList, L68);
dart.registerExtension("SVGAnimatedNumberList", svg$.AnimatedNumberList);
svg$.AnimatedPreserveAspectRatio = class AnimatedPreserveAspectRatio extends _interceptors.Interceptor {
  get [$animVal]() {
    return this.animVal;
  }
  get [$baseVal]() {
    return this.baseVal;
  }
};
dart.addTypeTests(svg$.AnimatedPreserveAspectRatio);
dart.addTypeCaches(svg$.AnimatedPreserveAspectRatio);
dart.setGetterSignature(svg$.AnimatedPreserveAspectRatio, () => ({
  __proto__: dart.getGetters(svg$.AnimatedPreserveAspectRatio.__proto__),
  [$animVal]: svg$.PreserveAspectRatio,
  [$baseVal]: svg$.PreserveAspectRatio
}));
dart.setLibraryUri(svg$.AnimatedPreserveAspectRatio, L68);
dart.registerExtension("SVGAnimatedPreserveAspectRatio", svg$.AnimatedPreserveAspectRatio);
svg$.AnimatedRect = class AnimatedRect extends _interceptors.Interceptor {
  get [$animVal]() {
    return this.animVal;
  }
  get [$baseVal]() {
    return this.baseVal;
  }
};
dart.addTypeTests(svg$.AnimatedRect);
dart.addTypeCaches(svg$.AnimatedRect);
dart.setGetterSignature(svg$.AnimatedRect, () => ({
  __proto__: dart.getGetters(svg$.AnimatedRect.__proto__),
  [$animVal]: svg$.Rect,
  [$baseVal]: svg$.Rect
}));
dart.setLibraryUri(svg$.AnimatedRect, L68);
dart.registerExtension("SVGAnimatedRect", svg$.AnimatedRect);
svg$.AnimatedString = class AnimatedString extends _interceptors.Interceptor {
  get [$animVal]() {
    return this.animVal;
  }
  get [$baseVal]() {
    return this.baseVal;
  }
  set [$baseVal](value) {
    this.baseVal = value;
  }
};
dart.addTypeTests(svg$.AnimatedString);
dart.addTypeCaches(svg$.AnimatedString);
dart.setGetterSignature(svg$.AnimatedString, () => ({
  __proto__: dart.getGetters(svg$.AnimatedString.__proto__),
  [$animVal]: core.String,
  [$baseVal]: core.String
}));
dart.setSetterSignature(svg$.AnimatedString, () => ({
  __proto__: dart.getSetters(svg$.AnimatedString.__proto__),
  [$baseVal]: core.String
}));
dart.setLibraryUri(svg$.AnimatedString, L68);
dart.registerExtension("SVGAnimatedString", svg$.AnimatedString);
svg$.AnimatedTransformList = class AnimatedTransformList extends _interceptors.Interceptor {
  get [$animVal]() {
    return this.animVal;
  }
  get [$baseVal]() {
    return this.baseVal;
  }
};
dart.addTypeTests(svg$.AnimatedTransformList);
dart.addTypeCaches(svg$.AnimatedTransformList);
dart.setGetterSignature(svg$.AnimatedTransformList, () => ({
  __proto__: dart.getGetters(svg$.AnimatedTransformList.__proto__),
  [$animVal]: svg$.TransformList,
  [$baseVal]: svg$.TransformList
}));
dart.setLibraryUri(svg$.AnimatedTransformList, L68);
dart.registerExtension("SVGAnimatedTransformList", svg$.AnimatedTransformList);
svg$.GeometryElement = class GeometryElement extends svg$.GraphicsElement {
  get [$pathLength]() {
    return this.pathLength;
  }
  [$getPointAtLength](...args) {
    return this.getPointAtLength.apply(this, args);
  }
  [$getTotalLength](...args) {
    return this.getTotalLength.apply(this, args);
  }
  [$isPointInFill](...args) {
    return this.isPointInFill.apply(this, args);
  }
  [$isPointInStroke](...args) {
    return this.isPointInStroke.apply(this, args);
  }
};
(svg$.GeometryElement.created = function() {
  svg$.GeometryElement.__proto__.created.call(this);
  ;
}).prototype = svg$.GeometryElement.prototype;
dart.addTypeTests(svg$.GeometryElement);
dart.addTypeCaches(svg$.GeometryElement);
dart.setMethodSignature(svg$.GeometryElement, () => ({
  __proto__: dart.getMethods(svg$.GeometryElement.__proto__),
  [$getPointAtLength]: dart.fnType(svg$.Point, [core.num]),
  [$getTotalLength]: dart.fnType(core.double, []),
  [$isPointInFill]: dart.fnType(core.bool, [svg$.Point]),
  [$isPointInStroke]: dart.fnType(core.bool, [svg$.Point])
}));
dart.setGetterSignature(svg$.GeometryElement, () => ({
  __proto__: dart.getGetters(svg$.GeometryElement.__proto__),
  [$pathLength]: svg$.AnimatedNumber
}));
dart.setLibraryUri(svg$.GeometryElement, L68);
dart.registerExtension("SVGGeometryElement", svg$.GeometryElement);
svg$.CircleElement = class CircleElement extends svg$.GeometryElement {
  static new() {
    return svg$.CircleElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("circle"));
  }
  get [$cx]() {
    return this.cx;
  }
  get [$cy]() {
    return this.cy;
  }
  get [$r]() {
    return this.r;
  }
};
(svg$.CircleElement.created = function() {
  svg$.CircleElement.__proto__.created.call(this);
  ;
}).prototype = svg$.CircleElement.prototype;
dart.addTypeTests(svg$.CircleElement);
dart.addTypeCaches(svg$.CircleElement);
dart.setGetterSignature(svg$.CircleElement, () => ({
  __proto__: dart.getGetters(svg$.CircleElement.__proto__),
  [$cx]: svg$.AnimatedLength,
  [$cy]: svg$.AnimatedLength,
  [$r]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.CircleElement, L68);
dart.registerExtension("SVGCircleElement", svg$.CircleElement);
svg$.ClipPathElement = class ClipPathElement extends svg$.GraphicsElement {
  static new() {
    return svg$.ClipPathElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("clipPath"));
  }
  get [$clipPathUnits]() {
    return this.clipPathUnits;
  }
};
(svg$.ClipPathElement.created = function() {
  svg$.ClipPathElement.__proto__.created.call(this);
  ;
}).prototype = svg$.ClipPathElement.prototype;
dart.addTypeTests(svg$.ClipPathElement);
dart.addTypeCaches(svg$.ClipPathElement);
dart.setGetterSignature(svg$.ClipPathElement, () => ({
  __proto__: dart.getGetters(svg$.ClipPathElement.__proto__),
  [$clipPathUnits]: svg$.AnimatedEnumeration
}));
dart.setLibraryUri(svg$.ClipPathElement, L68);
dart.registerExtension("SVGClipPathElement", svg$.ClipPathElement);
svg$.DefsElement = class DefsElement extends svg$.GraphicsElement {
  static new() {
    return svg$.DefsElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("defs"));
  }
};
(svg$.DefsElement.created = function() {
  svg$.DefsElement.__proto__.created.call(this);
  ;
}).prototype = svg$.DefsElement.prototype;
dart.addTypeTests(svg$.DefsElement);
dart.addTypeCaches(svg$.DefsElement);
dart.setLibraryUri(svg$.DefsElement, L68);
dart.registerExtension("SVGDefsElement", svg$.DefsElement);
svg$.DescElement = class DescElement extends svg$.SvgElement {
  static new() {
    return svg$.DescElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("desc"));
  }
};
(svg$.DescElement.created = function() {
  svg$.DescElement.__proto__.created.call(this);
  ;
}).prototype = svg$.DescElement.prototype;
dart.addTypeTests(svg$.DescElement);
dart.addTypeCaches(svg$.DescElement);
dart.setLibraryUri(svg$.DescElement, L68);
dart.registerExtension("SVGDescElement", svg$.DescElement);
svg$.DiscardElement = class DiscardElement extends svg$.SvgElement {};
(svg$.DiscardElement.created = function() {
  svg$.DiscardElement.__proto__.created.call(this);
  ;
}).prototype = svg$.DiscardElement.prototype;
dart.addTypeTests(svg$.DiscardElement);
dart.addTypeCaches(svg$.DiscardElement);
dart.setLibraryUri(svg$.DiscardElement, L68);
dart.registerExtension("SVGDiscardElement", svg$.DiscardElement);
svg$.EllipseElement = class EllipseElement extends svg$.GeometryElement {
  static new() {
    return svg$.EllipseElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("ellipse"));
  }
  get [$cx]() {
    return this.cx;
  }
  get [$cy]() {
    return this.cy;
  }
  get [$rx]() {
    return this.rx;
  }
  get [$ry]() {
    return this.ry;
  }
};
(svg$.EllipseElement.created = function() {
  svg$.EllipseElement.__proto__.created.call(this);
  ;
}).prototype = svg$.EllipseElement.prototype;
dart.addTypeTests(svg$.EllipseElement);
dart.addTypeCaches(svg$.EllipseElement);
dart.setGetterSignature(svg$.EllipseElement, () => ({
  __proto__: dart.getGetters(svg$.EllipseElement.__proto__),
  [$cx]: svg$.AnimatedLength,
  [$cy]: svg$.AnimatedLength,
  [$rx]: svg$.AnimatedLength,
  [$ry]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.EllipseElement, L68);
dart.registerExtension("SVGEllipseElement", svg$.EllipseElement);
svg$.FEBlendElement = class FEBlendElement extends svg$.SvgElement {
  static new() {
    return svg$.FEBlendElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feBlend"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feBlend")) && svg$.FEBlendElement.is(svg$.SvgElement.tag("feBlend"));
  }
  get [$in1]() {
    return this.in1;
  }
  get [$in2]() {
    return this.in2;
  }
  get [$mode]() {
    return this.mode;
  }
  get [$height]() {
    return this.height;
  }
  get [$result]() {
    return this.result;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
};
(svg$.FEBlendElement.created = function() {
  svg$.FEBlendElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEBlendElement.prototype;
dart.addTypeTests(svg$.FEBlendElement);
dart.addTypeCaches(svg$.FEBlendElement);
svg$.FEBlendElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
dart.setGetterSignature(svg$.FEBlendElement, () => ({
  __proto__: dart.getGetters(svg$.FEBlendElement.__proto__),
  [$in1]: svg$.AnimatedString,
  [$in2]: svg$.AnimatedString,
  [$mode]: svg$.AnimatedEnumeration,
  [$height]: svg$.AnimatedLength,
  [$result]: svg$.AnimatedString,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.FEBlendElement, L68);
dart.defineLazy(svg$.FEBlendElement, {
  /*svg$.FEBlendElement.SVG_FEBLEND_MODE_DARKEN*/get SVG_FEBLEND_MODE_DARKEN() {
    return 4;
  },
  /*svg$.FEBlendElement.SVG_FEBLEND_MODE_LIGHTEN*/get SVG_FEBLEND_MODE_LIGHTEN() {
    return 5;
  },
  /*svg$.FEBlendElement.SVG_FEBLEND_MODE_MULTIPLY*/get SVG_FEBLEND_MODE_MULTIPLY() {
    return 2;
  },
  /*svg$.FEBlendElement.SVG_FEBLEND_MODE_NORMAL*/get SVG_FEBLEND_MODE_NORMAL() {
    return 1;
  },
  /*svg$.FEBlendElement.SVG_FEBLEND_MODE_SCREEN*/get SVG_FEBLEND_MODE_SCREEN() {
    return 3;
  },
  /*svg$.FEBlendElement.SVG_FEBLEND_MODE_UNKNOWN*/get SVG_FEBLEND_MODE_UNKNOWN() {
    return 0;
  }
}, true);
dart.registerExtension("SVGFEBlendElement", svg$.FEBlendElement);
svg$.FEColorMatrixElement = class FEColorMatrixElement extends svg$.SvgElement {
  static new() {
    return svg$.FEColorMatrixElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feColorMatrix"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feColorMatrix")) && svg$.FEColorMatrixElement.is(svg$.SvgElement.tag("feColorMatrix"));
  }
  get [$in1]() {
    return this.in1;
  }
  get [$type]() {
    return this.type;
  }
  get [$values]() {
    return this.values;
  }
  get [$height]() {
    return this.height;
  }
  get [$result]() {
    return this.result;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
};
(svg$.FEColorMatrixElement.created = function() {
  svg$.FEColorMatrixElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEColorMatrixElement.prototype;
dart.addTypeTests(svg$.FEColorMatrixElement);
dart.addTypeCaches(svg$.FEColorMatrixElement);
svg$.FEColorMatrixElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
dart.setGetterSignature(svg$.FEColorMatrixElement, () => ({
  __proto__: dart.getGetters(svg$.FEColorMatrixElement.__proto__),
  [$in1]: svg$.AnimatedString,
  [$type]: svg$.AnimatedEnumeration,
  [$values]: svg$.AnimatedNumberList,
  [$height]: svg$.AnimatedLength,
  [$result]: svg$.AnimatedString,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.FEColorMatrixElement, L68);
dart.defineLazy(svg$.FEColorMatrixElement, {
  /*svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_HUEROTATE*/get SVG_FECOLORMATRIX_TYPE_HUEROTATE() {
    return 3;
  },
  /*svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA*/get SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA() {
    return 4;
  },
  /*svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_MATRIX*/get SVG_FECOLORMATRIX_TYPE_MATRIX() {
    return 1;
  },
  /*svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE*/get SVG_FECOLORMATRIX_TYPE_SATURATE() {
    return 2;
  },
  /*svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_UNKNOWN*/get SVG_FECOLORMATRIX_TYPE_UNKNOWN() {
    return 0;
  }
}, true);
dart.registerExtension("SVGFEColorMatrixElement", svg$.FEColorMatrixElement);
svg$.FEComponentTransferElement = class FEComponentTransferElement extends svg$.SvgElement {
  static new() {
    return svg$.FEComponentTransferElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feComponentTransfer"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feComponentTransfer")) && svg$.FEComponentTransferElement.is(svg$.SvgElement.tag("feComponentTransfer"));
  }
  get [$in1]() {
    return this.in1;
  }
  get [$height]() {
    return this.height;
  }
  get [$result]() {
    return this.result;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
};
(svg$.FEComponentTransferElement.created = function() {
  svg$.FEComponentTransferElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEComponentTransferElement.prototype;
dart.addTypeTests(svg$.FEComponentTransferElement);
dart.addTypeCaches(svg$.FEComponentTransferElement);
svg$.FEComponentTransferElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
dart.setGetterSignature(svg$.FEComponentTransferElement, () => ({
  __proto__: dart.getGetters(svg$.FEComponentTransferElement.__proto__),
  [$in1]: svg$.AnimatedString,
  [$height]: svg$.AnimatedLength,
  [$result]: svg$.AnimatedString,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.FEComponentTransferElement, L68);
dart.registerExtension("SVGFEComponentTransferElement", svg$.FEComponentTransferElement);
svg$.FECompositeElement = class FECompositeElement extends svg$.SvgElement {
  get [$in1]() {
    return this.in1;
  }
  get [$in2]() {
    return this.in2;
  }
  get [$k1]() {
    return this.k1;
  }
  get [$k2]() {
    return this.k2;
  }
  get [$k3]() {
    return this.k3;
  }
  get [$k4]() {
    return this.k4;
  }
  get [$operator]() {
    return this.operator;
  }
  get [$height]() {
    return this.height;
  }
  get [$result]() {
    return this.result;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
};
(svg$.FECompositeElement.created = function() {
  svg$.FECompositeElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FECompositeElement.prototype;
dart.addTypeTests(svg$.FECompositeElement);
dart.addTypeCaches(svg$.FECompositeElement);
svg$.FECompositeElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
dart.setGetterSignature(svg$.FECompositeElement, () => ({
  __proto__: dart.getGetters(svg$.FECompositeElement.__proto__),
  [$in1]: svg$.AnimatedString,
  [$in2]: svg$.AnimatedString,
  [$k1]: svg$.AnimatedNumber,
  [$k2]: svg$.AnimatedNumber,
  [$k3]: svg$.AnimatedNumber,
  [$k4]: svg$.AnimatedNumber,
  [$operator]: svg$.AnimatedEnumeration,
  [$height]: svg$.AnimatedLength,
  [$result]: svg$.AnimatedString,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.FECompositeElement, L68);
dart.defineLazy(svg$.FECompositeElement, {
  /*svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC*/get SVG_FECOMPOSITE_OPERATOR_ARITHMETIC() {
    return 6;
  },
  /*svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_ATOP*/get SVG_FECOMPOSITE_OPERATOR_ATOP() {
    return 4;
  },
  /*svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_IN*/get SVG_FECOMPOSITE_OPERATOR_IN() {
    return 2;
  },
  /*svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_OUT*/get SVG_FECOMPOSITE_OPERATOR_OUT() {
    return 3;
  },
  /*svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER*/get SVG_FECOMPOSITE_OPERATOR_OVER() {
    return 1;
  },
  /*svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_UNKNOWN*/get SVG_FECOMPOSITE_OPERATOR_UNKNOWN() {
    return 0;
  },
  /*svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_XOR*/get SVG_FECOMPOSITE_OPERATOR_XOR() {
    return 5;
  }
}, true);
dart.registerExtension("SVGFECompositeElement", svg$.FECompositeElement);
svg$.FEConvolveMatrixElement = class FEConvolveMatrixElement extends svg$.SvgElement {
  static new() {
    return svg$.FEConvolveMatrixElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feConvolveMatrix"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feConvolveMatrix")) && svg$.FEConvolveMatrixElement.is(svg$.SvgElement.tag("feConvolveMatrix"));
  }
  get [$bias]() {
    return this.bias;
  }
  get [$divisor]() {
    return this.divisor;
  }
  get [$edgeMode]() {
    return this.edgeMode;
  }
  get [$in1]() {
    return this.in1;
  }
  get [$kernelMatrix]() {
    return this.kernelMatrix;
  }
  get [$kernelUnitLengthX]() {
    return this.kernelUnitLengthX;
  }
  get [$kernelUnitLengthY]() {
    return this.kernelUnitLengthY;
  }
  get [$orderX]() {
    return this.orderX;
  }
  get [$orderY]() {
    return this.orderY;
  }
  get [$preserveAlpha]() {
    return this.preserveAlpha;
  }
  get [$targetX]() {
    return this.targetX;
  }
  get [$targetY]() {
    return this.targetY;
  }
  get [$height]() {
    return this.height;
  }
  get [$result]() {
    return this.result;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
};
(svg$.FEConvolveMatrixElement.created = function() {
  svg$.FEConvolveMatrixElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEConvolveMatrixElement.prototype;
dart.addTypeTests(svg$.FEConvolveMatrixElement);
dart.addTypeCaches(svg$.FEConvolveMatrixElement);
svg$.FEConvolveMatrixElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
dart.setGetterSignature(svg$.FEConvolveMatrixElement, () => ({
  __proto__: dart.getGetters(svg$.FEConvolveMatrixElement.__proto__),
  [$bias]: svg$.AnimatedNumber,
  [$divisor]: svg$.AnimatedNumber,
  [$edgeMode]: svg$.AnimatedEnumeration,
  [$in1]: svg$.AnimatedString,
  [$kernelMatrix]: svg$.AnimatedNumberList,
  [$kernelUnitLengthX]: svg$.AnimatedNumber,
  [$kernelUnitLengthY]: svg$.AnimatedNumber,
  [$orderX]: svg$.AnimatedInteger,
  [$orderY]: svg$.AnimatedInteger,
  [$preserveAlpha]: svg$.AnimatedBoolean,
  [$targetX]: svg$.AnimatedInteger,
  [$targetY]: svg$.AnimatedInteger,
  [$height]: svg$.AnimatedLength,
  [$result]: svg$.AnimatedString,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.FEConvolveMatrixElement, L68);
dart.defineLazy(svg$.FEConvolveMatrixElement, {
  /*svg$.FEConvolveMatrixElement.SVG_EDGEMODE_DUPLICATE*/get SVG_EDGEMODE_DUPLICATE() {
    return 1;
  },
  /*svg$.FEConvolveMatrixElement.SVG_EDGEMODE_NONE*/get SVG_EDGEMODE_NONE() {
    return 3;
  },
  /*svg$.FEConvolveMatrixElement.SVG_EDGEMODE_UNKNOWN*/get SVG_EDGEMODE_UNKNOWN() {
    return 0;
  },
  /*svg$.FEConvolveMatrixElement.SVG_EDGEMODE_WRAP*/get SVG_EDGEMODE_WRAP() {
    return 2;
  }
}, true);
dart.registerExtension("SVGFEConvolveMatrixElement", svg$.FEConvolveMatrixElement);
svg$.FEDiffuseLightingElement = class FEDiffuseLightingElement extends svg$.SvgElement {
  static new() {
    return svg$.FEDiffuseLightingElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feDiffuseLighting"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feDiffuseLighting")) && svg$.FEDiffuseLightingElement.is(svg$.SvgElement.tag("feDiffuseLighting"));
  }
  get [$diffuseConstant]() {
    return this.diffuseConstant;
  }
  get [$in1]() {
    return this.in1;
  }
  get [$kernelUnitLengthX]() {
    return this.kernelUnitLengthX;
  }
  get [$kernelUnitLengthY]() {
    return this.kernelUnitLengthY;
  }
  get [$surfaceScale]() {
    return this.surfaceScale;
  }
  get [$height]() {
    return this.height;
  }
  get [$result]() {
    return this.result;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
};
(svg$.FEDiffuseLightingElement.created = function() {
  svg$.FEDiffuseLightingElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEDiffuseLightingElement.prototype;
dart.addTypeTests(svg$.FEDiffuseLightingElement);
dart.addTypeCaches(svg$.FEDiffuseLightingElement);
svg$.FEDiffuseLightingElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
dart.setGetterSignature(svg$.FEDiffuseLightingElement, () => ({
  __proto__: dart.getGetters(svg$.FEDiffuseLightingElement.__proto__),
  [$diffuseConstant]: svg$.AnimatedNumber,
  [$in1]: svg$.AnimatedString,
  [$kernelUnitLengthX]: svg$.AnimatedNumber,
  [$kernelUnitLengthY]: svg$.AnimatedNumber,
  [$surfaceScale]: svg$.AnimatedNumber,
  [$height]: svg$.AnimatedLength,
  [$result]: svg$.AnimatedString,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.FEDiffuseLightingElement, L68);
dart.registerExtension("SVGFEDiffuseLightingElement", svg$.FEDiffuseLightingElement);
svg$.FEDisplacementMapElement = class FEDisplacementMapElement extends svg$.SvgElement {
  static new() {
    return svg$.FEDisplacementMapElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feDisplacementMap"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feDisplacementMap")) && svg$.FEDisplacementMapElement.is(svg$.SvgElement.tag("feDisplacementMap"));
  }
  get [$in1]() {
    return this.in1;
  }
  get [$in2]() {
    return this.in2;
  }
  get [$scale]() {
    return this.scale;
  }
  get [$xChannelSelector]() {
    return this.xChannelSelector;
  }
  get [$yChannelSelector]() {
    return this.yChannelSelector;
  }
  get [$height]() {
    return this.height;
  }
  get [$result]() {
    return this.result;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
};
(svg$.FEDisplacementMapElement.created = function() {
  svg$.FEDisplacementMapElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEDisplacementMapElement.prototype;
dart.addTypeTests(svg$.FEDisplacementMapElement);
dart.addTypeCaches(svg$.FEDisplacementMapElement);
svg$.FEDisplacementMapElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
dart.setGetterSignature(svg$.FEDisplacementMapElement, () => ({
  __proto__: dart.getGetters(svg$.FEDisplacementMapElement.__proto__),
  [$in1]: svg$.AnimatedString,
  [$in2]: svg$.AnimatedString,
  [$scale]: svg$.AnimatedNumber,
  [$xChannelSelector]: svg$.AnimatedEnumeration,
  [$yChannelSelector]: svg$.AnimatedEnumeration,
  [$height]: svg$.AnimatedLength,
  [$result]: svg$.AnimatedString,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.FEDisplacementMapElement, L68);
dart.defineLazy(svg$.FEDisplacementMapElement, {
  /*svg$.FEDisplacementMapElement.SVG_CHANNEL_A*/get SVG_CHANNEL_A() {
    return 4;
  },
  /*svg$.FEDisplacementMapElement.SVG_CHANNEL_B*/get SVG_CHANNEL_B() {
    return 3;
  },
  /*svg$.FEDisplacementMapElement.SVG_CHANNEL_G*/get SVG_CHANNEL_G() {
    return 2;
  },
  /*svg$.FEDisplacementMapElement.SVG_CHANNEL_R*/get SVG_CHANNEL_R() {
    return 1;
  },
  /*svg$.FEDisplacementMapElement.SVG_CHANNEL_UNKNOWN*/get SVG_CHANNEL_UNKNOWN() {
    return 0;
  }
}, true);
dart.registerExtension("SVGFEDisplacementMapElement", svg$.FEDisplacementMapElement);
svg$.FEDistantLightElement = class FEDistantLightElement extends svg$.SvgElement {
  static new() {
    return svg$.FEDistantLightElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feDistantLight"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feDistantLight")) && svg$.FEDistantLightElement.is(svg$.SvgElement.tag("feDistantLight"));
  }
  get [$azimuth]() {
    return this.azimuth;
  }
  get [$elevation]() {
    return this.elevation;
  }
};
(svg$.FEDistantLightElement.created = function() {
  svg$.FEDistantLightElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEDistantLightElement.prototype;
dart.addTypeTests(svg$.FEDistantLightElement);
dart.addTypeCaches(svg$.FEDistantLightElement);
dart.setGetterSignature(svg$.FEDistantLightElement, () => ({
  __proto__: dart.getGetters(svg$.FEDistantLightElement.__proto__),
  [$azimuth]: svg$.AnimatedNumber,
  [$elevation]: svg$.AnimatedNumber
}));
dart.setLibraryUri(svg$.FEDistantLightElement, L68);
dart.registerExtension("SVGFEDistantLightElement", svg$.FEDistantLightElement);
svg$.FEFloodElement = class FEFloodElement extends svg$.SvgElement {
  static new() {
    return svg$.FEFloodElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFlood"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feFlood")) && svg$.FEFloodElement.is(svg$.SvgElement.tag("feFlood"));
  }
  get [$height]() {
    return this.height;
  }
  get [$result]() {
    return this.result;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
};
(svg$.FEFloodElement.created = function() {
  svg$.FEFloodElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEFloodElement.prototype;
dart.addTypeTests(svg$.FEFloodElement);
dart.addTypeCaches(svg$.FEFloodElement);
svg$.FEFloodElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
dart.setGetterSignature(svg$.FEFloodElement, () => ({
  __proto__: dart.getGetters(svg$.FEFloodElement.__proto__),
  [$height]: svg$.AnimatedLength,
  [$result]: svg$.AnimatedString,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.FEFloodElement, L68);
dart.registerExtension("SVGFEFloodElement", svg$.FEFloodElement);
svg$._SVGComponentTransferFunctionElement = class _SVGComponentTransferFunctionElement extends svg$.SvgElement {};
(svg$._SVGComponentTransferFunctionElement.created = function() {
  svg$._SVGComponentTransferFunctionElement.__proto__.created.call(this);
  ;
}).prototype = svg$._SVGComponentTransferFunctionElement.prototype;
dart.addTypeTests(svg$._SVGComponentTransferFunctionElement);
dart.addTypeCaches(svg$._SVGComponentTransferFunctionElement);
dart.setLibraryUri(svg$._SVGComponentTransferFunctionElement, L68);
dart.registerExtension("SVGComponentTransferFunctionElement", svg$._SVGComponentTransferFunctionElement);
svg$.FEFuncAElement = class FEFuncAElement extends svg$._SVGComponentTransferFunctionElement {
  static new() {
    return svg$.FEFuncAElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncA"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feFuncA")) && svg$.FEFuncAElement.is(svg$.SvgElement.tag("feFuncA"));
  }
};
(svg$.FEFuncAElement.created = function() {
  svg$.FEFuncAElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEFuncAElement.prototype;
dart.addTypeTests(svg$.FEFuncAElement);
dart.addTypeCaches(svg$.FEFuncAElement);
dart.setLibraryUri(svg$.FEFuncAElement, L68);
dart.registerExtension("SVGFEFuncAElement", svg$.FEFuncAElement);
svg$.FEFuncBElement = class FEFuncBElement extends svg$._SVGComponentTransferFunctionElement {
  static new() {
    return svg$.FEFuncBElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncB"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feFuncB")) && svg$.FEFuncBElement.is(svg$.SvgElement.tag("feFuncB"));
  }
};
(svg$.FEFuncBElement.created = function() {
  svg$.FEFuncBElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEFuncBElement.prototype;
dart.addTypeTests(svg$.FEFuncBElement);
dart.addTypeCaches(svg$.FEFuncBElement);
dart.setLibraryUri(svg$.FEFuncBElement, L68);
dart.registerExtension("SVGFEFuncBElement", svg$.FEFuncBElement);
svg$.FEFuncGElement = class FEFuncGElement extends svg$._SVGComponentTransferFunctionElement {
  static new() {
    return svg$.FEFuncGElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncG"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feFuncG")) && svg$.FEFuncGElement.is(svg$.SvgElement.tag("feFuncG"));
  }
};
(svg$.FEFuncGElement.created = function() {
  svg$.FEFuncGElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEFuncGElement.prototype;
dart.addTypeTests(svg$.FEFuncGElement);
dart.addTypeCaches(svg$.FEFuncGElement);
dart.setLibraryUri(svg$.FEFuncGElement, L68);
dart.registerExtension("SVGFEFuncGElement", svg$.FEFuncGElement);
svg$.FEFuncRElement = class FEFuncRElement extends svg$._SVGComponentTransferFunctionElement {
  static new() {
    return svg$.FEFuncRElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncR"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feFuncR")) && svg$.FEFuncRElement.is(svg$.SvgElement.tag("feFuncR"));
  }
};
(svg$.FEFuncRElement.created = function() {
  svg$.FEFuncRElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEFuncRElement.prototype;
dart.addTypeTests(svg$.FEFuncRElement);
dart.addTypeCaches(svg$.FEFuncRElement);
dart.setLibraryUri(svg$.FEFuncRElement, L68);
dart.registerExtension("SVGFEFuncRElement", svg$.FEFuncRElement);
svg$.FEGaussianBlurElement = class FEGaussianBlurElement extends svg$.SvgElement {
  static new() {
    return svg$.FEGaussianBlurElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feGaussianBlur"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feGaussianBlur")) && svg$.FEGaussianBlurElement.is(svg$.SvgElement.tag("feGaussianBlur"));
  }
  get [$in1]() {
    return this.in1;
  }
  get [$stdDeviationX]() {
    return this.stdDeviationX;
  }
  get [$stdDeviationY]() {
    return this.stdDeviationY;
  }
  [$setStdDeviation](...args) {
    return this.setStdDeviation.apply(this, args);
  }
  get [$height]() {
    return this.height;
  }
  get [$result]() {
    return this.result;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
};
(svg$.FEGaussianBlurElement.created = function() {
  svg$.FEGaussianBlurElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEGaussianBlurElement.prototype;
dart.addTypeTests(svg$.FEGaussianBlurElement);
dart.addTypeCaches(svg$.FEGaussianBlurElement);
svg$.FEGaussianBlurElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
dart.setMethodSignature(svg$.FEGaussianBlurElement, () => ({
  __proto__: dart.getMethods(svg$.FEGaussianBlurElement.__proto__),
  [$setStdDeviation]: dart.fnType(dart.void, [core.num, core.num])
}));
dart.setGetterSignature(svg$.FEGaussianBlurElement, () => ({
  __proto__: dart.getGetters(svg$.FEGaussianBlurElement.__proto__),
  [$in1]: svg$.AnimatedString,
  [$stdDeviationX]: svg$.AnimatedNumber,
  [$stdDeviationY]: svg$.AnimatedNumber,
  [$height]: svg$.AnimatedLength,
  [$result]: svg$.AnimatedString,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.FEGaussianBlurElement, L68);
dart.registerExtension("SVGFEGaussianBlurElement", svg$.FEGaussianBlurElement);
svg$.FEImageElement = class FEImageElement extends svg$.SvgElement {
  static new() {
    return svg$.FEImageElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feImage"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feImage")) && svg$.FEImageElement.is(svg$.SvgElement.tag("feImage"));
  }
  get [$preserveAspectRatio]() {
    return this.preserveAspectRatio;
  }
  get [$height]() {
    return this.height;
  }
  get [$result]() {
    return this.result;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
  get [$href]() {
    return this.href;
  }
};
(svg$.FEImageElement.created = function() {
  svg$.FEImageElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEImageElement.prototype;
dart.addTypeTests(svg$.FEImageElement);
dart.addTypeCaches(svg$.FEImageElement);
svg$.FEImageElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes, svg$.UriReference];
dart.setGetterSignature(svg$.FEImageElement, () => ({
  __proto__: dart.getGetters(svg$.FEImageElement.__proto__),
  [$preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
  [$height]: svg$.AnimatedLength,
  [$result]: svg$.AnimatedString,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength,
  [$href]: svg$.AnimatedString
}));
dart.setLibraryUri(svg$.FEImageElement, L68);
dart.registerExtension("SVGFEImageElement", svg$.FEImageElement);
svg$.FEMergeElement = class FEMergeElement extends svg$.SvgElement {
  static new() {
    return svg$.FEMergeElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feMerge"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feMerge")) && svg$.FEMergeElement.is(svg$.SvgElement.tag("feMerge"));
  }
  get [$height]() {
    return this.height;
  }
  get [$result]() {
    return this.result;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
};
(svg$.FEMergeElement.created = function() {
  svg$.FEMergeElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEMergeElement.prototype;
dart.addTypeTests(svg$.FEMergeElement);
dart.addTypeCaches(svg$.FEMergeElement);
svg$.FEMergeElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
dart.setGetterSignature(svg$.FEMergeElement, () => ({
  __proto__: dart.getGetters(svg$.FEMergeElement.__proto__),
  [$height]: svg$.AnimatedLength,
  [$result]: svg$.AnimatedString,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.FEMergeElement, L68);
dart.registerExtension("SVGFEMergeElement", svg$.FEMergeElement);
svg$.FEMergeNodeElement = class FEMergeNodeElement extends svg$.SvgElement {
  static new() {
    return svg$.FEMergeNodeElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feMergeNode"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feMergeNode")) && svg$.FEMergeNodeElement.is(svg$.SvgElement.tag("feMergeNode"));
  }
  get [$in1]() {
    return this.in1;
  }
};
(svg$.FEMergeNodeElement.created = function() {
  svg$.FEMergeNodeElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEMergeNodeElement.prototype;
dart.addTypeTests(svg$.FEMergeNodeElement);
dart.addTypeCaches(svg$.FEMergeNodeElement);
dart.setGetterSignature(svg$.FEMergeNodeElement, () => ({
  __proto__: dart.getGetters(svg$.FEMergeNodeElement.__proto__),
  [$in1]: svg$.AnimatedString
}));
dart.setLibraryUri(svg$.FEMergeNodeElement, L68);
dart.registerExtension("SVGFEMergeNodeElement", svg$.FEMergeNodeElement);
svg$.FEMorphologyElement = class FEMorphologyElement extends svg$.SvgElement {
  get [$in1]() {
    return this.in1;
  }
  get [$operator]() {
    return this.operator;
  }
  get [$radiusX]() {
    return this.radiusX;
  }
  get [$radiusY]() {
    return this.radiusY;
  }
  get [$height]() {
    return this.height;
  }
  get [$result]() {
    return this.result;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
};
(svg$.FEMorphologyElement.created = function() {
  svg$.FEMorphologyElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEMorphologyElement.prototype;
dart.addTypeTests(svg$.FEMorphologyElement);
dart.addTypeCaches(svg$.FEMorphologyElement);
svg$.FEMorphologyElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
dart.setGetterSignature(svg$.FEMorphologyElement, () => ({
  __proto__: dart.getGetters(svg$.FEMorphologyElement.__proto__),
  [$in1]: svg$.AnimatedString,
  [$operator]: svg$.AnimatedEnumeration,
  [$radiusX]: svg$.AnimatedNumber,
  [$radiusY]: svg$.AnimatedNumber,
  [$height]: svg$.AnimatedLength,
  [$result]: svg$.AnimatedString,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.FEMorphologyElement, L68);
dart.defineLazy(svg$.FEMorphologyElement, {
  /*svg$.FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_DILATE*/get SVG_MORPHOLOGY_OPERATOR_DILATE() {
    return 2;
  },
  /*svg$.FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_ERODE*/get SVG_MORPHOLOGY_OPERATOR_ERODE() {
    return 1;
  },
  /*svg$.FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_UNKNOWN*/get SVG_MORPHOLOGY_OPERATOR_UNKNOWN() {
    return 0;
  }
}, true);
dart.registerExtension("SVGFEMorphologyElement", svg$.FEMorphologyElement);
svg$.FEOffsetElement = class FEOffsetElement extends svg$.SvgElement {
  static new() {
    return svg$.FEOffsetElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feOffset"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feOffset")) && svg$.FEOffsetElement.is(svg$.SvgElement.tag("feOffset"));
  }
  get [$dx]() {
    return this.dx;
  }
  get [$dy]() {
    return this.dy;
  }
  get [$in1]() {
    return this.in1;
  }
  get [$height]() {
    return this.height;
  }
  get [$result]() {
    return this.result;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
};
(svg$.FEOffsetElement.created = function() {
  svg$.FEOffsetElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEOffsetElement.prototype;
dart.addTypeTests(svg$.FEOffsetElement);
dart.addTypeCaches(svg$.FEOffsetElement);
svg$.FEOffsetElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
dart.setGetterSignature(svg$.FEOffsetElement, () => ({
  __proto__: dart.getGetters(svg$.FEOffsetElement.__proto__),
  [$dx]: svg$.AnimatedNumber,
  [$dy]: svg$.AnimatedNumber,
  [$in1]: svg$.AnimatedString,
  [$height]: svg$.AnimatedLength,
  [$result]: svg$.AnimatedString,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.FEOffsetElement, L68);
dart.registerExtension("SVGFEOffsetElement", svg$.FEOffsetElement);
svg$.FEPointLightElement = class FEPointLightElement extends svg$.SvgElement {
  static new() {
    return svg$.FEPointLightElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("fePointLight"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("fePointLight")) && svg$.FEPointLightElement.is(svg$.SvgElement.tag("fePointLight"));
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
  get [$z]() {
    return this.z;
  }
};
(svg$.FEPointLightElement.created = function() {
  svg$.FEPointLightElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FEPointLightElement.prototype;
dart.addTypeTests(svg$.FEPointLightElement);
dart.addTypeCaches(svg$.FEPointLightElement);
dart.setGetterSignature(svg$.FEPointLightElement, () => ({
  __proto__: dart.getGetters(svg$.FEPointLightElement.__proto__),
  [$x]: svg$.AnimatedNumber,
  [$y]: svg$.AnimatedNumber,
  [$z]: svg$.AnimatedNumber
}));
dart.setLibraryUri(svg$.FEPointLightElement, L68);
dart.registerExtension("SVGFEPointLightElement", svg$.FEPointLightElement);
svg$.FESpecularLightingElement = class FESpecularLightingElement extends svg$.SvgElement {
  static new() {
    return svg$.FESpecularLightingElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feSpecularLighting"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feSpecularLighting")) && svg$.FESpecularLightingElement.is(svg$.SvgElement.tag("feSpecularLighting"));
  }
  get [$in1]() {
    return this.in1;
  }
  get [$kernelUnitLengthX]() {
    return this.kernelUnitLengthX;
  }
  get [$kernelUnitLengthY]() {
    return this.kernelUnitLengthY;
  }
  get [$specularConstant]() {
    return this.specularConstant;
  }
  get [$specularExponent]() {
    return this.specularExponent;
  }
  get [$surfaceScale]() {
    return this.surfaceScale;
  }
  get [$height]() {
    return this.height;
  }
  get [$result]() {
    return this.result;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
};
(svg$.FESpecularLightingElement.created = function() {
  svg$.FESpecularLightingElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FESpecularLightingElement.prototype;
dart.addTypeTests(svg$.FESpecularLightingElement);
dart.addTypeCaches(svg$.FESpecularLightingElement);
svg$.FESpecularLightingElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
dart.setGetterSignature(svg$.FESpecularLightingElement, () => ({
  __proto__: dart.getGetters(svg$.FESpecularLightingElement.__proto__),
  [$in1]: svg$.AnimatedString,
  [$kernelUnitLengthX]: svg$.AnimatedNumber,
  [$kernelUnitLengthY]: svg$.AnimatedNumber,
  [$specularConstant]: svg$.AnimatedNumber,
  [$specularExponent]: svg$.AnimatedNumber,
  [$surfaceScale]: svg$.AnimatedNumber,
  [$height]: svg$.AnimatedLength,
  [$result]: svg$.AnimatedString,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.FESpecularLightingElement, L68);
dart.registerExtension("SVGFESpecularLightingElement", svg$.FESpecularLightingElement);
svg$.FESpotLightElement = class FESpotLightElement extends svg$.SvgElement {
  static new() {
    return svg$.FESpotLightElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feSpotLight"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feSpotLight")) && svg$.FESpotLightElement.is(svg$.SvgElement.tag("feSpotLight"));
  }
  get [$limitingConeAngle]() {
    return this.limitingConeAngle;
  }
  get [$pointsAtX]() {
    return this.pointsAtX;
  }
  get [$pointsAtY]() {
    return this.pointsAtY;
  }
  get [$pointsAtZ]() {
    return this.pointsAtZ;
  }
  get [$specularExponent]() {
    return this.specularExponent;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
  get [$z]() {
    return this.z;
  }
};
(svg$.FESpotLightElement.created = function() {
  svg$.FESpotLightElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FESpotLightElement.prototype;
dart.addTypeTests(svg$.FESpotLightElement);
dart.addTypeCaches(svg$.FESpotLightElement);
dart.setGetterSignature(svg$.FESpotLightElement, () => ({
  __proto__: dart.getGetters(svg$.FESpotLightElement.__proto__),
  [$limitingConeAngle]: svg$.AnimatedNumber,
  [$pointsAtX]: svg$.AnimatedNumber,
  [$pointsAtY]: svg$.AnimatedNumber,
  [$pointsAtZ]: svg$.AnimatedNumber,
  [$specularExponent]: svg$.AnimatedNumber,
  [$x]: svg$.AnimatedNumber,
  [$y]: svg$.AnimatedNumber,
  [$z]: svg$.AnimatedNumber
}));
dart.setLibraryUri(svg$.FESpotLightElement, L68);
dart.registerExtension("SVGFESpotLightElement", svg$.FESpotLightElement);
svg$.FETileElement = class FETileElement extends svg$.SvgElement {
  static new() {
    return svg$.FETileElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feTile"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feTile")) && svg$.FETileElement.is(svg$.SvgElement.tag("feTile"));
  }
  get [$in1]() {
    return this.in1;
  }
  get [$height]() {
    return this.height;
  }
  get [$result]() {
    return this.result;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
};
(svg$.FETileElement.created = function() {
  svg$.FETileElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FETileElement.prototype;
dart.addTypeTests(svg$.FETileElement);
dart.addTypeCaches(svg$.FETileElement);
svg$.FETileElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
dart.setGetterSignature(svg$.FETileElement, () => ({
  __proto__: dart.getGetters(svg$.FETileElement.__proto__),
  [$in1]: svg$.AnimatedString,
  [$height]: svg$.AnimatedLength,
  [$result]: svg$.AnimatedString,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.FETileElement, L68);
dart.registerExtension("SVGFETileElement", svg$.FETileElement);
svg$.FETurbulenceElement = class FETurbulenceElement extends svg$.SvgElement {
  static new() {
    return svg$.FETurbulenceElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("feTurbulence"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("feTurbulence")) && svg$.FETurbulenceElement.is(svg$.SvgElement.tag("feTurbulence"));
  }
  get [$baseFrequencyX]() {
    return this.baseFrequencyX;
  }
  get [$baseFrequencyY]() {
    return this.baseFrequencyY;
  }
  get [$numOctaves]() {
    return this.numOctaves;
  }
  get [$seed]() {
    return this.seed;
  }
  get [$stitchTiles]() {
    return this.stitchTiles;
  }
  get [$type]() {
    return this.type;
  }
  get [$height]() {
    return this.height;
  }
  get [$result]() {
    return this.result;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
};
(svg$.FETurbulenceElement.created = function() {
  svg$.FETurbulenceElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FETurbulenceElement.prototype;
dart.addTypeTests(svg$.FETurbulenceElement);
dart.addTypeCaches(svg$.FETurbulenceElement);
svg$.FETurbulenceElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
dart.setGetterSignature(svg$.FETurbulenceElement, () => ({
  __proto__: dart.getGetters(svg$.FETurbulenceElement.__proto__),
  [$baseFrequencyX]: svg$.AnimatedNumber,
  [$baseFrequencyY]: svg$.AnimatedNumber,
  [$numOctaves]: svg$.AnimatedInteger,
  [$seed]: svg$.AnimatedNumber,
  [$stitchTiles]: svg$.AnimatedEnumeration,
  [$type]: svg$.AnimatedEnumeration,
  [$height]: svg$.AnimatedLength,
  [$result]: svg$.AnimatedString,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.FETurbulenceElement, L68);
dart.defineLazy(svg$.FETurbulenceElement, {
  /*svg$.FETurbulenceElement.SVG_STITCHTYPE_NOSTITCH*/get SVG_STITCHTYPE_NOSTITCH() {
    return 2;
  },
  /*svg$.FETurbulenceElement.SVG_STITCHTYPE_STITCH*/get SVG_STITCHTYPE_STITCH() {
    return 1;
  },
  /*svg$.FETurbulenceElement.SVG_STITCHTYPE_UNKNOWN*/get SVG_STITCHTYPE_UNKNOWN() {
    return 0;
  },
  /*svg$.FETurbulenceElement.SVG_TURBULENCE_TYPE_FRACTALNOISE*/get SVG_TURBULENCE_TYPE_FRACTALNOISE() {
    return 1;
  },
  /*svg$.FETurbulenceElement.SVG_TURBULENCE_TYPE_TURBULENCE*/get SVG_TURBULENCE_TYPE_TURBULENCE() {
    return 2;
  },
  /*svg$.FETurbulenceElement.SVG_TURBULENCE_TYPE_UNKNOWN*/get SVG_TURBULENCE_TYPE_UNKNOWN() {
    return 0;
  }
}, true);
dart.registerExtension("SVGFETurbulenceElement", svg$.FETurbulenceElement);
svg$.FilterElement = class FilterElement extends svg$.SvgElement {
  static new() {
    return svg$.FilterElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("filter"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("filter")) && svg$.FilterElement.is(svg$.SvgElement.tag("filter"));
  }
  get [$filterUnits]() {
    return this.filterUnits;
  }
  get [$height]() {
    return this.height;
  }
  get [$primitiveUnits]() {
    return this.primitiveUnits;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
  get [$href]() {
    return this.href;
  }
};
(svg$.FilterElement.created = function() {
  svg$.FilterElement.__proto__.created.call(this);
  ;
}).prototype = svg$.FilterElement.prototype;
dart.addTypeTests(svg$.FilterElement);
dart.addTypeCaches(svg$.FilterElement);
svg$.FilterElement[dart.implements] = () => [svg$.UriReference];
dart.setGetterSignature(svg$.FilterElement, () => ({
  __proto__: dart.getGetters(svg$.FilterElement.__proto__),
  [$filterUnits]: svg$.AnimatedEnumeration,
  [$height]: svg$.AnimatedLength,
  [$primitiveUnits]: svg$.AnimatedEnumeration,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength,
  [$href]: svg$.AnimatedString
}));
dart.setLibraryUri(svg$.FilterElement, L68);
dart.registerExtension("SVGFilterElement", svg$.FilterElement);
svg$.FilterPrimitiveStandardAttributes = class FilterPrimitiveStandardAttributes extends _interceptors.Interceptor {
  get height() {
    return this.height;
  }
  get result() {
    return this.result;
  }
  get width() {
    return this.width;
  }
  get x() {
    return this.x;
  }
  get y() {
    return this.y;
  }
};
dart.addTypeTests(svg$.FilterPrimitiveStandardAttributes);
dart.addTypeCaches(svg$.FilterPrimitiveStandardAttributes);
dart.setGetterSignature(svg$.FilterPrimitiveStandardAttributes, () => ({
  __proto__: dart.getGetters(svg$.FilterPrimitiveStandardAttributes.__proto__),
  height: svg$.AnimatedLength,
  [$height]: svg$.AnimatedLength,
  result: svg$.AnimatedString,
  [$result]: svg$.AnimatedString,
  width: svg$.AnimatedLength,
  [$width]: svg$.AnimatedLength,
  x: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  y: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.FilterPrimitiveStandardAttributes, L68);
dart.defineExtensionAccessors(svg$.FilterPrimitiveStandardAttributes, [
  'height',
  'result',
  'width',
  'x',
  'y'
]);
svg$.FitToViewBox = class FitToViewBox extends _interceptors.Interceptor {
  get preserveAspectRatio() {
    return this.preserveAspectRatio;
  }
  get viewBox() {
    return this.viewBox;
  }
};
dart.addTypeTests(svg$.FitToViewBox);
dart.addTypeCaches(svg$.FitToViewBox);
dart.setGetterSignature(svg$.FitToViewBox, () => ({
  __proto__: dart.getGetters(svg$.FitToViewBox.__proto__),
  preserveAspectRatio: svg$.AnimatedPreserveAspectRatio,
  [$preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
  viewBox: svg$.AnimatedRect,
  [$viewBox]: svg$.AnimatedRect
}));
dart.setLibraryUri(svg$.FitToViewBox, L68);
dart.defineExtensionAccessors(svg$.FitToViewBox, ['preserveAspectRatio', 'viewBox']);
svg$.ForeignObjectElement = class ForeignObjectElement extends svg$.GraphicsElement {
  static new() {
    return svg$.ForeignObjectElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("foreignObject"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("foreignObject")) && svg$.ForeignObjectElement.is(svg$.SvgElement.tag("foreignObject"));
  }
  get [$height]() {
    return this.height;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
};
(svg$.ForeignObjectElement.created = function() {
  svg$.ForeignObjectElement.__proto__.created.call(this);
  ;
}).prototype = svg$.ForeignObjectElement.prototype;
dart.addTypeTests(svg$.ForeignObjectElement);
dart.addTypeCaches(svg$.ForeignObjectElement);
dart.setGetterSignature(svg$.ForeignObjectElement, () => ({
  __proto__: dart.getGetters(svg$.ForeignObjectElement.__proto__),
  [$height]: svg$.AnimatedLength,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.ForeignObjectElement, L68);
dart.registerExtension("SVGForeignObjectElement", svg$.ForeignObjectElement);
svg$.GElement = class GElement extends svg$.GraphicsElement {
  static new() {
    return svg$.GElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("g"));
  }
};
(svg$.GElement.created = function() {
  svg$.GElement.__proto__.created.call(this);
  ;
}).prototype = svg$.GElement.prototype;
dart.addTypeTests(svg$.GElement);
dart.addTypeCaches(svg$.GElement);
dart.setLibraryUri(svg$.GElement, L68);
dart.registerExtension("SVGGElement", svg$.GElement);
svg$.ImageElement = class ImageElement extends svg$.GraphicsElement {
  static new() {
    return svg$.ImageElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("image"));
  }
  get [$async]() {
    return this.async;
  }
  set [$async](value) {
    this.async = value;
  }
  get [$height]() {
    return this.height;
  }
  get [$preserveAspectRatio]() {
    return this.preserveAspectRatio;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
  [$decode]() {
    return js_util.promiseToFuture(dart.dynamic, this.decode());
  }
  get [$href]() {
    return this.href;
  }
};
(svg$.ImageElement.created = function() {
  svg$.ImageElement.__proto__.created.call(this);
  ;
}).prototype = svg$.ImageElement.prototype;
dart.addTypeTests(svg$.ImageElement);
dart.addTypeCaches(svg$.ImageElement);
svg$.ImageElement[dart.implements] = () => [svg$.UriReference];
dart.setMethodSignature(svg$.ImageElement, () => ({
  __proto__: dart.getMethods(svg$.ImageElement.__proto__),
  [$decode]: dart.fnType(async.Future, [])
}));
dart.setGetterSignature(svg$.ImageElement, () => ({
  __proto__: dart.getGetters(svg$.ImageElement.__proto__),
  [$async]: core.String,
  [$height]: svg$.AnimatedLength,
  [$preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength,
  [$href]: svg$.AnimatedString
}));
dart.setSetterSignature(svg$.ImageElement, () => ({
  __proto__: dart.getSetters(svg$.ImageElement.__proto__),
  [$async]: core.String
}));
dart.setLibraryUri(svg$.ImageElement, L68);
dart.registerExtension("SVGImageElement", svg$.ImageElement);
svg$.Length = class Length extends _interceptors.Interceptor {
  get [$unitType]() {
    return this.unitType;
  }
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
  get [$valueAsString]() {
    return this.valueAsString;
  }
  set [$valueAsString](value) {
    this.valueAsString = value;
  }
  get [$valueInSpecifiedUnits]() {
    return this.valueInSpecifiedUnits;
  }
  set [$valueInSpecifiedUnits](value) {
    this.valueInSpecifiedUnits = value;
  }
  [$convertToSpecifiedUnits](...args) {
    return this.convertToSpecifiedUnits.apply(this, args);
  }
  [$newValueSpecifiedUnits](...args) {
    return this.newValueSpecifiedUnits.apply(this, args);
  }
};
dart.addTypeTests(svg$.Length);
dart.addTypeCaches(svg$.Length);
dart.setMethodSignature(svg$.Length, () => ({
  __proto__: dart.getMethods(svg$.Length.__proto__),
  [$convertToSpecifiedUnits]: dart.fnType(dart.void, [core.int]),
  [$newValueSpecifiedUnits]: dart.fnType(dart.void, [core.int, core.num])
}));
dart.setGetterSignature(svg$.Length, () => ({
  __proto__: dart.getGetters(svg$.Length.__proto__),
  [$unitType]: core.int,
  [$value]: core.num,
  [$valueAsString]: core.String,
  [$valueInSpecifiedUnits]: core.num
}));
dart.setSetterSignature(svg$.Length, () => ({
  __proto__: dart.getSetters(svg$.Length.__proto__),
  [$value]: core.num,
  [$valueAsString]: core.String,
  [$valueInSpecifiedUnits]: core.num
}));
dart.setLibraryUri(svg$.Length, L68);
dart.defineLazy(svg$.Length, {
  /*svg$.Length.SVG_LENGTHTYPE_CM*/get SVG_LENGTHTYPE_CM() {
    return 6;
  },
  /*svg$.Length.SVG_LENGTHTYPE_EMS*/get SVG_LENGTHTYPE_EMS() {
    return 3;
  },
  /*svg$.Length.SVG_LENGTHTYPE_EXS*/get SVG_LENGTHTYPE_EXS() {
    return 4;
  },
  /*svg$.Length.SVG_LENGTHTYPE_IN*/get SVG_LENGTHTYPE_IN() {
    return 8;
  },
  /*svg$.Length.SVG_LENGTHTYPE_MM*/get SVG_LENGTHTYPE_MM() {
    return 7;
  },
  /*svg$.Length.SVG_LENGTHTYPE_NUMBER*/get SVG_LENGTHTYPE_NUMBER() {
    return 1;
  },
  /*svg$.Length.SVG_LENGTHTYPE_PC*/get SVG_LENGTHTYPE_PC() {
    return 10;
  },
  /*svg$.Length.SVG_LENGTHTYPE_PERCENTAGE*/get SVG_LENGTHTYPE_PERCENTAGE() {
    return 2;
  },
  /*svg$.Length.SVG_LENGTHTYPE_PT*/get SVG_LENGTHTYPE_PT() {
    return 9;
  },
  /*svg$.Length.SVG_LENGTHTYPE_PX*/get SVG_LENGTHTYPE_PX() {
    return 5;
  },
  /*svg$.Length.SVG_LENGTHTYPE_UNKNOWN*/get SVG_LENGTHTYPE_UNKNOWN() {
    return 0;
  }
}, true);
dart.registerExtension("SVGLength", svg$.Length);
var __setter__$ = dart.privateName(svg$, "__setter__");
const Interceptor_ListMixin$36$13 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$13.new = function() {
  Interceptor_ListMixin$36$13.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$13.prototype;
dart.applyMixin(Interceptor_ListMixin$36$13, collection.ListMixin$(svg$.Length));
const Interceptor_ImmutableListMixin$36$13 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$13 {};
(Interceptor_ImmutableListMixin$36$13.new = function() {
  Interceptor_ImmutableListMixin$36$13.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$13.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$13, html$.ImmutableListMixin$(svg$.Length));
svg$.LengthList = class LengthList extends Interceptor_ImmutableListMixin$36$13 {
  get [$length]() {
    return this.length;
  }
  get [$numberOfItems]() {
    return this.numberOfItems;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this.getItem(index);
  }
  [$_set](index, value$) {
    let value = value$;
    svg$.Length.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [__setter__$](...args) {
    return this.__setter__.apply(this, args);
  }
  [$appendItem](...args) {
    return this.appendItem.apply(this, args);
  }
  [$clear](...args) {
    return this.clear.apply(this, args);
  }
  [$getItem](...args) {
    return this.getItem.apply(this, args);
  }
  [$initialize](...args) {
    return this.initialize.apply(this, args);
  }
  [$insertItemBefore](...args) {
    return this.insertItemBefore.apply(this, args);
  }
  [$removeItem](...args) {
    return this.removeItem.apply(this, args);
  }
  [$replaceItem](...args) {
    return this.replaceItem.apply(this, args);
  }
};
svg$.LengthList.prototype[dart.isList] = true;
dart.addTypeTests(svg$.LengthList);
dart.addTypeCaches(svg$.LengthList);
svg$.LengthList[dart.implements] = () => [core.List$(svg$.Length)];
dart.setMethodSignature(svg$.LengthList, () => ({
  __proto__: dart.getMethods(svg$.LengthList.__proto__),
  [$_get]: dart.fnType(svg$.Length, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [__setter__$]: dart.fnType(dart.void, [core.int, svg$.Length]),
  [$appendItem]: dart.fnType(svg$.Length, [svg$.Length]),
  [$getItem]: dart.fnType(svg$.Length, [core.int]),
  [$initialize]: dart.fnType(svg$.Length, [svg$.Length]),
  [$insertItemBefore]: dart.fnType(svg$.Length, [svg$.Length, core.int]),
  [$removeItem]: dart.fnType(svg$.Length, [core.int]),
  [$replaceItem]: dart.fnType(svg$.Length, [svg$.Length, core.int])
}));
dart.setGetterSignature(svg$.LengthList, () => ({
  __proto__: dart.getGetters(svg$.LengthList.__proto__),
  [$length]: core.int,
  [$numberOfItems]: core.int
}));
dart.setSetterSignature(svg$.LengthList, () => ({
  __proto__: dart.getSetters(svg$.LengthList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(svg$.LengthList, L68);
dart.registerExtension("SVGLengthList", svg$.LengthList);
svg$.LineElement = class LineElement extends svg$.GeometryElement {
  static new() {
    return svg$.LineElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("line"));
  }
  get [$x1]() {
    return this.x1;
  }
  get [$x2]() {
    return this.x2;
  }
  get [$y1]() {
    return this.y1;
  }
  get [$y2]() {
    return this.y2;
  }
};
(svg$.LineElement.created = function() {
  svg$.LineElement.__proto__.created.call(this);
  ;
}).prototype = svg$.LineElement.prototype;
dart.addTypeTests(svg$.LineElement);
dart.addTypeCaches(svg$.LineElement);
dart.setGetterSignature(svg$.LineElement, () => ({
  __proto__: dart.getGetters(svg$.LineElement.__proto__),
  [$x1]: svg$.AnimatedLength,
  [$x2]: svg$.AnimatedLength,
  [$y1]: svg$.AnimatedLength,
  [$y2]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.LineElement, L68);
dart.registerExtension("SVGLineElement", svg$.LineElement);
svg$._GradientElement = class _GradientElement extends svg$.SvgElement {
  get [$gradientTransform]() {
    return this.gradientTransform;
  }
  get [$gradientUnits]() {
    return this.gradientUnits;
  }
  get [$spreadMethod]() {
    return this.spreadMethod;
  }
  get [$href]() {
    return this.href;
  }
};
(svg$._GradientElement.created = function() {
  svg$._GradientElement.__proto__.created.call(this);
  ;
}).prototype = svg$._GradientElement.prototype;
dart.addTypeTests(svg$._GradientElement);
dart.addTypeCaches(svg$._GradientElement);
svg$._GradientElement[dart.implements] = () => [svg$.UriReference];
dart.setGetterSignature(svg$._GradientElement, () => ({
  __proto__: dart.getGetters(svg$._GradientElement.__proto__),
  [$gradientTransform]: svg$.AnimatedTransformList,
  [$gradientUnits]: svg$.AnimatedEnumeration,
  [$spreadMethod]: svg$.AnimatedEnumeration,
  [$href]: svg$.AnimatedString
}));
dart.setLibraryUri(svg$._GradientElement, L68);
dart.defineLazy(svg$._GradientElement, {
  /*svg$._GradientElement.SVG_SPREADMETHOD_PAD*/get SVG_SPREADMETHOD_PAD() {
    return 1;
  },
  /*svg$._GradientElement.SVG_SPREADMETHOD_REFLECT*/get SVG_SPREADMETHOD_REFLECT() {
    return 2;
  },
  /*svg$._GradientElement.SVG_SPREADMETHOD_REPEAT*/get SVG_SPREADMETHOD_REPEAT() {
    return 3;
  },
  /*svg$._GradientElement.SVG_SPREADMETHOD_UNKNOWN*/get SVG_SPREADMETHOD_UNKNOWN() {
    return 0;
  }
}, true);
dart.registerExtension("SVGGradientElement", svg$._GradientElement);
svg$.LinearGradientElement = class LinearGradientElement extends svg$._GradientElement {
  static new() {
    return svg$.LinearGradientElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("linearGradient"));
  }
  get [$x1]() {
    return this.x1;
  }
  get [$x2]() {
    return this.x2;
  }
  get [$y1]() {
    return this.y1;
  }
  get [$y2]() {
    return this.y2;
  }
};
(svg$.LinearGradientElement.created = function() {
  svg$.LinearGradientElement.__proto__.created.call(this);
  ;
}).prototype = svg$.LinearGradientElement.prototype;
dart.addTypeTests(svg$.LinearGradientElement);
dart.addTypeCaches(svg$.LinearGradientElement);
dart.setGetterSignature(svg$.LinearGradientElement, () => ({
  __proto__: dart.getGetters(svg$.LinearGradientElement.__proto__),
  [$x1]: svg$.AnimatedLength,
  [$x2]: svg$.AnimatedLength,
  [$y1]: svg$.AnimatedLength,
  [$y2]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.LinearGradientElement, L68);
dart.registerExtension("SVGLinearGradientElement", svg$.LinearGradientElement);
svg$.MarkerElement = class MarkerElement extends svg$.SvgElement {
  static new() {
    return svg$.MarkerElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("marker"));
  }
  get [$markerHeight]() {
    return this.markerHeight;
  }
  get [$markerUnits]() {
    return this.markerUnits;
  }
  get [$markerWidth]() {
    return this.markerWidth;
  }
  get [$orientAngle]() {
    return this.orientAngle;
  }
  get [$orientType]() {
    return this.orientType;
  }
  get [$refX]() {
    return this.refX;
  }
  get [$refY]() {
    return this.refY;
  }
  [$setOrientToAngle](...args) {
    return this.setOrientToAngle.apply(this, args);
  }
  [$setOrientToAuto](...args) {
    return this.setOrientToAuto.apply(this, args);
  }
  get [$preserveAspectRatio]() {
    return this.preserveAspectRatio;
  }
  get [$viewBox]() {
    return this.viewBox;
  }
};
(svg$.MarkerElement.created = function() {
  svg$.MarkerElement.__proto__.created.call(this);
  ;
}).prototype = svg$.MarkerElement.prototype;
dart.addTypeTests(svg$.MarkerElement);
dart.addTypeCaches(svg$.MarkerElement);
svg$.MarkerElement[dart.implements] = () => [svg$.FitToViewBox];
dart.setMethodSignature(svg$.MarkerElement, () => ({
  __proto__: dart.getMethods(svg$.MarkerElement.__proto__),
  [$setOrientToAngle]: dart.fnType(dart.void, [svg$.Angle]),
  [$setOrientToAuto]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(svg$.MarkerElement, () => ({
  __proto__: dart.getGetters(svg$.MarkerElement.__proto__),
  [$markerHeight]: svg$.AnimatedLength,
  [$markerUnits]: svg$.AnimatedEnumeration,
  [$markerWidth]: svg$.AnimatedLength,
  [$orientAngle]: svg$.AnimatedAngle,
  [$orientType]: svg$.AnimatedEnumeration,
  [$refX]: svg$.AnimatedLength,
  [$refY]: svg$.AnimatedLength,
  [$preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
  [$viewBox]: svg$.AnimatedRect
}));
dart.setLibraryUri(svg$.MarkerElement, L68);
dart.defineLazy(svg$.MarkerElement, {
  /*svg$.MarkerElement.SVG_MARKERUNITS_STROKEWIDTH*/get SVG_MARKERUNITS_STROKEWIDTH() {
    return 2;
  },
  /*svg$.MarkerElement.SVG_MARKERUNITS_UNKNOWN*/get SVG_MARKERUNITS_UNKNOWN() {
    return 0;
  },
  /*svg$.MarkerElement.SVG_MARKERUNITS_USERSPACEONUSE*/get SVG_MARKERUNITS_USERSPACEONUSE() {
    return 1;
  },
  /*svg$.MarkerElement.SVG_MARKER_ORIENT_ANGLE*/get SVG_MARKER_ORIENT_ANGLE() {
    return 2;
  },
  /*svg$.MarkerElement.SVG_MARKER_ORIENT_AUTO*/get SVG_MARKER_ORIENT_AUTO() {
    return 1;
  },
  /*svg$.MarkerElement.SVG_MARKER_ORIENT_UNKNOWN*/get SVG_MARKER_ORIENT_UNKNOWN() {
    return 0;
  }
}, true);
dart.registerExtension("SVGMarkerElement", svg$.MarkerElement);
svg$.MaskElement = class MaskElement extends svg$.SvgElement {
  static new() {
    return svg$.MaskElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("mask"));
  }
  get [$height]() {
    return this.height;
  }
  get [$maskContentUnits]() {
    return this.maskContentUnits;
  }
  get [$maskUnits]() {
    return this.maskUnits;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
  get [$requiredExtensions]() {
    return this.requiredExtensions;
  }
  get [$systemLanguage]() {
    return this.systemLanguage;
  }
};
(svg$.MaskElement.created = function() {
  svg$.MaskElement.__proto__.created.call(this);
  ;
}).prototype = svg$.MaskElement.prototype;
dart.addTypeTests(svg$.MaskElement);
dart.addTypeCaches(svg$.MaskElement);
svg$.MaskElement[dart.implements] = () => [svg$.Tests];
dart.setGetterSignature(svg$.MaskElement, () => ({
  __proto__: dart.getGetters(svg$.MaskElement.__proto__),
  [$height]: svg$.AnimatedLength,
  [$maskContentUnits]: svg$.AnimatedEnumeration,
  [$maskUnits]: svg$.AnimatedEnumeration,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength,
  [$requiredExtensions]: svg$.StringList,
  [$systemLanguage]: svg$.StringList
}));
dart.setLibraryUri(svg$.MaskElement, L68);
dart.registerExtension("SVGMaskElement", svg$.MaskElement);
svg$.Matrix = class Matrix extends _interceptors.Interceptor {
  get [$a]() {
    return this.a;
  }
  set [$a](value) {
    this.a = value;
  }
  get [$b]() {
    return this.b;
  }
  set [$b](value) {
    this.b = value;
  }
  get [$c]() {
    return this.c;
  }
  set [$c](value) {
    this.c = value;
  }
  get [$d]() {
    return this.d;
  }
  set [$d](value) {
    this.d = value;
  }
  get [$e]() {
    return this.e;
  }
  set [$e](value) {
    this.e = value;
  }
  get [$f]() {
    return this.f;
  }
  set [$f](value) {
    this.f = value;
  }
  [$flipX](...args) {
    return this.flipX.apply(this, args);
  }
  [$flipY](...args) {
    return this.flipY.apply(this, args);
  }
  [$inverse](...args) {
    return this.inverse.apply(this, args);
  }
  [$multiply](...args) {
    return this.multiply.apply(this, args);
  }
  [$rotate](...args) {
    return this.rotate.apply(this, args);
  }
  [$rotateFromVector](...args) {
    return this.rotateFromVector.apply(this, args);
  }
  [$scale](...args) {
    return this.scale.apply(this, args);
  }
  [$scaleNonUniform](...args) {
    return this.scaleNonUniform.apply(this, args);
  }
  [$skewX](...args) {
    return this.skewX.apply(this, args);
  }
  [$skewY](...args) {
    return this.skewY.apply(this, args);
  }
  [$translate](...args) {
    return this.translate.apply(this, args);
  }
};
dart.addTypeTests(svg$.Matrix);
dart.addTypeCaches(svg$.Matrix);
dart.setMethodSignature(svg$.Matrix, () => ({
  __proto__: dart.getMethods(svg$.Matrix.__proto__),
  [$flipX]: dart.fnType(svg$.Matrix, []),
  [$flipY]: dart.fnType(svg$.Matrix, []),
  [$inverse]: dart.fnType(svg$.Matrix, []),
  [$multiply]: dart.fnType(svg$.Matrix, [svg$.Matrix]),
  [$rotate]: dart.fnType(svg$.Matrix, [core.num]),
  [$rotateFromVector]: dart.fnType(svg$.Matrix, [core.num, core.num]),
  [$scale]: dart.fnType(svg$.Matrix, [core.num]),
  [$scaleNonUniform]: dart.fnType(svg$.Matrix, [core.num, core.num]),
  [$skewX]: dart.fnType(svg$.Matrix, [core.num]),
  [$skewY]: dart.fnType(svg$.Matrix, [core.num]),
  [$translate]: dart.fnType(svg$.Matrix, [core.num, core.num])
}));
dart.setGetterSignature(svg$.Matrix, () => ({
  __proto__: dart.getGetters(svg$.Matrix.__proto__),
  [$a]: core.num,
  [$b]: core.num,
  [$c]: core.num,
  [$d]: core.num,
  [$e]: core.num,
  [$f]: core.num
}));
dart.setSetterSignature(svg$.Matrix, () => ({
  __proto__: dart.getSetters(svg$.Matrix.__proto__),
  [$a]: core.num,
  [$b]: core.num,
  [$c]: core.num,
  [$d]: core.num,
  [$e]: core.num,
  [$f]: core.num
}));
dart.setLibraryUri(svg$.Matrix, L68);
dart.registerExtension("SVGMatrix", svg$.Matrix);
svg$.MetadataElement = class MetadataElement extends svg$.SvgElement {};
(svg$.MetadataElement.created = function() {
  svg$.MetadataElement.__proto__.created.call(this);
  ;
}).prototype = svg$.MetadataElement.prototype;
dart.addTypeTests(svg$.MetadataElement);
dart.addTypeCaches(svg$.MetadataElement);
dart.setLibraryUri(svg$.MetadataElement, L68);
dart.registerExtension("SVGMetadataElement", svg$.MetadataElement);
svg$.Number = class Number extends _interceptors.Interceptor {
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
};
dart.addTypeTests(svg$.Number);
dart.addTypeCaches(svg$.Number);
dart.setGetterSignature(svg$.Number, () => ({
  __proto__: dart.getGetters(svg$.Number.__proto__),
  [$value]: core.num
}));
dart.setSetterSignature(svg$.Number, () => ({
  __proto__: dart.getSetters(svg$.Number.__proto__),
  [$value]: core.num
}));
dart.setLibraryUri(svg$.Number, L68);
dart.registerExtension("SVGNumber", svg$.Number);
const Interceptor_ListMixin$36$14 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$14.new = function() {
  Interceptor_ListMixin$36$14.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$14.prototype;
dart.applyMixin(Interceptor_ListMixin$36$14, collection.ListMixin$(svg$.Number));
const Interceptor_ImmutableListMixin$36$14 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$14 {};
(Interceptor_ImmutableListMixin$36$14.new = function() {
  Interceptor_ImmutableListMixin$36$14.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$14.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$14, html$.ImmutableListMixin$(svg$.Number));
svg$.NumberList = class NumberList extends Interceptor_ImmutableListMixin$36$14 {
  get [$length]() {
    return this.length;
  }
  get [$numberOfItems]() {
    return this.numberOfItems;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this.getItem(index);
  }
  [$_set](index, value$) {
    let value = value$;
    svg$.Number.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [__setter__$](...args) {
    return this.__setter__.apply(this, args);
  }
  [$appendItem](...args) {
    return this.appendItem.apply(this, args);
  }
  [$clear](...args) {
    return this.clear.apply(this, args);
  }
  [$getItem](...args) {
    return this.getItem.apply(this, args);
  }
  [$initialize](...args) {
    return this.initialize.apply(this, args);
  }
  [$insertItemBefore](...args) {
    return this.insertItemBefore.apply(this, args);
  }
  [$removeItem](...args) {
    return this.removeItem.apply(this, args);
  }
  [$replaceItem](...args) {
    return this.replaceItem.apply(this, args);
  }
};
svg$.NumberList.prototype[dart.isList] = true;
dart.addTypeTests(svg$.NumberList);
dart.addTypeCaches(svg$.NumberList);
svg$.NumberList[dart.implements] = () => [core.List$(svg$.Number)];
dart.setMethodSignature(svg$.NumberList, () => ({
  __proto__: dart.getMethods(svg$.NumberList.__proto__),
  [$_get]: dart.fnType(svg$.Number, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [__setter__$]: dart.fnType(dart.void, [core.int, svg$.Number]),
  [$appendItem]: dart.fnType(svg$.Number, [svg$.Number]),
  [$getItem]: dart.fnType(svg$.Number, [core.int]),
  [$initialize]: dart.fnType(svg$.Number, [svg$.Number]),
  [$insertItemBefore]: dart.fnType(svg$.Number, [svg$.Number, core.int]),
  [$removeItem]: dart.fnType(svg$.Number, [core.int]),
  [$replaceItem]: dart.fnType(svg$.Number, [svg$.Number, core.int])
}));
dart.setGetterSignature(svg$.NumberList, () => ({
  __proto__: dart.getGetters(svg$.NumberList.__proto__),
  [$length]: core.int,
  [$numberOfItems]: core.int
}));
dart.setSetterSignature(svg$.NumberList, () => ({
  __proto__: dart.getSetters(svg$.NumberList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(svg$.NumberList, L68);
dart.registerExtension("SVGNumberList", svg$.NumberList);
svg$.PathElement = class PathElement extends svg$.GeometryElement {
  static new() {
    return svg$.PathElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("path"));
  }
};
(svg$.PathElement.created = function() {
  svg$.PathElement.__proto__.created.call(this);
  ;
}).prototype = svg$.PathElement.prototype;
dart.addTypeTests(svg$.PathElement);
dart.addTypeCaches(svg$.PathElement);
dart.setLibraryUri(svg$.PathElement, L68);
dart.registerExtension("SVGPathElement", svg$.PathElement);
svg$.PatternElement = class PatternElement extends svg$.SvgElement {
  static new() {
    return svg$.PatternElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("pattern"));
  }
  get [$height]() {
    return this.height;
  }
  get [$patternContentUnits]() {
    return this.patternContentUnits;
  }
  get [$patternTransform]() {
    return this.patternTransform;
  }
  get [$patternUnits]() {
    return this.patternUnits;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
  get [$preserveAspectRatio]() {
    return this.preserveAspectRatio;
  }
  get [$viewBox]() {
    return this.viewBox;
  }
  get [$requiredExtensions]() {
    return this.requiredExtensions;
  }
  get [$systemLanguage]() {
    return this.systemLanguage;
  }
  get [$href]() {
    return this.href;
  }
};
(svg$.PatternElement.created = function() {
  svg$.PatternElement.__proto__.created.call(this);
  ;
}).prototype = svg$.PatternElement.prototype;
dart.addTypeTests(svg$.PatternElement);
dart.addTypeCaches(svg$.PatternElement);
svg$.PatternElement[dart.implements] = () => [svg$.FitToViewBox, svg$.UriReference, svg$.Tests];
dart.setGetterSignature(svg$.PatternElement, () => ({
  __proto__: dart.getGetters(svg$.PatternElement.__proto__),
  [$height]: svg$.AnimatedLength,
  [$patternContentUnits]: svg$.AnimatedEnumeration,
  [$patternTransform]: svg$.AnimatedTransformList,
  [$patternUnits]: svg$.AnimatedEnumeration,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength,
  [$preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
  [$viewBox]: svg$.AnimatedRect,
  [$requiredExtensions]: svg$.StringList,
  [$systemLanguage]: svg$.StringList,
  [$href]: svg$.AnimatedString
}));
dart.setLibraryUri(svg$.PatternElement, L68);
dart.registerExtension("SVGPatternElement", svg$.PatternElement);
svg$.Point = class Point extends _interceptors.Interceptor {
  get [$x]() {
    return this.x;
  }
  set [$x](value) {
    this.x = value;
  }
  get [$y]() {
    return this.y;
  }
  set [$y](value) {
    this.y = value;
  }
  [$matrixTransform](...args) {
    return this.matrixTransform.apply(this, args);
  }
};
dart.addTypeTests(svg$.Point);
dart.addTypeCaches(svg$.Point);
dart.setMethodSignature(svg$.Point, () => ({
  __proto__: dart.getMethods(svg$.Point.__proto__),
  [$matrixTransform]: dart.fnType(svg$.Point, [svg$.Matrix])
}));
dart.setGetterSignature(svg$.Point, () => ({
  __proto__: dart.getGetters(svg$.Point.__proto__),
  [$x]: core.num,
  [$y]: core.num
}));
dart.setSetterSignature(svg$.Point, () => ({
  __proto__: dart.getSetters(svg$.Point.__proto__),
  [$x]: core.num,
  [$y]: core.num
}));
dart.setLibraryUri(svg$.Point, L68);
dart.registerExtension("SVGPoint", svg$.Point);
svg$.PointList = class PointList extends _interceptors.Interceptor {
  get [$length]() {
    return this.length;
  }
  get [$numberOfItems]() {
    return this.numberOfItems;
  }
  [__setter__$](...args) {
    return this.__setter__.apply(this, args);
  }
  [$appendItem](...args) {
    return this.appendItem.apply(this, args);
  }
  [$clear](...args) {
    return this.clear.apply(this, args);
  }
  [$getItem](...args) {
    return this.getItem.apply(this, args);
  }
  [$initialize](...args) {
    return this.initialize.apply(this, args);
  }
  [$insertItemBefore](...args) {
    return this.insertItemBefore.apply(this, args);
  }
  [$removeItem](...args) {
    return this.removeItem.apply(this, args);
  }
  [$replaceItem](...args) {
    return this.replaceItem.apply(this, args);
  }
};
dart.addTypeTests(svg$.PointList);
dart.addTypeCaches(svg$.PointList);
dart.setMethodSignature(svg$.PointList, () => ({
  __proto__: dart.getMethods(svg$.PointList.__proto__),
  [__setter__$]: dart.fnType(dart.void, [core.int, svg$.Point]),
  [$appendItem]: dart.fnType(svg$.Point, [svg$.Point]),
  [$clear]: dart.fnType(dart.void, []),
  [$getItem]: dart.fnType(svg$.Point, [core.int]),
  [$initialize]: dart.fnType(svg$.Point, [svg$.Point]),
  [$insertItemBefore]: dart.fnType(svg$.Point, [svg$.Point, core.int]),
  [$removeItem]: dart.fnType(svg$.Point, [core.int]),
  [$replaceItem]: dart.fnType(svg$.Point, [svg$.Point, core.int])
}));
dart.setGetterSignature(svg$.PointList, () => ({
  __proto__: dart.getGetters(svg$.PointList.__proto__),
  [$length]: core.int,
  [$numberOfItems]: core.int
}));
dart.setLibraryUri(svg$.PointList, L68);
dart.registerExtension("SVGPointList", svg$.PointList);
svg$.PolygonElement = class PolygonElement extends svg$.GeometryElement {
  static new() {
    return svg$.PolygonElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("polygon"));
  }
  get [$animatedPoints]() {
    return this.animatedPoints;
  }
  get [$points]() {
    return this.points;
  }
};
(svg$.PolygonElement.created = function() {
  svg$.PolygonElement.__proto__.created.call(this);
  ;
}).prototype = svg$.PolygonElement.prototype;
dart.addTypeTests(svg$.PolygonElement);
dart.addTypeCaches(svg$.PolygonElement);
dart.setGetterSignature(svg$.PolygonElement, () => ({
  __proto__: dart.getGetters(svg$.PolygonElement.__proto__),
  [$animatedPoints]: svg$.PointList,
  [$points]: svg$.PointList
}));
dart.setLibraryUri(svg$.PolygonElement, L68);
dart.registerExtension("SVGPolygonElement", svg$.PolygonElement);
svg$.PolylineElement = class PolylineElement extends svg$.GeometryElement {
  static new() {
    return svg$.PolylineElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("polyline"));
  }
  get [$animatedPoints]() {
    return this.animatedPoints;
  }
  get [$points]() {
    return this.points;
  }
};
(svg$.PolylineElement.created = function() {
  svg$.PolylineElement.__proto__.created.call(this);
  ;
}).prototype = svg$.PolylineElement.prototype;
dart.addTypeTests(svg$.PolylineElement);
dart.addTypeCaches(svg$.PolylineElement);
dart.setGetterSignature(svg$.PolylineElement, () => ({
  __proto__: dart.getGetters(svg$.PolylineElement.__proto__),
  [$animatedPoints]: svg$.PointList,
  [$points]: svg$.PointList
}));
dart.setLibraryUri(svg$.PolylineElement, L68);
dart.registerExtension("SVGPolylineElement", svg$.PolylineElement);
svg$.PreserveAspectRatio = class PreserveAspectRatio extends _interceptors.Interceptor {
  get [$align]() {
    return this.align;
  }
  set [$align](value) {
    this.align = value;
  }
  get [$meetOrSlice]() {
    return this.meetOrSlice;
  }
  set [$meetOrSlice](value) {
    this.meetOrSlice = value;
  }
};
dart.addTypeTests(svg$.PreserveAspectRatio);
dart.addTypeCaches(svg$.PreserveAspectRatio);
dart.setGetterSignature(svg$.PreserveAspectRatio, () => ({
  __proto__: dart.getGetters(svg$.PreserveAspectRatio.__proto__),
  [$align]: core.int,
  [$meetOrSlice]: core.int
}));
dart.setSetterSignature(svg$.PreserveAspectRatio, () => ({
  __proto__: dart.getSetters(svg$.PreserveAspectRatio.__proto__),
  [$align]: core.int,
  [$meetOrSlice]: core.int
}));
dart.setLibraryUri(svg$.PreserveAspectRatio, L68);
dart.defineLazy(svg$.PreserveAspectRatio, {
  /*svg$.PreserveAspectRatio.SVG_MEETORSLICE_MEET*/get SVG_MEETORSLICE_MEET() {
    return 1;
  },
  /*svg$.PreserveAspectRatio.SVG_MEETORSLICE_SLICE*/get SVG_MEETORSLICE_SLICE() {
    return 2;
  },
  /*svg$.PreserveAspectRatio.SVG_MEETORSLICE_UNKNOWN*/get SVG_MEETORSLICE_UNKNOWN() {
    return 0;
  },
  /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE*/get SVG_PRESERVEASPECTRATIO_NONE() {
    return 1;
  },
  /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_UNKNOWN*/get SVG_PRESERVEASPECTRATIO_UNKNOWN() {
    return 0;
  },
  /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMAX*/get SVG_PRESERVEASPECTRATIO_XMAXYMAX() {
    return 10;
  },
  /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMID*/get SVG_PRESERVEASPECTRATIO_XMAXYMID() {
    return 7;
  },
  /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMIN*/get SVG_PRESERVEASPECTRATIO_XMAXYMIN() {
    return 4;
  },
  /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMAX*/get SVG_PRESERVEASPECTRATIO_XMIDYMAX() {
    return 9;
  },
  /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMID*/get SVG_PRESERVEASPECTRATIO_XMIDYMID() {
    return 6;
  },
  /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMIN*/get SVG_PRESERVEASPECTRATIO_XMIDYMIN() {
    return 3;
  },
  /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMAX*/get SVG_PRESERVEASPECTRATIO_XMINYMAX() {
    return 8;
  },
  /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMID*/get SVG_PRESERVEASPECTRATIO_XMINYMID() {
    return 5;
  },
  /*svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMIN*/get SVG_PRESERVEASPECTRATIO_XMINYMIN() {
    return 2;
  }
}, true);
dart.registerExtension("SVGPreserveAspectRatio", svg$.PreserveAspectRatio);
svg$.RadialGradientElement = class RadialGradientElement extends svg$._GradientElement {
  static new() {
    return svg$.RadialGradientElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("radialGradient"));
  }
  get [$cx]() {
    return this.cx;
  }
  get [$cy]() {
    return this.cy;
  }
  get [$fr]() {
    return this.fr;
  }
  get [$fx]() {
    return this.fx;
  }
  get [$fy]() {
    return this.fy;
  }
  get [$r]() {
    return this.r;
  }
};
(svg$.RadialGradientElement.created = function() {
  svg$.RadialGradientElement.__proto__.created.call(this);
  ;
}).prototype = svg$.RadialGradientElement.prototype;
dart.addTypeTests(svg$.RadialGradientElement);
dart.addTypeCaches(svg$.RadialGradientElement);
dart.setGetterSignature(svg$.RadialGradientElement, () => ({
  __proto__: dart.getGetters(svg$.RadialGradientElement.__proto__),
  [$cx]: svg$.AnimatedLength,
  [$cy]: svg$.AnimatedLength,
  [$fr]: svg$.AnimatedLength,
  [$fx]: svg$.AnimatedLength,
  [$fy]: svg$.AnimatedLength,
  [$r]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.RadialGradientElement, L68);
dart.registerExtension("SVGRadialGradientElement", svg$.RadialGradientElement);
svg$.Rect = class Rect extends _interceptors.Interceptor {
  get [$height]() {
    return this.height;
  }
  set [$height](value) {
    this.height = value;
  }
  get [$width]() {
    return this.width;
  }
  set [$width](value) {
    this.width = value;
  }
  get [$x]() {
    return this.x;
  }
  set [$x](value) {
    this.x = value;
  }
  get [$y]() {
    return this.y;
  }
  set [$y](value) {
    this.y = value;
  }
};
dart.addTypeTests(svg$.Rect);
dart.addTypeCaches(svg$.Rect);
dart.setGetterSignature(svg$.Rect, () => ({
  __proto__: dart.getGetters(svg$.Rect.__proto__),
  [$height]: core.num,
  [$width]: core.num,
  [$x]: core.num,
  [$y]: core.num
}));
dart.setSetterSignature(svg$.Rect, () => ({
  __proto__: dart.getSetters(svg$.Rect.__proto__),
  [$height]: core.num,
  [$width]: core.num,
  [$x]: core.num,
  [$y]: core.num
}));
dart.setLibraryUri(svg$.Rect, L68);
dart.registerExtension("SVGRect", svg$.Rect);
svg$.RectElement = class RectElement extends svg$.GeometryElement {
  static new() {
    return svg$.RectElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("rect"));
  }
  get [$height]() {
    return this.height;
  }
  get [$rx]() {
    return this.rx;
  }
  get [$ry]() {
    return this.ry;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
};
(svg$.RectElement.created = function() {
  svg$.RectElement.__proto__.created.call(this);
  ;
}).prototype = svg$.RectElement.prototype;
dart.addTypeTests(svg$.RectElement);
dart.addTypeCaches(svg$.RectElement);
dart.setGetterSignature(svg$.RectElement, () => ({
  __proto__: dart.getGetters(svg$.RectElement.__proto__),
  [$height]: svg$.AnimatedLength,
  [$rx]: svg$.AnimatedLength,
  [$ry]: svg$.AnimatedLength,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.RectElement, L68);
dart.registerExtension("SVGRectElement", svg$.RectElement);
svg$.ScriptElement = class ScriptElement extends svg$.SvgElement {
  static new() {
    return svg$.ScriptElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("script"));
  }
  get [$type]() {
    return this.type;
  }
  set [$type](value) {
    this.type = value;
  }
  get [$href]() {
    return this.href;
  }
};
(svg$.ScriptElement.created = function() {
  svg$.ScriptElement.__proto__.created.call(this);
  ;
}).prototype = svg$.ScriptElement.prototype;
dart.addTypeTests(svg$.ScriptElement);
dart.addTypeCaches(svg$.ScriptElement);
svg$.ScriptElement[dart.implements] = () => [svg$.UriReference];
dart.setGetterSignature(svg$.ScriptElement, () => ({
  __proto__: dart.getGetters(svg$.ScriptElement.__proto__),
  [$type]: core.String,
  [$href]: svg$.AnimatedString
}));
dart.setSetterSignature(svg$.ScriptElement, () => ({
  __proto__: dart.getSetters(svg$.ScriptElement.__proto__),
  [$type]: core.String
}));
dart.setLibraryUri(svg$.ScriptElement, L68);
dart.registerExtension("SVGScriptElement", svg$.ScriptElement);
svg$.SetElement = class SetElement extends svg$.AnimationElement {
  static new() {
    return svg$.SetElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("set"));
  }
  static get supported() {
    return dart.test(svg$.SvgElement.isTagSupported("set")) && svg$.SetElement.is(svg$.SvgElement.tag("set"));
  }
};
(svg$.SetElement.created = function() {
  svg$.SetElement.__proto__.created.call(this);
  ;
}).prototype = svg$.SetElement.prototype;
dart.addTypeTests(svg$.SetElement);
dart.addTypeCaches(svg$.SetElement);
dart.setLibraryUri(svg$.SetElement, L68);
dart.registerExtension("SVGSetElement", svg$.SetElement);
svg$.StopElement = class StopElement extends svg$.SvgElement {
  static new() {
    return svg$.StopElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("stop"));
  }
  get [$gradientOffset]() {
    return this.offset;
  }
};
(svg$.StopElement.created = function() {
  svg$.StopElement.__proto__.created.call(this);
  ;
}).prototype = svg$.StopElement.prototype;
dart.addTypeTests(svg$.StopElement);
dart.addTypeCaches(svg$.StopElement);
dart.setGetterSignature(svg$.StopElement, () => ({
  __proto__: dart.getGetters(svg$.StopElement.__proto__),
  [$gradientOffset]: svg$.AnimatedNumber
}));
dart.setLibraryUri(svg$.StopElement, L68);
dart.registerExtension("SVGStopElement", svg$.StopElement);
const Interceptor_ListMixin$36$15 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$15.new = function() {
  Interceptor_ListMixin$36$15.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$15.prototype;
dart.applyMixin(Interceptor_ListMixin$36$15, collection.ListMixin$(core.String));
const Interceptor_ImmutableListMixin$36$15 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$15 {};
(Interceptor_ImmutableListMixin$36$15.new = function() {
  Interceptor_ImmutableListMixin$36$15.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$15.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$15, html$.ImmutableListMixin$(core.String));
svg$.StringList = class StringList extends Interceptor_ImmutableListMixin$36$15 {
  get [$length]() {
    return this.length;
  }
  get [$numberOfItems]() {
    return this.numberOfItems;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this.getItem(index);
  }
  [$_set](index, value$) {
    let value = value$;
    core.String.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [__setter__$](...args) {
    return this.__setter__.apply(this, args);
  }
  [$appendItem](...args) {
    return this.appendItem.apply(this, args);
  }
  [$clear](...args) {
    return this.clear.apply(this, args);
  }
  [$getItem](...args) {
    return this.getItem.apply(this, args);
  }
  [$initialize](...args) {
    return this.initialize.apply(this, args);
  }
  [$insertItemBefore](...args) {
    return this.insertItemBefore.apply(this, args);
  }
  [$removeItem](...args) {
    return this.removeItem.apply(this, args);
  }
  [$replaceItem](...args) {
    return this.replaceItem.apply(this, args);
  }
};
svg$.StringList.prototype[dart.isList] = true;
dart.addTypeTests(svg$.StringList);
dart.addTypeCaches(svg$.StringList);
svg$.StringList[dart.implements] = () => [core.List$(core.String)];
dart.setMethodSignature(svg$.StringList, () => ({
  __proto__: dart.getMethods(svg$.StringList.__proto__),
  [$_get]: dart.fnType(core.String, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [__setter__$]: dart.fnType(dart.void, [core.int, core.String]),
  [$appendItem]: dart.fnType(core.String, [core.String]),
  [$getItem]: dart.fnType(core.String, [core.int]),
  [$initialize]: dart.fnType(core.String, [core.String]),
  [$insertItemBefore]: dart.fnType(core.String, [core.String, core.int]),
  [$removeItem]: dart.fnType(core.String, [core.int]),
  [$replaceItem]: dart.fnType(core.String, [core.String, core.int])
}));
dart.setGetterSignature(svg$.StringList, () => ({
  __proto__: dart.getGetters(svg$.StringList.__proto__),
  [$length]: core.int,
  [$numberOfItems]: core.int
}));
dart.setSetterSignature(svg$.StringList, () => ({
  __proto__: dart.getSetters(svg$.StringList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(svg$.StringList, L68);
dart.registerExtension("SVGStringList", svg$.StringList);
svg$.StyleElement = class StyleElement extends svg$.SvgElement {
  static new() {
    return svg$.StyleElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("style"));
  }
  get [$disabled]() {
    return this.disabled;
  }
  set [$disabled](value) {
    this.disabled = value;
  }
  get [$media]() {
    return this.media;
  }
  set [$media](value) {
    this.media = value;
  }
  get [$sheet]() {
    return this.sheet;
  }
  get [$type]() {
    return this.type;
  }
  set [$type](value) {
    this.type = value;
  }
};
(svg$.StyleElement.created = function() {
  svg$.StyleElement.__proto__.created.call(this);
  ;
}).prototype = svg$.StyleElement.prototype;
dart.addTypeTests(svg$.StyleElement);
dart.addTypeCaches(svg$.StyleElement);
dart.setGetterSignature(svg$.StyleElement, () => ({
  __proto__: dart.getGetters(svg$.StyleElement.__proto__),
  [$disabled]: core.bool,
  [$media]: core.String,
  [$sheet]: html$.StyleSheet,
  [$type]: core.String
}));
dart.setSetterSignature(svg$.StyleElement, () => ({
  __proto__: dart.getSetters(svg$.StyleElement.__proto__),
  [$disabled]: core.bool,
  [$media]: core.String,
  [$type]: core.String
}));
dart.setLibraryUri(svg$.StyleElement, L68);
dart.registerExtension("SVGStyleElement", svg$.StyleElement);
var _element$0 = dart.privateName(svg$, "_element");
svg$.AttributeClassSet = class AttributeClassSet extends html_common.CssClassSetImpl {
  readClasses() {
    let classname = this[_element$0][$attributes][$_get]("class");
    if (svg$.AnimatedString.is(classname)) {
      classname = svg$.AnimatedString.as(classname).baseVal;
    }
    let s = new (_IdentityHashSetOfStringL()).new();
    if (classname == null) {
      return s;
    }
    for (let name of classname[$split](" ")) {
      let trimmed = name[$trim]();
      if (!trimmed[$isEmpty]) {
        s.add(trimmed);
      }
    }
    return s;
  }
  writeClasses(s) {
    this[_element$0][$setAttribute]("class", s[$join](" "));
  }
};
(svg$.AttributeClassSet.new = function(_element) {
  this[_element$0] = _element;
  ;
}).prototype = svg$.AttributeClassSet.prototype;
dart.addTypeTests(svg$.AttributeClassSet);
dart.addTypeCaches(svg$.AttributeClassSet);
dart.setMethodSignature(svg$.AttributeClassSet, () => ({
  __proto__: dart.getMethods(svg$.AttributeClassSet.__proto__),
  readClasses: dart.fnType(core.Set$(core.String), []),
  writeClasses: dart.fnType(dart.void, [core.Set])
}));
dart.setLibraryUri(svg$.AttributeClassSet, L68);
dart.setFieldSignature(svg$.AttributeClassSet, () => ({
  __proto__: dart.getFields(svg$.AttributeClassSet.__proto__),
  [_element$0]: dart.finalFieldType(html$.Element)
}));
svg$.SvgSvgElement = class SvgSvgElement extends svg$.GraphicsElement {
  static new() {
    let el = svg$.SvgElement.tag("svg");
    el[$attributes][$_set]("version", "1.1");
    return svg$.SvgSvgElement.as(el);
  }
  get [$currentScale]() {
    return this.currentScale;
  }
  set [$currentScale](value) {
    this.currentScale = value;
  }
  get [$currentTranslate]() {
    return this.currentTranslate;
  }
  get [$height]() {
    return this.height;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
  [$animationsPaused](...args) {
    return this.animationsPaused.apply(this, args);
  }
  [$checkEnclosure](...args) {
    return this.checkEnclosure.apply(this, args);
  }
  [$checkIntersection](...args) {
    return this.checkIntersection.apply(this, args);
  }
  [$createSvgAngle](...args) {
    return this.createSVGAngle.apply(this, args);
  }
  [$createSvgLength](...args) {
    return this.createSVGLength.apply(this, args);
  }
  [$createSvgMatrix](...args) {
    return this.createSVGMatrix.apply(this, args);
  }
  [$createSvgNumber](...args) {
    return this.createSVGNumber.apply(this, args);
  }
  [$createSvgPoint](...args) {
    return this.createSVGPoint.apply(this, args);
  }
  [$createSvgRect](...args) {
    return this.createSVGRect.apply(this, args);
  }
  [$createSvgTransform](...args) {
    return this.createSVGTransform.apply(this, args);
  }
  [$createSvgTransformFromMatrix](...args) {
    return this.createSVGTransformFromMatrix.apply(this, args);
  }
  [$deselectAll](...args) {
    return this.deselectAll.apply(this, args);
  }
  [$forceRedraw](...args) {
    return this.forceRedraw.apply(this, args);
  }
  [$getCurrentTime](...args) {
    return this.getCurrentTime.apply(this, args);
  }
  [$getElementById](...args) {
    return this.getElementById.apply(this, args);
  }
  [$getEnclosureList](...args) {
    return this.getEnclosureList.apply(this, args);
  }
  [$getIntersectionList](...args) {
    return this.getIntersectionList.apply(this, args);
  }
  [$pauseAnimations](...args) {
    return this.pauseAnimations.apply(this, args);
  }
  [$setCurrentTime](...args) {
    return this.setCurrentTime.apply(this, args);
  }
  [$suspendRedraw](...args) {
    return this.suspendRedraw.apply(this, args);
  }
  [$unpauseAnimations](...args) {
    return this.unpauseAnimations.apply(this, args);
  }
  [$unsuspendRedraw](...args) {
    return this.unsuspendRedraw.apply(this, args);
  }
  [$unsuspendRedrawAll](...args) {
    return this.unsuspendRedrawAll.apply(this, args);
  }
  get [$preserveAspectRatio]() {
    return this.preserveAspectRatio;
  }
  get [$viewBox]() {
    return this.viewBox;
  }
  get [$zoomAndPan]() {
    return this.zoomAndPan;
  }
  set [$zoomAndPan](value) {
    this.zoomAndPan = value;
  }
};
(svg$.SvgSvgElement.created = function() {
  svg$.SvgSvgElement.__proto__.created.call(this);
  ;
}).prototype = svg$.SvgSvgElement.prototype;
dart.addTypeTests(svg$.SvgSvgElement);
dart.addTypeCaches(svg$.SvgSvgElement);
svg$.SvgSvgElement[dart.implements] = () => [svg$.FitToViewBox, svg$.ZoomAndPan];
dart.setMethodSignature(svg$.SvgSvgElement, () => ({
  __proto__: dart.getMethods(svg$.SvgSvgElement.__proto__),
  [$animationsPaused]: dart.fnType(core.bool, []),
  [$checkEnclosure]: dart.fnType(core.bool, [svg$.SvgElement, svg$.Rect]),
  [$checkIntersection]: dart.fnType(core.bool, [svg$.SvgElement, svg$.Rect]),
  [$createSvgAngle]: dart.fnType(svg$.Angle, []),
  [$createSvgLength]: dart.fnType(svg$.Length, []),
  [$createSvgMatrix]: dart.fnType(svg$.Matrix, []),
  [$createSvgNumber]: dart.fnType(svg$.Number, []),
  [$createSvgPoint]: dart.fnType(svg$.Point, []),
  [$createSvgRect]: dart.fnType(svg$.Rect, []),
  [$createSvgTransform]: dart.fnType(svg$.Transform, []),
  [$createSvgTransformFromMatrix]: dart.fnType(svg$.Transform, [svg$.Matrix]),
  [$deselectAll]: dart.fnType(dart.void, []),
  [$forceRedraw]: dart.fnType(dart.void, []),
  [$getCurrentTime]: dart.fnType(core.double, []),
  [$getElementById]: dart.fnType(html$.Element, [core.String]),
  [$getEnclosureList]: dart.fnType(core.List$(html$.Node), [svg$.Rect, svg$.SvgElement]),
  [$getIntersectionList]: dart.fnType(core.List$(html$.Node), [svg$.Rect, svg$.SvgElement]),
  [$pauseAnimations]: dart.fnType(dart.void, []),
  [$setCurrentTime]: dart.fnType(dart.void, [core.num]),
  [$suspendRedraw]: dart.fnType(core.int, [core.int]),
  [$unpauseAnimations]: dart.fnType(dart.void, []),
  [$unsuspendRedraw]: dart.fnType(dart.void, [core.int]),
  [$unsuspendRedrawAll]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(svg$.SvgSvgElement, () => ({
  __proto__: dart.getGetters(svg$.SvgSvgElement.__proto__),
  [$currentScale]: core.num,
  [$currentTranslate]: svg$.Point,
  [$height]: svg$.AnimatedLength,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength,
  [$preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
  [$viewBox]: svg$.AnimatedRect,
  [$zoomAndPan]: core.int
}));
dart.setSetterSignature(svg$.SvgSvgElement, () => ({
  __proto__: dart.getSetters(svg$.SvgSvgElement.__proto__),
  [$currentScale]: core.num,
  [$zoomAndPan]: core.int
}));
dart.setLibraryUri(svg$.SvgSvgElement, L68);
dart.registerExtension("SVGSVGElement", svg$.SvgSvgElement);
svg$.SwitchElement = class SwitchElement extends svg$.GraphicsElement {
  static new() {
    return svg$.SwitchElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("switch"));
  }
};
(svg$.SwitchElement.created = function() {
  svg$.SwitchElement.__proto__.created.call(this);
  ;
}).prototype = svg$.SwitchElement.prototype;
dart.addTypeTests(svg$.SwitchElement);
dart.addTypeCaches(svg$.SwitchElement);
dart.setLibraryUri(svg$.SwitchElement, L68);
dart.registerExtension("SVGSwitchElement", svg$.SwitchElement);
svg$.SymbolElement = class SymbolElement extends svg$.SvgElement {
  static new() {
    return svg$.SymbolElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("symbol"));
  }
  get [$preserveAspectRatio]() {
    return this.preserveAspectRatio;
  }
  get [$viewBox]() {
    return this.viewBox;
  }
};
(svg$.SymbolElement.created = function() {
  svg$.SymbolElement.__proto__.created.call(this);
  ;
}).prototype = svg$.SymbolElement.prototype;
dart.addTypeTests(svg$.SymbolElement);
dart.addTypeCaches(svg$.SymbolElement);
svg$.SymbolElement[dart.implements] = () => [svg$.FitToViewBox];
dart.setGetterSignature(svg$.SymbolElement, () => ({
  __proto__: dart.getGetters(svg$.SymbolElement.__proto__),
  [$preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
  [$viewBox]: svg$.AnimatedRect
}));
dart.setLibraryUri(svg$.SymbolElement, L68);
dart.registerExtension("SVGSymbolElement", svg$.SymbolElement);
svg$.TextContentElement = class TextContentElement extends svg$.GraphicsElement {
  get [$lengthAdjust]() {
    return this.lengthAdjust;
  }
  get [$textLength]() {
    return this.textLength;
  }
  [$getCharNumAtPosition](...args) {
    return this.getCharNumAtPosition.apply(this, args);
  }
  [$getComputedTextLength](...args) {
    return this.getComputedTextLength.apply(this, args);
  }
  [$getEndPositionOfChar](...args) {
    return this.getEndPositionOfChar.apply(this, args);
  }
  [$getExtentOfChar](...args) {
    return this.getExtentOfChar.apply(this, args);
  }
  [$getNumberOfChars](...args) {
    return this.getNumberOfChars.apply(this, args);
  }
  [$getRotationOfChar](...args) {
    return this.getRotationOfChar.apply(this, args);
  }
  [$getStartPositionOfChar](...args) {
    return this.getStartPositionOfChar.apply(this, args);
  }
  [$getSubStringLength](...args) {
    return this.getSubStringLength.apply(this, args);
  }
  [$selectSubString](...args) {
    return this.selectSubString.apply(this, args);
  }
};
(svg$.TextContentElement.created = function() {
  svg$.TextContentElement.__proto__.created.call(this);
  ;
}).prototype = svg$.TextContentElement.prototype;
dart.addTypeTests(svg$.TextContentElement);
dart.addTypeCaches(svg$.TextContentElement);
dart.setMethodSignature(svg$.TextContentElement, () => ({
  __proto__: dart.getMethods(svg$.TextContentElement.__proto__),
  [$getCharNumAtPosition]: dart.fnType(core.int, [svg$.Point]),
  [$getComputedTextLength]: dart.fnType(core.double, []),
  [$getEndPositionOfChar]: dart.fnType(svg$.Point, [core.int]),
  [$getExtentOfChar]: dart.fnType(svg$.Rect, [core.int]),
  [$getNumberOfChars]: dart.fnType(core.int, []),
  [$getRotationOfChar]: dart.fnType(core.double, [core.int]),
  [$getStartPositionOfChar]: dart.fnType(svg$.Point, [core.int]),
  [$getSubStringLength]: dart.fnType(core.double, [core.int, core.int]),
  [$selectSubString]: dart.fnType(dart.void, [core.int, core.int])
}));
dart.setGetterSignature(svg$.TextContentElement, () => ({
  __proto__: dart.getGetters(svg$.TextContentElement.__proto__),
  [$lengthAdjust]: svg$.AnimatedEnumeration,
  [$textLength]: svg$.AnimatedLength
}));
dart.setLibraryUri(svg$.TextContentElement, L68);
dart.defineLazy(svg$.TextContentElement, {
  /*svg$.TextContentElement.LENGTHADJUST_SPACING*/get LENGTHADJUST_SPACING() {
    return 1;
  },
  /*svg$.TextContentElement.LENGTHADJUST_SPACINGANDGLYPHS*/get LENGTHADJUST_SPACINGANDGLYPHS() {
    return 2;
  },
  /*svg$.TextContentElement.LENGTHADJUST_UNKNOWN*/get LENGTHADJUST_UNKNOWN() {
    return 0;
  }
}, true);
dart.registerExtension("SVGTextContentElement", svg$.TextContentElement);
svg$.TextPositioningElement = class TextPositioningElement extends svg$.TextContentElement {
  get [$dx]() {
    return this.dx;
  }
  get [$dy]() {
    return this.dy;
  }
  get [$rotate]() {
    return this.rotate;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
};
(svg$.TextPositioningElement.created = function() {
  svg$.TextPositioningElement.__proto__.created.call(this);
  ;
}).prototype = svg$.TextPositioningElement.prototype;
dart.addTypeTests(svg$.TextPositioningElement);
dart.addTypeCaches(svg$.TextPositioningElement);
dart.setGetterSignature(svg$.TextPositioningElement, () => ({
  __proto__: dart.getGetters(svg$.TextPositioningElement.__proto__),
  [$dx]: svg$.AnimatedLengthList,
  [$dy]: svg$.AnimatedLengthList,
  [$rotate]: svg$.AnimatedNumberList,
  [$x]: svg$.AnimatedLengthList,
  [$y]: svg$.AnimatedLengthList
}));
dart.setLibraryUri(svg$.TextPositioningElement, L68);
dart.registerExtension("SVGTextPositioningElement", svg$.TextPositioningElement);
svg$.TSpanElement = class TSpanElement extends svg$.TextPositioningElement {
  static new() {
    return svg$.TSpanElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("tspan"));
  }
};
(svg$.TSpanElement.created = function() {
  svg$.TSpanElement.__proto__.created.call(this);
  ;
}).prototype = svg$.TSpanElement.prototype;
dart.addTypeTests(svg$.TSpanElement);
dart.addTypeCaches(svg$.TSpanElement);
dart.setLibraryUri(svg$.TSpanElement, L68);
dart.registerExtension("SVGTSpanElement", svg$.TSpanElement);
svg$.Tests = class Tests extends _interceptors.Interceptor {
  get requiredExtensions() {
    return this.requiredExtensions;
  }
  get systemLanguage() {
    return this.systemLanguage;
  }
};
dart.addTypeTests(svg$.Tests);
dart.addTypeCaches(svg$.Tests);
dart.setGetterSignature(svg$.Tests, () => ({
  __proto__: dart.getGetters(svg$.Tests.__proto__),
  requiredExtensions: svg$.StringList,
  [$requiredExtensions]: svg$.StringList,
  systemLanguage: svg$.StringList,
  [$systemLanguage]: svg$.StringList
}));
dart.setLibraryUri(svg$.Tests, L68);
dart.defineExtensionAccessors(svg$.Tests, ['requiredExtensions', 'systemLanguage']);
svg$.TextElement = class TextElement extends svg$.TextPositioningElement {
  static new() {
    return svg$.TextElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("text"));
  }
};
(svg$.TextElement.created = function() {
  svg$.TextElement.__proto__.created.call(this);
  ;
}).prototype = svg$.TextElement.prototype;
dart.addTypeTests(svg$.TextElement);
dart.addTypeCaches(svg$.TextElement);
dart.setLibraryUri(svg$.TextElement, L68);
dart.registerExtension("SVGTextElement", svg$.TextElement);
svg$.TextPathElement = class TextPathElement extends svg$.TextContentElement {
  get [$method]() {
    return this.method;
  }
  get [$spacing]() {
    return this.spacing;
  }
  get [$startOffset]() {
    return this.startOffset;
  }
  get [$href]() {
    return this.href;
  }
};
(svg$.TextPathElement.created = function() {
  svg$.TextPathElement.__proto__.created.call(this);
  ;
}).prototype = svg$.TextPathElement.prototype;
dart.addTypeTests(svg$.TextPathElement);
dart.addTypeCaches(svg$.TextPathElement);
svg$.TextPathElement[dart.implements] = () => [svg$.UriReference];
dart.setGetterSignature(svg$.TextPathElement, () => ({
  __proto__: dart.getGetters(svg$.TextPathElement.__proto__),
  [$method]: svg$.AnimatedEnumeration,
  [$spacing]: svg$.AnimatedEnumeration,
  [$startOffset]: svg$.AnimatedLength,
  [$href]: svg$.AnimatedString
}));
dart.setLibraryUri(svg$.TextPathElement, L68);
dart.defineLazy(svg$.TextPathElement, {
  /*svg$.TextPathElement.TEXTPATH_METHODTYPE_ALIGN*/get TEXTPATH_METHODTYPE_ALIGN() {
    return 1;
  },
  /*svg$.TextPathElement.TEXTPATH_METHODTYPE_STRETCH*/get TEXTPATH_METHODTYPE_STRETCH() {
    return 2;
  },
  /*svg$.TextPathElement.TEXTPATH_METHODTYPE_UNKNOWN*/get TEXTPATH_METHODTYPE_UNKNOWN() {
    return 0;
  },
  /*svg$.TextPathElement.TEXTPATH_SPACINGTYPE_AUTO*/get TEXTPATH_SPACINGTYPE_AUTO() {
    return 1;
  },
  /*svg$.TextPathElement.TEXTPATH_SPACINGTYPE_EXACT*/get TEXTPATH_SPACINGTYPE_EXACT() {
    return 2;
  },
  /*svg$.TextPathElement.TEXTPATH_SPACINGTYPE_UNKNOWN*/get TEXTPATH_SPACINGTYPE_UNKNOWN() {
    return 0;
  }
}, true);
dart.registerExtension("SVGTextPathElement", svg$.TextPathElement);
svg$.TitleElement = class TitleElement extends svg$.SvgElement {
  static new() {
    return svg$.TitleElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("title"));
  }
};
(svg$.TitleElement.created = function() {
  svg$.TitleElement.__proto__.created.call(this);
  ;
}).prototype = svg$.TitleElement.prototype;
dart.addTypeTests(svg$.TitleElement);
dart.addTypeCaches(svg$.TitleElement);
dart.setLibraryUri(svg$.TitleElement, L68);
dart.registerExtension("SVGTitleElement", svg$.TitleElement);
svg$.Transform = class Transform extends _interceptors.Interceptor {
  get [$angle]() {
    return this.angle;
  }
  get [$matrix]() {
    return this.matrix;
  }
  get [$type]() {
    return this.type;
  }
  [$setMatrix](...args) {
    return this.setMatrix.apply(this, args);
  }
  [$setRotate](...args) {
    return this.setRotate.apply(this, args);
  }
  [$setScale](...args) {
    return this.setScale.apply(this, args);
  }
  [$setSkewX](...args) {
    return this.setSkewX.apply(this, args);
  }
  [$setSkewY](...args) {
    return this.setSkewY.apply(this, args);
  }
  [$setTranslate](...args) {
    return this.setTranslate.apply(this, args);
  }
};
dart.addTypeTests(svg$.Transform);
dart.addTypeCaches(svg$.Transform);
dart.setMethodSignature(svg$.Transform, () => ({
  __proto__: dart.getMethods(svg$.Transform.__proto__),
  [$setMatrix]: dart.fnType(dart.void, [svg$.Matrix]),
  [$setRotate]: dart.fnType(dart.void, [core.num, core.num, core.num]),
  [$setScale]: dart.fnType(dart.void, [core.num, core.num]),
  [$setSkewX]: dart.fnType(dart.void, [core.num]),
  [$setSkewY]: dart.fnType(dart.void, [core.num]),
  [$setTranslate]: dart.fnType(dart.void, [core.num, core.num])
}));
dart.setGetterSignature(svg$.Transform, () => ({
  __proto__: dart.getGetters(svg$.Transform.__proto__),
  [$angle]: core.num,
  [$matrix]: svg$.Matrix,
  [$type]: core.int
}));
dart.setLibraryUri(svg$.Transform, L68);
dart.defineLazy(svg$.Transform, {
  /*svg$.Transform.SVG_TRANSFORM_MATRIX*/get SVG_TRANSFORM_MATRIX() {
    return 1;
  },
  /*svg$.Transform.SVG_TRANSFORM_ROTATE*/get SVG_TRANSFORM_ROTATE() {
    return 4;
  },
  /*svg$.Transform.SVG_TRANSFORM_SCALE*/get SVG_TRANSFORM_SCALE() {
    return 3;
  },
  /*svg$.Transform.SVG_TRANSFORM_SKEWX*/get SVG_TRANSFORM_SKEWX() {
    return 5;
  },
  /*svg$.Transform.SVG_TRANSFORM_SKEWY*/get SVG_TRANSFORM_SKEWY() {
    return 6;
  },
  /*svg$.Transform.SVG_TRANSFORM_TRANSLATE*/get SVG_TRANSFORM_TRANSLATE() {
    return 2;
  },
  /*svg$.Transform.SVG_TRANSFORM_UNKNOWN*/get SVG_TRANSFORM_UNKNOWN() {
    return 0;
  }
}, true);
dart.registerExtension("SVGTransform", svg$.Transform);
const Interceptor_ListMixin$36$16 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$16.new = function() {
  Interceptor_ListMixin$36$16.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$16.prototype;
dart.applyMixin(Interceptor_ListMixin$36$16, collection.ListMixin$(svg$.Transform));
const Interceptor_ImmutableListMixin$36$16 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$16 {};
(Interceptor_ImmutableListMixin$36$16.new = function() {
  Interceptor_ImmutableListMixin$36$16.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$16.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$16, html$.ImmutableListMixin$(svg$.Transform));
svg$.TransformList = class TransformList extends Interceptor_ImmutableListMixin$36$16 {
  get [$length]() {
    return this.length;
  }
  get [$numberOfItems]() {
    return this.numberOfItems;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this.getItem(index);
  }
  [$_set](index, value$) {
    let value = value$;
    svg$.Transform.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [__setter__$](...args) {
    return this.__setter__.apply(this, args);
  }
  [$appendItem](...args) {
    return this.appendItem.apply(this, args);
  }
  [$clear](...args) {
    return this.clear.apply(this, args);
  }
  [$consolidate](...args) {
    return this.consolidate.apply(this, args);
  }
  [$createSvgTransformFromMatrix](...args) {
    return this.createSVGTransformFromMatrix.apply(this, args);
  }
  [$getItem](...args) {
    return this.getItem.apply(this, args);
  }
  [$initialize](...args) {
    return this.initialize.apply(this, args);
  }
  [$insertItemBefore](...args) {
    return this.insertItemBefore.apply(this, args);
  }
  [$removeItem](...args) {
    return this.removeItem.apply(this, args);
  }
  [$replaceItem](...args) {
    return this.replaceItem.apply(this, args);
  }
};
svg$.TransformList.prototype[dart.isList] = true;
dart.addTypeTests(svg$.TransformList);
dart.addTypeCaches(svg$.TransformList);
svg$.TransformList[dart.implements] = () => [core.List$(svg$.Transform)];
dart.setMethodSignature(svg$.TransformList, () => ({
  __proto__: dart.getMethods(svg$.TransformList.__proto__),
  [$_get]: dart.fnType(svg$.Transform, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [__setter__$]: dart.fnType(dart.void, [core.int, svg$.Transform]),
  [$appendItem]: dart.fnType(svg$.Transform, [svg$.Transform]),
  [$consolidate]: dart.fnType(svg$.Transform, []),
  [$createSvgTransformFromMatrix]: dart.fnType(svg$.Transform, [svg$.Matrix]),
  [$getItem]: dart.fnType(svg$.Transform, [core.int]),
  [$initialize]: dart.fnType(svg$.Transform, [svg$.Transform]),
  [$insertItemBefore]: dart.fnType(svg$.Transform, [svg$.Transform, core.int]),
  [$removeItem]: dart.fnType(svg$.Transform, [core.int]),
  [$replaceItem]: dart.fnType(svg$.Transform, [svg$.Transform, core.int])
}));
dart.setGetterSignature(svg$.TransformList, () => ({
  __proto__: dart.getGetters(svg$.TransformList.__proto__),
  [$length]: core.int,
  [$numberOfItems]: core.int
}));
dart.setSetterSignature(svg$.TransformList, () => ({
  __proto__: dart.getSetters(svg$.TransformList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(svg$.TransformList, L68);
dart.registerExtension("SVGTransformList", svg$.TransformList);
svg$.UnitTypes = class UnitTypes extends _interceptors.Interceptor {};
dart.addTypeTests(svg$.UnitTypes);
dart.addTypeCaches(svg$.UnitTypes);
dart.setLibraryUri(svg$.UnitTypes, L68);
dart.defineLazy(svg$.UnitTypes, {
  /*svg$.UnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX*/get SVG_UNIT_TYPE_OBJECTBOUNDINGBOX() {
    return 2;
  },
  /*svg$.UnitTypes.SVG_UNIT_TYPE_UNKNOWN*/get SVG_UNIT_TYPE_UNKNOWN() {
    return 0;
  },
  /*svg$.UnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE*/get SVG_UNIT_TYPE_USERSPACEONUSE() {
    return 1;
  }
}, true);
dart.registerExtension("SVGUnitTypes", svg$.UnitTypes);
svg$.UriReference = class UriReference extends _interceptors.Interceptor {
  get href() {
    return this.href;
  }
};
dart.addTypeTests(svg$.UriReference);
dart.addTypeCaches(svg$.UriReference);
dart.setGetterSignature(svg$.UriReference, () => ({
  __proto__: dart.getGetters(svg$.UriReference.__proto__),
  href: svg$.AnimatedString,
  [$href]: svg$.AnimatedString
}));
dart.setLibraryUri(svg$.UriReference, L68);
dart.defineExtensionAccessors(svg$.UriReference, ['href']);
svg$.UseElement = class UseElement extends svg$.GraphicsElement {
  static new() {
    return svg$.UseElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("use"));
  }
  get [$height]() {
    return this.height;
  }
  get [$width]() {
    return this.width;
  }
  get [$x]() {
    return this.x;
  }
  get [$y]() {
    return this.y;
  }
  get [$href]() {
    return this.href;
  }
};
(svg$.UseElement.created = function() {
  svg$.UseElement.__proto__.created.call(this);
  ;
}).prototype = svg$.UseElement.prototype;
dart.addTypeTests(svg$.UseElement);
dart.addTypeCaches(svg$.UseElement);
svg$.UseElement[dart.implements] = () => [svg$.UriReference];
dart.setGetterSignature(svg$.UseElement, () => ({
  __proto__: dart.getGetters(svg$.UseElement.__proto__),
  [$height]: svg$.AnimatedLength,
  [$width]: svg$.AnimatedLength,
  [$x]: svg$.AnimatedLength,
  [$y]: svg$.AnimatedLength,
  [$href]: svg$.AnimatedString
}));
dart.setLibraryUri(svg$.UseElement, L68);
dart.registerExtension("SVGUseElement", svg$.UseElement);
svg$.ViewElement = class ViewElement extends svg$.SvgElement {
  static new() {
    return svg$.ViewElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("view"));
  }
  get [$preserveAspectRatio]() {
    return this.preserveAspectRatio;
  }
  get [$viewBox]() {
    return this.viewBox;
  }
  get [$zoomAndPan]() {
    return this.zoomAndPan;
  }
  set [$zoomAndPan](value) {
    this.zoomAndPan = value;
  }
};
(svg$.ViewElement.created = function() {
  svg$.ViewElement.__proto__.created.call(this);
  ;
}).prototype = svg$.ViewElement.prototype;
dart.addTypeTests(svg$.ViewElement);
dart.addTypeCaches(svg$.ViewElement);
svg$.ViewElement[dart.implements] = () => [svg$.FitToViewBox, svg$.ZoomAndPan];
dart.setGetterSignature(svg$.ViewElement, () => ({
  __proto__: dart.getGetters(svg$.ViewElement.__proto__),
  [$preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
  [$viewBox]: svg$.AnimatedRect,
  [$zoomAndPan]: core.int
}));
dart.setSetterSignature(svg$.ViewElement, () => ({
  __proto__: dart.getSetters(svg$.ViewElement.__proto__),
  [$zoomAndPan]: core.int
}));
dart.setLibraryUri(svg$.ViewElement, L68);
dart.registerExtension("SVGViewElement", svg$.ViewElement);
svg$.ZoomAndPan = class ZoomAndPan extends _interceptors.Interceptor {
  get zoomAndPan() {
    return this.zoomAndPan;
  }
  set zoomAndPan(value) {
    this.zoomAndPan = value;
  }
};
dart.addTypeTests(svg$.ZoomAndPan);
dart.addTypeCaches(svg$.ZoomAndPan);
dart.setGetterSignature(svg$.ZoomAndPan, () => ({
  __proto__: dart.getGetters(svg$.ZoomAndPan.__proto__),
  zoomAndPan: core.int,
  [$zoomAndPan]: core.int
}));
dart.setSetterSignature(svg$.ZoomAndPan, () => ({
  __proto__: dart.getSetters(svg$.ZoomAndPan.__proto__),
  zoomAndPan: core.int,
  [$zoomAndPan]: core.int
}));
dart.setLibraryUri(svg$.ZoomAndPan, L68);
dart.defineExtensionAccessors(svg$.ZoomAndPan, ['zoomAndPan']);
dart.defineLazy(svg$.ZoomAndPan, {
  /*svg$.ZoomAndPan.SVG_ZOOMANDPAN_DISABLE*/get SVG_ZOOMANDPAN_DISABLE() {
    return 1;
  },
  /*svg$.ZoomAndPan.SVG_ZOOMANDPAN_MAGNIFY*/get SVG_ZOOMANDPAN_MAGNIFY() {
    return 2;
  },
  /*svg$.ZoomAndPan.SVG_ZOOMANDPAN_UNKNOWN*/get SVG_ZOOMANDPAN_UNKNOWN() {
    return 0;
  }
}, true);
svg$._SVGFEDropShadowElement = class _SVGFEDropShadowElement extends svg$.SvgElement {};
(svg$._SVGFEDropShadowElement.created = function() {
  svg$._SVGFEDropShadowElement.__proto__.created.call(this);
  ;
}).prototype = svg$._SVGFEDropShadowElement.prototype;
dart.addTypeTests(svg$._SVGFEDropShadowElement);
dart.addTypeCaches(svg$._SVGFEDropShadowElement);
svg$._SVGFEDropShadowElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
dart.setLibraryUri(svg$._SVGFEDropShadowElement, L68);
dart.registerExtension("SVGFEDropShadowElement", svg$._SVGFEDropShadowElement);
svg$._SVGMPathElement = class _SVGMPathElement extends svg$.SvgElement {
  static new() {
    return svg$._SVGMPathElement.as(svg$._SvgElementFactoryProvider.createSvgElement_tag("mpath"));
  }
};
(svg$._SVGMPathElement.created = function() {
  svg$._SVGMPathElement.__proto__.created.call(this);
  ;
}).prototype = svg$._SVGMPathElement.prototype;
dart.addTypeTests(svg$._SVGMPathElement);
dart.addTypeCaches(svg$._SVGMPathElement);
svg$._SVGMPathElement[dart.implements] = () => [svg$.UriReference];
dart.setLibraryUri(svg$._SVGMPathElement, L68);
dart.registerExtension("SVGMPathElement", svg$._SVGMPathElement);
var _connect = dart.privateName(web_audio, "_connect");
web_audio.AudioNode = class AudioNode extends html$.EventTarget {
  get [$channelCount]() {
    return this.channelCount;
  }
  set [$channelCount](value) {
    this.channelCount = value;
  }
  get [$channelCountMode]() {
    return this.channelCountMode;
  }
  set [$channelCountMode](value) {
    this.channelCountMode = value;
  }
  get [$channelInterpretation]() {
    return this.channelInterpretation;
  }
  set [$channelInterpretation](value) {
    this.channelInterpretation = value;
  }
  get [$context]() {
    return this.context;
  }
  get [$numberOfInputs]() {
    return this.numberOfInputs;
  }
  get [$numberOfOutputs]() {
    return this.numberOfOutputs;
  }
  [_connect](...args) {
    return this.connect.apply(this, args);
  }
  [$disconnect](...args) {
    return this.disconnect.apply(this, args);
  }
  [$connectNode](destination, output = 0, input = 0) {
    this[_connect](destination, output, input);
  }
  [$connectParam](destination, output = 0) {
    this[_connect](destination, output);
  }
};
dart.addTypeTests(web_audio.AudioNode);
dart.addTypeCaches(web_audio.AudioNode);
dart.setMethodSignature(web_audio.AudioNode, () => ({
  __proto__: dart.getMethods(web_audio.AudioNode.__proto__),
  [_connect]: dart.fnType(web_audio.AudioNode, [dart.dynamic], [core.int, core.int]),
  [$disconnect]: dart.fnType(dart.void, [], [dart.dynamic, core.int, core.int]),
  [$connectNode]: dart.fnType(dart.void, [web_audio.AudioNode], [core.int, core.int]),
  [$connectParam]: dart.fnType(dart.void, [web_audio.AudioParam], [core.int])
}));
dart.setGetterSignature(web_audio.AudioNode, () => ({
  __proto__: dart.getGetters(web_audio.AudioNode.__proto__),
  [$channelCount]: core.int,
  [$channelCountMode]: core.String,
  [$channelInterpretation]: core.String,
  [$context]: web_audio.BaseAudioContext,
  [$numberOfInputs]: core.int,
  [$numberOfOutputs]: core.int
}));
dart.setSetterSignature(web_audio.AudioNode, () => ({
  __proto__: dart.getSetters(web_audio.AudioNode.__proto__),
  [$channelCount]: core.int,
  [$channelCountMode]: core.String,
  [$channelInterpretation]: core.String
}));
dart.setLibraryUri(web_audio.AudioNode, L69);
dart.registerExtension("AudioNode", web_audio.AudioNode);
web_audio.AnalyserNode = class AnalyserNode$ extends web_audio.AudioNode {
  static new(context, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.AnalyserNode._create_1(context, options_1);
    }
    return web_audio.AnalyserNode._create_2(context);
  }
  static _create_1(context, options) {
    return new AnalyserNode(context, options);
  }
  static _create_2(context) {
    return new AnalyserNode(context);
  }
  get [$fftSize]() {
    return this.fftSize;
  }
  set [$fftSize](value) {
    this.fftSize = value;
  }
  get [$frequencyBinCount]() {
    return this.frequencyBinCount;
  }
  get [$maxDecibels]() {
    return this.maxDecibels;
  }
  set [$maxDecibels](value) {
    this.maxDecibels = value;
  }
  get [$minDecibels]() {
    return this.minDecibels;
  }
  set [$minDecibels](value) {
    this.minDecibels = value;
  }
  get [$smoothingTimeConstant]() {
    return this.smoothingTimeConstant;
  }
  set [$smoothingTimeConstant](value) {
    this.smoothingTimeConstant = value;
  }
  [$getByteFrequencyData](...args) {
    return this.getByteFrequencyData.apply(this, args);
  }
  [$getByteTimeDomainData](...args) {
    return this.getByteTimeDomainData.apply(this, args);
  }
  [$getFloatFrequencyData](...args) {
    return this.getFloatFrequencyData.apply(this, args);
  }
  [$getFloatTimeDomainData](...args) {
    return this.getFloatTimeDomainData.apply(this, args);
  }
};
dart.addTypeTests(web_audio.AnalyserNode);
dart.addTypeCaches(web_audio.AnalyserNode);
dart.setMethodSignature(web_audio.AnalyserNode, () => ({
  __proto__: dart.getMethods(web_audio.AnalyserNode.__proto__),
  [$getByteFrequencyData]: dart.fnType(dart.void, [typed_data.Uint8List]),
  [$getByteTimeDomainData]: dart.fnType(dart.void, [typed_data.Uint8List]),
  [$getFloatFrequencyData]: dart.fnType(dart.void, [typed_data.Float32List]),
  [$getFloatTimeDomainData]: dart.fnType(dart.void, [typed_data.Float32List])
}));
dart.setGetterSignature(web_audio.AnalyserNode, () => ({
  __proto__: dart.getGetters(web_audio.AnalyserNode.__proto__),
  [$fftSize]: core.int,
  [$frequencyBinCount]: core.int,
  [$maxDecibels]: core.num,
  [$minDecibels]: core.num,
  [$smoothingTimeConstant]: core.num
}));
dart.setSetterSignature(web_audio.AnalyserNode, () => ({
  __proto__: dart.getSetters(web_audio.AnalyserNode.__proto__),
  [$fftSize]: core.int,
  [$maxDecibels]: core.num,
  [$minDecibels]: core.num,
  [$smoothingTimeConstant]: core.num
}));
dart.setLibraryUri(web_audio.AnalyserNode, L69);
dart.registerExtension("AnalyserNode", web_audio.AnalyserNode);
dart.registerExtension("RealtimeAnalyserNode", web_audio.AnalyserNode);
web_audio.AudioBuffer = class AudioBuffer$ extends _interceptors.Interceptor {
  static new(options) {
    let options_1 = html_common.convertDartToNative_Dictionary(options);
    return web_audio.AudioBuffer._create_1(options_1);
  }
  static _create_1(options) {
    return new AudioBuffer(options);
  }
  get [$duration]() {
    return this.duration;
  }
  get [$length]() {
    return this.length;
  }
  get [$numberOfChannels]() {
    return this.numberOfChannels;
  }
  get [$sampleRate]() {
    return this.sampleRate;
  }
  [$copyFromChannel](...args) {
    return this.copyFromChannel.apply(this, args);
  }
  [$copyToChannel](...args) {
    return this.copyToChannel.apply(this, args);
  }
  [$getChannelData](...args) {
    return this.getChannelData.apply(this, args);
  }
};
dart.addTypeTests(web_audio.AudioBuffer);
dart.addTypeCaches(web_audio.AudioBuffer);
dart.setMethodSignature(web_audio.AudioBuffer, () => ({
  __proto__: dart.getMethods(web_audio.AudioBuffer.__proto__),
  [$copyFromChannel]: dart.fnType(dart.void, [typed_data.Float32List, core.int], [core.int]),
  [$copyToChannel]: dart.fnType(dart.void, [typed_data.Float32List, core.int], [core.int]),
  [$getChannelData]: dart.fnType(typed_data.Float32List, [core.int])
}));
dart.setGetterSignature(web_audio.AudioBuffer, () => ({
  __proto__: dart.getGetters(web_audio.AudioBuffer.__proto__),
  [$duration]: core.num,
  [$length]: core.int,
  [$numberOfChannels]: core.int,
  [$sampleRate]: core.num
}));
dart.setLibraryUri(web_audio.AudioBuffer, L69);
dart.registerExtension("AudioBuffer", web_audio.AudioBuffer);
web_audio.AudioScheduledSourceNode = class AudioScheduledSourceNode extends web_audio.AudioNode {
  [$start2](...args) {
    return this.start.apply(this, args);
  }
  [$stop](...args) {
    return this.stop.apply(this, args);
  }
  get [$onEnded]() {
    return web_audio.AudioScheduledSourceNode.endedEvent.forTarget(this);
  }
};
dart.addTypeTests(web_audio.AudioScheduledSourceNode);
dart.addTypeCaches(web_audio.AudioScheduledSourceNode);
dart.setMethodSignature(web_audio.AudioScheduledSourceNode, () => ({
  __proto__: dart.getMethods(web_audio.AudioScheduledSourceNode.__proto__),
  [$start2]: dart.fnType(dart.void, [], [core.num]),
  [$stop]: dart.fnType(dart.void, [], [core.num])
}));
dart.setGetterSignature(web_audio.AudioScheduledSourceNode, () => ({
  __proto__: dart.getGetters(web_audio.AudioScheduledSourceNode.__proto__),
  [$onEnded]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(web_audio.AudioScheduledSourceNode, L69);
dart.defineLazy(web_audio.AudioScheduledSourceNode, {
  /*web_audio.AudioScheduledSourceNode.endedEvent*/get endedEvent() {
    return C252 || CT.C252;
  }
}, true);
dart.registerExtension("AudioScheduledSourceNode", web_audio.AudioScheduledSourceNode);
web_audio.AudioBufferSourceNode = class AudioBufferSourceNode$ extends web_audio.AudioScheduledSourceNode {
  static new(context, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.AudioBufferSourceNode._create_1(context, options_1);
    }
    return web_audio.AudioBufferSourceNode._create_2(context);
  }
  static _create_1(context, options) {
    return new AudioBufferSourceNode(context, options);
  }
  static _create_2(context) {
    return new AudioBufferSourceNode(context);
  }
  get [$buffer]() {
    return this.buffer;
  }
  set [$buffer](value) {
    this.buffer = value;
  }
  get [$detune]() {
    return this.detune;
  }
  get [$loop]() {
    return this.loop;
  }
  set [$loop](value) {
    this.loop = value;
  }
  get [$loopEnd]() {
    return this.loopEnd;
  }
  set [$loopEnd](value) {
    this.loopEnd = value;
  }
  get [$loopStart]() {
    return this.loopStart;
  }
  set [$loopStart](value) {
    this.loopStart = value;
  }
  get [$playbackRate]() {
    return this.playbackRate;
  }
  [$start](...args) {
    return this.start.apply(this, args);
  }
};
dart.addTypeTests(web_audio.AudioBufferSourceNode);
dart.addTypeCaches(web_audio.AudioBufferSourceNode);
dart.setMethodSignature(web_audio.AudioBufferSourceNode, () => ({
  __proto__: dart.getMethods(web_audio.AudioBufferSourceNode.__proto__),
  [$start]: dart.fnType(dart.void, [], [core.num, core.num, core.num])
}));
dart.setGetterSignature(web_audio.AudioBufferSourceNode, () => ({
  __proto__: dart.getGetters(web_audio.AudioBufferSourceNode.__proto__),
  [$buffer]: web_audio.AudioBuffer,
  [$detune]: web_audio.AudioParam,
  [$loop]: core.bool,
  [$loopEnd]: core.num,
  [$loopStart]: core.num,
  [$playbackRate]: web_audio.AudioParam
}));
dart.setSetterSignature(web_audio.AudioBufferSourceNode, () => ({
  __proto__: dart.getSetters(web_audio.AudioBufferSourceNode.__proto__),
  [$buffer]: web_audio.AudioBuffer,
  [$loop]: core.bool,
  [$loopEnd]: core.num,
  [$loopStart]: core.num
}));
dart.setLibraryUri(web_audio.AudioBufferSourceNode, L69);
dart.registerExtension("AudioBufferSourceNode", web_audio.AudioBufferSourceNode);
var _getOutputTimestamp_1 = dart.privateName(web_audio, "_getOutputTimestamp_1");
var _decodeAudioData = dart.privateName(web_audio, "_decodeAudioData");
var _createPeriodicWave_1 = dart.privateName(web_audio, "_createPeriodicWave_1");
var _createPeriodicWave_2 = dart.privateName(web_audio, "_createPeriodicWave_2");
web_audio.BaseAudioContext = class BaseAudioContext extends html$.EventTarget {
  get [$currentTime]() {
    return this.currentTime;
  }
  get [$destination]() {
    return this.destination;
  }
  get [$listener]() {
    return this.listener;
  }
  get [$sampleRate]() {
    return this.sampleRate;
  }
  get [$state]() {
    return this.state;
  }
  [$createAnalyser](...args) {
    return this.createAnalyser.apply(this, args);
  }
  [$createBiquadFilter](...args) {
    return this.createBiquadFilter.apply(this, args);
  }
  [$createBuffer](...args) {
    return this.createBuffer.apply(this, args);
  }
  [$createBufferSource](...args) {
    return this.createBufferSource.apply(this, args);
  }
  [$createChannelMerger](...args) {
    return this.createChannelMerger.apply(this, args);
  }
  [$createChannelSplitter](...args) {
    return this.createChannelSplitter.apply(this, args);
  }
  [$createConstantSource](...args) {
    return this.createConstantSource.apply(this, args);
  }
  [$createConvolver](...args) {
    return this.createConvolver.apply(this, args);
  }
  [$createDelay](...args) {
    return this.createDelay.apply(this, args);
  }
  [$createDynamicsCompressor](...args) {
    return this.createDynamicsCompressor.apply(this, args);
  }
  [$createGain](...args) {
    return this.createGain.apply(this, args);
  }
  [$createIirFilter](...args) {
    return this.createIIRFilter.apply(this, args);
  }
  [$createMediaElementSource](...args) {
    return this.createMediaElementSource.apply(this, args);
  }
  [$createMediaStreamDestination](...args) {
    return this.createMediaStreamDestination.apply(this, args);
  }
  [$createMediaStreamSource](...args) {
    return this.createMediaStreamSource.apply(this, args);
  }
  [$createOscillator](...args) {
    return this.createOscillator.apply(this, args);
  }
  [$createPanner](...args) {
    return this.createPanner.apply(this, args);
  }
  [$createPeriodicWave](real, imag, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return this[_createPeriodicWave_1](real, imag, options_1);
    }
    return this[_createPeriodicWave_2](real, imag);
  }
  [_createPeriodicWave_1](...args) {
    return this.createPeriodicWave.apply(this, args);
  }
  [_createPeriodicWave_2](...args) {
    return this.createPeriodicWave.apply(this, args);
  }
  [$createScriptProcessor](...args) {
    return this.createScriptProcessor.apply(this, args);
  }
  [$createStereoPanner](...args) {
    return this.createStereoPanner.apply(this, args);
  }
  [$createWaveShaper](...args) {
    return this.createWaveShaper.apply(this, args);
  }
  [$decodeAudioData](audioData, successCallback = null, errorCallback = null) {
    return js_util.promiseToFuture(web_audio.AudioBuffer, this.decodeAudioData(audioData, successCallback, errorCallback));
  }
  [$resume]() {
    return js_util.promiseToFuture(dart.dynamic, this.resume());
  }
};
dart.addTypeTests(web_audio.BaseAudioContext);
dart.addTypeCaches(web_audio.BaseAudioContext);
dart.setMethodSignature(web_audio.BaseAudioContext, () => ({
  __proto__: dart.getMethods(web_audio.BaseAudioContext.__proto__),
  [$createAnalyser]: dart.fnType(web_audio.AnalyserNode, []),
  [$createBiquadFilter]: dart.fnType(web_audio.BiquadFilterNode, []),
  [$createBuffer]: dart.fnType(web_audio.AudioBuffer, [core.int, core.int, core.num]),
  [$createBufferSource]: dart.fnType(web_audio.AudioBufferSourceNode, []),
  [$createChannelMerger]: dart.fnType(web_audio.ChannelMergerNode, [], [core.int]),
  [$createChannelSplitter]: dart.fnType(web_audio.ChannelSplitterNode, [], [core.int]),
  [$createConstantSource]: dart.fnType(web_audio.ConstantSourceNode, []),
  [$createConvolver]: dart.fnType(web_audio.ConvolverNode, []),
  [$createDelay]: dart.fnType(web_audio.DelayNode, [], [core.num]),
  [$createDynamicsCompressor]: dart.fnType(web_audio.DynamicsCompressorNode, []),
  [$createGain]: dart.fnType(web_audio.GainNode, []),
  [$createIirFilter]: dart.fnType(web_audio.IirFilterNode, [core.List$(core.num), core.List$(core.num)]),
  [$createMediaElementSource]: dart.fnType(web_audio.MediaElementAudioSourceNode, [html$.MediaElement]),
  [$createMediaStreamDestination]: dart.fnType(web_audio.MediaStreamAudioDestinationNode, []),
  [$createMediaStreamSource]: dart.fnType(web_audio.MediaStreamAudioSourceNode, [html$.MediaStream]),
  [$createOscillator]: dart.fnType(web_audio.OscillatorNode, []),
  [$createPanner]: dart.fnType(web_audio.PannerNode, []),
  [$createPeriodicWave]: dart.fnType(web_audio.PeriodicWave, [core.List$(core.num), core.List$(core.num)], [core.Map]),
  [_createPeriodicWave_1]: dart.fnType(web_audio.PeriodicWave, [core.List$(core.num), core.List$(core.num), dart.dynamic]),
  [_createPeriodicWave_2]: dart.fnType(web_audio.PeriodicWave, [core.List$(core.num), core.List$(core.num)]),
  [$createScriptProcessor]: dart.fnType(web_audio.ScriptProcessorNode, [], [core.int, core.int, core.int]),
  [$createStereoPanner]: dart.fnType(web_audio.StereoPannerNode, []),
  [$createWaveShaper]: dart.fnType(web_audio.WaveShaperNode, []),
  [$decodeAudioData]: dart.fnType(async.Future$(web_audio.AudioBuffer), [typed_data.ByteBuffer], [dart.fnType(dart.void, [web_audio.AudioBuffer]), dart.fnType(dart.void, [html$.DomException])]),
  [$resume]: dart.fnType(async.Future, [])
}));
dart.setGetterSignature(web_audio.BaseAudioContext, () => ({
  __proto__: dart.getGetters(web_audio.BaseAudioContext.__proto__),
  [$currentTime]: core.num,
  [$destination]: web_audio.AudioDestinationNode,
  [$listener]: web_audio.AudioListener,
  [$sampleRate]: core.num,
  [$state]: core.String
}));
dart.setLibraryUri(web_audio.BaseAudioContext, L69);
dart.registerExtension("BaseAudioContext", web_audio.BaseAudioContext);
web_audio.AudioContext = class AudioContext extends web_audio.BaseAudioContext {
  static get supported() {
    return !!(window.AudioContext || window.webkitAudioContext);
  }
  get [$baseLatency]() {
    return this.baseLatency;
  }
  [$close]() {
    return js_util.promiseToFuture(dart.dynamic, this.close());
  }
  [$getOutputTimestamp]() {
    return html_common.convertNativeToDart_Dictionary(this[_getOutputTimestamp_1]());
  }
  [_getOutputTimestamp_1](...args) {
    return this.getOutputTimestamp.apply(this, args);
  }
  [$suspend]() {
    return js_util.promiseToFuture(dart.dynamic, this.suspend());
  }
  static new() {
    return new (window.AudioContext || window.webkitAudioContext)();
  }
  [$createGain]() {
    if (this.createGain !== undefined) {
      return this.createGain();
    } else {
      return this.createGainNode();
    }
  }
  [$createScriptProcessor](bufferSize = null, numberOfInputChannels = null, numberOfOutputChannels = null) {
    let $function = this.createScriptProcessor || this.createJavaScriptNode;
    if (numberOfOutputChannels != null) {
      return $function.call(this, bufferSize, numberOfInputChannels, numberOfOutputChannels);
    } else if (numberOfInputChannels != null) {
      return $function.call(this, bufferSize, numberOfInputChannels);
    } else if (bufferSize != null) {
      return $function.call(this, bufferSize);
    } else {
      return $function.call(this);
    }
  }
  [_decodeAudioData](...args) {
    return this.decodeAudioData.apply(this, args);
  }
  [$decodeAudioData](audioData, successCallback = null, errorCallback = null) {
    if (successCallback != null && errorCallback != null) {
      return FutureOfAudioBufferL().as(this[_decodeAudioData](audioData, successCallback, errorCallback));
    }
    let completer = CompleterOfAudioBufferL().new();
    this[_decodeAudioData](audioData, dart.fn(value => {
      completer.complete(value);
    }, AudioBufferLToNullN()), dart.fn(error => {
      if (error == null) {
        completer.completeError("");
      } else {
        completer.completeError(error);
      }
    }, DomExceptionLToNullN()));
    return completer.future;
  }
};
dart.addTypeTests(web_audio.AudioContext);
dart.addTypeCaches(web_audio.AudioContext);
dart.setMethodSignature(web_audio.AudioContext, () => ({
  __proto__: dart.getMethods(web_audio.AudioContext.__proto__),
  [$close]: dart.fnType(async.Future, []),
  [$getOutputTimestamp]: dart.fnType(core.Map, []),
  [_getOutputTimestamp_1]: dart.fnType(dart.dynamic, []),
  [$suspend]: dart.fnType(async.Future, []),
  [_decodeAudioData]: dart.fnType(async.Future, [typed_data.ByteBuffer], [dart.fnType(dart.void, [web_audio.AudioBuffer]), dart.fnType(dart.void, [html$.DomException])])
}));
dart.setGetterSignature(web_audio.AudioContext, () => ({
  __proto__: dart.getGetters(web_audio.AudioContext.__proto__),
  [$baseLatency]: core.num
}));
dart.setLibraryUri(web_audio.AudioContext, L69);
dart.registerExtension("AudioContext", web_audio.AudioContext);
dart.registerExtension("webkitAudioContext", web_audio.AudioContext);
web_audio.AudioDestinationNode = class AudioDestinationNode extends web_audio.AudioNode {
  get [$maxChannelCount]() {
    return this.maxChannelCount;
  }
};
dart.addTypeTests(web_audio.AudioDestinationNode);
dart.addTypeCaches(web_audio.AudioDestinationNode);
dart.setGetterSignature(web_audio.AudioDestinationNode, () => ({
  __proto__: dart.getGetters(web_audio.AudioDestinationNode.__proto__),
  [$maxChannelCount]: core.int
}));
dart.setLibraryUri(web_audio.AudioDestinationNode, L69);
dart.registerExtension("AudioDestinationNode", web_audio.AudioDestinationNode);
web_audio.AudioListener = class AudioListener extends _interceptors.Interceptor {
  get [$forwardX]() {
    return this.forwardX;
  }
  get [$forwardY]() {
    return this.forwardY;
  }
  get [$forwardZ]() {
    return this.forwardZ;
  }
  get [$positionX]() {
    return this.positionX;
  }
  get [$positionY]() {
    return this.positionY;
  }
  get [$positionZ]() {
    return this.positionZ;
  }
  get [$upX]() {
    return this.upX;
  }
  get [$upY]() {
    return this.upY;
  }
  get [$upZ]() {
    return this.upZ;
  }
  [$setOrientation](...args) {
    return this.setOrientation.apply(this, args);
  }
  [$setPosition](...args) {
    return this.setPosition.apply(this, args);
  }
};
dart.addTypeTests(web_audio.AudioListener);
dart.addTypeCaches(web_audio.AudioListener);
dart.setMethodSignature(web_audio.AudioListener, () => ({
  __proto__: dart.getMethods(web_audio.AudioListener.__proto__),
  [$setOrientation]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
  [$setPosition]: dart.fnType(dart.void, [core.num, core.num, core.num])
}));
dart.setGetterSignature(web_audio.AudioListener, () => ({
  __proto__: dart.getGetters(web_audio.AudioListener.__proto__),
  [$forwardX]: web_audio.AudioParam,
  [$forwardY]: web_audio.AudioParam,
  [$forwardZ]: web_audio.AudioParam,
  [$positionX]: web_audio.AudioParam,
  [$positionY]: web_audio.AudioParam,
  [$positionZ]: web_audio.AudioParam,
  [$upX]: web_audio.AudioParam,
  [$upY]: web_audio.AudioParam,
  [$upZ]: web_audio.AudioParam
}));
dart.setLibraryUri(web_audio.AudioListener, L69);
dart.registerExtension("AudioListener", web_audio.AudioListener);
web_audio.AudioParam = class AudioParam extends _interceptors.Interceptor {
  get [$defaultValue]() {
    return this.defaultValue;
  }
  get [$maxValue]() {
    return this.maxValue;
  }
  get [$minValue]() {
    return this.minValue;
  }
  get [$value]() {
    return this.value;
  }
  set [$value](value) {
    this.value = value;
  }
  [$cancelAndHoldAtTime](...args) {
    return this.cancelAndHoldAtTime.apply(this, args);
  }
  [$cancelScheduledValues](...args) {
    return this.cancelScheduledValues.apply(this, args);
  }
  [$exponentialRampToValueAtTime](...args) {
    return this.exponentialRampToValueAtTime.apply(this, args);
  }
  [$linearRampToValueAtTime](...args) {
    return this.linearRampToValueAtTime.apply(this, args);
  }
  [$setTargetAtTime](...args) {
    return this.setTargetAtTime.apply(this, args);
  }
  [$setValueAtTime](...args) {
    return this.setValueAtTime.apply(this, args);
  }
  [$setValueCurveAtTime](...args) {
    return this.setValueCurveAtTime.apply(this, args);
  }
};
dart.addTypeTests(web_audio.AudioParam);
dart.addTypeCaches(web_audio.AudioParam);
dart.setMethodSignature(web_audio.AudioParam, () => ({
  __proto__: dart.getMethods(web_audio.AudioParam.__proto__),
  [$cancelAndHoldAtTime]: dart.fnType(web_audio.AudioParam, [core.num]),
  [$cancelScheduledValues]: dart.fnType(web_audio.AudioParam, [core.num]),
  [$exponentialRampToValueAtTime]: dart.fnType(web_audio.AudioParam, [core.num, core.num]),
  [$linearRampToValueAtTime]: dart.fnType(web_audio.AudioParam, [core.num, core.num]),
  [$setTargetAtTime]: dart.fnType(web_audio.AudioParam, [core.num, core.num, core.num]),
  [$setValueAtTime]: dart.fnType(web_audio.AudioParam, [core.num, core.num]),
  [$setValueCurveAtTime]: dart.fnType(web_audio.AudioParam, [core.List$(core.num), core.num, core.num])
}));
dart.setGetterSignature(web_audio.AudioParam, () => ({
  __proto__: dart.getGetters(web_audio.AudioParam.__proto__),
  [$defaultValue]: core.num,
  [$maxValue]: core.num,
  [$minValue]: core.num,
  [$value]: core.num
}));
dart.setSetterSignature(web_audio.AudioParam, () => ({
  __proto__: dart.getSetters(web_audio.AudioParam.__proto__),
  [$value]: core.num
}));
dart.setLibraryUri(web_audio.AudioParam, L69);
dart.registerExtension("AudioParam", web_audio.AudioParam);
var _getItem$ = dart.privateName(web_audio, "_getItem");
const Interceptor_MapMixin$36$2 = class Interceptor_MapMixin extends _interceptors.Interceptor {};
(Interceptor_MapMixin$36$2.new = function() {
  Interceptor_MapMixin$36$2.__proto__.new.call(this);
}).prototype = Interceptor_MapMixin$36$2.prototype;
dart.applyMixin(Interceptor_MapMixin$36$2, collection.MapMixin$(core.String, dart.dynamic));
web_audio.AudioParamMap = class AudioParamMap extends Interceptor_MapMixin$36$2 {
  [_getItem$](key) {
    return html_common.convertNativeToDart_Dictionary(this.get(key));
  }
  [$addAll](other) {
    MapOfStringL$dynamic().as(other);
    dart.throw(new core.UnsupportedError.new("Not supported"));
  }
  [$containsValue](value) {
    return this[$values][$any](dart.fn(e => dart.equals(e, value), MapLToboolL()));
  }
  [$containsKey](key) {
    return this[_getItem$](core.String.as(key)) != null;
  }
  [$_get](key) {
    return this[_getItem$](core.String.as(key));
  }
  [$forEach](f) {
    let entries = this.entries();
    while (true) {
      let entry = entries.next();
      if (entry.done) return;
      f(entry.value[0], html_common.convertNativeToDart_Dictionary(entry.value[1]));
    }
  }
  get [$keys]() {
    let keys = JSArrayOfStringL().of([]);
    this[$forEach](dart.fn((k, v) => keys[$add](k), StringLAnddynamicTovoid()));
    return keys;
  }
  get [$values]() {
    let values = JSArrayOfMapL().of([]);
    this[$forEach](dart.fn((k, v) => values[$add](core.Map.as(v)), StringLAnddynamicTovoid()));
    return values;
  }
  get [$length]() {
    return this.size;
  }
  get [$isEmpty]() {
    return this[$length] === 0;
  }
  get [$isNotEmpty]() {
    return !dart.test(this[$isEmpty]);
  }
  [$_set](key, value$) {
    let value = value$;
    core.String.as(key);
    dart.throw(new core.UnsupportedError.new("Not supported"));
    return value$;
  }
  [$putIfAbsent](key, ifAbsent) {
    core.String.as(key);
    VoidToLdynamic().as(ifAbsent);
    dart.throw(new core.UnsupportedError.new("Not supported"));
  }
  [$remove](key) {
    dart.throw(new core.UnsupportedError.new("Not supported"));
  }
  [$clear]() {
    dart.throw(new core.UnsupportedError.new("Not supported"));
  }
};
dart.addTypeTests(web_audio.AudioParamMap);
dart.addTypeCaches(web_audio.AudioParamMap);
dart.setMethodSignature(web_audio.AudioParamMap, () => ({
  __proto__: dart.getMethods(web_audio.AudioParamMap.__proto__),
  [_getItem$]: dart.fnType(core.Map, [core.String]),
  [$containsValue]: dart.fnType(core.bool, [dart.dynamic]),
  [$containsKey]: dart.fnType(core.bool, [dart.dynamic]),
  [$_get]: dart.fnType(core.Map, [dart.dynamic]),
  [$_set]: dart.fnType(dart.void, [core.Object, core.Object]),
  [$remove]: dart.fnType(core.String, [dart.dynamic]),
  [$clear]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(web_audio.AudioParamMap, () => ({
  __proto__: dart.getGetters(web_audio.AudioParamMap.__proto__),
  [$keys]: core.Iterable$(core.String),
  [$values]: core.Iterable$(core.Map)
}));
dart.setLibraryUri(web_audio.AudioParamMap, L69);
dart.registerExtension("AudioParamMap", web_audio.AudioParamMap);
web_audio.AudioProcessingEvent = class AudioProcessingEvent$ extends html$.Event {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return web_audio.AudioProcessingEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new AudioProcessingEvent(type, eventInitDict);
  }
  get [$inputBuffer]() {
    return this.inputBuffer;
  }
  get [$outputBuffer]() {
    return this.outputBuffer;
  }
  get [$playbackTime]() {
    return this.playbackTime;
  }
};
dart.addTypeTests(web_audio.AudioProcessingEvent);
dart.addTypeCaches(web_audio.AudioProcessingEvent);
dart.setGetterSignature(web_audio.AudioProcessingEvent, () => ({
  __proto__: dart.getGetters(web_audio.AudioProcessingEvent.__proto__),
  [$inputBuffer]: web_audio.AudioBuffer,
  [$outputBuffer]: web_audio.AudioBuffer,
  [$playbackTime]: core.num
}));
dart.setLibraryUri(web_audio.AudioProcessingEvent, L69);
dart.registerExtension("AudioProcessingEvent", web_audio.AudioProcessingEvent);
web_audio.AudioTrack = class AudioTrack extends _interceptors.Interceptor {
  get [$enabled]() {
    return this.enabled;
  }
  set [$enabled](value) {
    this.enabled = value;
  }
  get [$id]() {
    return this.id;
  }
  get [$kind]() {
    return this.kind;
  }
  get [$label]() {
    return this.label;
  }
  get [$language]() {
    return this.language;
  }
  get [$sourceBuffer]() {
    return this.sourceBuffer;
  }
};
dart.addTypeTests(web_audio.AudioTrack);
dart.addTypeCaches(web_audio.AudioTrack);
dart.setGetterSignature(web_audio.AudioTrack, () => ({
  __proto__: dart.getGetters(web_audio.AudioTrack.__proto__),
  [$enabled]: core.bool,
  [$id]: core.String,
  [$kind]: core.String,
  [$label]: core.String,
  [$language]: core.String,
  [$sourceBuffer]: html$.SourceBuffer
}));
dart.setSetterSignature(web_audio.AudioTrack, () => ({
  __proto__: dart.getSetters(web_audio.AudioTrack.__proto__),
  [$enabled]: core.bool
}));
dart.setLibraryUri(web_audio.AudioTrack, L69);
dart.registerExtension("AudioTrack", web_audio.AudioTrack);
var __getter__$ = dart.privateName(web_audio, "__getter__");
web_audio.AudioTrackList = class AudioTrackList extends html$.EventTarget {
  get [$length]() {
    return this.length;
  }
  [__getter__$](...args) {
    return this.__getter__.apply(this, args);
  }
  [$getTrackById](...args) {
    return this.getTrackById.apply(this, args);
  }
  get [$onChange]() {
    return web_audio.AudioTrackList.changeEvent.forTarget(this);
  }
};
dart.addTypeTests(web_audio.AudioTrackList);
dart.addTypeCaches(web_audio.AudioTrackList);
dart.setMethodSignature(web_audio.AudioTrackList, () => ({
  __proto__: dart.getMethods(web_audio.AudioTrackList.__proto__),
  [__getter__$]: dart.fnType(web_audio.AudioTrack, [core.int]),
  [$getTrackById]: dart.fnType(web_audio.AudioTrack, [core.String])
}));
dart.setGetterSignature(web_audio.AudioTrackList, () => ({
  __proto__: dart.getGetters(web_audio.AudioTrackList.__proto__),
  [$length]: core.int,
  [$onChange]: async.Stream$(html$.Event)
}));
dart.setLibraryUri(web_audio.AudioTrackList, L69);
dart.defineLazy(web_audio.AudioTrackList, {
  /*web_audio.AudioTrackList.changeEvent*/get changeEvent() {
    return C237 || CT.C237;
  }
}, true);
dart.registerExtension("AudioTrackList", web_audio.AudioTrackList);
web_audio.AudioWorkletGlobalScope = class AudioWorkletGlobalScope extends html$.WorkletGlobalScope {
  get [$currentTime]() {
    return this.currentTime;
  }
  get [$sampleRate]() {
    return this.sampleRate;
  }
  [$registerProcessor](...args) {
    return this.registerProcessor.apply(this, args);
  }
};
dart.addTypeTests(web_audio.AudioWorkletGlobalScope);
dart.addTypeCaches(web_audio.AudioWorkletGlobalScope);
dart.setMethodSignature(web_audio.AudioWorkletGlobalScope, () => ({
  __proto__: dart.getMethods(web_audio.AudioWorkletGlobalScope.__proto__),
  [$registerProcessor]: dart.fnType(dart.void, [core.String, core.Object])
}));
dart.setGetterSignature(web_audio.AudioWorkletGlobalScope, () => ({
  __proto__: dart.getGetters(web_audio.AudioWorkletGlobalScope.__proto__),
  [$currentTime]: core.num,
  [$sampleRate]: core.num
}));
dart.setLibraryUri(web_audio.AudioWorkletGlobalScope, L69);
dart.registerExtension("AudioWorkletGlobalScope", web_audio.AudioWorkletGlobalScope);
web_audio.AudioWorkletNode = class AudioWorkletNode$ extends web_audio.AudioNode {
  static new(context, name, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.AudioWorkletNode._create_1(context, name, options_1);
    }
    return web_audio.AudioWorkletNode._create_2(context, name);
  }
  static _create_1(context, name, options) {
    return new AudioWorkletNode(context, name, options);
  }
  static _create_2(context, name) {
    return new AudioWorkletNode(context, name);
  }
  get [$parameters]() {
    return this.parameters;
  }
};
dart.addTypeTests(web_audio.AudioWorkletNode);
dart.addTypeCaches(web_audio.AudioWorkletNode);
dart.setGetterSignature(web_audio.AudioWorkletNode, () => ({
  __proto__: dart.getGetters(web_audio.AudioWorkletNode.__proto__),
  [$parameters]: web_audio.AudioParamMap
}));
dart.setLibraryUri(web_audio.AudioWorkletNode, L69);
dart.registerExtension("AudioWorkletNode", web_audio.AudioWorkletNode);
web_audio.AudioWorkletProcessor = class AudioWorkletProcessor extends _interceptors.Interceptor {};
dart.addTypeTests(web_audio.AudioWorkletProcessor);
dart.addTypeCaches(web_audio.AudioWorkletProcessor);
dart.setLibraryUri(web_audio.AudioWorkletProcessor, L69);
dart.registerExtension("AudioWorkletProcessor", web_audio.AudioWorkletProcessor);
web_audio.BiquadFilterNode = class BiquadFilterNode$ extends web_audio.AudioNode {
  static new(context, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.BiquadFilterNode._create_1(context, options_1);
    }
    return web_audio.BiquadFilterNode._create_2(context);
  }
  static _create_1(context, options) {
    return new BiquadFilterNode(context, options);
  }
  static _create_2(context) {
    return new BiquadFilterNode(context);
  }
  get [$Q]() {
    return this.Q;
  }
  get [$detune]() {
    return this.detune;
  }
  get [$frequency]() {
    return this.frequency;
  }
  get [$gain]() {
    return this.gain;
  }
  get [$type]() {
    return this.type;
  }
  set [$type](value) {
    this.type = value;
  }
  [$getFrequencyResponse](...args) {
    return this.getFrequencyResponse.apply(this, args);
  }
};
dart.addTypeTests(web_audio.BiquadFilterNode);
dart.addTypeCaches(web_audio.BiquadFilterNode);
dart.setMethodSignature(web_audio.BiquadFilterNode, () => ({
  __proto__: dart.getMethods(web_audio.BiquadFilterNode.__proto__),
  [$getFrequencyResponse]: dart.fnType(dart.void, [typed_data.Float32List, typed_data.Float32List, typed_data.Float32List])
}));
dart.setGetterSignature(web_audio.BiquadFilterNode, () => ({
  __proto__: dart.getGetters(web_audio.BiquadFilterNode.__proto__),
  [$Q]: web_audio.AudioParam,
  [$detune]: web_audio.AudioParam,
  [$frequency]: web_audio.AudioParam,
  [$gain]: web_audio.AudioParam,
  [$type]: core.String
}));
dart.setSetterSignature(web_audio.BiquadFilterNode, () => ({
  __proto__: dart.getSetters(web_audio.BiquadFilterNode.__proto__),
  [$type]: core.String
}));
dart.setLibraryUri(web_audio.BiquadFilterNode, L69);
dart.registerExtension("BiquadFilterNode", web_audio.BiquadFilterNode);
web_audio.ChannelMergerNode = class ChannelMergerNode$ extends web_audio.AudioNode {
  static new(context, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.ChannelMergerNode._create_1(context, options_1);
    }
    return web_audio.ChannelMergerNode._create_2(context);
  }
  static _create_1(context, options) {
    return new ChannelMergerNode(context, options);
  }
  static _create_2(context) {
    return new ChannelMergerNode(context);
  }
};
dart.addTypeTests(web_audio.ChannelMergerNode);
dart.addTypeCaches(web_audio.ChannelMergerNode);
dart.setLibraryUri(web_audio.ChannelMergerNode, L69);
dart.registerExtension("ChannelMergerNode", web_audio.ChannelMergerNode);
dart.registerExtension("AudioChannelMerger", web_audio.ChannelMergerNode);
web_audio.ChannelSplitterNode = class ChannelSplitterNode$ extends web_audio.AudioNode {
  static new(context, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.ChannelSplitterNode._create_1(context, options_1);
    }
    return web_audio.ChannelSplitterNode._create_2(context);
  }
  static _create_1(context, options) {
    return new ChannelSplitterNode(context, options);
  }
  static _create_2(context) {
    return new ChannelSplitterNode(context);
  }
};
dart.addTypeTests(web_audio.ChannelSplitterNode);
dart.addTypeCaches(web_audio.ChannelSplitterNode);
dart.setLibraryUri(web_audio.ChannelSplitterNode, L69);
dart.registerExtension("ChannelSplitterNode", web_audio.ChannelSplitterNode);
dart.registerExtension("AudioChannelSplitter", web_audio.ChannelSplitterNode);
web_audio.ConstantSourceNode = class ConstantSourceNode$ extends web_audio.AudioScheduledSourceNode {
  static new(context, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.ConstantSourceNode._create_1(context, options_1);
    }
    return web_audio.ConstantSourceNode._create_2(context);
  }
  static _create_1(context, options) {
    return new ConstantSourceNode(context, options);
  }
  static _create_2(context) {
    return new ConstantSourceNode(context);
  }
  get [$offset]() {
    return this.offset;
  }
};
dart.addTypeTests(web_audio.ConstantSourceNode);
dart.addTypeCaches(web_audio.ConstantSourceNode);
dart.setGetterSignature(web_audio.ConstantSourceNode, () => ({
  __proto__: dart.getGetters(web_audio.ConstantSourceNode.__proto__),
  [$offset]: web_audio.AudioParam
}));
dart.setLibraryUri(web_audio.ConstantSourceNode, L69);
dart.registerExtension("ConstantSourceNode", web_audio.ConstantSourceNode);
web_audio.ConvolverNode = class ConvolverNode$ extends web_audio.AudioNode {
  static new(context, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.ConvolverNode._create_1(context, options_1);
    }
    return web_audio.ConvolverNode._create_2(context);
  }
  static _create_1(context, options) {
    return new ConvolverNode(context, options);
  }
  static _create_2(context) {
    return new ConvolverNode(context);
  }
  get [$buffer]() {
    return this.buffer;
  }
  set [$buffer](value) {
    this.buffer = value;
  }
  get [$normalize]() {
    return this.normalize;
  }
  set [$normalize](value) {
    this.normalize = value;
  }
};
dart.addTypeTests(web_audio.ConvolverNode);
dart.addTypeCaches(web_audio.ConvolverNode);
dart.setGetterSignature(web_audio.ConvolverNode, () => ({
  __proto__: dart.getGetters(web_audio.ConvolverNode.__proto__),
  [$buffer]: web_audio.AudioBuffer,
  [$normalize]: core.bool
}));
dart.setSetterSignature(web_audio.ConvolverNode, () => ({
  __proto__: dart.getSetters(web_audio.ConvolverNode.__proto__),
  [$buffer]: web_audio.AudioBuffer,
  [$normalize]: core.bool
}));
dart.setLibraryUri(web_audio.ConvolverNode, L69);
dart.registerExtension("ConvolverNode", web_audio.ConvolverNode);
web_audio.DelayNode = class DelayNode$ extends web_audio.AudioNode {
  static new(context, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.DelayNode._create_1(context, options_1);
    }
    return web_audio.DelayNode._create_2(context);
  }
  static _create_1(context, options) {
    return new DelayNode(context, options);
  }
  static _create_2(context) {
    return new DelayNode(context);
  }
  get [$delayTime]() {
    return this.delayTime;
  }
};
dart.addTypeTests(web_audio.DelayNode);
dart.addTypeCaches(web_audio.DelayNode);
dart.setGetterSignature(web_audio.DelayNode, () => ({
  __proto__: dart.getGetters(web_audio.DelayNode.__proto__),
  [$delayTime]: web_audio.AudioParam
}));
dart.setLibraryUri(web_audio.DelayNode, L69);
dart.registerExtension("DelayNode", web_audio.DelayNode);
web_audio.DynamicsCompressorNode = class DynamicsCompressorNode$ extends web_audio.AudioNode {
  static new(context, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.DynamicsCompressorNode._create_1(context, options_1);
    }
    return web_audio.DynamicsCompressorNode._create_2(context);
  }
  static _create_1(context, options) {
    return new DynamicsCompressorNode(context, options);
  }
  static _create_2(context) {
    return new DynamicsCompressorNode(context);
  }
  get [$attack]() {
    return this.attack;
  }
  get [$knee]() {
    return this.knee;
  }
  get [$ratio]() {
    return this.ratio;
  }
  get [$reduction]() {
    return this.reduction;
  }
  get [$release]() {
    return this.release;
  }
  get [$threshold]() {
    return this.threshold;
  }
};
dart.addTypeTests(web_audio.DynamicsCompressorNode);
dart.addTypeCaches(web_audio.DynamicsCompressorNode);
dart.setGetterSignature(web_audio.DynamicsCompressorNode, () => ({
  __proto__: dart.getGetters(web_audio.DynamicsCompressorNode.__proto__),
  [$attack]: web_audio.AudioParam,
  [$knee]: web_audio.AudioParam,
  [$ratio]: web_audio.AudioParam,
  [$reduction]: core.num,
  [$release]: web_audio.AudioParam,
  [$threshold]: web_audio.AudioParam
}));
dart.setLibraryUri(web_audio.DynamicsCompressorNode, L69);
dart.registerExtension("DynamicsCompressorNode", web_audio.DynamicsCompressorNode);
web_audio.GainNode = class GainNode$ extends web_audio.AudioNode {
  static new(context, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.GainNode._create_1(context, options_1);
    }
    return web_audio.GainNode._create_2(context);
  }
  static _create_1(context, options) {
    return new GainNode(context, options);
  }
  static _create_2(context) {
    return new GainNode(context);
  }
  get [$gain]() {
    return this.gain;
  }
};
dart.addTypeTests(web_audio.GainNode);
dart.addTypeCaches(web_audio.GainNode);
dart.setGetterSignature(web_audio.GainNode, () => ({
  __proto__: dart.getGetters(web_audio.GainNode.__proto__),
  [$gain]: web_audio.AudioParam
}));
dart.setLibraryUri(web_audio.GainNode, L69);
dart.registerExtension("GainNode", web_audio.GainNode);
dart.registerExtension("AudioGainNode", web_audio.GainNode);
web_audio.IirFilterNode = class IirFilterNode extends web_audio.AudioNode {
  static new(context, options) {
    let options_1 = html_common.convertDartToNative_Dictionary(options);
    return web_audio.IirFilterNode._create_1(context, options_1);
  }
  static _create_1(context, options) {
    return new IIRFilterNode(context, options);
  }
  [$getFrequencyResponse](...args) {
    return this.getFrequencyResponse.apply(this, args);
  }
};
dart.addTypeTests(web_audio.IirFilterNode);
dart.addTypeCaches(web_audio.IirFilterNode);
dart.setMethodSignature(web_audio.IirFilterNode, () => ({
  __proto__: dart.getMethods(web_audio.IirFilterNode.__proto__),
  [$getFrequencyResponse]: dart.fnType(dart.void, [typed_data.Float32List, typed_data.Float32List, typed_data.Float32List])
}));
dart.setLibraryUri(web_audio.IirFilterNode, L69);
dart.registerExtension("IIRFilterNode", web_audio.IirFilterNode);
web_audio.MediaElementAudioSourceNode = class MediaElementAudioSourceNode$ extends web_audio.AudioNode {
  static new(context, options) {
    let options_1 = html_common.convertDartToNative_Dictionary(options);
    return web_audio.MediaElementAudioSourceNode._create_1(context, options_1);
  }
  static _create_1(context, options) {
    return new MediaElementAudioSourceNode(context, options);
  }
  get [$mediaElement]() {
    return this.mediaElement;
  }
};
dart.addTypeTests(web_audio.MediaElementAudioSourceNode);
dart.addTypeCaches(web_audio.MediaElementAudioSourceNode);
dart.setGetterSignature(web_audio.MediaElementAudioSourceNode, () => ({
  __proto__: dart.getGetters(web_audio.MediaElementAudioSourceNode.__proto__),
  [$mediaElement]: html$.MediaElement
}));
dart.setLibraryUri(web_audio.MediaElementAudioSourceNode, L69);
dart.registerExtension("MediaElementAudioSourceNode", web_audio.MediaElementAudioSourceNode);
web_audio.MediaStreamAudioDestinationNode = class MediaStreamAudioDestinationNode$ extends web_audio.AudioNode {
  static new(context, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.MediaStreamAudioDestinationNode._create_1(context, options_1);
    }
    return web_audio.MediaStreamAudioDestinationNode._create_2(context);
  }
  static _create_1(context, options) {
    return new MediaStreamAudioDestinationNode(context, options);
  }
  static _create_2(context) {
    return new MediaStreamAudioDestinationNode(context);
  }
  get [$stream]() {
    return this.stream;
  }
};
dart.addTypeTests(web_audio.MediaStreamAudioDestinationNode);
dart.addTypeCaches(web_audio.MediaStreamAudioDestinationNode);
dart.setGetterSignature(web_audio.MediaStreamAudioDestinationNode, () => ({
  __proto__: dart.getGetters(web_audio.MediaStreamAudioDestinationNode.__proto__),
  [$stream]: html$.MediaStream
}));
dart.setLibraryUri(web_audio.MediaStreamAudioDestinationNode, L69);
dart.registerExtension("MediaStreamAudioDestinationNode", web_audio.MediaStreamAudioDestinationNode);
web_audio.MediaStreamAudioSourceNode = class MediaStreamAudioSourceNode$ extends web_audio.AudioNode {
  static new(context, options) {
    let options_1 = html_common.convertDartToNative_Dictionary(options);
    return web_audio.MediaStreamAudioSourceNode._create_1(context, options_1);
  }
  static _create_1(context, options) {
    return new MediaStreamAudioSourceNode(context, options);
  }
  get [$mediaStream]() {
    return this.mediaStream;
  }
};
dart.addTypeTests(web_audio.MediaStreamAudioSourceNode);
dart.addTypeCaches(web_audio.MediaStreamAudioSourceNode);
dart.setGetterSignature(web_audio.MediaStreamAudioSourceNode, () => ({
  __proto__: dart.getGetters(web_audio.MediaStreamAudioSourceNode.__proto__),
  [$mediaStream]: html$.MediaStream
}));
dart.setLibraryUri(web_audio.MediaStreamAudioSourceNode, L69);
dart.registerExtension("MediaStreamAudioSourceNode", web_audio.MediaStreamAudioSourceNode);
web_audio.OfflineAudioCompletionEvent = class OfflineAudioCompletionEvent$ extends html$.Event {
  static new(type, eventInitDict) {
    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
    return web_audio.OfflineAudioCompletionEvent._create_1(type, eventInitDict_1);
  }
  static _create_1(type, eventInitDict) {
    return new OfflineAudioCompletionEvent(type, eventInitDict);
  }
  get [$renderedBuffer]() {
    return this.renderedBuffer;
  }
};
dart.addTypeTests(web_audio.OfflineAudioCompletionEvent);
dart.addTypeCaches(web_audio.OfflineAudioCompletionEvent);
dart.setGetterSignature(web_audio.OfflineAudioCompletionEvent, () => ({
  __proto__: dart.getGetters(web_audio.OfflineAudioCompletionEvent.__proto__),
  [$renderedBuffer]: web_audio.AudioBuffer
}));
dart.setLibraryUri(web_audio.OfflineAudioCompletionEvent, L69);
dart.registerExtension("OfflineAudioCompletionEvent", web_audio.OfflineAudioCompletionEvent);
web_audio.OfflineAudioContext = class OfflineAudioContext$ extends web_audio.BaseAudioContext {
  static new(numberOfChannels_OR_options, numberOfFrames = null, sampleRate = null) {
    if (typeof sampleRate == 'number' && core.int.is(numberOfFrames) && core.int.is(numberOfChannels_OR_options)) {
      return web_audio.OfflineAudioContext._create_1(numberOfChannels_OR_options, numberOfFrames, sampleRate);
    }
    if (core.Map.is(numberOfChannels_OR_options) && numberOfFrames == null && sampleRate == null) {
      let options_1 = html_common.convertDartToNative_Dictionary(numberOfChannels_OR_options);
      return web_audio.OfflineAudioContext._create_2(options_1);
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  static _create_1(numberOfChannels_OR_options, numberOfFrames, sampleRate) {
    return new OfflineAudioContext(numberOfChannels_OR_options, numberOfFrames, sampleRate);
  }
  static _create_2(numberOfChannels_OR_options) {
    return new OfflineAudioContext(numberOfChannels_OR_options);
  }
  get [$length]() {
    return this.length;
  }
  [$startRendering]() {
    return js_util.promiseToFuture(web_audio.AudioBuffer, this.startRendering());
  }
  [$suspendFor](suspendTime) {
    return js_util.promiseToFuture(dart.dynamic, this.suspendFor(suspendTime));
  }
};
dart.addTypeTests(web_audio.OfflineAudioContext);
dart.addTypeCaches(web_audio.OfflineAudioContext);
dart.setMethodSignature(web_audio.OfflineAudioContext, () => ({
  __proto__: dart.getMethods(web_audio.OfflineAudioContext.__proto__),
  [$startRendering]: dart.fnType(async.Future$(web_audio.AudioBuffer), []),
  [$suspendFor]: dart.fnType(async.Future, [core.num])
}));
dart.setGetterSignature(web_audio.OfflineAudioContext, () => ({
  __proto__: dart.getGetters(web_audio.OfflineAudioContext.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(web_audio.OfflineAudioContext, L69);
dart.registerExtension("OfflineAudioContext", web_audio.OfflineAudioContext);
web_audio.OscillatorNode = class OscillatorNode$ extends web_audio.AudioScheduledSourceNode {
  static new(context, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.OscillatorNode._create_1(context, options_1);
    }
    return web_audio.OscillatorNode._create_2(context);
  }
  static _create_1(context, options) {
    return new OscillatorNode(context, options);
  }
  static _create_2(context) {
    return new OscillatorNode(context);
  }
  get [$detune]() {
    return this.detune;
  }
  get [$frequency]() {
    return this.frequency;
  }
  get [$type]() {
    return this.type;
  }
  set [$type](value) {
    this.type = value;
  }
  [$setPeriodicWave](...args) {
    return this.setPeriodicWave.apply(this, args);
  }
};
dart.addTypeTests(web_audio.OscillatorNode);
dart.addTypeCaches(web_audio.OscillatorNode);
dart.setMethodSignature(web_audio.OscillatorNode, () => ({
  __proto__: dart.getMethods(web_audio.OscillatorNode.__proto__),
  [$setPeriodicWave]: dart.fnType(dart.void, [web_audio.PeriodicWave])
}));
dart.setGetterSignature(web_audio.OscillatorNode, () => ({
  __proto__: dart.getGetters(web_audio.OscillatorNode.__proto__),
  [$detune]: web_audio.AudioParam,
  [$frequency]: web_audio.AudioParam,
  [$type]: core.String
}));
dart.setSetterSignature(web_audio.OscillatorNode, () => ({
  __proto__: dart.getSetters(web_audio.OscillatorNode.__proto__),
  [$type]: core.String
}));
dart.setLibraryUri(web_audio.OscillatorNode, L69);
dart.registerExtension("OscillatorNode", web_audio.OscillatorNode);
dart.registerExtension("Oscillator", web_audio.OscillatorNode);
web_audio.PannerNode = class PannerNode$ extends web_audio.AudioNode {
  static new(context, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.PannerNode._create_1(context, options_1);
    }
    return web_audio.PannerNode._create_2(context);
  }
  static _create_1(context, options) {
    return new PannerNode(context, options);
  }
  static _create_2(context) {
    return new PannerNode(context);
  }
  get [$coneInnerAngle]() {
    return this.coneInnerAngle;
  }
  set [$coneInnerAngle](value) {
    this.coneInnerAngle = value;
  }
  get [$coneOuterAngle]() {
    return this.coneOuterAngle;
  }
  set [$coneOuterAngle](value) {
    this.coneOuterAngle = value;
  }
  get [$coneOuterGain]() {
    return this.coneOuterGain;
  }
  set [$coneOuterGain](value) {
    this.coneOuterGain = value;
  }
  get [$distanceModel]() {
    return this.distanceModel;
  }
  set [$distanceModel](value) {
    this.distanceModel = value;
  }
  get [$maxDistance]() {
    return this.maxDistance;
  }
  set [$maxDistance](value) {
    this.maxDistance = value;
  }
  get [$orientationX]() {
    return this.orientationX;
  }
  get [$orientationY]() {
    return this.orientationY;
  }
  get [$orientationZ]() {
    return this.orientationZ;
  }
  get [$panningModel]() {
    return this.panningModel;
  }
  set [$panningModel](value) {
    this.panningModel = value;
  }
  get [$positionX]() {
    return this.positionX;
  }
  get [$positionY]() {
    return this.positionY;
  }
  get [$positionZ]() {
    return this.positionZ;
  }
  get [$refDistance]() {
    return this.refDistance;
  }
  set [$refDistance](value) {
    this.refDistance = value;
  }
  get [$rolloffFactor]() {
    return this.rolloffFactor;
  }
  set [$rolloffFactor](value) {
    this.rolloffFactor = value;
  }
  [$setOrientation](...args) {
    return this.setOrientation.apply(this, args);
  }
  [$setPosition](...args) {
    return this.setPosition.apply(this, args);
  }
};
dart.addTypeTests(web_audio.PannerNode);
dart.addTypeCaches(web_audio.PannerNode);
dart.setMethodSignature(web_audio.PannerNode, () => ({
  __proto__: dart.getMethods(web_audio.PannerNode.__proto__),
  [$setOrientation]: dart.fnType(dart.void, [core.num, core.num, core.num]),
  [$setPosition]: dart.fnType(dart.void, [core.num, core.num, core.num])
}));
dart.setGetterSignature(web_audio.PannerNode, () => ({
  __proto__: dart.getGetters(web_audio.PannerNode.__proto__),
  [$coneInnerAngle]: core.num,
  [$coneOuterAngle]: core.num,
  [$coneOuterGain]: core.num,
  [$distanceModel]: core.String,
  [$maxDistance]: core.num,
  [$orientationX]: web_audio.AudioParam,
  [$orientationY]: web_audio.AudioParam,
  [$orientationZ]: web_audio.AudioParam,
  [$panningModel]: core.String,
  [$positionX]: web_audio.AudioParam,
  [$positionY]: web_audio.AudioParam,
  [$positionZ]: web_audio.AudioParam,
  [$refDistance]: core.num,
  [$rolloffFactor]: core.num
}));
dart.setSetterSignature(web_audio.PannerNode, () => ({
  __proto__: dart.getSetters(web_audio.PannerNode.__proto__),
  [$coneInnerAngle]: core.num,
  [$coneOuterAngle]: core.num,
  [$coneOuterGain]: core.num,
  [$distanceModel]: core.String,
  [$maxDistance]: core.num,
  [$panningModel]: core.String,
  [$refDistance]: core.num,
  [$rolloffFactor]: core.num
}));
dart.setLibraryUri(web_audio.PannerNode, L69);
dart.registerExtension("PannerNode", web_audio.PannerNode);
dart.registerExtension("AudioPannerNode", web_audio.PannerNode);
dart.registerExtension("webkitAudioPannerNode", web_audio.PannerNode);
web_audio.PeriodicWave = class PeriodicWave$ extends _interceptors.Interceptor {
  static new(context, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.PeriodicWave._create_1(context, options_1);
    }
    return web_audio.PeriodicWave._create_2(context);
  }
  static _create_1(context, options) {
    return new PeriodicWave(context, options);
  }
  static _create_2(context) {
    return new PeriodicWave(context);
  }
};
dart.addTypeTests(web_audio.PeriodicWave);
dart.addTypeCaches(web_audio.PeriodicWave);
dart.setLibraryUri(web_audio.PeriodicWave, L69);
dart.registerExtension("PeriodicWave", web_audio.PeriodicWave);
var C418;
web_audio.ScriptProcessorNode = class ScriptProcessorNode extends web_audio.AudioNode {
  get [$bufferSize]() {
    return this.bufferSize;
  }
  [$setEventListener](...args) {
    return this.setEventListener.apply(this, args);
  }
  get [$onAudioProcess]() {
    return web_audio.ScriptProcessorNode.audioProcessEvent.forTarget(this);
  }
};
dart.addTypeTests(web_audio.ScriptProcessorNode);
dart.addTypeCaches(web_audio.ScriptProcessorNode);
dart.setMethodSignature(web_audio.ScriptProcessorNode, () => ({
  __proto__: dart.getMethods(web_audio.ScriptProcessorNode.__proto__),
  [$setEventListener]: dart.fnType(dart.void, [dart.fnType(dart.dynamic, [html$.Event])])
}));
dart.setGetterSignature(web_audio.ScriptProcessorNode, () => ({
  __proto__: dart.getGetters(web_audio.ScriptProcessorNode.__proto__),
  [$bufferSize]: core.int,
  [$onAudioProcess]: async.Stream$(web_audio.AudioProcessingEvent)
}));
dart.setLibraryUri(web_audio.ScriptProcessorNode, L69);
dart.defineLazy(web_audio.ScriptProcessorNode, {
  /*web_audio.ScriptProcessorNode.audioProcessEvent*/get audioProcessEvent() {
    return C418 || CT.C418;
  }
}, true);
dart.registerExtension("ScriptProcessorNode", web_audio.ScriptProcessorNode);
dart.registerExtension("JavaScriptAudioNode", web_audio.ScriptProcessorNode);
web_audio.StereoPannerNode = class StereoPannerNode$ extends web_audio.AudioNode {
  static new(context, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.StereoPannerNode._create_1(context, options_1);
    }
    return web_audio.StereoPannerNode._create_2(context);
  }
  static _create_1(context, options) {
    return new StereoPannerNode(context, options);
  }
  static _create_2(context) {
    return new StereoPannerNode(context);
  }
  get [$pan]() {
    return this.pan;
  }
};
dart.addTypeTests(web_audio.StereoPannerNode);
dart.addTypeCaches(web_audio.StereoPannerNode);
dart.setGetterSignature(web_audio.StereoPannerNode, () => ({
  __proto__: dart.getGetters(web_audio.StereoPannerNode.__proto__),
  [$pan]: web_audio.AudioParam
}));
dart.setLibraryUri(web_audio.StereoPannerNode, L69);
dart.registerExtension("StereoPannerNode", web_audio.StereoPannerNode);
web_audio.WaveShaperNode = class WaveShaperNode$ extends web_audio.AudioNode {
  static new(context, options = null) {
    if (options != null) {
      let options_1 = html_common.convertDartToNative_Dictionary(options);
      return web_audio.WaveShaperNode._create_1(context, options_1);
    }
    return web_audio.WaveShaperNode._create_2(context);
  }
  static _create_1(context, options) {
    return new WaveShaperNode(context, options);
  }
  static _create_2(context) {
    return new WaveShaperNode(context);
  }
  get [$curve]() {
    return this.curve;
  }
  set [$curve](value) {
    this.curve = value;
  }
  get [$oversample]() {
    return this.oversample;
  }
  set [$oversample](value) {
    this.oversample = value;
  }
};
dart.addTypeTests(web_audio.WaveShaperNode);
dart.addTypeCaches(web_audio.WaveShaperNode);
dart.setGetterSignature(web_audio.WaveShaperNode, () => ({
  __proto__: dart.getGetters(web_audio.WaveShaperNode.__proto__),
  [$curve]: typed_data.Float32List,
  [$oversample]: core.String
}));
dart.setSetterSignature(web_audio.WaveShaperNode, () => ({
  __proto__: dart.getSetters(web_audio.WaveShaperNode.__proto__),
  [$curve]: typed_data.Float32List,
  [$oversample]: core.String
}));
dart.setLibraryUri(web_audio.WaveShaperNode, L69);
dart.registerExtension("WaveShaperNode", web_audio.WaveShaperNode);
web_gl.ActiveInfo = class ActiveInfo extends _interceptors.Interceptor {
  get [$name]() {
    return this.name;
  }
  get [$size]() {
    return this.size;
  }
  get [$type]() {
    return this.type;
  }
};
dart.addTypeTests(web_gl.ActiveInfo);
dart.addTypeCaches(web_gl.ActiveInfo);
dart.setGetterSignature(web_gl.ActiveInfo, () => ({
  __proto__: dart.getGetters(web_gl.ActiveInfo.__proto__),
  [$name]: core.String,
  [$size]: core.int,
  [$type]: core.int
}));
dart.setLibraryUri(web_gl.ActiveInfo, L70);
dart.registerExtension("WebGLActiveInfo", web_gl.ActiveInfo);
web_gl.AngleInstancedArrays = class AngleInstancedArrays extends _interceptors.Interceptor {
  [$drawArraysInstancedAngle](...args) {
    return this.drawArraysInstancedANGLE.apply(this, args);
  }
  [$drawElementsInstancedAngle](...args) {
    return this.drawElementsInstancedANGLE.apply(this, args);
  }
  [$vertexAttribDivisorAngle](...args) {
    return this.vertexAttribDivisorANGLE.apply(this, args);
  }
};
dart.addTypeTests(web_gl.AngleInstancedArrays);
dart.addTypeCaches(web_gl.AngleInstancedArrays);
dart.setMethodSignature(web_gl.AngleInstancedArrays, () => ({
  __proto__: dart.getMethods(web_gl.AngleInstancedArrays.__proto__),
  [$drawArraysInstancedAngle]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
  [$drawElementsInstancedAngle]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int]),
  [$vertexAttribDivisorAngle]: dart.fnType(dart.void, [core.int, core.int])
}));
dart.setLibraryUri(web_gl.AngleInstancedArrays, L70);
dart.defineLazy(web_gl.AngleInstancedArrays, {
  /*web_gl.AngleInstancedArrays.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE*/get VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE() {
    return 35070;
  }
}, true);
dart.registerExtension("ANGLEInstancedArrays", web_gl.AngleInstancedArrays);
dart.registerExtension("ANGLE_instanced_arrays", web_gl.AngleInstancedArrays);
web_gl.Buffer = class Buffer extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.Buffer);
dart.addTypeCaches(web_gl.Buffer);
dart.setLibraryUri(web_gl.Buffer, L70);
dart.registerExtension("WebGLBuffer", web_gl.Buffer);
web_gl.Canvas = class Canvas extends _interceptors.Interceptor {
  get [$canvas]() {
    return this.canvas;
  }
  get [$offscreenCanvas]() {
    return this.canvas;
  }
};
dart.addTypeTests(web_gl.Canvas);
dart.addTypeCaches(web_gl.Canvas);
dart.setGetterSignature(web_gl.Canvas, () => ({
  __proto__: dart.getGetters(web_gl.Canvas.__proto__),
  [$canvas]: html$.CanvasElement,
  [$offscreenCanvas]: html$.OffscreenCanvas
}));
dart.setLibraryUri(web_gl.Canvas, L70);
dart.registerExtension("WebGLCanvas", web_gl.Canvas);
web_gl.ColorBufferFloat = class ColorBufferFloat extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.ColorBufferFloat);
dart.addTypeCaches(web_gl.ColorBufferFloat);
dart.setLibraryUri(web_gl.ColorBufferFloat, L70);
dart.registerExtension("WebGLColorBufferFloat", web_gl.ColorBufferFloat);
web_gl.CompressedTextureAstc = class CompressedTextureAstc extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.CompressedTextureAstc);
dart.addTypeCaches(web_gl.CompressedTextureAstc);
dart.setLibraryUri(web_gl.CompressedTextureAstc, L70);
dart.defineLazy(web_gl.CompressedTextureAstc, {
  /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_10x10_KHR*/get COMPRESSED_RGBA_ASTC_10x10_KHR() {
    return 37819;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_10x5_KHR*/get COMPRESSED_RGBA_ASTC_10x5_KHR() {
    return 37816;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_10x6_KHR*/get COMPRESSED_RGBA_ASTC_10x6_KHR() {
    return 37817;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_10x8_KHR*/get COMPRESSED_RGBA_ASTC_10x8_KHR() {
    return 37818;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_12x10_KHR*/get COMPRESSED_RGBA_ASTC_12x10_KHR() {
    return 37820;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_12x12_KHR*/get COMPRESSED_RGBA_ASTC_12x12_KHR() {
    return 37821;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_4x4_KHR*/get COMPRESSED_RGBA_ASTC_4x4_KHR() {
    return 37808;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_5x4_KHR*/get COMPRESSED_RGBA_ASTC_5x4_KHR() {
    return 37809;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_5x5_KHR*/get COMPRESSED_RGBA_ASTC_5x5_KHR() {
    return 37810;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_6x5_KHR*/get COMPRESSED_RGBA_ASTC_6x5_KHR() {
    return 37811;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_6x6_KHR*/get COMPRESSED_RGBA_ASTC_6x6_KHR() {
    return 37812;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_8x5_KHR*/get COMPRESSED_RGBA_ASTC_8x5_KHR() {
    return 37813;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_8x6_KHR*/get COMPRESSED_RGBA_ASTC_8x6_KHR() {
    return 37814;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_RGBA_ASTC_8x8_KHR*/get COMPRESSED_RGBA_ASTC_8x8_KHR() {
    return 37815;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR() {
    return 37851;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR() {
    return 37848;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR() {
    return 37849;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR() {
    return 37850;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR() {
    return 37852;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR() {
    return 37853;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR() {
    return 37840;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR() {
    return 37841;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR() {
    return 37842;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR() {
    return 37843;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR() {
    return 37844;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR() {
    return 37845;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR() {
    return 37846;
  },
  /*web_gl.CompressedTextureAstc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR*/get COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR() {
    return 37847;
  }
}, true);
dart.registerExtension("WebGLCompressedTextureASTC", web_gl.CompressedTextureAstc);
web_gl.CompressedTextureAtc = class CompressedTextureAtc extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.CompressedTextureAtc);
dart.addTypeCaches(web_gl.CompressedTextureAtc);
dart.setLibraryUri(web_gl.CompressedTextureAtc, L70);
dart.defineLazy(web_gl.CompressedTextureAtc, {
  /*web_gl.CompressedTextureAtc.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL*/get COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL() {
    return 35987;
  },
  /*web_gl.CompressedTextureAtc.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL*/get COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL() {
    return 34798;
  },
  /*web_gl.CompressedTextureAtc.COMPRESSED_RGB_ATC_WEBGL*/get COMPRESSED_RGB_ATC_WEBGL() {
    return 35986;
  }
}, true);
dart.registerExtension("WebGLCompressedTextureATC", web_gl.CompressedTextureAtc);
dart.registerExtension("WEBGL_compressed_texture_atc", web_gl.CompressedTextureAtc);
web_gl.CompressedTextureETC1 = class CompressedTextureETC1 extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.CompressedTextureETC1);
dart.addTypeCaches(web_gl.CompressedTextureETC1);
dart.setLibraryUri(web_gl.CompressedTextureETC1, L70);
dart.defineLazy(web_gl.CompressedTextureETC1, {
  /*web_gl.CompressedTextureETC1.COMPRESSED_RGB_ETC1_WEBGL*/get COMPRESSED_RGB_ETC1_WEBGL() {
    return 36196;
  }
}, true);
dart.registerExtension("WebGLCompressedTextureETC1", web_gl.CompressedTextureETC1);
dart.registerExtension("WEBGL_compressed_texture_etc1", web_gl.CompressedTextureETC1);
web_gl.CompressedTextureEtc = class CompressedTextureEtc extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.CompressedTextureEtc);
dart.addTypeCaches(web_gl.CompressedTextureEtc);
dart.setLibraryUri(web_gl.CompressedTextureEtc, L70);
dart.defineLazy(web_gl.CompressedTextureEtc, {
  /*web_gl.CompressedTextureEtc.COMPRESSED_R11_EAC*/get COMPRESSED_R11_EAC() {
    return 37488;
  },
  /*web_gl.CompressedTextureEtc.COMPRESSED_RG11_EAC*/get COMPRESSED_RG11_EAC() {
    return 37490;
  },
  /*web_gl.CompressedTextureEtc.COMPRESSED_RGB8_ETC2*/get COMPRESSED_RGB8_ETC2() {
    return 37492;
  },
  /*web_gl.CompressedTextureEtc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2*/get COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2() {
    return 37494;
  },
  /*web_gl.CompressedTextureEtc.COMPRESSED_RGBA8_ETC2_EAC*/get COMPRESSED_RGBA8_ETC2_EAC() {
    return 37496;
  },
  /*web_gl.CompressedTextureEtc.COMPRESSED_SIGNED_R11_EAC*/get COMPRESSED_SIGNED_R11_EAC() {
    return 37489;
  },
  /*web_gl.CompressedTextureEtc.COMPRESSED_SIGNED_RG11_EAC*/get COMPRESSED_SIGNED_RG11_EAC() {
    return 37491;
  },
  /*web_gl.CompressedTextureEtc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC*/get COMPRESSED_SRGB8_ALPHA8_ETC2_EAC() {
    return 37497;
  },
  /*web_gl.CompressedTextureEtc.COMPRESSED_SRGB8_ETC2*/get COMPRESSED_SRGB8_ETC2() {
    return 37493;
  },
  /*web_gl.CompressedTextureEtc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2*/get COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2() {
    return 37495;
  }
}, true);
dart.registerExtension("WebGLCompressedTextureETC", web_gl.CompressedTextureEtc);
web_gl.CompressedTexturePvrtc = class CompressedTexturePvrtc extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.CompressedTexturePvrtc);
dart.addTypeCaches(web_gl.CompressedTexturePvrtc);
dart.setLibraryUri(web_gl.CompressedTexturePvrtc, L70);
dart.defineLazy(web_gl.CompressedTexturePvrtc, {
  /*web_gl.CompressedTexturePvrtc.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG*/get COMPRESSED_RGBA_PVRTC_2BPPV1_IMG() {
    return 35843;
  },
  /*web_gl.CompressedTexturePvrtc.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG*/get COMPRESSED_RGBA_PVRTC_4BPPV1_IMG() {
    return 35842;
  },
  /*web_gl.CompressedTexturePvrtc.COMPRESSED_RGB_PVRTC_2BPPV1_IMG*/get COMPRESSED_RGB_PVRTC_2BPPV1_IMG() {
    return 35841;
  },
  /*web_gl.CompressedTexturePvrtc.COMPRESSED_RGB_PVRTC_4BPPV1_IMG*/get COMPRESSED_RGB_PVRTC_4BPPV1_IMG() {
    return 35840;
  }
}, true);
dart.registerExtension("WebGLCompressedTexturePVRTC", web_gl.CompressedTexturePvrtc);
dart.registerExtension("WEBGL_compressed_texture_pvrtc", web_gl.CompressedTexturePvrtc);
web_gl.CompressedTextureS3TC = class CompressedTextureS3TC extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.CompressedTextureS3TC);
dart.addTypeCaches(web_gl.CompressedTextureS3TC);
dart.setLibraryUri(web_gl.CompressedTextureS3TC, L70);
dart.defineLazy(web_gl.CompressedTextureS3TC, {
  /*web_gl.CompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT1_EXT*/get COMPRESSED_RGBA_S3TC_DXT1_EXT() {
    return 33777;
  },
  /*web_gl.CompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT3_EXT*/get COMPRESSED_RGBA_S3TC_DXT3_EXT() {
    return 33778;
  },
  /*web_gl.CompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT5_EXT*/get COMPRESSED_RGBA_S3TC_DXT5_EXT() {
    return 33779;
  },
  /*web_gl.CompressedTextureS3TC.COMPRESSED_RGB_S3TC_DXT1_EXT*/get COMPRESSED_RGB_S3TC_DXT1_EXT() {
    return 33776;
  }
}, true);
dart.registerExtension("WebGLCompressedTextureS3TC", web_gl.CompressedTextureS3TC);
dart.registerExtension("WEBGL_compressed_texture_s3tc", web_gl.CompressedTextureS3TC);
web_gl.CompressedTextureS3TCsRgb = class CompressedTextureS3TCsRgb extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.CompressedTextureS3TCsRgb);
dart.addTypeCaches(web_gl.CompressedTextureS3TCsRgb);
dart.setLibraryUri(web_gl.CompressedTextureS3TCsRgb, L70);
dart.defineLazy(web_gl.CompressedTextureS3TCsRgb, {
  /*web_gl.CompressedTextureS3TCsRgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT*/get COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT() {
    return 35917;
  },
  /*web_gl.CompressedTextureS3TCsRgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT*/get COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT() {
    return 35918;
  },
  /*web_gl.CompressedTextureS3TCsRgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT*/get COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT() {
    return 35919;
  },
  /*web_gl.CompressedTextureS3TCsRgb.COMPRESSED_SRGB_S3TC_DXT1_EXT*/get COMPRESSED_SRGB_S3TC_DXT1_EXT() {
    return 35916;
  }
}, true);
dart.registerExtension("WebGLCompressedTextureS3TCsRGB", web_gl.CompressedTextureS3TCsRgb);
web_gl.ContextEvent = class ContextEvent extends html$.Event {
  static new(type, eventInit = null) {
    if (eventInit != null) {
      let eventInit_1 = html_common.convertDartToNative_Dictionary(eventInit);
      return web_gl.ContextEvent._create_1(type, eventInit_1);
    }
    return web_gl.ContextEvent._create_2(type);
  }
  static _create_1(type, eventInit) {
    return new WebGLContextEvent(type, eventInit);
  }
  static _create_2(type) {
    return new WebGLContextEvent(type);
  }
  get [$statusMessage]() {
    return this.statusMessage;
  }
};
dart.addTypeTests(web_gl.ContextEvent);
dart.addTypeCaches(web_gl.ContextEvent);
dart.setGetterSignature(web_gl.ContextEvent, () => ({
  __proto__: dart.getGetters(web_gl.ContextEvent.__proto__),
  [$statusMessage]: core.String
}));
dart.setLibraryUri(web_gl.ContextEvent, L70);
dart.registerExtension("WebGLContextEvent", web_gl.ContextEvent);
web_gl.DebugRendererInfo = class DebugRendererInfo extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.DebugRendererInfo);
dart.addTypeCaches(web_gl.DebugRendererInfo);
dart.setLibraryUri(web_gl.DebugRendererInfo, L70);
dart.defineLazy(web_gl.DebugRendererInfo, {
  /*web_gl.DebugRendererInfo.UNMASKED_RENDERER_WEBGL*/get UNMASKED_RENDERER_WEBGL() {
    return 37446;
  },
  /*web_gl.DebugRendererInfo.UNMASKED_VENDOR_WEBGL*/get UNMASKED_VENDOR_WEBGL() {
    return 37445;
  }
}, true);
dart.registerExtension("WebGLDebugRendererInfo", web_gl.DebugRendererInfo);
dart.registerExtension("WEBGL_debug_renderer_info", web_gl.DebugRendererInfo);
web_gl.DebugShaders = class DebugShaders extends _interceptors.Interceptor {
  [$getTranslatedShaderSource](...args) {
    return this.getTranslatedShaderSource.apply(this, args);
  }
};
dart.addTypeTests(web_gl.DebugShaders);
dart.addTypeCaches(web_gl.DebugShaders);
dart.setMethodSignature(web_gl.DebugShaders, () => ({
  __proto__: dart.getMethods(web_gl.DebugShaders.__proto__),
  [$getTranslatedShaderSource]: dart.fnType(core.String, [web_gl.Shader])
}));
dart.setLibraryUri(web_gl.DebugShaders, L70);
dart.registerExtension("WebGLDebugShaders", web_gl.DebugShaders);
dart.registerExtension("WEBGL_debug_shaders", web_gl.DebugShaders);
web_gl.DepthTexture = class DepthTexture extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.DepthTexture);
dart.addTypeCaches(web_gl.DepthTexture);
dart.setLibraryUri(web_gl.DepthTexture, L70);
dart.defineLazy(web_gl.DepthTexture, {
  /*web_gl.DepthTexture.UNSIGNED_INT_24_8_WEBGL*/get UNSIGNED_INT_24_8_WEBGL() {
    return 34042;
  }
}, true);
dart.registerExtension("WebGLDepthTexture", web_gl.DepthTexture);
dart.registerExtension("WEBGL_depth_texture", web_gl.DepthTexture);
web_gl.DrawBuffers = class DrawBuffers extends _interceptors.Interceptor {
  [$drawBuffersWebgl](...args) {
    return this.drawBuffersWEBGL.apply(this, args);
  }
};
dart.addTypeTests(web_gl.DrawBuffers);
dart.addTypeCaches(web_gl.DrawBuffers);
dart.setMethodSignature(web_gl.DrawBuffers, () => ({
  __proto__: dart.getMethods(web_gl.DrawBuffers.__proto__),
  [$drawBuffersWebgl]: dart.fnType(dart.void, [core.List$(core.int)])
}));
dart.setLibraryUri(web_gl.DrawBuffers, L70);
dart.registerExtension("WebGLDrawBuffers", web_gl.DrawBuffers);
dart.registerExtension("WEBGL_draw_buffers", web_gl.DrawBuffers);
web_gl.EXTsRgb = class EXTsRgb extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.EXTsRgb);
dart.addTypeCaches(web_gl.EXTsRgb);
dart.setLibraryUri(web_gl.EXTsRgb, L70);
dart.defineLazy(web_gl.EXTsRgb, {
  /*web_gl.EXTsRgb.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT*/get FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT() {
    return 33296;
  },
  /*web_gl.EXTsRgb.SRGB8_ALPHA8_EXT*/get SRGB8_ALPHA8_EXT() {
    return 35907;
  },
  /*web_gl.EXTsRgb.SRGB_ALPHA_EXT*/get SRGB_ALPHA_EXT() {
    return 35906;
  },
  /*web_gl.EXTsRgb.SRGB_EXT*/get SRGB_EXT() {
    return 35904;
  }
}, true);
dart.registerExtension("EXTsRGB", web_gl.EXTsRgb);
dart.registerExtension("EXT_sRGB", web_gl.EXTsRgb);
web_gl.ExtBlendMinMax = class ExtBlendMinMax extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.ExtBlendMinMax);
dart.addTypeCaches(web_gl.ExtBlendMinMax);
dart.setLibraryUri(web_gl.ExtBlendMinMax, L70);
dart.defineLazy(web_gl.ExtBlendMinMax, {
  /*web_gl.ExtBlendMinMax.MAX_EXT*/get MAX_EXT() {
    return 32776;
  },
  /*web_gl.ExtBlendMinMax.MIN_EXT*/get MIN_EXT() {
    return 32775;
  }
}, true);
dart.registerExtension("EXTBlendMinMax", web_gl.ExtBlendMinMax);
dart.registerExtension("EXT_blend_minmax", web_gl.ExtBlendMinMax);
web_gl.ExtColorBufferFloat = class ExtColorBufferFloat extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.ExtColorBufferFloat);
dart.addTypeCaches(web_gl.ExtColorBufferFloat);
dart.setLibraryUri(web_gl.ExtColorBufferFloat, L70);
dart.registerExtension("EXTColorBufferFloat", web_gl.ExtColorBufferFloat);
web_gl.ExtColorBufferHalfFloat = class ExtColorBufferHalfFloat extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.ExtColorBufferHalfFloat);
dart.addTypeCaches(web_gl.ExtColorBufferHalfFloat);
dart.setLibraryUri(web_gl.ExtColorBufferHalfFloat, L70);
dart.registerExtension("EXTColorBufferHalfFloat", web_gl.ExtColorBufferHalfFloat);
web_gl.ExtDisjointTimerQuery = class ExtDisjointTimerQuery extends _interceptors.Interceptor {
  [$beginQueryExt](...args) {
    return this.beginQueryEXT.apply(this, args);
  }
  [$createQueryExt](...args) {
    return this.createQueryEXT.apply(this, args);
  }
  [$deleteQueryExt](...args) {
    return this.deleteQueryEXT.apply(this, args);
  }
  [$endQueryExt](...args) {
    return this.endQueryEXT.apply(this, args);
  }
  [$getQueryExt](...args) {
    return this.getQueryEXT.apply(this, args);
  }
  [$getQueryObjectExt](...args) {
    return this.getQueryObjectEXT.apply(this, args);
  }
  [$isQueryExt](...args) {
    return this.isQueryEXT.apply(this, args);
  }
  [$queryCounterExt](...args) {
    return this.queryCounterEXT.apply(this, args);
  }
};
dart.addTypeTests(web_gl.ExtDisjointTimerQuery);
dart.addTypeCaches(web_gl.ExtDisjointTimerQuery);
dart.setMethodSignature(web_gl.ExtDisjointTimerQuery, () => ({
  __proto__: dart.getMethods(web_gl.ExtDisjointTimerQuery.__proto__),
  [$beginQueryExt]: dart.fnType(dart.void, [core.int, web_gl.TimerQueryExt]),
  [$createQueryExt]: dart.fnType(web_gl.TimerQueryExt, []),
  [$deleteQueryExt]: dart.fnType(dart.void, [web_gl.TimerQueryExt]),
  [$endQueryExt]: dart.fnType(dart.void, [core.int]),
  [$getQueryExt]: dart.fnType(core.Object, [core.int, core.int]),
  [$getQueryObjectExt]: dart.fnType(core.Object, [web_gl.TimerQueryExt, core.int]),
  [$isQueryExt]: dart.fnType(core.bool, [web_gl.TimerQueryExt]),
  [$queryCounterExt]: dart.fnType(dart.void, [web_gl.TimerQueryExt, core.int])
}));
dart.setLibraryUri(web_gl.ExtDisjointTimerQuery, L70);
dart.defineLazy(web_gl.ExtDisjointTimerQuery, {
  /*web_gl.ExtDisjointTimerQuery.CURRENT_QUERY_EXT*/get CURRENT_QUERY_EXT() {
    return 34917;
  },
  /*web_gl.ExtDisjointTimerQuery.GPU_DISJOINT_EXT*/get GPU_DISJOINT_EXT() {
    return 36795;
  },
  /*web_gl.ExtDisjointTimerQuery.QUERY_COUNTER_BITS_EXT*/get QUERY_COUNTER_BITS_EXT() {
    return 34916;
  },
  /*web_gl.ExtDisjointTimerQuery.QUERY_RESULT_AVAILABLE_EXT*/get QUERY_RESULT_AVAILABLE_EXT() {
    return 34919;
  },
  /*web_gl.ExtDisjointTimerQuery.QUERY_RESULT_EXT*/get QUERY_RESULT_EXT() {
    return 34918;
  },
  /*web_gl.ExtDisjointTimerQuery.TIMESTAMP_EXT*/get TIMESTAMP_EXT() {
    return 36392;
  },
  /*web_gl.ExtDisjointTimerQuery.TIME_ELAPSED_EXT*/get TIME_ELAPSED_EXT() {
    return 35007;
  }
}, true);
dart.registerExtension("EXTDisjointTimerQuery", web_gl.ExtDisjointTimerQuery);
web_gl.ExtDisjointTimerQueryWebGL2 = class ExtDisjointTimerQueryWebGL2 extends _interceptors.Interceptor {
  [$queryCounterExt](...args) {
    return this.queryCounterEXT.apply(this, args);
  }
};
dart.addTypeTests(web_gl.ExtDisjointTimerQueryWebGL2);
dart.addTypeCaches(web_gl.ExtDisjointTimerQueryWebGL2);
dart.setMethodSignature(web_gl.ExtDisjointTimerQueryWebGL2, () => ({
  __proto__: dart.getMethods(web_gl.ExtDisjointTimerQueryWebGL2.__proto__),
  [$queryCounterExt]: dart.fnType(dart.void, [web_gl.Query, core.int])
}));
dart.setLibraryUri(web_gl.ExtDisjointTimerQueryWebGL2, L70);
dart.defineLazy(web_gl.ExtDisjointTimerQueryWebGL2, {
  /*web_gl.ExtDisjointTimerQueryWebGL2.GPU_DISJOINT_EXT*/get GPU_DISJOINT_EXT() {
    return 36795;
  },
  /*web_gl.ExtDisjointTimerQueryWebGL2.QUERY_COUNTER_BITS_EXT*/get QUERY_COUNTER_BITS_EXT() {
    return 34916;
  },
  /*web_gl.ExtDisjointTimerQueryWebGL2.TIMESTAMP_EXT*/get TIMESTAMP_EXT() {
    return 36392;
  },
  /*web_gl.ExtDisjointTimerQueryWebGL2.TIME_ELAPSED_EXT*/get TIME_ELAPSED_EXT() {
    return 35007;
  }
}, true);
dart.registerExtension("EXTDisjointTimerQueryWebGL2", web_gl.ExtDisjointTimerQueryWebGL2);
web_gl.ExtFragDepth = class ExtFragDepth extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.ExtFragDepth);
dart.addTypeCaches(web_gl.ExtFragDepth);
dart.setLibraryUri(web_gl.ExtFragDepth, L70);
dart.registerExtension("EXTFragDepth", web_gl.ExtFragDepth);
dart.registerExtension("EXT_frag_depth", web_gl.ExtFragDepth);
web_gl.ExtShaderTextureLod = class ExtShaderTextureLod extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.ExtShaderTextureLod);
dart.addTypeCaches(web_gl.ExtShaderTextureLod);
dart.setLibraryUri(web_gl.ExtShaderTextureLod, L70);
dart.registerExtension("EXTShaderTextureLOD", web_gl.ExtShaderTextureLod);
dart.registerExtension("EXT_shader_texture_lod", web_gl.ExtShaderTextureLod);
web_gl.ExtTextureFilterAnisotropic = class ExtTextureFilterAnisotropic extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.ExtTextureFilterAnisotropic);
dart.addTypeCaches(web_gl.ExtTextureFilterAnisotropic);
dart.setLibraryUri(web_gl.ExtTextureFilterAnisotropic, L70);
dart.defineLazy(web_gl.ExtTextureFilterAnisotropic, {
  /*web_gl.ExtTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT*/get MAX_TEXTURE_MAX_ANISOTROPY_EXT() {
    return 34047;
  },
  /*web_gl.ExtTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT*/get TEXTURE_MAX_ANISOTROPY_EXT() {
    return 34046;
  }
}, true);
dart.registerExtension("EXTTextureFilterAnisotropic", web_gl.ExtTextureFilterAnisotropic);
dart.registerExtension("EXT_texture_filter_anisotropic", web_gl.ExtTextureFilterAnisotropic);
web_gl.Framebuffer = class Framebuffer extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.Framebuffer);
dart.addTypeCaches(web_gl.Framebuffer);
dart.setLibraryUri(web_gl.Framebuffer, L70);
dart.registerExtension("WebGLFramebuffer", web_gl.Framebuffer);
web_gl.GetBufferSubDataAsync = class GetBufferSubDataAsync extends _interceptors.Interceptor {
  [$getBufferSubDataAsync](target, srcByteOffset, dstData, dstOffset = null, length = null) {
    return js_util.promiseToFuture(dart.dynamic, this.getBufferSubDataAsync(target, srcByteOffset, dstData, dstOffset, length));
  }
};
dart.addTypeTests(web_gl.GetBufferSubDataAsync);
dart.addTypeCaches(web_gl.GetBufferSubDataAsync);
dart.setMethodSignature(web_gl.GetBufferSubDataAsync, () => ({
  __proto__: dart.getMethods(web_gl.GetBufferSubDataAsync.__proto__),
  [$getBufferSubDataAsync]: dart.fnType(async.Future, [core.int, core.int, typed_data.TypedData], [core.int, core.int])
}));
dart.setLibraryUri(web_gl.GetBufferSubDataAsync, L70);
dart.registerExtension("WebGLGetBufferSubDataAsync", web_gl.GetBufferSubDataAsync);
web_gl.LoseContext = class LoseContext extends _interceptors.Interceptor {
  [$loseContext](...args) {
    return this.loseContext.apply(this, args);
  }
  [$restoreContext](...args) {
    return this.restoreContext.apply(this, args);
  }
};
dart.addTypeTests(web_gl.LoseContext);
dart.addTypeCaches(web_gl.LoseContext);
dart.setMethodSignature(web_gl.LoseContext, () => ({
  __proto__: dart.getMethods(web_gl.LoseContext.__proto__),
  [$loseContext]: dart.fnType(dart.void, []),
  [$restoreContext]: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(web_gl.LoseContext, L70);
dart.registerExtension("WebGLLoseContext", web_gl.LoseContext);
dart.registerExtension("WebGLExtensionLoseContext", web_gl.LoseContext);
dart.registerExtension("WEBGL_lose_context", web_gl.LoseContext);
web_gl.OesElementIndexUint = class OesElementIndexUint extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.OesElementIndexUint);
dart.addTypeCaches(web_gl.OesElementIndexUint);
dart.setLibraryUri(web_gl.OesElementIndexUint, L70);
dart.registerExtension("OESElementIndexUint", web_gl.OesElementIndexUint);
dart.registerExtension("OES_element_index_uint", web_gl.OesElementIndexUint);
web_gl.OesStandardDerivatives = class OesStandardDerivatives extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.OesStandardDerivatives);
dart.addTypeCaches(web_gl.OesStandardDerivatives);
dart.setLibraryUri(web_gl.OesStandardDerivatives, L70);
dart.defineLazy(web_gl.OesStandardDerivatives, {
  /*web_gl.OesStandardDerivatives.FRAGMENT_SHADER_DERIVATIVE_HINT_OES*/get FRAGMENT_SHADER_DERIVATIVE_HINT_OES() {
    return 35723;
  }
}, true);
dart.registerExtension("OESStandardDerivatives", web_gl.OesStandardDerivatives);
dart.registerExtension("OES_standard_derivatives", web_gl.OesStandardDerivatives);
web_gl.OesTextureFloat = class OesTextureFloat extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.OesTextureFloat);
dart.addTypeCaches(web_gl.OesTextureFloat);
dart.setLibraryUri(web_gl.OesTextureFloat, L70);
dart.registerExtension("OESTextureFloat", web_gl.OesTextureFloat);
dart.registerExtension("OES_texture_float", web_gl.OesTextureFloat);
web_gl.OesTextureFloatLinear = class OesTextureFloatLinear extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.OesTextureFloatLinear);
dart.addTypeCaches(web_gl.OesTextureFloatLinear);
dart.setLibraryUri(web_gl.OesTextureFloatLinear, L70);
dart.registerExtension("OESTextureFloatLinear", web_gl.OesTextureFloatLinear);
dart.registerExtension("OES_texture_float_linear", web_gl.OesTextureFloatLinear);
web_gl.OesTextureHalfFloat = class OesTextureHalfFloat extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.OesTextureHalfFloat);
dart.addTypeCaches(web_gl.OesTextureHalfFloat);
dart.setLibraryUri(web_gl.OesTextureHalfFloat, L70);
dart.defineLazy(web_gl.OesTextureHalfFloat, {
  /*web_gl.OesTextureHalfFloat.HALF_FLOAT_OES*/get HALF_FLOAT_OES() {
    return 36193;
  }
}, true);
dart.registerExtension("OESTextureHalfFloat", web_gl.OesTextureHalfFloat);
dart.registerExtension("OES_texture_half_float", web_gl.OesTextureHalfFloat);
web_gl.OesTextureHalfFloatLinear = class OesTextureHalfFloatLinear extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.OesTextureHalfFloatLinear);
dart.addTypeCaches(web_gl.OesTextureHalfFloatLinear);
dart.setLibraryUri(web_gl.OesTextureHalfFloatLinear, L70);
dart.registerExtension("OESTextureHalfFloatLinear", web_gl.OesTextureHalfFloatLinear);
dart.registerExtension("OES_texture_half_float_linear", web_gl.OesTextureHalfFloatLinear);
web_gl.OesVertexArrayObject = class OesVertexArrayObject extends _interceptors.Interceptor {
  [$bindVertexArray](...args) {
    return this.bindVertexArrayOES.apply(this, args);
  }
  [$createVertexArray](...args) {
    return this.createVertexArrayOES.apply(this, args);
  }
  [$deleteVertexArray](...args) {
    return this.deleteVertexArrayOES.apply(this, args);
  }
  [$isVertexArray](...args) {
    return this.isVertexArrayOES.apply(this, args);
  }
};
dart.addTypeTests(web_gl.OesVertexArrayObject);
dart.addTypeCaches(web_gl.OesVertexArrayObject);
dart.setMethodSignature(web_gl.OesVertexArrayObject, () => ({
  __proto__: dart.getMethods(web_gl.OesVertexArrayObject.__proto__),
  [$bindVertexArray]: dart.fnType(dart.void, [web_gl.VertexArrayObjectOes]),
  [$createVertexArray]: dart.fnType(web_gl.VertexArrayObjectOes, []),
  [$deleteVertexArray]: dart.fnType(dart.void, [web_gl.VertexArrayObjectOes]),
  [$isVertexArray]: dart.fnType(core.bool, [web_gl.VertexArrayObjectOes])
}));
dart.setLibraryUri(web_gl.OesVertexArrayObject, L70);
dart.defineLazy(web_gl.OesVertexArrayObject, {
  /*web_gl.OesVertexArrayObject.VERTEX_ARRAY_BINDING_OES*/get VERTEX_ARRAY_BINDING_OES() {
    return 34229;
  }
}, true);
dart.registerExtension("OESVertexArrayObject", web_gl.OesVertexArrayObject);
dart.registerExtension("OES_vertex_array_object", web_gl.OesVertexArrayObject);
web_gl.Program = class Program extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.Program);
dart.addTypeCaches(web_gl.Program);
dart.setLibraryUri(web_gl.Program, L70);
dart.registerExtension("WebGLProgram", web_gl.Program);
web_gl.Query = class Query extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.Query);
dart.addTypeCaches(web_gl.Query);
dart.setLibraryUri(web_gl.Query, L70);
dart.registerExtension("WebGLQuery", web_gl.Query);
web_gl.Renderbuffer = class Renderbuffer extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.Renderbuffer);
dart.addTypeCaches(web_gl.Renderbuffer);
dart.setLibraryUri(web_gl.Renderbuffer, L70);
dart.registerExtension("WebGLRenderbuffer", web_gl.Renderbuffer);
var _getContextAttributes_1$ = dart.privateName(web_gl, "_getContextAttributes_1");
var _readPixels = dart.privateName(web_gl, "_readPixels");
var _texImage2D_1 = dart.privateName(web_gl, "_texImage2D_1");
var _texImage2D_2 = dart.privateName(web_gl, "_texImage2D_2");
var _texImage2D_3 = dart.privateName(web_gl, "_texImage2D_3");
var _texImage2D_4 = dart.privateName(web_gl, "_texImage2D_4");
var _texImage2D_5 = dart.privateName(web_gl, "_texImage2D_5");
var _texImage2D_6 = dart.privateName(web_gl, "_texImage2D_6");
var _texSubImage2D_1 = dart.privateName(web_gl, "_texSubImage2D_1");
var _texSubImage2D_2 = dart.privateName(web_gl, "_texSubImage2D_2");
var _texSubImage2D_3 = dart.privateName(web_gl, "_texSubImage2D_3");
var _texSubImage2D_4 = dart.privateName(web_gl, "_texSubImage2D_4");
var _texSubImage2D_5 = dart.privateName(web_gl, "_texSubImage2D_5");
var _texSubImage2D_6 = dart.privateName(web_gl, "_texSubImage2D_6");
web_gl.RenderingContext = class RenderingContext extends _interceptors.Interceptor {
  static get supported() {
    return !!window.WebGLRenderingContext;
  }
  get [$canvas]() {
    return this.canvas;
  }
  get [$drawingBufferHeight]() {
    return this.drawingBufferHeight;
  }
  get [$drawingBufferWidth]() {
    return this.drawingBufferWidth;
  }
  [$activeTexture](...args) {
    return this.activeTexture.apply(this, args);
  }
  [$attachShader](...args) {
    return this.attachShader.apply(this, args);
  }
  [$bindAttribLocation](...args) {
    return this.bindAttribLocation.apply(this, args);
  }
  [$bindBuffer](...args) {
    return this.bindBuffer.apply(this, args);
  }
  [$bindFramebuffer](...args) {
    return this.bindFramebuffer.apply(this, args);
  }
  [$bindRenderbuffer](...args) {
    return this.bindRenderbuffer.apply(this, args);
  }
  [$bindTexture](...args) {
    return this.bindTexture.apply(this, args);
  }
  [$blendColor](...args) {
    return this.blendColor.apply(this, args);
  }
  [$blendEquation](...args) {
    return this.blendEquation.apply(this, args);
  }
  [$blendEquationSeparate](...args) {
    return this.blendEquationSeparate.apply(this, args);
  }
  [$blendFunc](...args) {
    return this.blendFunc.apply(this, args);
  }
  [$blendFuncSeparate](...args) {
    return this.blendFuncSeparate.apply(this, args);
  }
  [$bufferData](...args) {
    return this.bufferData.apply(this, args);
  }
  [$bufferSubData](...args) {
    return this.bufferSubData.apply(this, args);
  }
  [$checkFramebufferStatus](...args) {
    return this.checkFramebufferStatus.apply(this, args);
  }
  [$clear](...args) {
    return this.clear.apply(this, args);
  }
  [$clearColor](...args) {
    return this.clearColor.apply(this, args);
  }
  [$clearDepth](...args) {
    return this.clearDepth.apply(this, args);
  }
  [$clearStencil](...args) {
    return this.clearStencil.apply(this, args);
  }
  [$colorMask](...args) {
    return this.colorMask.apply(this, args);
  }
  [$commit]() {
    return js_util.promiseToFuture(dart.dynamic, this.commit());
  }
  [$compileShader](...args) {
    return this.compileShader.apply(this, args);
  }
  [$compressedTexImage2D](...args) {
    return this.compressedTexImage2D.apply(this, args);
  }
  [$compressedTexSubImage2D](...args) {
    return this.compressedTexSubImage2D.apply(this, args);
  }
  [$copyTexImage2D](...args) {
    return this.copyTexImage2D.apply(this, args);
  }
  [$copyTexSubImage2D](...args) {
    return this.copyTexSubImage2D.apply(this, args);
  }
  [$createBuffer](...args) {
    return this.createBuffer.apply(this, args);
  }
  [$createFramebuffer](...args) {
    return this.createFramebuffer.apply(this, args);
  }
  [$createProgram](...args) {
    return this.createProgram.apply(this, args);
  }
  [$createRenderbuffer](...args) {
    return this.createRenderbuffer.apply(this, args);
  }
  [$createShader](...args) {
    return this.createShader.apply(this, args);
  }
  [$createTexture](...args) {
    return this.createTexture.apply(this, args);
  }
  [$cullFace](...args) {
    return this.cullFace.apply(this, args);
  }
  [$deleteBuffer](...args) {
    return this.deleteBuffer.apply(this, args);
  }
  [$deleteFramebuffer](...args) {
    return this.deleteFramebuffer.apply(this, args);
  }
  [$deleteProgram](...args) {
    return this.deleteProgram.apply(this, args);
  }
  [$deleteRenderbuffer](...args) {
    return this.deleteRenderbuffer.apply(this, args);
  }
  [$deleteShader](...args) {
    return this.deleteShader.apply(this, args);
  }
  [$deleteTexture](...args) {
    return this.deleteTexture.apply(this, args);
  }
  [$depthFunc](...args) {
    return this.depthFunc.apply(this, args);
  }
  [$depthMask](...args) {
    return this.depthMask.apply(this, args);
  }
  [$depthRange](...args) {
    return this.depthRange.apply(this, args);
  }
  [$detachShader](...args) {
    return this.detachShader.apply(this, args);
  }
  [$disable](...args) {
    return this.disable.apply(this, args);
  }
  [$disableVertexAttribArray](...args) {
    return this.disableVertexAttribArray.apply(this, args);
  }
  [$drawArrays](...args) {
    return this.drawArrays.apply(this, args);
  }
  [$drawElements](...args) {
    return this.drawElements.apply(this, args);
  }
  [$enable](...args) {
    return this.enable.apply(this, args);
  }
  [$enableVertexAttribArray](...args) {
    return this.enableVertexAttribArray.apply(this, args);
  }
  [$finish](...args) {
    return this.finish.apply(this, args);
  }
  [$flush](...args) {
    return this.flush.apply(this, args);
  }
  [$framebufferRenderbuffer](...args) {
    return this.framebufferRenderbuffer.apply(this, args);
  }
  [$framebufferTexture2D](...args) {
    return this.framebufferTexture2D.apply(this, args);
  }
  [$frontFace](...args) {
    return this.frontFace.apply(this, args);
  }
  [$generateMipmap](...args) {
    return this.generateMipmap.apply(this, args);
  }
  [$getActiveAttrib](...args) {
    return this.getActiveAttrib.apply(this, args);
  }
  [$getActiveUniform](...args) {
    return this.getActiveUniform.apply(this, args);
  }
  [$getAttachedShaders](...args) {
    return this.getAttachedShaders.apply(this, args);
  }
  [$getAttribLocation](...args) {
    return this.getAttribLocation.apply(this, args);
  }
  [$getBufferParameter](...args) {
    return this.getBufferParameter.apply(this, args);
  }
  [$getContextAttributes]() {
    return html_common.convertNativeToDart_Dictionary(this[_getContextAttributes_1$]());
  }
  [_getContextAttributes_1$](...args) {
    return this.getContextAttributes.apply(this, args);
  }
  [$getError](...args) {
    return this.getError.apply(this, args);
  }
  [$getExtension](...args) {
    return this.getExtension.apply(this, args);
  }
  [$getFramebufferAttachmentParameter](...args) {
    return this.getFramebufferAttachmentParameter.apply(this, args);
  }
  [$getParameter](...args) {
    return this.getParameter.apply(this, args);
  }
  [$getProgramInfoLog](...args) {
    return this.getProgramInfoLog.apply(this, args);
  }
  [$getProgramParameter](...args) {
    return this.getProgramParameter.apply(this, args);
  }
  [$getRenderbufferParameter](...args) {
    return this.getRenderbufferParameter.apply(this, args);
  }
  [$getShaderInfoLog](...args) {
    return this.getShaderInfoLog.apply(this, args);
  }
  [$getShaderParameter](...args) {
    return this.getShaderParameter.apply(this, args);
  }
  [$getShaderPrecisionFormat](...args) {
    return this.getShaderPrecisionFormat.apply(this, args);
  }
  [$getShaderSource](...args) {
    return this.getShaderSource.apply(this, args);
  }
  [$getSupportedExtensions](...args) {
    return this.getSupportedExtensions.apply(this, args);
  }
  [$getTexParameter](...args) {
    return this.getTexParameter.apply(this, args);
  }
  [$getUniform](...args) {
    return this.getUniform.apply(this, args);
  }
  [$getUniformLocation](...args) {
    return this.getUniformLocation.apply(this, args);
  }
  [$getVertexAttrib](...args) {
    return this.getVertexAttrib.apply(this, args);
  }
  [$getVertexAttribOffset](...args) {
    return this.getVertexAttribOffset.apply(this, args);
  }
  [$hint](...args) {
    return this.hint.apply(this, args);
  }
  [$isBuffer](...args) {
    return this.isBuffer.apply(this, args);
  }
  [$isContextLost](...args) {
    return this.isContextLost.apply(this, args);
  }
  [$isEnabled](...args) {
    return this.isEnabled.apply(this, args);
  }
  [$isFramebuffer](...args) {
    return this.isFramebuffer.apply(this, args);
  }
  [$isProgram](...args) {
    return this.isProgram.apply(this, args);
  }
  [$isRenderbuffer](...args) {
    return this.isRenderbuffer.apply(this, args);
  }
  [$isShader](...args) {
    return this.isShader.apply(this, args);
  }
  [$isTexture](...args) {
    return this.isTexture.apply(this, args);
  }
  [$lineWidth](...args) {
    return this.lineWidth.apply(this, args);
  }
  [$linkProgram](...args) {
    return this.linkProgram.apply(this, args);
  }
  [$pixelStorei](...args) {
    return this.pixelStorei.apply(this, args);
  }
  [$polygonOffset](...args) {
    return this.polygonOffset.apply(this, args);
  }
  [_readPixels](...args) {
    return this.readPixels.apply(this, args);
  }
  [$renderbufferStorage](...args) {
    return this.renderbufferStorage.apply(this, args);
  }
  [$sampleCoverage](...args) {
    return this.sampleCoverage.apply(this, args);
  }
  [$scissor](...args) {
    return this.scissor.apply(this, args);
  }
  [$shaderSource](...args) {
    return this.shaderSource.apply(this, args);
  }
  [$stencilFunc](...args) {
    return this.stencilFunc.apply(this, args);
  }
  [$stencilFuncSeparate](...args) {
    return this.stencilFuncSeparate.apply(this, args);
  }
  [$stencilMask](...args) {
    return this.stencilMask.apply(this, args);
  }
  [$stencilMaskSeparate](...args) {
    return this.stencilMaskSeparate.apply(this, args);
  }
  [$stencilOp](...args) {
    return this.stencilOp.apply(this, args);
  }
  [$stencilOpSeparate](...args) {
    return this.stencilOpSeparate.apply(this, args);
  }
  [$texImage2D](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video, format = null, type = null, pixels = null) {
    if (type != null && format != null && core.int.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video)) {
      this[_texImage2D_1](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video, format, type, pixels);
      return;
    }
    if (html$.ImageData.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
      let pixels_1 = html_common.convertDartToNative_ImageData(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
      this[_texImage2D_2](target, level, internalformat, format_OR_width, height_OR_type, pixels_1);
      return;
    }
    if (html$.ImageElement.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
      this[_texImage2D_3](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
      return;
    }
    if (html$.CanvasElement.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
      this[_texImage2D_4](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
      return;
    }
    if (html$.VideoElement.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
      this[_texImage2D_5](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
      return;
    }
    if (html$.ImageBitmap.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
      this[_texImage2D_6](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
      return;
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [_texImage2D_1](...args) {
    return this.texImage2D.apply(this, args);
  }
  [_texImage2D_2](...args) {
    return this.texImage2D.apply(this, args);
  }
  [_texImage2D_3](...args) {
    return this.texImage2D.apply(this, args);
  }
  [_texImage2D_4](...args) {
    return this.texImage2D.apply(this, args);
  }
  [_texImage2D_5](...args) {
    return this.texImage2D.apply(this, args);
  }
  [_texImage2D_6](...args) {
    return this.texImage2D.apply(this, args);
  }
  [$texParameterf](...args) {
    return this.texParameterf.apply(this, args);
  }
  [$texParameteri](...args) {
    return this.texParameteri.apply(this, args);
  }
  [$texSubImage2D](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video, type = null, pixels = null) {
    if (type != null && core.int.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video)) {
      this[_texSubImage2D_1](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video, type, pixels);
      return;
    }
    if (html$.ImageData.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
      let pixels_1 = html_common.convertDartToNative_ImageData(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
      this[_texSubImage2D_2](target, level, xoffset, yoffset, format_OR_width, height_OR_type, pixels_1);
      return;
    }
    if (html$.ImageElement.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
      this[_texSubImage2D_3](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
      return;
    }
    if (html$.CanvasElement.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
      this[_texSubImage2D_4](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
      return;
    }
    if (html$.VideoElement.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
      this[_texSubImage2D_5](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
      return;
    }
    if (html$.ImageBitmap.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
      this[_texSubImage2D_6](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
      return;
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [_texSubImage2D_1](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [_texSubImage2D_2](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [_texSubImage2D_3](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [_texSubImage2D_4](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [_texSubImage2D_5](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [_texSubImage2D_6](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [$uniform1f](...args) {
    return this.uniform1f.apply(this, args);
  }
  [$uniform1fv](...args) {
    return this.uniform1fv.apply(this, args);
  }
  [$uniform1i](...args) {
    return this.uniform1i.apply(this, args);
  }
  [$uniform1iv](...args) {
    return this.uniform1iv.apply(this, args);
  }
  [$uniform2f](...args) {
    return this.uniform2f.apply(this, args);
  }
  [$uniform2fv](...args) {
    return this.uniform2fv.apply(this, args);
  }
  [$uniform2i](...args) {
    return this.uniform2i.apply(this, args);
  }
  [$uniform2iv](...args) {
    return this.uniform2iv.apply(this, args);
  }
  [$uniform3f](...args) {
    return this.uniform3f.apply(this, args);
  }
  [$uniform3fv](...args) {
    return this.uniform3fv.apply(this, args);
  }
  [$uniform3i](...args) {
    return this.uniform3i.apply(this, args);
  }
  [$uniform3iv](...args) {
    return this.uniform3iv.apply(this, args);
  }
  [$uniform4f](...args) {
    return this.uniform4f.apply(this, args);
  }
  [$uniform4fv](...args) {
    return this.uniform4fv.apply(this, args);
  }
  [$uniform4i](...args) {
    return this.uniform4i.apply(this, args);
  }
  [$uniform4iv](...args) {
    return this.uniform4iv.apply(this, args);
  }
  [$uniformMatrix2fv](...args) {
    return this.uniformMatrix2fv.apply(this, args);
  }
  [$uniformMatrix3fv](...args) {
    return this.uniformMatrix3fv.apply(this, args);
  }
  [$uniformMatrix4fv](...args) {
    return this.uniformMatrix4fv.apply(this, args);
  }
  [$useProgram](...args) {
    return this.useProgram.apply(this, args);
  }
  [$validateProgram](...args) {
    return this.validateProgram.apply(this, args);
  }
  [$vertexAttrib1f](...args) {
    return this.vertexAttrib1f.apply(this, args);
  }
  [$vertexAttrib1fv](...args) {
    return this.vertexAttrib1fv.apply(this, args);
  }
  [$vertexAttrib2f](...args) {
    return this.vertexAttrib2f.apply(this, args);
  }
  [$vertexAttrib2fv](...args) {
    return this.vertexAttrib2fv.apply(this, args);
  }
  [$vertexAttrib3f](...args) {
    return this.vertexAttrib3f.apply(this, args);
  }
  [$vertexAttrib3fv](...args) {
    return this.vertexAttrib3fv.apply(this, args);
  }
  [$vertexAttrib4f](...args) {
    return this.vertexAttrib4f.apply(this, args);
  }
  [$vertexAttrib4fv](...args) {
    return this.vertexAttrib4fv.apply(this, args);
  }
  [$vertexAttribPointer](...args) {
    return this.vertexAttribPointer.apply(this, args);
  }
  [$viewport](...args) {
    return this.viewport.apply(this, args);
  }
  [$readPixels](x, y, width, height, format, type, pixels) {
    this[_readPixels](x, y, width, height, format, type, pixels);
  }
  [$texImage2DUntyped](targetTexture, levelOfDetail, internalFormat, format, type, data) {
    this[$texImage2D](targetTexture, levelOfDetail, internalFormat, format, type, data);
  }
  [$texImage2DTyped](targetTexture, levelOfDetail, internalFormat, width, height, border, format, type, data) {
    this[$texImage2D](targetTexture, levelOfDetail, internalFormat, width, height, border, format, type, data);
  }
  [$texSubImage2DUntyped](targetTexture, levelOfDetail, xOffset, yOffset, format, type, data) {
    this[$texSubImage2D](targetTexture, levelOfDetail, xOffset, yOffset, format, type, data);
  }
  [$texSubImage2DTyped](targetTexture, levelOfDetail, xOffset, yOffset, width, height, border, format, type, data) {
    this[$texSubImage2D](targetTexture, levelOfDetail, xOffset, yOffset, width, height, format, type, data);
  }
  [$bufferDataTyped](target, data, usage) {
    this.bufferData(target, data, usage);
  }
  [$bufferSubDataTyped](target, offset, data) {
    this.bufferSubData(target, offset, data);
  }
};
dart.addTypeTests(web_gl.RenderingContext);
dart.addTypeCaches(web_gl.RenderingContext);
web_gl.RenderingContext[dart.implements] = () => [html$.CanvasRenderingContext];
dart.setMethodSignature(web_gl.RenderingContext, () => ({
  __proto__: dart.getMethods(web_gl.RenderingContext.__proto__),
  [$activeTexture]: dart.fnType(dart.void, [core.int]),
  [$attachShader]: dart.fnType(dart.void, [web_gl.Program, web_gl.Shader]),
  [$bindAttribLocation]: dart.fnType(dart.void, [web_gl.Program, core.int, core.String]),
  [$bindBuffer]: dart.fnType(dart.void, [core.int, web_gl.Buffer]),
  [$bindFramebuffer]: dart.fnType(dart.void, [core.int, web_gl.Framebuffer]),
  [$bindRenderbuffer]: dart.fnType(dart.void, [core.int, web_gl.Renderbuffer]),
  [$bindTexture]: dart.fnType(dart.void, [core.int, web_gl.Texture]),
  [$blendColor]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
  [$blendEquation]: dart.fnType(dart.void, [core.int]),
  [$blendEquationSeparate]: dart.fnType(dart.void, [core.int, core.int]),
  [$blendFunc]: dart.fnType(dart.void, [core.int, core.int]),
  [$blendFuncSeparate]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
  [$bufferData]: dart.fnType(dart.void, [core.int, dart.dynamic, core.int]),
  [$bufferSubData]: dart.fnType(dart.void, [core.int, core.int, dart.dynamic]),
  [$checkFramebufferStatus]: dart.fnType(core.int, [core.int]),
  [$clear]: dart.fnType(dart.void, [core.int]),
  [$clearColor]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
  [$clearDepth]: dart.fnType(dart.void, [core.num]),
  [$clearStencil]: dart.fnType(dart.void, [core.int]),
  [$colorMask]: dart.fnType(dart.void, [core.bool, core.bool, core.bool, core.bool]),
  [$commit]: dart.fnType(async.Future, []),
  [$compileShader]: dart.fnType(dart.void, [web_gl.Shader]),
  [$compressedTexImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
  [$compressedTexSubImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
  [$copyTexImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
  [$copyTexSubImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
  [$createBuffer]: dart.fnType(web_gl.Buffer, []),
  [$createFramebuffer]: dart.fnType(web_gl.Framebuffer, []),
  [$createProgram]: dart.fnType(web_gl.Program, []),
  [$createRenderbuffer]: dart.fnType(web_gl.Renderbuffer, []),
  [$createShader]: dart.fnType(web_gl.Shader, [core.int]),
  [$createTexture]: dart.fnType(web_gl.Texture, []),
  [$cullFace]: dart.fnType(dart.void, [core.int]),
  [$deleteBuffer]: dart.fnType(dart.void, [web_gl.Buffer]),
  [$deleteFramebuffer]: dart.fnType(dart.void, [web_gl.Framebuffer]),
  [$deleteProgram]: dart.fnType(dart.void, [web_gl.Program]),
  [$deleteRenderbuffer]: dart.fnType(dart.void, [web_gl.Renderbuffer]),
  [$deleteShader]: dart.fnType(dart.void, [web_gl.Shader]),
  [$deleteTexture]: dart.fnType(dart.void, [web_gl.Texture]),
  [$depthFunc]: dart.fnType(dart.void, [core.int]),
  [$depthMask]: dart.fnType(dart.void, [core.bool]),
  [$depthRange]: dart.fnType(dart.void, [core.num, core.num]),
  [$detachShader]: dart.fnType(dart.void, [web_gl.Program, web_gl.Shader]),
  [$disable]: dart.fnType(dart.void, [core.int]),
  [$disableVertexAttribArray]: dart.fnType(dart.void, [core.int]),
  [$drawArrays]: dart.fnType(dart.void, [core.int, core.int, core.int]),
  [$drawElements]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
  [$enable]: dart.fnType(dart.void, [core.int]),
  [$enableVertexAttribArray]: dart.fnType(dart.void, [core.int]),
  [$finish]: dart.fnType(dart.void, []),
  [$flush]: dart.fnType(dart.void, []),
  [$framebufferRenderbuffer]: dart.fnType(dart.void, [core.int, core.int, core.int, web_gl.Renderbuffer]),
  [$framebufferTexture2D]: dart.fnType(dart.void, [core.int, core.int, core.int, web_gl.Texture, core.int]),
  [$frontFace]: dart.fnType(dart.void, [core.int]),
  [$generateMipmap]: dart.fnType(dart.void, [core.int]),
  [$getActiveAttrib]: dart.fnType(web_gl.ActiveInfo, [web_gl.Program, core.int]),
  [$getActiveUniform]: dart.fnType(web_gl.ActiveInfo, [web_gl.Program, core.int]),
  [$getAttachedShaders]: dart.fnType(core.List$(web_gl.Shader), [web_gl.Program]),
  [$getAttribLocation]: dart.fnType(core.int, [web_gl.Program, core.String]),
  [$getBufferParameter]: dart.fnType(core.Object, [core.int, core.int]),
  [$getContextAttributes]: dart.fnType(core.Map, []),
  [_getContextAttributes_1$]: dart.fnType(dart.dynamic, []),
  [$getError]: dart.fnType(core.int, []),
  [$getExtension]: dart.fnType(core.Object, [core.String]),
  [$getFramebufferAttachmentParameter]: dart.fnType(core.Object, [core.int, core.int, core.int]),
  [$getParameter]: dart.fnType(core.Object, [core.int]),
  [$getProgramInfoLog]: dart.fnType(core.String, [web_gl.Program]),
  [$getProgramParameter]: dart.fnType(core.Object, [web_gl.Program, core.int]),
  [$getRenderbufferParameter]: dart.fnType(core.Object, [core.int, core.int]),
  [$getShaderInfoLog]: dart.fnType(core.String, [web_gl.Shader]),
  [$getShaderParameter]: dart.fnType(core.Object, [web_gl.Shader, core.int]),
  [$getShaderPrecisionFormat]: dart.fnType(web_gl.ShaderPrecisionFormat, [core.int, core.int]),
  [$getShaderSource]: dart.fnType(core.String, [web_gl.Shader]),
  [$getSupportedExtensions]: dart.fnType(core.List$(core.String), []),
  [$getTexParameter]: dart.fnType(core.Object, [core.int, core.int]),
  [$getUniform]: dart.fnType(core.Object, [web_gl.Program, web_gl.UniformLocation]),
  [$getUniformLocation]: dart.fnType(web_gl.UniformLocation, [web_gl.Program, core.String]),
  [$getVertexAttrib]: dart.fnType(core.Object, [core.int, core.int]),
  [$getVertexAttribOffset]: dart.fnType(core.int, [core.int, core.int]),
  [$hint]: dart.fnType(dart.void, [core.int, core.int]),
  [$isBuffer]: dart.fnType(core.bool, [web_gl.Buffer]),
  [$isContextLost]: dart.fnType(core.bool, []),
  [$isEnabled]: dart.fnType(core.bool, [core.int]),
  [$isFramebuffer]: dart.fnType(core.bool, [web_gl.Framebuffer]),
  [$isProgram]: dart.fnType(core.bool, [web_gl.Program]),
  [$isRenderbuffer]: dart.fnType(core.bool, [web_gl.Renderbuffer]),
  [$isShader]: dart.fnType(core.bool, [web_gl.Shader]),
  [$isTexture]: dart.fnType(core.bool, [web_gl.Texture]),
  [$lineWidth]: dart.fnType(dart.void, [core.num]),
  [$linkProgram]: dart.fnType(dart.void, [web_gl.Program]),
  [$pixelStorei]: dart.fnType(dart.void, [core.int, core.int]),
  [$polygonOffset]: dart.fnType(dart.void, [core.num, core.num]),
  [_readPixels]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
  [$renderbufferStorage]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
  [$sampleCoverage]: dart.fnType(dart.void, [core.num, core.bool]),
  [$scissor]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
  [$shaderSource]: dart.fnType(dart.void, [web_gl.Shader, core.String]),
  [$stencilFunc]: dart.fnType(dart.void, [core.int, core.int, core.int]),
  [$stencilFuncSeparate]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
  [$stencilMask]: dart.fnType(dart.void, [core.int]),
  [$stencilMaskSeparate]: dart.fnType(dart.void, [core.int, core.int]),
  [$stencilOp]: dart.fnType(dart.void, [core.int, core.int, core.int]),
  [$stencilOpSeparate]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
  [$texImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, dart.dynamic], [core.int, core.int, typed_data.TypedData]),
  [_texImage2D_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int, dart.dynamic, dart.dynamic, typed_data.TypedData]),
  [_texImage2D_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
  [_texImage2D_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
  [_texImage2D_4]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
  [_texImage2D_5]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
  [_texImage2D_6]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageBitmap]),
  [$texParameterf]: dart.fnType(dart.void, [core.int, core.int, core.num]),
  [$texParameteri]: dart.fnType(dart.void, [core.int, core.int, core.int]),
  [$texSubImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic], [core.int, typed_data.TypedData]),
  [_texSubImage2D_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int, dart.dynamic, typed_data.TypedData]),
  [_texSubImage2D_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
  [_texSubImage2D_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
  [_texSubImage2D_4]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
  [_texSubImage2D_5]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
  [_texSubImage2D_6]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageBitmap]),
  [$uniform1f]: dart.fnType(dart.void, [web_gl.UniformLocation, core.num]),
  [$uniform1fv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic]),
  [$uniform1i]: dart.fnType(dart.void, [web_gl.UniformLocation, core.int]),
  [$uniform1iv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic]),
  [$uniform2f]: dart.fnType(dart.void, [web_gl.UniformLocation, core.num, core.num]),
  [$uniform2fv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic]),
  [$uniform2i]: dart.fnType(dart.void, [web_gl.UniformLocation, core.int, core.int]),
  [$uniform2iv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic]),
  [$uniform3f]: dart.fnType(dart.void, [web_gl.UniformLocation, core.num, core.num, core.num]),
  [$uniform3fv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic]),
  [$uniform3i]: dart.fnType(dart.void, [web_gl.UniformLocation, core.int, core.int, core.int]),
  [$uniform3iv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic]),
  [$uniform4f]: dart.fnType(dart.void, [web_gl.UniformLocation, core.num, core.num, core.num, core.num]),
  [$uniform4fv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic]),
  [$uniform4i]: dart.fnType(dart.void, [web_gl.UniformLocation, core.int, core.int, core.int, core.int]),
  [$uniform4iv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic]),
  [$uniformMatrix2fv]: dart.fnType(dart.void, [web_gl.UniformLocation, core.bool, dart.dynamic]),
  [$uniformMatrix3fv]: dart.fnType(dart.void, [web_gl.UniformLocation, core.bool, dart.dynamic]),
  [$uniformMatrix4fv]: dart.fnType(dart.void, [web_gl.UniformLocation, core.bool, dart.dynamic]),
  [$useProgram]: dart.fnType(dart.void, [web_gl.Program]),
  [$validateProgram]: dart.fnType(dart.void, [web_gl.Program]),
  [$vertexAttrib1f]: dart.fnType(dart.void, [core.int, core.num]),
  [$vertexAttrib1fv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
  [$vertexAttrib2f]: dart.fnType(dart.void, [core.int, core.num, core.num]),
  [$vertexAttrib2fv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
  [$vertexAttrib3f]: dart.fnType(dart.void, [core.int, core.num, core.num, core.num]),
  [$vertexAttrib3fv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
  [$vertexAttrib4f]: dart.fnType(dart.void, [core.int, core.num, core.num, core.num, core.num]),
  [$vertexAttrib4fv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
  [$vertexAttribPointer]: dart.fnType(dart.void, [core.int, core.int, core.int, core.bool, core.int, core.int]),
  [$viewport]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
  [$readPixels]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
  [$texImage2DUntyped]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, dart.dynamic]),
  [$texImage2DTyped]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
  [$texSubImage2DUntyped]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic]),
  [$texSubImage2DTyped]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
  [$bufferDataTyped]: dart.fnType(dart.void, [core.int, typed_data.TypedData, core.int]),
  [$bufferSubDataTyped]: dart.fnType(dart.void, [core.int, core.int, typed_data.TypedData])
}));
dart.setGetterSignature(web_gl.RenderingContext, () => ({
  __proto__: dart.getGetters(web_gl.RenderingContext.__proto__),
  [$canvas]: html$.CanvasElement,
  [$drawingBufferHeight]: core.int,
  [$drawingBufferWidth]: core.int
}));
dart.setLibraryUri(web_gl.RenderingContext, L70);
dart.registerExtension("WebGLRenderingContext", web_gl.RenderingContext);
var _getUniformIndices_1 = dart.privateName(web_gl, "_getUniformIndices_1");
var _texImage2D2_1 = dart.privateName(web_gl, "_texImage2D2_1");
var _texImage2D2_2 = dart.privateName(web_gl, "_texImage2D2_2");
var _texImage2D2_3 = dart.privateName(web_gl, "_texImage2D2_3");
var _texImage2D2_4 = dart.privateName(web_gl, "_texImage2D2_4");
var _texImage2D2_5 = dart.privateName(web_gl, "_texImage2D2_5");
var _texImage2D2_6 = dart.privateName(web_gl, "_texImage2D2_6");
var _texImage2D2_7 = dart.privateName(web_gl, "_texImage2D2_7");
var _texImage3D_1 = dart.privateName(web_gl, "_texImage3D_1");
var _texImage3D_2 = dart.privateName(web_gl, "_texImage3D_2");
var _texImage3D_3 = dart.privateName(web_gl, "_texImage3D_3");
var _texImage3D_4 = dart.privateName(web_gl, "_texImage3D_4");
var _texImage3D_5 = dart.privateName(web_gl, "_texImage3D_5");
var _texImage3D_6 = dart.privateName(web_gl, "_texImage3D_6");
var _texImage3D_7 = dart.privateName(web_gl, "_texImage3D_7");
var _texImage3D_8 = dart.privateName(web_gl, "_texImage3D_8");
var _texSubImage2D2_1 = dart.privateName(web_gl, "_texSubImage2D2_1");
var _texSubImage2D2_2 = dart.privateName(web_gl, "_texSubImage2D2_2");
var _texSubImage2D2_3 = dart.privateName(web_gl, "_texSubImage2D2_3");
var _texSubImage2D2_4 = dart.privateName(web_gl, "_texSubImage2D2_4");
var _texSubImage2D2_5 = dart.privateName(web_gl, "_texSubImage2D2_5");
var _texSubImage2D2_6 = dart.privateName(web_gl, "_texSubImage2D2_6");
var _texSubImage2D2_7 = dart.privateName(web_gl, "_texSubImage2D2_7");
var _texSubImage3D_1 = dart.privateName(web_gl, "_texSubImage3D_1");
var _texSubImage3D_2 = dart.privateName(web_gl, "_texSubImage3D_2");
var _texSubImage3D_3 = dart.privateName(web_gl, "_texSubImage3D_3");
var _texSubImage3D_4 = dart.privateName(web_gl, "_texSubImage3D_4");
var _texSubImage3D_5 = dart.privateName(web_gl, "_texSubImage3D_5");
var _texSubImage3D_6 = dart.privateName(web_gl, "_texSubImage3D_6");
var _texSubImage3D_7 = dart.privateName(web_gl, "_texSubImage3D_7");
var _texSubImage3D_8 = dart.privateName(web_gl, "_texSubImage3D_8");
var _transformFeedbackVaryings_1 = dart.privateName(web_gl, "_transformFeedbackVaryings_1");
web_gl.RenderingContext2 = class RenderingContext2 extends _interceptors.Interceptor {
  get [$canvas]() {
    return this.canvas;
  }
  [$beginQuery](...args) {
    return this.beginQuery.apply(this, args);
  }
  [$beginTransformFeedback](...args) {
    return this.beginTransformFeedback.apply(this, args);
  }
  [$bindBufferBase](...args) {
    return this.bindBufferBase.apply(this, args);
  }
  [$bindBufferRange](...args) {
    return this.bindBufferRange.apply(this, args);
  }
  [$bindSampler](...args) {
    return this.bindSampler.apply(this, args);
  }
  [$bindTransformFeedback](...args) {
    return this.bindTransformFeedback.apply(this, args);
  }
  [$bindVertexArray](...args) {
    return this.bindVertexArray.apply(this, args);
  }
  [$blitFramebuffer](...args) {
    return this.blitFramebuffer.apply(this, args);
  }
  [$bufferData2](...args) {
    return this.bufferData.apply(this, args);
  }
  [$bufferSubData2](...args) {
    return this.bufferSubData.apply(this, args);
  }
  [$clearBufferfi](...args) {
    return this.clearBufferfi.apply(this, args);
  }
  [$clearBufferfv](...args) {
    return this.clearBufferfv.apply(this, args);
  }
  [$clearBufferiv](...args) {
    return this.clearBufferiv.apply(this, args);
  }
  [$clearBufferuiv](...args) {
    return this.clearBufferuiv.apply(this, args);
  }
  [$clientWaitSync](...args) {
    return this.clientWaitSync.apply(this, args);
  }
  [$compressedTexImage2D2](...args) {
    return this.compressedTexImage2D.apply(this, args);
  }
  [$compressedTexImage2D3](...args) {
    return this.compressedTexImage2D.apply(this, args);
  }
  [$compressedTexImage3D](...args) {
    return this.compressedTexImage3D.apply(this, args);
  }
  [$compressedTexImage3D2](...args) {
    return this.compressedTexImage3D.apply(this, args);
  }
  [$compressedTexSubImage2D2](...args) {
    return this.compressedTexSubImage2D.apply(this, args);
  }
  [$compressedTexSubImage2D3](...args) {
    return this.compressedTexSubImage2D.apply(this, args);
  }
  [$compressedTexSubImage3D](...args) {
    return this.compressedTexSubImage3D.apply(this, args);
  }
  [$compressedTexSubImage3D2](...args) {
    return this.compressedTexSubImage3D.apply(this, args);
  }
  [$copyBufferSubData](...args) {
    return this.copyBufferSubData.apply(this, args);
  }
  [$copyTexSubImage3D](...args) {
    return this.copyTexSubImage3D.apply(this, args);
  }
  [$createQuery](...args) {
    return this.createQuery.apply(this, args);
  }
  [$createSampler](...args) {
    return this.createSampler.apply(this, args);
  }
  [$createTransformFeedback](...args) {
    return this.createTransformFeedback.apply(this, args);
  }
  [$createVertexArray](...args) {
    return this.createVertexArray.apply(this, args);
  }
  [$deleteQuery](...args) {
    return this.deleteQuery.apply(this, args);
  }
  [$deleteSampler](...args) {
    return this.deleteSampler.apply(this, args);
  }
  [$deleteSync](...args) {
    return this.deleteSync.apply(this, args);
  }
  [$deleteTransformFeedback](...args) {
    return this.deleteTransformFeedback.apply(this, args);
  }
  [$deleteVertexArray](...args) {
    return this.deleteVertexArray.apply(this, args);
  }
  [$drawArraysInstanced](...args) {
    return this.drawArraysInstanced.apply(this, args);
  }
  [$drawBuffers](...args) {
    return this.drawBuffers.apply(this, args);
  }
  [$drawElementsInstanced](...args) {
    return this.drawElementsInstanced.apply(this, args);
  }
  [$drawRangeElements](...args) {
    return this.drawRangeElements.apply(this, args);
  }
  [$endQuery](...args) {
    return this.endQuery.apply(this, args);
  }
  [$endTransformFeedback](...args) {
    return this.endTransformFeedback.apply(this, args);
  }
  [$fenceSync](...args) {
    return this.fenceSync.apply(this, args);
  }
  [$framebufferTextureLayer](...args) {
    return this.framebufferTextureLayer.apply(this, args);
  }
  [$getActiveUniformBlockName](...args) {
    return this.getActiveUniformBlockName.apply(this, args);
  }
  [$getActiveUniformBlockParameter](...args) {
    return this.getActiveUniformBlockParameter.apply(this, args);
  }
  [$getActiveUniforms](...args) {
    return this.getActiveUniforms.apply(this, args);
  }
  [$getBufferSubData](...args) {
    return this.getBufferSubData.apply(this, args);
  }
  [$getFragDataLocation](...args) {
    return this.getFragDataLocation.apply(this, args);
  }
  [$getIndexedParameter](...args) {
    return this.getIndexedParameter.apply(this, args);
  }
  [$getInternalformatParameter](...args) {
    return this.getInternalformatParameter.apply(this, args);
  }
  [$getQuery](...args) {
    return this.getQuery.apply(this, args);
  }
  [$getQueryParameter](...args) {
    return this.getQueryParameter.apply(this, args);
  }
  [$getSamplerParameter](...args) {
    return this.getSamplerParameter.apply(this, args);
  }
  [$getSyncParameter](...args) {
    return this.getSyncParameter.apply(this, args);
  }
  [$getTransformFeedbackVarying](...args) {
    return this.getTransformFeedbackVarying.apply(this, args);
  }
  [$getUniformBlockIndex](...args) {
    return this.getUniformBlockIndex.apply(this, args);
  }
  [$getUniformIndices](program, uniformNames) {
    let uniformNames_1 = html_common.convertDartToNative_StringArray(uniformNames);
    return this[_getUniformIndices_1](program, uniformNames_1);
  }
  [_getUniformIndices_1](...args) {
    return this.getUniformIndices.apply(this, args);
  }
  [$invalidateFramebuffer](...args) {
    return this.invalidateFramebuffer.apply(this, args);
  }
  [$invalidateSubFramebuffer](...args) {
    return this.invalidateSubFramebuffer.apply(this, args);
  }
  [$isQuery](...args) {
    return this.isQuery.apply(this, args);
  }
  [$isSampler](...args) {
    return this.isSampler.apply(this, args);
  }
  [$isSync](...args) {
    return this.isSync.apply(this, args);
  }
  [$isTransformFeedback](...args) {
    return this.isTransformFeedback.apply(this, args);
  }
  [$isVertexArray](...args) {
    return this.isVertexArray.apply(this, args);
  }
  [$pauseTransformFeedback](...args) {
    return this.pauseTransformFeedback.apply(this, args);
  }
  [$readBuffer](...args) {
    return this.readBuffer.apply(this, args);
  }
  [$readPixels2](...args) {
    return this.readPixels.apply(this, args);
  }
  [$renderbufferStorageMultisample](...args) {
    return this.renderbufferStorageMultisample.apply(this, args);
  }
  [$resumeTransformFeedback](...args) {
    return this.resumeTransformFeedback.apply(this, args);
  }
  [$samplerParameterf](...args) {
    return this.samplerParameterf.apply(this, args);
  }
  [$samplerParameteri](...args) {
    return this.samplerParameteri.apply(this, args);
  }
  [$texImage2D2](target, level, internalformat, width, height, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video, srcOffset = null) {
    if (core.int.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
      this[_texImage2D2_1](target, level, internalformat, width, height, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
      return;
    }
    if (html$.ImageData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
      let data_1 = html_common.convertDartToNative_ImageData(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
      this[_texImage2D2_2](target, level, internalformat, width, height, border, format, type, data_1);
      return;
    }
    if (html$.ImageElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
      this[_texImage2D2_3](target, level, internalformat, width, height, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
      return;
    }
    if (html$.CanvasElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
      this[_texImage2D2_4](target, level, internalformat, width, height, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
      return;
    }
    if (html$.VideoElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
      this[_texImage2D2_5](target, level, internalformat, width, height, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
      return;
    }
    if (html$.ImageBitmap.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
      this[_texImage2D2_6](target, level, internalformat, width, height, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
      return;
    }
    if (srcOffset != null && typed_data.TypedData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video)) {
      this[_texImage2D2_7](target, level, internalformat, width, height, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video, srcOffset);
      return;
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [_texImage2D2_1](...args) {
    return this.texImage2D.apply(this, args);
  }
  [_texImage2D2_2](...args) {
    return this.texImage2D.apply(this, args);
  }
  [_texImage2D2_3](...args) {
    return this.texImage2D.apply(this, args);
  }
  [_texImage2D2_4](...args) {
    return this.texImage2D.apply(this, args);
  }
  [_texImage2D2_5](...args) {
    return this.texImage2D.apply(this, args);
  }
  [_texImage2D2_6](...args) {
    return this.texImage2D.apply(this, args);
  }
  [_texImage2D2_7](...args) {
    return this.texImage2D.apply(this, args);
  }
  [$texImage3D](target, level, internalformat, width, height, depth, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video, srcOffset = null) {
    if (core.int.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
      this[_texImage3D_1](target, level, internalformat, width, height, depth, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
      return;
    }
    if (html$.ImageData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
      let data_1 = html_common.convertDartToNative_ImageData(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
      this[_texImage3D_2](target, level, internalformat, width, height, depth, border, format, type, data_1);
      return;
    }
    if (html$.ImageElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
      this[_texImage3D_3](target, level, internalformat, width, height, depth, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
      return;
    }
    if (html$.CanvasElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
      this[_texImage3D_4](target, level, internalformat, width, height, depth, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
      return;
    }
    if (html$.VideoElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
      this[_texImage3D_5](target, level, internalformat, width, height, depth, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
      return;
    }
    if (html$.ImageBitmap.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
      this[_texImage3D_6](target, level, internalformat, width, height, depth, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
      return;
    }
    if ((typed_data.TypedData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) || bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video == null) && srcOffset == null) {
      this[_texImage3D_7](target, level, internalformat, width, height, depth, border, format, type, typed_data.TypedData.as(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video));
      return;
    }
    if (srcOffset != null && typed_data.TypedData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video)) {
      this[_texImage3D_8](target, level, internalformat, width, height, depth, border, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video, srcOffset);
      return;
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [_texImage3D_1](...args) {
    return this.texImage3D.apply(this, args);
  }
  [_texImage3D_2](...args) {
    return this.texImage3D.apply(this, args);
  }
  [_texImage3D_3](...args) {
    return this.texImage3D.apply(this, args);
  }
  [_texImage3D_4](...args) {
    return this.texImage3D.apply(this, args);
  }
  [_texImage3D_5](...args) {
    return this.texImage3D.apply(this, args);
  }
  [_texImage3D_6](...args) {
    return this.texImage3D.apply(this, args);
  }
  [_texImage3D_7](...args) {
    return this.texImage3D.apply(this, args);
  }
  [_texImage3D_8](...args) {
    return this.texImage3D.apply(this, args);
  }
  [$texStorage2D](...args) {
    return this.texStorage2D.apply(this, args);
  }
  [$texStorage3D](...args) {
    return this.texStorage3D.apply(this, args);
  }
  [$texSubImage2D2](target, level, xoffset, yoffset, width, height, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video, srcOffset = null) {
    if (core.int.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
      this[_texSubImage2D2_1](target, level, xoffset, yoffset, width, height, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
      return;
    }
    if (html$.ImageData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
      let data_1 = html_common.convertDartToNative_ImageData(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
      this[_texSubImage2D2_2](target, level, xoffset, yoffset, width, height, format, type, data_1);
      return;
    }
    if (html$.ImageElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
      this[_texSubImage2D2_3](target, level, xoffset, yoffset, width, height, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
      return;
    }
    if (html$.CanvasElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
      this[_texSubImage2D2_4](target, level, xoffset, yoffset, width, height, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
      return;
    }
    if (html$.VideoElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
      this[_texSubImage2D2_5](target, level, xoffset, yoffset, width, height, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
      return;
    }
    if (html$.ImageBitmap.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video) && srcOffset == null) {
      this[_texSubImage2D2_6](target, level, xoffset, yoffset, width, height, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
      return;
    }
    if (srcOffset != null && typed_data.TypedData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video)) {
      this[_texSubImage2D2_7](target, level, xoffset, yoffset, width, height, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video, srcOffset);
      return;
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [_texSubImage2D2_1](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [_texSubImage2D2_2](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [_texSubImage2D2_3](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [_texSubImage2D2_4](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [_texSubImage2D2_5](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [_texSubImage2D2_6](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [_texSubImage2D2_7](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [$texSubImage3D](target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video, srcOffset = null) {
    if (core.int.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
      this[_texSubImage3D_1](target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
      return;
    }
    if (html$.ImageData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
      let data_1 = html_common.convertDartToNative_ImageData(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
      this[_texSubImage3D_2](target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data_1);
      return;
    }
    if (html$.ImageElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
      this[_texSubImage3D_3](target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
      return;
    }
    if (html$.CanvasElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
      this[_texSubImage3D_4](target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
      return;
    }
    if (html$.VideoElement.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
      this[_texSubImage3D_5](target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
      return;
    }
    if (html$.ImageBitmap.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
      this[_texSubImage3D_6](target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
      return;
    }
    if (typed_data.TypedData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video) && srcOffset == null) {
      this[_texSubImage3D_7](target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
      return;
    }
    if (srcOffset != null && typed_data.TypedData.is(bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video)) {
      this[_texSubImage3D_8](target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video, srcOffset);
      return;
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [_texSubImage3D_1](...args) {
    return this.texSubImage3D.apply(this, args);
  }
  [_texSubImage3D_2](...args) {
    return this.texSubImage3D.apply(this, args);
  }
  [_texSubImage3D_3](...args) {
    return this.texSubImage3D.apply(this, args);
  }
  [_texSubImage3D_4](...args) {
    return this.texSubImage3D.apply(this, args);
  }
  [_texSubImage3D_5](...args) {
    return this.texSubImage3D.apply(this, args);
  }
  [_texSubImage3D_6](...args) {
    return this.texSubImage3D.apply(this, args);
  }
  [_texSubImage3D_7](...args) {
    return this.texSubImage3D.apply(this, args);
  }
  [_texSubImage3D_8](...args) {
    return this.texSubImage3D.apply(this, args);
  }
  [$transformFeedbackVaryings](program, varyings, bufferMode) {
    let varyings_1 = html_common.convertDartToNative_StringArray(varyings);
    this[_transformFeedbackVaryings_1](program, varyings_1, bufferMode);
    return;
  }
  [_transformFeedbackVaryings_1](...args) {
    return this.transformFeedbackVaryings.apply(this, args);
  }
  [$uniform1fv2](...args) {
    return this.uniform1fv.apply(this, args);
  }
  [$uniform1iv2](...args) {
    return this.uniform1iv.apply(this, args);
  }
  [$uniform1ui](...args) {
    return this.uniform1ui.apply(this, args);
  }
  [$uniform1uiv](...args) {
    return this.uniform1uiv.apply(this, args);
  }
  [$uniform2fv2](...args) {
    return this.uniform2fv.apply(this, args);
  }
  [$uniform2iv2](...args) {
    return this.uniform2iv.apply(this, args);
  }
  [$uniform2ui](...args) {
    return this.uniform2ui.apply(this, args);
  }
  [$uniform2uiv](...args) {
    return this.uniform2uiv.apply(this, args);
  }
  [$uniform3fv2](...args) {
    return this.uniform3fv.apply(this, args);
  }
  [$uniform3iv2](...args) {
    return this.uniform3iv.apply(this, args);
  }
  [$uniform3ui](...args) {
    return this.uniform3ui.apply(this, args);
  }
  [$uniform3uiv](...args) {
    return this.uniform3uiv.apply(this, args);
  }
  [$uniform4fv2](...args) {
    return this.uniform4fv.apply(this, args);
  }
  [$uniform4iv2](...args) {
    return this.uniform4iv.apply(this, args);
  }
  [$uniform4ui](...args) {
    return this.uniform4ui.apply(this, args);
  }
  [$uniform4uiv](...args) {
    return this.uniform4uiv.apply(this, args);
  }
  [$uniformBlockBinding](...args) {
    return this.uniformBlockBinding.apply(this, args);
  }
  [$uniformMatrix2fv2](...args) {
    return this.uniformMatrix2fv.apply(this, args);
  }
  [$uniformMatrix2x3fv](...args) {
    return this.uniformMatrix2x3fv.apply(this, args);
  }
  [$uniformMatrix2x4fv](...args) {
    return this.uniformMatrix2x4fv.apply(this, args);
  }
  [$uniformMatrix3fv2](...args) {
    return this.uniformMatrix3fv.apply(this, args);
  }
  [$uniformMatrix3x2fv](...args) {
    return this.uniformMatrix3x2fv.apply(this, args);
  }
  [$uniformMatrix3x4fv](...args) {
    return this.uniformMatrix3x4fv.apply(this, args);
  }
  [$uniformMatrix4fv2](...args) {
    return this.uniformMatrix4fv.apply(this, args);
  }
  [$uniformMatrix4x2fv](...args) {
    return this.uniformMatrix4x2fv.apply(this, args);
  }
  [$uniformMatrix4x3fv](...args) {
    return this.uniformMatrix4x3fv.apply(this, args);
  }
  [$vertexAttribDivisor](...args) {
    return this.vertexAttribDivisor.apply(this, args);
  }
  [$vertexAttribI4i](...args) {
    return this.vertexAttribI4i.apply(this, args);
  }
  [$vertexAttribI4iv](...args) {
    return this.vertexAttribI4iv.apply(this, args);
  }
  [$vertexAttribI4ui](...args) {
    return this.vertexAttribI4ui.apply(this, args);
  }
  [$vertexAttribI4uiv](...args) {
    return this.vertexAttribI4uiv.apply(this, args);
  }
  [$vertexAttribIPointer](...args) {
    return this.vertexAttribIPointer.apply(this, args);
  }
  [$waitSync](...args) {
    return this.waitSync.apply(this, args);
  }
  get [$drawingBufferHeight]() {
    return this.drawingBufferHeight;
  }
  get [$drawingBufferWidth]() {
    return this.drawingBufferWidth;
  }
  [$activeTexture](...args) {
    return this.activeTexture.apply(this, args);
  }
  [$attachShader](...args) {
    return this.attachShader.apply(this, args);
  }
  [$bindAttribLocation](...args) {
    return this.bindAttribLocation.apply(this, args);
  }
  [$bindBuffer](...args) {
    return this.bindBuffer.apply(this, args);
  }
  [$bindFramebuffer](...args) {
    return this.bindFramebuffer.apply(this, args);
  }
  [$bindRenderbuffer](...args) {
    return this.bindRenderbuffer.apply(this, args);
  }
  [$bindTexture](...args) {
    return this.bindTexture.apply(this, args);
  }
  [$blendColor](...args) {
    return this.blendColor.apply(this, args);
  }
  [$blendEquation](...args) {
    return this.blendEquation.apply(this, args);
  }
  [$blendEquationSeparate](...args) {
    return this.blendEquationSeparate.apply(this, args);
  }
  [$blendFunc](...args) {
    return this.blendFunc.apply(this, args);
  }
  [$blendFuncSeparate](...args) {
    return this.blendFuncSeparate.apply(this, args);
  }
  [$bufferData](...args) {
    return this.bufferData.apply(this, args);
  }
  [$bufferSubData](...args) {
    return this.bufferSubData.apply(this, args);
  }
  [$checkFramebufferStatus](...args) {
    return this.checkFramebufferStatus.apply(this, args);
  }
  [$clear](...args) {
    return this.clear.apply(this, args);
  }
  [$clearColor](...args) {
    return this.clearColor.apply(this, args);
  }
  [$clearDepth](...args) {
    return this.clearDepth.apply(this, args);
  }
  [$clearStencil](...args) {
    return this.clearStencil.apply(this, args);
  }
  [$colorMask](...args) {
    return this.colorMask.apply(this, args);
  }
  [$commit]() {
    return js_util.promiseToFuture(dart.dynamic, this.commit());
  }
  [$compileShader](...args) {
    return this.compileShader.apply(this, args);
  }
  [$compressedTexImage2D](...args) {
    return this.compressedTexImage2D.apply(this, args);
  }
  [$compressedTexSubImage2D](...args) {
    return this.compressedTexSubImage2D.apply(this, args);
  }
  [$copyTexImage2D](...args) {
    return this.copyTexImage2D.apply(this, args);
  }
  [$copyTexSubImage2D](...args) {
    return this.copyTexSubImage2D.apply(this, args);
  }
  [$createBuffer](...args) {
    return this.createBuffer.apply(this, args);
  }
  [$createFramebuffer](...args) {
    return this.createFramebuffer.apply(this, args);
  }
  [$createProgram](...args) {
    return this.createProgram.apply(this, args);
  }
  [$createRenderbuffer](...args) {
    return this.createRenderbuffer.apply(this, args);
  }
  [$createShader](...args) {
    return this.createShader.apply(this, args);
  }
  [$createTexture](...args) {
    return this.createTexture.apply(this, args);
  }
  [$cullFace](...args) {
    return this.cullFace.apply(this, args);
  }
  [$deleteBuffer](...args) {
    return this.deleteBuffer.apply(this, args);
  }
  [$deleteFramebuffer](...args) {
    return this.deleteFramebuffer.apply(this, args);
  }
  [$deleteProgram](...args) {
    return this.deleteProgram.apply(this, args);
  }
  [$deleteRenderbuffer](...args) {
    return this.deleteRenderbuffer.apply(this, args);
  }
  [$deleteShader](...args) {
    return this.deleteShader.apply(this, args);
  }
  [$deleteTexture](...args) {
    return this.deleteTexture.apply(this, args);
  }
  [$depthFunc](...args) {
    return this.depthFunc.apply(this, args);
  }
  [$depthMask](...args) {
    return this.depthMask.apply(this, args);
  }
  [$depthRange](...args) {
    return this.depthRange.apply(this, args);
  }
  [$detachShader](...args) {
    return this.detachShader.apply(this, args);
  }
  [$disable](...args) {
    return this.disable.apply(this, args);
  }
  [$disableVertexAttribArray](...args) {
    return this.disableVertexAttribArray.apply(this, args);
  }
  [$drawArrays](...args) {
    return this.drawArrays.apply(this, args);
  }
  [$drawElements](...args) {
    return this.drawElements.apply(this, args);
  }
  [$enable](...args) {
    return this.enable.apply(this, args);
  }
  [$enableVertexAttribArray](...args) {
    return this.enableVertexAttribArray.apply(this, args);
  }
  [$finish](...args) {
    return this.finish.apply(this, args);
  }
  [$flush](...args) {
    return this.flush.apply(this, args);
  }
  [$framebufferRenderbuffer](...args) {
    return this.framebufferRenderbuffer.apply(this, args);
  }
  [$framebufferTexture2D](...args) {
    return this.framebufferTexture2D.apply(this, args);
  }
  [$frontFace](...args) {
    return this.frontFace.apply(this, args);
  }
  [$generateMipmap](...args) {
    return this.generateMipmap.apply(this, args);
  }
  [$getActiveAttrib](...args) {
    return this.getActiveAttrib.apply(this, args);
  }
  [$getActiveUniform](...args) {
    return this.getActiveUniform.apply(this, args);
  }
  [$getAttachedShaders](...args) {
    return this.getAttachedShaders.apply(this, args);
  }
  [$getAttribLocation](...args) {
    return this.getAttribLocation.apply(this, args);
  }
  [$getBufferParameter](...args) {
    return this.getBufferParameter.apply(this, args);
  }
  [$getContextAttributes]() {
    return html_common.convertNativeToDart_Dictionary(this[_getContextAttributes_1$]());
  }
  [_getContextAttributes_1$](...args) {
    return this.getContextAttributes.apply(this, args);
  }
  [$getError](...args) {
    return this.getError.apply(this, args);
  }
  [$getExtension](...args) {
    return this.getExtension.apply(this, args);
  }
  [$getFramebufferAttachmentParameter](...args) {
    return this.getFramebufferAttachmentParameter.apply(this, args);
  }
  [$getParameter](...args) {
    return this.getParameter.apply(this, args);
  }
  [$getProgramInfoLog](...args) {
    return this.getProgramInfoLog.apply(this, args);
  }
  [$getProgramParameter](...args) {
    return this.getProgramParameter.apply(this, args);
  }
  [$getRenderbufferParameter](...args) {
    return this.getRenderbufferParameter.apply(this, args);
  }
  [$getShaderInfoLog](...args) {
    return this.getShaderInfoLog.apply(this, args);
  }
  [$getShaderParameter](...args) {
    return this.getShaderParameter.apply(this, args);
  }
  [$getShaderPrecisionFormat](...args) {
    return this.getShaderPrecisionFormat.apply(this, args);
  }
  [$getShaderSource](...args) {
    return this.getShaderSource.apply(this, args);
  }
  [$getSupportedExtensions](...args) {
    return this.getSupportedExtensions.apply(this, args);
  }
  [$getTexParameter](...args) {
    return this.getTexParameter.apply(this, args);
  }
  [$getUniform](...args) {
    return this.getUniform.apply(this, args);
  }
  [$getUniformLocation](...args) {
    return this.getUniformLocation.apply(this, args);
  }
  [$getVertexAttrib](...args) {
    return this.getVertexAttrib.apply(this, args);
  }
  [$getVertexAttribOffset](...args) {
    return this.getVertexAttribOffset.apply(this, args);
  }
  [$hint](...args) {
    return this.hint.apply(this, args);
  }
  [$isBuffer](...args) {
    return this.isBuffer.apply(this, args);
  }
  [$isContextLost](...args) {
    return this.isContextLost.apply(this, args);
  }
  [$isEnabled](...args) {
    return this.isEnabled.apply(this, args);
  }
  [$isFramebuffer](...args) {
    return this.isFramebuffer.apply(this, args);
  }
  [$isProgram](...args) {
    return this.isProgram.apply(this, args);
  }
  [$isRenderbuffer](...args) {
    return this.isRenderbuffer.apply(this, args);
  }
  [$isShader](...args) {
    return this.isShader.apply(this, args);
  }
  [$isTexture](...args) {
    return this.isTexture.apply(this, args);
  }
  [$lineWidth](...args) {
    return this.lineWidth.apply(this, args);
  }
  [$linkProgram](...args) {
    return this.linkProgram.apply(this, args);
  }
  [$pixelStorei](...args) {
    return this.pixelStorei.apply(this, args);
  }
  [$polygonOffset](...args) {
    return this.polygonOffset.apply(this, args);
  }
  [_readPixels](...args) {
    return this.readPixels.apply(this, args);
  }
  [$renderbufferStorage](...args) {
    return this.renderbufferStorage.apply(this, args);
  }
  [$sampleCoverage](...args) {
    return this.sampleCoverage.apply(this, args);
  }
  [$scissor](...args) {
    return this.scissor.apply(this, args);
  }
  [$shaderSource](...args) {
    return this.shaderSource.apply(this, args);
  }
  [$stencilFunc](...args) {
    return this.stencilFunc.apply(this, args);
  }
  [$stencilFuncSeparate](...args) {
    return this.stencilFuncSeparate.apply(this, args);
  }
  [$stencilMask](...args) {
    return this.stencilMask.apply(this, args);
  }
  [$stencilMaskSeparate](...args) {
    return this.stencilMaskSeparate.apply(this, args);
  }
  [$stencilOp](...args) {
    return this.stencilOp.apply(this, args);
  }
  [$stencilOpSeparate](...args) {
    return this.stencilOpSeparate.apply(this, args);
  }
  [$texImage2D](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video, format = null, type = null, pixels = null) {
    if (type != null && format != null && core.int.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video)) {
      this[_texImage2D_1](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video, format, type, pixels);
      return;
    }
    if (html$.ImageData.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
      let pixels_1 = html_common.convertDartToNative_ImageData(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
      this[_texImage2D_2](target, level, internalformat, format_OR_width, height_OR_type, pixels_1);
      return;
    }
    if (html$.ImageElement.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
      this[_texImage2D_3](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
      return;
    }
    if (html$.CanvasElement.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
      this[_texImage2D_4](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
      return;
    }
    if (html$.VideoElement.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
      this[_texImage2D_5](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
      return;
    }
    if (html$.ImageBitmap.is(bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
      this[_texImage2D_6](target, level, internalformat, format_OR_width, height_OR_type, bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
      return;
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [_texImage2D_1](...args) {
    return this.texImage2D.apply(this, args);
  }
  [_texImage2D_2](...args) {
    return this.texImage2D.apply(this, args);
  }
  [_texImage2D_3](...args) {
    return this.texImage2D.apply(this, args);
  }
  [_texImage2D_4](...args) {
    return this.texImage2D.apply(this, args);
  }
  [_texImage2D_5](...args) {
    return this.texImage2D.apply(this, args);
  }
  [_texImage2D_6](...args) {
    return this.texImage2D.apply(this, args);
  }
  [$texParameterf](...args) {
    return this.texParameterf.apply(this, args);
  }
  [$texParameteri](...args) {
    return this.texParameteri.apply(this, args);
  }
  [$texSubImage2D](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video, type = null, pixels = null) {
    if (type != null && core.int.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video)) {
      this[_texSubImage2D_1](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video, type, pixels);
      return;
    }
    if (html$.ImageData.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
      let pixels_1 = html_common.convertDartToNative_ImageData(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
      this[_texSubImage2D_2](target, level, xoffset, yoffset, format_OR_width, height_OR_type, pixels_1);
      return;
    }
    if (html$.ImageElement.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
      this[_texSubImage2D_3](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
      return;
    }
    if (html$.CanvasElement.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
      this[_texSubImage2D_4](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
      return;
    }
    if (html$.VideoElement.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
      this[_texSubImage2D_5](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
      return;
    }
    if (html$.ImageBitmap.is(bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
      this[_texSubImage2D_6](target, level, xoffset, yoffset, format_OR_width, height_OR_type, bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
      return;
    }
    dart.throw(new core.ArgumentError.new("Incorrect number or type of arguments"));
  }
  [_texSubImage2D_1](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [_texSubImage2D_2](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [_texSubImage2D_3](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [_texSubImage2D_4](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [_texSubImage2D_5](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [_texSubImage2D_6](...args) {
    return this.texSubImage2D.apply(this, args);
  }
  [$uniform1f](...args) {
    return this.uniform1f.apply(this, args);
  }
  [$uniform1fv](...args) {
    return this.uniform1fv.apply(this, args);
  }
  [$uniform1i](...args) {
    return this.uniform1i.apply(this, args);
  }
  [$uniform1iv](...args) {
    return this.uniform1iv.apply(this, args);
  }
  [$uniform2f](...args) {
    return this.uniform2f.apply(this, args);
  }
  [$uniform2fv](...args) {
    return this.uniform2fv.apply(this, args);
  }
  [$uniform2i](...args) {
    return this.uniform2i.apply(this, args);
  }
  [$uniform2iv](...args) {
    return this.uniform2iv.apply(this, args);
  }
  [$uniform3f](...args) {
    return this.uniform3f.apply(this, args);
  }
  [$uniform3fv](...args) {
    return this.uniform3fv.apply(this, args);
  }
  [$uniform3i](...args) {
    return this.uniform3i.apply(this, args);
  }
  [$uniform3iv](...args) {
    return this.uniform3iv.apply(this, args);
  }
  [$uniform4f](...args) {
    return this.uniform4f.apply(this, args);
  }
  [$uniform4fv](...args) {
    return this.uniform4fv.apply(this, args);
  }
  [$uniform4i](...args) {
    return this.uniform4i.apply(this, args);
  }
  [$uniform4iv](...args) {
    return this.uniform4iv.apply(this, args);
  }
  [$uniformMatrix2fv](...args) {
    return this.uniformMatrix2fv.apply(this, args);
  }
  [$uniformMatrix3fv](...args) {
    return this.uniformMatrix3fv.apply(this, args);
  }
  [$uniformMatrix4fv](...args) {
    return this.uniformMatrix4fv.apply(this, args);
  }
  [$useProgram](...args) {
    return this.useProgram.apply(this, args);
  }
  [$validateProgram](...args) {
    return this.validateProgram.apply(this, args);
  }
  [$vertexAttrib1f](...args) {
    return this.vertexAttrib1f.apply(this, args);
  }
  [$vertexAttrib1fv](...args) {
    return this.vertexAttrib1fv.apply(this, args);
  }
  [$vertexAttrib2f](...args) {
    return this.vertexAttrib2f.apply(this, args);
  }
  [$vertexAttrib2fv](...args) {
    return this.vertexAttrib2fv.apply(this, args);
  }
  [$vertexAttrib3f](...args) {
    return this.vertexAttrib3f.apply(this, args);
  }
  [$vertexAttrib3fv](...args) {
    return this.vertexAttrib3fv.apply(this, args);
  }
  [$vertexAttrib4f](...args) {
    return this.vertexAttrib4f.apply(this, args);
  }
  [$vertexAttrib4fv](...args) {
    return this.vertexAttrib4fv.apply(this, args);
  }
  [$vertexAttribPointer](...args) {
    return this.vertexAttribPointer.apply(this, args);
  }
  [$viewport](...args) {
    return this.viewport.apply(this, args);
  }
  [$readPixels](x, y, width, height, format, type, pixels) {
    this[_readPixels](x, y, width, height, format, type, pixels);
  }
};
dart.addTypeTests(web_gl.RenderingContext2);
dart.addTypeCaches(web_gl.RenderingContext2);
web_gl.RenderingContext2[dart.implements] = () => [web_gl._WebGL2RenderingContextBase, web_gl._WebGLRenderingContextBase];
dart.setMethodSignature(web_gl.RenderingContext2, () => ({
  __proto__: dart.getMethods(web_gl.RenderingContext2.__proto__),
  [$beginQuery]: dart.fnType(dart.void, [core.int, web_gl.Query]),
  [$beginTransformFeedback]: dart.fnType(dart.void, [core.int]),
  [$bindBufferBase]: dart.fnType(dart.void, [core.int, core.int, web_gl.Buffer]),
  [$bindBufferRange]: dart.fnType(dart.void, [core.int, core.int, web_gl.Buffer, core.int, core.int]),
  [$bindSampler]: dart.fnType(dart.void, [core.int, web_gl.Sampler]),
  [$bindTransformFeedback]: dart.fnType(dart.void, [core.int, web_gl.TransformFeedback]),
  [$bindVertexArray]: dart.fnType(dart.void, [web_gl.VertexArrayObject]),
  [$blitFramebuffer]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
  [$bufferData2]: dart.fnType(dart.void, [core.int, typed_data.TypedData, core.int, core.int], [core.int]),
  [$bufferSubData2]: dart.fnType(dart.void, [core.int, core.int, typed_data.TypedData, core.int], [core.int]),
  [$clearBufferfi]: dart.fnType(dart.void, [core.int, core.int, core.num, core.int]),
  [$clearBufferfv]: dart.fnType(dart.void, [core.int, core.int, dart.dynamic], [core.int]),
  [$clearBufferiv]: dart.fnType(dart.void, [core.int, core.int, dart.dynamic], [core.int]),
  [$clearBufferuiv]: dart.fnType(dart.void, [core.int, core.int, dart.dynamic], [core.int]),
  [$clientWaitSync]: dart.fnType(core.int, [web_gl.Sync, core.int, core.int]),
  [$compressedTexImage2D2]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData, core.int], [core.int]),
  [$compressedTexImage2D3]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
  [$compressedTexImage3D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData], [core.int, core.int]),
  [$compressedTexImage3D2]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
  [$compressedTexSubImage2D2]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData, core.int], [core.int]),
  [$compressedTexSubImage2D3]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
  [$compressedTexSubImage3D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData], [core.int, core.int]),
  [$compressedTexSubImage3D2]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
  [$copyBufferSubData]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int]),
  [$copyTexSubImage3D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
  [$createQuery]: dart.fnType(web_gl.Query, []),
  [$createSampler]: dart.fnType(web_gl.Sampler, []),
  [$createTransformFeedback]: dart.fnType(web_gl.TransformFeedback, []),
  [$createVertexArray]: dart.fnType(web_gl.VertexArrayObject, []),
  [$deleteQuery]: dart.fnType(dart.void, [web_gl.Query]),
  [$deleteSampler]: dart.fnType(dart.void, [web_gl.Sampler]),
  [$deleteSync]: dart.fnType(dart.void, [web_gl.Sync]),
  [$deleteTransformFeedback]: dart.fnType(dart.void, [web_gl.TransformFeedback]),
  [$deleteVertexArray]: dart.fnType(dart.void, [web_gl.VertexArrayObject]),
  [$drawArraysInstanced]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
  [$drawBuffers]: dart.fnType(dart.void, [core.List$(core.int)]),
  [$drawElementsInstanced]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int]),
  [$drawRangeElements]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int]),
  [$endQuery]: dart.fnType(dart.void, [core.int]),
  [$endTransformFeedback]: dart.fnType(dart.void, []),
  [$fenceSync]: dart.fnType(web_gl.Sync, [core.int, core.int]),
  [$framebufferTextureLayer]: dart.fnType(dart.void, [core.int, core.int, web_gl.Texture, core.int, core.int]),
  [$getActiveUniformBlockName]: dart.fnType(core.String, [web_gl.Program, core.int]),
  [$getActiveUniformBlockParameter]: dart.fnType(core.Object, [web_gl.Program, core.int, core.int]),
  [$getActiveUniforms]: dart.fnType(core.Object, [web_gl.Program, core.List$(core.int), core.int]),
  [$getBufferSubData]: dart.fnType(dart.void, [core.int, core.int, typed_data.TypedData], [core.int, core.int]),
  [$getFragDataLocation]: dart.fnType(core.int, [web_gl.Program, core.String]),
  [$getIndexedParameter]: dart.fnType(core.Object, [core.int, core.int]),
  [$getInternalformatParameter]: dart.fnType(core.Object, [core.int, core.int, core.int]),
  [$getQuery]: dart.fnType(core.Object, [core.int, core.int]),
  [$getQueryParameter]: dart.fnType(core.Object, [web_gl.Query, core.int]),
  [$getSamplerParameter]: dart.fnType(core.Object, [web_gl.Sampler, core.int]),
  [$getSyncParameter]: dart.fnType(core.Object, [web_gl.Sync, core.int]),
  [$getTransformFeedbackVarying]: dart.fnType(web_gl.ActiveInfo, [web_gl.Program, core.int]),
  [$getUniformBlockIndex]: dart.fnType(core.int, [web_gl.Program, core.String]),
  [$getUniformIndices]: dart.fnType(core.List$(core.int), [web_gl.Program, core.List$(core.String)]),
  [_getUniformIndices_1]: dart.fnType(core.List$(core.int), [web_gl.Program, core.List]),
  [$invalidateFramebuffer]: dart.fnType(dart.void, [core.int, core.List$(core.int)]),
  [$invalidateSubFramebuffer]: dart.fnType(dart.void, [core.int, core.List$(core.int), core.int, core.int, core.int, core.int]),
  [$isQuery]: dart.fnType(core.bool, [web_gl.Query]),
  [$isSampler]: dart.fnType(core.bool, [web_gl.Sampler]),
  [$isSync]: dart.fnType(core.bool, [web_gl.Sync]),
  [$isTransformFeedback]: dart.fnType(core.bool, [web_gl.TransformFeedback]),
  [$isVertexArray]: dart.fnType(core.bool, [web_gl.VertexArrayObject]),
  [$pauseTransformFeedback]: dart.fnType(dart.void, []),
  [$readBuffer]: dart.fnType(dart.void, [core.int]),
  [$readPixels2]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic], [core.int]),
  [$renderbufferStorageMultisample]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int]),
  [$resumeTransformFeedback]: dart.fnType(dart.void, []),
  [$samplerParameterf]: dart.fnType(dart.void, [web_gl.Sampler, core.int, core.num]),
  [$samplerParameteri]: dart.fnType(dart.void, [web_gl.Sampler, core.int, core.int]),
  [$texImage2D2]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic], [core.int]),
  [_texImage2D2_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int]),
  [_texImage2D2_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
  [_texImage2D2_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
  [_texImage2D2_4]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
  [_texImage2D2_5]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
  [_texImage2D2_6]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageBitmap]),
  [_texImage2D2_7]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, typed_data.TypedData, dart.dynamic]),
  [$texImage3D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic], [core.int]),
  [_texImage3D_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int]),
  [_texImage3D_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
  [_texImage3D_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
  [_texImage3D_4]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
  [_texImage3D_5]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
  [_texImage3D_6]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageBitmap]),
  [_texImage3D_7]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, typed_data.TypedData]),
  [_texImage3D_8]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, typed_data.TypedData, dart.dynamic]),
  [$texStorage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int]),
  [$texStorage3D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int]),
  [$texSubImage2D2]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic], [core.int]),
  [_texSubImage2D2_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int]),
  [_texSubImage2D2_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
  [_texSubImage2D2_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
  [_texSubImage2D2_4]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
  [_texSubImage2D2_5]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
  [_texSubImage2D2_6]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageBitmap]),
  [_texSubImage2D2_7]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, typed_data.TypedData, dart.dynamic]),
  [$texSubImage3D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic], [core.int]),
  [_texSubImage3D_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int]),
  [_texSubImage3D_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
  [_texSubImage3D_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
  [_texSubImage3D_4]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
  [_texSubImage3D_5]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
  [_texSubImage3D_6]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageBitmap]),
  [_texSubImage3D_7]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, typed_data.TypedData]),
  [_texSubImage3D_8]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, typed_data.TypedData, dart.dynamic]),
  [$transformFeedbackVaryings]: dart.fnType(dart.void, [web_gl.Program, core.List$(core.String), core.int]),
  [_transformFeedbackVaryings_1]: dart.fnType(dart.void, [web_gl.Program, core.List, dart.dynamic]),
  [$uniform1fv2]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic, core.int], [core.int]),
  [$uniform1iv2]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic, core.int], [core.int]),
  [$uniform1ui]: dart.fnType(dart.void, [web_gl.UniformLocation, core.int]),
  [$uniform1uiv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic], [core.int, core.int]),
  [$uniform2fv2]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic, core.int], [core.int]),
  [$uniform2iv2]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic, core.int], [core.int]),
  [$uniform2ui]: dart.fnType(dart.void, [web_gl.UniformLocation, core.int, core.int]),
  [$uniform2uiv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic], [core.int, core.int]),
  [$uniform3fv2]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic, core.int], [core.int]),
  [$uniform3iv2]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic, core.int], [core.int]),
  [$uniform3ui]: dart.fnType(dart.void, [web_gl.UniformLocation, core.int, core.int, core.int]),
  [$uniform3uiv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic], [core.int, core.int]),
  [$uniform4fv2]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic, core.int], [core.int]),
  [$uniform4iv2]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic, core.int], [core.int]),
  [$uniform4ui]: dart.fnType(dart.void, [web_gl.UniformLocation, core.int, core.int, core.int, core.int]),
  [$uniform4uiv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic], [core.int, core.int]),
  [$uniformBlockBinding]: dart.fnType(dart.void, [web_gl.Program, core.int, core.int]),
  [$uniformMatrix2fv2]: dart.fnType(dart.void, [web_gl.UniformLocation, core.bool, dart.dynamic, core.int], [core.int]),
  [$uniformMatrix2x3fv]: dart.fnType(dart.void, [web_gl.UniformLocation, core.bool, dart.dynamic], [core.int, core.int]),
  [$uniformMatrix2x4fv]: dart.fnType(dart.void, [web_gl.UniformLocation, core.bool, dart.dynamic], [core.int, core.int]),
  [$uniformMatrix3fv2]: dart.fnType(dart.void, [web_gl.UniformLocation, core.bool, dart.dynamic, core.int], [core.int]),
  [$uniformMatrix3x2fv]: dart.fnType(dart.void, [web_gl.UniformLocation, core.bool, dart.dynamic], [core.int, core.int]),
  [$uniformMatrix3x4fv]: dart.fnType(dart.void, [web_gl.UniformLocation, core.bool, dart.dynamic], [core.int, core.int]),
  [$uniformMatrix4fv2]: dart.fnType(dart.void, [web_gl.UniformLocation, core.bool, dart.dynamic, core.int], [core.int]),
  [$uniformMatrix4x2fv]: dart.fnType(dart.void, [web_gl.UniformLocation, core.bool, dart.dynamic], [core.int, core.int]),
  [$uniformMatrix4x3fv]: dart.fnType(dart.void, [web_gl.UniformLocation, core.bool, dart.dynamic], [core.int, core.int]),
  [$vertexAttribDivisor]: dart.fnType(dart.void, [core.int, core.int]),
  [$vertexAttribI4i]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int]),
  [$vertexAttribI4iv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
  [$vertexAttribI4ui]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int]),
  [$vertexAttribI4uiv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
  [$vertexAttribIPointer]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int]),
  [$waitSync]: dart.fnType(dart.void, [web_gl.Sync, core.int, core.int]),
  [$activeTexture]: dart.fnType(dart.void, [core.int]),
  [$attachShader]: dart.fnType(dart.void, [web_gl.Program, web_gl.Shader]),
  [$bindAttribLocation]: dart.fnType(dart.void, [web_gl.Program, core.int, core.String]),
  [$bindBuffer]: dart.fnType(dart.void, [core.int, web_gl.Buffer]),
  [$bindFramebuffer]: dart.fnType(dart.void, [core.int, web_gl.Framebuffer]),
  [$bindRenderbuffer]: dart.fnType(dart.void, [core.int, web_gl.Renderbuffer]),
  [$bindTexture]: dart.fnType(dart.void, [core.int, web_gl.Texture]),
  [$blendColor]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
  [$blendEquation]: dart.fnType(dart.void, [core.int]),
  [$blendEquationSeparate]: dart.fnType(dart.void, [core.int, core.int]),
  [$blendFunc]: dart.fnType(dart.void, [core.int, core.int]),
  [$blendFuncSeparate]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
  [$bufferData]: dart.fnType(dart.void, [core.int, dart.dynamic, core.int]),
  [$bufferSubData]: dart.fnType(dart.void, [core.int, core.int, dart.dynamic]),
  [$checkFramebufferStatus]: dart.fnType(core.int, [core.int]),
  [$clear]: dart.fnType(dart.void, [core.int]),
  [$clearColor]: dart.fnType(dart.void, [core.num, core.num, core.num, core.num]),
  [$clearDepth]: dart.fnType(dart.void, [core.num]),
  [$clearStencil]: dart.fnType(dart.void, [core.int]),
  [$colorMask]: dart.fnType(dart.void, [core.bool, core.bool, core.bool, core.bool]),
  [$commit]: dart.fnType(async.Future, []),
  [$compileShader]: dart.fnType(dart.void, [web_gl.Shader]),
  [$compressedTexImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
  [$compressedTexSubImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
  [$copyTexImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
  [$copyTexSubImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
  [$createBuffer]: dart.fnType(web_gl.Buffer, []),
  [$createFramebuffer]: dart.fnType(web_gl.Framebuffer, []),
  [$createProgram]: dart.fnType(web_gl.Program, []),
  [$createRenderbuffer]: dart.fnType(web_gl.Renderbuffer, []),
  [$createShader]: dart.fnType(web_gl.Shader, [core.int]),
  [$createTexture]: dart.fnType(web_gl.Texture, []),
  [$cullFace]: dart.fnType(dart.void, [core.int]),
  [$deleteBuffer]: dart.fnType(dart.void, [web_gl.Buffer]),
  [$deleteFramebuffer]: dart.fnType(dart.void, [web_gl.Framebuffer]),
  [$deleteProgram]: dart.fnType(dart.void, [web_gl.Program]),
  [$deleteRenderbuffer]: dart.fnType(dart.void, [web_gl.Renderbuffer]),
  [$deleteShader]: dart.fnType(dart.void, [web_gl.Shader]),
  [$deleteTexture]: dart.fnType(dart.void, [web_gl.Texture]),
  [$depthFunc]: dart.fnType(dart.void, [core.int]),
  [$depthMask]: dart.fnType(dart.void, [core.bool]),
  [$depthRange]: dart.fnType(dart.void, [core.num, core.num]),
  [$detachShader]: dart.fnType(dart.void, [web_gl.Program, web_gl.Shader]),
  [$disable]: dart.fnType(dart.void, [core.int]),
  [$disableVertexAttribArray]: dart.fnType(dart.void, [core.int]),
  [$drawArrays]: dart.fnType(dart.void, [core.int, core.int, core.int]),
  [$drawElements]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
  [$enable]: dart.fnType(dart.void, [core.int]),
  [$enableVertexAttribArray]: dart.fnType(dart.void, [core.int]),
  [$finish]: dart.fnType(dart.void, []),
  [$flush]: dart.fnType(dart.void, []),
  [$framebufferRenderbuffer]: dart.fnType(dart.void, [core.int, core.int, core.int, web_gl.Renderbuffer]),
  [$framebufferTexture2D]: dart.fnType(dart.void, [core.int, core.int, core.int, web_gl.Texture, core.int]),
  [$frontFace]: dart.fnType(dart.void, [core.int]),
  [$generateMipmap]: dart.fnType(dart.void, [core.int]),
  [$getActiveAttrib]: dart.fnType(web_gl.ActiveInfo, [web_gl.Program, core.int]),
  [$getActiveUniform]: dart.fnType(web_gl.ActiveInfo, [web_gl.Program, core.int]),
  [$getAttachedShaders]: dart.fnType(core.List$(web_gl.Shader), [web_gl.Program]),
  [$getAttribLocation]: dart.fnType(core.int, [web_gl.Program, core.String]),
  [$getBufferParameter]: dart.fnType(core.Object, [core.int, core.int]),
  [$getContextAttributes]: dart.fnType(core.Map, []),
  [_getContextAttributes_1$]: dart.fnType(dart.dynamic, []),
  [$getError]: dart.fnType(core.int, []),
  [$getExtension]: dart.fnType(core.Object, [core.String]),
  [$getFramebufferAttachmentParameter]: dart.fnType(core.Object, [core.int, core.int, core.int]),
  [$getParameter]: dart.fnType(core.Object, [core.int]),
  [$getProgramInfoLog]: dart.fnType(core.String, [web_gl.Program]),
  [$getProgramParameter]: dart.fnType(core.Object, [web_gl.Program, core.int]),
  [$getRenderbufferParameter]: dart.fnType(core.Object, [core.int, core.int]),
  [$getShaderInfoLog]: dart.fnType(core.String, [web_gl.Shader]),
  [$getShaderParameter]: dart.fnType(core.Object, [web_gl.Shader, core.int]),
  [$getShaderPrecisionFormat]: dart.fnType(web_gl.ShaderPrecisionFormat, [core.int, core.int]),
  [$getShaderSource]: dart.fnType(core.String, [web_gl.Shader]),
  [$getSupportedExtensions]: dart.fnType(core.List$(core.String), []),
  [$getTexParameter]: dart.fnType(core.Object, [core.int, core.int]),
  [$getUniform]: dart.fnType(core.Object, [web_gl.Program, web_gl.UniformLocation]),
  [$getUniformLocation]: dart.fnType(web_gl.UniformLocation, [web_gl.Program, core.String]),
  [$getVertexAttrib]: dart.fnType(core.Object, [core.int, core.int]),
  [$getVertexAttribOffset]: dart.fnType(core.int, [core.int, core.int]),
  [$hint]: dart.fnType(dart.void, [core.int, core.int]),
  [$isBuffer]: dart.fnType(core.bool, [web_gl.Buffer]),
  [$isContextLost]: dart.fnType(core.bool, []),
  [$isEnabled]: dart.fnType(core.bool, [core.int]),
  [$isFramebuffer]: dart.fnType(core.bool, [web_gl.Framebuffer]),
  [$isProgram]: dart.fnType(core.bool, [web_gl.Program]),
  [$isRenderbuffer]: dart.fnType(core.bool, [web_gl.Renderbuffer]),
  [$isShader]: dart.fnType(core.bool, [web_gl.Shader]),
  [$isTexture]: dart.fnType(core.bool, [web_gl.Texture]),
  [$lineWidth]: dart.fnType(dart.void, [core.num]),
  [$linkProgram]: dart.fnType(dart.void, [web_gl.Program]),
  [$pixelStorei]: dart.fnType(dart.void, [core.int, core.int]),
  [$polygonOffset]: dart.fnType(dart.void, [core.num, core.num]),
  [_readPixels]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
  [$renderbufferStorage]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
  [$sampleCoverage]: dart.fnType(dart.void, [core.num, core.bool]),
  [$scissor]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
  [$shaderSource]: dart.fnType(dart.void, [web_gl.Shader, core.String]),
  [$stencilFunc]: dart.fnType(dart.void, [core.int, core.int, core.int]),
  [$stencilFuncSeparate]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
  [$stencilMask]: dart.fnType(dart.void, [core.int]),
  [$stencilMaskSeparate]: dart.fnType(dart.void, [core.int, core.int]),
  [$stencilOp]: dart.fnType(dart.void, [core.int, core.int, core.int]),
  [$stencilOpSeparate]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
  [$texImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, dart.dynamic], [core.int, core.int, typed_data.TypedData]),
  [_texImage2D_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int, dart.dynamic, dart.dynamic, typed_data.TypedData]),
  [_texImage2D_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
  [_texImage2D_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
  [_texImage2D_4]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
  [_texImage2D_5]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
  [_texImage2D_6]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageBitmap]),
  [$texParameterf]: dart.fnType(dart.void, [core.int, core.int, core.num]),
  [$texParameteri]: dart.fnType(dart.void, [core.int, core.int, core.int]),
  [$texSubImage2D]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic], [core.int, typed_data.TypedData]),
  [_texSubImage2D_1]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int, dart.dynamic, typed_data.TypedData]),
  [_texSubImage2D_2]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
  [_texSubImage2D_3]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
  [_texSubImage2D_4]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
  [_texSubImage2D_5]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
  [_texSubImage2D_6]: dart.fnType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageBitmap]),
  [$uniform1f]: dart.fnType(dart.void, [web_gl.UniformLocation, core.num]),
  [$uniform1fv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic]),
  [$uniform1i]: dart.fnType(dart.void, [web_gl.UniformLocation, core.int]),
  [$uniform1iv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic]),
  [$uniform2f]: dart.fnType(dart.void, [web_gl.UniformLocation, core.num, core.num]),
  [$uniform2fv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic]),
  [$uniform2i]: dart.fnType(dart.void, [web_gl.UniformLocation, core.int, core.int]),
  [$uniform2iv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic]),
  [$uniform3f]: dart.fnType(dart.void, [web_gl.UniformLocation, core.num, core.num, core.num]),
  [$uniform3fv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic]),
  [$uniform3i]: dart.fnType(dart.void, [web_gl.UniformLocation, core.int, core.int, core.int]),
  [$uniform3iv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic]),
  [$uniform4f]: dart.fnType(dart.void, [web_gl.UniformLocation, core.num, core.num, core.num, core.num]),
  [$uniform4fv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic]),
  [$uniform4i]: dart.fnType(dart.void, [web_gl.UniformLocation, core.int, core.int, core.int, core.int]),
  [$uniform4iv]: dart.fnType(dart.void, [web_gl.UniformLocation, dart.dynamic]),
  [$uniformMatrix2fv]: dart.fnType(dart.void, [web_gl.UniformLocation, core.bool, dart.dynamic]),
  [$uniformMatrix3fv]: dart.fnType(dart.void, [web_gl.UniformLocation, core.bool, dart.dynamic]),
  [$uniformMatrix4fv]: dart.fnType(dart.void, [web_gl.UniformLocation, core.bool, dart.dynamic]),
  [$useProgram]: dart.fnType(dart.void, [web_gl.Program]),
  [$validateProgram]: dart.fnType(dart.void, [web_gl.Program]),
  [$vertexAttrib1f]: dart.fnType(dart.void, [core.int, core.num]),
  [$vertexAttrib1fv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
  [$vertexAttrib2f]: dart.fnType(dart.void, [core.int, core.num, core.num]),
  [$vertexAttrib2fv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
  [$vertexAttrib3f]: dart.fnType(dart.void, [core.int, core.num, core.num, core.num]),
  [$vertexAttrib3fv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
  [$vertexAttrib4f]: dart.fnType(dart.void, [core.int, core.num, core.num, core.num, core.num]),
  [$vertexAttrib4fv]: dart.fnType(dart.void, [core.int, dart.dynamic]),
  [$vertexAttribPointer]: dart.fnType(dart.void, [core.int, core.int, core.int, core.bool, core.int, core.int]),
  [$viewport]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int]),
  [$readPixels]: dart.fnType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData])
}));
dart.setGetterSignature(web_gl.RenderingContext2, () => ({
  __proto__: dart.getGetters(web_gl.RenderingContext2.__proto__),
  [$canvas]: web_gl.Canvas,
  [$drawingBufferHeight]: core.int,
  [$drawingBufferWidth]: core.int
}));
dart.setLibraryUri(web_gl.RenderingContext2, L70);
dart.registerExtension("WebGL2RenderingContext", web_gl.RenderingContext2);
web_gl.Sampler = class Sampler extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.Sampler);
dart.addTypeCaches(web_gl.Sampler);
dart.setLibraryUri(web_gl.Sampler, L70);
dart.registerExtension("WebGLSampler", web_gl.Sampler);
web_gl.Shader = class Shader extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.Shader);
dart.addTypeCaches(web_gl.Shader);
dart.setLibraryUri(web_gl.Shader, L70);
dart.registerExtension("WebGLShader", web_gl.Shader);
web_gl.ShaderPrecisionFormat = class ShaderPrecisionFormat extends _interceptors.Interceptor {
  get [$precision]() {
    return this.precision;
  }
  get [$rangeMax]() {
    return this.rangeMax;
  }
  get [$rangeMin]() {
    return this.rangeMin;
  }
};
dart.addTypeTests(web_gl.ShaderPrecisionFormat);
dart.addTypeCaches(web_gl.ShaderPrecisionFormat);
dart.setGetterSignature(web_gl.ShaderPrecisionFormat, () => ({
  __proto__: dart.getGetters(web_gl.ShaderPrecisionFormat.__proto__),
  [$precision]: core.int,
  [$rangeMax]: core.int,
  [$rangeMin]: core.int
}));
dart.setLibraryUri(web_gl.ShaderPrecisionFormat, L70);
dart.registerExtension("WebGLShaderPrecisionFormat", web_gl.ShaderPrecisionFormat);
web_gl.Sync = class Sync extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.Sync);
dart.addTypeCaches(web_gl.Sync);
dart.setLibraryUri(web_gl.Sync, L70);
dart.registerExtension("WebGLSync", web_gl.Sync);
web_gl.Texture = class Texture extends _interceptors.Interceptor {
  get [$lastUploadedVideoFrameWasSkipped]() {
    return this.lastUploadedVideoFrameWasSkipped;
  }
  get [$lastUploadedVideoHeight]() {
    return this.lastUploadedVideoHeight;
  }
  get [$lastUploadedVideoTimestamp]() {
    return this.lastUploadedVideoTimestamp;
  }
  get [$lastUploadedVideoWidth]() {
    return this.lastUploadedVideoWidth;
  }
};
dart.addTypeTests(web_gl.Texture);
dart.addTypeCaches(web_gl.Texture);
dart.setGetterSignature(web_gl.Texture, () => ({
  __proto__: dart.getGetters(web_gl.Texture.__proto__),
  [$lastUploadedVideoFrameWasSkipped]: core.bool,
  [$lastUploadedVideoHeight]: core.int,
  [$lastUploadedVideoTimestamp]: core.num,
  [$lastUploadedVideoWidth]: core.int
}));
dart.setLibraryUri(web_gl.Texture, L70);
dart.registerExtension("WebGLTexture", web_gl.Texture);
web_gl.TimerQueryExt = class TimerQueryExt extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.TimerQueryExt);
dart.addTypeCaches(web_gl.TimerQueryExt);
dart.setLibraryUri(web_gl.TimerQueryExt, L70);
dart.registerExtension("WebGLTimerQueryEXT", web_gl.TimerQueryExt);
web_gl.TransformFeedback = class TransformFeedback extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.TransformFeedback);
dart.addTypeCaches(web_gl.TransformFeedback);
dart.setLibraryUri(web_gl.TransformFeedback, L70);
dart.registerExtension("WebGLTransformFeedback", web_gl.TransformFeedback);
web_gl.UniformLocation = class UniformLocation extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.UniformLocation);
dart.addTypeCaches(web_gl.UniformLocation);
dart.setLibraryUri(web_gl.UniformLocation, L70);
dart.registerExtension("WebGLUniformLocation", web_gl.UniformLocation);
web_gl.VertexArrayObject = class VertexArrayObject extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.VertexArrayObject);
dart.addTypeCaches(web_gl.VertexArrayObject);
dart.setLibraryUri(web_gl.VertexArrayObject, L70);
dart.registerExtension("WebGLVertexArrayObject", web_gl.VertexArrayObject);
web_gl.VertexArrayObjectOes = class VertexArrayObjectOes extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl.VertexArrayObjectOes);
dart.addTypeCaches(web_gl.VertexArrayObjectOes);
dart.setLibraryUri(web_gl.VertexArrayObjectOes, L70);
dart.registerExtension("WebGLVertexArrayObjectOES", web_gl.VertexArrayObjectOes);
web_gl.WebGL = class WebGL extends core.Object {};
(web_gl.WebGL[dart.mixinNew] = function() {
}).prototype = web_gl.WebGL.prototype;
dart.addTypeTests(web_gl.WebGL);
dart.addTypeCaches(web_gl.WebGL);
dart.setLibraryUri(web_gl.WebGL, L70);
dart.defineLazy(web_gl.WebGL, {
  /*web_gl.WebGL.ACTIVE_ATTRIBUTES*/get ACTIVE_ATTRIBUTES() {
    return 35721;
  },
  /*web_gl.WebGL.ACTIVE_TEXTURE*/get ACTIVE_TEXTURE() {
    return 34016;
  },
  /*web_gl.WebGL.ACTIVE_UNIFORMS*/get ACTIVE_UNIFORMS() {
    return 35718;
  },
  /*web_gl.WebGL.ACTIVE_UNIFORM_BLOCKS*/get ACTIVE_UNIFORM_BLOCKS() {
    return 35382;
  },
  /*web_gl.WebGL.ALIASED_LINE_WIDTH_RANGE*/get ALIASED_LINE_WIDTH_RANGE() {
    return 33902;
  },
  /*web_gl.WebGL.ALIASED_POINT_SIZE_RANGE*/get ALIASED_POINT_SIZE_RANGE() {
    return 33901;
  },
  /*web_gl.WebGL.ALPHA*/get ALPHA() {
    return 6406;
  },
  /*web_gl.WebGL.ALPHA_BITS*/get ALPHA_BITS() {
    return 3413;
  },
  /*web_gl.WebGL.ALREADY_SIGNALED*/get ALREADY_SIGNALED() {
    return 37146;
  },
  /*web_gl.WebGL.ALWAYS*/get ALWAYS() {
    return 519;
  },
  /*web_gl.WebGL.ANY_SAMPLES_PASSED*/get ANY_SAMPLES_PASSED() {
    return 35887;
  },
  /*web_gl.WebGL.ANY_SAMPLES_PASSED_CONSERVATIVE*/get ANY_SAMPLES_PASSED_CONSERVATIVE() {
    return 36202;
  },
  /*web_gl.WebGL.ARRAY_BUFFER*/get ARRAY_BUFFER() {
    return 34962;
  },
  /*web_gl.WebGL.ARRAY_BUFFER_BINDING*/get ARRAY_BUFFER_BINDING() {
    return 34964;
  },
  /*web_gl.WebGL.ATTACHED_SHADERS*/get ATTACHED_SHADERS() {
    return 35717;
  },
  /*web_gl.WebGL.BACK*/get BACK() {
    return 1029;
  },
  /*web_gl.WebGL.BLEND*/get BLEND() {
    return 3042;
  },
  /*web_gl.WebGL.BLEND_COLOR*/get BLEND_COLOR() {
    return 32773;
  },
  /*web_gl.WebGL.BLEND_DST_ALPHA*/get BLEND_DST_ALPHA() {
    return 32970;
  },
  /*web_gl.WebGL.BLEND_DST_RGB*/get BLEND_DST_RGB() {
    return 32968;
  },
  /*web_gl.WebGL.BLEND_EQUATION*/get BLEND_EQUATION() {
    return 32777;
  },
  /*web_gl.WebGL.BLEND_EQUATION_ALPHA*/get BLEND_EQUATION_ALPHA() {
    return 34877;
  },
  /*web_gl.WebGL.BLEND_EQUATION_RGB*/get BLEND_EQUATION_RGB() {
    return 32777;
  },
  /*web_gl.WebGL.BLEND_SRC_ALPHA*/get BLEND_SRC_ALPHA() {
    return 32971;
  },
  /*web_gl.WebGL.BLEND_SRC_RGB*/get BLEND_SRC_RGB() {
    return 32969;
  },
  /*web_gl.WebGL.BLUE_BITS*/get BLUE_BITS() {
    return 3412;
  },
  /*web_gl.WebGL.BOOL*/get BOOL() {
    return 35670;
  },
  /*web_gl.WebGL.BOOL_VEC2*/get BOOL_VEC2() {
    return 35671;
  },
  /*web_gl.WebGL.BOOL_VEC3*/get BOOL_VEC3() {
    return 35672;
  },
  /*web_gl.WebGL.BOOL_VEC4*/get BOOL_VEC4() {
    return 35673;
  },
  /*web_gl.WebGL.BROWSER_DEFAULT_WEBGL*/get BROWSER_DEFAULT_WEBGL() {
    return 37444;
  },
  /*web_gl.WebGL.BUFFER_SIZE*/get BUFFER_SIZE() {
    return 34660;
  },
  /*web_gl.WebGL.BUFFER_USAGE*/get BUFFER_USAGE() {
    return 34661;
  },
  /*web_gl.WebGL.BYTE*/get BYTE() {
    return 5120;
  },
  /*web_gl.WebGL.CCW*/get CCW() {
    return 2305;
  },
  /*web_gl.WebGL.CLAMP_TO_EDGE*/get CLAMP_TO_EDGE() {
    return 33071;
  },
  /*web_gl.WebGL.COLOR*/get COLOR() {
    return 6144;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT0*/get COLOR_ATTACHMENT0() {
    return 36064;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT0_WEBGL*/get COLOR_ATTACHMENT0_WEBGL() {
    return 36064;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT1*/get COLOR_ATTACHMENT1() {
    return 36065;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT10*/get COLOR_ATTACHMENT10() {
    return 36074;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT10_WEBGL*/get COLOR_ATTACHMENT10_WEBGL() {
    return 36074;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT11*/get COLOR_ATTACHMENT11() {
    return 36075;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT11_WEBGL*/get COLOR_ATTACHMENT11_WEBGL() {
    return 36075;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT12*/get COLOR_ATTACHMENT12() {
    return 36076;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT12_WEBGL*/get COLOR_ATTACHMENT12_WEBGL() {
    return 36076;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT13*/get COLOR_ATTACHMENT13() {
    return 36077;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT13_WEBGL*/get COLOR_ATTACHMENT13_WEBGL() {
    return 36077;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT14*/get COLOR_ATTACHMENT14() {
    return 36078;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT14_WEBGL*/get COLOR_ATTACHMENT14_WEBGL() {
    return 36078;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT15*/get COLOR_ATTACHMENT15() {
    return 36079;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT15_WEBGL*/get COLOR_ATTACHMENT15_WEBGL() {
    return 36079;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT1_WEBGL*/get COLOR_ATTACHMENT1_WEBGL() {
    return 36065;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT2*/get COLOR_ATTACHMENT2() {
    return 36066;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT2_WEBGL*/get COLOR_ATTACHMENT2_WEBGL() {
    return 36066;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT3*/get COLOR_ATTACHMENT3() {
    return 36067;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT3_WEBGL*/get COLOR_ATTACHMENT3_WEBGL() {
    return 36067;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT4*/get COLOR_ATTACHMENT4() {
    return 36068;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT4_WEBGL*/get COLOR_ATTACHMENT4_WEBGL() {
    return 36068;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT5*/get COLOR_ATTACHMENT5() {
    return 36069;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT5_WEBGL*/get COLOR_ATTACHMENT5_WEBGL() {
    return 36069;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT6*/get COLOR_ATTACHMENT6() {
    return 36070;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT6_WEBGL*/get COLOR_ATTACHMENT6_WEBGL() {
    return 36070;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT7*/get COLOR_ATTACHMENT7() {
    return 36071;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT7_WEBGL*/get COLOR_ATTACHMENT7_WEBGL() {
    return 36071;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT8*/get COLOR_ATTACHMENT8() {
    return 36072;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT8_WEBGL*/get COLOR_ATTACHMENT8_WEBGL() {
    return 36072;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT9*/get COLOR_ATTACHMENT9() {
    return 36073;
  },
  /*web_gl.WebGL.COLOR_ATTACHMENT9_WEBGL*/get COLOR_ATTACHMENT9_WEBGL() {
    return 36073;
  },
  /*web_gl.WebGL.COLOR_BUFFER_BIT*/get COLOR_BUFFER_BIT() {
    return 16384;
  },
  /*web_gl.WebGL.COLOR_CLEAR_VALUE*/get COLOR_CLEAR_VALUE() {
    return 3106;
  },
  /*web_gl.WebGL.COLOR_WRITEMASK*/get COLOR_WRITEMASK() {
    return 3107;
  },
  /*web_gl.WebGL.COMPARE_REF_TO_TEXTURE*/get COMPARE_REF_TO_TEXTURE() {
    return 34894;
  },
  /*web_gl.WebGL.COMPILE_STATUS*/get COMPILE_STATUS() {
    return 35713;
  },
  /*web_gl.WebGL.COMPRESSED_TEXTURE_FORMATS*/get COMPRESSED_TEXTURE_FORMATS() {
    return 34467;
  },
  /*web_gl.WebGL.CONDITION_SATISFIED*/get CONDITION_SATISFIED() {
    return 37148;
  },
  /*web_gl.WebGL.CONSTANT_ALPHA*/get CONSTANT_ALPHA() {
    return 32771;
  },
  /*web_gl.WebGL.CONSTANT_COLOR*/get CONSTANT_COLOR() {
    return 32769;
  },
  /*web_gl.WebGL.CONTEXT_LOST_WEBGL*/get CONTEXT_LOST_WEBGL() {
    return 37442;
  },
  /*web_gl.WebGL.COPY_READ_BUFFER*/get COPY_READ_BUFFER() {
    return 36662;
  },
  /*web_gl.WebGL.COPY_READ_BUFFER_BINDING*/get COPY_READ_BUFFER_BINDING() {
    return 36662;
  },
  /*web_gl.WebGL.COPY_WRITE_BUFFER*/get COPY_WRITE_BUFFER() {
    return 36663;
  },
  /*web_gl.WebGL.COPY_WRITE_BUFFER_BINDING*/get COPY_WRITE_BUFFER_BINDING() {
    return 36663;
  },
  /*web_gl.WebGL.CULL_FACE*/get CULL_FACE() {
    return 2884;
  },
  /*web_gl.WebGL.CULL_FACE_MODE*/get CULL_FACE_MODE() {
    return 2885;
  },
  /*web_gl.WebGL.CURRENT_PROGRAM*/get CURRENT_PROGRAM() {
    return 35725;
  },
  /*web_gl.WebGL.CURRENT_QUERY*/get CURRENT_QUERY() {
    return 34917;
  },
  /*web_gl.WebGL.CURRENT_VERTEX_ATTRIB*/get CURRENT_VERTEX_ATTRIB() {
    return 34342;
  },
  /*web_gl.WebGL.CW*/get CW() {
    return 2304;
  },
  /*web_gl.WebGL.DECR*/get DECR() {
    return 7683;
  },
  /*web_gl.WebGL.DECR_WRAP*/get DECR_WRAP() {
    return 34056;
  },
  /*web_gl.WebGL.DELETE_STATUS*/get DELETE_STATUS() {
    return 35712;
  },
  /*web_gl.WebGL.DEPTH*/get DEPTH() {
    return 6145;
  },
  /*web_gl.WebGL.DEPTH24_STENCIL8*/get DEPTH24_STENCIL8() {
    return 35056;
  },
  /*web_gl.WebGL.DEPTH32F_STENCIL8*/get DEPTH32F_STENCIL8() {
    return 36013;
  },
  /*web_gl.WebGL.DEPTH_ATTACHMENT*/get DEPTH_ATTACHMENT() {
    return 36096;
  },
  /*web_gl.WebGL.DEPTH_BITS*/get DEPTH_BITS() {
    return 3414;
  },
  /*web_gl.WebGL.DEPTH_BUFFER_BIT*/get DEPTH_BUFFER_BIT() {
    return 256;
  },
  /*web_gl.WebGL.DEPTH_CLEAR_VALUE*/get DEPTH_CLEAR_VALUE() {
    return 2931;
  },
  /*web_gl.WebGL.DEPTH_COMPONENT*/get DEPTH_COMPONENT() {
    return 6402;
  },
  /*web_gl.WebGL.DEPTH_COMPONENT16*/get DEPTH_COMPONENT16() {
    return 33189;
  },
  /*web_gl.WebGL.DEPTH_COMPONENT24*/get DEPTH_COMPONENT24() {
    return 33190;
  },
  /*web_gl.WebGL.DEPTH_COMPONENT32F*/get DEPTH_COMPONENT32F() {
    return 36012;
  },
  /*web_gl.WebGL.DEPTH_FUNC*/get DEPTH_FUNC() {
    return 2932;
  },
  /*web_gl.WebGL.DEPTH_RANGE*/get DEPTH_RANGE() {
    return 2928;
  },
  /*web_gl.WebGL.DEPTH_STENCIL*/get DEPTH_STENCIL() {
    return 34041;
  },
  /*web_gl.WebGL.DEPTH_STENCIL_ATTACHMENT*/get DEPTH_STENCIL_ATTACHMENT() {
    return 33306;
  },
  /*web_gl.WebGL.DEPTH_TEST*/get DEPTH_TEST() {
    return 2929;
  },
  /*web_gl.WebGL.DEPTH_WRITEMASK*/get DEPTH_WRITEMASK() {
    return 2930;
  },
  /*web_gl.WebGL.DITHER*/get DITHER() {
    return 3024;
  },
  /*web_gl.WebGL.DONT_CARE*/get DONT_CARE() {
    return 4352;
  },
  /*web_gl.WebGL.DRAW_BUFFER0*/get DRAW_BUFFER0() {
    return 34853;
  },
  /*web_gl.WebGL.DRAW_BUFFER0_WEBGL*/get DRAW_BUFFER0_WEBGL() {
    return 34853;
  },
  /*web_gl.WebGL.DRAW_BUFFER1*/get DRAW_BUFFER1() {
    return 34854;
  },
  /*web_gl.WebGL.DRAW_BUFFER10*/get DRAW_BUFFER10() {
    return 34863;
  },
  /*web_gl.WebGL.DRAW_BUFFER10_WEBGL*/get DRAW_BUFFER10_WEBGL() {
    return 34863;
  },
  /*web_gl.WebGL.DRAW_BUFFER11*/get DRAW_BUFFER11() {
    return 34864;
  },
  /*web_gl.WebGL.DRAW_BUFFER11_WEBGL*/get DRAW_BUFFER11_WEBGL() {
    return 34864;
  },
  /*web_gl.WebGL.DRAW_BUFFER12*/get DRAW_BUFFER12() {
    return 34865;
  },
  /*web_gl.WebGL.DRAW_BUFFER12_WEBGL*/get DRAW_BUFFER12_WEBGL() {
    return 34865;
  },
  /*web_gl.WebGL.DRAW_BUFFER13*/get DRAW_BUFFER13() {
    return 34866;
  },
  /*web_gl.WebGL.DRAW_BUFFER13_WEBGL*/get DRAW_BUFFER13_WEBGL() {
    return 34866;
  },
  /*web_gl.WebGL.DRAW_BUFFER14*/get DRAW_BUFFER14() {
    return 34867;
  },
  /*web_gl.WebGL.DRAW_BUFFER14_WEBGL*/get DRAW_BUFFER14_WEBGL() {
    return 34867;
  },
  /*web_gl.WebGL.DRAW_BUFFER15*/get DRAW_BUFFER15() {
    return 34868;
  },
  /*web_gl.WebGL.DRAW_BUFFER15_WEBGL*/get DRAW_BUFFER15_WEBGL() {
    return 34868;
  },
  /*web_gl.WebGL.DRAW_BUFFER1_WEBGL*/get DRAW_BUFFER1_WEBGL() {
    return 34854;
  },
  /*web_gl.WebGL.DRAW_BUFFER2*/get DRAW_BUFFER2() {
    return 34855;
  },
  /*web_gl.WebGL.DRAW_BUFFER2_WEBGL*/get DRAW_BUFFER2_WEBGL() {
    return 34855;
  },
  /*web_gl.WebGL.DRAW_BUFFER3*/get DRAW_BUFFER3() {
    return 34856;
  },
  /*web_gl.WebGL.DRAW_BUFFER3_WEBGL*/get DRAW_BUFFER3_WEBGL() {
    return 34856;
  },
  /*web_gl.WebGL.DRAW_BUFFER4*/get DRAW_BUFFER4() {
    return 34857;
  },
  /*web_gl.WebGL.DRAW_BUFFER4_WEBGL*/get DRAW_BUFFER4_WEBGL() {
    return 34857;
  },
  /*web_gl.WebGL.DRAW_BUFFER5*/get DRAW_BUFFER5() {
    return 34858;
  },
  /*web_gl.WebGL.DRAW_BUFFER5_WEBGL*/get DRAW_BUFFER5_WEBGL() {
    return 34858;
  },
  /*web_gl.WebGL.DRAW_BUFFER6*/get DRAW_BUFFER6() {
    return 34859;
  },
  /*web_gl.WebGL.DRAW_BUFFER6_WEBGL*/get DRAW_BUFFER6_WEBGL() {
    return 34859;
  },
  /*web_gl.WebGL.DRAW_BUFFER7*/get DRAW_BUFFER7() {
    return 34860;
  },
  /*web_gl.WebGL.DRAW_BUFFER7_WEBGL*/get DRAW_BUFFER7_WEBGL() {
    return 34860;
  },
  /*web_gl.WebGL.DRAW_BUFFER8*/get DRAW_BUFFER8() {
    return 34861;
  },
  /*web_gl.WebGL.DRAW_BUFFER8_WEBGL*/get DRAW_BUFFER8_WEBGL() {
    return 34861;
  },
  /*web_gl.WebGL.DRAW_BUFFER9*/get DRAW_BUFFER9() {
    return 34862;
  },
  /*web_gl.WebGL.DRAW_BUFFER9_WEBGL*/get DRAW_BUFFER9_WEBGL() {
    return 34862;
  },
  /*web_gl.WebGL.DRAW_FRAMEBUFFER*/get DRAW_FRAMEBUFFER() {
    return 36009;
  },
  /*web_gl.WebGL.DRAW_FRAMEBUFFER_BINDING*/get DRAW_FRAMEBUFFER_BINDING() {
    return 36006;
  },
  /*web_gl.WebGL.DST_ALPHA*/get DST_ALPHA() {
    return 772;
  },
  /*web_gl.WebGL.DST_COLOR*/get DST_COLOR() {
    return 774;
  },
  /*web_gl.WebGL.DYNAMIC_COPY*/get DYNAMIC_COPY() {
    return 35050;
  },
  /*web_gl.WebGL.DYNAMIC_DRAW*/get DYNAMIC_DRAW() {
    return 35048;
  },
  /*web_gl.WebGL.DYNAMIC_READ*/get DYNAMIC_READ() {
    return 35049;
  },
  /*web_gl.WebGL.ELEMENT_ARRAY_BUFFER*/get ELEMENT_ARRAY_BUFFER() {
    return 34963;
  },
  /*web_gl.WebGL.ELEMENT_ARRAY_BUFFER_BINDING*/get ELEMENT_ARRAY_BUFFER_BINDING() {
    return 34965;
  },
  /*web_gl.WebGL.EQUAL*/get EQUAL() {
    return 514;
  },
  /*web_gl.WebGL.FASTEST*/get FASTEST() {
    return 4353;
  },
  /*web_gl.WebGL.FLOAT*/get FLOAT() {
    return 5126;
  },
  /*web_gl.WebGL.FLOAT_32_UNSIGNED_INT_24_8_REV*/get FLOAT_32_UNSIGNED_INT_24_8_REV() {
    return 36269;
  },
  /*web_gl.WebGL.FLOAT_MAT2*/get FLOAT_MAT2() {
    return 35674;
  },
  /*web_gl.WebGL.FLOAT_MAT2x3*/get FLOAT_MAT2x3() {
    return 35685;
  },
  /*web_gl.WebGL.FLOAT_MAT2x4*/get FLOAT_MAT2x4() {
    return 35686;
  },
  /*web_gl.WebGL.FLOAT_MAT3*/get FLOAT_MAT3() {
    return 35675;
  },
  /*web_gl.WebGL.FLOAT_MAT3x2*/get FLOAT_MAT3x2() {
    return 35687;
  },
  /*web_gl.WebGL.FLOAT_MAT3x4*/get FLOAT_MAT3x4() {
    return 35688;
  },
  /*web_gl.WebGL.FLOAT_MAT4*/get FLOAT_MAT4() {
    return 35676;
  },
  /*web_gl.WebGL.FLOAT_MAT4x2*/get FLOAT_MAT4x2() {
    return 35689;
  },
  /*web_gl.WebGL.FLOAT_MAT4x3*/get FLOAT_MAT4x3() {
    return 35690;
  },
  /*web_gl.WebGL.FLOAT_VEC2*/get FLOAT_VEC2() {
    return 35664;
  },
  /*web_gl.WebGL.FLOAT_VEC3*/get FLOAT_VEC3() {
    return 35665;
  },
  /*web_gl.WebGL.FLOAT_VEC4*/get FLOAT_VEC4() {
    return 35666;
  },
  /*web_gl.WebGL.FRAGMENT_SHADER*/get FRAGMENT_SHADER() {
    return 35632;
  },
  /*web_gl.WebGL.FRAGMENT_SHADER_DERIVATIVE_HINT*/get FRAGMENT_SHADER_DERIVATIVE_HINT() {
    return 35723;
  },
  /*web_gl.WebGL.FRAMEBUFFER*/get FRAMEBUFFER() {
    return 36160;
  },
  /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE*/get FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE() {
    return 33301;
  },
  /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE*/get FRAMEBUFFER_ATTACHMENT_BLUE_SIZE() {
    return 33300;
  },
  /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING*/get FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING() {
    return 33296;
  },
  /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE*/get FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE() {
    return 33297;
  },
  /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE*/get FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE() {
    return 33302;
  },
  /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE*/get FRAMEBUFFER_ATTACHMENT_GREEN_SIZE() {
    return 33299;
  },
  /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME*/get FRAMEBUFFER_ATTACHMENT_OBJECT_NAME() {
    return 36049;
  },
  /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE*/get FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE() {
    return 36048;
  },
  /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_RED_SIZE*/get FRAMEBUFFER_ATTACHMENT_RED_SIZE() {
    return 33298;
  },
  /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE*/get FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE() {
    return 33303;
  },
  /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE*/get FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE() {
    return 36051;
  },
  /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER*/get FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER() {
    return 36052;
  },
  /*web_gl.WebGL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL*/get FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL() {
    return 36050;
  },
  /*web_gl.WebGL.FRAMEBUFFER_BINDING*/get FRAMEBUFFER_BINDING() {
    return 36006;
  },
  /*web_gl.WebGL.FRAMEBUFFER_COMPLETE*/get FRAMEBUFFER_COMPLETE() {
    return 36053;
  },
  /*web_gl.WebGL.FRAMEBUFFER_DEFAULT*/get FRAMEBUFFER_DEFAULT() {
    return 33304;
  },
  /*web_gl.WebGL.FRAMEBUFFER_INCOMPLETE_ATTACHMENT*/get FRAMEBUFFER_INCOMPLETE_ATTACHMENT() {
    return 36054;
  },
  /*web_gl.WebGL.FRAMEBUFFER_INCOMPLETE_DIMENSIONS*/get FRAMEBUFFER_INCOMPLETE_DIMENSIONS() {
    return 36057;
  },
  /*web_gl.WebGL.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT*/get FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT() {
    return 36055;
  },
  /*web_gl.WebGL.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE*/get FRAMEBUFFER_INCOMPLETE_MULTISAMPLE() {
    return 36182;
  },
  /*web_gl.WebGL.FRAMEBUFFER_UNSUPPORTED*/get FRAMEBUFFER_UNSUPPORTED() {
    return 36061;
  },
  /*web_gl.WebGL.FRONT*/get FRONT() {
    return 1028;
  },
  /*web_gl.WebGL.FRONT_AND_BACK*/get FRONT_AND_BACK() {
    return 1032;
  },
  /*web_gl.WebGL.FRONT_FACE*/get FRONT_FACE() {
    return 2886;
  },
  /*web_gl.WebGL.FUNC_ADD*/get FUNC_ADD() {
    return 32774;
  },
  /*web_gl.WebGL.FUNC_REVERSE_SUBTRACT*/get FUNC_REVERSE_SUBTRACT() {
    return 32779;
  },
  /*web_gl.WebGL.FUNC_SUBTRACT*/get FUNC_SUBTRACT() {
    return 32778;
  },
  /*web_gl.WebGL.GENERATE_MIPMAP_HINT*/get GENERATE_MIPMAP_HINT() {
    return 33170;
  },
  /*web_gl.WebGL.GEQUAL*/get GEQUAL() {
    return 518;
  },
  /*web_gl.WebGL.GREATER*/get GREATER() {
    return 516;
  },
  /*web_gl.WebGL.GREEN_BITS*/get GREEN_BITS() {
    return 3411;
  },
  /*web_gl.WebGL.HALF_FLOAT*/get HALF_FLOAT() {
    return 5131;
  },
  /*web_gl.WebGL.HIGH_FLOAT*/get HIGH_FLOAT() {
    return 36338;
  },
  /*web_gl.WebGL.HIGH_INT*/get HIGH_INT() {
    return 36341;
  },
  /*web_gl.WebGL.IMPLEMENTATION_COLOR_READ_FORMAT*/get IMPLEMENTATION_COLOR_READ_FORMAT() {
    return 35739;
  },
  /*web_gl.WebGL.IMPLEMENTATION_COLOR_READ_TYPE*/get IMPLEMENTATION_COLOR_READ_TYPE() {
    return 35738;
  },
  /*web_gl.WebGL.INCR*/get INCR() {
    return 7682;
  },
  /*web_gl.WebGL.INCR_WRAP*/get INCR_WRAP() {
    return 34055;
  },
  /*web_gl.WebGL.INT*/get INT() {
    return 5124;
  },
  /*web_gl.WebGL.INTERLEAVED_ATTRIBS*/get INTERLEAVED_ATTRIBS() {
    return 35980;
  },
  /*web_gl.WebGL.INT_2_10_10_10_REV*/get INT_2_10_10_10_REV() {
    return 36255;
  },
  /*web_gl.WebGL.INT_SAMPLER_2D*/get INT_SAMPLER_2D() {
    return 36298;
  },
  /*web_gl.WebGL.INT_SAMPLER_2D_ARRAY*/get INT_SAMPLER_2D_ARRAY() {
    return 36303;
  },
  /*web_gl.WebGL.INT_SAMPLER_3D*/get INT_SAMPLER_3D() {
    return 36299;
  },
  /*web_gl.WebGL.INT_SAMPLER_CUBE*/get INT_SAMPLER_CUBE() {
    return 36300;
  },
  /*web_gl.WebGL.INT_VEC2*/get INT_VEC2() {
    return 35667;
  },
  /*web_gl.WebGL.INT_VEC3*/get INT_VEC3() {
    return 35668;
  },
  /*web_gl.WebGL.INT_VEC4*/get INT_VEC4() {
    return 35669;
  },
  /*web_gl.WebGL.INVALID_ENUM*/get INVALID_ENUM() {
    return 1280;
  },
  /*web_gl.WebGL.INVALID_FRAMEBUFFER_OPERATION*/get INVALID_FRAMEBUFFER_OPERATION() {
    return 1286;
  },
  /*web_gl.WebGL.INVALID_INDEX*/get INVALID_INDEX() {
    return 4294967295.0;
  },
  /*web_gl.WebGL.INVALID_OPERATION*/get INVALID_OPERATION() {
    return 1282;
  },
  /*web_gl.WebGL.INVALID_VALUE*/get INVALID_VALUE() {
    return 1281;
  },
  /*web_gl.WebGL.INVERT*/get INVERT() {
    return 5386;
  },
  /*web_gl.WebGL.KEEP*/get KEEP() {
    return 7680;
  },
  /*web_gl.WebGL.LEQUAL*/get LEQUAL() {
    return 515;
  },
  /*web_gl.WebGL.LESS*/get LESS() {
    return 513;
  },
  /*web_gl.WebGL.LINEAR*/get LINEAR() {
    return 9729;
  },
  /*web_gl.WebGL.LINEAR_MIPMAP_LINEAR*/get LINEAR_MIPMAP_LINEAR() {
    return 9987;
  },
  /*web_gl.WebGL.LINEAR_MIPMAP_NEAREST*/get LINEAR_MIPMAP_NEAREST() {
    return 9985;
  },
  /*web_gl.WebGL.LINES*/get LINES() {
    return 1;
  },
  /*web_gl.WebGL.LINE_LOOP*/get LINE_LOOP() {
    return 2;
  },
  /*web_gl.WebGL.LINE_STRIP*/get LINE_STRIP() {
    return 3;
  },
  /*web_gl.WebGL.LINE_WIDTH*/get LINE_WIDTH() {
    return 2849;
  },
  /*web_gl.WebGL.LINK_STATUS*/get LINK_STATUS() {
    return 35714;
  },
  /*web_gl.WebGL.LOW_FLOAT*/get LOW_FLOAT() {
    return 36336;
  },
  /*web_gl.WebGL.LOW_INT*/get LOW_INT() {
    return 36339;
  },
  /*web_gl.WebGL.LUMINANCE*/get LUMINANCE() {
    return 6409;
  },
  /*web_gl.WebGL.LUMINANCE_ALPHA*/get LUMINANCE_ALPHA() {
    return 6410;
  },
  /*web_gl.WebGL.MAX*/get MAX() {
    return 32776;
  },
  /*web_gl.WebGL.MAX_3D_TEXTURE_SIZE*/get MAX_3D_TEXTURE_SIZE() {
    return 32883;
  },
  /*web_gl.WebGL.MAX_ARRAY_TEXTURE_LAYERS*/get MAX_ARRAY_TEXTURE_LAYERS() {
    return 35071;
  },
  /*web_gl.WebGL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL*/get MAX_CLIENT_WAIT_TIMEOUT_WEBGL() {
    return 37447;
  },
  /*web_gl.WebGL.MAX_COLOR_ATTACHMENTS*/get MAX_COLOR_ATTACHMENTS() {
    return 36063;
  },
  /*web_gl.WebGL.MAX_COLOR_ATTACHMENTS_WEBGL*/get MAX_COLOR_ATTACHMENTS_WEBGL() {
    return 36063;
  },
  /*web_gl.WebGL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS*/get MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS() {
    return 35379;
  },
  /*web_gl.WebGL.MAX_COMBINED_TEXTURE_IMAGE_UNITS*/get MAX_COMBINED_TEXTURE_IMAGE_UNITS() {
    return 35661;
  },
  /*web_gl.WebGL.MAX_COMBINED_UNIFORM_BLOCKS*/get MAX_COMBINED_UNIFORM_BLOCKS() {
    return 35374;
  },
  /*web_gl.WebGL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS*/get MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS() {
    return 35377;
  },
  /*web_gl.WebGL.MAX_CUBE_MAP_TEXTURE_SIZE*/get MAX_CUBE_MAP_TEXTURE_SIZE() {
    return 34076;
  },
  /*web_gl.WebGL.MAX_DRAW_BUFFERS*/get MAX_DRAW_BUFFERS() {
    return 34852;
  },
  /*web_gl.WebGL.MAX_DRAW_BUFFERS_WEBGL*/get MAX_DRAW_BUFFERS_WEBGL() {
    return 34852;
  },
  /*web_gl.WebGL.MAX_ELEMENTS_INDICES*/get MAX_ELEMENTS_INDICES() {
    return 33001;
  },
  /*web_gl.WebGL.MAX_ELEMENTS_VERTICES*/get MAX_ELEMENTS_VERTICES() {
    return 33000;
  },
  /*web_gl.WebGL.MAX_ELEMENT_INDEX*/get MAX_ELEMENT_INDEX() {
    return 36203;
  },
  /*web_gl.WebGL.MAX_FRAGMENT_INPUT_COMPONENTS*/get MAX_FRAGMENT_INPUT_COMPONENTS() {
    return 37157;
  },
  /*web_gl.WebGL.MAX_FRAGMENT_UNIFORM_BLOCKS*/get MAX_FRAGMENT_UNIFORM_BLOCKS() {
    return 35373;
  },
  /*web_gl.WebGL.MAX_FRAGMENT_UNIFORM_COMPONENTS*/get MAX_FRAGMENT_UNIFORM_COMPONENTS() {
    return 35657;
  },
  /*web_gl.WebGL.MAX_FRAGMENT_UNIFORM_VECTORS*/get MAX_FRAGMENT_UNIFORM_VECTORS() {
    return 36349;
  },
  /*web_gl.WebGL.MAX_PROGRAM_TEXEL_OFFSET*/get MAX_PROGRAM_TEXEL_OFFSET() {
    return 35077;
  },
  /*web_gl.WebGL.MAX_RENDERBUFFER_SIZE*/get MAX_RENDERBUFFER_SIZE() {
    return 34024;
  },
  /*web_gl.WebGL.MAX_SAMPLES*/get MAX_SAMPLES() {
    return 36183;
  },
  /*web_gl.WebGL.MAX_SERVER_WAIT_TIMEOUT*/get MAX_SERVER_WAIT_TIMEOUT() {
    return 37137;
  },
  /*web_gl.WebGL.MAX_TEXTURE_IMAGE_UNITS*/get MAX_TEXTURE_IMAGE_UNITS() {
    return 34930;
  },
  /*web_gl.WebGL.MAX_TEXTURE_LOD_BIAS*/get MAX_TEXTURE_LOD_BIAS() {
    return 34045;
  },
  /*web_gl.WebGL.MAX_TEXTURE_SIZE*/get MAX_TEXTURE_SIZE() {
    return 3379;
  },
  /*web_gl.WebGL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS*/get MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS() {
    return 35978;
  },
  /*web_gl.WebGL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS*/get MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS() {
    return 35979;
  },
  /*web_gl.WebGL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS*/get MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS() {
    return 35968;
  },
  /*web_gl.WebGL.MAX_UNIFORM_BLOCK_SIZE*/get MAX_UNIFORM_BLOCK_SIZE() {
    return 35376;
  },
  /*web_gl.WebGL.MAX_UNIFORM_BUFFER_BINDINGS*/get MAX_UNIFORM_BUFFER_BINDINGS() {
    return 35375;
  },
  /*web_gl.WebGL.MAX_VARYING_COMPONENTS*/get MAX_VARYING_COMPONENTS() {
    return 35659;
  },
  /*web_gl.WebGL.MAX_VARYING_VECTORS*/get MAX_VARYING_VECTORS() {
    return 36348;
  },
  /*web_gl.WebGL.MAX_VERTEX_ATTRIBS*/get MAX_VERTEX_ATTRIBS() {
    return 34921;
  },
  /*web_gl.WebGL.MAX_VERTEX_OUTPUT_COMPONENTS*/get MAX_VERTEX_OUTPUT_COMPONENTS() {
    return 37154;
  },
  /*web_gl.WebGL.MAX_VERTEX_TEXTURE_IMAGE_UNITS*/get MAX_VERTEX_TEXTURE_IMAGE_UNITS() {
    return 35660;
  },
  /*web_gl.WebGL.MAX_VERTEX_UNIFORM_BLOCKS*/get MAX_VERTEX_UNIFORM_BLOCKS() {
    return 35371;
  },
  /*web_gl.WebGL.MAX_VERTEX_UNIFORM_COMPONENTS*/get MAX_VERTEX_UNIFORM_COMPONENTS() {
    return 35658;
  },
  /*web_gl.WebGL.MAX_VERTEX_UNIFORM_VECTORS*/get MAX_VERTEX_UNIFORM_VECTORS() {
    return 36347;
  },
  /*web_gl.WebGL.MAX_VIEWPORT_DIMS*/get MAX_VIEWPORT_DIMS() {
    return 3386;
  },
  /*web_gl.WebGL.MEDIUM_FLOAT*/get MEDIUM_FLOAT() {
    return 36337;
  },
  /*web_gl.WebGL.MEDIUM_INT*/get MEDIUM_INT() {
    return 36340;
  },
  /*web_gl.WebGL.MIN*/get MIN() {
    return 32775;
  },
  /*web_gl.WebGL.MIN_PROGRAM_TEXEL_OFFSET*/get MIN_PROGRAM_TEXEL_OFFSET() {
    return 35076;
  },
  /*web_gl.WebGL.MIRRORED_REPEAT*/get MIRRORED_REPEAT() {
    return 33648;
  },
  /*web_gl.WebGL.NEAREST*/get NEAREST() {
    return 9728;
  },
  /*web_gl.WebGL.NEAREST_MIPMAP_LINEAR*/get NEAREST_MIPMAP_LINEAR() {
    return 9986;
  },
  /*web_gl.WebGL.NEAREST_MIPMAP_NEAREST*/get NEAREST_MIPMAP_NEAREST() {
    return 9984;
  },
  /*web_gl.WebGL.NEVER*/get NEVER() {
    return 512;
  },
  /*web_gl.WebGL.NICEST*/get NICEST() {
    return 4354;
  },
  /*web_gl.WebGL.NONE*/get NONE() {
    return 0;
  },
  /*web_gl.WebGL.NOTEQUAL*/get NOTEQUAL() {
    return 517;
  },
  /*web_gl.WebGL.NO_ERROR*/get NO_ERROR() {
    return 0;
  },
  /*web_gl.WebGL.OBJECT_TYPE*/get OBJECT_TYPE() {
    return 37138;
  },
  /*web_gl.WebGL.ONE*/get ONE() {
    return 1;
  },
  /*web_gl.WebGL.ONE_MINUS_CONSTANT_ALPHA*/get ONE_MINUS_CONSTANT_ALPHA() {
    return 32772;
  },
  /*web_gl.WebGL.ONE_MINUS_CONSTANT_COLOR*/get ONE_MINUS_CONSTANT_COLOR() {
    return 32770;
  },
  /*web_gl.WebGL.ONE_MINUS_DST_ALPHA*/get ONE_MINUS_DST_ALPHA() {
    return 773;
  },
  /*web_gl.WebGL.ONE_MINUS_DST_COLOR*/get ONE_MINUS_DST_COLOR() {
    return 775;
  },
  /*web_gl.WebGL.ONE_MINUS_SRC_ALPHA*/get ONE_MINUS_SRC_ALPHA() {
    return 771;
  },
  /*web_gl.WebGL.ONE_MINUS_SRC_COLOR*/get ONE_MINUS_SRC_COLOR() {
    return 769;
  },
  /*web_gl.WebGL.OUT_OF_MEMORY*/get OUT_OF_MEMORY() {
    return 1285;
  },
  /*web_gl.WebGL.PACK_ALIGNMENT*/get PACK_ALIGNMENT() {
    return 3333;
  },
  /*web_gl.WebGL.PACK_ROW_LENGTH*/get PACK_ROW_LENGTH() {
    return 3330;
  },
  /*web_gl.WebGL.PACK_SKIP_PIXELS*/get PACK_SKIP_PIXELS() {
    return 3332;
  },
  /*web_gl.WebGL.PACK_SKIP_ROWS*/get PACK_SKIP_ROWS() {
    return 3331;
  },
  /*web_gl.WebGL.PIXEL_PACK_BUFFER*/get PIXEL_PACK_BUFFER() {
    return 35051;
  },
  /*web_gl.WebGL.PIXEL_PACK_BUFFER_BINDING*/get PIXEL_PACK_BUFFER_BINDING() {
    return 35053;
  },
  /*web_gl.WebGL.PIXEL_UNPACK_BUFFER*/get PIXEL_UNPACK_BUFFER() {
    return 35052;
  },
  /*web_gl.WebGL.PIXEL_UNPACK_BUFFER_BINDING*/get PIXEL_UNPACK_BUFFER_BINDING() {
    return 35055;
  },
  /*web_gl.WebGL.POINTS*/get POINTS() {
    return 0;
  },
  /*web_gl.WebGL.POLYGON_OFFSET_FACTOR*/get POLYGON_OFFSET_FACTOR() {
    return 32824;
  },
  /*web_gl.WebGL.POLYGON_OFFSET_FILL*/get POLYGON_OFFSET_FILL() {
    return 32823;
  },
  /*web_gl.WebGL.POLYGON_OFFSET_UNITS*/get POLYGON_OFFSET_UNITS() {
    return 10752;
  },
  /*web_gl.WebGL.QUERY_RESULT*/get QUERY_RESULT() {
    return 34918;
  },
  /*web_gl.WebGL.QUERY_RESULT_AVAILABLE*/get QUERY_RESULT_AVAILABLE() {
    return 34919;
  },
  /*web_gl.WebGL.R11F_G11F_B10F*/get R11F_G11F_B10F() {
    return 35898;
  },
  /*web_gl.WebGL.R16F*/get R16F() {
    return 33325;
  },
  /*web_gl.WebGL.R16I*/get R16I() {
    return 33331;
  },
  /*web_gl.WebGL.R16UI*/get R16UI() {
    return 33332;
  },
  /*web_gl.WebGL.R32F*/get R32F() {
    return 33326;
  },
  /*web_gl.WebGL.R32I*/get R32I() {
    return 33333;
  },
  /*web_gl.WebGL.R32UI*/get R32UI() {
    return 33334;
  },
  /*web_gl.WebGL.R8*/get R8() {
    return 33321;
  },
  /*web_gl.WebGL.R8I*/get R8I() {
    return 33329;
  },
  /*web_gl.WebGL.R8UI*/get R8UI() {
    return 33330;
  },
  /*web_gl.WebGL.R8_SNORM*/get R8_SNORM() {
    return 36756;
  },
  /*web_gl.WebGL.RASTERIZER_DISCARD*/get RASTERIZER_DISCARD() {
    return 35977;
  },
  /*web_gl.WebGL.READ_BUFFER*/get READ_BUFFER() {
    return 3074;
  },
  /*web_gl.WebGL.READ_FRAMEBUFFER*/get READ_FRAMEBUFFER() {
    return 36008;
  },
  /*web_gl.WebGL.READ_FRAMEBUFFER_BINDING*/get READ_FRAMEBUFFER_BINDING() {
    return 36010;
  },
  /*web_gl.WebGL.RED*/get RED() {
    return 6403;
  },
  /*web_gl.WebGL.RED_BITS*/get RED_BITS() {
    return 3410;
  },
  /*web_gl.WebGL.RED_INTEGER*/get RED_INTEGER() {
    return 36244;
  },
  /*web_gl.WebGL.RENDERBUFFER*/get RENDERBUFFER() {
    return 36161;
  },
  /*web_gl.WebGL.RENDERBUFFER_ALPHA_SIZE*/get RENDERBUFFER_ALPHA_SIZE() {
    return 36179;
  },
  /*web_gl.WebGL.RENDERBUFFER_BINDING*/get RENDERBUFFER_BINDING() {
    return 36007;
  },
  /*web_gl.WebGL.RENDERBUFFER_BLUE_SIZE*/get RENDERBUFFER_BLUE_SIZE() {
    return 36178;
  },
  /*web_gl.WebGL.RENDERBUFFER_DEPTH_SIZE*/get RENDERBUFFER_DEPTH_SIZE() {
    return 36180;
  },
  /*web_gl.WebGL.RENDERBUFFER_GREEN_SIZE*/get RENDERBUFFER_GREEN_SIZE() {
    return 36177;
  },
  /*web_gl.WebGL.RENDERBUFFER_HEIGHT*/get RENDERBUFFER_HEIGHT() {
    return 36163;
  },
  /*web_gl.WebGL.RENDERBUFFER_INTERNAL_FORMAT*/get RENDERBUFFER_INTERNAL_FORMAT() {
    return 36164;
  },
  /*web_gl.WebGL.RENDERBUFFER_RED_SIZE*/get RENDERBUFFER_RED_SIZE() {
    return 36176;
  },
  /*web_gl.WebGL.RENDERBUFFER_SAMPLES*/get RENDERBUFFER_SAMPLES() {
    return 36011;
  },
  /*web_gl.WebGL.RENDERBUFFER_STENCIL_SIZE*/get RENDERBUFFER_STENCIL_SIZE() {
    return 36181;
  },
  /*web_gl.WebGL.RENDERBUFFER_WIDTH*/get RENDERBUFFER_WIDTH() {
    return 36162;
  },
  /*web_gl.WebGL.RENDERER*/get RENDERER() {
    return 7937;
  },
  /*web_gl.WebGL.REPEAT*/get REPEAT() {
    return 10497;
  },
  /*web_gl.WebGL.REPLACE*/get REPLACE() {
    return 7681;
  },
  /*web_gl.WebGL.RG*/get RG() {
    return 33319;
  },
  /*web_gl.WebGL.RG16F*/get RG16F() {
    return 33327;
  },
  /*web_gl.WebGL.RG16I*/get RG16I() {
    return 33337;
  },
  /*web_gl.WebGL.RG16UI*/get RG16UI() {
    return 33338;
  },
  /*web_gl.WebGL.RG32F*/get RG32F() {
    return 33328;
  },
  /*web_gl.WebGL.RG32I*/get RG32I() {
    return 33339;
  },
  /*web_gl.WebGL.RG32UI*/get RG32UI() {
    return 33340;
  },
  /*web_gl.WebGL.RG8*/get RG8() {
    return 33323;
  },
  /*web_gl.WebGL.RG8I*/get RG8I() {
    return 33335;
  },
  /*web_gl.WebGL.RG8UI*/get RG8UI() {
    return 33336;
  },
  /*web_gl.WebGL.RG8_SNORM*/get RG8_SNORM() {
    return 36757;
  },
  /*web_gl.WebGL.RGB*/get RGB() {
    return 6407;
  },
  /*web_gl.WebGL.RGB10_A2*/get RGB10_A2() {
    return 32857;
  },
  /*web_gl.WebGL.RGB10_A2UI*/get RGB10_A2UI() {
    return 36975;
  },
  /*web_gl.WebGL.RGB16F*/get RGB16F() {
    return 34843;
  },
  /*web_gl.WebGL.RGB16I*/get RGB16I() {
    return 36233;
  },
  /*web_gl.WebGL.RGB16UI*/get RGB16UI() {
    return 36215;
  },
  /*web_gl.WebGL.RGB32F*/get RGB32F() {
    return 34837;
  },
  /*web_gl.WebGL.RGB32I*/get RGB32I() {
    return 36227;
  },
  /*web_gl.WebGL.RGB32UI*/get RGB32UI() {
    return 36209;
  },
  /*web_gl.WebGL.RGB565*/get RGB565() {
    return 36194;
  },
  /*web_gl.WebGL.RGB5_A1*/get RGB5_A1() {
    return 32855;
  },
  /*web_gl.WebGL.RGB8*/get RGB8() {
    return 32849;
  },
  /*web_gl.WebGL.RGB8I*/get RGB8I() {
    return 36239;
  },
  /*web_gl.WebGL.RGB8UI*/get RGB8UI() {
    return 36221;
  },
  /*web_gl.WebGL.RGB8_SNORM*/get RGB8_SNORM() {
    return 36758;
  },
  /*web_gl.WebGL.RGB9_E5*/get RGB9_E5() {
    return 35901;
  },
  /*web_gl.WebGL.RGBA*/get RGBA() {
    return 6408;
  },
  /*web_gl.WebGL.RGBA16F*/get RGBA16F() {
    return 34842;
  },
  /*web_gl.WebGL.RGBA16I*/get RGBA16I() {
    return 36232;
  },
  /*web_gl.WebGL.RGBA16UI*/get RGBA16UI() {
    return 36214;
  },
  /*web_gl.WebGL.RGBA32F*/get RGBA32F() {
    return 34836;
  },
  /*web_gl.WebGL.RGBA32I*/get RGBA32I() {
    return 36226;
  },
  /*web_gl.WebGL.RGBA32UI*/get RGBA32UI() {
    return 36208;
  },
  /*web_gl.WebGL.RGBA4*/get RGBA4() {
    return 32854;
  },
  /*web_gl.WebGL.RGBA8*/get RGBA8() {
    return 32856;
  },
  /*web_gl.WebGL.RGBA8I*/get RGBA8I() {
    return 36238;
  },
  /*web_gl.WebGL.RGBA8UI*/get RGBA8UI() {
    return 36220;
  },
  /*web_gl.WebGL.RGBA8_SNORM*/get RGBA8_SNORM() {
    return 36759;
  },
  /*web_gl.WebGL.RGBA_INTEGER*/get RGBA_INTEGER() {
    return 36249;
  },
  /*web_gl.WebGL.RGB_INTEGER*/get RGB_INTEGER() {
    return 36248;
  },
  /*web_gl.WebGL.RG_INTEGER*/get RG_INTEGER() {
    return 33320;
  },
  /*web_gl.WebGL.SAMPLER_2D*/get SAMPLER_2D() {
    return 35678;
  },
  /*web_gl.WebGL.SAMPLER_2D_ARRAY*/get SAMPLER_2D_ARRAY() {
    return 36289;
  },
  /*web_gl.WebGL.SAMPLER_2D_ARRAY_SHADOW*/get SAMPLER_2D_ARRAY_SHADOW() {
    return 36292;
  },
  /*web_gl.WebGL.SAMPLER_2D_SHADOW*/get SAMPLER_2D_SHADOW() {
    return 35682;
  },
  /*web_gl.WebGL.SAMPLER_3D*/get SAMPLER_3D() {
    return 35679;
  },
  /*web_gl.WebGL.SAMPLER_BINDING*/get SAMPLER_BINDING() {
    return 35097;
  },
  /*web_gl.WebGL.SAMPLER_CUBE*/get SAMPLER_CUBE() {
    return 35680;
  },
  /*web_gl.WebGL.SAMPLER_CUBE_SHADOW*/get SAMPLER_CUBE_SHADOW() {
    return 36293;
  },
  /*web_gl.WebGL.SAMPLES*/get SAMPLES() {
    return 32937;
  },
  /*web_gl.WebGL.SAMPLE_ALPHA_TO_COVERAGE*/get SAMPLE_ALPHA_TO_COVERAGE() {
    return 32926;
  },
  /*web_gl.WebGL.SAMPLE_BUFFERS*/get SAMPLE_BUFFERS() {
    return 32936;
  },
  /*web_gl.WebGL.SAMPLE_COVERAGE*/get SAMPLE_COVERAGE() {
    return 32928;
  },
  /*web_gl.WebGL.SAMPLE_COVERAGE_INVERT*/get SAMPLE_COVERAGE_INVERT() {
    return 32939;
  },
  /*web_gl.WebGL.SAMPLE_COVERAGE_VALUE*/get SAMPLE_COVERAGE_VALUE() {
    return 32938;
  },
  /*web_gl.WebGL.SCISSOR_BOX*/get SCISSOR_BOX() {
    return 3088;
  },
  /*web_gl.WebGL.SCISSOR_TEST*/get SCISSOR_TEST() {
    return 3089;
  },
  /*web_gl.WebGL.SEPARATE_ATTRIBS*/get SEPARATE_ATTRIBS() {
    return 35981;
  },
  /*web_gl.WebGL.SHADER_TYPE*/get SHADER_TYPE() {
    return 35663;
  },
  /*web_gl.WebGL.SHADING_LANGUAGE_VERSION*/get SHADING_LANGUAGE_VERSION() {
    return 35724;
  },
  /*web_gl.WebGL.SHORT*/get SHORT() {
    return 5122;
  },
  /*web_gl.WebGL.SIGNALED*/get SIGNALED() {
    return 37145;
  },
  /*web_gl.WebGL.SIGNED_NORMALIZED*/get SIGNED_NORMALIZED() {
    return 36764;
  },
  /*web_gl.WebGL.SRC_ALPHA*/get SRC_ALPHA() {
    return 770;
  },
  /*web_gl.WebGL.SRC_ALPHA_SATURATE*/get SRC_ALPHA_SATURATE() {
    return 776;
  },
  /*web_gl.WebGL.SRC_COLOR*/get SRC_COLOR() {
    return 768;
  },
  /*web_gl.WebGL.SRGB*/get SRGB() {
    return 35904;
  },
  /*web_gl.WebGL.SRGB8*/get SRGB8() {
    return 35905;
  },
  /*web_gl.WebGL.SRGB8_ALPHA8*/get SRGB8_ALPHA8() {
    return 35907;
  },
  /*web_gl.WebGL.STATIC_COPY*/get STATIC_COPY() {
    return 35046;
  },
  /*web_gl.WebGL.STATIC_DRAW*/get STATIC_DRAW() {
    return 35044;
  },
  /*web_gl.WebGL.STATIC_READ*/get STATIC_READ() {
    return 35045;
  },
  /*web_gl.WebGL.STENCIL*/get STENCIL() {
    return 6146;
  },
  /*web_gl.WebGL.STENCIL_ATTACHMENT*/get STENCIL_ATTACHMENT() {
    return 36128;
  },
  /*web_gl.WebGL.STENCIL_BACK_FAIL*/get STENCIL_BACK_FAIL() {
    return 34817;
  },
  /*web_gl.WebGL.STENCIL_BACK_FUNC*/get STENCIL_BACK_FUNC() {
    return 34816;
  },
  /*web_gl.WebGL.STENCIL_BACK_PASS_DEPTH_FAIL*/get STENCIL_BACK_PASS_DEPTH_FAIL() {
    return 34818;
  },
  /*web_gl.WebGL.STENCIL_BACK_PASS_DEPTH_PASS*/get STENCIL_BACK_PASS_DEPTH_PASS() {
    return 34819;
  },
  /*web_gl.WebGL.STENCIL_BACK_REF*/get STENCIL_BACK_REF() {
    return 36003;
  },
  /*web_gl.WebGL.STENCIL_BACK_VALUE_MASK*/get STENCIL_BACK_VALUE_MASK() {
    return 36004;
  },
  /*web_gl.WebGL.STENCIL_BACK_WRITEMASK*/get STENCIL_BACK_WRITEMASK() {
    return 36005;
  },
  /*web_gl.WebGL.STENCIL_BITS*/get STENCIL_BITS() {
    return 3415;
  },
  /*web_gl.WebGL.STENCIL_BUFFER_BIT*/get STENCIL_BUFFER_BIT() {
    return 1024;
  },
  /*web_gl.WebGL.STENCIL_CLEAR_VALUE*/get STENCIL_CLEAR_VALUE() {
    return 2961;
  },
  /*web_gl.WebGL.STENCIL_FAIL*/get STENCIL_FAIL() {
    return 2964;
  },
  /*web_gl.WebGL.STENCIL_FUNC*/get STENCIL_FUNC() {
    return 2962;
  },
  /*web_gl.WebGL.STENCIL_INDEX8*/get STENCIL_INDEX8() {
    return 36168;
  },
  /*web_gl.WebGL.STENCIL_PASS_DEPTH_FAIL*/get STENCIL_PASS_DEPTH_FAIL() {
    return 2965;
  },
  /*web_gl.WebGL.STENCIL_PASS_DEPTH_PASS*/get STENCIL_PASS_DEPTH_PASS() {
    return 2966;
  },
  /*web_gl.WebGL.STENCIL_REF*/get STENCIL_REF() {
    return 2967;
  },
  /*web_gl.WebGL.STENCIL_TEST*/get STENCIL_TEST() {
    return 2960;
  },
  /*web_gl.WebGL.STENCIL_VALUE_MASK*/get STENCIL_VALUE_MASK() {
    return 2963;
  },
  /*web_gl.WebGL.STENCIL_WRITEMASK*/get STENCIL_WRITEMASK() {
    return 2968;
  },
  /*web_gl.WebGL.STREAM_COPY*/get STREAM_COPY() {
    return 35042;
  },
  /*web_gl.WebGL.STREAM_DRAW*/get STREAM_DRAW() {
    return 35040;
  },
  /*web_gl.WebGL.STREAM_READ*/get STREAM_READ() {
    return 35041;
  },
  /*web_gl.WebGL.SUBPIXEL_BITS*/get SUBPIXEL_BITS() {
    return 3408;
  },
  /*web_gl.WebGL.SYNC_CONDITION*/get SYNC_CONDITION() {
    return 37139;
  },
  /*web_gl.WebGL.SYNC_FENCE*/get SYNC_FENCE() {
    return 37142;
  },
  /*web_gl.WebGL.SYNC_FLAGS*/get SYNC_FLAGS() {
    return 37141;
  },
  /*web_gl.WebGL.SYNC_FLUSH_COMMANDS_BIT*/get SYNC_FLUSH_COMMANDS_BIT() {
    return 1;
  },
  /*web_gl.WebGL.SYNC_GPU_COMMANDS_COMPLETE*/get SYNC_GPU_COMMANDS_COMPLETE() {
    return 37143;
  },
  /*web_gl.WebGL.SYNC_STATUS*/get SYNC_STATUS() {
    return 37140;
  },
  /*web_gl.WebGL.TEXTURE*/get TEXTURE() {
    return 5890;
  },
  /*web_gl.WebGL.TEXTURE0*/get TEXTURE0() {
    return 33984;
  },
  /*web_gl.WebGL.TEXTURE1*/get TEXTURE1() {
    return 33985;
  },
  /*web_gl.WebGL.TEXTURE10*/get TEXTURE10() {
    return 33994;
  },
  /*web_gl.WebGL.TEXTURE11*/get TEXTURE11() {
    return 33995;
  },
  /*web_gl.WebGL.TEXTURE12*/get TEXTURE12() {
    return 33996;
  },
  /*web_gl.WebGL.TEXTURE13*/get TEXTURE13() {
    return 33997;
  },
  /*web_gl.WebGL.TEXTURE14*/get TEXTURE14() {
    return 33998;
  },
  /*web_gl.WebGL.TEXTURE15*/get TEXTURE15() {
    return 33999;
  },
  /*web_gl.WebGL.TEXTURE16*/get TEXTURE16() {
    return 34000;
  },
  /*web_gl.WebGL.TEXTURE17*/get TEXTURE17() {
    return 34001;
  },
  /*web_gl.WebGL.TEXTURE18*/get TEXTURE18() {
    return 34002;
  },
  /*web_gl.WebGL.TEXTURE19*/get TEXTURE19() {
    return 34003;
  },
  /*web_gl.WebGL.TEXTURE2*/get TEXTURE2() {
    return 33986;
  },
  /*web_gl.WebGL.TEXTURE20*/get TEXTURE20() {
    return 34004;
  },
  /*web_gl.WebGL.TEXTURE21*/get TEXTURE21() {
    return 34005;
  },
  /*web_gl.WebGL.TEXTURE22*/get TEXTURE22() {
    return 34006;
  },
  /*web_gl.WebGL.TEXTURE23*/get TEXTURE23() {
    return 34007;
  },
  /*web_gl.WebGL.TEXTURE24*/get TEXTURE24() {
    return 34008;
  },
  /*web_gl.WebGL.TEXTURE25*/get TEXTURE25() {
    return 34009;
  },
  /*web_gl.WebGL.TEXTURE26*/get TEXTURE26() {
    return 34010;
  },
  /*web_gl.WebGL.TEXTURE27*/get TEXTURE27() {
    return 34011;
  },
  /*web_gl.WebGL.TEXTURE28*/get TEXTURE28() {
    return 34012;
  },
  /*web_gl.WebGL.TEXTURE29*/get TEXTURE29() {
    return 34013;
  },
  /*web_gl.WebGL.TEXTURE3*/get TEXTURE3() {
    return 33987;
  },
  /*web_gl.WebGL.TEXTURE30*/get TEXTURE30() {
    return 34014;
  },
  /*web_gl.WebGL.TEXTURE31*/get TEXTURE31() {
    return 34015;
  },
  /*web_gl.WebGL.TEXTURE4*/get TEXTURE4() {
    return 33988;
  },
  /*web_gl.WebGL.TEXTURE5*/get TEXTURE5() {
    return 33989;
  },
  /*web_gl.WebGL.TEXTURE6*/get TEXTURE6() {
    return 33990;
  },
  /*web_gl.WebGL.TEXTURE7*/get TEXTURE7() {
    return 33991;
  },
  /*web_gl.WebGL.TEXTURE8*/get TEXTURE8() {
    return 33992;
  },
  /*web_gl.WebGL.TEXTURE9*/get TEXTURE9() {
    return 33993;
  },
  /*web_gl.WebGL.TEXTURE_2D*/get TEXTURE_2D() {
    return 3553;
  },
  /*web_gl.WebGL.TEXTURE_2D_ARRAY*/get TEXTURE_2D_ARRAY() {
    return 35866;
  },
  /*web_gl.WebGL.TEXTURE_3D*/get TEXTURE_3D() {
    return 32879;
  },
  /*web_gl.WebGL.TEXTURE_BASE_LEVEL*/get TEXTURE_BASE_LEVEL() {
    return 33084;
  },
  /*web_gl.WebGL.TEXTURE_BINDING_2D*/get TEXTURE_BINDING_2D() {
    return 32873;
  },
  /*web_gl.WebGL.TEXTURE_BINDING_2D_ARRAY*/get TEXTURE_BINDING_2D_ARRAY() {
    return 35869;
  },
  /*web_gl.WebGL.TEXTURE_BINDING_3D*/get TEXTURE_BINDING_3D() {
    return 32874;
  },
  /*web_gl.WebGL.TEXTURE_BINDING_CUBE_MAP*/get TEXTURE_BINDING_CUBE_MAP() {
    return 34068;
  },
  /*web_gl.WebGL.TEXTURE_COMPARE_FUNC*/get TEXTURE_COMPARE_FUNC() {
    return 34893;
  },
  /*web_gl.WebGL.TEXTURE_COMPARE_MODE*/get TEXTURE_COMPARE_MODE() {
    return 34892;
  },
  /*web_gl.WebGL.TEXTURE_CUBE_MAP*/get TEXTURE_CUBE_MAP() {
    return 34067;
  },
  /*web_gl.WebGL.TEXTURE_CUBE_MAP_NEGATIVE_X*/get TEXTURE_CUBE_MAP_NEGATIVE_X() {
    return 34070;
  },
  /*web_gl.WebGL.TEXTURE_CUBE_MAP_NEGATIVE_Y*/get TEXTURE_CUBE_MAP_NEGATIVE_Y() {
    return 34072;
  },
  /*web_gl.WebGL.TEXTURE_CUBE_MAP_NEGATIVE_Z*/get TEXTURE_CUBE_MAP_NEGATIVE_Z() {
    return 34074;
  },
  /*web_gl.WebGL.TEXTURE_CUBE_MAP_POSITIVE_X*/get TEXTURE_CUBE_MAP_POSITIVE_X() {
    return 34069;
  },
  /*web_gl.WebGL.TEXTURE_CUBE_MAP_POSITIVE_Y*/get TEXTURE_CUBE_MAP_POSITIVE_Y() {
    return 34071;
  },
  /*web_gl.WebGL.TEXTURE_CUBE_MAP_POSITIVE_Z*/get TEXTURE_CUBE_MAP_POSITIVE_Z() {
    return 34073;
  },
  /*web_gl.WebGL.TEXTURE_IMMUTABLE_FORMAT*/get TEXTURE_IMMUTABLE_FORMAT() {
    return 37167;
  },
  /*web_gl.WebGL.TEXTURE_IMMUTABLE_LEVELS*/get TEXTURE_IMMUTABLE_LEVELS() {
    return 33503;
  },
  /*web_gl.WebGL.TEXTURE_MAG_FILTER*/get TEXTURE_MAG_FILTER() {
    return 10240;
  },
  /*web_gl.WebGL.TEXTURE_MAX_LEVEL*/get TEXTURE_MAX_LEVEL() {
    return 33085;
  },
  /*web_gl.WebGL.TEXTURE_MAX_LOD*/get TEXTURE_MAX_LOD() {
    return 33083;
  },
  /*web_gl.WebGL.TEXTURE_MIN_FILTER*/get TEXTURE_MIN_FILTER() {
    return 10241;
  },
  /*web_gl.WebGL.TEXTURE_MIN_LOD*/get TEXTURE_MIN_LOD() {
    return 33082;
  },
  /*web_gl.WebGL.TEXTURE_WRAP_R*/get TEXTURE_WRAP_R() {
    return 32882;
  },
  /*web_gl.WebGL.TEXTURE_WRAP_S*/get TEXTURE_WRAP_S() {
    return 10242;
  },
  /*web_gl.WebGL.TEXTURE_WRAP_T*/get TEXTURE_WRAP_T() {
    return 10243;
  },
  /*web_gl.WebGL.TIMEOUT_EXPIRED*/get TIMEOUT_EXPIRED() {
    return 37147;
  },
  /*web_gl.WebGL.TIMEOUT_IGNORED*/get TIMEOUT_IGNORED() {
    return -1;
  },
  /*web_gl.WebGL.TRANSFORM_FEEDBACK*/get TRANSFORM_FEEDBACK() {
    return 36386;
  },
  /*web_gl.WebGL.TRANSFORM_FEEDBACK_ACTIVE*/get TRANSFORM_FEEDBACK_ACTIVE() {
    return 36388;
  },
  /*web_gl.WebGL.TRANSFORM_FEEDBACK_BINDING*/get TRANSFORM_FEEDBACK_BINDING() {
    return 36389;
  },
  /*web_gl.WebGL.TRANSFORM_FEEDBACK_BUFFER*/get TRANSFORM_FEEDBACK_BUFFER() {
    return 35982;
  },
  /*web_gl.WebGL.TRANSFORM_FEEDBACK_BUFFER_BINDING*/get TRANSFORM_FEEDBACK_BUFFER_BINDING() {
    return 35983;
  },
  /*web_gl.WebGL.TRANSFORM_FEEDBACK_BUFFER_MODE*/get TRANSFORM_FEEDBACK_BUFFER_MODE() {
    return 35967;
  },
  /*web_gl.WebGL.TRANSFORM_FEEDBACK_BUFFER_SIZE*/get TRANSFORM_FEEDBACK_BUFFER_SIZE() {
    return 35973;
  },
  /*web_gl.WebGL.TRANSFORM_FEEDBACK_BUFFER_START*/get TRANSFORM_FEEDBACK_BUFFER_START() {
    return 35972;
  },
  /*web_gl.WebGL.TRANSFORM_FEEDBACK_PAUSED*/get TRANSFORM_FEEDBACK_PAUSED() {
    return 36387;
  },
  /*web_gl.WebGL.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN*/get TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN() {
    return 35976;
  },
  /*web_gl.WebGL.TRANSFORM_FEEDBACK_VARYINGS*/get TRANSFORM_FEEDBACK_VARYINGS() {
    return 35971;
  },
  /*web_gl.WebGL.TRIANGLES*/get TRIANGLES() {
    return 4;
  },
  /*web_gl.WebGL.TRIANGLE_FAN*/get TRIANGLE_FAN() {
    return 6;
  },
  /*web_gl.WebGL.TRIANGLE_STRIP*/get TRIANGLE_STRIP() {
    return 5;
  },
  /*web_gl.WebGL.UNIFORM_ARRAY_STRIDE*/get UNIFORM_ARRAY_STRIDE() {
    return 35388;
  },
  /*web_gl.WebGL.UNIFORM_BLOCK_ACTIVE_UNIFORMS*/get UNIFORM_BLOCK_ACTIVE_UNIFORMS() {
    return 35394;
  },
  /*web_gl.WebGL.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES*/get UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES() {
    return 35395;
  },
  /*web_gl.WebGL.UNIFORM_BLOCK_BINDING*/get UNIFORM_BLOCK_BINDING() {
    return 35391;
  },
  /*web_gl.WebGL.UNIFORM_BLOCK_DATA_SIZE*/get UNIFORM_BLOCK_DATA_SIZE() {
    return 35392;
  },
  /*web_gl.WebGL.UNIFORM_BLOCK_INDEX*/get UNIFORM_BLOCK_INDEX() {
    return 35386;
  },
  /*web_gl.WebGL.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER*/get UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER() {
    return 35398;
  },
  /*web_gl.WebGL.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER*/get UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER() {
    return 35396;
  },
  /*web_gl.WebGL.UNIFORM_BUFFER*/get UNIFORM_BUFFER() {
    return 35345;
  },
  /*web_gl.WebGL.UNIFORM_BUFFER_BINDING*/get UNIFORM_BUFFER_BINDING() {
    return 35368;
  },
  /*web_gl.WebGL.UNIFORM_BUFFER_OFFSET_ALIGNMENT*/get UNIFORM_BUFFER_OFFSET_ALIGNMENT() {
    return 35380;
  },
  /*web_gl.WebGL.UNIFORM_BUFFER_SIZE*/get UNIFORM_BUFFER_SIZE() {
    return 35370;
  },
  /*web_gl.WebGL.UNIFORM_BUFFER_START*/get UNIFORM_BUFFER_START() {
    return 35369;
  },
  /*web_gl.WebGL.UNIFORM_IS_ROW_MAJOR*/get UNIFORM_IS_ROW_MAJOR() {
    return 35390;
  },
  /*web_gl.WebGL.UNIFORM_MATRIX_STRIDE*/get UNIFORM_MATRIX_STRIDE() {
    return 35389;
  },
  /*web_gl.WebGL.UNIFORM_OFFSET*/get UNIFORM_OFFSET() {
    return 35387;
  },
  /*web_gl.WebGL.UNIFORM_SIZE*/get UNIFORM_SIZE() {
    return 35384;
  },
  /*web_gl.WebGL.UNIFORM_TYPE*/get UNIFORM_TYPE() {
    return 35383;
  },
  /*web_gl.WebGL.UNPACK_ALIGNMENT*/get UNPACK_ALIGNMENT() {
    return 3317;
  },
  /*web_gl.WebGL.UNPACK_COLORSPACE_CONVERSION_WEBGL*/get UNPACK_COLORSPACE_CONVERSION_WEBGL() {
    return 37443;
  },
  /*web_gl.WebGL.UNPACK_FLIP_Y_WEBGL*/get UNPACK_FLIP_Y_WEBGL() {
    return 37440;
  },
  /*web_gl.WebGL.UNPACK_IMAGE_HEIGHT*/get UNPACK_IMAGE_HEIGHT() {
    return 32878;
  },
  /*web_gl.WebGL.UNPACK_PREMULTIPLY_ALPHA_WEBGL*/get UNPACK_PREMULTIPLY_ALPHA_WEBGL() {
    return 37441;
  },
  /*web_gl.WebGL.UNPACK_ROW_LENGTH*/get UNPACK_ROW_LENGTH() {
    return 3314;
  },
  /*web_gl.WebGL.UNPACK_SKIP_IMAGES*/get UNPACK_SKIP_IMAGES() {
    return 32877;
  },
  /*web_gl.WebGL.UNPACK_SKIP_PIXELS*/get UNPACK_SKIP_PIXELS() {
    return 3316;
  },
  /*web_gl.WebGL.UNPACK_SKIP_ROWS*/get UNPACK_SKIP_ROWS() {
    return 3315;
  },
  /*web_gl.WebGL.UNSIGNALED*/get UNSIGNALED() {
    return 37144;
  },
  /*web_gl.WebGL.UNSIGNED_BYTE*/get UNSIGNED_BYTE() {
    return 5121;
  },
  /*web_gl.WebGL.UNSIGNED_INT*/get UNSIGNED_INT() {
    return 5125;
  },
  /*web_gl.WebGL.UNSIGNED_INT_10F_11F_11F_REV*/get UNSIGNED_INT_10F_11F_11F_REV() {
    return 35899;
  },
  /*web_gl.WebGL.UNSIGNED_INT_24_8*/get UNSIGNED_INT_24_8() {
    return 34042;
  },
  /*web_gl.WebGL.UNSIGNED_INT_2_10_10_10_REV*/get UNSIGNED_INT_2_10_10_10_REV() {
    return 33640;
  },
  /*web_gl.WebGL.UNSIGNED_INT_5_9_9_9_REV*/get UNSIGNED_INT_5_9_9_9_REV() {
    return 35902;
  },
  /*web_gl.WebGL.UNSIGNED_INT_SAMPLER_2D*/get UNSIGNED_INT_SAMPLER_2D() {
    return 36306;
  },
  /*web_gl.WebGL.UNSIGNED_INT_SAMPLER_2D_ARRAY*/get UNSIGNED_INT_SAMPLER_2D_ARRAY() {
    return 36311;
  },
  /*web_gl.WebGL.UNSIGNED_INT_SAMPLER_3D*/get UNSIGNED_INT_SAMPLER_3D() {
    return 36307;
  },
  /*web_gl.WebGL.UNSIGNED_INT_SAMPLER_CUBE*/get UNSIGNED_INT_SAMPLER_CUBE() {
    return 36308;
  },
  /*web_gl.WebGL.UNSIGNED_INT_VEC2*/get UNSIGNED_INT_VEC2() {
    return 36294;
  },
  /*web_gl.WebGL.UNSIGNED_INT_VEC3*/get UNSIGNED_INT_VEC3() {
    return 36295;
  },
  /*web_gl.WebGL.UNSIGNED_INT_VEC4*/get UNSIGNED_INT_VEC4() {
    return 36296;
  },
  /*web_gl.WebGL.UNSIGNED_NORMALIZED*/get UNSIGNED_NORMALIZED() {
    return 35863;
  },
  /*web_gl.WebGL.UNSIGNED_SHORT*/get UNSIGNED_SHORT() {
    return 5123;
  },
  /*web_gl.WebGL.UNSIGNED_SHORT_4_4_4_4*/get UNSIGNED_SHORT_4_4_4_4() {
    return 32819;
  },
  /*web_gl.WebGL.UNSIGNED_SHORT_5_5_5_1*/get UNSIGNED_SHORT_5_5_5_1() {
    return 32820;
  },
  /*web_gl.WebGL.UNSIGNED_SHORT_5_6_5*/get UNSIGNED_SHORT_5_6_5() {
    return 33635;
  },
  /*web_gl.WebGL.VALIDATE_STATUS*/get VALIDATE_STATUS() {
    return 35715;
  },
  /*web_gl.WebGL.VENDOR*/get VENDOR() {
    return 7936;
  },
  /*web_gl.WebGL.VERSION*/get VERSION() {
    return 7938;
  },
  /*web_gl.WebGL.VERTEX_ARRAY_BINDING*/get VERTEX_ARRAY_BINDING() {
    return 34229;
  },
  /*web_gl.WebGL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING*/get VERTEX_ATTRIB_ARRAY_BUFFER_BINDING() {
    return 34975;
  },
  /*web_gl.WebGL.VERTEX_ATTRIB_ARRAY_DIVISOR*/get VERTEX_ATTRIB_ARRAY_DIVISOR() {
    return 35070;
  },
  /*web_gl.WebGL.VERTEX_ATTRIB_ARRAY_ENABLED*/get VERTEX_ATTRIB_ARRAY_ENABLED() {
    return 34338;
  },
  /*web_gl.WebGL.VERTEX_ATTRIB_ARRAY_INTEGER*/get VERTEX_ATTRIB_ARRAY_INTEGER() {
    return 35069;
  },
  /*web_gl.WebGL.VERTEX_ATTRIB_ARRAY_NORMALIZED*/get VERTEX_ATTRIB_ARRAY_NORMALIZED() {
    return 34922;
  },
  /*web_gl.WebGL.VERTEX_ATTRIB_ARRAY_POINTER*/get VERTEX_ATTRIB_ARRAY_POINTER() {
    return 34373;
  },
  /*web_gl.WebGL.VERTEX_ATTRIB_ARRAY_SIZE*/get VERTEX_ATTRIB_ARRAY_SIZE() {
    return 34339;
  },
  /*web_gl.WebGL.VERTEX_ATTRIB_ARRAY_STRIDE*/get VERTEX_ATTRIB_ARRAY_STRIDE() {
    return 34340;
  },
  /*web_gl.WebGL.VERTEX_ATTRIB_ARRAY_TYPE*/get VERTEX_ATTRIB_ARRAY_TYPE() {
    return 34341;
  },
  /*web_gl.WebGL.VERTEX_SHADER*/get VERTEX_SHADER() {
    return 35633;
  },
  /*web_gl.WebGL.VIEWPORT*/get VIEWPORT() {
    return 2978;
  },
  /*web_gl.WebGL.WAIT_FAILED*/get WAIT_FAILED() {
    return 37149;
  },
  /*web_gl.WebGL.ZERO*/get ZERO() {
    return 0;
  }
}, true);
dart.registerExtension("WebGL", web_gl.WebGL);
web_gl._WebGL2RenderingContextBase = class _WebGL2RenderingContextBase extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl._WebGL2RenderingContextBase);
dart.addTypeCaches(web_gl._WebGL2RenderingContextBase);
web_gl._WebGL2RenderingContextBase[dart.implements] = () => [web_gl._WebGLRenderingContextBase];
dart.setLibraryUri(web_gl._WebGL2RenderingContextBase, L70);
dart.registerExtension("WebGL2RenderingContextBase", web_gl._WebGL2RenderingContextBase);
web_gl._WebGLRenderingContextBase = class _WebGLRenderingContextBase extends _interceptors.Interceptor {};
dart.addTypeTests(web_gl._WebGLRenderingContextBase);
dart.addTypeCaches(web_gl._WebGLRenderingContextBase);
dart.setLibraryUri(web_gl._WebGLRenderingContextBase, L70);
var _changeVersion = dart.privateName(web_sql, "_changeVersion");
var _readTransaction = dart.privateName(web_sql, "_readTransaction");
web_sql.SqlDatabase = class SqlDatabase extends _interceptors.Interceptor {
  static get supported() {
    return !!window.openDatabase;
  }
  get [$version]() {
    return this.version;
  }
  [_changeVersion](...args) {
    return this.changeVersion.apply(this, args);
  }
  [$changeVersion](oldVersion, newVersion) {
    let completer = CompleterOfSqlTransactionL().new();
    this[_changeVersion](oldVersion, newVersion, dart.fn(value => {
      completer.complete(value);
    }, SqlTransactionLToNullN()), dart.fn(error => {
      completer.completeError(error);
    }, SqlErrorLToNullN()));
    return completer.future;
  }
  [_readTransaction](...args) {
    return this.readTransaction.apply(this, args);
  }
  [$readTransaction]() {
    let completer = CompleterOfSqlTransactionL().new();
    this[_readTransaction](dart.fn(value => {
      completer.complete(value);
    }, SqlTransactionLToNullN()), dart.fn(error => {
      completer.completeError(error);
    }, SqlErrorLToNullN()));
    return completer.future;
  }
  [$transaction](...args) {
    return this.transaction.apply(this, args);
  }
  [$transaction_future]() {
    let completer = CompleterOfSqlTransactionL().new();
    this.transaction(dart.fn(value => {
      _js_helper.applyExtension("SQLTransaction", value);
      completer.complete(value);
    }, SqlTransactionLToNullN()), dart.fn(error => {
      completer.completeError(error);
    }, SqlErrorLToNullN()));
    return completer.future;
  }
};
dart.addTypeTests(web_sql.SqlDatabase);
dart.addTypeCaches(web_sql.SqlDatabase);
dart.setMethodSignature(web_sql.SqlDatabase, () => ({
  __proto__: dart.getMethods(web_sql.SqlDatabase.__proto__),
  [_changeVersion]: dart.fnType(dart.void, [core.String, core.String], [dart.fnType(dart.void, [web_sql.SqlTransaction]), dart.fnType(dart.void, [web_sql.SqlError]), dart.fnType(dart.void, [])]),
  [$changeVersion]: dart.fnType(async.Future$(web_sql.SqlTransaction), [core.String, core.String]),
  [_readTransaction]: dart.fnType(dart.void, [dart.fnType(dart.void, [web_sql.SqlTransaction])], [dart.fnType(dart.void, [web_sql.SqlError]), dart.fnType(dart.void, [])]),
  [$readTransaction]: dart.fnType(async.Future$(web_sql.SqlTransaction), []),
  [$transaction]: dart.fnType(dart.void, [dart.fnType(dart.void, [web_sql.SqlTransaction])], [dart.fnType(dart.void, [web_sql.SqlError]), dart.fnType(dart.void, [])]),
  [$transaction_future]: dart.fnType(async.Future$(web_sql.SqlTransaction), [])
}));
dart.setGetterSignature(web_sql.SqlDatabase, () => ({
  __proto__: dart.getGetters(web_sql.SqlDatabase.__proto__),
  [$version]: core.String
}));
dart.setLibraryUri(web_sql.SqlDatabase, L71);
dart.registerExtension("Database", web_sql.SqlDatabase);
web_sql.SqlError = class SqlError extends _interceptors.Interceptor {
  get [$code]() {
    return this.code;
  }
  get [$message]() {
    return this.message;
  }
};
dart.addTypeTests(web_sql.SqlError);
dart.addTypeCaches(web_sql.SqlError);
dart.setGetterSignature(web_sql.SqlError, () => ({
  __proto__: dart.getGetters(web_sql.SqlError.__proto__),
  [$code]: core.int,
  [$message]: core.String
}));
dart.setLibraryUri(web_sql.SqlError, L71);
dart.defineLazy(web_sql.SqlError, {
  /*web_sql.SqlError.CONSTRAINT_ERR*/get CONSTRAINT_ERR() {
    return 6;
  },
  /*web_sql.SqlError.DATABASE_ERR*/get DATABASE_ERR() {
    return 1;
  },
  /*web_sql.SqlError.QUOTA_ERR*/get QUOTA_ERR() {
    return 4;
  },
  /*web_sql.SqlError.SYNTAX_ERR*/get SYNTAX_ERR() {
    return 5;
  },
  /*web_sql.SqlError.TIMEOUT_ERR*/get TIMEOUT_ERR() {
    return 7;
  },
  /*web_sql.SqlError.TOO_LARGE_ERR*/get TOO_LARGE_ERR() {
    return 3;
  },
  /*web_sql.SqlError.UNKNOWN_ERR*/get UNKNOWN_ERR() {
    return 0;
  },
  /*web_sql.SqlError.VERSION_ERR*/get VERSION_ERR() {
    return 2;
  }
}, true);
dart.registerExtension("SQLError", web_sql.SqlError);
web_sql.SqlResultSet = class SqlResultSet extends _interceptors.Interceptor {
  get [$insertId]() {
    return this.insertId;
  }
  get [$rows]() {
    return this.rows;
  }
  get [$rowsAffected]() {
    return this.rowsAffected;
  }
};
dart.addTypeTests(web_sql.SqlResultSet);
dart.addTypeCaches(web_sql.SqlResultSet);
dart.setGetterSignature(web_sql.SqlResultSet, () => ({
  __proto__: dart.getGetters(web_sql.SqlResultSet.__proto__),
  [$insertId]: core.int,
  [$rows]: web_sql.SqlResultSetRowList,
  [$rowsAffected]: core.int
}));
dart.setLibraryUri(web_sql.SqlResultSet, L71);
dart.registerExtension("SQLResultSet", web_sql.SqlResultSet);
var _item_1 = dart.privateName(web_sql, "_item_1");
core.Map$ = dart.generic((K, V) => {
  class Map extends core.Object {
    static unmodifiable(other) {
      return new (collection.UnmodifiableMapView$(K, V)).new(collection.LinkedHashMap$(K, V).from(other));
    }
    static castFrom(K, V, K2, V2, source) {
      return new (_internal.CastMap$(K, V, K2, V2)).new(source);
    }
    static fromEntries(entries) {
      let t123;
      t123 = new (_js_helper.LinkedMap$(K, V)).new();
      t123[$addEntries](entries);
      return t123;
    }
  }
  (Map[dart.mixinNew] = function() {
  }).prototype = Map.prototype;
  dart.addTypeTests(Map);
  Map.prototype[dart.isMap] = true;
  dart.addTypeCaches(Map);
  dart.setLibraryUri(Map, L1$);
  return Map;
});
core.Map = core.Map$();
dart.addTypeTests(core.Map, dart.isMap);
const Interceptor_ListMixin$36$17 = class Interceptor_ListMixin extends _interceptors.Interceptor {};
(Interceptor_ListMixin$36$17.new = function() {
  Interceptor_ListMixin$36$17.__proto__.new.call(this);
}).prototype = Interceptor_ListMixin$36$17.prototype;
dart.applyMixin(Interceptor_ListMixin$36$17, collection.ListMixin$(core.Map));
const Interceptor_ImmutableListMixin$36$17 = class Interceptor_ImmutableListMixin extends Interceptor_ListMixin$36$17 {};
(Interceptor_ImmutableListMixin$36$17.new = function() {
  Interceptor_ImmutableListMixin$36$17.__proto__.new.call(this);
}).prototype = Interceptor_ImmutableListMixin$36$17.prototype;
dart.applyMixin(Interceptor_ImmutableListMixin$36$17, html$.ImmutableListMixin$(core.Map));
web_sql.SqlResultSetRowList = class SqlResultSetRowList extends Interceptor_ImmutableListMixin$36$17 {
  get [$length]() {
    return this.length;
  }
  [$_get](index) {
    if (index >>> 0 !== index || index >= this[$length]) dart.throw(new core.IndexError.new(index, this));
    return this[$item](index);
  }
  [$_set](index, value$) {
    let value = value$;
    core.Map.as(value);
    dart.throw(new core.UnsupportedError.new("Cannot assign element of immutable List."));
    return value$;
  }
  set [$length](value) {
    dart.throw(new core.UnsupportedError.new("Cannot resize immutable List."));
  }
  get [$first]() {
    if (dart.notNull(this[$length]) > 0) {
      return this[0];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$first](value) {
    super[$first] = value;
  }
  get [$last]() {
    let len = this[$length];
    if (dart.notNull(len) > 0) {
      return this[dart.notNull(len) - 1];
    }
    dart.throw(new core.StateError.new("No elements"));
  }
  set [$last](value) {
    super[$last] = value;
  }
  get [$single]() {
    let len = this[$length];
    if (len === 1) {
      return this[0];
    }
    if (len === 0) dart.throw(new core.StateError.new("No elements"));
    dart.throw(new core.StateError.new("More than one element"));
  }
  [$elementAt](index) {
    return this[$_get](index);
  }
  [$item](index) {
    return html_common.convertNativeToDart_Dictionary(this[_item_1](index));
  }
  [_item_1](...args) {
    return this.item.apply(this, args);
  }
};
web_sql.SqlResultSetRowList.prototype[dart.isList] = true;
dart.addTypeTests(web_sql.SqlResultSetRowList);
dart.addTypeCaches(web_sql.SqlResultSetRowList);
web_sql.SqlResultSetRowList[dart.implements] = () => [core.List$(core.Map)];
dart.setMethodSignature(web_sql.SqlResultSetRowList, () => ({
  __proto__: dart.getMethods(web_sql.SqlResultSetRowList.__proto__),
  [$_get]: dart.fnType(core.Map, [core.int]),
  [$_set]: dart.fnType(dart.void, [core.int, core.Object]),
  [$item]: dart.fnType(core.Map, [core.int]),
  [_item_1]: dart.fnType(dart.dynamic, [dart.dynamic])
}));
dart.setGetterSignature(web_sql.SqlResultSetRowList, () => ({
  __proto__: dart.getGetters(web_sql.SqlResultSetRowList.__proto__),
  [$length]: core.int
}));
dart.setSetterSignature(web_sql.SqlResultSetRowList, () => ({
  __proto__: dart.getSetters(web_sql.SqlResultSetRowList.__proto__),
  [$length]: core.int
}));
dart.setLibraryUri(web_sql.SqlResultSetRowList, L71);
dart.registerExtension("SQLResultSetRowList", web_sql.SqlResultSetRowList);
var _executeSql = dart.privateName(web_sql, "_executeSql");
web_sql.SqlTransaction = class SqlTransaction extends _interceptors.Interceptor {
  [_executeSql](...args) {
    return this.executeSql.apply(this, args);
  }
  [$executeSql](sqlStatement, $arguments = null) {
    let completer = CompleterOfSqlResultSetL().new();
    this[_executeSql](sqlStatement, $arguments, dart.fn((transaction, resultSet) => {
      _js_helper.applyExtension("SQLResultSet", resultSet);
      _js_helper.applyExtension("SQLResultSetRowList", resultSet.rows);
      completer.complete(resultSet);
    }, SqlTransactionLAndSqlResultSetLToNullN()), dart.fn((transaction, error) => {
      completer.completeError(error);
    }, SqlTransactionLAndSqlErrorLToNullN()));
    return completer.future;
  }
};
dart.addTypeTests(web_sql.SqlTransaction);
dart.addTypeCaches(web_sql.SqlTransaction);
dart.setMethodSignature(web_sql.SqlTransaction, () => ({
  __proto__: dart.getMethods(web_sql.SqlTransaction.__proto__),
  [_executeSql]: dart.fnType(dart.void, [core.String], [core.List, dart.fnType(dart.void, [web_sql.SqlTransaction, web_sql.SqlResultSet]), dart.fnType(dart.void, [web_sql.SqlTransaction, web_sql.SqlError])]),
  [$executeSql]: dart.fnType(async.Future$(web_sql.SqlResultSet), [core.String], [core.List])
}));
dart.setLibraryUri(web_sql.SqlTransaction, L71);
dart.registerExtension("SQLTransaction", web_sql.SqlTransaction);
var _errorMsg$ = dart.privateName(core, "_errorMsg");
core._CompileTimeError = class _CompileTimeError extends core.Error {
  toString() {
    return this[_errorMsg$];
  }
};
(core._CompileTimeError.new = function(_errorMsg) {
  this[_errorMsg$] = _errorMsg;
  core._CompileTimeError.__proto__.new.call(this);
  ;
}).prototype = core._CompileTimeError.prototype;
dart.addTypeTests(core._CompileTimeError);
dart.addTypeCaches(core._CompileTimeError);
dart.setLibraryUri(core._CompileTimeError, L1$);
dart.setFieldSignature(core._CompileTimeError, () => ({
  __proto__: dart.getFields(core._CompileTimeError.__proto__),
  [_errorMsg$]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(core._CompileTimeError, ['toString']);
var _name$6 = dart.privateName(core, "_name");
core._DuplicatedFieldInitializerError = class _DuplicatedFieldInitializerError extends core.Object {
  toString() {
    return "Error: field '" + dart.str(this[_name$6]) + "' is already initialized.";
  }
};
(core._DuplicatedFieldInitializerError.new = function(_name) {
  this[_name$6] = _name;
  ;
}).prototype = core._DuplicatedFieldInitializerError.prototype;
dart.addTypeTests(core._DuplicatedFieldInitializerError);
dart.addTypeCaches(core._DuplicatedFieldInitializerError);
dart.setLibraryUri(core._DuplicatedFieldInitializerError, L1$);
dart.setFieldSignature(core._DuplicatedFieldInitializerError, () => ({
  __proto__: dart.getFields(core._DuplicatedFieldInitializerError.__proto__),
  [_name$6]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(core._DuplicatedFieldInitializerError, ['toString']);
var _used$ = dart.privateName(core, "_used");
var _digits$ = dart.privateName(core, "_digits");
var _isNegative = dart.privateName(core, "_isNegative");
var _isZero = dart.privateName(core, "_isZero");
var _dlShift = dart.privateName(core, "_dlShift");
var _drShift = dart.privateName(core, "_drShift");
var _absCompare = dart.privateName(core, "_absCompare");
var _absAddSetSign = dart.privateName(core, "_absAddSetSign");
var _absSubSetSign = dart.privateName(core, "_absSubSetSign");
var _absAndSetSign = dart.privateName(core, "_absAndSetSign");
var _absAndNotSetSign = dart.privateName(core, "_absAndNotSetSign");
var _absOrSetSign = dart.privateName(core, "_absOrSetSign");
var _absXorSetSign = dart.privateName(core, "_absXorSetSign");
var _divRem = dart.privateName(core, "_divRem");
var _div = dart.privateName(core, "_div");
var _rem = dart.privateName(core, "_rem");
var C419;
var _toRadixCodeUnit = dart.privateName(core, "_toRadixCodeUnit");
var _toHexString = dart.privateName(core, "_toHexString");
core._BigIntImpl = class _BigIntImpl extends core.Object {
  static parse(source, opts) {
    let radix = opts && 'radix' in opts ? opts.radix : null;
    let result = core._BigIntImpl._tryParse(source, {radix: radix});
    if (result == null) {
      dart.throw(new core.FormatException.new("Could not parse BigInt", source));
    }
    return result;
  }
  static _parseDecimal(source, isNegative) {
    let part = 0;
    let result = core._BigIntImpl.zero;
    let digitInPartCount = dart.asNullableInt(4 - source.length[$remainder](4));
    if (digitInPartCount === 4) digitInPartCount = 0;
    for (let i = 0; i < source.length; i = i + 1) {
      part = part * 10 + source[$codeUnitAt](i) - 48;
      if ((digitInPartCount = digitInPartCount + 1) === 4) {
        result = result['*'](core._BigIntImpl._bigInt10000)['+'](core._BigIntImpl._fromInt(part));
        part = 0;
        digitInPartCount = 0;
      }
    }
    if (dart.test(isNegative)) return result._negate();
    return result;
  }
  static _codeUnitToRadixValue(codeUnit) {
    if (48 <= dart.notNull(codeUnit) && dart.notNull(codeUnit) <= 57) return dart.notNull(codeUnit) - 48;
    codeUnit = (dart.notNull(codeUnit) | 32) >>> 0;
    let result = dart.notNull(codeUnit) - 97 + 10;
    return result;
  }
  static _parseHex(source, startPos, isNegative) {
    let t123, t123$, t123$0, t123$1;
    let hexDigitsPerChunk = (16 / 4)[$truncate]();
    let sourceLength = source.length - dart.notNull(startPos);
    let chunkCount = (sourceLength / hexDigitsPerChunk)[$ceil]();
    let digits = _native_typed_data.NativeUint16List.new(chunkCount);
    let lastDigitLength = sourceLength - (chunkCount - 1) * hexDigitsPerChunk;
    let digitIndex = dart.notNull(digits[$length]) - 1;
    let i = startPos;
    let chunk = 0;
    for (let j = 0; j < lastDigitLength; j = j + 1) {
      let digitValue = core._BigIntImpl._codeUnitToRadixValue(source[$codeUnitAt]((t123 = i, i = dart.notNull(t123) + 1, t123)));
      if (dart.notNull(digitValue) >= 16) return null;
      chunk = chunk * 16 + dart.notNull(digitValue);
    }
    digits[$_set]((t123$ = digitIndex, digitIndex = t123$ - 1, t123$), chunk);
    while (dart.notNull(i) < source.length) {
      chunk = 0;
      for (let j = 0; j < hexDigitsPerChunk; j = j + 1) {
        let digitValue = core._BigIntImpl._codeUnitToRadixValue(source[$codeUnitAt]((t123$0 = i, i = dart.notNull(t123$0) + 1, t123$0)));
        if (dart.notNull(digitValue) >= 16) return null;
        chunk = chunk * 16 + dart.notNull(digitValue);
      }
      digits[$_set]((t123$1 = digitIndex, digitIndex = t123$1 - 1, t123$1), chunk);
    }
    if (digits[$length] === 1 && digits[$_get](0) === 0) return core._BigIntImpl.zero;
    return new core._BigIntImpl.__(isNegative, digits[$length], digits);
  }
  static _parseRadix(source, radix, isNegative) {
    let result = core._BigIntImpl.zero;
    let base = core._BigIntImpl._fromInt(radix);
    for (let i = 0; i < source.length; i = i + 1) {
      let digitValue = core._BigIntImpl._codeUnitToRadixValue(source[$codeUnitAt](i));
      if (dart.notNull(digitValue) >= dart.notNull(radix)) return null;
      result = result['*'](base)['+'](core._BigIntImpl._fromInt(digitValue));
    }
    if (dart.test(isNegative)) return result._negate();
    return result;
  }
  static _tryParse(source, opts) {
    let t123, t123$, t123$0;
    let radix = opts && 'radix' in opts ? opts.radix : null;
    if (source === "") return null;
    let match = core._BigIntImpl._parseRE.firstMatch(source);
    let signIndex = 1;
    let hexIndex = 3;
    let decimalIndex = 4;
    let nonDecimalHexIndex = 5;
    if (match == null) return null;
    let isNegative = match._get(signIndex) === "-";
    let decimalMatch = match._get(decimalIndex);
    let hexMatch = match._get(hexIndex);
    let nonDecimalMatch = match._get(nonDecimalHexIndex);
    if (radix == null) {
      if (decimalMatch != null) {
        return core._BigIntImpl._parseDecimal(decimalMatch, isNegative);
      }
      if (hexMatch != null) {
        return core._BigIntImpl._parseHex(hexMatch, 2, isNegative);
      }
      return null;
    }
    if (dart.notNull(radix) < 2 || dart.notNull(radix) > 36) {
      dart.throw(new core.RangeError.range(radix, 2, 36, "radix"));
    }
    if (radix === 10 && decimalMatch != null) {
      return core._BigIntImpl._parseDecimal(decimalMatch, isNegative);
    }
    if (radix === 16 && (decimalMatch != null || nonDecimalMatch != null)) {
      return core._BigIntImpl._parseHex((t123 = decimalMatch, t123 == null ? nonDecimalMatch : t123), 0, isNegative);
    }
    return core._BigIntImpl._parseRadix((t123$0 = (t123$ = decimalMatch, t123$ == null ? nonDecimalMatch : t123$), t123$0 == null ? hexMatch : t123$0), radix, isNegative);
  }
  static _normalize(used, digits) {
    while (dart.notNull(used) > 0 && digits[$_get](dart.notNull(used) - 1) === 0)
      used = dart.notNull(used) - 1;
    return used;
  }
  get [_isZero]() {
    return this[_used$] === 0;
  }
  static _cloneDigits(digits, from, to, length) {
    let resultDigits = _native_typed_data.NativeUint16List.new(length);
    let n = dart.notNull(to) - dart.notNull(from);
    for (let i = 0; i < n; i = i + 1) {
      resultDigits[$_set](i, digits[$_get](dart.notNull(from) + i));
    }
    return resultDigits;
  }
  static from(value) {
    if (value === 0) return core._BigIntImpl.zero;
    if (value === 1) return core._BigIntImpl.one;
    if (value === 2) return core._BigIntImpl.two;
    if (value[$abs]() < 4294967296) return core._BigIntImpl._fromInt(value[$toInt]());
    if (typeof value == 'number') return core._BigIntImpl._fromDouble(value);
    return core._BigIntImpl._fromInt(dart.asNullableInt(value));
  }
  static _fromInt(value) {
    let t123;
    let isNegative = dart.notNull(value) < 0;
    if (!(16 === 16)) dart.assertFailed(null, L72, 1224, 12, "_digitBits == 16");
    if (isNegative) {
      if (value === -9223372036854776000.0) {
        let digits = _native_typed_data.NativeUint16List.new(4);
        digits[$_set](3, 32768);
        return new core._BigIntImpl.__(true, 4, digits);
      }
      value = -dart.notNull(value);
    }
    if (dart.notNull(value) < 65536) {
      let digits = _native_typed_data.NativeUint16List.new(1);
      digits[$_set](0, value);
      return new core._BigIntImpl.__(isNegative, 1, digits);
    }
    if (dart.notNull(value) <= 4294967295) {
      let digits = _native_typed_data.NativeUint16List.new(2);
      digits[$_set](0, (dart.notNull(value) & 65535) >>> 0);
      digits[$_set](1, value[$rightShift](16));
      return new core._BigIntImpl.__(isNegative, 2, digits);
    }
    let bits = value[$bitLength];
    let digits = _native_typed_data.NativeUint16List.new(((bits - 1) / 16)[$truncate]() + 1);
    let i = 0;
    while (value !== 0) {
      digits[$_set]((t123 = i, i = t123 + 1, t123), (dart.notNull(value) & 65535) >>> 0);
      value = (dart.notNull(value) / 65536)[$truncate]();
    }
    return new core._BigIntImpl.__(isNegative, digits[$length], digits);
  }
  static _fromDouble(value) {
    if (value[$isNaN] || value[$isInfinite]) {
      dart.throw(new core.ArgumentError.new("Value must be finite: " + dart.str(value)));
    }
    let isNegative = dart.notNull(value) < 0;
    if (isNegative) value = -dart.notNull(value);
    value = value[$floorToDouble]();
    if (value === 0) return core._BigIntImpl.zero;
    let bits = core._BigIntImpl._bitsForFromDouble;
    for (let i = 0; i < 8; i = i + 1) {
      bits[$_set](i, 0);
    }
    bits[$buffer][$asByteData]()[$setFloat64](0, value, typed_data.Endian.little);
    let biasedExponent = (dart.notNull(bits[$_get](7)) << 4 >>> 0) + bits[$_get](6)[$rightShift](4);
    let exponent = biasedExponent - 1075;
    if (!(16 === 16)) dart.assertFailed(null, L72, 1283, 12, "_digitBits == 16");
    let unshiftedDigits = _native_typed_data.NativeUint16List.new(4);
    unshiftedDigits[$_set](0, (dart.notNull(bits[$_get](1)) << 8 >>> 0) + dart.notNull(bits[$_get](0)));
    unshiftedDigits[$_set](1, (dart.notNull(bits[$_get](3)) << 8 >>> 0) + dart.notNull(bits[$_get](2)));
    unshiftedDigits[$_set](2, (dart.notNull(bits[$_get](5)) << 8 >>> 0) + dart.notNull(bits[$_get](4)));
    unshiftedDigits[$_set](3, 16 | dart.notNull(bits[$_get](6)) & 15);
    let unshiftedBig = new core._BigIntImpl._normalized(false, 4, unshiftedDigits);
    let absResult = unshiftedBig;
    if (exponent < 0) {
      absResult = unshiftedBig['>>'](-exponent);
    } else if (exponent > 0) {
      absResult = unshiftedBig['<<'](exponent);
    }
    if (isNegative) return absResult._negate();
    return absResult;
  }
  _negate() {
    if (this[_used$] === 0) return this;
    return new core._BigIntImpl.__(!dart.test(this[_isNegative]), this[_used$], this[_digits$]);
  }
  abs() {
    return dart.test(this[_isNegative]) ? this._negate() : this;
  }
  [_dlShift](n) {
    let used = this[_used$];
    if (used === 0) {
      return core._BigIntImpl.zero;
    }
    let resultUsed = dart.notNull(used) + dart.notNull(n);
    let digits = this[_digits$];
    let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
    for (let i = dart.notNull(used) - 1; i >= 0; i = i - 1) {
      resultDigits[$_set](i + dart.notNull(n), digits[$_get](i));
    }
    return new core._BigIntImpl.__(this[_isNegative], resultUsed, resultDigits);
  }
  static _dlShiftDigits(xDigits, xUsed, n, resultDigits) {
    if (xUsed === 0) {
      return 0;
    }
    if (n === 0 && resultDigits == xDigits) {
      return xUsed;
    }
    let resultUsed = dart.notNull(xUsed) + dart.notNull(n);
    for (let i = dart.notNull(xUsed) - 1; i >= 0; i = i - 1) {
      resultDigits[$_set](i + dart.notNull(n), xDigits[$_get](i));
    }
    for (let i = dart.notNull(n) - 1; i >= 0; i = i - 1) {
      resultDigits[$_set](i, 0);
    }
    return resultUsed;
  }
  [_drShift](n) {
    let used = this[_used$];
    if (used === 0) {
      return core._BigIntImpl.zero;
    }
    let resultUsed = dart.notNull(used) - dart.notNull(n);
    if (resultUsed <= 0) {
      return dart.test(this[_isNegative]) ? core._BigIntImpl._minusOne : core._BigIntImpl.zero;
    }
    let digits = this[_digits$];
    let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
    for (let i = n; dart.notNull(i) < dart.notNull(used); i = dart.notNull(i) + 1) {
      resultDigits[$_set](dart.notNull(i) - dart.notNull(n), digits[$_get](i));
    }
    let result = new core._BigIntImpl.__(this[_isNegative], resultUsed, resultDigits);
    if (dart.test(this[_isNegative])) {
      for (let i = 0; i < dart.notNull(n); i = i + 1) {
        if (digits[$_get](i) !== 0) {
          return result['-'](core._BigIntImpl.one);
        }
      }
    }
    return result;
  }
  static _lsh(xDigits, xUsed, n, resultDigits) {
    if (!(dart.notNull(xUsed) > 0)) dart.assertFailed(null, L72, 1394, 12, "xUsed > 0");
    let digitShift = (dart.notNull(n) / 16)[$truncate]();
    let bitShift = n[$modulo](16);
    let carryBitShift = 16 - bitShift;
    let bitMask = (1)[$leftShift](carryBitShift) - 1;
    let carry = 0;
    for (let i = dart.notNull(xUsed) - 1; i >= 0; i = i - 1) {
      let digit = xDigits[$_get](i);
      resultDigits[$_set](i + digitShift + 1, (digit[$rightShift](carryBitShift) | carry) >>> 0);
      carry = ((dart.notNull(digit) & bitMask) >>> 0)[$leftShift](bitShift);
    }
    resultDigits[$_set](digitShift, carry);
  }
  ['<<'](shiftAmount) {
    if (dart.notNull(shiftAmount) < 0) {
      dart.throw(new core.ArgumentError.new("shift-amount must be posititve " + dart.str(shiftAmount)));
    }
    if (dart.test(this[_isZero])) return this;
    let digitShift = (dart.notNull(shiftAmount) / 16)[$truncate]();
    let bitShift = shiftAmount[$modulo](16);
    if (bitShift === 0) {
      return this[_dlShift](digitShift);
    }
    let resultUsed = dart.notNull(this[_used$]) + digitShift + 1;
    let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
    core._BigIntImpl._lsh(this[_digits$], this[_used$], shiftAmount, resultDigits);
    return new core._BigIntImpl.__(this[_isNegative], resultUsed, resultDigits);
  }
  static _lShiftDigits(xDigits, xUsed, n, resultDigits) {
    let digitsShift = (dart.notNull(n) / 16)[$truncate]();
    let bitShift = n[$modulo](16);
    if (bitShift === 0) {
      return core._BigIntImpl._dlShiftDigits(xDigits, xUsed, digitsShift, resultDigits);
    }
    let resultUsed = dart.notNull(xUsed) + digitsShift + 1;
    core._BigIntImpl._lsh(xDigits, xUsed, n, resultDigits);
    let i = digitsShift;
    while ((i = i - 1) >= 0) {
      resultDigits[$_set](i, 0);
    }
    if (resultDigits[$_get](resultUsed - 1) === 0) {
      resultUsed = resultUsed - 1;
    }
    return resultUsed;
  }
  static _rsh(xDigits, xUsed, n, resultDigits) {
    if (!(dart.notNull(xUsed) > 0)) dart.assertFailed(null, L72, 1460, 12, "xUsed > 0");
    let digitsShift = (dart.notNull(n) / 16)[$truncate]();
    let bitShift = n[$modulo](16);
    let carryBitShift = 16 - bitShift;
    let bitMask = (1)[$leftShift](bitShift) - 1;
    let carry = xDigits[$_get](digitsShift)[$rightShift](bitShift);
    let last = dart.notNull(xUsed) - digitsShift - 1;
    for (let i = 0; i < last; i = i + 1) {
      let digit = xDigits[$_get](i + digitsShift + 1);
      resultDigits[$_set](i, (((dart.notNull(digit) & bitMask) >>> 0)[$leftShift](carryBitShift) | carry) >>> 0);
      carry = digit[$rightShift](bitShift);
    }
    resultDigits[$_set](last, carry);
  }
  ['>>'](shiftAmount) {
    if (dart.notNull(shiftAmount) < 0) {
      dart.throw(new core.ArgumentError.new("shift-amount must be posititve " + dart.str(shiftAmount)));
    }
    if (dart.test(this[_isZero])) return this;
    let digitShift = (dart.notNull(shiftAmount) / 16)[$truncate]();
    let bitShift = shiftAmount[$modulo](16);
    if (bitShift === 0) {
      return this[_drShift](digitShift);
    }
    let used = this[_used$];
    let resultUsed = dart.notNull(used) - digitShift;
    if (resultUsed <= 0) {
      return dart.test(this[_isNegative]) ? core._BigIntImpl._minusOne : core._BigIntImpl.zero;
    }
    let digits = this[_digits$];
    let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
    core._BigIntImpl._rsh(digits, used, shiftAmount, resultDigits);
    let result = new core._BigIntImpl.__(this[_isNegative], resultUsed, resultDigits);
    if (dart.test(this[_isNegative])) {
      if ((dart.notNull(digits[$_get](digitShift)) & (1)[$leftShift](bitShift) - 1) !== 0) {
        return result['-'](core._BigIntImpl.one);
      }
      for (let i = 0; i < digitShift; i = i + 1) {
        if (digits[$_get](i) !== 0) {
          return result['-'](core._BigIntImpl.one);
        }
      }
    }
    return result;
  }
  [_absCompare](other) {
    return core._BigIntImpl._compareDigits(this[_digits$], this[_used$], other[_digits$], other[_used$]);
  }
  compareTo(other) {
    core._BigIntImpl.as(other);
    if (dart.equals(this[_isNegative], other[_isNegative])) {
      let result = this[_absCompare](other);
      return dart.test(this[_isNegative]) ? 0 - dart.notNull(result) : result;
    }
    return dart.test(this[_isNegative]) ? -1 : 1;
  }
  static _compareDigits(digits, used, otherDigits, otherUsed) {
    let result = dart.notNull(used) - dart.notNull(otherUsed);
    if (result === 0) {
      for (let i = dart.notNull(used) - 1; i >= 0; i = i - 1) {
        result = dart.notNull(digits[$_get](i)) - dart.notNull(otherDigits[$_get](i));
        if (result !== 0) return result;
      }
    }
    return result;
  }
  static _absAdd(digits, used, otherDigits, otherUsed, resultDigits) {
    if (!(dart.notNull(used) >= dart.notNull(otherUsed) && dart.notNull(otherUsed) > 0)) dart.assertFailed(null, L72, 1560, 12, "used >= otherUsed && otherUsed > 0");
    let carry = 0;
    for (let i = 0; i < dart.notNull(otherUsed); i = i + 1) {
      carry = carry + (dart.notNull(digits[$_get](i)) + dart.notNull(otherDigits[$_get](i)));
      resultDigits[$_set](i, (carry & 65535) >>> 0);
      carry = carry[$rightShift](16);
    }
    for (let i = otherUsed; dart.notNull(i) < dart.notNull(used); i = dart.notNull(i) + 1) {
      carry = carry + dart.notNull(digits[$_get](i));
      resultDigits[$_set](i, (carry & 65535) >>> 0);
      carry = carry[$rightShift](16);
    }
    resultDigits[$_set](used, carry);
  }
  static _absSub(digits, used, otherDigits, otherUsed, resultDigits) {
    if (!(dart.notNull(used) >= dart.notNull(otherUsed) && dart.notNull(otherUsed) > 0)) dart.assertFailed(null, L72, 1579, 12, "used >= otherUsed && otherUsed > 0");
    let carry = 0;
    for (let i = 0; i < dart.notNull(otherUsed); i = i + 1) {
      carry = carry + (dart.notNull(digits[$_get](i)) - dart.notNull(otherDigits[$_get](i)));
      resultDigits[$_set](i, (carry & 65535) >>> 0);
      carry = 0 - (carry[$rightShift](16) & 1);
    }
    for (let i = otherUsed; dart.notNull(i) < dart.notNull(used); i = dart.notNull(i) + 1) {
      carry = carry + dart.notNull(digits[$_get](i));
      resultDigits[$_set](i, (carry & 65535) >>> 0);
      carry = 0 - (carry[$rightShift](16) & 1);
    }
  }
  [_absAddSetSign](other, isNegative) {
    let used = this[_used$];
    let otherUsed = other[_used$];
    if (dart.notNull(used) < dart.notNull(otherUsed)) {
      return other[_absAddSetSign](this, isNegative);
    }
    if (used === 0) {
      if (!!dart.test(isNegative)) dart.assertFailed(null, L72, 1606, 14, "!isNegative");
      return core._BigIntImpl.zero;
    }
    if (otherUsed === 0) {
      return dart.equals(this[_isNegative], isNegative) ? this : this._negate();
    }
    let resultUsed = dart.notNull(used) + 1;
    let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
    core._BigIntImpl._absAdd(this[_digits$], used, other[_digits$], otherUsed, resultDigits);
    return new core._BigIntImpl.__(isNegative, resultUsed, resultDigits);
  }
  [_absSubSetSign](other, isNegative) {
    if (!(dart.notNull(this[_absCompare](other)) >= 0)) dart.assertFailed(null, L72, 1622, 12, "_absCompare(other) >= 0");
    let used = this[_used$];
    if (used === 0) {
      if (!!dart.test(isNegative)) dart.assertFailed(null, L72, 1625, 14, "!isNegative");
      return core._BigIntImpl.zero;
    }
    let otherUsed = other[_used$];
    if (otherUsed === 0) {
      return dart.equals(this[_isNegative], isNegative) ? this : this._negate();
    }
    let resultDigits = _native_typed_data.NativeUint16List.new(used);
    core._BigIntImpl._absSub(this[_digits$], used, other[_digits$], otherUsed, resultDigits);
    return new core._BigIntImpl.__(isNegative, used, resultDigits);
  }
  [_absAndSetSign](other, isNegative) {
    let resultUsed = core._min(this[_used$], other[_used$]);
    let digits = this[_digits$];
    let otherDigits = other[_digits$];
    let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
    for (let i = 0; i < dart.notNull(resultUsed); i = i + 1) {
      resultDigits[$_set](i, (dart.notNull(digits[$_get](i)) & dart.notNull(otherDigits[$_get](i))) >>> 0);
    }
    return new core._BigIntImpl.__(isNegative, resultUsed, resultDigits);
  }
  [_absAndNotSetSign](other, isNegative) {
    let resultUsed = this[_used$];
    let digits = this[_digits$];
    let otherDigits = other[_digits$];
    let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
    let m = core._min(resultUsed, other[_used$]);
    for (let i = 0; i < dart.notNull(m); i = i + 1) {
      resultDigits[$_set](i, (dart.notNull(digits[$_get](i)) & ~dart.notNull(otherDigits[$_get](i)) >>> 0) >>> 0);
    }
    for (let i = m; dart.notNull(i) < dart.notNull(resultUsed); i = dart.notNull(i) + 1) {
      resultDigits[$_set](i, digits[$_get](i));
    }
    return new core._BigIntImpl.__(isNegative, resultUsed, resultDigits);
  }
  [_absOrSetSign](other, isNegative) {
    let used = this[_used$];
    let otherUsed = other[_used$];
    let resultUsed = core._max(used, otherUsed);
    let digits = this[_digits$];
    let otherDigits = other[_digits$];
    let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
    let l = null;
    let m = null;
    if (dart.notNull(used) < dart.notNull(otherUsed)) {
      l = other;
      m = used;
    } else {
      l = this;
      m = otherUsed;
    }
    for (let i = 0; i < dart.notNull(m); i = i + 1) {
      resultDigits[$_set](i, (dart.notNull(digits[$_get](i)) | dart.notNull(otherDigits[$_get](i))) >>> 0);
    }
    let lDigits = l[_digits$];
    for (let i = m; dart.notNull(i) < dart.notNull(resultUsed); i = dart.notNull(i) + 1) {
      resultDigits[$_set](i, lDigits[$_get](i));
    }
    return new core._BigIntImpl.__(isNegative, resultUsed, resultDigits);
  }
  [_absXorSetSign](other, isNegative) {
    let used = this[_used$];
    let otherUsed = other[_used$];
    let resultUsed = core._max(used, otherUsed);
    let digits = this[_digits$];
    let otherDigits = other[_digits$];
    let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
    let l = null;
    let m = null;
    if (dart.notNull(used) < dart.notNull(otherUsed)) {
      l = other;
      m = used;
    } else {
      l = this;
      m = otherUsed;
    }
    for (let i = 0; i < dart.notNull(m); i = i + 1) {
      resultDigits[$_set](i, (dart.notNull(digits[$_get](i)) ^ dart.notNull(otherDigits[$_get](i))) >>> 0);
    }
    let lDigits = l[_digits$];
    for (let i = m; dart.notNull(i) < dart.notNull(resultUsed); i = dart.notNull(i) + 1) {
      resultDigits[$_set](i, lDigits[$_get](i));
    }
    return new core._BigIntImpl.__(isNegative, resultUsed, resultDigits);
  }
  ['&'](other) {
    core._BigIntImpl.as(other);
    if (dart.test(this[_isZero]) || dart.test(other[_isZero])) return core._BigIntImpl.zero;
    if (dart.equals(this[_isNegative], other[_isNegative])) {
      if (dart.test(this[_isNegative])) {
        let this1 = this[_absSubSetSign](core._BigIntImpl.one, true);
        let other1 = other[_absSubSetSign](core._BigIntImpl.one, true);
        return this1[_absOrSetSign](other1, true)[_absAddSetSign](core._BigIntImpl.one, true);
      }
      return this[_absAndSetSign](other, false);
    }
    let p = null;
    let n = null;
    if (dart.test(this[_isNegative])) {
      p = other;
      n = this;
    } else {
      p = this;
      n = other;
    }
    let n1 = n[_absSubSetSign](core._BigIntImpl.one, false);
    return p[_absAndNotSetSign](n1, false);
  }
  ['|'](other) {
    core._BigIntImpl.as(other);
    if (dart.test(this[_isZero])) return other;
    if (dart.test(other[_isZero])) return this;
    if (dart.equals(this[_isNegative], other[_isNegative])) {
      if (dart.test(this[_isNegative])) {
        let this1 = this[_absSubSetSign](core._BigIntImpl.one, true);
        let other1 = other[_absSubSetSign](core._BigIntImpl.one, true);
        return this1[_absAndSetSign](other1, true)[_absAddSetSign](core._BigIntImpl.one, true);
      }
      return this[_absOrSetSign](other, false);
    }
    let p = null;
    let n = null;
    if (dart.test(this[_isNegative])) {
      p = other;
      n = this;
    } else {
      p = this;
      n = other;
    }
    let n1 = n[_absSubSetSign](core._BigIntImpl.one, true);
    return n1[_absAndNotSetSign](p, true)[_absAddSetSign](core._BigIntImpl.one, true);
  }
  ['^'](other) {
    core._BigIntImpl.as(other);
    if (dart.test(this[_isZero])) return other;
    if (dart.test(other[_isZero])) return this;
    if (dart.equals(this[_isNegative], other[_isNegative])) {
      if (dart.test(this[_isNegative])) {
        let this1 = this[_absSubSetSign](core._BigIntImpl.one, true);
        let other1 = other[_absSubSetSign](core._BigIntImpl.one, true);
        return this1[_absXorSetSign](other1, false);
      }
      return this[_absXorSetSign](other, false);
    }
    let p = null;
    let n = null;
    if (dart.test(this[_isNegative])) {
      p = other;
      n = this;
    } else {
      p = this;
      n = other;
    }
    let n1 = n[_absSubSetSign](core._BigIntImpl.one, true);
    return p[_absXorSetSign](n1, true)[_absAddSetSign](core._BigIntImpl.one, true);
  }
  ['~']() {
    if (dart.test(this[_isZero])) return core._BigIntImpl._minusOne;
    if (dart.test(this[_isNegative])) {
      return this[_absSubSetSign](core._BigIntImpl.one, false);
    }
    return this[_absAddSetSign](core._BigIntImpl.one, true);
  }
  ['+'](other) {
    core._BigIntImpl.as(other);
    if (dart.test(this[_isZero])) return other;
    if (dart.test(other[_isZero])) return this;
    let isNegative = this[_isNegative];
    if (dart.equals(isNegative, other[_isNegative])) {
      return this[_absAddSetSign](other, isNegative);
    }
    if (dart.notNull(this[_absCompare](other)) >= 0) {
      return this[_absSubSetSign](other, isNegative);
    }
    return other[_absSubSetSign](this, !dart.test(isNegative));
  }
  ['-'](other) {
    core._BigIntImpl.as(other);
    if (dart.test(this[_isZero])) return other._negate();
    if (dart.test(other[_isZero])) return this;
    let isNegative = this[_isNegative];
    if (!dart.equals(isNegative, other[_isNegative])) {
      return this[_absAddSetSign](other, isNegative);
    }
    if (dart.notNull(this[_absCompare](other)) >= 0) {
      return this[_absSubSetSign](other, isNegative);
    }
    return other[_absSubSetSign](this, !dart.test(isNegative));
  }
  static _mulAdd(x, multiplicandDigits, i, accumulatorDigits, j, n) {
    let t123, t123$, t123$0;
    if (x === 0) {
      return;
    }
    let c = 0;
    while ((n = dart.notNull(n) - 1) >= 0) {
      let product = dart.notNull(x) * dart.notNull(multiplicandDigits[$_get]((t123 = i, i = dart.notNull(t123) + 1, t123)));
      let combined = product + dart.notNull(accumulatorDigits[$_get](j)) + c;
      accumulatorDigits[$_set]((t123$ = j, j = dart.notNull(t123$) + 1, t123$), (combined & 65535) >>> 0);
      c = (combined / 65536)[$truncate]();
    }
    while (c !== 0) {
      let l = dart.notNull(accumulatorDigits[$_get](j)) + c;
      accumulatorDigits[$_set]((t123$0 = j, j = dart.notNull(t123$0) + 1, t123$0), (l & 65535) >>> 0);
      c = (l / 65536)[$truncate]();
    }
  }
  ['*'](other) {
    core._BigIntImpl.as(other);
    let used = this[_used$];
    let otherUsed = other[_used$];
    if (used === 0 || otherUsed === 0) {
      return core._BigIntImpl.zero;
    }
    let resultUsed = dart.notNull(used) + dart.notNull(otherUsed);
    let digits = this[_digits$];
    let otherDigits = other[_digits$];
    let resultDigits = _native_typed_data.NativeUint16List.new(resultUsed);
    let i = 0;
    while (i < dart.notNull(otherUsed)) {
      core._BigIntImpl._mulAdd(otherDigits[$_get](i), digits, 0, resultDigits, i, used);
      i = i + 1;
    }
    return new core._BigIntImpl.__(!dart.equals(this[_isNegative], other[_isNegative]), resultUsed, resultDigits);
  }
  static _mulDigits(xDigits, xUsed, otherDigits, otherUsed, resultDigits) {
    let resultUsed = dart.notNull(xUsed) + dart.notNull(otherUsed);
    let i = resultUsed;
    if (!(dart.notNull(resultDigits[$length]) >= i)) dart.assertFailed(null, L72, 1952, 12, "resultDigits.length >= i");
    while ((i = i - 1) >= 0) {
      resultDigits[$_set](i, 0);
    }
    i = 0;
    while (i < dart.notNull(otherUsed)) {
      core._BigIntImpl._mulAdd(otherDigits[$_get](i), xDigits, 0, resultDigits, i, xUsed);
      i = i + 1;
    }
    return resultUsed;
  }
  static _estimateQuotientDigit(topDigitDivisor, digits, i) {
    if (digits[$_get](i) == topDigitDivisor) return 65535;
    let quotientDigit = (((digits[$_get](i)[$leftShift](16) | dart.notNull(digits[$_get](dart.notNull(i) - 1))) >>> 0) / dart.notNull(topDigitDivisor))[$truncate]();
    if (quotientDigit > 65535) return 65535;
    return quotientDigit;
  }
  [_div](other) {
    if (!(dart.notNull(other[_used$]) > 0)) dart.assertFailed(null, L72, 1976, 12, "other._used > 0");
    if (dart.notNull(this[_used$]) < dart.notNull(other[_used$])) {
      return core._BigIntImpl.zero;
    }
    this[_divRem](other);
    let lastQuo_used = dart.notNull(core._BigIntImpl._lastQuoRemUsed) - dart.notNull(core._BigIntImpl._lastRemUsed);
    let quo_digits = core._BigIntImpl._cloneDigits(core._BigIntImpl._lastQuoRemDigits, core._BigIntImpl._lastRemUsed, core._BigIntImpl._lastQuoRemUsed, lastQuo_used);
    let quo = new core._BigIntImpl.__(false, lastQuo_used, quo_digits);
    if (!dart.equals(this[_isNegative], other[_isNegative]) && dart.notNull(quo[_used$]) > 0) {
      quo = quo._negate();
    }
    return quo;
  }
  [_rem](other) {
    if (!(dart.notNull(other[_used$]) > 0)) dart.assertFailed(null, L72, 1995, 12, "other._used > 0");
    if (dart.notNull(this[_used$]) < dart.notNull(other[_used$])) {
      return this;
    }
    this[_divRem](other);
    let remDigits = core._BigIntImpl._cloneDigits(core._BigIntImpl._lastQuoRemDigits, 0, core._BigIntImpl._lastRemUsed, core._BigIntImpl._lastRemUsed);
    let rem = new core._BigIntImpl.__(false, core._BigIntImpl._lastRemUsed, remDigits);
    if (dart.notNull(core._BigIntImpl._lastRem_nsh) > 0) {
      rem = rem['>>'](core._BigIntImpl._lastRem_nsh);
    }
    if (dart.test(this[_isNegative]) && dart.notNull(rem[_used$]) > 0) {
      rem = rem._negate();
    }
    return rem;
  }
  [_divRem](other) {
    let t123, t123$;
    if (this[_used$] == core._BigIntImpl._lastDividendUsed && other[_used$] == core._BigIntImpl._lastDivisorUsed && this[_digits$] == core._BigIntImpl._lastDividendDigits && other[_digits$] == core._BigIntImpl._lastDivisorDigits) {
      return;
    }
    if (!(dart.notNull(this[_used$]) >= dart.notNull(other[_used$]))) dart.assertFailed(null, L72, 2030, 12, "_used >= other._used");
    let nsh = 16 - other[_digits$][$_get](dart.notNull(other[_used$]) - 1)[$bitLength];
    let resultDigits = null;
    let resultUsed = null;
    let yDigits = null;
    let yUsed = null;
    if (nsh > 0) {
      yDigits = _native_typed_data.NativeUint16List.new(dart.notNull(other[_used$]) + 5);
      yUsed = core._BigIntImpl._lShiftDigits(other[_digits$], other[_used$], nsh, yDigits);
      resultDigits = _native_typed_data.NativeUint16List.new(dart.notNull(this[_used$]) + 5);
      resultUsed = core._BigIntImpl._lShiftDigits(this[_digits$], this[_used$], nsh, resultDigits);
    } else {
      yDigits = other[_digits$];
      yUsed = other[_used$];
      resultDigits = core._BigIntImpl._cloneDigits(this[_digits$], 0, this[_used$], dart.notNull(this[_used$]) + 2);
      resultUsed = this[_used$];
    }
    let topDigitDivisor = yDigits[$_get](dart.notNull(yUsed) - 1);
    let i = resultUsed;
    let j = dart.notNull(i) - dart.notNull(yUsed);
    let tmpDigits = _native_typed_data.NativeUint16List.new(i);
    let tmpUsed = core._BigIntImpl._dlShiftDigits(yDigits, yUsed, j, tmpDigits);
    if (dart.notNull(core._BigIntImpl._compareDigits(resultDigits, resultUsed, tmpDigits, tmpUsed)) >= 0) {
      if (!(i == resultUsed)) dart.assertFailed(null, L72, 2063, 14, "i == resultUsed");
      resultDigits[$_set]((t123 = resultUsed, resultUsed = dart.notNull(t123) + 1, t123), 1);
      core._BigIntImpl._absSub(resultDigits, resultUsed, tmpDigits, tmpUsed, resultDigits);
    } else {
      resultDigits[$_set]((t123$ = resultUsed, resultUsed = dart.notNull(t123$) + 1, t123$), 0);
    }
    let nyDigits = _native_typed_data.NativeUint16List.new(dart.notNull(yUsed) + 2);
    nyDigits[$_set](yUsed, 1);
    core._BigIntImpl._absSub(nyDigits, dart.notNull(yUsed) + 1, yDigits, yUsed, nyDigits);
    i = dart.notNull(i) - 1;
    while (j > 0) {
      let estimatedQuotientDigit = core._BigIntImpl._estimateQuotientDigit(topDigitDivisor, resultDigits, i);
      j = j - 1;
      core._BigIntImpl._mulAdd(estimatedQuotientDigit, nyDigits, 0, resultDigits, j, yUsed);
      if (dart.notNull(resultDigits[$_get](i)) < dart.notNull(estimatedQuotientDigit)) {
        let tmpUsed = core._BigIntImpl._dlShiftDigits(nyDigits, yUsed, j, tmpDigits);
        core._BigIntImpl._absSub(resultDigits, resultUsed, tmpDigits, tmpUsed, resultDigits);
        while (dart.notNull(resultDigits[$_get](i)) < (estimatedQuotientDigit = dart.notNull(estimatedQuotientDigit) - 1)) {
          core._BigIntImpl._absSub(resultDigits, resultUsed, tmpDigits, tmpUsed, resultDigits);
        }
      }
      i = dart.notNull(i) - 1;
    }
    core._BigIntImpl._lastDividendDigits = this[_digits$];
    core._BigIntImpl._lastDividendUsed = this[_used$];
    core._BigIntImpl._lastDivisorDigits = other[_digits$];
    core._BigIntImpl._lastDivisorUsed = other[_used$];
    core._BigIntImpl._lastQuoRemDigits = resultDigits;
    core._BigIntImpl._lastQuoRemUsed = resultUsed;
    core._BigIntImpl._lastRemUsed = yUsed;
    core._BigIntImpl._lastRem_nsh = nsh;
  }
  get hashCode() {
    function combine(hash, value) {
      hash = 536870911 & dart.notNull(hash) + dart.notNull(value);
      hash = 536870911 & dart.notNull(hash) + ((524287 & dart.notNull(hash)) << 10);
      return (dart.notNull(hash) ^ hash[$rightShift](6)) >>> 0;
    }
    dart.fn(combine, intLAndintLTointL());
    function finish(hash) {
      hash = 536870911 & dart.notNull(hash) + ((67108863 & dart.notNull(hash)) << 3);
      hash = (dart.notNull(hash) ^ hash[$rightShift](11)) >>> 0;
      return 536870911 & dart.notNull(hash) + ((16383 & dart.notNull(hash)) << 15);
    }
    dart.fn(finish, intLTointL());
    if (dart.test(this[_isZero])) return 6707;
    let hash = dart.test(this[_isNegative]) ? 83585 : 429689;
    for (let i = 0; i < dart.notNull(this[_used$]); i = i + 1) {
      hash = combine(hash, this[_digits$][$_get](i));
    }
    return finish(hash);
  }
  _equals(other) {
    if (other == null) return false;
    return core._BigIntImpl.is(other) && this.compareTo(other) === 0;
  }
  get bitLength() {
    if (this[_used$] === 0) return 0;
    if (dart.test(this[_isNegative])) return this['~']().bitLength;
    return 16 * (dart.notNull(this[_used$]) - 1) + this[_digits$][$_get](dart.notNull(this[_used$]) - 1)[$bitLength];
  }
  ['~/'](other) {
    core._BigIntImpl.as(other);
    if (other[_used$] === 0) {
      dart.throw(C419 || CT.C419);
    }
    return this[_div](other);
  }
  remainder(other) {
    core._BigIntImpl.as(other);
    if (other[_used$] === 0) {
      dart.throw(C419 || CT.C419);
    }
    return this[_rem](other);
  }
  ['/'](other) {
    return dart.notNull(this.toDouble()) / dart.notNull(other.toDouble());
  }
  ['<'](other) {
    core._BigIntImpl.as(other);
    return dart.notNull(this.compareTo(other)) < 0;
  }
  ['<='](other) {
    core._BigIntImpl.as(other);
    return dart.notNull(this.compareTo(other)) <= 0;
  }
  ['>'](other) {
    core._BigIntImpl.as(other);
    return dart.notNull(this.compareTo(other)) > 0;
  }
  ['>='](other) {
    core._BigIntImpl.as(other);
    return dart.notNull(this.compareTo(other)) >= 0;
  }
  ['%'](other) {
    core._BigIntImpl.as(other);
    if (other[_used$] === 0) {
      dart.throw(C419 || CT.C419);
    }
    let result = this[_rem](other);
    if (dart.test(result[_isNegative])) {
      if (dart.test(other[_isNegative])) {
        result = result['-'](other);
      } else {
        result = result['+'](other);
      }
    }
    return result;
  }
  get sign() {
    if (this[_used$] === 0) return 0;
    return dart.test(this[_isNegative]) ? -1 : 1;
  }
  get isEven() {
    return this[_used$] === 0 || (dart.notNull(this[_digits$][$_get](0)) & 1) === 0;
  }
  get isOdd() {
    return !dart.test(this.isEven);
  }
  get isNegative() {
    return this[_isNegative];
  }
  pow(exponent) {
    if (dart.notNull(exponent) < 0) {
      dart.throw(new core.ArgumentError.new("Exponent must not be negative: " + dart.str(exponent)));
    }
    if (exponent === 0) return core._BigIntImpl.one;
    let result = core._BigIntImpl.one;
    let base = this;
    while (exponent !== 0) {
      if ((dart.notNull(exponent) & 1) === 1) {
        result = result['*'](base);
      }
      exponent = exponent[$rightShift](1);
      if (exponent !== 0) {
        base = base['*'](base);
      }
    }
    return result;
  }
  modPow(exponent, modulus) {
    core._BigIntImpl.as(exponent);
    core._BigIntImpl.as(modulus);
    if (dart.test(exponent[_isNegative])) {
      dart.throw(new core.ArgumentError.new("exponent must be positive: " + dart.str(exponent)));
    }
    if (dart.test(modulus['<='](core._BigIntImpl.zero))) {
      dart.throw(new core.ArgumentError.new("modulus must be strictly positive: " + dart.str(modulus)));
    }
    if (dart.test(exponent[_isZero])) return core._BigIntImpl.one;
    let modulusUsed = modulus[_used$];
    let modulusUsed2p4 = 2 * dart.notNull(modulusUsed) + 4;
    let exponentBitlen = exponent.bitLength;
    if (dart.notNull(exponentBitlen) <= 0) return core._BigIntImpl.one;
    let z = new core._BigIntClassic.new(modulus);
    let resultDigits = _native_typed_data.NativeUint16List.new(modulusUsed2p4);
    let result2Digits = _native_typed_data.NativeUint16List.new(modulusUsed2p4);
    let gDigits = _native_typed_data.NativeUint16List.new(modulusUsed);
    let gUsed = z.convert(this, gDigits);
    for (let j = dart.notNull(gUsed) - 1; j >= 0; j = j - 1) {
      resultDigits[$_set](j, gDigits[$_get](j));
    }
    let resultUsed = gUsed;
    let result2Used = null;
    for (let i = dart.notNull(exponentBitlen) - 2; i >= 0; i = i - 1) {
      result2Used = z.sqr(resultDigits, resultUsed, result2Digits);
      if (!dart.test(exponent['&'](core._BigIntImpl.one['<<'](i))[_isZero])) {
        resultUsed = z.mul(result2Digits, result2Used, gDigits, gUsed, resultDigits);
      } else {
        let tmpDigits = resultDigits;
        let tmpUsed = resultUsed;
        resultDigits = result2Digits;
        resultUsed = result2Used;
        result2Digits = tmpDigits;
        result2Used = tmpUsed;
      }
    }
    return z.revert(resultDigits, resultUsed);
  }
  static _binaryGcd(x, y, inv) {
    let xDigits = x[_digits$];
    let yDigits = y[_digits$];
    let xUsed = x[_used$];
    let yUsed = y[_used$];
    let maxUsed = dart.notNull(xUsed) > dart.notNull(yUsed) ? xUsed : yUsed;
    let unshiftedMaxUsed = maxUsed;
    xDigits = core._BigIntImpl._cloneDigits(xDigits, 0, xUsed, maxUsed);
    yDigits = core._BigIntImpl._cloneDigits(yDigits, 0, yUsed, maxUsed);
    let shiftAmount = 0;
    if (dart.test(inv)) {
      if (yUsed === 1 && yDigits[$_get](0) === 1) return core._BigIntImpl.one;
      if (yUsed === 0 || yDigits[$_get](0)[$isEven] && xDigits[$_get](0)[$isEven]) {
        dart.throw(core.Exception.new("Not coprime"));
      }
    } else {
      if (dart.test(x[_isZero])) {
        dart.throw(new core.ArgumentError.value(0, "this", "must not be zero"));
      }
      if (dart.test(y[_isZero])) {
        dart.throw(new core.ArgumentError.value(0, "other", "must not be zero"));
      }
      if (xUsed === 1 && xDigits[$_get](0) === 1 || yUsed === 1 && yDigits[$_get](0) === 1) return core._BigIntImpl.one;
      while ((dart.notNull(xDigits[$_get](0)) & 1) === 0 && (dart.notNull(yDigits[$_get](0)) & 1) === 0) {
        core._BigIntImpl._rsh(xDigits, xUsed, 1, xDigits);
        core._BigIntImpl._rsh(yDigits, yUsed, 1, yDigits);
        shiftAmount = shiftAmount + 1;
      }
      if (shiftAmount >= 16) {
        let digitShiftAmount = (shiftAmount / 16)[$truncate]();
        xUsed = dart.notNull(xUsed) - digitShiftAmount;
        yUsed = dart.notNull(yUsed) - digitShiftAmount;
        maxUsed = dart.notNull(maxUsed) - digitShiftAmount;
      }
      if ((dart.notNull(yDigits[$_get](0)) & 1) === 1) {
        let tmpDigits = xDigits;
        let tmpUsed = xUsed;
        xDigits = yDigits;
        xUsed = yUsed;
        yDigits = tmpDigits;
        yUsed = tmpUsed;
      }
    }
    let uDigits = core._BigIntImpl._cloneDigits(xDigits, 0, xUsed, unshiftedMaxUsed);
    let vDigits = core._BigIntImpl._cloneDigits(yDigits, 0, yUsed, dart.notNull(unshiftedMaxUsed) + 2);
    let ac = (dart.notNull(xDigits[$_get](0)) & 1) === 0;
    let abcdUsed = dart.notNull(maxUsed) + 1;
    let abcdLen = abcdUsed + 2;
    let aDigits = core._dummyList;
    let aIsNegative = false;
    let cDigits = core._dummyList;
    let cIsNegative = false;
    if (ac) {
      aDigits = _native_typed_data.NativeUint16List.new(abcdLen);
      aDigits[$_set](0, 1);
      cDigits = _native_typed_data.NativeUint16List.new(abcdLen);
    }
    let bDigits = _native_typed_data.NativeUint16List.new(abcdLen);
    let bIsNegative = false;
    let dDigits = _native_typed_data.NativeUint16List.new(abcdLen);
    let dIsNegative = false;
    dDigits[$_set](0, 1);
    while (true) {
      while ((dart.notNull(uDigits[$_get](0)) & 1) === 0) {
        core._BigIntImpl._rsh(uDigits, maxUsed, 1, uDigits);
        if (ac) {
          if ((dart.notNull(aDigits[$_get](0)) & 1) === 1 || (dart.notNull(bDigits[$_get](0)) & 1) === 1) {
            if (aIsNegative) {
              if (aDigits[$_get](maxUsed) !== 0 || dart.notNull(core._BigIntImpl._compareDigits(aDigits, maxUsed, yDigits, maxUsed)) > 0) {
                core._BigIntImpl._absSub(aDigits, abcdUsed, yDigits, maxUsed, aDigits);
              } else {
                core._BigIntImpl._absSub(yDigits, maxUsed, aDigits, maxUsed, aDigits);
                aIsNegative = false;
              }
            } else {
              core._BigIntImpl._absAdd(aDigits, abcdUsed, yDigits, maxUsed, aDigits);
            }
            if (bIsNegative) {
              core._BigIntImpl._absAdd(bDigits, abcdUsed, xDigits, maxUsed, bDigits);
            } else if (bDigits[$_get](maxUsed) !== 0 || dart.notNull(core._BigIntImpl._compareDigits(bDigits, maxUsed, xDigits, maxUsed)) > 0) {
              core._BigIntImpl._absSub(bDigits, abcdUsed, xDigits, maxUsed, bDigits);
            } else {
              core._BigIntImpl._absSub(xDigits, maxUsed, bDigits, maxUsed, bDigits);
              bIsNegative = true;
            }
          }
          core._BigIntImpl._rsh(aDigits, abcdUsed, 1, aDigits);
        } else if ((dart.notNull(bDigits[$_get](0)) & 1) === 1) {
          if (bIsNegative) {
            core._BigIntImpl._absAdd(bDigits, abcdUsed, xDigits, maxUsed, bDigits);
          } else if (bDigits[$_get](maxUsed) !== 0 || dart.notNull(core._BigIntImpl._compareDigits(bDigits, maxUsed, xDigits, maxUsed)) > 0) {
            core._BigIntImpl._absSub(bDigits, abcdUsed, xDigits, maxUsed, bDigits);
          } else {
            core._BigIntImpl._absSub(xDigits, maxUsed, bDigits, maxUsed, bDigits);
            bIsNegative = true;
          }
        }
        core._BigIntImpl._rsh(bDigits, abcdUsed, 1, bDigits);
      }
      while ((dart.notNull(vDigits[$_get](0)) & 1) === 0) {
        core._BigIntImpl._rsh(vDigits, maxUsed, 1, vDigits);
        if (ac) {
          if ((dart.notNull(cDigits[$_get](0)) & 1) === 1 || (dart.notNull(dDigits[$_get](0)) & 1) === 1) {
            if (cIsNegative) {
              if (cDigits[$_get](maxUsed) !== 0 || dart.notNull(core._BigIntImpl._compareDigits(cDigits, maxUsed, yDigits, maxUsed)) > 0) {
                core._BigIntImpl._absSub(cDigits, abcdUsed, yDigits, maxUsed, cDigits);
              } else {
                core._BigIntImpl._absSub(yDigits, maxUsed, cDigits, maxUsed, cDigits);
                cIsNegative = false;
              }
            } else {
              core._BigIntImpl._absAdd(cDigits, abcdUsed, yDigits, maxUsed, cDigits);
            }
            if (dIsNegative) {
              core._BigIntImpl._absAdd(dDigits, abcdUsed, xDigits, maxUsed, dDigits);
            } else if (dDigits[$_get](maxUsed) !== 0 || dart.notNull(core._BigIntImpl._compareDigits(dDigits, maxUsed, xDigits, maxUsed)) > 0) {
              core._BigIntImpl._absSub(dDigits, abcdUsed, xDigits, maxUsed, dDigits);
            } else {
              core._BigIntImpl._absSub(xDigits, maxUsed, dDigits, maxUsed, dDigits);
              dIsNegative = true;
            }
          }
          core._BigIntImpl._rsh(cDigits, abcdUsed, 1, cDigits);
        } else if ((dart.notNull(dDigits[$_get](0)) & 1) === 1) {
          if (dIsNegative) {
            core._BigIntImpl._absAdd(dDigits, abcdUsed, xDigits, maxUsed, dDigits);
          } else if (dDigits[$_get](maxUsed) !== 0 || dart.notNull(core._BigIntImpl._compareDigits(dDigits, maxUsed, xDigits, maxUsed)) > 0) {
            core._BigIntImpl._absSub(dDigits, abcdUsed, xDigits, maxUsed, dDigits);
          } else {
            core._BigIntImpl._absSub(xDigits, maxUsed, dDigits, maxUsed, dDigits);
            dIsNegative = true;
          }
        }
        core._BigIntImpl._rsh(dDigits, abcdUsed, 1, dDigits);
      }
      if (dart.notNull(core._BigIntImpl._compareDigits(uDigits, maxUsed, vDigits, maxUsed)) >= 0) {
        core._BigIntImpl._absSub(uDigits, maxUsed, vDigits, maxUsed, uDigits);
        if (ac) {
          if (aIsNegative[$_equals](cIsNegative)) {
            let a_cmp_c = core._BigIntImpl._compareDigits(aDigits, abcdUsed, cDigits, abcdUsed);
            if (dart.notNull(a_cmp_c) > 0) {
              core._BigIntImpl._absSub(aDigits, abcdUsed, cDigits, abcdUsed, aDigits);
            } else {
              core._BigIntImpl._absSub(cDigits, abcdUsed, aDigits, abcdUsed, aDigits);
              aIsNegative = !aIsNegative && a_cmp_c !== 0;
            }
          } else {
            core._BigIntImpl._absAdd(aDigits, abcdUsed, cDigits, abcdUsed, aDigits);
          }
        }
        if (bIsNegative[$_equals](dIsNegative)) {
          let b_cmp_d = core._BigIntImpl._compareDigits(bDigits, abcdUsed, dDigits, abcdUsed);
          if (dart.notNull(b_cmp_d) > 0) {
            core._BigIntImpl._absSub(bDigits, abcdUsed, dDigits, abcdUsed, bDigits);
          } else {
            core._BigIntImpl._absSub(dDigits, abcdUsed, bDigits, abcdUsed, bDigits);
            bIsNegative = !bIsNegative && b_cmp_d !== 0;
          }
        } else {
          core._BigIntImpl._absAdd(bDigits, abcdUsed, dDigits, abcdUsed, bDigits);
        }
      } else {
        core._BigIntImpl._absSub(vDigits, maxUsed, uDigits, maxUsed, vDigits);
        if (ac) {
          if (cIsNegative[$_equals](aIsNegative)) {
            let c_cmp_a = core._BigIntImpl._compareDigits(cDigits, abcdUsed, aDigits, abcdUsed);
            if (dart.notNull(c_cmp_a) > 0) {
              core._BigIntImpl._absSub(cDigits, abcdUsed, aDigits, abcdUsed, cDigits);
            } else {
              core._BigIntImpl._absSub(aDigits, abcdUsed, cDigits, abcdUsed, cDigits);
              cIsNegative = !cIsNegative && c_cmp_a !== 0;
            }
          } else {
            core._BigIntImpl._absAdd(cDigits, abcdUsed, aDigits, abcdUsed, cDigits);
          }
        }
        if (dIsNegative[$_equals](bIsNegative)) {
          let d_cmp_b = core._BigIntImpl._compareDigits(dDigits, abcdUsed, bDigits, abcdUsed);
          if (dart.notNull(d_cmp_b) > 0) {
            core._BigIntImpl._absSub(dDigits, abcdUsed, bDigits, abcdUsed, dDigits);
          } else {
            core._BigIntImpl._absSub(bDigits, abcdUsed, dDigits, abcdUsed, dDigits);
            dIsNegative = !dIsNegative && d_cmp_b !== 0;
          }
        } else {
          core._BigIntImpl._absAdd(dDigits, abcdUsed, bDigits, abcdUsed, dDigits);
        }
      }
      let i = maxUsed;
      while (dart.notNull(i) > 0 && uDigits[$_get](dart.notNull(i) - 1) === 0)
        i = dart.notNull(i) - 1;
      if (i === 0) break;
    }
    if (!dart.test(inv)) {
      if (shiftAmount > 0) {
        maxUsed = core._BigIntImpl._lShiftDigits(vDigits, maxUsed, shiftAmount, vDigits);
      }
      return new core._BigIntImpl.__(false, maxUsed, vDigits);
    }
    let i = dart.notNull(maxUsed) - 1;
    while (i > 0 && vDigits[$_get](i) === 0)
      i = i - 1;
    if (i !== 0 || vDigits[$_get](0) !== 1) {
      dart.throw(core.Exception.new("Not coprime"));
    }
    if (dIsNegative) {
      while (dDigits[$_get](maxUsed) !== 0 || dart.notNull(core._BigIntImpl._compareDigits(dDigits, maxUsed, xDigits, maxUsed)) > 0) {
        core._BigIntImpl._absSub(dDigits, abcdUsed, xDigits, maxUsed, dDigits);
      }
      core._BigIntImpl._absSub(xDigits, maxUsed, dDigits, maxUsed, dDigits);
      dIsNegative = false;
    } else {
      while (dDigits[$_get](maxUsed) !== 0 || dart.notNull(core._BigIntImpl._compareDigits(dDigits, maxUsed, xDigits, maxUsed)) >= 0) {
        core._BigIntImpl._absSub(dDigits, abcdUsed, xDigits, maxUsed, dDigits);
      }
    }
    return new core._BigIntImpl.__(false, maxUsed, dDigits);
  }
  modInverse(modulus) {
    core._BigIntImpl.as(modulus);
    if (dart.test(modulus['<='](core._BigIntImpl.zero))) {
      dart.throw(new core.ArgumentError.new("Modulus must be strictly positive: " + dart.str(modulus)));
    }
    if (dart.equals(modulus, core._BigIntImpl.one)) return core._BigIntImpl.zero;
    let tmp = this;
    if (dart.test(tmp[_isNegative]) || dart.notNull(tmp[_absCompare](modulus)) >= 0) {
      tmp = tmp['%'](modulus);
    }
    return core._BigIntImpl._binaryGcd(modulus, tmp, true);
  }
  gcd(other) {
    core._BigIntImpl.as(other);
    if (dart.test(this[_isZero])) return other.abs();
    if (dart.test(other[_isZero])) return this.abs();
    return core._BigIntImpl._binaryGcd(this, other, false);
  }
  toUnsigned(width) {
    return this['&'](core._BigIntImpl.one['<<'](width)['-'](core._BigIntImpl.one));
  }
  toSigned(width) {
    let signMask = core._BigIntImpl.one['<<'](dart.notNull(width) - 1);
    return this['&'](signMask['-'](core._BigIntImpl.one))['-'](this['&'](signMask));
  }
  get isValidInt() {
    if (dart.notNull(this[_used$]) <= 3) return true;
    let asInt = this.toInt();
    if (!asInt[$toDouble]()[$isFinite]) return false;
    return this._equals(core._BigIntImpl._fromInt(asInt));
  }
  toInt() {
    let result = 0;
    for (let i = dart.notNull(this[_used$]) - 1; i >= 0; i = i - 1) {
      result = result * 65536 + dart.notNull(this[_digits$][$_get](i));
    }
    return dart.test(this[_isNegative]) ? -result : result;
  }
  toDouble() {
    let t124, t123, t124$, t123$;
    if (dart.test(this[_isZero])) return 0.0;
    let resultBits = _native_typed_data.NativeUint8List.new(8);
    let length = 16 * (dart.notNull(this[_used$]) - 1) + this[_digits$][$_get](dart.notNull(this[_used$]) - 1)[$bitLength];
    if (length > 971 + 53) {
      return dart.test(this[_isNegative]) ? -1 / 0 : 1 / 0;
    }
    if (dart.test(this[_isNegative])) resultBits[$_set](7, 128);
    let biasedExponent = length - 53 + 1075;
    resultBits[$_set](6, (biasedExponent & 15) << 4);
    t123 = resultBits;
    t124 = 7;
    t123[$_set](t124, (dart.notNull(t123[$_get](t124)) | biasedExponent[$rightShift](4)) >>> 0);
    let cachedBits = 0;
    let cachedBitsLength = 0;
    let digitIndex = dart.notNull(this[_used$]) - 1;
    const readBits = n => {
      while (cachedBitsLength < dart.notNull(n)) {
        let nextDigit = null;
        let nextDigitLength = 16;
        if (digitIndex < 0) {
          nextDigit = 0;
          digitIndex = digitIndex - 1;
        } else {
          nextDigit = this[_digits$][$_get](digitIndex);
          if (digitIndex === dart.notNull(this[_used$]) - 1) nextDigitLength = nextDigit[$bitLength];
          digitIndex = digitIndex - 1;
        }
        cachedBits = cachedBits[$leftShift](nextDigitLength) + dart.notNull(nextDigit);
        cachedBitsLength = cachedBitsLength + nextDigitLength;
      }
      let result = cachedBits[$rightShift](cachedBitsLength - dart.notNull(n));
      cachedBits = cachedBits - result[$leftShift](cachedBitsLength - dart.notNull(n));
      cachedBitsLength = cachedBitsLength - dart.notNull(n);
      return result;
    };
    dart.fn(readBits, intLTointL());
    let leadingBits = dart.notNull(readBits(5)) & 15;
    t123$ = resultBits;
    t124$ = 6;
    t123$[$_set](t124$, (dart.notNull(t123$[$_get](t124$)) | leadingBits) >>> 0);
    for (let i = 5; i >= 0; i = i - 1) {
      resultBits[$_set](i, readBits(8));
    }
    function roundUp() {
      let carry = 1;
      for (let i = 0; i < 8; i = i + 1) {
        if (carry === 0) break;
        let sum = dart.notNull(resultBits[$_get](i)) + carry;
        resultBits[$_set](i, sum & 255);
        carry = sum[$rightShift](8);
      }
    }
    dart.fn(roundUp, VoidTovoid());
    if (readBits(1) === 1) {
      if (resultBits[$_get](0)[$isOdd]) {
        roundUp();
      } else {
        if (cachedBits !== 0) {
          roundUp();
        } else {
          for (let i = digitIndex; digitIndex >= 0; i = i - 1) {
            if (this[_digits$][$_get](i) !== 0) {
              roundUp();
              break;
            }
          }
        }
      }
    }
    return resultBits[$buffer][$asByteData]()[$getFloat64](0, typed_data.Endian.little);
  }
  toString() {
    if (this[_used$] === 0) return "0";
    if (this[_used$] === 1) {
      if (dart.test(this[_isNegative])) return (-dart.notNull(this[_digits$][$_get](0)))[$toString]();
      return dart.toString(this[_digits$][$_get](0));
    }
    let decimalDigitChunks = JSArrayOfStringL().of([]);
    let rest = dart.test(this.isNegative) ? this._negate() : this;
    while (dart.notNull(rest[_used$]) > 1) {
      let digits4 = dart.toString(rest.remainder(core._BigIntImpl._bigInt10000));
      decimalDigitChunks[$add](digits4);
      if (digits4.length === 1) decimalDigitChunks[$add]("000");
      if (digits4.length === 2) decimalDigitChunks[$add]("00");
      if (digits4.length === 3) decimalDigitChunks[$add]("0");
      rest = rest['~/'](core._BigIntImpl._bigInt10000);
    }
    decimalDigitChunks[$add](dart.toString(rest[_digits$][$_get](0)));
    if (dart.test(this[_isNegative])) decimalDigitChunks[$add]("-");
    return decimalDigitChunks[$reversed][$join]();
  }
  [_toRadixCodeUnit](digit) {
    if (dart.notNull(digit) < 10) return 48 + dart.notNull(digit);
    return 97 + dart.notNull(digit) - 10;
  }
  toRadixString(radix) {
    if (dart.notNull(radix) > 36) dart.throw(new core.RangeError.range(radix, 2, 36));
    if (this[_used$] === 0) return "0";
    if (this[_used$] === 1) {
      let digitString = this[_digits$][$_get](0)[$toRadixString](radix);
      if (dart.test(this[_isNegative])) return "-" + digitString;
      return digitString;
    }
    if (radix === 16) return this[_toHexString]();
    let base = core._BigIntImpl._fromInt(radix);
    let reversedDigitCodeUnits = JSArrayOfintL().of([]);
    let rest = this.abs();
    while (!dart.test(rest[_isZero])) {
      let digit = rest.remainder(base).toInt();
      rest = rest['~/'](base);
      reversedDigitCodeUnits[$add](this[_toRadixCodeUnit](digit));
    }
    let digitString = core.String.fromCharCodes(reversedDigitCodeUnits[$reversed]);
    if (dart.test(this[_isNegative])) return "-" + dart.notNull(digitString);
    return digitString;
  }
  [_toHexString]() {
    let chars = JSArrayOfintL().of([]);
    for (let i = 0; i < dart.notNull(this[_used$]) - 1; i = i + 1) {
      let chunk = this[_digits$][$_get](i);
      for (let j = 0; j < (16 / 4)[$truncate](); j = j + 1) {
        chars[$add](this[_toRadixCodeUnit](dart.notNull(chunk) & 15));
        chunk = chunk[$rightShift](4);
      }
    }
    let msbChunk = this[_digits$][$_get](dart.notNull(this[_used$]) - 1);
    while (msbChunk !== 0) {
      chars[$add](this[_toRadixCodeUnit](dart.notNull(msbChunk) & 15));
      msbChunk = msbChunk[$rightShift](4);
    }
    if (dart.test(this[_isNegative])) {
      chars[$add](45);
    }
    return core.String.fromCharCodes(chars[$reversed]);
  }
};
(core._BigIntImpl.__ = function(isNegative, used, digits) {
  core._BigIntImpl._normalized.call(this, isNegative, core._BigIntImpl._normalize(used, digits), digits);
}).prototype = core._BigIntImpl.prototype;
(core._BigIntImpl._normalized = function(isNegative, _used, _digits) {
  this[_used$] = _used;
  this[_digits$] = _digits;
  this[_isNegative] = _used === 0 ? false : isNegative;
  ;
}).prototype = core._BigIntImpl.prototype;
dart.addTypeTests(core._BigIntImpl);
dart.addTypeCaches(core._BigIntImpl);
core._BigIntImpl[dart.implements] = () => [core.BigInt];
dart.setMethodSignature(core._BigIntImpl, () => ({
  __proto__: dart.getMethods(core._BigIntImpl.__proto__),
  _negate: dart.fnType(core._BigIntImpl, []),
  abs: dart.fnType(core._BigIntImpl, []),
  [_dlShift]: dart.fnType(core._BigIntImpl, [core.int]),
  [_drShift]: dart.fnType(core._BigIntImpl, [core.int]),
  '<<': dart.fnType(core._BigIntImpl, [core.int]),
  '>>': dart.fnType(core._BigIntImpl, [core.int]),
  [_absCompare]: dart.fnType(core.int, [core._BigIntImpl]),
  compareTo: dart.fnType(core.int, [core.Object]),
  [$compareTo]: dart.fnType(core.int, [core.Object]),
  [_absAddSetSign]: dart.fnType(core._BigIntImpl, [core._BigIntImpl, core.bool]),
  [_absSubSetSign]: dart.fnType(core._BigIntImpl, [core._BigIntImpl, core.bool]),
  [_absAndSetSign]: dart.fnType(core._BigIntImpl, [core._BigIntImpl, core.bool]),
  [_absAndNotSetSign]: dart.fnType(core._BigIntImpl, [core._BigIntImpl, core.bool]),
  [_absOrSetSign]: dart.fnType(core._BigIntImpl, [core._BigIntImpl, core.bool]),
  [_absXorSetSign]: dart.fnType(core._BigIntImpl, [core._BigIntImpl, core.bool]),
  '&': dart.fnType(core._BigIntImpl, [core.Object]),
  '|': dart.fnType(core._BigIntImpl, [core.Object]),
  '^': dart.fnType(core._BigIntImpl, [core.Object]),
  '~': dart.fnType(core._BigIntImpl, []),
  '+': dart.fnType(core._BigIntImpl, [core.Object]),
  '-': dart.fnType(core._BigIntImpl, [core.Object]),
  '*': dart.fnType(core._BigIntImpl, [core.Object]),
  [_div]: dart.fnType(core._BigIntImpl, [core._BigIntImpl]),
  [_rem]: dart.fnType(core._BigIntImpl, [core._BigIntImpl]),
  [_divRem]: dart.fnType(dart.void, [core._BigIntImpl]),
  _equals: dart.fnType(core.bool, [core.Object]),
  [$_equals]: dart.fnType(core.bool, [core.Object]),
  '~/': dart.fnType(core._BigIntImpl, [core.Object]),
  remainder: dart.fnType(core._BigIntImpl, [core.Object]),
  '/': dart.fnType(core.double, [core.BigInt]),
  '<': dart.fnType(core.bool, [core.Object]),
  '<=': dart.fnType(core.bool, [core.Object]),
  '>': dart.fnType(core.bool, [core.Object]),
  '>=': dart.fnType(core.bool, [core.Object]),
  '%': dart.fnType(core._BigIntImpl, [core.Object]),
  pow: dart.fnType(core._BigIntImpl, [core.int]),
  modPow: dart.fnType(core._BigIntImpl, [core.Object, core.Object]),
  modInverse: dart.fnType(core._BigIntImpl, [core.Object]),
  gcd: dart.fnType(core._BigIntImpl, [core.Object]),
  toUnsigned: dart.fnType(core._BigIntImpl, [core.int]),
  toSigned: dart.fnType(core._BigIntImpl, [core.int]),
  toInt: dart.fnType(core.int, []),
  toDouble: dart.fnType(core.double, []),
  [_toRadixCodeUnit]: dart.fnType(core.int, [core.int]),
  toRadixString: dart.fnType(core.String, [core.int]),
  [_toHexString]: dart.fnType(core.String, [])
}));
dart.setGetterSignature(core._BigIntImpl, () => ({
  __proto__: dart.getGetters(core._BigIntImpl.__proto__),
  [_isZero]: core.bool,
  bitLength: core.int,
  sign: core.int,
  isEven: core.bool,
  isOdd: core.bool,
  isNegative: core.bool,
  isValidInt: core.bool
}));
dart.setLibraryUri(core._BigIntImpl, L1$);
dart.setFieldSignature(core._BigIntImpl, () => ({
  __proto__: dart.getFields(core._BigIntImpl.__proto__),
  [_isNegative]: dart.finalFieldType(core.bool),
  [_digits$]: dart.finalFieldType(typed_data.Uint16List),
  [_used$]: dart.finalFieldType(core.int)
}));
dart.defineExtensionMethods(core._BigIntImpl, ['compareTo', '_equals', 'toString']);
dart.defineExtensionAccessors(core._BigIntImpl, ['hashCode']);
dart.defineLazy(core._BigIntImpl, {
  /*core._BigIntImpl._digitBits*/get _digitBits() {
    return 16;
  },
  /*core._BigIntImpl._digitBase*/get _digitBase() {
    return 65536;
  },
  /*core._BigIntImpl._digitMask*/get _digitMask() {
    return 65535;
  },
  /*core._BigIntImpl.zero*/get zero() {
    return core._BigIntImpl._fromInt(0);
  },
  /*core._BigIntImpl.one*/get one() {
    return core._BigIntImpl._fromInt(1);
  },
  /*core._BigIntImpl.two*/get two() {
    return core._BigIntImpl._fromInt(2);
  },
  /*core._BigIntImpl._minusOne*/get _minusOne() {
    return core._BigIntImpl.one._negate();
  },
  /*core._BigIntImpl._bigInt10000*/get _bigInt10000() {
    return core._BigIntImpl._fromInt(10000);
  },
  /*core._BigIntImpl._lastDividendDigits*/get _lastDividendDigits() {
    return null;
  },
  set _lastDividendDigits(_) {},
  /*core._BigIntImpl._lastDividendUsed*/get _lastDividendUsed() {
    return null;
  },
  set _lastDividendUsed(_) {},
  /*core._BigIntImpl._lastDivisorDigits*/get _lastDivisorDigits() {
    return null;
  },
  set _lastDivisorDigits(_) {},
  /*core._BigIntImpl._lastDivisorUsed*/get _lastDivisorUsed() {
    return null;
  },
  set _lastDivisorUsed(_) {},
  /*core._BigIntImpl._lastQuoRemDigits*/get _lastQuoRemDigits() {
    return null;
  },
  set _lastQuoRemDigits(_) {},
  /*core._BigIntImpl._lastQuoRemUsed*/get _lastQuoRemUsed() {
    return null;
  },
  set _lastQuoRemUsed(_) {},
  /*core._BigIntImpl._lastRemUsed*/get _lastRemUsed() {
    return null;
  },
  set _lastRemUsed(_) {},
  /*core._BigIntImpl._lastRem_nsh*/get _lastRem_nsh() {
    return null;
  },
  set _lastRem_nsh(_) {},
  /*core._BigIntImpl._parseRE*/get _parseRE() {
    return core.RegExp.new("^\\s*([+-]?)((0x[a-f0-9]+)|(\\d+)|([a-z0-9]+))\\s*$", {caseSensitive: false});
  },
  set _parseRE(_) {},
  /*core._BigIntImpl._bitsForFromDouble*/get _bitsForFromDouble() {
    return _native_typed_data.NativeUint8List.new(8);
  },
  /*core._BigIntImpl._simpleValidIntDigits*/get _simpleValidIntDigits() {
    return 3;
  }
}, true);
core._BigIntReduction = class _BigIntReduction extends core.Object {};
(core._BigIntReduction.new = function() {
  ;
}).prototype = core._BigIntReduction.prototype;
dart.addTypeTests(core._BigIntReduction);
dart.addTypeCaches(core._BigIntReduction);
dart.setLibraryUri(core._BigIntReduction, L1$);
var _modulus$ = dart.privateName(core, "_modulus");
var _normalizedModulus = dart.privateName(core, "_normalizedModulus");
var _reduce = dart.privateName(core, "_reduce");
core._BigIntClassic = class _BigIntClassic extends core.Object {
  convert(x, resultDigits) {
    let digits = null;
    let used = null;
    if (dart.test(x[_isNegative]) || dart.notNull(x[_absCompare](this[_modulus$])) >= 0) {
      let remainder = x[_rem](this[_modulus$]);
      if (dart.test(x[_isNegative]) && dart.notNull(remainder[_used$]) > 0) {
        if (!dart.test(remainder[_isNegative])) dart.assertFailed(null, L72, 2958, 16, "remainder._isNegative");
        remainder = remainder['+'](this[_modulus$]);
      }
      if (!!dart.test(remainder[_isNegative])) dart.assertFailed(null, L72, 2961, 14, "!remainder._isNegative");
      used = remainder[_used$];
      digits = remainder[_digits$];
    } else {
      used = x[_used$];
      digits = x[_digits$];
    }
    let i = used;
    while ((i = dart.notNull(i) - 1) >= 0) {
      resultDigits[$_set](i, digits[$_get](i));
    }
    return used;
  }
  revert(xDigits, xUsed) {
    return new core._BigIntImpl.__(false, xUsed, xDigits);
  }
  [_reduce](xDigits, xUsed) {
    if (dart.notNull(xUsed) < dart.notNull(this[_modulus$][_used$])) {
      return xUsed;
    }
    let reverted = this.revert(xDigits, xUsed);
    let rem = reverted[_rem](this[_normalizedModulus]);
    return this.convert(rem, xDigits);
  }
  sqr(xDigits, xUsed, resultDigits) {
    let b = new core._BigIntImpl.__(false, xUsed, xDigits);
    let b2 = b['*'](b);
    for (let i = 0; i < dart.notNull(b2[_used$]); i = i + 1) {
      resultDigits[$_set](i, b2[_digits$][$_get](i));
    }
    for (let i = b2[_used$]; dart.notNull(i) < 2 * dart.notNull(xUsed); i = dart.notNull(i) + 1) {
      resultDigits[$_set](i, 0);
    }
    return this[_reduce](resultDigits, 2 * dart.notNull(xUsed));
  }
  mul(xDigits, xUsed, yDigits, yUsed, resultDigits) {
    let resultUsed = core._BigIntImpl._mulDigits(xDigits, xUsed, yDigits, yUsed, resultDigits);
    return this[_reduce](resultDigits, resultUsed);
  }
};
(core._BigIntClassic.new = function(_modulus) {
  this[_modulus$] = _modulus;
  this[_normalizedModulus] = _modulus['<<'](16 - _modulus[_digits$][$_get](dart.notNull(_modulus[_used$]) - 1)[$bitLength]);
  ;
}).prototype = core._BigIntClassic.prototype;
dart.addTypeTests(core._BigIntClassic);
dart.addTypeCaches(core._BigIntClassic);
core._BigIntClassic[dart.implements] = () => [core._BigIntReduction];
dart.setMethodSignature(core._BigIntClassic, () => ({
  __proto__: dart.getMethods(core._BigIntClassic.__proto__),
  convert: dart.fnType(core.int, [core._BigIntImpl, typed_data.Uint16List]),
  revert: dart.fnType(core._BigIntImpl, [typed_data.Uint16List, core.int]),
  [_reduce]: dart.fnType(core.int, [typed_data.Uint16List, core.int]),
  sqr: dart.fnType(core.int, [typed_data.Uint16List, core.int, typed_data.Uint16List]),
  mul: dart.fnType(core.int, [typed_data.Uint16List, core.int, typed_data.Uint16List, core.int, typed_data.Uint16List])
}));
dart.setLibraryUri(core._BigIntClassic, L1$);
dart.setFieldSignature(core._BigIntClassic, () => ({
  __proto__: dart.getFields(core._BigIntClassic.__proto__),
  [_modulus$]: dart.finalFieldType(core._BigIntImpl),
  [_normalizedModulus]: dart.finalFieldType(core._BigIntImpl)
}));
var message$11 = dart.privateName(core, "Deprecated.message");
core.Deprecated = class Deprecated extends core.Object {
  get message() {
    return this[message$11];
  }
  set message(value) {
    super.message = value;
  }
  get expires() {
    return this.message;
  }
  toString() {
    return "Deprecated feature: " + dart.str(this.message);
  }
};
(core.Deprecated.new = function(message) {
  this[message$11] = message;
  ;
}).prototype = core.Deprecated.prototype;
dart.addTypeTests(core.Deprecated);
dart.addTypeCaches(core.Deprecated);
dart.setGetterSignature(core.Deprecated, () => ({
  __proto__: dart.getGetters(core.Deprecated.__proto__),
  expires: core.String
}));
dart.setLibraryUri(core.Deprecated, L1$);
dart.setFieldSignature(core.Deprecated, () => ({
  __proto__: dart.getFields(core.Deprecated.__proto__),
  message: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(core.Deprecated, ['toString']);
core._Override = class _Override extends core.Object {};
(core._Override.new = function() {
  ;
}).prototype = core._Override.prototype;
dart.addTypeTests(core._Override);
dart.addTypeCaches(core._Override);
dart.setLibraryUri(core._Override, L1$);
core.Provisional = class Provisional extends core.Object {
  get message() {
    return null;
  }
};
(core.Provisional.new = function(opts) {
  let message = opts && 'message' in opts ? opts.message : null;
  ;
}).prototype = core.Provisional.prototype;
dart.addTypeTests(core.Provisional);
dart.addTypeCaches(core.Provisional);
dart.setGetterSignature(core.Provisional, () => ({
  __proto__: dart.getGetters(core.Provisional.__proto__),
  message: core.String
}));
dart.setLibraryUri(core.Provisional, L1$);
core._Proxy = class _Proxy extends core.Object {};
(core._Proxy.new = function() {
  ;
}).prototype = core._Proxy.prototype;
dart.addTypeTests(core._Proxy);
dart.addTypeCaches(core._Proxy);
dart.setLibraryUri(core._Proxy, L1$);
var name$12 = dart.privateName(core, "pragma.name");
var options$ = dart.privateName(core, "pragma.options");
core.pragma = class pragma extends core.Object {
  get name() {
    return this[name$12];
  }
  set name(value) {
    super.name = value;
  }
  get options() {
    return this[options$];
  }
  set options(value) {
    super.options = value;
  }
};
(core.pragma.__ = function(name, options = null) {
  this[name$12] = name;
  this[options$] = options;
  ;
}).prototype = core.pragma.prototype;
dart.addTypeTests(core.pragma);
dart.addTypeCaches(core.pragma);
dart.setLibraryUri(core.pragma, L1$);
dart.setFieldSignature(core.pragma, () => ({
  __proto__: dart.getFields(core.pragma.__proto__),
  name: dart.finalFieldType(core.String),
  options: dart.finalFieldType(core.Object)
}));
core.BigInt = class BigInt extends core.Object {
  static get zero() {
    return core._BigIntImpl.zero;
  }
  static get one() {
    return core._BigIntImpl.one;
  }
  static get two() {
    return core._BigIntImpl.two;
  }
  static parse(source, opts) {
    let radix = opts && 'radix' in opts ? opts.radix : null;
    return core._BigIntImpl.parse(source, {radix: radix});
  }
  static tryParse(source, opts) {
    let radix = opts && 'radix' in opts ? opts.radix : null;
    return core._BigIntImpl._tryParse(source, {radix: radix});
  }
};
(core.BigInt[dart.mixinNew] = function() {
}).prototype = core.BigInt.prototype;
dart.addTypeTests(core.BigInt);
dart.addTypeCaches(core.BigInt);
core.BigInt[dart.implements] = () => [core.Comparable$(core.BigInt)];
dart.setLibraryUri(core.BigInt, L1$);
core.bool = class bool extends core.Object {
  static is(o) {
    return o === true || o === false;
  }
  static as(o) {
    if (o === true || o === false || o == null) return o;
    return dart.as(o, core.bool);
  }
  static fromEnvironment(name, opts) {
    let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : false;
    dart.throw(new core.UnsupportedError.new("bool.fromEnvironment can only be used as a const constructor"));
  }
  static hasEnvironment(name) {
    dart.throw(new core.UnsupportedError.new("bool.hasEnvironment can only be used as a const constructor"));
  }
  get [$hashCode]() {
    return super[$hashCode];
  }
  [$bitAnd](other) {
    return dart.test(other) && this;
  }
  [$bitOr](other) {
    return dart.test(other) || this;
  }
  [$bitXor](other) {
    return (!dart.test(other))[$_equals](this);
  }
  [$toString]() {
    return this ? "true" : "false";
  }
};
(core.bool[dart.mixinNew] = function() {
}).prototype = core.bool.prototype;
dart.addTypeCaches(core.bool);
dart.setMethodSignature(core.bool, () => ({
  __proto__: dart.getMethods(core.bool.__proto__),
  [$bitAnd]: dart.fnType(core.bool, [core.bool]),
  [$bitOr]: dart.fnType(core.bool, [core.bool]),
  [$bitXor]: dart.fnType(core.bool, [core.bool])
}));
dart.setLibraryUri(core.bool, L1$);
const _is_Comparable_default = Symbol('_is_Comparable_default');
core.Comparable$ = dart.generic(T => {
  class Comparable extends core.Object {
    static compare(a, b) {
      return a[$compareTo](b);
    }
  }
  (Comparable.new = function() {
    ;
  }).prototype = Comparable.prototype;
  dart.addTypeTests(Comparable);
  Comparable.prototype[_is_Comparable_default] = true;
  dart.addTypeCaches(Comparable);
  dart.setLibraryUri(Comparable, L1$);
  return Comparable;
});
core.Comparable = core.Comparable$();
dart.addTypeTests(core.Comparable, _is_Comparable_default);
var _value$8 = dart.privateName(core, "_value");
var isUtc$ = dart.privateName(core, "DateTime.isUtc");
core.DateTime = class DateTime extends core.Object {
  get isUtc() {
    return this[isUtc$];
  }
  set isUtc(value) {
    super.isUtc = value;
  }
  static _microsecondInRoundedMilliseconds(microsecond) {
    return (dart.notNull(microsecond) / 1000)[$round]();
  }
  static parse(formattedString) {
    let re = core.DateTime._parseFormat;
    let match = re.firstMatch(formattedString);
    if (match != null) {
      function parseIntOrZero(matched) {
        if (matched == null) return 0;
        return core.int.parse(matched);
      }
      dart.fn(parseIntOrZero, StringLTointL());
      function parseMilliAndMicroseconds(matched) {
        if (matched == null) return 0;
        let length = matched.length;
        if (!(length >= 1)) dart.assertFailed(null, L73, 295, 16, "length >= 1");
        let result = 0;
        for (let i = 0; i < 6; i = i + 1) {
          result = result * 10;
          if (i < matched.length) {
            result = result + ((matched[$codeUnitAt](i) ^ 48) >>> 0);
          }
        }
        return result;
      }
      dart.fn(parseMilliAndMicroseconds, StringLTointL());
      let years = core.int.parse(match._get(1));
      let month = core.int.parse(match._get(2));
      let day = core.int.parse(match._get(3));
      let hour = parseIntOrZero(match._get(4));
      let minute = parseIntOrZero(match._get(5));
      let second = parseIntOrZero(match._get(6));
      let milliAndMicroseconds = parseMilliAndMicroseconds(match._get(7));
      let millisecond = (dart.notNull(milliAndMicroseconds) / 1000)[$truncate]();
      let microsecond = dart.asNullableInt(milliAndMicroseconds[$remainder](1000));
      let isUtc = false;
      if (match._get(8) != null) {
        isUtc = true;
        if (match._get(9) != null) {
          let sign = match._get(9) === "-" ? -1 : 1;
          let hourDifference = core.int.parse(match._get(10));
          let minuteDifference = parseIntOrZero(match._get(11));
          minuteDifference = dart.notNull(minuteDifference) + 60 * dart.notNull(hourDifference);
          minute = dart.notNull(minute) - sign * dart.notNull(minuteDifference);
        }
      }
      let value = core.DateTime._brokenDownDateToValue(years, month, day, hour, minute, second, millisecond, microsecond, isUtc);
      if (value == null) {
        dart.throw(new core.FormatException.new("Time out of range", formattedString));
      }
      return new core.DateTime._withValue(value, {isUtc: isUtc});
    } else {
      dart.throw(new core.FormatException.new("Invalid date format", formattedString));
    }
  }
  static tryParse(formattedString) {
    try {
      return core.DateTime.parse(formattedString);
    } catch (e) {
      let ex = dart.getThrown(e);
      if (core.FormatException.is(ex)) {
        return null;
      } else
        throw e;
    }
  }
  _equals(other) {
    if (other == null) return false;
    return core.DateTime.is(other) && this[_value$8] == other.millisecondsSinceEpoch && dart.equals(this.isUtc, other.isUtc);
  }
  isBefore(other) {
    return dart.notNull(this[_value$8]) < dart.notNull(other.millisecondsSinceEpoch);
  }
  isAfter(other) {
    return dart.notNull(this[_value$8]) > dart.notNull(other.millisecondsSinceEpoch);
  }
  isAtSameMomentAs(other) {
    return this[_value$8] == other.millisecondsSinceEpoch;
  }
  compareTo(other) {
    return this[_value$8][$compareTo](other.millisecondsSinceEpoch);
  }
  get hashCode() {
    return (dart.notNull(this[_value$8]) ^ this[_value$8][$rightShift](30)) & 1073741823;
  }
  toLocal() {
    if (dart.test(this.isUtc)) {
      return new core.DateTime._withValue(this[_value$8], {isUtc: false});
    }
    return this;
  }
  toUtc() {
    if (dart.test(this.isUtc)) return this;
    return new core.DateTime._withValue(this[_value$8], {isUtc: true});
  }
  static _fourDigits(n) {
    let absN = n[$abs]();
    let sign = dart.notNull(n) < 0 ? "-" : "";
    if (absN >= 1000) return dart.str(n);
    if (absN >= 100) return sign + "0" + dart.str(absN);
    if (absN >= 10) return sign + "00" + dart.str(absN);
    return sign + "000" + dart.str(absN);
  }
  static _sixDigits(n) {
    if (!(dart.notNull(n) < -9999 || dart.notNull(n) > 9999)) dart.assertFailed(null, L73, 538, 12, "n < -9999 || n > 9999");
    let absN = n[$abs]();
    let sign = dart.notNull(n) < 0 ? "-" : "+";
    if (absN >= 100000) return sign + dart.str(absN);
    return sign + "0" + dart.str(absN);
  }
  static _threeDigits(n) {
    if (dart.notNull(n) >= 100) return dart.str(n);
    if (dart.notNull(n) >= 10) return "0" + dart.str(n);
    return "00" + dart.str(n);
  }
  static _twoDigits(n) {
    if (dart.notNull(n) >= 10) return dart.str(n);
    return "0" + dart.str(n);
  }
  toString() {
    let y = core.DateTime._fourDigits(this.year);
    let m = core.DateTime._twoDigits(this.month);
    let d = core.DateTime._twoDigits(this.day);
    let h = core.DateTime._twoDigits(this.hour);
    let min = core.DateTime._twoDigits(this.minute);
    let sec = core.DateTime._twoDigits(this.second);
    let ms = core.DateTime._threeDigits(this.millisecond);
    let us = this.microsecond === 0 ? "" : core.DateTime._threeDigits(this.microsecond);
    if (dart.test(this.isUtc)) {
      return dart.str(y) + "-" + dart.str(m) + "-" + dart.str(d) + " " + dart.str(h) + ":" + dart.str(min) + ":" + dart.str(sec) + "." + dart.str(ms) + dart.str(us) + "Z";
    } else {
      return dart.str(y) + "-" + dart.str(m) + "-" + dart.str(d) + " " + dart.str(h) + ":" + dart.str(min) + ":" + dart.str(sec) + "." + dart.str(ms) + dart.str(us);
    }
  }
  toIso8601String() {
    let y = dart.notNull(this.year) >= -9999 && dart.notNull(this.year) <= 9999 ? core.DateTime._fourDigits(this.year) : core.DateTime._sixDigits(this.year);
    let m = core.DateTime._twoDigits(this.month);
    let d = core.DateTime._twoDigits(this.day);
    let h = core.DateTime._twoDigits(this.hour);
    let min = core.DateTime._twoDigits(this.minute);
    let sec = core.DateTime._twoDigits(this.second);
    let ms = core.DateTime._threeDigits(this.millisecond);
    let us = this.microsecond === 0 ? "" : core.DateTime._threeDigits(this.microsecond);
    if (dart.test(this.isUtc)) {
      return dart.str(y) + "-" + dart.str(m) + "-" + dart.str(d) + "T" + dart.str(h) + ":" + dart.str(min) + ":" + dart.str(sec) + "." + dart.str(ms) + dart.str(us) + "Z";
    } else {
      return dart.str(y) + "-" + dart.str(m) + "-" + dart.str(d) + "T" + dart.str(h) + ":" + dart.str(min) + ":" + dart.str(sec) + "." + dart.str(ms) + dart.str(us);
    }
  }
  add(duration) {
    return new core.DateTime._withValue(dart.notNull(this[_value$8]) + dart.notNull(duration.inMilliseconds), {isUtc: this.isUtc});
  }
  subtract(duration) {
    return new core.DateTime._withValue(dart.notNull(this[_value$8]) - dart.notNull(duration.inMilliseconds), {isUtc: this.isUtc});
  }
  difference(other) {
    return new core.Duration.new({milliseconds: dart.notNull(this[_value$8]) - dart.notNull(other[_value$8])});
  }
  static _brokenDownDateToValue(year, month, day, hour, minute, second, millisecond, microsecond, isUtc) {
    return dart.asNullableInt(_js_helper.Primitives.valueFromDecomposedDate(year, month, day, hour, minute, second, dart.notNull(millisecond) + dart.notNull(core.DateTime._microsecondInRoundedMilliseconds(microsecond)), isUtc));
  }
  get millisecondsSinceEpoch() {
    return this[_value$8];
  }
  get microsecondsSinceEpoch() {
    return dart.notNull(this[_value$8]) * 1000;
  }
  get timeZoneName() {
    if (dart.test(this.isUtc)) return "UTC";
    return _js_helper.Primitives.getTimeZoneName(this);
  }
  get timeZoneOffset() {
    if (dart.test(this.isUtc)) return new core.Duration.new();
    return new core.Duration.new({minutes: _js_helper.Primitives.getTimeZoneOffsetInMinutes(this)});
  }
  get year() {
    return _js_helper.Primitives.getYear(this);
  }
  get month() {
    return _js_helper.Primitives.getMonth(this);
  }
  get day() {
    return _js_helper.Primitives.getDay(this);
  }
  get hour() {
    return _js_helper.Primitives.getHours(this);
  }
  get minute() {
    return _js_helper.Primitives.getMinutes(this);
  }
  get second() {
    return _js_helper.Primitives.getSeconds(this);
  }
  get millisecond() {
    return _js_helper.Primitives.getMilliseconds(this);
  }
  get microsecond() {
    return 0;
  }
  get weekday() {
    return _js_helper.Primitives.getWeekday(this);
  }
};
(core.DateTime.new = function(year, month = 1, day = 1, hour = 0, minute = 0, second = 0, millisecond = 0, microsecond = 0) {
  core.DateTime._internal.call(this, year, month, day, hour, minute, second, millisecond, microsecond, false);
}).prototype = core.DateTime.prototype;
(core.DateTime.utc = function(year, month = 1, day = 1, hour = 0, minute = 0, second = 0, millisecond = 0, microsecond = 0) {
  core.DateTime._internal.call(this, year, month, day, hour, minute, second, millisecond, microsecond, true);
}).prototype = core.DateTime.prototype;
(core.DateTime.now = function() {
  core.DateTime._now.call(this);
}).prototype = core.DateTime.prototype;
(core.DateTime.fromMillisecondsSinceEpoch = function(millisecondsSinceEpoch, opts) {
  let isUtc = opts && 'isUtc' in opts ? opts.isUtc : false;
  core.DateTime._withValue.call(this, millisecondsSinceEpoch, {isUtc: isUtc});
}).prototype = core.DateTime.prototype;
(core.DateTime.fromMicrosecondsSinceEpoch = function(microsecondsSinceEpoch, opts) {
  let isUtc = opts && 'isUtc' in opts ? opts.isUtc : false;
  core.DateTime._withValue.call(this, core.DateTime._microsecondInRoundedMilliseconds(microsecondsSinceEpoch), {isUtc: isUtc});
}).prototype = core.DateTime.prototype;
(core.DateTime._withValue = function(_value, opts) {
  let isUtc = opts && 'isUtc' in opts ? opts.isUtc : null;
  this[_value$8] = _value;
  this[isUtc$] = isUtc;
  if (this.millisecondsSinceEpoch[$abs]() > 8640000000000000.0 || this.millisecondsSinceEpoch[$abs]() === 8640000000000000.0 && this.microsecond !== 0) {
    dart.throw(new core.ArgumentError.new("DateTime is outside valid range: " + dart.str(this.millisecondsSinceEpoch)));
  }
  core.ArgumentError.checkNotNull(core.bool, this.isUtc, "isUtc");
}).prototype = core.DateTime.prototype;
(core.DateTime._internal = function(year, month, day, hour, minute, second, millisecond, microsecond, isUtc) {
  this[isUtc$] = typeof isUtc == 'boolean' ? isUtc : dart.throw(new core.ArgumentError.value(isUtc, "isUtc"));
  this[_value$8] = core.int.as(_js_helper.checkInt(_js_helper.Primitives.valueFromDecomposedDate(year, month, day, hour, minute, second, dart.notNull(millisecond) + dart.notNull(core.DateTime._microsecondInRoundedMilliseconds(microsecond)), isUtc)));
  ;
}).prototype = core.DateTime.prototype;
(core.DateTime._now = function() {
  this[isUtc$] = false;
  this[_value$8] = _js_helper.Primitives.dateNow();
  ;
}).prototype = core.DateTime.prototype;
dart.addTypeTests(core.DateTime);
dart.addTypeCaches(core.DateTime);
core.DateTime[dart.implements] = () => [core.Comparable$(core.DateTime)];
dart.setMethodSignature(core.DateTime, () => ({
  __proto__: dart.getMethods(core.DateTime.__proto__),
  isBefore: dart.fnType(core.bool, [core.DateTime]),
  isAfter: dart.fnType(core.bool, [core.DateTime]),
  isAtSameMomentAs: dart.fnType(core.bool, [core.DateTime]),
  compareTo: dart.fnType(core.int, [core.DateTime]),
  [$compareTo]: dart.fnType(core.int, [core.DateTime]),
  toLocal: dart.fnType(core.DateTime, []),
  toUtc: dart.fnType(core.DateTime, []),
  toIso8601String: dart.fnType(core.String, []),
  add: dart.fnType(core.DateTime, [core.Duration]),
  subtract: dart.fnType(core.DateTime, [core.Duration]),
  difference: dart.fnType(core.Duration, [core.DateTime])
}));
dart.setGetterSignature(core.DateTime, () => ({
  __proto__: dart.getGetters(core.DateTime.__proto__),
  millisecondsSinceEpoch: core.int,
  microsecondsSinceEpoch: core.int,
  timeZoneName: core.String,
  timeZoneOffset: core.Duration,
  year: core.int,
  month: core.int,
  day: core.int,
  hour: core.int,
  minute: core.int,
  second: core.int,
  millisecond: core.int,
  microsecond: core.int,
  weekday: core.int
}));
dart.setLibraryUri(core.DateTime, L1$);
dart.setFieldSignature(core.DateTime, () => ({
  __proto__: dart.getFields(core.DateTime.__proto__),
  [_value$8]: dart.finalFieldType(core.int),
  isUtc: dart.finalFieldType(core.bool)
}));
dart.defineExtensionMethods(core.DateTime, ['_equals', 'compareTo', 'toString']);
dart.defineExtensionAccessors(core.DateTime, ['hashCode']);
dart.defineLazy(core.DateTime, {
  /*core.DateTime.monday*/get monday() {
    return 1;
  },
  /*core.DateTime.tuesday*/get tuesday() {
    return 2;
  },
  /*core.DateTime.wednesday*/get wednesday() {
    return 3;
  },
  /*core.DateTime.thursday*/get thursday() {
    return 4;
  },
  /*core.DateTime.friday*/get friday() {
    return 5;
  },
  /*core.DateTime.saturday*/get saturday() {
    return 6;
  },
  /*core.DateTime.sunday*/get sunday() {
    return 7;
  },
  /*core.DateTime.daysPerWeek*/get daysPerWeek() {
    return 7;
  },
  /*core.DateTime.january*/get january() {
    return 1;
  },
  /*core.DateTime.february*/get february() {
    return 2;
  },
  /*core.DateTime.march*/get march() {
    return 3;
  },
  /*core.DateTime.april*/get april() {
    return 4;
  },
  /*core.DateTime.may*/get may() {
    return 5;
  },
  /*core.DateTime.june*/get june() {
    return 6;
  },
  /*core.DateTime.july*/get july() {
    return 7;
  },
  /*core.DateTime.august*/get august() {
    return 8;
  },
  /*core.DateTime.september*/get september() {
    return 9;
  },
  /*core.DateTime.october*/get october() {
    return 10;
  },
  /*core.DateTime.november*/get november() {
    return 11;
  },
  /*core.DateTime.december*/get december() {
    return 12;
  },
  /*core.DateTime.monthsPerYear*/get monthsPerYear() {
    return 12;
  },
  /*core.DateTime._maxMillisecondsSinceEpoch*/get _maxMillisecondsSinceEpoch() {
    return 8640000000000000.0;
  },
  /*core.DateTime._parseFormat*/get _parseFormat() {
    return core.RegExp.new("^([+-]?\\d{4,6})-?(\\d\\d)-?(\\d\\d)" + "(?:[ T](\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d+))?)?)?" + "( ?[zZ]| ?([-+])(\\d\\d)(?::?(\\d\\d))?)?)?$");
  }
}, true);
var _duration = dart.privateName(core, "_duration");
var _duration$ = dart.privateName(core, "Duration._duration");
var C420;
core.Duration = class Duration extends core.Object {
  get [_duration]() {
    return this[_duration$];
  }
  set [_duration](value) {
    super[_duration] = value;
  }
  ['+'](other) {
    return new core.Duration._microseconds(dart.notNull(this[_duration]) + dart.notNull(other[_duration]));
  }
  ['-'](other) {
    return new core.Duration._microseconds(dart.notNull(this[_duration]) - dart.notNull(other[_duration]));
  }
  ['*'](factor) {
    return new core.Duration._microseconds((dart.notNull(this[_duration]) * dart.notNull(factor))[$round]());
  }
  ['~/'](quotient) {
    if (quotient === 0) dart.throw(new core.IntegerDivisionByZeroException.new());
    return new core.Duration._microseconds((dart.notNull(this[_duration]) / dart.notNull(quotient))[$truncate]());
  }
  ['<'](other) {
    return dart.notNull(this[_duration]) < dart.notNull(other[_duration]);
  }
  ['>'](other) {
    return dart.notNull(this[_duration]) > dart.notNull(other[_duration]);
  }
  ['<='](other) {
    return dart.notNull(this[_duration]) <= dart.notNull(other[_duration]);
  }
  ['>='](other) {
    return dart.notNull(this[_duration]) >= dart.notNull(other[_duration]);
  }
  get inDays() {
    return (dart.notNull(this[_duration]) / 86400000000.0)[$truncate]();
  }
  get inHours() {
    return (dart.notNull(this[_duration]) / 3600000000.0)[$truncate]();
  }
  get inMinutes() {
    return (dart.notNull(this[_duration]) / 60000000)[$truncate]();
  }
  get inSeconds() {
    return (dart.notNull(this[_duration]) / 1000000)[$truncate]();
  }
  get inMilliseconds() {
    return (dart.notNull(this[_duration]) / 1000)[$truncate]();
  }
  get inMicroseconds() {
    return this[_duration];
  }
  _equals(other) {
    if (other == null) return false;
    return core.Duration.is(other) && this[_duration] == other.inMicroseconds;
  }
  get hashCode() {
    return dart.hashCode(this[_duration]);
  }
  compareTo(other) {
    core.Duration.as(other);
    return this[_duration][$compareTo](other[_duration]);
  }
  toString() {
    function sixDigits(n) {
      if (dart.notNull(n) >= 100000) return dart.str(n);
      if (dart.notNull(n) >= 10000) return "0" + dart.str(n);
      if (dart.notNull(n) >= 1000) return "00" + dart.str(n);
      if (dart.notNull(n) >= 100) return "000" + dart.str(n);
      if (dart.notNull(n) >= 10) return "0000" + dart.str(n);
      return "00000" + dart.str(n);
    }
    dart.fn(sixDigits, intLToStringL());
    function twoDigits(n) {
      if (dart.notNull(n) >= 10) return dart.str(n);
      return "0" + dart.str(n);
    }
    dart.fn(twoDigits, intLToStringL());
    if (dart.notNull(this.inMicroseconds) < 0) {
      return "-" + dart.str(this._negate());
    }
    let twoDigitMinutes = twoDigits(dart.asNullableInt(this.inMinutes[$remainder](60)));
    let twoDigitSeconds = twoDigits(dart.asNullableInt(this.inSeconds[$remainder](60)));
    let sixDigitUs = sixDigits(dart.asNullableInt(this.inMicroseconds[$remainder](1000000)));
    return dart.str(this.inHours) + ":" + dart.str(twoDigitMinutes) + ":" + dart.str(twoDigitSeconds) + "." + dart.str(sixDigitUs);
  }
  get isNegative() {
    return dart.notNull(this[_duration]) < 0;
  }
  abs() {
    return new core.Duration._microseconds(this[_duration][$abs]());
  }
  _negate() {
    return new core.Duration._microseconds(0 - dart.notNull(this[_duration]));
  }
};
(core.Duration.new = function(opts) {
  let days = opts && 'days' in opts ? opts.days : 0;
  let hours = opts && 'hours' in opts ? opts.hours : 0;
  let minutes = opts && 'minutes' in opts ? opts.minutes : 0;
  let seconds = opts && 'seconds' in opts ? opts.seconds : 0;
  let milliseconds = opts && 'milliseconds' in opts ? opts.milliseconds : 0;
  let microseconds = opts && 'microseconds' in opts ? opts.microseconds : 0;
  core.Duration._microseconds.call(this, 86400000000.0 * dart.notNull(days) + 3600000000.0 * dart.notNull(hours) + 60000000 * dart.notNull(minutes) + 1000000 * dart.notNull(seconds) + 1000 * dart.notNull(milliseconds) + dart.notNull(microseconds));
}).prototype = core.Duration.prototype;
(core.Duration._microseconds = function(_duration) {
  this[_duration$] = _duration;
  ;
}).prototype = core.Duration.prototype;
dart.addTypeTests(core.Duration);
dart.addTypeCaches(core.Duration);
core.Duration[dart.implements] = () => [core.Comparable$(core.Duration)];
dart.setMethodSignature(core.Duration, () => ({
  __proto__: dart.getMethods(core.Duration.__proto__),
  '+': dart.fnType(core.Duration, [core.Duration]),
  '-': dart.fnType(core.Duration, [core.Duration]),
  '*': dart.fnType(core.Duration, [core.num]),
  '~/': dart.fnType(core.Duration, [core.int]),
  '<': dart.fnType(core.bool, [core.Duration]),
  '>': dart.fnType(core.bool, [core.Duration]),
  '<=': dart.fnType(core.bool, [core.Duration]),
  '>=': dart.fnType(core.bool, [core.Duration]),
  compareTo: dart.fnType(core.int, [core.Object]),
  [$compareTo]: dart.fnType(core.int, [core.Object]),
  abs: dart.fnType(core.Duration, []),
  _negate: dart.fnType(core.Duration, [])
}));
dart.setGetterSignature(core.Duration, () => ({
  __proto__: dart.getGetters(core.Duration.__proto__),
  inDays: core.int,
  inHours: core.int,
  inMinutes: core.int,
  inSeconds: core.int,
  inMilliseconds: core.int,
  inMicroseconds: core.int,
  isNegative: core.bool
}));
dart.setLibraryUri(core.Duration, L1$);
dart.setFieldSignature(core.Duration, () => ({
  __proto__: dart.getFields(core.Duration.__proto__),
  [_duration]: dart.finalFieldType(core.int)
}));
dart.defineExtensionMethods(core.Duration, ['_equals', 'compareTo', 'toString']);
dart.defineExtensionAccessors(core.Duration, ['hashCode']);
dart.defineLazy(core.Duration, {
  /*core.Duration.microsecondsPerMillisecond*/get microsecondsPerMillisecond() {
    return 1000;
  },
  /*core.Duration.millisecondsPerSecond*/get millisecondsPerSecond() {
    return 1000;
  },
  /*core.Duration.secondsPerMinute*/get secondsPerMinute() {
    return 60;
  },
  /*core.Duration.minutesPerHour*/get minutesPerHour() {
    return 60;
  },
  /*core.Duration.hoursPerDay*/get hoursPerDay() {
    return 24;
  },
  /*core.Duration.microsecondsPerSecond*/get microsecondsPerSecond() {
    return 1000000;
  },
  /*core.Duration.microsecondsPerMinute*/get microsecondsPerMinute() {
    return 60000000;
  },
  /*core.Duration.microsecondsPerHour*/get microsecondsPerHour() {
    return 3600000000.0;
  },
  /*core.Duration.microsecondsPerDay*/get microsecondsPerDay() {
    return 86400000000.0;
  },
  /*core.Duration.millisecondsPerMinute*/get millisecondsPerMinute() {
    return 60000;
  },
  /*core.Duration.millisecondsPerHour*/get millisecondsPerHour() {
    return 3600000;
  },
  /*core.Duration.millisecondsPerDay*/get millisecondsPerDay() {
    return 86400000;
  },
  /*core.Duration.secondsPerHour*/get secondsPerHour() {
    return 3600;
  },
  /*core.Duration.secondsPerDay*/get secondsPerDay() {
    return 86400;
  },
  /*core.Duration.minutesPerDay*/get minutesPerDay() {
    return 1440;
  },
  /*core.Duration.zero*/get zero() {
    return C420 || CT.C420;
  }
}, true);
core.TypeError = class TypeError extends core.Error {};
(core.TypeError.new = function() {
  core.TypeError.__proto__.new.call(this);
  ;
}).prototype = core.TypeError.prototype;
dart.addTypeTests(core.TypeError);
dart.addTypeCaches(core.TypeError);
dart.setLibraryUri(core.TypeError, L1$);
core.CastError = class CastError extends core.Error {};
(core.CastError.new = function() {
  core.CastError.__proto__.new.call(this);
  ;
}).prototype = core.CastError.prototype;
dart.addTypeTests(core.CastError);
dart.addTypeCaches(core.CastError);
dart.setLibraryUri(core.CastError, L1$);
core.NullThrownError = class NullThrownError extends core.Error {
  toString() {
    return "Throw of null.";
  }
};
(core.NullThrownError.new = function() {
  core.NullThrownError.__proto__.new.call(this);
  ;
}).prototype = core.NullThrownError.prototype;
dart.addTypeTests(core.NullThrownError);
dart.addTypeCaches(core.NullThrownError);
dart.setLibraryUri(core.NullThrownError, L1$);
dart.defineExtensionMethods(core.NullThrownError, ['toString']);
var invalidValue = dart.privateName(core, "ArgumentError.invalidValue");
var name$13 = dart.privateName(core, "ArgumentError.name");
var message$12 = dart.privateName(core, "ArgumentError.message");
core.ArgumentError = class ArgumentError extends core.Error {
  get invalidValue() {
    return this[invalidValue];
  }
  set invalidValue(value) {
    super.invalidValue = value;
  }
  get name() {
    return this[name$13];
  }
  set name(value) {
    super.name = value;
  }
  get message() {
    return this[message$12];
  }
  set message(value) {
    super.message = value;
  }
  static checkNotNull(T, argument, name = null) {
    if (argument == null) dart.throw(new core.ArgumentError.notNull(name));
    return argument;
  }
  get [_errorName$]() {
    return "Invalid argument" + (!dart.test(this[_hasValue$]) ? "(s)" : "");
  }
  get [_errorExplanation$]() {
    return "";
  }
  toString() {
    let nameString = "";
    if (this[$name] != null) {
      nameString = " (" + dart.str(this[$name]) + ")";
    }
    let message = this[$message] == null ? "" : ": " + dart.str(this[$message]);
    let prefix = dart.str(this[_errorName$]) + nameString + message;
    if (!dart.test(this[_hasValue$])) return prefix;
    let explanation = this[_errorExplanation$];
    let errorValue = core.Error.safeToString(this[$invalidValue]);
    return prefix + dart.str(explanation) + ": " + dart.str(errorValue);
  }
};
(core.ArgumentError.new = function(message = null) {
  this[message$12] = message;
  this[invalidValue] = null;
  this[_hasValue$] = false;
  this[name$13] = null;
  core.ArgumentError.__proto__.new.call(this);
  ;
}).prototype = core.ArgumentError.prototype;
(core.ArgumentError.value = function(value, name = null, message = null) {
  this[name$13] = name;
  this[message$12] = message;
  this[invalidValue] = value;
  this[_hasValue$] = true;
  core.ArgumentError.__proto__.new.call(this);
  ;
}).prototype = core.ArgumentError.prototype;
(core.ArgumentError.notNull = function(name = null) {
  this[name$13] = name;
  this[_hasValue$] = false;
  this[message$12] = "Must not be null";
  this[invalidValue] = null;
  core.ArgumentError.__proto__.new.call(this);
  ;
}).prototype = core.ArgumentError.prototype;
dart.addTypeTests(core.ArgumentError);
dart.addTypeCaches(core.ArgumentError);
dart.setGetterSignature(core.ArgumentError, () => ({
  __proto__: dart.getGetters(core.ArgumentError.__proto__),
  [_errorName$]: core.String,
  [_errorExplanation$]: core.String
}));
dart.setLibraryUri(core.ArgumentError, L1$);
dart.setFieldSignature(core.ArgumentError, () => ({
  __proto__: dart.getFields(core.ArgumentError.__proto__),
  [_hasValue$]: dart.finalFieldType(core.bool),
  invalidValue: dart.finalFieldType(dart.dynamic),
  name: dart.finalFieldType(core.String),
  message: dart.finalFieldType(dart.dynamic)
}));
dart.defineExtensionMethods(core.ArgumentError, ['toString']);
dart.defineExtensionAccessors(core.ArgumentError, ['invalidValue', 'name', 'message']);
var start = dart.privateName(core, "RangeError.start");
var end = dart.privateName(core, "RangeError.end");
core.RangeError = class RangeError extends core.ArgumentError {
  get start() {
    return this[start];
  }
  set start(value) {
    super.start = value;
  }
  get end() {
    return this[end];
  }
  set end(value) {
    super.end = value;
  }
  static checkValueInInterval(value, minValue, maxValue, name = null, message = null) {
    if (dart.notNull(value) < dart.notNull(minValue) || dart.notNull(value) > dart.notNull(maxValue)) {
      dart.throw(new core.RangeError.range(value, minValue, maxValue, name, message));
    }
    return value;
  }
  static checkValidIndex(index, indexable, name = null, length = null, message = null) {
    length == null ? length = core.int.as(dart.dload(indexable, 'length')) : null;
    if (0 > dart.notNull(index) || dart.notNull(index) >= dart.notNull(length)) {
      name == null ? name = "index" : null;
      dart.throw(new core.IndexError.new(index, indexable, name, message, length));
    }
    return index;
  }
  static checkValidRange(start, end, length, startName = null, endName = null, message = null) {
    if (0 > dart.notNull(start) || dart.notNull(start) > dart.notNull(length)) {
      startName == null ? startName = "start" : null;
      dart.throw(new core.RangeError.range(start, 0, length, startName, message));
    }
    if (end != null) {
      if (dart.notNull(start) > dart.notNull(end) || dart.notNull(end) > dart.notNull(length)) {
        endName == null ? endName = "end" : null;
        dart.throw(new core.RangeError.range(end, start, length, endName, message));
      }
      return end;
    }
    return length;
  }
  static checkNotNegative(value, name = null, message = null) {
    if (dart.notNull(value) < 0) dart.throw(new core.RangeError.range(value, 0, null, name, message));
    return value;
  }
  get [_errorName$]() {
    return "RangeError";
  }
  get [_errorExplanation$]() {
    if (!dart.test(this[_hasValue$])) dart.assertFailed(null, L74, 387, 12, "_hasValue");
    let explanation = "";
    if (this.start == null) {
      if (this.end != null) {
        explanation = ": Not less than or equal to " + dart.str(this.end);
      }
    } else if (this.end == null) {
      explanation = ": Not greater than or equal to " + dart.str(this.start);
    } else if (dart.notNull(this.end) > dart.notNull(this.start)) {
      explanation = ": Not in range " + dart.str(this.start) + ".." + dart.str(this.end) + ", inclusive";
    } else if (dart.notNull(this.end) < dart.notNull(this.start)) {
      explanation = ": Valid value range is empty";
    } else {
      explanation = ": Only valid value is " + dart.str(this.start);
    }
    return explanation;
  }
};
(core.RangeError.new = function(message) {
  this[start] = null;
  this[end] = null;
  core.RangeError.__proto__.new.call(this, message);
  ;
}).prototype = core.RangeError.prototype;
(core.RangeError.value = function(value, name = null, message = null) {
  this[start] = null;
  this[end] = null;
  core.RangeError.__proto__.value.call(this, value, name, message != null ? message : "Value not in range");
  ;
}).prototype = core.RangeError.prototype;
(core.RangeError.range = function(invalidValue, minValue, maxValue, name = null, message = null) {
  this[start] = minValue;
  this[end] = maxValue;
  core.RangeError.__proto__.value.call(this, invalidValue, name, message != null ? message : "Invalid value");
  ;
}).prototype = core.RangeError.prototype;
dart.addTypeTests(core.RangeError);
dart.addTypeCaches(core.RangeError);
dart.setLibraryUri(core.RangeError, L1$);
dart.setFieldSignature(core.RangeError, () => ({
  __proto__: dart.getFields(core.RangeError.__proto__),
  start: dart.finalFieldType(core.num),
  end: dart.finalFieldType(core.num)
}));
var indexable$ = dart.privateName(core, "IndexError.indexable");
var length$0 = dart.privateName(core, "IndexError.length");
core.IndexError = class IndexError extends core.ArgumentError {
  get indexable() {
    return this[indexable$];
  }
  set indexable(value) {
    super.indexable = value;
  }
  get length() {
    return this[length$0];
  }
  set length(value) {
    super.length = value;
  }
  get start() {
    return 0;
  }
  get end() {
    return dart.notNull(this.length) - 1;
  }
  get [_errorName$]() {
    return "RangeError";
  }
  get [_errorExplanation$]() {
    if (!dart.test(this[_hasValue$])) dart.assertFailed(null, L74, 443, 12, "_hasValue");
    let invalidValue = core.int.as(this[$invalidValue]);
    if (dart.notNull(invalidValue) < 0) {
      return ": index must not be negative";
    }
    if (this.length === 0) {
      return ": no indices are valid";
    }
    return ": index should be less than " + dart.str(this.length);
  }
};
(core.IndexError.new = function(invalidValue, indexable, name = null, message = null, length = null) {
  let t125;
  this[indexable$] = indexable;
  this[length$0] = core.int.as((t125 = length, t125 == null ? dart.dload(indexable, 'length') : t125));
  core.IndexError.__proto__.value.call(this, invalidValue, name, message != null ? message : "Index out of range");
  ;
}).prototype = core.IndexError.prototype;
dart.addTypeTests(core.IndexError);
dart.addTypeCaches(core.IndexError);
core.IndexError[dart.implements] = () => [core.RangeError];
dart.setGetterSignature(core.IndexError, () => ({
  __proto__: dart.getGetters(core.IndexError.__proto__),
  start: core.int,
  end: core.int
}));
dart.setLibraryUri(core.IndexError, L1$);
dart.setFieldSignature(core.IndexError, () => ({
  __proto__: dart.getFields(core.IndexError.__proto__),
  indexable: dart.finalFieldType(dart.dynamic),
  length: dart.finalFieldType(core.int)
}));
var _className = dart.privateName(core, "_className");
core.AbstractClassInstantiationError = class AbstractClassInstantiationError extends core.Error {
  toString() {
    return "Cannot instantiate abstract class: '" + dart.str(this[_className]) + "'";
  }
};
(core.AbstractClassInstantiationError.new = function(className) {
  this[_className] = className;
  core.AbstractClassInstantiationError.__proto__.new.call(this);
  ;
}).prototype = core.AbstractClassInstantiationError.prototype;
dart.addTypeTests(core.AbstractClassInstantiationError);
dart.addTypeCaches(core.AbstractClassInstantiationError);
dart.setLibraryUri(core.AbstractClassInstantiationError, L1$);
dart.setFieldSignature(core.AbstractClassInstantiationError, () => ({
  __proto__: dart.getFields(core.AbstractClassInstantiationError.__proto__),
  [_className]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(core.AbstractClassInstantiationError, ['toString']);
core.NoSuchMethodError = class NoSuchMethodError extends core.Error {
  toString() {
    let sb = new core.StringBuffer.new("");
    let comma = "";
    if (this[_arguments$] != null) {
      for (let argument of this[_arguments$]) {
        sb.write(comma);
        sb.write(core.Error.safeToString(argument));
        comma = ", ";
      }
    }
    if (this[_namedArguments$] != null) {
      this[_namedArguments$][$forEach](dart.fn((key, value) => {
        sb.write(comma);
        sb.write(core._symbolToString(key));
        sb.write(": ");
        sb.write(core.Error.safeToString(value));
        comma = ", ";
      }, SymbolLAnddynamicToNullN()));
    }
    let memberName = core._symbolToString(this[_memberName$]);
    let receiverText = core.Error.safeToString(this[_receiver$]);
    let actualParameters = dart.str(sb);
    let failureMessage = dart.InvocationImpl.is(this[_invocation$]) ? dart.InvocationImpl.as(this[_invocation$]).failureMessage : "method not found";
    if (this[_existingArgumentNames$] == null) {
      return "NoSuchMethodError: '" + dart.str(memberName) + "'\n" + dart.str(failureMessage) + "\n" + "Receiver: " + dart.str(receiverText) + "\n" + "Arguments: [" + actualParameters + "]";
    } else {
      let formalParameters = this[_existingArgumentNames$][$join](", ");
      return "NoSuchMethodError: incorrect number of arguments passed to " + "method named '" + dart.str(memberName) + "'\n" + "Receiver: " + dart.str(receiverText) + "\n" + "Tried calling: " + dart.str(memberName) + "(" + actualParameters + ")\n" + "Found: " + dart.str(memberName) + "(" + dart.str(formalParameters) + ")";
    }
  }
};
(core.NoSuchMethodError.withInvocation = function(receiver, invocation) {
  this[_receiver$] = receiver;
  this[_memberName$] = invocation.memberName;
  this[_arguments$] = invocation.positionalArguments;
  this[_namedArguments$] = invocation.namedArguments;
  this[_existingArgumentNames$] = null;
  this[_invocation$] = invocation;
  core.NoSuchMethodError.__proto__.new.call(this);
  ;
}).prototype = core.NoSuchMethodError.prototype;
(core.NoSuchMethodError.new = function(receiver, memberName, positionalArguments, namedArguments, existingArgumentNames = null) {
  this[_receiver$] = receiver;
  this[_memberName$] = memberName;
  this[_arguments$] = positionalArguments;
  this[_namedArguments$] = namedArguments;
  this[_existingArgumentNames$] = existingArgumentNames;
  this[_invocation$] = null;
  core.NoSuchMethodError.__proto__.new.call(this);
  ;
}).prototype = core.NoSuchMethodError.prototype;
dart.addTypeTests(core.NoSuchMethodError);
dart.addTypeCaches(core.NoSuchMethodError);
dart.setLibraryUri(core.NoSuchMethodError, L1$);
dart.setFieldSignature(core.NoSuchMethodError, () => ({
  __proto__: dart.getFields(core.NoSuchMethodError.__proto__),
  [_receiver$]: dart.finalFieldType(core.Object),
  [_memberName$]: dart.finalFieldType(core.Symbol),
  [_arguments$]: dart.finalFieldType(core.List),
  [_namedArguments$]: dart.finalFieldType(core.Map$(core.Symbol, dart.dynamic)),
  [_existingArgumentNames$]: dart.finalFieldType(core.List),
  [_invocation$]: dart.finalFieldType(core.Invocation)
}));
dart.defineExtensionMethods(core.NoSuchMethodError, ['toString']);
var message$13 = dart.privateName(core, "UnsupportedError.message");
core.UnsupportedError = class UnsupportedError extends core.Error {
  get message() {
    return this[message$13];
  }
  set message(value) {
    super.message = value;
  }
  toString() {
    return "Unsupported operation: " + dart.str(this.message);
  }
};
(core.UnsupportedError.new = function(message) {
  this[message$13] = message;
  core.UnsupportedError.__proto__.new.call(this);
  ;
}).prototype = core.UnsupportedError.prototype;
dart.addTypeTests(core.UnsupportedError);
dart.addTypeCaches(core.UnsupportedError);
dart.setLibraryUri(core.UnsupportedError, L1$);
dart.setFieldSignature(core.UnsupportedError, () => ({
  __proto__: dart.getFields(core.UnsupportedError.__proto__),
  message: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(core.UnsupportedError, ['toString']);
var message$14 = dart.privateName(core, "UnimplementedError.message");
core.UnimplementedError = class UnimplementedError extends core.Error {
  get message() {
    return this[message$14];
  }
  set message(value) {
    super.message = value;
  }
  toString() {
    return this.message != null ? "UnimplementedError: " + dart.str(this.message) : "UnimplementedError";
  }
};
(core.UnimplementedError.new = function(message = null) {
  this[message$14] = message;
  core.UnimplementedError.__proto__.new.call(this);
  ;
}).prototype = core.UnimplementedError.prototype;
dart.addTypeTests(core.UnimplementedError);
dart.addTypeCaches(core.UnimplementedError);
core.UnimplementedError[dart.implements] = () => [core.UnsupportedError];
dart.setLibraryUri(core.UnimplementedError, L1$);
dart.setFieldSignature(core.UnimplementedError, () => ({
  __proto__: dart.getFields(core.UnimplementedError.__proto__),
  message: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(core.UnimplementedError, ['toString']);
var message$15 = dart.privateName(core, "StateError.message");
core.StateError = class StateError extends core.Error {
  get message() {
    return this[message$15];
  }
  set message(value) {
    super.message = value;
  }
  toString() {
    return "Bad state: " + dart.str(this.message);
  }
};
(core.StateError.new = function(message) {
  this[message$15] = message;
  core.StateError.__proto__.new.call(this);
  ;
}).prototype = core.StateError.prototype;
dart.addTypeTests(core.StateError);
dart.addTypeCaches(core.StateError);
dart.setLibraryUri(core.StateError, L1$);
dart.setFieldSignature(core.StateError, () => ({
  __proto__: dart.getFields(core.StateError.__proto__),
  message: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(core.StateError, ['toString']);
var modifiedObject$ = dart.privateName(core, "ConcurrentModificationError.modifiedObject");
core.ConcurrentModificationError = class ConcurrentModificationError extends core.Error {
  get modifiedObject() {
    return this[modifiedObject$];
  }
  set modifiedObject(value) {
    super.modifiedObject = value;
  }
  toString() {
    if (this.modifiedObject == null) {
      return "Concurrent modification during iteration.";
    }
    return "Concurrent modification during iteration: " + dart.str(core.Error.safeToString(this.modifiedObject)) + ".";
  }
};
(core.ConcurrentModificationError.new = function(modifiedObject = null) {
  this[modifiedObject$] = modifiedObject;
  core.ConcurrentModificationError.__proto__.new.call(this);
  ;
}).prototype = core.ConcurrentModificationError.prototype;
dart.addTypeTests(core.ConcurrentModificationError);
dart.addTypeCaches(core.ConcurrentModificationError);
dart.setLibraryUri(core.ConcurrentModificationError, L1$);
dart.setFieldSignature(core.ConcurrentModificationError, () => ({
  __proto__: dart.getFields(core.ConcurrentModificationError.__proto__),
  modifiedObject: dart.finalFieldType(core.Object)
}));
dart.defineExtensionMethods(core.ConcurrentModificationError, ['toString']);
core.OutOfMemoryError = class OutOfMemoryError extends core.Object {
  toString() {
    return "Out of Memory";
  }
  get stackTrace() {
    return null;
  }
};
(core.OutOfMemoryError.new = function() {
  ;
}).prototype = core.OutOfMemoryError.prototype;
dart.addTypeTests(core.OutOfMemoryError);
dart.addTypeCaches(core.OutOfMemoryError);
core.OutOfMemoryError[dart.implements] = () => [core.Error];
dart.setGetterSignature(core.OutOfMemoryError, () => ({
  __proto__: dart.getGetters(core.OutOfMemoryError.__proto__),
  stackTrace: core.StackTrace,
  [$stackTrace]: core.StackTrace
}));
dart.setLibraryUri(core.OutOfMemoryError, L1$);
dart.defineExtensionMethods(core.OutOfMemoryError, ['toString']);
dart.defineExtensionAccessors(core.OutOfMemoryError, ['stackTrace']);
core.StackOverflowError = class StackOverflowError extends core.Object {
  toString() {
    return "Stack Overflow";
  }
  get stackTrace() {
    return null;
  }
};
(core.StackOverflowError.new = function() {
  ;
}).prototype = core.StackOverflowError.prototype;
dart.addTypeTests(core.StackOverflowError);
dart.addTypeCaches(core.StackOverflowError);
core.StackOverflowError[dart.implements] = () => [core.Error];
dart.setGetterSignature(core.StackOverflowError, () => ({
  __proto__: dart.getGetters(core.StackOverflowError.__proto__),
  stackTrace: core.StackTrace,
  [$stackTrace]: core.StackTrace
}));
dart.setLibraryUri(core.StackOverflowError, L1$);
dart.defineExtensionMethods(core.StackOverflowError, ['toString']);
dart.defineExtensionAccessors(core.StackOverflowError, ['stackTrace']);
var variableName$ = dart.privateName(core, "CyclicInitializationError.variableName");
core.CyclicInitializationError = class CyclicInitializationError extends core.Error {
  get variableName() {
    return this[variableName$];
  }
  set variableName(value) {
    super.variableName = value;
  }
  toString() {
    return this.variableName == null ? "Reading static variable during its initialization" : "Reading static variable '" + dart.str(this.variableName) + "' during its initialization";
  }
};
(core.CyclicInitializationError.new = function(variableName = null) {
  this[variableName$] = variableName;
  core.CyclicInitializationError.__proto__.new.call(this);
  ;
}).prototype = core.CyclicInitializationError.prototype;
dart.addTypeTests(core.CyclicInitializationError);
dart.addTypeCaches(core.CyclicInitializationError);
dart.setLibraryUri(core.CyclicInitializationError, L1$);
dart.setFieldSignature(core.CyclicInitializationError, () => ({
  __proto__: dart.getFields(core.CyclicInitializationError.__proto__),
  variableName: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(core.CyclicInitializationError, ['toString']);
core.LateInitializationError = class LateInitializationError extends core.Error {
  static __() {
    return dart.throw(new core.UnsupportedError.new(""));
  }
};
dart.addTypeTests(core.LateInitializationError);
dart.addTypeCaches(core.LateInitializationError);
dart.setLibraryUri(core.LateInitializationError, L1$);
core.Exception = class Exception extends core.Object {
  static new(message = null) {
    return new core._Exception.new(message);
  }
};
(core.Exception[dart.mixinNew] = function() {
}).prototype = core.Exception.prototype;
dart.addTypeTests(core.Exception);
dart.addTypeCaches(core.Exception);
dart.setLibraryUri(core.Exception, L1$);
core._Exception = class _Exception extends core.Object {
  toString() {
    if (this.message == null) return "Exception";
    return "Exception: " + dart.str(this.message);
  }
};
(core._Exception.new = function(message = null) {
  this.message = message;
  ;
}).prototype = core._Exception.prototype;
dart.addTypeTests(core._Exception);
dart.addTypeCaches(core._Exception);
core._Exception[dart.implements] = () => [core.Exception];
dart.setLibraryUri(core._Exception, L1$);
dart.setFieldSignature(core._Exception, () => ({
  __proto__: dart.getFields(core._Exception.__proto__),
  message: dart.finalFieldType(dart.dynamic)
}));
dart.defineExtensionMethods(core._Exception, ['toString']);
var message$16 = dart.privateName(core, "FormatException.message");
var source$ = dart.privateName(core, "FormatException.source");
var offset$ = dart.privateName(core, "FormatException.offset");
core.FormatException = class FormatException extends core.Object {
  get message() {
    return this[message$16];
  }
  set message(value) {
    super.message = value;
  }
  get source() {
    return this[source$];
  }
  set source(value) {
    super.source = value;
  }
  get offset() {
    return this[offset$];
  }
  set offset(value) {
    super.offset = value;
  }
  toString() {
    let report = "FormatException";
    if (this.message != null && "" !== this.message) {
      report = report + ": " + dart.str(this.message);
    }
    let offset = this.offset;
    let objectSource = this.source;
    if (typeof objectSource == 'string') {
      let source = objectSource;
      if (offset != null && (dart.notNull(offset) < 0 || dart.notNull(offset) > source.length)) {
        offset = null;
      }
      if (offset == null) {
        if (source.length > 78) {
          source = source[$substring](0, 75) + "...";
        }
        return report + "\n" + dart.str(source);
      }
      let lineNum = 1;
      let lineStart = 0;
      let previousCharWasCR = false;
      for (let i = 0; i < dart.notNull(offset); i = i + 1) {
        let char = source[$codeUnitAt](i);
        if (char === 10) {
          if (lineStart !== i || !previousCharWasCR) {
            lineNum = lineNum + 1;
          }
          lineStart = i + 1;
          previousCharWasCR = false;
        } else if (char === 13) {
          lineNum = lineNum + 1;
          lineStart = i + 1;
          previousCharWasCR = true;
        }
      }
      if (lineNum > 1) {
        report = report + (" (at line " + dart.str(lineNum) + ", character " + dart.str(dart.notNull(offset) - lineStart + 1) + ")\n");
      } else {
        report = report + (" (at character " + dart.str(dart.notNull(offset) + 1) + ")\n");
      }
      let lineEnd = source.length;
      for (let i = offset; dart.notNull(i) < source.length; i = dart.notNull(i) + 1) {
        let char = source[$codeUnitAt](i);
        if (char === 10 || char === 13) {
          lineEnd = i;
          break;
        }
      }
      let length = dart.notNull(lineEnd) - lineStart;
      let start = lineStart;
      let end = lineEnd;
      let prefix = "";
      let postfix = "";
      if (length > 78) {
        let index = dart.notNull(offset) - lineStart;
        if (index < 75) {
          end = start + 75;
          postfix = "...";
        } else if (dart.notNull(end) - dart.notNull(offset) < 75) {
          start = dart.notNull(end) - 75;
          prefix = "...";
        } else {
          start = dart.notNull(offset) - 36;
          end = dart.notNull(offset) + 36;
          prefix = postfix = "...";
        }
      }
      let slice = source[$substring](start, end);
      let markOffset = dart.notNull(offset) - start + prefix.length;
      return report + prefix + slice + postfix + "\n" + " "[$times](markOffset) + "^\n";
    } else {
      if (offset != null) {
        report = report + (" (at offset " + dart.str(offset) + ")");
      }
      return report;
    }
  }
};
(core.FormatException.new = function(message = "", source = null, offset = null) {
  this[message$16] = message;
  this[source$] = source;
  this[offset$] = offset;
  ;
}).prototype = core.FormatException.prototype;
dart.addTypeTests(core.FormatException);
dart.addTypeCaches(core.FormatException);
core.FormatException[dart.implements] = () => [core.Exception];
dart.setLibraryUri(core.FormatException, L1$);
dart.setFieldSignature(core.FormatException, () => ({
  __proto__: dart.getFields(core.FormatException.__proto__),
  message: dart.finalFieldType(core.String),
  source: dart.finalFieldType(dart.dynamic),
  offset: dart.finalFieldType(core.int)
}));
dart.defineExtensionMethods(core.FormatException, ['toString']);
core.IntegerDivisionByZeroException = class IntegerDivisionByZeroException extends core.Object {
  toString() {
    return "IntegerDivisionByZeroException";
  }
};
(core.IntegerDivisionByZeroException.new = function() {
  ;
}).prototype = core.IntegerDivisionByZeroException.prototype;
dart.addTypeTests(core.IntegerDivisionByZeroException);
dart.addTypeCaches(core.IntegerDivisionByZeroException);
core.IntegerDivisionByZeroException[dart.implements] = () => [core.Exception];
dart.setLibraryUri(core.IntegerDivisionByZeroException, L1$);
dart.defineExtensionMethods(core.IntegerDivisionByZeroException, ['toString']);
var _getKey$ = dart.privateName(core, "_getKey");
const _is_Expando_default = Symbol('_is_Expando_default');
var name$14 = dart.privateName(core, "Expando.name");
core.Expando$ = dart.generic(T => {
  class Expando extends core.Object {
    get name() {
      return this[name$14];
    }
    set name(value) {
      super.name = value;
    }
    [_getKey$]() {
      let t125;
      let key = core.String.as(_js_helper.Primitives.getProperty(this, "expando$key"));
      if (key == null) {
        key = "expando$key$" + dart.str((t125 = core.Expando._keyCount, core.Expando._keyCount = dart.notNull(t125) + 1, t125));
        _js_helper.Primitives.setProperty(this, "expando$key", key);
      }
      return key;
    }
    toString() {
      return "Expando:" + dart.str(this.name);
    }
    _get(object) {
      let values = _js_helper.Primitives.getProperty(object, "expando$values");
      return T.as(values == null ? null : _js_helper.Primitives.getProperty(values, this[_getKey$]()));
    }
    _set(object, value$) {
      let value = value$;
      T.as(value);
      let values = _js_helper.Primitives.getProperty(object, "expando$values");
      if (values == null) {
        values = new core.Object.new();
        _js_helper.Primitives.setProperty(object, "expando$values", values);
      }
      _js_helper.Primitives.setProperty(values, this[_getKey$](), value);
      return value$;
    }
  }
  (Expando.new = function(name = null) {
    this[name$14] = name;
    ;
  }).prototype = Expando.prototype;
  dart.addTypeTests(Expando);
  Expando.prototype[_is_Expando_default] = true;
  dart.addTypeCaches(Expando);
  dart.setMethodSignature(Expando, () => ({
    __proto__: dart.getMethods(Expando.__proto__),
    [_getKey$]: dart.fnType(core.String, []),
    _get: dart.fnType(T, [core.Object]),
    _set: dart.fnType(dart.void, [core.Object, core.Object])
  }));
  dart.setLibraryUri(Expando, L1$);
  dart.setFieldSignature(Expando, () => ({
    __proto__: dart.getFields(Expando.__proto__),
    name: dart.finalFieldType(core.String)
  }));
  dart.defineExtensionMethods(Expando, ['toString']);
  return Expando;
});
core.Expando = core.Expando$();
dart.defineLazy(core.Expando, {
  /*core.Expando._KEY_PROPERTY_NAME*/get _KEY_PROPERTY_NAME() {
    return "expando$key";
  },
  /*core.Expando._EXPANDO_PROPERTY_NAME*/get _EXPANDO_PROPERTY_NAME() {
    return "expando$values";
  },
  /*core.Expando._keyCount*/get _keyCount() {
    return 0;
  },
  set _keyCount(_) {}
}, true);
dart.addTypeTests(core.Expando, _is_Expando_default);
core.Function = class Function extends core.Object {
  static _toMangledNames(namedArguments) {
    let result = new (IdentityMapOfStringL$dynamic()).new();
    namedArguments[$forEach](dart.fn((symbol, value) => {
      result[$_set](core._symbolToString(symbol), value);
    }, SymbolLAnddynamicToNullN()));
    return result;
  }
  static is(o) {
    return typeof o == "function";
  }
  static as(o) {
    if (dart.dtest(typeof o == "function") || o == null) return o;
    return dart.as(o, core.Function);
  }
  static apply(f, positionalArguments, namedArguments = null) {
    positionalArguments == null ? positionalArguments = [] : null;
    if (namedArguments != null && dart.test(namedArguments[$isNotEmpty])) {
      let map = {};
      namedArguments[$forEach](dart.fn((symbol, arg) => {
        map[core._symbolToString(symbol)] = arg;
      }, SymbolLAnddynamicToNullN()));
      return dart.dcall(f, positionalArguments, map);
    }
    return dart.dcall(f, positionalArguments);
  }
};
(core.Function.new = function() {
  ;
}).prototype = core.Function.prototype;
dart.addTypeCaches(core.Function);
dart.setLibraryUri(core.Function, L1$);
var _positional = dart.privateName(core, "_positional");
var C421;
var _named = dart.privateName(core, "_named");
var C422;
core._Invocation = class _Invocation extends core.Object {
  get positionalArguments() {
    let t125;
    t125 = this[_positional];
    return t125 == null ? C421 || CT.C421 : t125;
  }
  get namedArguments() {
    let t125;
    t125 = this[_named];
    return t125 == null ? C422 || CT.C422 : t125;
  }
  get isMethod() {
    return this[_named] != null;
  }
  get isGetter() {
    return this[_positional] == null;
  }
  get isSetter() {
    return this[_positional] != null && this[_named] == null;
  }
  get isAccessor() {
    return this[_named] == null;
  }
  static _ensureNonNullTypes(types) {
    if (types == null) return C0 || CT.C0;
    for (let i = 0; i < dart.notNull(types[$length]); i = i + 1) {
      if (types[$_get](i) == null) {
        dart.throw(new core.ArgumentError.new("Type arguments must be non-null, was null at index " + dart.str(i) + "."));
      }
    }
    return types;
  }
  static _makeUnmodifiable(T, elements) {
    if (elements == null) return null;
    return core.List$(T).unmodifiable(elements);
  }
};
(core._Invocation.method = function(memberName, types, positional, named) {
  let t125;
  this.memberName = memberName;
  this.typeArguments = core._Invocation._ensureNonNullTypes(core._Invocation._makeUnmodifiable(core.Type, types));
  this[_positional] = (t125 = core._Invocation._makeUnmodifiable(core.Object, positional), t125 == null ? C421 || CT.C421 : t125);
  this[_named] = named == null || dart.test(named[$isEmpty]) ? C422 || CT.C422 : MapOfSymbolL$ObjectL().unmodifiable(named);
  ;
}).prototype = core._Invocation.prototype;
(core._Invocation.getter = function(memberName) {
  this.memberName = memberName;
  this.typeArguments = C0 || CT.C0;
  this[_positional] = null;
  this[_named] = null;
  ;
}).prototype = core._Invocation.prototype;
(core._Invocation.setter = function(memberName, argument) {
  this.memberName = memberName;
  this.typeArguments = C0 || CT.C0;
  this[_positional] = ListOfObjectL().unmodifiable([argument]);
  this[_named] = null;
  ;
}).prototype = core._Invocation.prototype;
dart.addTypeTests(core._Invocation);
dart.addTypeCaches(core._Invocation);
core._Invocation[dart.implements] = () => [core.Invocation];
dart.setGetterSignature(core._Invocation, () => ({
  __proto__: dart.getGetters(core._Invocation.__proto__),
  positionalArguments: core.List,
  namedArguments: core.Map$(core.Symbol, dart.dynamic),
  isMethod: core.bool,
  isGetter: core.bool,
  isSetter: core.bool,
  isAccessor: core.bool
}));
dart.setLibraryUri(core._Invocation, L1$);
dart.setFieldSignature(core._Invocation, () => ({
  __proto__: dart.getFields(core._Invocation.__proto__),
  memberName: dart.finalFieldType(core.Symbol),
  typeArguments: dart.finalFieldType(core.List$(core.Type)),
  [_positional]: dart.finalFieldType(core.List$(core.Object)),
  [_named]: dart.finalFieldType(core.Map$(core.Symbol, core.Object))
}));
var _generator = dart.privateName(core, "_generator");
var C423;
const _is__GeneratorIterable_default = Symbol('_is__GeneratorIterable_default');
var length$1 = dart.privateName(core, "_GeneratorIterable.length");
core._GeneratorIterable$ = dart.generic(E => {
  var intLToLEL = () => (intLToLEL = dart.constFn(dart.fnType(E, [core.int])))();
  class _GeneratorIterable extends _internal.ListIterable$(E) {
    get length() {
      return this[length$1];
    }
    set length(value) {
      super.length = value;
    }
    elementAt(index) {
      let t125;
      core.RangeError.checkValidIndex(index, this);
      t125 = index;
      return this[_generator](t125);
    }
    static _id(n) {
      return n;
    }
  }
  (_GeneratorIterable.new = function(length, generator) {
    this[length$1] = length;
    this[_generator] = generator != null ? generator : intLToLEL().as(C423 || CT.C423);
    _GeneratorIterable.__proto__.new.call(this);
    ;
  }).prototype = _GeneratorIterable.prototype;
  dart.addTypeTests(_GeneratorIterable);
  _GeneratorIterable.prototype[_is__GeneratorIterable_default] = true;
  dart.addTypeCaches(_GeneratorIterable);
  dart.setLibraryUri(_GeneratorIterable, L1$);
  dart.setFieldSignature(_GeneratorIterable, () => ({
    __proto__: dart.getFields(_GeneratorIterable.__proto__),
    length: dart.finalFieldType(core.int),
    [_generator]: dart.finalFieldType(dart.fnType(E, [core.int]))
  }));
  dart.defineExtensionMethods(_GeneratorIterable, ['elementAt']);
  dart.defineExtensionAccessors(_GeneratorIterable, ['length']);
  return _GeneratorIterable;
});
core._GeneratorIterable = core._GeneratorIterable$();
dart.addTypeTests(core._GeneratorIterable, _is__GeneratorIterable_default);
const _is_BidirectionalIterator_default = Symbol('_is_BidirectionalIterator_default');
core.BidirectionalIterator$ = dart.generic(E => {
  class BidirectionalIterator extends core.Object {}
  (BidirectionalIterator.new = function() {
    ;
  }).prototype = BidirectionalIterator.prototype;
  dart.addTypeTests(BidirectionalIterator);
  BidirectionalIterator.prototype[_is_BidirectionalIterator_default] = true;
  dart.addTypeCaches(BidirectionalIterator);
  BidirectionalIterator[dart.implements] = () => [core.Iterator$(E)];
  dart.setLibraryUri(BidirectionalIterator, L1$);
  return BidirectionalIterator;
});
core.BidirectionalIterator = core.BidirectionalIterator$();
dart.addTypeTests(core.BidirectionalIterator, _is_BidirectionalIterator_default);
const _is_MapEntry_default = Symbol('_is_MapEntry_default');
var key$0 = dart.privateName(core, "MapEntry.key");
var value$4 = dart.privateName(core, "MapEntry.value");
core.MapEntry$ = dart.generic((K, V) => {
  class MapEntry extends core.Object {
    get key() {
      return this[key$0];
    }
    set key(value) {
      super.key = value;
    }
    get value() {
      return this[value$4];
    }
    set value(value) {
      super.value = value;
    }
    toString() {
      return "MapEntry(" + dart.str(this.key) + ": " + dart.str(this.value) + ")";
    }
  }
  (MapEntry.__ = function(key, value) {
    this[key$0] = key;
    this[value$4] = value;
    ;
  }).prototype = MapEntry.prototype;
  dart.addTypeTests(MapEntry);
  MapEntry.prototype[_is_MapEntry_default] = true;
  dart.addTypeCaches(MapEntry);
  dart.setLibraryUri(MapEntry, L1$);
  dart.setFieldSignature(MapEntry, () => ({
    __proto__: dart.getFields(MapEntry.__proto__),
    key: dart.finalFieldType(K),
    value: dart.finalFieldType(V)
  }));
  dart.defineExtensionMethods(MapEntry, ['toString']);
  return MapEntry;
});
core.MapEntry = core.MapEntry$();
dart.addTypeTests(core.MapEntry, _is_MapEntry_default);
core.Null = class Null extends core.Object {
  static is(o) {
    return o == null;
  }
  static as(o) {
    if (o == null) return o;
    return dart.as(o, core.Null);
  }
  get hashCode() {
    return super[$hashCode];
  }
  toString() {
    return "null";
  }
};
(core.Null[dart.mixinNew] = function() {
}).prototype = core.Null.prototype;
dart.addTypeCaches(core.Null);
dart.setLibraryUri(core.Null, L1$);
dart.defineExtensionMethods(core.Null, ['toString']);
dart.defineExtensionAccessors(core.Null, ['hashCode']);
core.Pattern = class Pattern extends core.Object {};
(core.Pattern.new = function() {
  ;
}).prototype = core.Pattern.prototype;
dart.addTypeTests(core.Pattern);
dart.addTypeCaches(core.Pattern);
dart.setLibraryUri(core.Pattern, L1$);
core.RegExp = class RegExp extends core.Object {
  static new(source, opts) {
    let multiLine = opts && 'multiLine' in opts ? opts.multiLine : false;
    let caseSensitive = opts && 'caseSensitive' in opts ? opts.caseSensitive : true;
    let unicode = opts && 'unicode' in opts ? opts.unicode : false;
    let dotAll = opts && 'dotAll' in opts ? opts.dotAll : false;
    return new _js_helper.JSSyntaxRegExp.new(source, {multiLine: multiLine, caseSensitive: caseSensitive, unicode: unicode, dotAll: dotAll});
  }
  static escape(text) {
    return _js_helper.quoteStringForRegExp(text);
  }
};
(core.RegExp[dart.mixinNew] = function() {
}).prototype = core.RegExp.prototype;
dart.addTypeTests(core.RegExp);
dart.addTypeCaches(core.RegExp);
core.RegExp[dart.implements] = () => [core.Pattern];
dart.setLibraryUri(core.RegExp, L1$);
const _is_Set_default = Symbol('_is_Set_default');
core.Set$ = dart.generic(E => {
  class Set extends _internal.EfficientLengthIterable$(E) {
    static castFrom(S, T, source, opts) {
      let newSet = opts && 'newSet' in opts ? opts.newSet : null;
      return new (_internal.CastSet$(S, T)).new(source, newSet);
    }
  }
  dart.addTypeTests(Set);
  Set.prototype[_is_Set_default] = true;
  dart.addTypeCaches(Set);
  dart.setLibraryUri(Set, L1$);
  return Set;
});
core.Set = core.Set$();
dart.addTypeTests(core.Set, _is_Set_default);
const _is_Sink_default = Symbol('_is_Sink_default');
core.Sink$ = dart.generic(T => {
  class Sink extends core.Object {}
  (Sink.new = function() {
    ;
  }).prototype = Sink.prototype;
  dart.addTypeTests(Sink);
  Sink.prototype[_is_Sink_default] = true;
  dart.addTypeCaches(Sink);
  dart.setLibraryUri(Sink, L1$);
  return Sink;
});
core.Sink = core.Sink$();
dart.addTypeTests(core.Sink, _is_Sink_default);
var _StringStackTrace__stackTrace = dart.privateName(core, "_StringStackTrace._stackTrace");
var C424;
core.StackTrace = class StackTrace extends core.Object {
  static get current() {
    return dart.stackTrace(Error());
  }
};
(core.StackTrace.new = function() {
  ;
}).prototype = core.StackTrace.prototype;
dart.addTypeTests(core.StackTrace);
dart.addTypeCaches(core.StackTrace);
dart.setLibraryUri(core.StackTrace, L1$);
dart.defineLazy(core.StackTrace, {
  /*core.StackTrace.empty*/get empty() {
    return C424 || CT.C424;
  }
}, true);
var _stackTrace = dart.privateName(core, "_stackTrace");
core._StringStackTrace = class _StringStackTrace extends core.Object {
  get [_stackTrace]() {
    return this[_stackTrace$];
  }
  set [_stackTrace](value) {
    super[_stackTrace] = value;
  }
  toString() {
    return this[_stackTrace];
  }
};
(core._StringStackTrace.new = function(_stackTrace) {
  this[_stackTrace$] = _stackTrace;
  ;
}).prototype = core._StringStackTrace.prototype;
dart.addTypeTests(core._StringStackTrace);
dart.addTypeCaches(core._StringStackTrace);
const _stackTrace$ = _StringStackTrace__stackTrace;
core._StringStackTrace[dart.implements] = () => [core.StackTrace];
dart.setLibraryUri(core._StringStackTrace, L1$);
dart.setFieldSignature(core._StringStackTrace, () => ({
  __proto__: dart.getFields(core._StringStackTrace.__proto__),
  [_stackTrace]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(core._StringStackTrace, ['toString']);
var _start$3 = dart.privateName(core, "_start");
var _stop = dart.privateName(core, "_stop");
core.Stopwatch = class Stopwatch extends core.Object {
  get frequency() {
    return core.Stopwatch._frequency;
  }
  start() {
    if (this[_stop] != null) {
      this[_start$3] = dart.notNull(this[_start$3]) + (dart.notNull(core.Stopwatch._now()) - dart.notNull(this[_stop]));
      this[_stop] = null;
    }
  }
  stop() {
    this[_stop] == null ? this[_stop] = core.Stopwatch._now() : null;
  }
  reset() {
    let t125;
    this[_start$3] = (t125 = this[_stop], t125 == null ? core.Stopwatch._now() : t125);
  }
  get elapsedTicks() {
    let t125;
    return dart.notNull((t125 = this[_stop], t125 == null ? core.Stopwatch._now() : t125)) - dart.notNull(this[_start$3]);
  }
  get elapsed() {
    return new core.Duration.new({microseconds: this.elapsedMicroseconds});
  }
  get elapsedMicroseconds() {
    let ticks = this.elapsedTicks;
    if (core.Stopwatch._frequency === 1000000) return ticks;
    if (!(core.Stopwatch._frequency === 1000)) dart.assertFailed(null, L72, 455, 12, "_frequency == 1000");
    return dart.notNull(ticks) * 1000;
  }
  get elapsedMilliseconds() {
    let ticks = this.elapsedTicks;
    if (core.Stopwatch._frequency === 1000) return ticks;
    if (!(core.Stopwatch._frequency === 1000000)) dart.assertFailed(null, L72, 463, 12, "_frequency == 1000000");
    return (dart.notNull(ticks) / 1000)[$truncate]();
  }
  get isRunning() {
    return this[_stop] == null;
  }
  static _initTicker() {
    _js_helper.Primitives.initTicker();
    core.Stopwatch._frequency = _js_helper.Primitives.timerFrequency;
  }
  static _now() {
    return dart.asNullableInt(_js_helper.Primitives.timerTicks());
  }
};
(core.Stopwatch.new = function() {
  this[_start$3] = 0;
  this[_stop] = 0;
  if (core.Stopwatch._frequency == null) core.Stopwatch._initTicker();
}).prototype = core.Stopwatch.prototype;
dart.addTypeTests(core.Stopwatch);
dart.addTypeCaches(core.Stopwatch);
dart.setMethodSignature(core.Stopwatch, () => ({
  __proto__: dart.getMethods(core.Stopwatch.__proto__),
  start: dart.fnType(dart.void, []),
  stop: dart.fnType(dart.void, []),
  reset: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(core.Stopwatch, () => ({
  __proto__: dart.getGetters(core.Stopwatch.__proto__),
  frequency: core.int,
  elapsedTicks: core.int,
  elapsed: core.Duration,
  elapsedMicroseconds: core.int,
  elapsedMilliseconds: core.int,
  isRunning: core.bool
}));
dart.setLibraryUri(core.Stopwatch, L1$);
dart.setFieldSignature(core.Stopwatch, () => ({
  __proto__: dart.getFields(core.Stopwatch.__proto__),
  [_start$3]: dart.fieldType(core.int),
  [_stop]: dart.fieldType(core.int)
}));
dart.defineLazy(core.Stopwatch, {
  /*core.Stopwatch._frequency*/get _frequency() {
    return null;
  },
  set _frequency(_) {}
}, true);
var string$ = dart.privateName(core, "Runes.string");
core.Runes = class Runes extends core.Iterable$(core.int) {
  get string() {
    return this[string$];
  }
  set string(value) {
    super.string = value;
  }
  get iterator() {
    return new core.RuneIterator.new(this.string);
  }
  get last() {
    if (this.string.length === 0) {
      dart.throw(new core.StateError.new("No elements."));
    }
    let length = this.string.length;
    let code = this.string[$codeUnitAt](length - 1);
    if (dart.test(core._isTrailSurrogate(code)) && this.string.length > 1) {
      let previousCode = this.string[$codeUnitAt](length - 2);
      if (dart.test(core._isLeadSurrogate(previousCode))) {
        return core._combineSurrogatePair(previousCode, code);
      }
    }
    return code;
  }
};
(core.Runes.new = function(string) {
  this[string$] = string;
  core.Runes.__proto__.new.call(this);
  ;
}).prototype = core.Runes.prototype;
dart.addTypeTests(core.Runes);
dart.addTypeCaches(core.Runes);
dart.setGetterSignature(core.Runes, () => ({
  __proto__: dart.getGetters(core.Runes.__proto__),
  iterator: core.RuneIterator,
  [$iterator]: core.RuneIterator
}));
dart.setLibraryUri(core.Runes, L1$);
dart.setFieldSignature(core.Runes, () => ({
  __proto__: dart.getFields(core.Runes.__proto__),
  string: dart.finalFieldType(core.String)
}));
dart.defineExtensionAccessors(core.Runes, ['iterator', 'last']);
var _currentCodePoint = dart.privateName(core, "_currentCodePoint");
var _position$1 = dart.privateName(core, "_position");
var _nextPosition = dart.privateName(core, "_nextPosition");
var _checkSplitSurrogate = dart.privateName(core, "_checkSplitSurrogate");
var string$0 = dart.privateName(core, "RuneIterator.string");
core.RuneIterator = class RuneIterator extends core.Object {
  get string() {
    return this[string$0];
  }
  set string(value) {
    super.string = value;
  }
  [_checkSplitSurrogate](index) {
    if (dart.notNull(index) > 0 && dart.notNull(index) < this.string.length && dart.test(core._isLeadSurrogate(this.string[$codeUnitAt](dart.notNull(index) - 1))) && dart.test(core._isTrailSurrogate(this.string[$codeUnitAt](index)))) {
      dart.throw(new core.ArgumentError.new("Index inside surrogate pair: " + dart.str(index)));
    }
  }
  get rawIndex() {
    return this[_position$1] != this[_nextPosition] ? this[_position$1] : -1;
  }
  set rawIndex(rawIndex) {
    core.RangeError.checkValidIndex(rawIndex, this.string, "rawIndex");
    this.reset(rawIndex);
    this.moveNext();
  }
  reset(rawIndex = 0) {
    core.RangeError.checkValueInInterval(rawIndex, 0, this.string.length, "rawIndex");
    this[_checkSplitSurrogate](rawIndex);
    this[_position$1] = this[_nextPosition] = rawIndex;
    this[_currentCodePoint] = -1;
  }
  get current() {
    return this[_currentCodePoint];
  }
  get currentSize() {
    return dart.notNull(this[_nextPosition]) - dart.notNull(this[_position$1]);
  }
  get currentAsString() {
    if (this[_position$1] == this[_nextPosition]) return "";
    if (dart.notNull(this[_position$1]) + 1 === this[_nextPosition]) return this.string[$_get](this[_position$1]);
    return this.string[$substring](this[_position$1], this[_nextPosition]);
  }
  moveNext() {
    this[_position$1] = this[_nextPosition];
    if (this[_position$1] === this.string.length) {
      this[_currentCodePoint] = -1;
      return false;
    }
    let codeUnit = this.string[$codeUnitAt](this[_position$1]);
    let nextPosition = dart.notNull(this[_position$1]) + 1;
    if (dart.test(core._isLeadSurrogate(codeUnit)) && nextPosition < this.string.length) {
      let nextCodeUnit = this.string[$codeUnitAt](nextPosition);
      if (dart.test(core._isTrailSurrogate(nextCodeUnit))) {
        this[_nextPosition] = nextPosition + 1;
        this[_currentCodePoint] = core._combineSurrogatePair(codeUnit, nextCodeUnit);
        return true;
      }
    }
    this[_nextPosition] = nextPosition;
    this[_currentCodePoint] = codeUnit;
    return true;
  }
  movePrevious() {
    this[_nextPosition] = this[_position$1];
    if (this[_position$1] === 0) {
      this[_currentCodePoint] = -1;
      return false;
    }
    let position = dart.notNull(this[_position$1]) - 1;
    let codeUnit = this.string[$codeUnitAt](position);
    if (dart.test(core._isTrailSurrogate(codeUnit)) && position > 0) {
      let prevCodeUnit = this.string[$codeUnitAt](position - 1);
      if (dart.test(core._isLeadSurrogate(prevCodeUnit))) {
        this[_position$1] = position - 1;
        this[_currentCodePoint] = core._combineSurrogatePair(prevCodeUnit, codeUnit);
        return true;
      }
    }
    this[_position$1] = position;
    this[_currentCodePoint] = codeUnit;
    return true;
  }
};
(core.RuneIterator.new = function(string) {
  this[_currentCodePoint] = -1;
  this[string$0] = string;
  this[_position$1] = 0;
  this[_nextPosition] = 0;
  ;
}).prototype = core.RuneIterator.prototype;
(core.RuneIterator.at = function(string, index) {
  this[_currentCodePoint] = -1;
  this[string$0] = string;
  this[_position$1] = index;
  this[_nextPosition] = index;
  core.RangeError.checkValueInInterval(index, 0, string.length);
  this[_checkSplitSurrogate](index);
}).prototype = core.RuneIterator.prototype;
dart.addTypeTests(core.RuneIterator);
dart.addTypeCaches(core.RuneIterator);
core.RuneIterator[dart.implements] = () => [core.BidirectionalIterator$(core.int)];
dart.setMethodSignature(core.RuneIterator, () => ({
  __proto__: dart.getMethods(core.RuneIterator.__proto__),
  [_checkSplitSurrogate]: dart.fnType(dart.void, [core.int]),
  reset: dart.fnType(dart.void, [], [core.int]),
  moveNext: dart.fnType(core.bool, []),
  movePrevious: dart.fnType(core.bool, [])
}));
dart.setGetterSignature(core.RuneIterator, () => ({
  __proto__: dart.getGetters(core.RuneIterator.__proto__),
  rawIndex: core.int,
  current: core.int,
  currentSize: core.int,
  currentAsString: core.String
}));
dart.setSetterSignature(core.RuneIterator, () => ({
  __proto__: dart.getSetters(core.RuneIterator.__proto__),
  rawIndex: core.int
}));
dart.setLibraryUri(core.RuneIterator, L1$);
dart.setFieldSignature(core.RuneIterator, () => ({
  __proto__: dart.getFields(core.RuneIterator.__proto__),
  string: dart.finalFieldType(core.String),
  [_position$1]: dart.fieldType(core.int),
  [_nextPosition]: dart.fieldType(core.int),
  [_currentCodePoint]: dart.fieldType(core.int)
}));
var C425;
var C426;
core.Symbol = class Symbol extends core.Object {};
(core.Symbol[dart.mixinNew] = function() {
}).prototype = core.Symbol.prototype;
dart.addTypeTests(core.Symbol);
dart.addTypeCaches(core.Symbol);
dart.setLibraryUri(core.Symbol, L1$);
dart.defineLazy(core.Symbol, {
  /*core.Symbol.unaryMinus*/get unaryMinus() {
    return C425 || CT.C425;
  },
  /*core.Symbol.empty*/get empty() {
    return C426 || CT.C426;
  }
}, true);
core.Uri = class Uri extends core.Object {
  static get base() {
    let uri = _js_helper.Primitives.currentUri();
    if (uri != null) return core.Uri.parse(uri);
    dart.throw(new core.UnsupportedError.new("'Uri.base' is not supported"));
  }
  static dataFromString(content, opts) {
    let mimeType = opts && 'mimeType' in opts ? opts.mimeType : null;
    let encoding = opts && 'encoding' in opts ? opts.encoding : null;
    let parameters = opts && 'parameters' in opts ? opts.parameters : null;
    let base64 = opts && 'base64' in opts ? opts.base64 : false;
    let data = core.UriData.fromString(content, {mimeType: mimeType, encoding: encoding, parameters: parameters, base64: base64});
    return data.uri;
  }
  static dataFromBytes(bytes, opts) {
    let mimeType = opts && 'mimeType' in opts ? opts.mimeType : "application/octet-stream";
    let parameters = opts && 'parameters' in opts ? opts.parameters : null;
    let percentEncoded = opts && 'percentEncoded' in opts ? opts.percentEncoded : false;
    let data = core.UriData.fromBytes(bytes, {mimeType: mimeType, parameters: parameters, percentEncoded: percentEncoded});
    return data.uri;
  }
  get hasScheme() {
    return this.scheme[$isNotEmpty];
  }
  static parse(uri, start = 0, end = null) {
    let t125;
    end == null ? end = uri.length : null;
    if (dart.notNull(end) >= dart.notNull(start) + 5) {
      let dataDelta = core._startsWithData(uri, start);
      if (dataDelta === 0) {
        if (dart.notNull(start) > 0 || dart.notNull(end) < uri.length) uri = uri[$substring](start, end);
        return core.UriData._parse(uri, 5, null).uri;
      } else if (dataDelta === 32) {
        return core.UriData._parse(uri[$substring](dart.notNull(start) + 5, end), 0, null).uri;
      }
    }
    let indices = ListOfintL().new(8);
    t125 = indices;
    t125[$_set](0, 0);
    t125[$_set](1, dart.notNull(start) - 1);
    t125[$_set](2, dart.notNull(start) - 1);
    t125[$_set](7, dart.notNull(start) - 1);
    t125[$_set](3, start);
    t125[$_set](4, start);
    t125[$_set](5, end);
    t125[$_set](6, end);
    t125;
    let state = core._scan(uri, start, end, 0, indices);
    if (dart.notNull(state) >= 14) {
      indices[$_set](7, end);
    }
    let schemeEnd = indices[$_get](1);
    if (dart.notNull(schemeEnd) >= dart.notNull(start)) {
      state = core._scan(uri, start, schemeEnd, 20, indices);
      if (state === 20) {
        indices[$_set](7, schemeEnd);
      }
    }
    let hostStart = dart.notNull(indices[$_get](2)) + 1;
    let portStart = indices[$_get](3);
    let pathStart = indices[$_get](4);
    let queryStart = indices[$_get](5);
    let fragmentStart = indices[$_get](6);
    let scheme = null;
    if (dart.notNull(fragmentStart) < dart.notNull(queryStart)) queryStart = fragmentStart;
    if (dart.notNull(pathStart) < hostStart) {
      pathStart = queryStart;
    } else if (dart.notNull(pathStart) <= dart.notNull(schemeEnd)) {
      pathStart = dart.notNull(schemeEnd) + 1;
    }
    if (dart.notNull(portStart) < hostStart) portStart = pathStart;
    if (!(hostStart === start || dart.notNull(schemeEnd) <= hostStart)) dart.assertFailed(null, L75, 876, 12, "hostStart == start || schemeEnd <= hostStart");
    if (!(hostStart <= dart.notNull(portStart))) dart.assertFailed(null, L75, 877, 12, "hostStart <= portStart");
    if (!(dart.notNull(schemeEnd) <= dart.notNull(pathStart))) dart.assertFailed(null, L75, 878, 12, "schemeEnd <= pathStart");
    if (!(dart.notNull(portStart) <= dart.notNull(pathStart))) dart.assertFailed(null, L75, 879, 12, "portStart <= pathStart");
    if (!(dart.notNull(pathStart) <= dart.notNull(queryStart))) dart.assertFailed(null, L75, 880, 12, "pathStart <= queryStart");
    if (!(dart.notNull(queryStart) <= dart.notNull(fragmentStart))) dart.assertFailed(null, L75, 881, 12, "queryStart <= fragmentStart");
    let isSimple = dart.notNull(indices[$_get](7)) < dart.notNull(start);
    if (isSimple) {
      if (hostStart > dart.notNull(schemeEnd) + 3) {
        isSimple = false;
      } else if (dart.notNull(portStart) > dart.notNull(start) && dart.notNull(portStart) + 1 === pathStart) {
        isSimple = false;
      } else if (dart.notNull(queryStart) < dart.notNull(end) && queryStart === dart.notNull(pathStart) + 2 && uri[$startsWith]("..", pathStart) || dart.notNull(queryStart) > dart.notNull(pathStart) + 2 && uri[$startsWith]("/..", dart.notNull(queryStart) - 3)) {
        isSimple = false;
      } else {
        if (schemeEnd === dart.notNull(start) + 4) {
          if (uri[$startsWith]("file", start)) {
            scheme = "file";
            if (hostStart <= dart.notNull(start)) {
              let schemeAuth = "file://";
              let delta = 2;
              if (!uri[$startsWith]("/", pathStart)) {
                schemeAuth = "file:///";
                delta = 3;
              }
              uri = schemeAuth + uri[$substring](pathStart, end);
              schemeEnd = dart.notNull(schemeEnd) - dart.notNull(start);
              hostStart = 7;
              portStart = 7;
              pathStart = 7;
              queryStart = dart.notNull(queryStart) + (delta - dart.notNull(start));
              fragmentStart = dart.notNull(fragmentStart) + (delta - dart.notNull(start));
              start = 0;
              end = uri.length;
            } else if (pathStart == queryStart) {
              if (start === 0 && end === uri.length) {
                uri = uri[$replaceRange](pathStart, queryStart, "/");
                queryStart = dart.notNull(queryStart) + 1;
                fragmentStart = dart.notNull(fragmentStart) + 1;
                end = dart.notNull(end) + 1;
              } else {
                uri = uri[$substring](start, pathStart) + "/" + uri[$substring](queryStart, end);
                schemeEnd = dart.notNull(schemeEnd) - dart.notNull(start);
                hostStart = hostStart - dart.notNull(start);
                portStart = dart.notNull(portStart) - dart.notNull(start);
                pathStart = dart.notNull(pathStart) - dart.notNull(start);
                queryStart = dart.notNull(queryStart) + (1 - dart.notNull(start));
                fragmentStart = dart.notNull(fragmentStart) + (1 - dart.notNull(start));
                start = 0;
                end = uri.length;
              }
            }
          } else if (uri[$startsWith]("http", start)) {
            scheme = "http";
            if (dart.notNull(portStart) > dart.notNull(start) && dart.notNull(portStart) + 3 === pathStart && uri[$startsWith]("80", dart.notNull(portStart) + 1)) {
              if (start === 0 && end === uri.length) {
                uri = uri[$replaceRange](portStart, pathStart, "");
                pathStart = dart.notNull(pathStart) - 3;
                queryStart = dart.notNull(queryStart) - 3;
                fragmentStart = dart.notNull(fragmentStart) - 3;
                end = dart.notNull(end) - 3;
              } else {
                uri = uri[$substring](start, portStart) + uri[$substring](pathStart, end);
                schemeEnd = dart.notNull(schemeEnd) - dart.notNull(start);
                hostStart = hostStart - dart.notNull(start);
                portStart = dart.notNull(portStart) - dart.notNull(start);
                pathStart = dart.notNull(pathStart) - (3 + dart.notNull(start));
                queryStart = dart.notNull(queryStart) - (3 + dart.notNull(start));
                fragmentStart = dart.notNull(fragmentStart) - (3 + dart.notNull(start));
                start = 0;
                end = uri.length;
              }
            }
          }
        } else if (schemeEnd === dart.notNull(start) + 5 && uri[$startsWith]("https", start)) {
          scheme = "https";
          if (dart.notNull(portStart) > dart.notNull(start) && dart.notNull(portStart) + 4 === pathStart && uri[$startsWith]("443", dart.notNull(portStart) + 1)) {
            if (start === 0 && end === uri.length) {
              uri = uri[$replaceRange](portStart, pathStart, "");
              pathStart = dart.notNull(pathStart) - 4;
              queryStart = dart.notNull(queryStart) - 4;
              fragmentStart = dart.notNull(fragmentStart) - 4;
              end = dart.notNull(end) - 3;
            } else {
              uri = uri[$substring](start, portStart) + uri[$substring](pathStart, end);
              schemeEnd = dart.notNull(schemeEnd) - dart.notNull(start);
              hostStart = hostStart - dart.notNull(start);
              portStart = dart.notNull(portStart) - dart.notNull(start);
              pathStart = dart.notNull(pathStart) - (4 + dart.notNull(start));
              queryStart = dart.notNull(queryStart) - (4 + dart.notNull(start));
              fragmentStart = dart.notNull(fragmentStart) - (4 + dart.notNull(start));
              start = 0;
              end = uri.length;
            }
          }
        }
      }
    }
    if (isSimple) {
      if (dart.notNull(start) > 0 || dart.notNull(end) < uri.length) {
        uri = uri[$substring](start, end);
        schemeEnd = dart.notNull(schemeEnd) - dart.notNull(start);
        hostStart = hostStart - dart.notNull(start);
        portStart = dart.notNull(portStart) - dart.notNull(start);
        pathStart = dart.notNull(pathStart) - dart.notNull(start);
        queryStart = dart.notNull(queryStart) - dart.notNull(start);
        fragmentStart = dart.notNull(fragmentStart) - dart.notNull(start);
      }
      return new core._SimpleUri.new(uri, schemeEnd, hostStart, portStart, pathStart, queryStart, fragmentStart, scheme);
    }
    return core._Uri.notSimple(uri, start, end, schemeEnd, hostStart, portStart, pathStart, queryStart, fragmentStart, scheme);
  }
  static tryParse(uri, start = 0, end = null) {
    try {
      return core.Uri.parse(uri, start, end);
    } catch (e) {
      let ex = dart.getThrown(e);
      if (core.FormatException.is(ex)) {
        return null;
      } else
        throw e;
    }
  }
  static encodeComponent(component) {
    return core._Uri._uriEncode(core._Uri._unreserved2396Table, component, convert.utf8, false);
  }
  static encodeQueryComponent(component, opts) {
    let encoding = opts && 'encoding' in opts ? opts.encoding : C108 || CT.C108;
    return core._Uri._uriEncode(core._Uri._unreservedTable, component, encoding, true);
  }
  static decodeComponent(encodedComponent) {
    return core._Uri._uriDecode(encodedComponent, 0, encodedComponent.length, convert.utf8, false);
  }
  static decodeQueryComponent(encodedComponent, opts) {
    let encoding = opts && 'encoding' in opts ? opts.encoding : C108 || CT.C108;
    return core._Uri._uriDecode(encodedComponent, 0, encodedComponent.length, encoding, true);
  }
  static encodeFull(uri) {
    return core._Uri._uriEncode(core._Uri._encodeFullTable, uri, convert.utf8, false);
  }
  static decodeFull(uri) {
    return core._Uri._uriDecode(uri, 0, uri.length, convert.utf8, false);
  }
  static splitQueryString(query, opts) {
    let encoding = opts && 'encoding' in opts ? opts.encoding : C108 || CT.C108;
    return query[$split]("&")[$fold](MapOfStringL$StringL(), new (IdentityMapOfStringL$StringL()).new(), dart.fn((map, element) => {
      let index = element[$indexOf]("=");
      if (index === -1) {
        if (element !== "") {
          map[$_set](core.Uri.decodeQueryComponent(element, {encoding: encoding}), "");
        }
      } else if (index !== 0) {
        let key = element[$substring](0, index);
        let value = element[$substring](index + 1);
        map[$_set](core.Uri.decodeQueryComponent(key, {encoding: encoding}), core.Uri.decodeQueryComponent(value, {encoding: encoding}));
      }
      return map;
    }, MapLOfStringL$StringLAndStringLToMapLOfStringL$StringL()));
  }
  static parseIPv4Address(host) {
    return core.Uri._parseIPv4Address(host, 0, host.length);
  }
  static _parseIPv4Address(host, start, end) {
    let t127;
    function error(msg, position) {
      dart.throw(new core.FormatException.new("Illegal IPv4 address, " + dart.str(msg), host, position));
    }
    dart.fn(error, StringLAndintLTovoid());
    let result = _native_typed_data.NativeUint8List.new(4);
    let partIndex = 0;
    let partStart = start;
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      let char = host[$codeUnitAt](i);
      if (char !== 46) {
        if ((char ^ 48) >>> 0 > 9) {
          error("invalid character", i);
        }
      } else {
        if (partIndex === 3) {
          error("IPv4 address should contain exactly 4 parts", i);
        }
        let part = core.int.parse(host[$substring](partStart, i));
        if (dart.notNull(part) > 255) {
          error("each part must be in the range 0..255", partStart);
        }
        result[$_set]((t127 = partIndex, partIndex = t127 + 1, t127), part);
        partStart = dart.notNull(i) + 1;
      }
    }
    if (partIndex !== 3) {
      error("IPv4 address should contain exactly 4 parts", end);
    }
    let part = core.int.parse(host[$substring](partStart, end));
    if (dart.notNull(part) > 255) {
      error("each part must be in the range 0..255", partStart);
    }
    result[$_set](partIndex, part);
    return result;
  }
  static parseIPv6Address(host, start = 0, end = null) {
    end == null ? end = host.length : null;
    function error(msg, position = null) {
      dart.throw(new core.FormatException.new("Illegal IPv6 address, " + dart.str(msg), host, core.int.as(position)));
    }
    dart.fn(error, StringLAnddynamicTovoid$());
    function parseHex(start, end) {
      if (dart.notNull(end) - dart.notNull(start) > 4) {
        error("an IPv6 part can only contain a maximum of 4 hex digits", start);
      }
      let value = core.int.parse(host[$substring](start, end), {radix: 16});
      if (dart.notNull(value) < 0 || dart.notNull(value) > 65535) {
        error("each part must be in the range of `0x0..0xFFFF`", start);
      }
      return value;
    }
    dart.fn(parseHex, intLAndintLTointL());
    if (host.length < 2) error("address is too short");
    let parts = JSArrayOfintL().of([]);
    let wildcardSeen = false;
    let seenDot = false;
    let partStart = start;
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      let char = host[$codeUnitAt](i);
      if (char === 58) {
        if (i == start) {
          i = dart.notNull(i) + 1;
          if (host[$codeUnitAt](i) !== 58) {
            error("invalid start colon.", i);
          }
          partStart = i;
        }
        if (i == partStart) {
          if (wildcardSeen) {
            error("only one wildcard `::` is allowed", i);
          }
          wildcardSeen = true;
          parts[$add](-1);
        } else {
          parts[$add](parseHex(partStart, i));
        }
        partStart = dart.notNull(i) + 1;
      } else if (char === 46) {
        seenDot = true;
      }
    }
    if (parts[$length] === 0) error("too few parts");
    let atEnd = partStart == end;
    let isLastWildcard = parts[$last] === -1;
    if (atEnd && !isLastWildcard) {
      error("expected a part after last `:`", end);
    }
    if (!atEnd) {
      if (!seenDot) {
        parts[$add](parseHex(partStart, end));
      } else {
        let last = core.Uri._parseIPv4Address(host, partStart, end);
        parts[$add]((dart.notNull(last[$_get](0)) << 8 | dart.notNull(last[$_get](1))) >>> 0);
        parts[$add]((dart.notNull(last[$_get](2)) << 8 | dart.notNull(last[$_get](3))) >>> 0);
      }
    }
    if (wildcardSeen) {
      if (dart.notNull(parts[$length]) > 7) {
        error("an address with a wildcard must have less than 7 parts");
      }
    } else if (parts[$length] !== 8) {
      error("an address without a wildcard must contain exactly 8 parts");
    }
    let bytes = _native_typed_data.NativeUint8List.new(16);
    for (let i = 0, index = 0; i < dart.notNull(parts[$length]); i = i + 1) {
      let value = parts[$_get](i);
      if (value === -1) {
        let wildCardLength = 9 - dart.notNull(parts[$length]);
        for (let j = 0; j < wildCardLength; j = j + 1) {
          bytes[$_set](index, 0);
          bytes[$_set](index + 1, 0);
          index = index + 2;
        }
      } else {
        bytes[$_set](index, value[$rightShift](8));
        bytes[$_set](index + 1, dart.notNull(value) & 255);
        index = index + 2;
      }
    }
    return bytes;
  }
};
(core.Uri[dart.mixinNew] = function() {
}).prototype = core.Uri.prototype;
dart.addTypeTests(core.Uri);
dart.addTypeCaches(core.Uri);
dart.setGetterSignature(core.Uri, () => ({
  __proto__: dart.getGetters(core.Uri.__proto__),
  hasScheme: core.bool
}));
dart.setLibraryUri(core.Uri, L1$);
var _pathSegments = dart.privateName(core, "_pathSegments");
var _text$ = dart.privateName(core, "_text");
var _hashCodeCache = dart.privateName(core, "_hashCodeCache");
var _queryParameters = dart.privateName(core, "_queryParameters");
var _queryParameterLists = dart.privateName(core, "_queryParameterLists");
var _userInfo$ = dart.privateName(core, "_userInfo");
var _host$ = dart.privateName(core, "_host");
var _port$ = dart.privateName(core, "_port");
var _query$ = dart.privateName(core, "_query");
var _fragment$ = dart.privateName(core, "_fragment");
var _writeAuthority = dart.privateName(core, "_writeAuthority");
var C427;
var _mergePaths = dart.privateName(core, "_mergePaths");
var _toFilePath = dart.privateName(core, "_toFilePath");
var _isPathAbsolute = dart.privateName(core, "_isPathAbsolute");
var _initializeText = dart.privateName(core, "_initializeText");
var C428;
var C429;
var C430;
var C431;
var C432;
var C433;
var C434;
var C435;
var C436;
var C437;
var C438;
var C439;
var C440;
core._Uri = class _Uri extends core.Object {
  static notSimple(uri, start, end, schemeEnd, hostStart, portStart, pathStart, queryStart, fragmentStart, scheme) {
    if (scheme == null) {
      scheme = "";
      if (dart.notNull(schemeEnd) > dart.notNull(start)) {
        scheme = core._Uri._makeScheme(uri, start, schemeEnd);
      } else if (schemeEnd == start) {
        core._Uri._fail(uri, start, "Invalid empty scheme");
      }
    }
    let userInfo = "";
    let host = null;
    let port = null;
    if (dart.notNull(hostStart) > dart.notNull(start)) {
      let userInfoStart = dart.notNull(schemeEnd) + 3;
      if (userInfoStart < dart.notNull(hostStart)) {
        userInfo = core._Uri._makeUserInfo(uri, userInfoStart, dart.notNull(hostStart) - 1);
      }
      host = core._Uri._makeHost(uri, hostStart, portStart, false);
      if (dart.notNull(portStart) + 1 < dart.notNull(pathStart)) {
        port = core.int.parse(uri[$substring](dart.notNull(portStart) + 1, pathStart), {onError: dart.fn(_ => {
            dart.throw(new core.FormatException.new("Invalid port", uri, dart.notNull(portStart) + 1));
          }, StringLToNullN())});
        port = core._Uri._makePort(port, scheme);
      }
    }
    let path = core._Uri._makePath(uri, pathStart, queryStart, null, scheme, host != null);
    let query = null;
    if (dart.notNull(queryStart) < dart.notNull(fragmentStart)) {
      query = core._Uri._makeQuery(uri, dart.notNull(queryStart) + 1, fragmentStart, null);
    }
    let fragment = null;
    if (dart.notNull(fragmentStart) < dart.notNull(end)) {
      fragment = core._Uri._makeFragment(uri, dart.notNull(fragmentStart) + 1, end);
    }
    return new core._Uri._internal(scheme, userInfo, host, port, path, query, fragment);
  }
  static new(opts) {
    let scheme = opts && 'scheme' in opts ? opts.scheme : null;
    let userInfo = opts && 'userInfo' in opts ? opts.userInfo : null;
    let host = opts && 'host' in opts ? opts.host : null;
    let port = opts && 'port' in opts ? opts.port : null;
    let path = opts && 'path' in opts ? opts.path : null;
    let pathSegments = opts && 'pathSegments' in opts ? opts.pathSegments : null;
    let query = opts && 'query' in opts ? opts.query : null;
    let queryParameters = opts && 'queryParameters' in opts ? opts.queryParameters : null;
    let fragment = opts && 'fragment' in opts ? opts.fragment : null;
    scheme = core._Uri._makeScheme(scheme, 0, core._stringOrNullLength(scheme));
    userInfo = core._Uri._makeUserInfo(userInfo, 0, core._stringOrNullLength(userInfo));
    host = core._Uri._makeHost(host, 0, core._stringOrNullLength(host), false);
    if (query === "") query = null;
    query = core._Uri._makeQuery(query, 0, core._stringOrNullLength(query), queryParameters);
    fragment = core._Uri._makeFragment(fragment, 0, core._stringOrNullLength(fragment));
    port = core._Uri._makePort(port, scheme);
    let isFile = scheme === "file";
    if (host == null && (userInfo[$isNotEmpty] || port != null || isFile)) {
      host = "";
    }
    let hasAuthority = host != null;
    path = core._Uri._makePath(path, 0, core._stringOrNullLength(path), pathSegments, scheme, hasAuthority);
    if (scheme[$isEmpty] && host == null && !path[$startsWith]("/")) {
      let allowScheme = scheme[$isNotEmpty] || host != null;
      path = core._Uri._normalizeRelativePath(path, allowScheme);
    } else {
      path = core._Uri._removeDotSegments(path);
    }
    if (host == null && path[$startsWith]("//")) {
      host = "";
    }
    return new core._Uri._internal(scheme, userInfo, host, port, path, query, fragment);
  }
  static http(authority, unencodedPath, queryParameters = null) {
    return core._Uri.as(core._Uri._makeHttpUri("http", authority, unencodedPath, queryParameters));
  }
  static https(authority, unencodedPath, queryParameters = null) {
    return core._Uri.as(core._Uri._makeHttpUri("https", authority, unencodedPath, queryParameters));
  }
  get authority() {
    if (!dart.test(this.hasAuthority)) return "";
    let sb = new core.StringBuffer.new();
    this[_writeAuthority](sb);
    return sb.toString();
  }
  get userInfo() {
    return this[_userInfo$];
  }
  get host() {
    if (this[_host$] == null) return "";
    if (this[_host$][$startsWith]("[")) {
      return this[_host$][$substring](1, this[_host$].length - 1);
    }
    return this[_host$];
  }
  get port() {
    if (this[_port$] == null) return core._Uri._defaultPort(this.scheme);
    return this[_port$];
  }
  static _defaultPort(scheme) {
    if (scheme === "http") return 80;
    if (scheme === "https") return 443;
    return 0;
  }
  get query() {
    let t127;
    t127 = this[_query$];
    return t127 == null ? "" : t127;
  }
  get fragment() {
    let t127;
    t127 = this[_fragment$];
    return t127 == null ? "" : t127;
  }
  isScheme(scheme) {
    let thisScheme = this.scheme;
    if (scheme == null) return thisScheme[$isEmpty];
    if (scheme.length !== thisScheme.length) return false;
    return core._Uri._compareScheme(scheme, thisScheme);
  }
  static _compareScheme(scheme, uri) {
    for (let i = 0; i < scheme.length; i = i + 1) {
      let schemeChar = scheme[$codeUnitAt](i);
      let uriChar = uri[$codeUnitAt](i);
      let delta = (schemeChar ^ uriChar) >>> 0;
      if (delta !== 0) {
        if (delta === 32) {
          let lowerChar = (uriChar | delta) >>> 0;
          if (97 <= lowerChar && lowerChar <= 122) {
            continue;
          }
        }
        return false;
      }
    }
    return true;
  }
  static _fail(uri, index, message) {
    dart.throw(new core.FormatException.new(message, uri, index));
  }
  static _makeHttpUri(scheme, authority, unencodedPath, queryParameters) {
    let userInfo = "";
    let host = null;
    let port = null;
    if (authority != null && authority[$isNotEmpty]) {
      let hostStart = 0;
      let hasUserInfo = false;
      for (let i = 0; i < authority.length; i = i + 1) {
        if (authority[$codeUnitAt](i) === 64) {
          hasUserInfo = true;
          userInfo = authority[$substring](0, i);
          hostStart = i + 1;
          break;
        }
      }
      let hostEnd = hostStart;
      if (hostStart < authority.length && authority[$codeUnitAt](hostStart) === 91) {
        let escapeForZoneID = -1;
        for (; hostEnd < authority.length; hostEnd = hostEnd + 1) {
          let char = authority[$codeUnitAt](hostEnd);
          if (char === 37 && escapeForZoneID < 0) {
            escapeForZoneID = hostEnd;
            if (authority[$startsWith]("25", hostEnd + 1)) {
              hostEnd = hostEnd + 2;
            }
          } else if (char === 93) {
            break;
          }
        }
        if (hostEnd === authority.length) {
          dart.throw(new core.FormatException.new("Invalid IPv6 host entry.", authority, hostStart));
        }
        core.Uri.parseIPv6Address(authority, hostStart + 1, escapeForZoneID < 0 ? hostEnd : escapeForZoneID);
        hostEnd = hostEnd + 1;
        if (hostEnd !== authority.length && authority[$codeUnitAt](hostEnd) !== 58) {
          dart.throw(new core.FormatException.new("Invalid end of authority", authority, hostEnd));
        }
      }
      let hasPort = false;
      for (; hostEnd < authority.length; hostEnd = hostEnd + 1) {
        if (authority[$codeUnitAt](hostEnd) === 58) {
          let portString = authority[$substring](hostEnd + 1);
          if (portString[$isNotEmpty]) port = core.int.parse(portString);
          break;
        }
      }
      host = authority[$substring](hostStart, hostEnd);
    }
    return core._Uri.new({scheme: scheme, userInfo: userInfo, host: host, port: port, pathSegments: unencodedPath[$split]("/"), queryParameters: queryParameters});
  }
  static file(path, opts) {
    let windows = opts && 'windows' in opts ? opts.windows : null;
    windows = windows == null ? core._Uri._isWindows : windows;
    return core._Uri.as(dart.test(windows) ? core._Uri._makeWindowsFileUrl(path, false) : core._Uri._makeFileUri(path, false));
  }
  static directory(path, opts) {
    let windows = opts && 'windows' in opts ? opts.windows : null;
    windows = windows == null ? core._Uri._isWindows : windows;
    return core._Uri.as(dart.test(windows) ? core._Uri._makeWindowsFileUrl(path, true) : core._Uri._makeFileUri(path, true));
  }
  static get _isWindows() {
    return core._Uri._isWindowsCached;
  }
  static _checkNonWindowsPathReservedCharacters(segments, argumentError) {
    segments[$forEach](dart.fn(segment => {
      if (segment[$contains]("/")) {
        if (dart.test(argumentError)) {
          dart.throw(new core.ArgumentError.new("Illegal path character " + dart.str(segment)));
        } else {
          dart.throw(new core.UnsupportedError.new("Illegal path character " + dart.str(segment)));
        }
      }
    }, StringLToNullN()));
  }
  static _checkWindowsPathReservedCharacters(segments, argumentError, firstSegment = 0) {
    for (let segment of segments[$skip](firstSegment)) {
      if (segment[$contains](core.RegExp.new("[\"*/:<>?\\\\|]"))) {
        if (dart.test(argumentError)) {
          dart.throw(new core.ArgumentError.new("Illegal character in path"));
        } else {
          dart.throw(new core.UnsupportedError.new("Illegal character in path: " + dart.str(segment)));
        }
      }
    }
  }
  static _checkWindowsDriveLetter(charCode, argumentError) {
    if (65 <= dart.notNull(charCode) && dart.notNull(charCode) <= 90 || 97 <= dart.notNull(charCode) && dart.notNull(charCode) <= 122) {
      return;
    }
    if (dart.test(argumentError)) {
      dart.throw(new core.ArgumentError.new("Illegal drive letter " + dart.notNull(core.String.fromCharCode(charCode))));
    } else {
      dart.throw(new core.UnsupportedError.new("Illegal drive letter " + dart.notNull(core.String.fromCharCode(charCode))));
    }
  }
  static _makeFileUri(path, slashTerminated) {
    let segments = path[$split]("/");
    if (dart.test(slashTerminated) && dart.test(segments[$isNotEmpty]) && segments[$last][$isNotEmpty]) {
      segments[$add]("");
    }
    if (path[$startsWith]("/")) {
      return core._Uri.new({scheme: "file", pathSegments: segments});
    } else {
      return core._Uri.new({pathSegments: segments});
    }
  }
  static _makeWindowsFileUrl(path, slashTerminated) {
    if (path[$startsWith]("\\\\?\\")) {
      if (path[$startsWith]("UNC\\", 4)) {
        path = path[$replaceRange](0, 7, "\\");
      } else {
        path = path[$substring](4);
        if (path.length < 3 || path[$codeUnitAt](1) !== 58 || path[$codeUnitAt](2) !== 92) {
          dart.throw(new core.ArgumentError.new("Windows paths with \\\\?\\ prefix must be absolute"));
        }
      }
    } else {
      path = path[$replaceAll]("/", "\\");
    }
    if (path.length > 1 && path[$codeUnitAt](1) === 58) {
      core._Uri._checkWindowsDriveLetter(path[$codeUnitAt](0), true);
      if (path.length === 2 || path[$codeUnitAt](2) !== 92) {
        dart.throw(new core.ArgumentError.new("Windows paths with drive letter must be absolute"));
      }
      let pathSegments = path[$split]("\\");
      if (dart.test(slashTerminated) && pathSegments[$last][$isNotEmpty]) {
        pathSegments[$add]("");
      }
      core._Uri._checkWindowsPathReservedCharacters(pathSegments, true, 1);
      return core._Uri.new({scheme: "file", pathSegments: pathSegments});
    }
    if (path[$startsWith]("\\")) {
      if (path[$startsWith]("\\", 1)) {
        let pathStart = path[$indexOf]("\\", 2);
        let hostPart = pathStart < 0 ? path[$substring](2) : path[$substring](2, pathStart);
        let pathPart = pathStart < 0 ? "" : path[$substring](pathStart + 1);
        let pathSegments = pathPart[$split]("\\");
        core._Uri._checkWindowsPathReservedCharacters(pathSegments, true);
        if (dart.test(slashTerminated) && pathSegments[$last][$isNotEmpty]) {
          pathSegments[$add]("");
        }
        return core._Uri.new({scheme: "file", host: hostPart, pathSegments: pathSegments});
      } else {
        let pathSegments = path[$split]("\\");
        if (dart.test(slashTerminated) && pathSegments[$last][$isNotEmpty]) {
          pathSegments[$add]("");
        }
        core._Uri._checkWindowsPathReservedCharacters(pathSegments, true);
        return core._Uri.new({scheme: "file", pathSegments: pathSegments});
      }
    } else {
      let pathSegments = path[$split]("\\");
      core._Uri._checkWindowsPathReservedCharacters(pathSegments, true);
      if (dart.test(slashTerminated) && dart.test(pathSegments[$isNotEmpty]) && pathSegments[$last][$isNotEmpty]) {
        pathSegments[$add]("");
      }
      return core._Uri.new({pathSegments: pathSegments});
    }
  }
  replace(opts) {
    let scheme = opts && 'scheme' in opts ? opts.scheme : null;
    let userInfo = opts && 'userInfo' in opts ? opts.userInfo : null;
    let host = opts && 'host' in opts ? opts.host : null;
    let port = opts && 'port' in opts ? opts.port : null;
    let path = opts && 'path' in opts ? opts.path : null;
    let pathSegments = opts && 'pathSegments' in opts ? opts.pathSegments : null;
    let query = opts && 'query' in opts ? opts.query : null;
    let queryParameters = opts && 'queryParameters' in opts ? opts.queryParameters : null;
    let fragment = opts && 'fragment' in opts ? opts.fragment : null;
    let schemeChanged = false;
    if (scheme != null) {
      scheme = core._Uri._makeScheme(scheme, 0, scheme.length);
      schemeChanged = scheme != this.scheme;
    } else {
      scheme = this.scheme;
    }
    let isFile = scheme === "file";
    if (userInfo != null) {
      userInfo = core._Uri._makeUserInfo(userInfo, 0, userInfo.length);
    } else {
      userInfo = this[_userInfo$];
    }
    if (port != null) {
      port = core._Uri._makePort(port, scheme);
    } else {
      port = this[_port$];
      if (schemeChanged) {
        port = core._Uri._makePort(port, scheme);
      }
    }
    if (host != null) {
      host = core._Uri._makeHost(host, 0, host.length, false);
    } else if (dart.test(this.hasAuthority)) {
      host = this[_host$];
    } else if (userInfo[$isNotEmpty] || port != null || isFile) {
      host = "";
    }
    let hasAuthority = host != null;
    if (path != null || pathSegments != null) {
      path = core._Uri._makePath(path, 0, core._stringOrNullLength(path), pathSegments, scheme, hasAuthority);
    } else {
      path = this.path;
      if ((isFile || hasAuthority && !path[$isEmpty]) && !path[$startsWith]("/")) {
        path = "/" + dart.notNull(path);
      }
    }
    if (query != null || queryParameters != null) {
      query = core._Uri._makeQuery(query, 0, core._stringOrNullLength(query), queryParameters);
    } else {
      query = this[_query$];
    }
    if (fragment != null) {
      fragment = core._Uri._makeFragment(fragment, 0, fragment.length);
    } else {
      fragment = this[_fragment$];
    }
    return new core._Uri._internal(scheme, userInfo, host, port, path, query, fragment);
  }
  removeFragment() {
    if (!dart.test(this.hasFragment)) return this;
    return new core._Uri._internal(this.scheme, this[_userInfo$], this[_host$], this[_port$], this.path, this[_query$], null);
  }
  get pathSegments() {
    let result = this[_pathSegments];
    if (result != null) return result;
    let pathToSplit = this.path;
    if (pathToSplit[$isNotEmpty] && pathToSplit[$codeUnitAt](0) === 47) {
      pathToSplit = pathToSplit[$substring](1);
    }
    result = pathToSplit === "" ? C404 || CT.C404 : ListOfStringL().unmodifiable(pathToSplit[$split]("/")[$map](dart.dynamic, C427 || CT.C427));
    this[_pathSegments] = result;
    return result;
  }
  get queryParameters() {
    this[_queryParameters] == null ? this[_queryParameters] = new (UnmodifiableMapViewOfStringL$StringL()).new(core.Uri.splitQueryString(this.query)) : null;
    return this[_queryParameters];
  }
  get queryParametersAll() {
    if (this[_queryParameterLists] == null) {
      let queryParameterLists = core._Uri._splitQueryStringAll(this.query);
      for (let key of queryParameterLists[$keys]) {
        queryParameterLists[$_set](key, ListOfStringL().unmodifiable(core.Iterable.as(queryParameterLists[$_get](key))));
      }
      this[_queryParameterLists] = MapOfStringL$ListLOfStringL().unmodifiable(queryParameterLists);
    }
    return this[_queryParameterLists];
  }
  normalizePath() {
    let path = core._Uri._normalizePath(this.path, this.scheme, this.hasAuthority);
    if (path == this.path) return this;
    return this.replace({path: path});
  }
  static _makePort(port, scheme) {
    if (port != null && port == core._Uri._defaultPort(scheme)) return null;
    return port;
  }
  static _makeHost(host, start, end, strictIPv6) {
    if (host == null) return null;
    if (start == end) return "";
    if (host[$codeUnitAt](start) === 91) {
      if (host[$codeUnitAt](dart.notNull(end) - 1) !== 93) {
        core._Uri._fail(host, start, "Missing end `]` to match `[` in host");
      }
      let zoneID = "";
      let index = core._Uri._checkZoneID(host, dart.notNull(start) + 1, dart.notNull(end) - 1);
      if (dart.notNull(index) < dart.notNull(end) - 1) {
        let zoneIDstart = host[$startsWith]("25", dart.notNull(index) + 1) ? dart.notNull(index) + 3 : dart.notNull(index) + 1;
        zoneID = core._Uri._normalizeZoneID(host, zoneIDstart, dart.notNull(end) - 1, "%25");
      }
      core.Uri.parseIPv6Address(host, dart.notNull(start) + 1, index);
      return host[$substring](start, index)[$toLowerCase]() + dart.notNull(zoneID) + "]";
    }
    if (!dart.test(strictIPv6)) {
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        if (host[$codeUnitAt](i) === 58) {
          let zoneID = "";
          let index = core._Uri._checkZoneID(host, start, end);
          if (dart.notNull(index) < dart.notNull(end)) {
            let zoneIDstart = host[$startsWith]("25", dart.notNull(index) + 1) ? dart.notNull(index) + 3 : dart.notNull(index) + 1;
            zoneID = core._Uri._normalizeZoneID(host, zoneIDstart, end, "%25");
          }
          core.Uri.parseIPv6Address(host, start, index);
          return "[" + host[$substring](start, index) + dart.notNull(zoneID) + "]";
        }
      }
    }
    return core._Uri._normalizeRegName(host, start, end);
  }
  static _checkZoneID(host, start, end) {
    let index = host[$indexOf]("%", start);
    index = dart.notNull(index) >= dart.notNull(start) && dart.notNull(index) < dart.notNull(end) ? index : end;
    return index;
  }
  static _isZoneIDChar(char) {
    return dart.notNull(char) < 127 && (dart.notNull(core._Uri._zoneIDTable[$_get](char[$rightShift](4))) & 1 << (dart.notNull(char) & 15)) !== 0;
  }
  static _normalizeZoneID(host, start, end, prefix = "") {
    let buffer = null;
    if (prefix !== "") {
      buffer = new core.StringBuffer.new(prefix);
    }
    let sectionStart = start;
    let index = start;
    let isNormalized = true;
    while (dart.notNull(index) < dart.notNull(end)) {
      let char = host[$codeUnitAt](index);
      if (char === 37) {
        let replacement = core._Uri._normalizeEscape(host, index, true);
        if (replacement == null && isNormalized) {
          index = dart.notNull(index) + 3;
          continue;
        }
        buffer == null ? buffer = new core.StringBuffer.new() : null;
        let slice = host[$substring](sectionStart, index);
        buffer.write(slice);
        let sourceLength = 3;
        if (replacement == null) {
          replacement = host[$substring](index, dart.notNull(index) + 3);
        } else if (replacement === "%") {
          core._Uri._fail(host, index, "ZoneID should not contain % anymore");
        }
        buffer.write(replacement);
        index = dart.notNull(index) + sourceLength;
        sectionStart = index;
        isNormalized = true;
      } else if (dart.test(core._Uri._isZoneIDChar(char))) {
        if (isNormalized && 65 <= char && 90 >= char) {
          buffer == null ? buffer = new core.StringBuffer.new() : null;
          if (dart.notNull(sectionStart) < dart.notNull(index)) {
            buffer.write(host[$substring](sectionStart, index));
            sectionStart = index;
          }
          isNormalized = false;
        }
        index = dart.notNull(index) + 1;
      } else {
        let sourceLength = 1;
        if ((char & 64512) === 55296 && dart.notNull(index) + 1 < dart.notNull(end)) {
          let tail = host[$codeUnitAt](dart.notNull(index) + 1);
          if ((tail & 64512) === 56320) {
            char = 65536 | (char & 1023) << 10 | tail & 1023;
            sourceLength = 2;
          }
        }
        buffer == null ? buffer = new core.StringBuffer.new() : null;
        let slice = host[$substring](sectionStart, index);
        buffer.write(slice);
        buffer.write(core._Uri._escapeChar(char));
        index = dart.notNull(index) + sourceLength;
        sectionStart = index;
      }
    }
    if (buffer == null) return host[$substring](start, end);
    if (dart.notNull(sectionStart) < dart.notNull(end)) {
      let slice = host[$substring](sectionStart, end);
      buffer.write(slice);
    }
    return dart.toString(buffer);
  }
  static _isRegNameChar(char) {
    return dart.notNull(char) < 127 && (dart.notNull(core._Uri._regNameTable[$_get](char[$rightShift](4))) & 1 << (dart.notNull(char) & 15)) !== 0;
  }
  static _normalizeRegName(host, start, end) {
    let buffer = null;
    let sectionStart = start;
    let index = start;
    let isNormalized = true;
    while (dart.notNull(index) < dart.notNull(end)) {
      let char = host[$codeUnitAt](index);
      if (char === 37) {
        let replacement = core._Uri._normalizeEscape(host, index, true);
        if (replacement == null && isNormalized) {
          index = dart.notNull(index) + 3;
          continue;
        }
        buffer == null ? buffer = new core.StringBuffer.new() : null;
        let slice = host[$substring](sectionStart, index);
        if (!isNormalized) slice = slice[$toLowerCase]();
        buffer.write(slice);
        let sourceLength = 3;
        if (replacement == null) {
          replacement = host[$substring](index, dart.notNull(index) + 3);
        } else if (replacement === "%") {
          replacement = "%25";
          sourceLength = 1;
        }
        buffer.write(replacement);
        index = dart.notNull(index) + sourceLength;
        sectionStart = index;
        isNormalized = true;
      } else if (dart.test(core._Uri._isRegNameChar(char))) {
        if (isNormalized && 65 <= char && 90 >= char) {
          buffer == null ? buffer = new core.StringBuffer.new() : null;
          if (dart.notNull(sectionStart) < dart.notNull(index)) {
            buffer.write(host[$substring](sectionStart, index));
            sectionStart = index;
          }
          isNormalized = false;
        }
        index = dart.notNull(index) + 1;
      } else if (dart.test(core._Uri._isGeneralDelimiter(char))) {
        core._Uri._fail(host, index, "Invalid character");
      } else {
        let sourceLength = 1;
        if ((char & 64512) === 55296 && dart.notNull(index) + 1 < dart.notNull(end)) {
          let tail = host[$codeUnitAt](dart.notNull(index) + 1);
          if ((tail & 64512) === 56320) {
            char = 65536 | (char & 1023) << 10 | tail & 1023;
            sourceLength = 2;
          }
        }
        buffer == null ? buffer = new core.StringBuffer.new() : null;
        let slice = host[$substring](sectionStart, index);
        if (!isNormalized) slice = slice[$toLowerCase]();
        buffer.write(slice);
        buffer.write(core._Uri._escapeChar(char));
        index = dart.notNull(index) + sourceLength;
        sectionStart = index;
      }
    }
    if (buffer == null) return host[$substring](start, end);
    if (dart.notNull(sectionStart) < dart.notNull(end)) {
      let slice = host[$substring](sectionStart, end);
      if (!isNormalized) slice = slice[$toLowerCase]();
      buffer.write(slice);
    }
    return dart.toString(buffer);
  }
  static _makeScheme(scheme, start, end) {
    if (start == end) return "";
    let firstCodeUnit = scheme[$codeUnitAt](start);
    if (!dart.test(core._Uri._isAlphabeticCharacter(firstCodeUnit))) {
      core._Uri._fail(scheme, start, "Scheme not starting with alphabetic character");
    }
    let containsUpperCase = false;
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      let codeUnit = scheme[$codeUnitAt](i);
      if (!dart.test(core._Uri._isSchemeCharacter(codeUnit))) {
        core._Uri._fail(scheme, i, "Illegal scheme character");
      }
      if (65 <= codeUnit && codeUnit <= 90) {
        containsUpperCase = true;
      }
    }
    scheme = scheme[$substring](start, end);
    if (containsUpperCase) scheme = scheme[$toLowerCase]();
    return core._Uri._canonicalizeScheme(scheme);
  }
  static _canonicalizeScheme(scheme) {
    if (scheme === "http") return "http";
    if (scheme === "file") return "file";
    if (scheme === "https") return "https";
    if (scheme === "package") return "package";
    return scheme;
  }
  static _makeUserInfo(userInfo, start, end) {
    if (userInfo == null) return "";
    return core._Uri._normalizeOrSubstring(userInfo, start, end, core._Uri._userinfoTable);
  }
  static _makePath(path, start, end, pathSegments, scheme, hasAuthority) {
    let isFile = scheme === "file";
    let ensureLeadingSlash = isFile || dart.test(hasAuthority);
    if (path == null && pathSegments == null) return isFile ? "/" : "";
    if (path != null && pathSegments != null) {
      dart.throw(new core.ArgumentError.new("Both path and pathSegments specified"));
    }
    let result = null;
    if (path != null) {
      result = core._Uri._normalizeOrSubstring(path, start, end, core._Uri._pathCharOrSlashTable, {escapeDelimiters: true});
    } else {
      result = pathSegments[$map](core.String, dart.fn(s => core._Uri._uriEncode(core._Uri._pathCharTable, s, convert.utf8, false), StringLToStringL()))[$join]("/");
    }
    if (result[$isEmpty]) {
      if (isFile) return "/";
    } else if (ensureLeadingSlash && !result[$startsWith]("/")) {
      result = "/" + dart.notNull(result);
    }
    result = core._Uri._normalizePath(result, scheme, hasAuthority);
    return result;
  }
  static _normalizePath(path, scheme, hasAuthority) {
    if (scheme[$isEmpty] && !dart.test(hasAuthority) && !path[$startsWith]("/")) {
      return core._Uri._normalizeRelativePath(path, scheme[$isNotEmpty] || dart.test(hasAuthority));
    }
    return core._Uri._removeDotSegments(path);
  }
  static _makeQuery(query, start, end, queryParameters) {
    if (query != null) {
      if (queryParameters != null) {
        dart.throw(new core.ArgumentError.new("Both query and queryParameters specified"));
      }
      return core._Uri._normalizeOrSubstring(query, start, end, core._Uri._queryCharTable, {escapeDelimiters: true});
    }
    if (queryParameters == null) return null;
    let result = new core.StringBuffer.new();
    let separator = "";
    function writeParameter(key, value) {
      result.write(separator);
      separator = "&";
      result.write(core.Uri.encodeQueryComponent(key));
      if (value != null && value[$isNotEmpty]) {
        result.write("=");
        result.write(core.Uri.encodeQueryComponent(value));
      }
    }
    dart.fn(writeParameter, StringLAndStringLTovoid());
    queryParameters[$forEach](dart.fn((key, value) => {
      if (value == null || typeof value == 'string') {
        writeParameter(key, core.String.as(value));
      } else {
        let values = core.Iterable.as(value);
        for (let t127 of values) {
          let value = core.String.as(t127);
          writeParameter(key, value);
        }
      }
    }, StringLAnddynamicToNullN()));
    return result.toString();
  }
  static _makeFragment(fragment, start, end) {
    if (fragment == null) return null;
    return core._Uri._normalizeOrSubstring(fragment, start, end, core._Uri._queryCharTable, {escapeDelimiters: true});
  }
  static _normalizeEscape(source, index, lowerCase) {
    if (!(source[$codeUnitAt](index) === 37)) dart.assertFailed(null, L75, 2314, 12, "source.codeUnitAt(index) == _PERCENT");
    if (dart.notNull(index) + 2 >= source.length) {
      return "%";
    }
    let firstDigit = source[$codeUnitAt](dart.notNull(index) + 1);
    let secondDigit = source[$codeUnitAt](dart.notNull(index) + 2);
    let firstDigitValue = _internal.hexDigitValue(firstDigit);
    let secondDigitValue = _internal.hexDigitValue(secondDigit);
    if (dart.notNull(firstDigitValue) < 0 || dart.notNull(secondDigitValue) < 0) {
      return "%";
    }
    let value = dart.notNull(firstDigitValue) * 16 + dart.notNull(secondDigitValue);
    if (dart.test(core._Uri._isUnreservedChar(value))) {
      if (dart.test(lowerCase) && 65 <= value && 90 >= value) {
        value = (value | 32) >>> 0;
      }
      return core.String.fromCharCode(value);
    }
    if (firstDigit >= 97 || secondDigit >= 97) {
      return source[$substring](index, dart.notNull(index) + 3)[$toUpperCase]();
    }
    return null;
  }
  static _escapeChar(char) {
    if (!(dart.notNull(char) <= 1114111)) dart.assertFailed(null, L75, 2342, 12, "char <= 0x10ffff");
    let codeUnits = null;
    if (dart.notNull(char) < 128) {
      codeUnits = ListOfintL().new(3);
      codeUnits[$_set](0, 37);
      codeUnits[$_set](1, "0123456789ABCDEF"[$codeUnitAt](char[$rightShift](4)));
      codeUnits[$_set](2, "0123456789ABCDEF"[$codeUnitAt](dart.notNull(char) & 15));
    } else {
      let flag = 192;
      let encodedBytes = 2;
      if (dart.notNull(char) > 2047) {
        flag = 224;
        encodedBytes = 3;
        if (dart.notNull(char) > 65535) {
          encodedBytes = 4;
          flag = 240;
        }
      }
      codeUnits = ListOfintL().new(3 * encodedBytes);
      let index = 0;
      while ((encodedBytes = encodedBytes - 1) >= 0) {
        let byte = (char[$rightShift](6 * encodedBytes) & 63 | flag) >>> 0;
        codeUnits[$_set](index, 37);
        codeUnits[$_set](index + 1, "0123456789ABCDEF"[$codeUnitAt](byte[$rightShift](4)));
        codeUnits[$_set](index + 2, "0123456789ABCDEF"[$codeUnitAt](byte & 15));
        index = index + 3;
        flag = 128;
      }
    }
    return core.String.fromCharCodes(codeUnits);
  }
  static _normalizeOrSubstring(component, start, end, charTable, opts) {
    let t128;
    let escapeDelimiters = opts && 'escapeDelimiters' in opts ? opts.escapeDelimiters : false;
    t128 = core._Uri._normalize(component, start, end, charTable, {escapeDelimiters: escapeDelimiters});
    return t128 == null ? component[$substring](start, end) : t128;
  }
  static _normalize(component, start, end, charTable, opts) {
    let escapeDelimiters = opts && 'escapeDelimiters' in opts ? opts.escapeDelimiters : false;
    let buffer = null;
    let sectionStart = start;
    let index = start;
    while (dart.notNull(index) < dart.notNull(end)) {
      let char = component[$codeUnitAt](index);
      if (char < 127 && (dart.notNull(charTable[$_get](char[$rightShift](4))) & 1 << (char & 15)) !== 0) {
        index = dart.notNull(index) + 1;
      } else {
        let replacement = null;
        let sourceLength = null;
        if (char === 37) {
          replacement = core._Uri._normalizeEscape(component, index, false);
          if (replacement == null) {
            index = dart.notNull(index) + 3;
            continue;
          }
          if ("%" === replacement) {
            replacement = "%25";
            sourceLength = 1;
          } else {
            sourceLength = 3;
          }
        } else if (!dart.test(escapeDelimiters) && dart.test(core._Uri._isGeneralDelimiter(char))) {
          core._Uri._fail(component, index, "Invalid character");
        } else {
          sourceLength = 1;
          if ((char & 64512) === 55296) {
            if (dart.notNull(index) + 1 < dart.notNull(end)) {
              let tail = component[$codeUnitAt](dart.notNull(index) + 1);
              if ((tail & 64512) === 56320) {
                sourceLength = 2;
                char = 65536 | (char & 1023) << 10 | tail & 1023;
              }
            }
          }
          replacement = core._Uri._escapeChar(char);
        }
        buffer == null ? buffer = new core.StringBuffer.new() : null;
        buffer.write(component[$substring](sectionStart, index));
        buffer.write(replacement);
        index = dart.notNull(index) + dart.notNull(sourceLength);
        sectionStart = index;
      }
    }
    if (buffer == null) {
      return null;
    }
    if (dart.notNull(sectionStart) < dart.notNull(end)) {
      buffer.write(component[$substring](sectionStart, end));
    }
    return dart.toString(buffer);
  }
  static _isSchemeCharacter(ch) {
    return dart.notNull(ch) < 128 && (dart.notNull(core._Uri._schemeTable[$_get](ch[$rightShift](4))) & 1 << (dart.notNull(ch) & 15)) !== 0;
  }
  static _isGeneralDelimiter(ch) {
    return dart.notNull(ch) <= 93 && (dart.notNull(core._Uri._genDelimitersTable[$_get](ch[$rightShift](4))) & 1 << (dart.notNull(ch) & 15)) !== 0;
  }
  get isAbsolute() {
    return this.scheme !== "" && this.fragment === "";
  }
  [_mergePaths](base, reference) {
    let backCount = 0;
    let refStart = 0;
    while (reference[$startsWith]("../", refStart)) {
      refStart = refStart + 3;
      backCount = backCount + 1;
    }
    let baseEnd = base[$lastIndexOf]("/");
    while (baseEnd > 0 && backCount > 0) {
      let newEnd = base[$lastIndexOf]("/", baseEnd - 1);
      if (newEnd < 0) {
        break;
      }
      let delta = baseEnd - newEnd;
      if ((delta === 2 || delta === 3) && base[$codeUnitAt](newEnd + 1) === 46 && (delta === 2 || base[$codeUnitAt](newEnd + 2) === 46)) {
        break;
      }
      baseEnd = newEnd;
      backCount = backCount - 1;
    }
    return base[$replaceRange](baseEnd + 1, null, reference[$substring](refStart - 3 * backCount));
  }
  static _mayContainDotSegments(path) {
    if (path[$startsWith](".")) return true;
    let index = path[$indexOf]("/.");
    return index !== -1;
  }
  static _removeDotSegments(path) {
    if (!dart.test(core._Uri._mayContainDotSegments(path))) return path;
    if (!path[$isNotEmpty]) dart.assertFailed(null, L75, 2527, 12, "path.isNotEmpty");
    let output = JSArrayOfStringL().of([]);
    let appendSlash = false;
    for (let segment of path[$split]("/")) {
      appendSlash = false;
      if (segment === "..") {
        if (dart.test(output[$isNotEmpty])) {
          output[$removeLast]();
          if (dart.test(output[$isEmpty])) {
            output[$add]("");
          }
        }
        appendSlash = true;
      } else if ("." === segment) {
        appendSlash = true;
      } else {
        output[$add](segment);
      }
    }
    if (appendSlash) output[$add]("");
    return output[$join]("/");
  }
  static _normalizeRelativePath(path, allowScheme) {
    if (!!path[$startsWith]("/")) dart.assertFailed(null, L75, 2562, 12, "!path.startsWith('/')");
    if (!dart.test(core._Uri._mayContainDotSegments(path))) {
      if (!dart.test(allowScheme)) path = core._Uri._escapeScheme(path);
      return path;
    }
    if (!path[$isNotEmpty]) dart.assertFailed(null, L75, 2567, 12, "path.isNotEmpty");
    let output = JSArrayOfStringL().of([]);
    let appendSlash = false;
    for (let segment of path[$split]("/")) {
      appendSlash = false;
      if (".." === segment) {
        if (!dart.test(output[$isEmpty]) && output[$last] !== "..") {
          output[$removeLast]();
          appendSlash = true;
        } else {
          output[$add]("..");
        }
      } else if ("." === segment) {
        appendSlash = true;
      } else {
        output[$add](segment);
      }
    }
    if (dart.test(output[$isEmpty]) || output[$length] === 1 && output[$_get](0)[$isEmpty]) {
      return "./";
    }
    if (appendSlash || output[$last] === "..") output[$add]("");
    if (!dart.test(allowScheme)) output[$_set](0, core._Uri._escapeScheme(output[$_get](0)));
    return output[$join]("/");
  }
  static _escapeScheme(path) {
    if (path.length >= 2 && dart.test(core._Uri._isAlphabeticCharacter(path[$codeUnitAt](0)))) {
      for (let i = 1; i < path.length; i = i + 1) {
        let char = path[$codeUnitAt](i);
        if (char === 58) {
          return path[$substring](0, i) + "%3A" + path[$substring](i + 1);
        }
        if (char > 127 || (dart.notNull(core._Uri._schemeTable[$_get](char[$rightShift](4))) & 1 << (char & 15)) === 0) {
          break;
        }
      }
    }
    return path;
  }
  resolve(reference) {
    return this.resolveUri(core.Uri.parse(reference));
  }
  resolveUri(reference) {
    let targetScheme = null;
    let targetUserInfo = "";
    let targetHost = null;
    let targetPort = null;
    let targetPath = null;
    let targetQuery = null;
    if (reference.scheme[$isNotEmpty]) {
      targetScheme = reference.scheme;
      if (dart.test(reference.hasAuthority)) {
        targetUserInfo = reference.userInfo;
        targetHost = reference.host;
        targetPort = dart.test(reference.hasPort) ? reference.port : null;
      }
      targetPath = core._Uri._removeDotSegments(reference.path);
      if (dart.test(reference.hasQuery)) {
        targetQuery = reference.query;
      }
    } else {
      targetScheme = this.scheme;
      if (dart.test(reference.hasAuthority)) {
        targetUserInfo = reference.userInfo;
        targetHost = reference.host;
        targetPort = core._Uri._makePort(dart.test(reference.hasPort) ? reference.port : null, targetScheme);
        targetPath = core._Uri._removeDotSegments(reference.path);
        if (dart.test(reference.hasQuery)) targetQuery = reference.query;
      } else {
        targetUserInfo = this[_userInfo$];
        targetHost = this[_host$];
        targetPort = this[_port$];
        if (reference.path === "") {
          targetPath = this.path;
          if (dart.test(reference.hasQuery)) {
            targetQuery = reference.query;
          } else {
            targetQuery = this[_query$];
          }
        } else {
          if (dart.test(reference.hasAbsolutePath)) {
            targetPath = core._Uri._removeDotSegments(reference.path);
          } else {
            if (dart.test(this.hasEmptyPath)) {
              if (!dart.test(this.hasAuthority)) {
                if (!dart.test(this.hasScheme)) {
                  targetPath = reference.path;
                } else {
                  targetPath = core._Uri._removeDotSegments(reference.path);
                }
              } else {
                targetPath = core._Uri._removeDotSegments("/" + dart.notNull(reference.path));
              }
            } else {
              let mergedPath = this[_mergePaths](this.path, reference.path);
              if (dart.test(this.hasScheme) || dart.test(this.hasAuthority) || dart.test(this.hasAbsolutePath)) {
                targetPath = core._Uri._removeDotSegments(mergedPath);
              } else {
                targetPath = core._Uri._normalizeRelativePath(mergedPath, dart.test(this.hasScheme) || dart.test(this.hasAuthority));
              }
            }
          }
          if (dart.test(reference.hasQuery)) targetQuery = reference.query;
        }
      }
    }
    let fragment = dart.test(reference.hasFragment) ? reference.fragment : null;
    return new core._Uri._internal(targetScheme, targetUserInfo, targetHost, targetPort, targetPath, targetQuery, fragment);
  }
  get hasScheme() {
    return this.scheme[$isNotEmpty];
  }
  get hasAuthority() {
    return this[_host$] != null;
  }
  get hasPort() {
    return this[_port$] != null;
  }
  get hasQuery() {
    return this[_query$] != null;
  }
  get hasFragment() {
    return this[_fragment$] != null;
  }
  get hasEmptyPath() {
    return this.path[$isEmpty];
  }
  get hasAbsolutePath() {
    return this.path[$startsWith]("/");
  }
  get origin() {
    if (this.scheme === "") {
      dart.throw(new core.StateError.new("Cannot use origin without a scheme: " + dart.str(this)));
    }
    if (this.scheme !== "http" && this.scheme !== "https") {
      dart.throw(new core.StateError.new("Origin is only applicable schemes http and https: " + dart.str(this)));
    }
    if (this[_host$] == null || this[_host$] === "") {
      dart.throw(new core.StateError.new("A " + dart.str(this.scheme) + ": URI should have a non-empty host name: " + dart.str(this)));
    }
    if (this[_port$] == null) return dart.str(this.scheme) + "://" + dart.str(this[_host$]);
    return dart.str(this.scheme) + "://" + dart.str(this[_host$]) + ":" + dart.str(this[_port$]);
  }
  toFilePath(opts) {
    let windows = opts && 'windows' in opts ? opts.windows : null;
    if (this.scheme !== "" && this.scheme !== "file") {
      dart.throw(new core.UnsupportedError.new("Cannot extract a file path from a " + dart.str(this.scheme) + " URI"));
    }
    if (this.query !== "") {
      dart.throw(new core.UnsupportedError.new("Cannot extract a file path from a URI with a query component"));
    }
    if (this.fragment !== "") {
      dart.throw(new core.UnsupportedError.new("Cannot extract a file path from a URI with a fragment component"));
    }
    windows == null ? windows = core._Uri._isWindows : null;
    return dart.test(windows) ? core._Uri._toWindowsFilePath(this) : this[_toFilePath]();
  }
  [_toFilePath]() {
    if (dart.test(this.hasAuthority) && this.host !== "") {
      dart.throw(new core.UnsupportedError.new("Cannot extract a non-Windows file path from a file URI " + "with an authority"));
    }
    let pathSegments = this.pathSegments;
    core._Uri._checkNonWindowsPathReservedCharacters(pathSegments, false);
    let result = new core.StringBuffer.new();
    if (dart.test(this.hasAbsolutePath)) result.write("/");
    result.writeAll(pathSegments, "/");
    return result.toString();
  }
  static _toWindowsFilePath(uri) {
    let hasDriveLetter = false;
    let segments = uri.pathSegments;
    if (dart.notNull(segments[$length]) > 0 && segments[$_get](0).length === 2 && segments[$_get](0)[$codeUnitAt](1) === 58) {
      core._Uri._checkWindowsDriveLetter(segments[$_get](0)[$codeUnitAt](0), false);
      core._Uri._checkWindowsPathReservedCharacters(segments, false, 1);
      hasDriveLetter = true;
    } else {
      core._Uri._checkWindowsPathReservedCharacters(segments, false, 0);
    }
    let result = new core.StringBuffer.new();
    if (dart.test(uri.hasAbsolutePath) && !hasDriveLetter) result.write("\\");
    if (dart.test(uri.hasAuthority)) {
      let host = uri.host;
      if (host[$isNotEmpty]) {
        result.write("\\");
        result.write(host);
        result.write("\\");
      }
    }
    result.writeAll(segments, "\\");
    if (hasDriveLetter && segments[$length] === 1) result.write("\\");
    return result.toString();
  }
  get [_isPathAbsolute]() {
    return this.path != null && this.path[$startsWith]("/");
  }
  [_writeAuthority](ss) {
    if (this[_userInfo$][$isNotEmpty]) {
      ss.write(this[_userInfo$]);
      ss.write("@");
    }
    if (this[_host$] != null) ss.write(this[_host$]);
    if (this[_port$] != null) {
      ss.write(":");
      ss.write(this[_port$]);
    }
  }
  get data() {
    return this.scheme === "data" ? core.UriData.fromUri(this) : null;
  }
  toString() {
    let t128;
    t128 = this[_text$];
    return t128 == null ? this[_text$] = this[_initializeText]() : t128;
  }
  [_initializeText]() {
    let t128, t128$, t128$0;
    if (!(this[_text$] == null)) dart.assertFailed(null, L75, 2814, 12, "_text == null");
    let sb = new core.StringBuffer.new();
    if (this.scheme[$isNotEmpty]) {
      t128 = sb;
      t128.write(this.scheme);
      t128.write(":");
      t128;
    }
    if (dart.test(this.hasAuthority) || this.scheme === "file") {
      sb.write("//");
      this[_writeAuthority](sb);
    }
    sb.write(this.path);
    if (this[_query$] != null) {
      t128$ = sb;
      t128$.write("?");
      t128$.write(this[_query$]);
      t128$;
    }
    if (this[_fragment$] != null) {
      t128$0 = sb;
      t128$0.write("#");
      t128$0.write(this[_fragment$]);
      t128$0;
    }
    return sb.toString();
  }
  _equals(other) {
    if (other == null) return false;
    if (this === other) return true;
    return core.Uri.is(other) && this.scheme == other.scheme && dart.equals(this.hasAuthority, other.hasAuthority) && this.userInfo == other.userInfo && this.host == other.host && this.port == other.port && this.path == other.path && dart.equals(this.hasQuery, other.hasQuery) && this.query == other.query && dart.equals(this.hasFragment, other.hasFragment) && this.fragment == other.fragment;
  }
  get hashCode() {
    let t128;
    t128 = this[_hashCodeCache];
    return t128 == null ? this[_hashCodeCache] = dart.hashCode(this.toString()) : t128;
  }
  static _createList() {
    return JSArrayOfStringL().of([]);
  }
  static _splitQueryStringAll(query, opts) {
    let encoding = opts && 'encoding' in opts ? opts.encoding : C108 || CT.C108;
    let result = new (IdentityMapOfStringL$ListLOfStringL()).new();
    let i = 0;
    let start = 0;
    let equalsIndex = -1;
    function parsePair(start, equalsIndex, end) {
      let key = null;
      let value = null;
      if (start == end) return;
      if (dart.notNull(equalsIndex) < 0) {
        key = core._Uri._uriDecode(query, start, end, encoding, true);
        value = "";
      } else {
        key = core._Uri._uriDecode(query, start, equalsIndex, encoding, true);
        value = core._Uri._uriDecode(query, dart.notNull(equalsIndex) + 1, end, encoding, true);
      }
      result[$putIfAbsent](key, C428 || CT.C428)[$add](value);
    }
    dart.fn(parsePair, intLAndintLAndintLTovoid());
    while (i < query.length) {
      let char = query[$codeUnitAt](i);
      if (char === 61) {
        if (equalsIndex < 0) equalsIndex = i;
      } else if (char === 38) {
        parsePair(start, equalsIndex, i);
        start = i + 1;
        equalsIndex = -1;
      }
      i = i + 1;
    }
    parsePair(start, equalsIndex, i);
    return result;
  }
  static _uriEncode(canonicalTable, text, encoding, spaceToPlus) {
    if (encoding == convert.utf8 && dart.test(core._Uri._needsNoEncoding.hasMatch(text))) {
      return text;
    }
    let result = new core.StringBuffer.new("");
    let bytes = encoding.encode(text);
    for (let i = 0; i < dart.notNull(bytes[$length]); i = i + 1) {
      let byte = bytes[$_get](i);
      if (dart.notNull(byte) < 128 && (dart.notNull(canonicalTable[$_get](byte[$rightShift](4))) & 1 << (dart.notNull(byte) & 15)) !== 0) {
        result.writeCharCode(byte);
      } else if (dart.test(spaceToPlus) && byte === 32) {
        result.write("+");
      } else {
        result.write("%");
        result.write("0123456789ABCDEF"[$_get](dart.notNull(byte) >> 4 & 15));
        result.write("0123456789ABCDEF"[$_get](dart.notNull(byte) & 15));
      }
    }
    return result.toString();
  }
  static _hexCharPairToByte(s, pos) {
    let byte = 0;
    for (let i = 0; i < 2; i = i + 1) {
      let charCode = s[$codeUnitAt](dart.notNull(pos) + i);
      if (48 <= charCode && charCode <= 57) {
        byte = byte * 16 + charCode - 48;
      } else {
        charCode = (charCode | 32) >>> 0;
        if (97 <= charCode && charCode <= 102) {
          byte = byte * 16 + charCode - 87;
        } else {
          dart.throw(new core.ArgumentError.new("Invalid URL encoding"));
        }
      }
    }
    return byte;
  }
  static _uriDecode(text, start, end, encoding, plusToSpace) {
    if (!(0 <= dart.notNull(start))) dart.assertFailed(null, L75, 2926, 12, "0 <= start");
    if (!(dart.notNull(start) <= dart.notNull(end))) dart.assertFailed(null, L75, 2927, 12, "start <= end");
    if (!(dart.notNull(end) <= text.length)) dart.assertFailed(null, L75, 2928, 12, "end <= text.length");
    if (!(encoding != null)) dart.assertFailed(null, L75, 2929, 12, "encoding != null");
    let simple = true;
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      let codeUnit = text[$codeUnitAt](i);
      if (codeUnit > 127 || codeUnit === 37 || dart.test(plusToSpace) && codeUnit === 43) {
        simple = false;
        break;
      }
    }
    let bytes = null;
    if (simple) {
      if (dart.equals(convert.utf8, encoding) || dart.equals(convert.latin1, encoding) || dart.equals(convert.ascii, encoding)) {
        return text[$substring](start, end);
      } else {
        bytes = text[$substring](start, end)[$codeUnits];
      }
    } else {
      bytes = JSArrayOfintL().of([]);
      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
        let codeUnit = text[$codeUnitAt](i);
        if (codeUnit > 127) {
          dart.throw(new core.ArgumentError.new("Illegal percent encoding in URI"));
        }
        if (codeUnit === 37) {
          if (dart.notNull(i) + 3 > text.length) {
            dart.throw(new core.ArgumentError.new("Truncated URI"));
          }
          bytes[$add](core._Uri._hexCharPairToByte(text, dart.notNull(i) + 1));
          i = dart.notNull(i) + 2;
        } else if (dart.test(plusToSpace) && codeUnit === 43) {
          bytes[$add](32);
        } else {
          bytes[$add](codeUnit);
        }
      }
    }
    return encoding.decode(bytes);
  }
  static _isAlphabeticCharacter(codeUnit) {
    let lowerCase = (dart.notNull(codeUnit) | 32) >>> 0;
    return 97 <= lowerCase && lowerCase <= 122;
  }
  static _isUnreservedChar(char) {
    return dart.notNull(char) < 127 && (dart.notNull(core._Uri._unreservedTable[$_get](char[$rightShift](4))) & 1 << (dart.notNull(char) & 15)) !== 0;
  }
};
(core._Uri._internal = function(scheme, _userInfo, _host, _port, path, _query, _fragment) {
  this[_pathSegments] = null;
  this[_text$] = null;
  this[_hashCodeCache] = null;
  this[_queryParameters] = null;
  this[_queryParameterLists] = null;
  this.scheme = scheme;
  this[_userInfo$] = _userInfo;
  this[_host$] = _host;
  this[_port$] = _port;
  this.path = path;
  this[_query$] = _query;
  this[_fragment$] = _fragment;
  ;
}).prototype = core._Uri.prototype;
dart.addTypeTests(core._Uri);
dart.addTypeCaches(core._Uri);
core._Uri[dart.implements] = () => [core.Uri];
dart.setMethodSignature(core._Uri, () => ({
  __proto__: dart.getMethods(core._Uri.__proto__),
  isScheme: dart.fnType(core.bool, [core.String]),
  replace: dart.fnType(core.Uri, [], {fragment: core.String, host: core.String, path: core.String, pathSegments: core.Iterable$(core.String), port: core.int, query: core.String, queryParameters: core.Map$(core.String, dart.dynamic), scheme: core.String, userInfo: core.String}, {}),
  removeFragment: dart.fnType(core.Uri, []),
  normalizePath: dart.fnType(core.Uri, []),
  [_mergePaths]: dart.fnType(core.String, [core.String, core.String]),
  resolve: dart.fnType(core.Uri, [core.String]),
  resolveUri: dart.fnType(core.Uri, [core.Uri]),
  toFilePath: dart.fnType(core.String, [], {windows: core.bool}, {}),
  [_toFilePath]: dart.fnType(core.String, []),
  [_writeAuthority]: dart.fnType(dart.void, [core.StringSink]),
  [_initializeText]: dart.fnType(core.String, []),
  _equals: dart.fnType(core.bool, [core.Object]),
  [$_equals]: dart.fnType(core.bool, [core.Object])
}));
dart.setGetterSignature(core._Uri, () => ({
  __proto__: dart.getGetters(core._Uri.__proto__),
  authority: core.String,
  userInfo: core.String,
  host: core.String,
  port: core.int,
  query: core.String,
  fragment: core.String,
  pathSegments: core.List$(core.String),
  queryParameters: core.Map$(core.String, core.String),
  queryParametersAll: core.Map$(core.String, core.List$(core.String)),
  isAbsolute: core.bool,
  hasScheme: core.bool,
  hasAuthority: core.bool,
  hasPort: core.bool,
  hasQuery: core.bool,
  hasFragment: core.bool,
  hasEmptyPath: core.bool,
  hasAbsolutePath: core.bool,
  origin: core.String,
  [_isPathAbsolute]: core.bool,
  data: core.UriData
}));
dart.setLibraryUri(core._Uri, L1$);
dart.setFieldSignature(core._Uri, () => ({
  __proto__: dart.getFields(core._Uri.__proto__),
  scheme: dart.finalFieldType(core.String),
  [_userInfo$]: dart.finalFieldType(core.String),
  [_host$]: dart.finalFieldType(core.String),
  [_port$]: dart.fieldType(core.int),
  path: dart.finalFieldType(core.String),
  [_query$]: dart.finalFieldType(core.String),
  [_fragment$]: dart.finalFieldType(core.String),
  [_pathSegments]: dart.fieldType(core.List$(core.String)),
  [_text$]: dart.fieldType(core.String),
  [_hashCodeCache]: dart.fieldType(core.int),
  [_queryParameters]: dart.fieldType(core.Map$(core.String, core.String)),
  [_queryParameterLists]: dart.fieldType(core.Map$(core.String, core.List$(core.String)))
}));
dart.defineExtensionMethods(core._Uri, ['toString', '_equals']);
dart.defineExtensionAccessors(core._Uri, ['hashCode']);
dart.defineLazy(core._Uri, {
  /*core._Uri._isWindowsCached*/get _isWindowsCached() {
    return typeof process != "undefined" && Object.prototype.toString.call(process) == "[object process]" && process.platform == "win32";
  },
  /*core._Uri._needsNoEncoding*/get _needsNoEncoding() {
    return core.RegExp.new("^[\\-\\.0-9A-Z_a-z~]*$");
  },
  /*core._Uri._unreservedTable*/get _unreservedTable() {
    return C429 || CT.C429;
  },
  /*core._Uri._unreserved2396Table*/get _unreserved2396Table() {
    return C430 || CT.C430;
  },
  /*core._Uri._encodeFullTable*/get _encodeFullTable() {
    return C431 || CT.C431;
  },
  /*core._Uri._schemeTable*/get _schemeTable() {
    return C432 || CT.C432;
  },
  /*core._Uri._schemeLowerTable*/get _schemeLowerTable() {
    return C433 || CT.C433;
  },
  /*core._Uri._subDelimitersTable*/get _subDelimitersTable() {
    return C434 || CT.C434;
  },
  /*core._Uri._genDelimitersTable*/get _genDelimitersTable() {
    return C435 || CT.C435;
  },
  /*core._Uri._userinfoTable*/get _userinfoTable() {
    return C436 || CT.C436;
  },
  /*core._Uri._regNameTable*/get _regNameTable() {
    return C437 || CT.C437;
  },
  /*core._Uri._pathCharTable*/get _pathCharTable() {
    return C438 || CT.C438;
  },
  /*core._Uri._pathCharOrSlashTable*/get _pathCharOrSlashTable() {
    return C439 || CT.C439;
  },
  /*core._Uri._queryCharTable*/get _queryCharTable() {
    return C440 || CT.C440;
  },
  /*core._Uri._zoneIDTable*/get _zoneIDTable() {
    return C429 || CT.C429;
  }
}, true);
var _separatorIndices$ = dart.privateName(core, "_separatorIndices");
var _uriCache$ = dart.privateName(core, "_uriCache");
var C441;
var C442;
core.UriData = class UriData extends core.Object {
  static fromString(content, opts) {
    let mimeType = opts && 'mimeType' in opts ? opts.mimeType : null;
    let encoding = opts && 'encoding' in opts ? opts.encoding : null;
    let parameters = opts && 'parameters' in opts ? opts.parameters : null;
    let base64 = opts && 'base64' in opts ? opts.base64 : false;
    let buffer = new core.StringBuffer.new();
    let indices = JSArrayOfintL().of([-1]);
    let charsetName = null;
    let encodingName = null;
    if (parameters != null) charsetName = parameters[$_get]("charset");
    if (encoding == null) {
      if (charsetName != null) {
        encoding = convert.Encoding.getByName(charsetName);
      }
    } else if (charsetName == null) {
      encodingName = encoding.name;
    }
    encoding == null ? encoding = convert.ascii : null;
    core.UriData._writeUri(mimeType, encodingName, parameters, buffer, indices);
    indices[$add](buffer.length);
    if (dart.test(base64)) {
      buffer.write(";base64,");
      indices[$add](dart.notNull(buffer.length) - 1);
      buffer.write(encoding.fuse(core.String, core.UriData._base64).encode(content));
    } else {
      buffer.write(",");
      core.UriData._uriEncodeBytes(core.UriData._uricTable, encoding.encode(content), buffer);
    }
    return new core.UriData.__(buffer.toString(), indices, null);
  }
  static fromBytes(bytes, opts) {
    let mimeType = opts && 'mimeType' in opts ? opts.mimeType : "application/octet-stream";
    let parameters = opts && 'parameters' in opts ? opts.parameters : null;
    let percentEncoded = opts && 'percentEncoded' in opts ? opts.percentEncoded : false;
    let buffer = new core.StringBuffer.new();
    let indices = JSArrayOfintL().of([-1]);
    core.UriData._writeUri(core.String.as(mimeType), null, parameters, buffer, indices);
    indices[$add](buffer.length);
    if (dart.dtest(percentEncoded)) {
      buffer.write(",");
      core.UriData._uriEncodeBytes(core.UriData._uricTable, bytes, buffer);
    } else {
      buffer.write(";base64,");
      indices[$add](dart.notNull(buffer.length) - 1);
      core.UriData._base64.encoder.startChunkedConversion(new (_StringSinkConversionSinkOfStringSinkL()).new(buffer)).addSlice(bytes, 0, bytes[$length], true);
    }
    return new core.UriData.__(buffer.toString(), indices, null);
  }
  static fromUri(uri) {
    if (uri.scheme !== "data") {
      dart.throw(new core.ArgumentError.value(uri, "uri", "Scheme must be 'data'"));
    }
    if (dart.test(uri.hasAuthority)) {
      dart.throw(new core.ArgumentError.value(uri, "uri", "Data uri must not have authority"));
    }
    if (dart.test(uri.hasFragment)) {
      dart.throw(new core.ArgumentError.value(uri, "uri", "Data uri must not have a fragment part"));
    }
    if (!dart.test(uri.hasQuery)) {
      return core.UriData._parse(uri.path, 0, uri);
    }
    return core.UriData._parse(dart.str(uri), 5, uri);
  }
  static _writeUri(mimeType, charsetName, parameters, buffer, indices) {
    let t128, t128$;
    if (mimeType == null || mimeType === "text/plain") {
      mimeType = "";
    }
    if (mimeType[$isEmpty] || mimeType === "application/octet-stream") {
      buffer.write(mimeType);
    } else {
      let slashIndex = core.UriData._validateMimeType(mimeType);
      if (dart.notNull(slashIndex) < 0) {
        dart.throw(new core.ArgumentError.value(mimeType, "mimeType", "Invalid MIME type"));
      }
      buffer.write(core._Uri._uriEncode(core.UriData._tokenCharTable, mimeType[$substring](0, slashIndex), convert.utf8, false));
      buffer.write("/");
      buffer.write(core._Uri._uriEncode(core.UriData._tokenCharTable, mimeType[$substring](dart.notNull(slashIndex) + 1), convert.utf8, false));
    }
    if (charsetName != null) {
      if (indices != null) {
        t128 = indices;
        t128[$add](buffer.length);
        t128[$add](dart.notNull(buffer.length) + 8);
        t128;
      }
      buffer.write(";charset=");
      buffer.write(core._Uri._uriEncode(core.UriData._tokenCharTable, charsetName, convert.utf8, false));
    }
    t128$ = parameters;
    t128$ == null ? null : t128$[$forEach](dart.fn((key, value) => {
      if (key[$isEmpty]) {
        dart.throw(new core.ArgumentError.value("", "Parameter names must not be empty"));
      }
      if (value[$isEmpty]) {
        dart.throw(new core.ArgumentError.value("", "Parameter values must not be empty", "parameters[\"" + dart.str(key) + "\"]"));
      }
      if (indices != null) indices[$add](buffer.length);
      buffer.write(";");
      buffer.write(core._Uri._uriEncode(core.UriData._tokenCharTable, key, convert.utf8, false));
      if (indices != null) indices[$add](buffer.length);
      buffer.write("=");
      buffer.write(core._Uri._uriEncode(core.UriData._tokenCharTable, value, convert.utf8, false));
    }, StringLAndStringLToNullN()));
  }
  static _validateMimeType(mimeType) {
    let slashIndex = -1;
    for (let i = 0; i < mimeType.length; i = i + 1) {
      let char = mimeType[$codeUnitAt](i);
      if (char !== 47) continue;
      if (slashIndex < 0) {
        slashIndex = i;
        continue;
      }
      return -1;
    }
    return slashIndex;
  }
  static parse(uri) {
    if (uri.length >= 5) {
      let dataDelta = core._startsWithData(uri, 0);
      if (dataDelta === 0) {
        return core.UriData._parse(uri, 5, null);
      }
      if (dataDelta === 32) {
        return core.UriData._parse(uri[$substring](5), 0, null);
      }
    }
    dart.throw(new core.FormatException.new("Does not start with 'data:'", uri, 0));
  }
  get uri() {
    if (this[_uriCache$] != null) return this[_uriCache$];
    let path = this[_text$];
    let query = null;
    let colonIndex = this[_separatorIndices$][$_get](0);
    let queryIndex = this[_text$][$indexOf]("?", dart.notNull(colonIndex) + 1);
    let end = this[_text$].length;
    if (queryIndex >= 0) {
      query = core._Uri._normalizeOrSubstring(this[_text$], queryIndex + 1, end, core._Uri._queryCharTable);
      end = queryIndex;
    }
    path = core._Uri._normalizeOrSubstring(this[_text$], dart.notNull(colonIndex) + 1, end, core._Uri._pathCharOrSlashTable);
    this[_uriCache$] = new core._DataUri.new(this, path, query);
    return this[_uriCache$];
  }
  get mimeType() {
    let start = dart.notNull(this[_separatorIndices$][$_get](0)) + 1;
    let end = this[_separatorIndices$][$_get](1);
    if (start === end) return "text/plain";
    return core._Uri._uriDecode(this[_text$], start, end, convert.utf8, false);
  }
  get charset() {
    let parameterStart = 1;
    let parameterEnd = dart.notNull(this[_separatorIndices$][$length]) - 1;
    if (dart.test(this.isBase64)) {
      parameterEnd = parameterEnd - 1;
    }
    for (let i = parameterStart; i < parameterEnd; i = i + 2) {
      let keyStart = dart.notNull(this[_separatorIndices$][$_get](i)) + 1;
      let keyEnd = this[_separatorIndices$][$_get](i + 1);
      if (keyEnd === keyStart + 7 && this[_text$][$startsWith]("charset", keyStart)) {
        return core._Uri._uriDecode(this[_text$], dart.notNull(keyEnd) + 1, this[_separatorIndices$][$_get](i + 2), convert.utf8, false);
      }
    }
    return "US-ASCII";
  }
  get isBase64() {
    return this[_separatorIndices$][$length][$isOdd];
  }
  get contentText() {
    return this[_text$][$substring](dart.notNull(this[_separatorIndices$][$last]) + 1);
  }
  contentAsBytes() {
    let t128, t128$;
    let text = this[_text$];
    let start = dart.notNull(this[_separatorIndices$][$last]) + 1;
    if (dart.test(this.isBase64)) {
      return convert.base64.decoder.convert(text, start);
    }
    let length = text.length - start;
    for (let i = start; i < text.length; i = i + 1) {
      let codeUnit = text[$codeUnitAt](i);
      if (codeUnit === 37) {
        i = i + 2;
        length = length - 2;
      }
    }
    let result = _native_typed_data.NativeUint8List.new(length);
    if (length === text.length) {
      result[$setRange](0, length, text[$codeUnits], start);
      return result;
    }
    let index = 0;
    for (let i = start; i < text.length; i = i + 1) {
      let codeUnit = text[$codeUnitAt](i);
      if (codeUnit !== 37) {
        result[$_set]((t128 = index, index = t128 + 1, t128), codeUnit);
      } else {
        if (i + 2 < text.length) {
          let byte = _internal.parseHexByte(text, i + 1);
          if (dart.notNull(byte) >= 0) {
            result[$_set]((t128$ = index, index = t128$ + 1, t128$), byte);
            i = i + 2;
            continue;
          }
        }
        dart.throw(new core.FormatException.new("Invalid percent escape", text, i));
      }
    }
    if (!(index === result[$length])) dart.assertFailed(null, L75, 3671, 12, "index == result.length");
    return result;
  }
  contentAsString(opts) {
    let encoding = opts && 'encoding' in opts ? opts.encoding : null;
    if (encoding == null) {
      let charset = this.charset;
      encoding = convert.Encoding.getByName(charset);
      if (encoding == null) {
        dart.throw(new core.UnsupportedError.new("Unknown charset: " + dart.str(charset)));
      }
    }
    let text = this[_text$];
    let start = dart.notNull(this[_separatorIndices$][$last]) + 1;
    if (dart.test(this.isBase64)) {
      let converter = convert.base64.decoder.fuse(core.String, encoding.decoder);
      return converter.convert(text[$substring](start));
    }
    return core._Uri._uriDecode(text, start, text.length, encoding, false);
  }
  get parameters() {
    let result = new (IdentityMapOfStringL$StringL()).new();
    for (let i = 3; i < dart.notNull(this[_separatorIndices$][$length]); i = i + 2) {
      let start = dart.notNull(this[_separatorIndices$][$_get](i - 2)) + 1;
      let equals = this[_separatorIndices$][$_get](i - 1);
      let end = this[_separatorIndices$][$_get](i);
      let key = core._Uri._uriDecode(this[_text$], start, equals, convert.utf8, false);
      let value = core._Uri._uriDecode(this[_text$], dart.notNull(equals) + 1, end, convert.utf8, false);
      result[$_set](key, value);
    }
    return result;
  }
  static _parse(text, start, sourceUri) {
    if (!(start === 0 || start === 5)) dart.assertFailed(null, L75, 3734, 12, "start == 0 || start == 5");
    if (!(start === 5)[$_equals](text[$startsWith]("data:"))) dart.assertFailed(null, L75, 3735, 12, "(start == 5) == text.startsWith(\"data:\")");
    let indices = JSArrayOfintL().of([dart.notNull(start) - 1]);
    let slashIndex = -1;
    let char = null;
    let i = start;
    for (; dart.notNull(i) < text.length; i = dart.notNull(i) + 1) {
      char = text[$codeUnitAt](i);
      if (dart.equals(char, 44) || dart.equals(char, 59)) break;
      if (dart.equals(char, 47)) {
        if (dart.notNull(slashIndex) < 0) {
          slashIndex = i;
          continue;
        }
        dart.throw(new core.FormatException.new("Invalid MIME type", text, i));
      }
    }
    if (dart.notNull(slashIndex) < 0 && dart.notNull(i) > dart.notNull(start)) {
      dart.throw(new core.FormatException.new("Invalid MIME type", text, i));
    }
    while (!dart.equals(char, 44)) {
      indices[$add](i);
      i = dart.notNull(i) + 1;
      let equalsIndex = -1;
      for (; dart.notNull(i) < text.length; i = dart.notNull(i) + 1) {
        char = text[$codeUnitAt](i);
        if (dart.equals(char, 61)) {
          if (dart.notNull(equalsIndex) < 0) equalsIndex = i;
        } else if (dart.equals(char, 59) || dart.equals(char, 44)) {
          break;
        }
      }
      if (dart.notNull(equalsIndex) >= 0) {
        indices[$add](equalsIndex);
      } else {
        let lastSeparator = indices[$last];
        if (!dart.equals(char, 44) || i !== dart.notNull(lastSeparator) + 7 || !text[$startsWith]("base64", dart.notNull(lastSeparator) + 1)) {
          dart.throw(new core.FormatException.new("Expecting '='", text, i));
        }
        break;
      }
    }
    indices[$add](i);
    let isBase64 = indices[$length][$isOdd];
    if (isBase64) {
      text = convert.base64.normalize(text, dart.notNull(i) + 1, text.length);
    } else {
      let data = core._Uri._normalize(text, dart.notNull(i) + 1, text.length, core.UriData._uricTable, {escapeDelimiters: true});
      if (data != null) {
        text = text[$replaceRange](dart.notNull(i) + 1, text.length, data);
      }
    }
    return new core.UriData.__(text, indices, sourceUri);
  }
  static _uriEncodeBytes(canonicalTable, bytes, buffer) {
    let byteOr = 0;
    for (let i = 0; i < dart.notNull(bytes[$length]); i = i + 1) {
      let byte = bytes[$_get](i);
      byteOr = (byteOr | dart.notNull(byte)) >>> 0;
      if (dart.notNull(byte) < 128 && (dart.notNull(canonicalTable[$_get](byte[$rightShift](4))) & 1 << (dart.notNull(byte) & 15)) !== 0) {
        buffer.writeCharCode(byte);
      } else {
        buffer.writeCharCode(37);
        buffer.writeCharCode("0123456789ABCDEF"[$codeUnitAt](byte[$rightShift](4)));
        buffer.writeCharCode("0123456789ABCDEF"[$codeUnitAt](dart.notNull(byte) & 15));
      }
    }
    if ((byteOr & ~255 >>> 0) !== 0) {
      for (let i = 0; i < dart.notNull(bytes[$length]); i = i + 1) {
        let byte = bytes[$_get](i);
        if (dart.notNull(byte) < 0 || dart.notNull(byte) > 255) {
          dart.throw(new core.ArgumentError.value(byte, "non-byte value"));
        }
      }
    }
  }
  toString() {
    return this[_separatorIndices$][$_get](0) === -1 ? "data:" + dart.str(this[_text$]) : this[_text$];
  }
};
(core.UriData.__ = function(_text, _separatorIndices, _uriCache) {
  this[_text$] = _text;
  this[_separatorIndices$] = _separatorIndices;
  this[_uriCache$] = _uriCache;
  ;
}).prototype = core.UriData.prototype;
dart.addTypeTests(core.UriData);
dart.addTypeCaches(core.UriData);
dart.setMethodSignature(core.UriData, () => ({
  __proto__: dart.getMethods(core.UriData.__proto__),
  contentAsBytes: dart.fnType(typed_data.Uint8List, []),
  contentAsString: dart.fnType(core.String, [], {encoding: convert.Encoding}, {})
}));
dart.setGetterSignature(core.UriData, () => ({
  __proto__: dart.getGetters(core.UriData.__proto__),
  uri: core.Uri,
  mimeType: core.String,
  charset: core.String,
  isBase64: core.bool,
  contentText: core.String,
  parameters: core.Map$(core.String, core.String)
}));
dart.setLibraryUri(core.UriData, L1$);
dart.setFieldSignature(core.UriData, () => ({
  __proto__: dart.getFields(core.UriData.__proto__),
  [_text$]: dart.finalFieldType(core.String),
  [_separatorIndices$]: dart.finalFieldType(core.List$(core.int)),
  [_uriCache$]: dart.fieldType(core.Uri)
}));
dart.defineExtensionMethods(core.UriData, ['toString']);
dart.defineLazy(core.UriData, {
  /*core.UriData._noScheme*/get _noScheme() {
    return -1;
  },
  /*core.UriData._base64*/get _base64() {
    return C103 || CT.C103;
  },
  /*core.UriData._tokenCharTable*/get _tokenCharTable() {
    return C441 || CT.C441;
  },
  /*core.UriData._uricTable*/get _uricTable() {
    return C440 || CT.C440;
  },
  /*core.UriData._base64Table*/get _base64Table() {
    return C442 || CT.C442;
  }
}, true);
var _uri$ = dart.privateName(core, "_uri");
var _schemeEnd$ = dart.privateName(core, "_schemeEnd");
var _hostStart$ = dart.privateName(core, "_hostStart");
var _portStart$ = dart.privateName(core, "_portStart");
var _pathStart$ = dart.privateName(core, "_pathStart");
var _queryStart$ = dart.privateName(core, "_queryStart");
var _fragmentStart$ = dart.privateName(core, "_fragmentStart");
var _schemeCache$ = dart.privateName(core, "_schemeCache");
var _isFile = dart.privateName(core, "_isFile");
var _isHttp = dart.privateName(core, "_isHttp");
var _isHttps = dart.privateName(core, "_isHttps");
var _isPackage = dart.privateName(core, "_isPackage");
var _isScheme = dart.privateName(core, "_isScheme");
var C443;
var C444;
var _isPort = dart.privateName(core, "_isPort");
var _simpleMerge = dart.privateName(core, "_simpleMerge");
var _toNonSimple = dart.privateName(core, "_toNonSimple");
core._SimpleUri = class _SimpleUri extends core.Object {
  get hasScheme() {
    return dart.notNull(this[_schemeEnd$]) > 0;
  }
  get hasAuthority() {
    return dart.notNull(this[_hostStart$]) > 0;
  }
  get hasUserInfo() {
    return dart.notNull(this[_hostStart$]) > dart.notNull(this[_schemeEnd$]) + 4;
  }
  get hasPort() {
    return dart.notNull(this[_hostStart$]) > 0 && dart.notNull(this[_portStart$]) + 1 < dart.notNull(this[_pathStart$]);
  }
  get hasQuery() {
    return dart.notNull(this[_queryStart$]) < dart.notNull(this[_fragmentStart$]);
  }
  get hasFragment() {
    return dart.notNull(this[_fragmentStart$]) < this[_uri$].length;
  }
  get [_isFile]() {
    return this[_schemeEnd$] === 4 && this[_uri$][$startsWith]("file");
  }
  get [_isHttp]() {
    return this[_schemeEnd$] === 4 && this[_uri$][$startsWith]("http");
  }
  get [_isHttps]() {
    return this[_schemeEnd$] === 5 && this[_uri$][$startsWith]("https");
  }
  get [_isPackage]() {
    return this[_schemeEnd$] === 7 && this[_uri$][$startsWith]("package");
  }
  [_isScheme](scheme) {
    return this[_schemeEnd$] === scheme.length && this[_uri$][$startsWith](scheme);
  }
  get hasAbsolutePath() {
    return this[_uri$][$startsWith]("/", this[_pathStart$]);
  }
  get hasEmptyPath() {
    return this[_pathStart$] == this[_queryStart$];
  }
  get isAbsolute() {
    return dart.test(this.hasScheme) && !dart.test(this.hasFragment);
  }
  isScheme(scheme) {
    if (scheme == null || scheme[$isEmpty]) return dart.notNull(this[_schemeEnd$]) < 0;
    if (scheme.length !== this[_schemeEnd$]) return false;
    return core._Uri._compareScheme(scheme, this[_uri$]);
  }
  get scheme() {
    if (dart.notNull(this[_schemeEnd$]) <= 0) return "";
    if (this[_schemeCache$] != null) return this[_schemeCache$];
    if (dart.test(this[_isHttp])) {
      this[_schemeCache$] = "http";
    } else if (dart.test(this[_isHttps])) {
      this[_schemeCache$] = "https";
    } else if (dart.test(this[_isFile])) {
      this[_schemeCache$] = "file";
    } else if (dart.test(this[_isPackage])) {
      this[_schemeCache$] = "package";
    } else {
      this[_schemeCache$] = this[_uri$][$substring](0, this[_schemeEnd$]);
    }
    return this[_schemeCache$];
  }
  get authority() {
    return dart.notNull(this[_hostStart$]) > 0 ? this[_uri$][$substring](dart.notNull(this[_schemeEnd$]) + 3, this[_pathStart$]) : "";
  }
  get userInfo() {
    return dart.notNull(this[_hostStart$]) > dart.notNull(this[_schemeEnd$]) + 3 ? this[_uri$][$substring](dart.notNull(this[_schemeEnd$]) + 3, dart.notNull(this[_hostStart$]) - 1) : "";
  }
  get host() {
    return dart.notNull(this[_hostStart$]) > 0 ? this[_uri$][$substring](this[_hostStart$], this[_portStart$]) : "";
  }
  get port() {
    if (dart.test(this.hasPort)) return core.int.parse(this[_uri$][$substring](dart.notNull(this[_portStart$]) + 1, this[_pathStart$]));
    if (dart.test(this[_isHttp])) return 80;
    if (dart.test(this[_isHttps])) return 443;
    return 0;
  }
  get path() {
    return this[_uri$][$substring](this[_pathStart$], this[_queryStart$]);
  }
  get query() {
    return dart.notNull(this[_queryStart$]) < dart.notNull(this[_fragmentStart$]) ? this[_uri$][$substring](dart.notNull(this[_queryStart$]) + 1, this[_fragmentStart$]) : "";
  }
  get fragment() {
    return dart.notNull(this[_fragmentStart$]) < this[_uri$].length ? this[_uri$][$substring](dart.notNull(this[_fragmentStart$]) + 1) : "";
  }
  get origin() {
    let isHttp = this[_isHttp];
    if (dart.notNull(this[_schemeEnd$]) < 0) {
      dart.throw(new core.StateError.new("Cannot use origin without a scheme: " + dart.str(this)));
    }
    if (!dart.test(isHttp) && !dart.test(this[_isHttps])) {
      dart.throw(new core.StateError.new("Origin is only applicable to schemes http and https: " + dart.str(this)));
    }
    if (this[_hostStart$] == this[_portStart$]) {
      dart.throw(new core.StateError.new("A " + dart.str(this.scheme) + ": URI should have a non-empty host name: " + dart.str(this)));
    }
    if (this[_hostStart$] === dart.notNull(this[_schemeEnd$]) + 3) {
      return this[_uri$][$substring](0, this[_pathStart$]);
    }
    return this[_uri$][$substring](0, dart.notNull(this[_schemeEnd$]) + 3) + this[_uri$][$substring](this[_hostStart$], this[_pathStart$]);
  }
  get pathSegments() {
    let start = this[_pathStart$];
    let end = this[_queryStart$];
    if (this[_uri$][$startsWith]("/", start)) start = dart.notNull(start) + 1;
    if (start == end) return C404 || CT.C404;
    let parts = JSArrayOfStringL().of([]);
    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
      let char = this[_uri$][$codeUnitAt](i);
      if (char === 47) {
        parts[$add](this[_uri$][$substring](start, i));
        start = dart.notNull(i) + 1;
      }
    }
    parts[$add](this[_uri$][$substring](start, end));
    return ListOfStringL().unmodifiable(parts);
  }
  get queryParameters() {
    if (!dart.test(this.hasQuery)) return C443 || CT.C443;
    return new (UnmodifiableMapViewOfStringL$StringL()).new(core.Uri.splitQueryString(this.query));
  }
  get queryParametersAll() {
    if (!dart.test(this.hasQuery)) return C444 || CT.C444;
    let queryParameterLists = core._Uri._splitQueryStringAll(this.query);
    for (let key of queryParameterLists[$keys]) {
      queryParameterLists[$_set](key, ListOfStringL().unmodifiable(core.Iterable.as(queryParameterLists[$_get](key))));
    }
    return MapOfStringL$ListLOfStringL().unmodifiable(queryParameterLists);
  }
  [_isPort](port) {
    let portDigitStart = dart.notNull(this[_portStart$]) + 1;
    return portDigitStart + port.length === this[_pathStart$] && this[_uri$][$startsWith](port, portDigitStart);
  }
  normalizePath() {
    return this;
  }
  removeFragment() {
    if (!dart.test(this.hasFragment)) return this;
    return new core._SimpleUri.new(this[_uri$][$substring](0, this[_fragmentStart$]), this[_schemeEnd$], this[_hostStart$], this[_portStart$], this[_pathStart$], this[_queryStart$], this[_fragmentStart$], this[_schemeCache$]);
  }
  replace(opts) {
    let scheme = opts && 'scheme' in opts ? opts.scheme : null;
    let userInfo = opts && 'userInfo' in opts ? opts.userInfo : null;
    let host = opts && 'host' in opts ? opts.host : null;
    let port = opts && 'port' in opts ? opts.port : null;
    let path = opts && 'path' in opts ? opts.path : null;
    let pathSegments = opts && 'pathSegments' in opts ? opts.pathSegments : null;
    let query = opts && 'query' in opts ? opts.query : null;
    let queryParameters = opts && 'queryParameters' in opts ? opts.queryParameters : null;
    let fragment = opts && 'fragment' in opts ? opts.fragment : null;
    let schemeChanged = false;
    if (scheme != null) {
      scheme = core._Uri._makeScheme(scheme, 0, scheme.length);
      schemeChanged = !dart.test(this[_isScheme](scheme));
    } else {
      scheme = this.scheme;
    }
    let isFile = scheme === "file";
    if (userInfo != null) {
      userInfo = core._Uri._makeUserInfo(userInfo, 0, userInfo.length);
    } else if (dart.notNull(this[_hostStart$]) > 0) {
      userInfo = this[_uri$][$substring](dart.notNull(this[_schemeEnd$]) + 3, this[_hostStart$]);
    } else {
      userInfo = "";
    }
    if (port != null) {
      port = core._Uri._makePort(port, scheme);
    } else {
      port = dart.test(this.hasPort) ? this.port : null;
      if (schemeChanged) {
        port = core._Uri._makePort(port, scheme);
      }
    }
    if (host != null) {
      host = core._Uri._makeHost(host, 0, host.length, false);
    } else if (dart.notNull(this[_hostStart$]) > 0) {
      host = this[_uri$][$substring](this[_hostStart$], this[_portStart$]);
    } else if (userInfo[$isNotEmpty] || port != null || isFile) {
      host = "";
    }
    let hasAuthority = host != null;
    if (path != null || pathSegments != null) {
      path = core._Uri._makePath(path, 0, core._stringOrNullLength(path), pathSegments, scheme, hasAuthority);
    } else {
      path = this[_uri$][$substring](this[_pathStart$], this[_queryStart$]);
      if ((isFile || hasAuthority && !path[$isEmpty]) && !path[$startsWith]("/")) {
        path = "/" + dart.notNull(path);
      }
    }
    if (query != null || queryParameters != null) {
      query = core._Uri._makeQuery(query, 0, core._stringOrNullLength(query), queryParameters);
    } else if (dart.notNull(this[_queryStart$]) < dart.notNull(this[_fragmentStart$])) {
      query = this[_uri$][$substring](dart.notNull(this[_queryStart$]) + 1, this[_fragmentStart$]);
    }
    if (fragment != null) {
      fragment = core._Uri._makeFragment(fragment, 0, fragment.length);
    } else if (dart.notNull(this[_fragmentStart$]) < this[_uri$].length) {
      fragment = this[_uri$][$substring](dart.notNull(this[_fragmentStart$]) + 1);
    }
    return new core._Uri._internal(scheme, userInfo, host, port, path, query, fragment);
  }
  resolve(reference) {
    return this.resolveUri(core.Uri.parse(reference));
  }
  resolveUri(reference) {
    if (core._SimpleUri.is(reference)) {
      return this[_simpleMerge](this, reference);
    }
    return this[_toNonSimple]().resolveUri(reference);
  }
  [_simpleMerge](base, ref) {
    if (dart.test(ref.hasScheme)) return ref;
    if (dart.test(ref.hasAuthority)) {
      if (!dart.test(base.hasScheme)) return ref;
      let isSimple = true;
      if (dart.test(base[_isFile])) {
        isSimple = !dart.test(ref.hasEmptyPath);
      } else if (dart.test(base[_isHttp])) {
        isSimple = !dart.test(ref[_isPort]("80"));
      } else if (dart.test(base[_isHttps])) {
        isSimple = !dart.test(ref[_isPort]("443"));
      }
      if (isSimple) {
        let delta = dart.notNull(base[_schemeEnd$]) + 1;
        let newUri = base[_uri$][$substring](0, dart.notNull(base[_schemeEnd$]) + 1) + ref[_uri$][$substring](dart.notNull(ref[_schemeEnd$]) + 1);
        return new core._SimpleUri.new(newUri, base[_schemeEnd$], dart.notNull(ref[_hostStart$]) + delta, dart.notNull(ref[_portStart$]) + delta, dart.notNull(ref[_pathStart$]) + delta, dart.notNull(ref[_queryStart$]) + delta, dart.notNull(ref[_fragmentStart$]) + delta, base[_schemeCache$]);
      } else {
        return this[_toNonSimple]().resolveUri(ref);
      }
    }
    if (dart.test(ref.hasEmptyPath)) {
      if (dart.test(ref.hasQuery)) {
        let delta = dart.notNull(base[_queryStart$]) - dart.notNull(ref[_queryStart$]);
        let newUri = base[_uri$][$substring](0, base[_queryStart$]) + ref[_uri$][$substring](ref[_queryStart$]);
        return new core._SimpleUri.new(newUri, base[_schemeEnd$], base[_hostStart$], base[_portStart$], base[_pathStart$], dart.notNull(ref[_queryStart$]) + delta, dart.notNull(ref[_fragmentStart$]) + delta, base[_schemeCache$]);
      }
      if (dart.test(ref.hasFragment)) {
        let delta = dart.notNull(base[_fragmentStart$]) - dart.notNull(ref[_fragmentStart$]);
        let newUri = base[_uri$][$substring](0, base[_fragmentStart$]) + ref[_uri$][$substring](ref[_fragmentStart$]);
        return new core._SimpleUri.new(newUri, base[_schemeEnd$], base[_hostStart$], base[_portStart$], base[_pathStart$], base[_queryStart$], dart.notNull(ref[_fragmentStart$]) + delta, base[_schemeCache$]);
      }
      return base.removeFragment();
    }
    if (dart.test(ref.hasAbsolutePath)) {
      let delta = dart.notNull(base[_pathStart$]) - dart.notNull(ref[_pathStart$]);
      let newUri = base[_uri$][$substring](0, base[_pathStart$]) + ref[_uri$][$substring](ref[_pathStart$]);
      return new core._SimpleUri.new(newUri, base[_schemeEnd$], base[_hostStart$], base[_portStart$], base[_pathStart$], dart.notNull(ref[_queryStart$]) + delta, dart.notNull(ref[_fragmentStart$]) + delta, base[_schemeCache$]);
    }
    if (dart.test(base.hasEmptyPath) && dart.test(base.hasAuthority)) {
      let refStart = ref[_pathStart$];
      while (ref[_uri$][$startsWith]("../", refStart)) {
        refStart = dart.notNull(refStart) + 3;
      }
      let delta = dart.notNull(base[_pathStart$]) - dart.notNull(refStart) + 1;
      let newUri = base[_uri$][$substring](0, base[_pathStart$]) + "/" + ref[_uri$][$substring](refStart);
      return new core._SimpleUri.new(newUri, base[_schemeEnd$], base[_hostStart$], base[_portStart$], base[_pathStart$], dart.notNull(ref[_queryStart$]) + delta, dart.notNull(ref[_fragmentStart$]) + delta, base[_schemeCache$]);
    }
    let baseUri = base[_uri$];
    let refUri = ref[_uri$];
    let baseStart = base[_pathStart$];
    let baseEnd = base[_queryStart$];
    while (baseUri[$startsWith]("../", baseStart))
      baseStart = dart.notNull(baseStart) + 3;
    let refStart = ref[_pathStart$];
    let refEnd = ref[_queryStart$];
    let backCount = 0;
    while (dart.notNull(refStart) + 3 <= dart.notNull(refEnd) && refUri[$startsWith]("../", refStart)) {
      refStart = dart.notNull(refStart) + 3;
      backCount = backCount + 1;
    }
    let insert = "";
    while (dart.notNull(baseEnd) > dart.notNull(baseStart)) {
      baseEnd = dart.notNull(baseEnd) - 1;
      let char = baseUri[$codeUnitAt](baseEnd);
      if (char === 47) {
        insert = "/";
        if (backCount === 0) break;
        backCount = backCount - 1;
      }
    }
    if (baseEnd == baseStart && !dart.test(base.hasScheme) && !dart.test(base.hasAbsolutePath)) {
      insert = "";
      refStart = dart.notNull(refStart) - backCount * 3;
    }
    let delta = dart.notNull(baseEnd) - dart.notNull(refStart) + insert.length;
    let newUri = base[_uri$][$substring](0, baseEnd) + insert + ref[_uri$][$substring](refStart);
    return new core._SimpleUri.new(newUri, base[_schemeEnd$], base[_hostStart$], base[_portStart$], base[_pathStart$], dart.notNull(ref[_queryStart$]) + delta, dart.notNull(ref[_fragmentStart$]) + delta, base[_schemeCache$]);
  }
  toFilePath(opts) {
    let windows = opts && 'windows' in opts ? opts.windows : null;
    if (dart.notNull(this[_schemeEnd$]) >= 0 && !dart.test(this[_isFile])) {
      dart.throw(new core.UnsupportedError.new("Cannot extract a file path from a " + dart.str(this.scheme) + " URI"));
    }
    if (dart.notNull(this[_queryStart$]) < this[_uri$].length) {
      if (dart.notNull(this[_queryStart$]) < dart.notNull(this[_fragmentStart$])) {
        dart.throw(new core.UnsupportedError.new("Cannot extract a file path from a URI with a query component"));
      }
      dart.throw(new core.UnsupportedError.new("Cannot extract a file path from a URI with a fragment component"));
    }
    windows == null ? windows = core._Uri._isWindows : null;
    return dart.test(windows) ? core._Uri._toWindowsFilePath(this) : this[_toFilePath]();
  }
  [_toFilePath]() {
    if (dart.notNull(this[_hostStart$]) < dart.notNull(this[_portStart$])) {
      dart.throw(new core.UnsupportedError.new("Cannot extract a non-Windows file path from a file URI " + "with an authority"));
    }
    return this.path;
  }
  get data() {
    if (!(this.scheme !== "data")) dart.assertFailed(null, L75, 4732, 12, "scheme != \"data\"");
    return null;
  }
  get hashCode() {
    let t128;
    t128 = this[_hashCodeCache];
    return t128 == null ? this[_hashCodeCache] = dart.hashCode(this[_uri$]) : t128;
  }
  _equals(other) {
    if (other == null) return false;
    if (this === other) return true;
    return core.Uri.is(other) && this[_uri$] == dart.toString(other);
  }
  [_toNonSimple]() {
    return new core._Uri._internal(this.scheme, this.userInfo, dart.test(this.hasAuthority) ? this.host : null, dart.test(this.hasPort) ? this.port : null, this.path, dart.test(this.hasQuery) ? this.query : null, dart.test(this.hasFragment) ? this.fragment : null);
  }
  toString() {
    return this[_uri$];
  }
};
(core._SimpleUri.new = function(_uri, _schemeEnd, _hostStart, _portStart, _pathStart, _queryStart, _fragmentStart, _schemeCache) {
  this[_hashCodeCache] = null;
  this[_uri$] = _uri;
  this[_schemeEnd$] = _schemeEnd;
  this[_hostStart$] = _hostStart;
  this[_portStart$] = _portStart;
  this[_pathStart$] = _pathStart;
  this[_queryStart$] = _queryStart;
  this[_fragmentStart$] = _fragmentStart;
  this[_schemeCache$] = _schemeCache;
  ;
}).prototype = core._SimpleUri.prototype;
dart.addTypeTests(core._SimpleUri);
dart.addTypeCaches(core._SimpleUri);
core._SimpleUri[dart.implements] = () => [core.Uri];
dart.setMethodSignature(core._SimpleUri, () => ({
  __proto__: dart.getMethods(core._SimpleUri.__proto__),
  [_isScheme]: dart.fnType(core.bool, [core.String]),
  isScheme: dart.fnType(core.bool, [core.String]),
  [_isPort]: dart.fnType(core.bool, [core.String]),
  normalizePath: dart.fnType(core.Uri, []),
  removeFragment: dart.fnType(core.Uri, []),
  replace: dart.fnType(core.Uri, [], {fragment: core.String, host: core.String, path: core.String, pathSegments: core.Iterable$(core.String), port: core.int, query: core.String, queryParameters: core.Map$(core.String, dart.dynamic), scheme: core.String, userInfo: core.String}, {}),
  resolve: dart.fnType(core.Uri, [core.String]),
  resolveUri: dart.fnType(core.Uri, [core.Uri]),
  [_simpleMerge]: dart.fnType(core.Uri, [core._SimpleUri, core._SimpleUri]),
  toFilePath: dart.fnType(core.String, [], {windows: core.bool}, {}),
  [_toFilePath]: dart.fnType(core.String, []),
  _equals: dart.fnType(core.bool, [core.Object]),
  [$_equals]: dart.fnType(core.bool, [core.Object]),
  [_toNonSimple]: dart.fnType(core.Uri, [])
}));
dart.setGetterSignature(core._SimpleUri, () => ({
  __proto__: dart.getGetters(core._SimpleUri.__proto__),
  hasScheme: core.bool,
  hasAuthority: core.bool,
  hasUserInfo: core.bool,
  hasPort: core.bool,
  hasQuery: core.bool,
  hasFragment: core.bool,
  [_isFile]: core.bool,
  [_isHttp]: core.bool,
  [_isHttps]: core.bool,
  [_isPackage]: core.bool,
  hasAbsolutePath: core.bool,
  hasEmptyPath: core.bool,
  isAbsolute: core.bool,
  scheme: core.String,
  authority: core.String,
  userInfo: core.String,
  host: core.String,
  port: core.int,
  path: core.String,
  query: core.String,
  fragment: core.String,
  origin: core.String,
  pathSegments: core.List$(core.String),
  queryParameters: core.Map$(core.String, core.String),
  queryParametersAll: core.Map$(core.String, core.List$(core.String)),
  data: core.UriData
}));
dart.setLibraryUri(core._SimpleUri, L1$);
dart.setFieldSignature(core._SimpleUri, () => ({
  __proto__: dart.getFields(core._SimpleUri.__proto__),
  [_uri$]: dart.finalFieldType(core.String),
  [_schemeEnd$]: dart.finalFieldType(core.int),
  [_hostStart$]: dart.finalFieldType(core.int),
  [_portStart$]: dart.finalFieldType(core.int),
  [_pathStart$]: dart.finalFieldType(core.int),
  [_queryStart$]: dart.finalFieldType(core.int),
  [_fragmentStart$]: dart.finalFieldType(core.int),
  [_schemeCache$]: dart.fieldType(core.String),
  [_hashCodeCache]: dart.fieldType(core.int)
}));
dart.defineExtensionMethods(core._SimpleUri, ['_equals', 'toString']);
dart.defineExtensionAccessors(core._SimpleUri, ['hashCode']);
var _data$0 = dart.privateName(core, "_data");
core._DataUri = class _DataUri extends core._Uri {
  get data() {
    return this[_data$0];
  }
};
(core._DataUri.new = function(_data, path, query) {
  this[_data$0] = _data;
  core._DataUri.__proto__._internal.call(this, "data", null, null, null, path, query, null);
  ;
}).prototype = core._DataUri.prototype;
dart.addTypeTests(core._DataUri);
dart.addTypeCaches(core._DataUri);
dart.setLibraryUri(core._DataUri, L1$);
dart.setFieldSignature(core._DataUri, () => ({
  __proto__: dart.getFields(core._DataUri.__proto__),
  [_data$0]: dart.finalFieldType(core.UriData)
}));
core._symbolToString = function _symbolToString(symbol) {
  return _js_helper.PrivateSymbol.is(symbol) ? _js_helper.PrivateSymbol.getName(symbol) : _internal.Symbol.getName(_internal.Symbol.as(symbol));
};
core._kNull = function _kNull(_) {
  return null;
};
core._max = function _max(a, b) {
  return dart.notNull(a) > dart.notNull(b) ? a : b;
};
core._min = function _min(a, b) {
  return dart.notNull(a) < dart.notNull(b) ? a : b;
};
core.identical = function identical(a, b) {
  return a == null ? b == null : a === b;
};
core.identityHashCode = function identityHashCode(object) {
  if (object == null) return 0;
  let hash = object[dart.identityHashCode_];
  if (hash == null) {
    hash = Math.random() * 0x3fffffff | 0;
    object[dart.identityHashCode_] = hash;
  }
  return hash;
};
core.print = function print$0(object) {
  let line = dart.str(object);
  if (_internal.printToZone == null) {
    _internal.printToConsole(line);
  } else {
    _internal.printToZone(line);
  }
};
core._isLeadSurrogate = function _isLeadSurrogate$(code) {
  return (dart.notNull(code) & 64512) === 55296;
};
core._isTrailSurrogate = function _isTrailSurrogate(code) {
  return (dart.notNull(code) & 64512) === 56320;
};
core._combineSurrogatePair = function _combineSurrogatePair$(start, end) {
  return 65536 + ((dart.notNull(start) & 1023) << 10) + (dart.notNull(end) & 1023);
};
core._createTables = function _createTables() {
  let unreserved = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~";
  let pchar = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~!$&'()*+,;=";
  let tables = ListOfUint8ListL().generate(22, dart.fn(_ => _native_typed_data.NativeUint8List.new(96), intLToUint8ListL()));
  function build(state, defaultTransition) {
    let t128;
    t128 = tables[$_get](core.int.as(state));
    t128[$fillRange](0, 96, core.int.as(defaultTransition));
    return t128;
  }
  dart.fn(build, dynamicAnddynamicToUint8ListL());
  function setChars(target, chars, transition) {
    for (let i = 0; i < chars.length; i = i + 1) {
      let char = chars[$codeUnitAt](i);
      target[$_set]((char ^ 96) >>> 0, transition);
    }
  }
  dart.fn(setChars, Uint8ListLAndStringLAndintLTovoid());
  function setRange(target, range, transition) {
    for (let i = range[$codeUnitAt](0), n = range[$codeUnitAt](1); i <= n; i = i + 1) {
      target[$_set]((i ^ 96) >>> 0, transition);
    }
  }
  dart.fn(setRange, Uint8ListLAndStringLAndintLTovoid());
  let b = null;
  b = build(0, (1 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), pchar, 1);
  setChars(typed_data.Uint8List.as(b), ".", 14);
  setChars(typed_data.Uint8List.as(b), ":", (2 | 32) >>> 0);
  setChars(typed_data.Uint8List.as(b), "/", 3);
  setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
  setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
  b = build(14, (1 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), pchar, 1);
  setChars(typed_data.Uint8List.as(b), ".", 15);
  setChars(typed_data.Uint8List.as(b), ":", (2 | 32) >>> 0);
  setChars(typed_data.Uint8List.as(b), "/", (10 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
  setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
  b = build(15, (1 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), pchar, 1);
  setChars(typed_data.Uint8List.as(b), "%", (1 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), ":", (2 | 32) >>> 0);
  setChars(typed_data.Uint8List.as(b), "/", 9);
  setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
  setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
  b = build(1, (1 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), pchar, 1);
  setChars(typed_data.Uint8List.as(b), ":", (2 | 32) >>> 0);
  setChars(typed_data.Uint8List.as(b), "/", 10);
  setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
  setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
  b = build(2, (11 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), pchar, (11 | 128) >>> 0);
  setChars(typed_data.Uint8List.as(b), "/", (3 | 128) >>> 0);
  setChars(typed_data.Uint8List.as(b), ".", (18 | 128) >>> 0);
  setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
  setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
  b = build(3, (11 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), pchar, 11);
  setChars(typed_data.Uint8List.as(b), "/", (4 | 64) >>> 0);
  setChars(typed_data.Uint8List.as(b), ".", 18);
  setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
  setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
  b = build(4, (5 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), pchar, 5);
  setRange(typed_data.Uint8List.as(b), "AZ", (5 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), ":", (6 | 96) >>> 0);
  setChars(typed_data.Uint8List.as(b), "@", (4 | 64) >>> 0);
  setChars(typed_data.Uint8List.as(b), "[", (8 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), "/", (10 | 128) >>> 0);
  setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
  setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
  b = build(5, (5 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), pchar, 5);
  setRange(typed_data.Uint8List.as(b), "AZ", (5 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), ":", (6 | 96) >>> 0);
  setChars(typed_data.Uint8List.as(b), "@", (4 | 64) >>> 0);
  setChars(typed_data.Uint8List.as(b), "/", (10 | 128) >>> 0);
  setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
  setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
  b = build(6, (7 | 224) >>> 0);
  setRange(typed_data.Uint8List.as(b), "19", 7);
  setChars(typed_data.Uint8List.as(b), "@", (4 | 64) >>> 0);
  setChars(typed_data.Uint8List.as(b), "/", (10 | 128) >>> 0);
  setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
  setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
  b = build(7, (7 | 224) >>> 0);
  setRange(typed_data.Uint8List.as(b), "09", 7);
  setChars(typed_data.Uint8List.as(b), "@", (4 | 64) >>> 0);
  setChars(typed_data.Uint8List.as(b), "/", (10 | 128) >>> 0);
  setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
  setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
  b = build(8, 8);
  setChars(typed_data.Uint8List.as(b), "]", 5);
  b = build(9, (11 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), pchar, 11);
  setChars(typed_data.Uint8List.as(b), ".", 16);
  setChars(typed_data.Uint8List.as(b), "/", (10 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
  setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
  b = build(16, (11 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), pchar, 11);
  setChars(typed_data.Uint8List.as(b), ".", 17);
  setChars(typed_data.Uint8List.as(b), "/", (10 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
  setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
  b = build(17, (11 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), pchar, 11);
  setChars(typed_data.Uint8List.as(b), "/", 9);
  setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
  setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
  b = build(10, (11 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), pchar, 11);
  setChars(typed_data.Uint8List.as(b), ".", 18);
  setChars(typed_data.Uint8List.as(b), "/", (10 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
  setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
  b = build(18, (11 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), pchar, 11);
  setChars(typed_data.Uint8List.as(b), ".", 19);
  setChars(typed_data.Uint8List.as(b), "/", (10 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
  setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
  b = build(19, (11 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), pchar, 11);
  setChars(typed_data.Uint8List.as(b), "/", (10 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
  setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
  b = build(11, (11 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), pchar, 11);
  setChars(typed_data.Uint8List.as(b), "/", 10);
  setChars(typed_data.Uint8List.as(b), "?", (12 | 160) >>> 0);
  setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
  b = build(12, (12 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), pchar, 12);
  setChars(typed_data.Uint8List.as(b), "?", 12);
  setChars(typed_data.Uint8List.as(b), "#", (13 | 192) >>> 0);
  b = build(13, (13 | 224) >>> 0);
  setChars(typed_data.Uint8List.as(b), pchar, 13);
  setChars(typed_data.Uint8List.as(b), "?", 13);
  b = build(20, (21 | 224) >>> 0);
  setRange(typed_data.Uint8List.as(b), "az", 21);
  b = build(21, (21 | 224) >>> 0);
  setRange(typed_data.Uint8List.as(b), "az", 21);
  setRange(typed_data.Uint8List.as(b), "09", 21);
  setChars(typed_data.Uint8List.as(b), "+-.", 21);
  return tables;
};
core._scan = function _scan(uri, start, end, state, indices) {
  let tables = core._scannerTables;
  if (!(dart.notNull(end) <= uri.length)) dart.assertFailed(null, L75, 4272, 10, "end <= uri.length");
  for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
    let table = tables[$_get](state);
    let char = (uri[$codeUnitAt](i) ^ 96) >>> 0;
    if (char > 95) char = 31;
    let transition = table[$_get](char);
    state = dart.notNull(transition) & 31;
    indices[$_set](transition[$rightShift](5), i);
  }
  return state;
};
core._startsWithData = function _startsWithData(text, start) {
  let delta = ((text[$codeUnitAt](dart.notNull(start) + 4) ^ 58) >>> 0) * 3;
  delta = (delta | (text[$codeUnitAt](start) ^ 100) >>> 0) >>> 0;
  delta = (delta | (text[$codeUnitAt](dart.notNull(start) + 1) ^ 97) >>> 0) >>> 0;
  delta = (delta | (text[$codeUnitAt](dart.notNull(start) + 2) ^ 116) >>> 0) >>> 0;
  delta = (delta | (text[$codeUnitAt](dart.notNull(start) + 3) ^ 97) >>> 0) >>> 0;
  return delta;
};
core._stringOrNullLength = function _stringOrNullLength(s) {
  return s == null ? 0 : s.length;
};
var C445;
var C446;
var C447;
dart.defineLazy(core, {
  /*core._dummyList*/get _dummyList() {
    return _native_typed_data.NativeUint16List.new(0);
  },
  /*core.deprecated*/get deprecated() {
    return C445 || CT.C445;
  },
  /*core.override*/get override() {
    return C446 || CT.C446;
  },
  /*core.provisional*/get provisional() {
    return null;
  },
  /*core.proxy*/get proxy() {
    return C447 || CT.C447;
  },
  /*core._SPACE*/get _SPACE() {
    return 32;
  },
  /*core._PERCENT*/get _PERCENT() {
    return 37;
  },
  /*core._AMPERSAND*/get _AMPERSAND() {
    return 38;
  },
  /*core._PLUS*/get _PLUS() {
    return 43;
  },
  /*core._DOT*/get _DOT() {
    return 46;
  },
  /*core._SLASH*/get _SLASH() {
    return 47;
  },
  /*core._COLON*/get _COLON() {
    return 58;
  },
  /*core._EQUALS*/get _EQUALS() {
    return 61;
  },
  /*core._UPPER_CASE_A*/get _UPPER_CASE_A() {
    return 65;
  },
  /*core._UPPER_CASE_Z*/get _UPPER_CASE_Z() {
    return 90;
  },
  /*core._LEFT_BRACKET*/get _LEFT_BRACKET() {
    return 91;
  },
  /*core._BACKSLASH*/get _BACKSLASH() {
    return 92;
  },
  /*core._RIGHT_BRACKET*/get _RIGHT_BRACKET() {
    return 93;
  },
  /*core._LOWER_CASE_A*/get _LOWER_CASE_A() {
    return 97;
  },
  /*core._LOWER_CASE_F*/get _LOWER_CASE_F() {
    return 102;
  },
  /*core._LOWER_CASE_Z*/get _LOWER_CASE_Z() {
    return 122;
  },
  /*core._hexDigits*/get _hexDigits() {
    return "0123456789ABCDEF";
  },
  /*core._schemeEndIndex*/get _schemeEndIndex() {
    return 1;
  },
  /*core._hostStartIndex*/get _hostStartIndex() {
    return 2;
  },
  /*core._portStartIndex*/get _portStartIndex() {
    return 3;
  },
  /*core._pathStartIndex*/get _pathStartIndex() {
    return 4;
  },
  /*core._queryStartIndex*/get _queryStartIndex() {
    return 5;
  },
  /*core._fragmentStartIndex*/get _fragmentStartIndex() {
    return 6;
  },
  /*core._notSimpleIndex*/get _notSimpleIndex() {
    return 7;
  },
  /*core._uriStart*/get _uriStart() {
    return 0;
  },
  /*core._nonSimpleEndStates*/get _nonSimpleEndStates() {
    return 14;
  },
  /*core._schemeStart*/get _schemeStart() {
    return 20;
  },
  /*core._scannerTables*/get _scannerTables() {
    return core._createTables();
  }
}, true);
var serverHeader = dart.privateName(_http, "HttpServer.serverHeader");
var autoCompress = dart.privateName(_http, "HttpServer.autoCompress");
var idleTimeout = dart.privateName(_http, "HttpServer.idleTimeout");
_http.HttpServer = class HttpServer extends core.Object {
  get serverHeader() {
    return this[serverHeader];
  }
  set serverHeader(value) {
    this[serverHeader] = value;
  }
  get autoCompress() {
    return this[autoCompress];
  }
  set autoCompress(value) {
    this[autoCompress] = value;
  }
  get idleTimeout() {
    return this[idleTimeout];
  }
  set idleTimeout(value) {
    this[idleTimeout] = value;
  }
  static bind(address, port, opts) {
    let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
    let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
    let shared = opts && 'shared' in opts ? opts.shared : false;
    return _http._HttpServer.bind(address, port, backlog, v6Only, shared);
  }
  static bindSecure(address, port, context, opts) {
    let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
    let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
    let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
    let shared = opts && 'shared' in opts ? opts.shared : false;
    return _http._HttpServer.bindSecure(address, port, context, backlog, v6Only, requestClientCertificate, shared);
  }
  static listenOn(serverSocket) {
    return new _http._HttpServer.listenOn(serverSocket);
  }
};
(_http.HttpServer[dart.mixinNew] = function() {
  this[serverHeader] = null;
  this[autoCompress] = null;
  this[idleTimeout] = null;
}).prototype = _http.HttpServer.prototype;
_http.HttpServer.prototype[dart.isStream] = true;
dart.addTypeTests(_http.HttpServer);
dart.addTypeCaches(_http.HttpServer);
_http.HttpServer[dart.implements] = () => [async.Stream$(_http.HttpRequest)];
dart.setLibraryUri(_http.HttpServer, L76);
dart.setFieldSignature(_http.HttpServer, () => ({
  __proto__: dart.getFields(_http.HttpServer.__proto__),
  serverHeader: dart.fieldType(core.String),
  autoCompress: dart.fieldType(core.bool),
  idleTimeout: dart.fieldType(core.Duration)
}));
var total = dart.privateName(_http, "HttpConnectionsInfo.total");
var active = dart.privateName(_http, "HttpConnectionsInfo.active");
var idle = dart.privateName(_http, "HttpConnectionsInfo.idle");
var closing = dart.privateName(_http, "HttpConnectionsInfo.closing");
_http.HttpConnectionsInfo = class HttpConnectionsInfo extends core.Object {
  get total() {
    return this[total];
  }
  set total(value) {
    this[total] = value;
  }
  get active() {
    return this[active];
  }
  set active(value) {
    this[active] = value;
  }
  get idle() {
    return this[idle];
  }
  set idle(value) {
    this[idle] = value;
  }
  get closing() {
    return this[closing];
  }
  set closing(value) {
    this[closing] = value;
  }
};
(_http.HttpConnectionsInfo.new = function() {
  this[total] = 0;
  this[active] = 0;
  this[idle] = 0;
  this[closing] = 0;
  ;
}).prototype = _http.HttpConnectionsInfo.prototype;
dart.addTypeTests(_http.HttpConnectionsInfo);
dart.addTypeCaches(_http.HttpConnectionsInfo);
dart.setLibraryUri(_http.HttpConnectionsInfo, L76);
dart.setFieldSignature(_http.HttpConnectionsInfo, () => ({
  __proto__: dart.getFields(_http.HttpConnectionsInfo.__proto__),
  total: dart.fieldType(core.int),
  active: dart.fieldType(core.int),
  idle: dart.fieldType(core.int),
  closing: dart.fieldType(core.int)
}));
var date = dart.privateName(_http, "HttpHeaders.date");
var expires = dart.privateName(_http, "HttpHeaders.expires");
var ifModifiedSince = dart.privateName(_http, "HttpHeaders.ifModifiedSince");
var host = dart.privateName(_http, "HttpHeaders.host");
var port = dart.privateName(_http, "HttpHeaders.port");
var contentType = dart.privateName(_http, "HttpHeaders.contentType");
var contentLength = dart.privateName(_http, "HttpHeaders.contentLength");
var persistentConnection = dart.privateName(_http, "HttpHeaders.persistentConnection");
var chunkedTransferEncoding = dart.privateName(_http, "HttpHeaders.chunkedTransferEncoding");
var C448;
var C449;
var C450;
var C451;
_http.HttpHeaders = class HttpHeaders extends core.Object {
  get date() {
    return this[date];
  }
  set date(value) {
    this[date] = value;
  }
  get expires() {
    return this[expires];
  }
  set expires(value) {
    this[expires] = value;
  }
  get ifModifiedSince() {
    return this[ifModifiedSince];
  }
  set ifModifiedSince(value) {
    this[ifModifiedSince] = value;
  }
  get host() {
    return this[host];
  }
  set host(value) {
    this[host] = value;
  }
  get port() {
    return this[port];
  }
  set port(value) {
    this[port] = value;
  }
  get contentType() {
    return this[contentType];
  }
  set contentType(value) {
    this[contentType] = value;
  }
  get contentLength() {
    return this[contentLength];
  }
  set contentLength(value) {
    this[contentLength] = value;
  }
  get persistentConnection() {
    return this[persistentConnection];
  }
  set persistentConnection(value) {
    this[persistentConnection] = value;
  }
  get chunkedTransferEncoding() {
    return this[chunkedTransferEncoding];
  }
  set chunkedTransferEncoding(value) {
    this[chunkedTransferEncoding] = value;
  }
};
(_http.HttpHeaders.new = function() {
  this[date] = null;
  this[expires] = null;
  this[ifModifiedSince] = null;
  this[host] = null;
  this[port] = null;
  this[contentType] = null;
  this[contentLength] = null;
  this[persistentConnection] = null;
  this[chunkedTransferEncoding] = null;
  ;
}).prototype = _http.HttpHeaders.prototype;
dart.addTypeTests(_http.HttpHeaders);
dart.addTypeCaches(_http.HttpHeaders);
dart.setLibraryUri(_http.HttpHeaders, L76);
dart.setFieldSignature(_http.HttpHeaders, () => ({
  __proto__: dart.getFields(_http.HttpHeaders.__proto__),
  date: dart.fieldType(core.DateTime),
  expires: dart.fieldType(core.DateTime),
  ifModifiedSince: dart.fieldType(core.DateTime),
  host: dart.fieldType(core.String),
  port: dart.fieldType(core.int),
  contentType: dart.fieldType(_http.ContentType),
  contentLength: dart.fieldType(core.int),
  persistentConnection: dart.fieldType(core.bool),
  chunkedTransferEncoding: dart.fieldType(core.bool)
}));
dart.defineLazy(_http.HttpHeaders, {
  /*_http.HttpHeaders.acceptHeader*/get acceptHeader() {
    return "accept";
  },
  /*_http.HttpHeaders.acceptCharsetHeader*/get acceptCharsetHeader() {
    return "accept-charset";
  },
  /*_http.HttpHeaders.acceptEncodingHeader*/get acceptEncodingHeader() {
    return "accept-encoding";
  },
  /*_http.HttpHeaders.acceptLanguageHeader*/get acceptLanguageHeader() {
    return "accept-language";
  },
  /*_http.HttpHeaders.acceptRangesHeader*/get acceptRangesHeader() {
    return "accept-ranges";
  },
  /*_http.HttpHeaders.ageHeader*/get ageHeader() {
    return "age";
  },
  /*_http.HttpHeaders.allowHeader*/get allowHeader() {
    return "allow";
  },
  /*_http.HttpHeaders.authorizationHeader*/get authorizationHeader() {
    return "authorization";
  },
  /*_http.HttpHeaders.cacheControlHeader*/get cacheControlHeader() {
    return "cache-control";
  },
  /*_http.HttpHeaders.connectionHeader*/get connectionHeader() {
    return "connection";
  },
  /*_http.HttpHeaders.contentEncodingHeader*/get contentEncodingHeader() {
    return "content-encoding";
  },
  /*_http.HttpHeaders.contentLanguageHeader*/get contentLanguageHeader() {
    return "content-language";
  },
  /*_http.HttpHeaders.contentLengthHeader*/get contentLengthHeader() {
    return "content-length";
  },
  /*_http.HttpHeaders.contentLocationHeader*/get contentLocationHeader() {
    return "content-location";
  },
  /*_http.HttpHeaders.contentMD5Header*/get contentMD5Header() {
    return "content-md5";
  },
  /*_http.HttpHeaders.contentRangeHeader*/get contentRangeHeader() {
    return "content-range";
  },
  /*_http.HttpHeaders.contentTypeHeader*/get contentTypeHeader() {
    return "content-type";
  },
  /*_http.HttpHeaders.dateHeader*/get dateHeader() {
    return "date";
  },
  /*_http.HttpHeaders.etagHeader*/get etagHeader() {
    return "etag";
  },
  /*_http.HttpHeaders.expectHeader*/get expectHeader() {
    return "expect";
  },
  /*_http.HttpHeaders.expiresHeader*/get expiresHeader() {
    return "expires";
  },
  /*_http.HttpHeaders.fromHeader*/get fromHeader() {
    return "from";
  },
  /*_http.HttpHeaders.hostHeader*/get hostHeader() {
    return "host";
  },
  /*_http.HttpHeaders.ifMatchHeader*/get ifMatchHeader() {
    return "if-match";
  },
  /*_http.HttpHeaders.ifModifiedSinceHeader*/get ifModifiedSinceHeader() {
    return "if-modified-since";
  },
  /*_http.HttpHeaders.ifNoneMatchHeader*/get ifNoneMatchHeader() {
    return "if-none-match";
  },
  /*_http.HttpHeaders.ifRangeHeader*/get ifRangeHeader() {
    return "if-range";
  },
  /*_http.HttpHeaders.ifUnmodifiedSinceHeader*/get ifUnmodifiedSinceHeader() {
    return "if-unmodified-since";
  },
  /*_http.HttpHeaders.lastModifiedHeader*/get lastModifiedHeader() {
    return "last-modified";
  },
  /*_http.HttpHeaders.locationHeader*/get locationHeader() {
    return "location";
  },
  /*_http.HttpHeaders.maxForwardsHeader*/get maxForwardsHeader() {
    return "max-forwards";
  },
  /*_http.HttpHeaders.pragmaHeader*/get pragmaHeader() {
    return "pragma";
  },
  /*_http.HttpHeaders.proxyAuthenticateHeader*/get proxyAuthenticateHeader() {
    return "proxy-authenticate";
  },
  /*_http.HttpHeaders.proxyAuthorizationHeader*/get proxyAuthorizationHeader() {
    return "proxy-authorization";
  },
  /*_http.HttpHeaders.rangeHeader*/get rangeHeader() {
    return "range";
  },
  /*_http.HttpHeaders.refererHeader*/get refererHeader() {
    return "referer";
  },
  /*_http.HttpHeaders.retryAfterHeader*/get retryAfterHeader() {
    return "retry-after";
  },
  /*_http.HttpHeaders.serverHeader*/get serverHeader() {
    return "server";
  },
  /*_http.HttpHeaders.teHeader*/get teHeader() {
    return "te";
  },
  /*_http.HttpHeaders.trailerHeader*/get trailerHeader() {
    return "trailer";
  },
  /*_http.HttpHeaders.transferEncodingHeader*/get transferEncodingHeader() {
    return "transfer-encoding";
  },
  /*_http.HttpHeaders.upgradeHeader*/get upgradeHeader() {
    return "upgrade";
  },
  /*_http.HttpHeaders.userAgentHeader*/get userAgentHeader() {
    return "user-agent";
  },
  /*_http.HttpHeaders.varyHeader*/get varyHeader() {
    return "vary";
  },
  /*_http.HttpHeaders.viaHeader*/get viaHeader() {
    return "via";
  },
  /*_http.HttpHeaders.warningHeader*/get warningHeader() {
    return "warning";
  },
  /*_http.HttpHeaders.wwwAuthenticateHeader*/get wwwAuthenticateHeader() {
    return "www-authenticate";
  },
  /*_http.HttpHeaders.ACCEPT*/get ACCEPT() {
    return "accept";
  },
  /*_http.HttpHeaders.ACCEPT_CHARSET*/get ACCEPT_CHARSET() {
    return "accept-charset";
  },
  /*_http.HttpHeaders.ACCEPT_ENCODING*/get ACCEPT_ENCODING() {
    return "accept-encoding";
  },
  /*_http.HttpHeaders.ACCEPT_LANGUAGE*/get ACCEPT_LANGUAGE() {
    return "accept-language";
  },
  /*_http.HttpHeaders.ACCEPT_RANGES*/get ACCEPT_RANGES() {
    return "accept-ranges";
  },
  /*_http.HttpHeaders.AGE*/get AGE() {
    return "age";
  },
  /*_http.HttpHeaders.ALLOW*/get ALLOW() {
    return "allow";
  },
  /*_http.HttpHeaders.AUTHORIZATION*/get AUTHORIZATION() {
    return "authorization";
  },
  /*_http.HttpHeaders.CACHE_CONTROL*/get CACHE_CONTROL() {
    return "cache-control";
  },
  /*_http.HttpHeaders.CONNECTION*/get CONNECTION() {
    return "connection";
  },
  /*_http.HttpHeaders.CONTENT_ENCODING*/get CONTENT_ENCODING() {
    return "content-encoding";
  },
  /*_http.HttpHeaders.CONTENT_LANGUAGE*/get CONTENT_LANGUAGE() {
    return "content-language";
  },
  /*_http.HttpHeaders.CONTENT_LENGTH*/get CONTENT_LENGTH() {
    return "content-length";
  },
  /*_http.HttpHeaders.CONTENT_LOCATION*/get CONTENT_LOCATION() {
    return "content-location";
  },
  /*_http.HttpHeaders.CONTENT_MD5*/get CONTENT_MD5() {
    return "content-md5";
  },
  /*_http.HttpHeaders.CONTENT_RANGE*/get CONTENT_RANGE() {
    return "content-range";
  },
  /*_http.HttpHeaders.CONTENT_TYPE*/get CONTENT_TYPE() {
    return "content-type";
  },
  /*_http.HttpHeaders.DATE*/get DATE() {
    return "date";
  },
  /*_http.HttpHeaders.ETAG*/get ETAG() {
    return "etag";
  },
  /*_http.HttpHeaders.EXPECT*/get EXPECT() {
    return "expect";
  },
  /*_http.HttpHeaders.EXPIRES*/get EXPIRES() {
    return "expires";
  },
  /*_http.HttpHeaders.FROM*/get FROM() {
    return "from";
  },
  /*_http.HttpHeaders.HOST*/get HOST() {
    return "host";
  },
  /*_http.HttpHeaders.IF_MATCH*/get IF_MATCH() {
    return "if-match";
  },
  /*_http.HttpHeaders.IF_MODIFIED_SINCE*/get IF_MODIFIED_SINCE() {
    return "if-modified-since";
  },
  /*_http.HttpHeaders.IF_NONE_MATCH*/get IF_NONE_MATCH() {
    return "if-none-match";
  },
  /*_http.HttpHeaders.IF_RANGE*/get IF_RANGE() {
    return "if-range";
  },
  /*_http.HttpHeaders.IF_UNMODIFIED_SINCE*/get IF_UNMODIFIED_SINCE() {
    return "if-unmodified-since";
  },
  /*_http.HttpHeaders.LAST_MODIFIED*/get LAST_MODIFIED() {
    return "last-modified";
  },
  /*_http.HttpHeaders.LOCATION*/get LOCATION() {
    return "location";
  },
  /*_http.HttpHeaders.MAX_FORWARDS*/get MAX_FORWARDS() {
    return "max-forwards";
  },
  /*_http.HttpHeaders.PRAGMA*/get PRAGMA() {
    return "pragma";
  },
  /*_http.HttpHeaders.PROXY_AUTHENTICATE*/get PROXY_AUTHENTICATE() {
    return "proxy-authenticate";
  },
  /*_http.HttpHeaders.PROXY_AUTHORIZATION*/get PROXY_AUTHORIZATION() {
    return "proxy-authorization";
  },
  /*_http.HttpHeaders.RANGE*/get RANGE() {
    return "range";
  },
  /*_http.HttpHeaders.REFERER*/get REFERER() {
    return "referer";
  },
  /*_http.HttpHeaders.RETRY_AFTER*/get RETRY_AFTER() {
    return "retry-after";
  },
  /*_http.HttpHeaders.SERVER*/get SERVER() {
    return "server";
  },
  /*_http.HttpHeaders.TE*/get TE() {
    return "te";
  },
  /*_http.HttpHeaders.TRAILER*/get TRAILER() {
    return "trailer";
  },
  /*_http.HttpHeaders.TRANSFER_ENCODING*/get TRANSFER_ENCODING() {
    return "transfer-encoding";
  },
  /*_http.HttpHeaders.UPGRADE*/get UPGRADE() {
    return "upgrade";
  },
  /*_http.HttpHeaders.USER_AGENT*/get USER_AGENT() {
    return "user-agent";
  },
  /*_http.HttpHeaders.VARY*/get VARY() {
    return "vary";
  },
  /*_http.HttpHeaders.VIA*/get VIA() {
    return "via";
  },
  /*_http.HttpHeaders.WARNING*/get WARNING() {
    return "warning";
  },
  /*_http.HttpHeaders.WWW_AUTHENTICATE*/get WWW_AUTHENTICATE() {
    return "www-authenticate";
  },
  /*_http.HttpHeaders.cookieHeader*/get cookieHeader() {
    return "cookie";
  },
  /*_http.HttpHeaders.setCookieHeader*/get setCookieHeader() {
    return "set-cookie";
  },
  /*_http.HttpHeaders.COOKIE*/get COOKIE() {
    return "cookie";
  },
  /*_http.HttpHeaders.SET_COOKIE*/get SET_COOKIE() {
    return "set-cookie";
  },
  /*_http.HttpHeaders.generalHeaders*/get generalHeaders() {
    return C448 || CT.C448;
  },
  /*_http.HttpHeaders.GENERAL_HEADERS*/get GENERAL_HEADERS() {
    return C448 || CT.C448;
  },
  /*_http.HttpHeaders.entityHeaders*/get entityHeaders() {
    return C449 || CT.C449;
  },
  /*_http.HttpHeaders.ENTITY_HEADERS*/get ENTITY_HEADERS() {
    return C449 || CT.C449;
  },
  /*_http.HttpHeaders.responseHeaders*/get responseHeaders() {
    return C450 || CT.C450;
  },
  /*_http.HttpHeaders.RESPONSE_HEADERS*/get RESPONSE_HEADERS() {
    return C450 || CT.C450;
  },
  /*_http.HttpHeaders.requestHeaders*/get requestHeaders() {
    return C451 || CT.C451;
  },
  /*_http.HttpHeaders.REQUEST_HEADERS*/get REQUEST_HEADERS() {
    return C451 || CT.C451;
  }
}, true);
_http.HeaderValue = class HeaderValue extends core.Object {
  static new(value = "", parameters = C443 || CT.C443) {
    return new _http._HeaderValue.new(value, parameters);
  }
  static parse(value, opts) {
    let parameterSeparator = opts && 'parameterSeparator' in opts ? opts.parameterSeparator : ";";
    let valueSeparator = opts && 'valueSeparator' in opts ? opts.valueSeparator : null;
    let preserveBackslash = opts && 'preserveBackslash' in opts ? opts.preserveBackslash : false;
    return _http._HeaderValue.parse(value, {parameterSeparator: parameterSeparator, valueSeparator: valueSeparator, preserveBackslash: preserveBackslash});
  }
};
(_http.HeaderValue[dart.mixinNew] = function() {
}).prototype = _http.HeaderValue.prototype;
dart.addTypeTests(_http.HeaderValue);
dart.addTypeCaches(_http.HeaderValue);
dart.setLibraryUri(_http.HeaderValue, L76);
_http.HttpSession = class HttpSession extends core.Object {};
(_http.HttpSession.new = function() {
  ;
}).prototype = _http.HttpSession.prototype;
_http.HttpSession.prototype[dart.isMap] = true;
dart.addTypeTests(_http.HttpSession);
dart.addTypeCaches(_http.HttpSession);
_http.HttpSession[dart.implements] = () => [core.Map];
dart.setLibraryUri(_http.HttpSession, L76);
_http.ContentType = class ContentType extends core.Object {
  static new(primaryType, subType, opts) {
    let charset = opts && 'charset' in opts ? opts.charset : null;
    let parameters = opts && 'parameters' in opts ? opts.parameters : C443 || CT.C443;
    return new _http._ContentType.new(primaryType, subType, charset, parameters);
  }
  static parse(value) {
    return _http._ContentType.parse(value);
  }
};
(_http.ContentType[dart.mixinNew] = function() {
}).prototype = _http.ContentType.prototype;
dart.addTypeTests(_http.ContentType);
dart.addTypeCaches(_http.ContentType);
_http.ContentType[dart.implements] = () => [_http.HeaderValue];
dart.setLibraryUri(_http.ContentType, L76);
dart.defineLazy(_http.ContentType, {
  /*_http.ContentType.text*/get text() {
    return _http.ContentType.new("text", "plain", {charset: "utf-8"});
  },
  /*_http.ContentType.TEXT*/get TEXT() {
    return _http.ContentType.text;
  },
  /*_http.ContentType.html*/get html() {
    return _http.ContentType.new("text", "html", {charset: "utf-8"});
  },
  /*_http.ContentType.HTML*/get HTML() {
    return _http.ContentType.html;
  },
  /*_http.ContentType.json*/get json() {
    return _http.ContentType.new("application", "json", {charset: "utf-8"});
  },
  /*_http.ContentType.JSON*/get JSON() {
    return _http.ContentType.json;
  },
  /*_http.ContentType.binary*/get binary() {
    return _http.ContentType.new("application", "octet-stream");
  },
  /*_http.ContentType.BINARY*/get BINARY() {
    return _http.ContentType.binary;
  }
}, true);
var name = dart.privateName(_http, "Cookie.name");
var value$5 = dart.privateName(_http, "Cookie.value");
var expires$ = dart.privateName(_http, "Cookie.expires");
var maxAge = dart.privateName(_http, "Cookie.maxAge");
var domain = dart.privateName(_http, "Cookie.domain");
var path = dart.privateName(_http, "Cookie.path");
var secure = dart.privateName(_http, "Cookie.secure");
var httpOnly = dart.privateName(_http, "Cookie.httpOnly");
_http.Cookie = class Cookie extends core.Object {
  get name() {
    return this[name];
  }
  set name(value) {
    this[name] = value;
  }
  get value() {
    return this[value$5];
  }
  set value(value) {
    this[value$5] = value;
  }
  get expires() {
    return this[expires$];
  }
  set expires(value) {
    this[expires$] = value;
  }
  get maxAge() {
    return this[maxAge];
  }
  set maxAge(value) {
    this[maxAge] = value;
  }
  get domain() {
    return this[domain];
  }
  set domain(value) {
    this[domain] = value;
  }
  get path() {
    return this[path];
  }
  set path(value) {
    this[path] = value;
  }
  get secure() {
    return this[secure];
  }
  set secure(value) {
    this[secure] = value;
  }
  get httpOnly() {
    return this[httpOnly];
  }
  set httpOnly(value) {
    this[httpOnly] = value;
  }
  static new(name, value) {
    return new _http._Cookie.new(name, value);
  }
  static fromSetCookieValue(value) {
    return new _http._Cookie.fromSetCookieValue(value);
  }
};
(_http.Cookie[dart.mixinNew] = function() {
  this[name] = null;
  this[value$5] = null;
  this[expires$] = null;
  this[maxAge] = null;
  this[domain] = null;
  this[path] = null;
  this[secure] = null;
  this[httpOnly] = null;
}).prototype = _http.Cookie.prototype;
dart.addTypeTests(_http.Cookie);
dart.addTypeCaches(_http.Cookie);
dart.setLibraryUri(_http.Cookie, L76);
dart.setFieldSignature(_http.Cookie, () => ({
  __proto__: dart.getFields(_http.Cookie.__proto__),
  name: dart.fieldType(core.String),
  value: dart.fieldType(core.String),
  expires: dart.fieldType(core.DateTime),
  maxAge: dart.fieldType(core.int),
  domain: dart.fieldType(core.String),
  path: dart.fieldType(core.String),
  secure: dart.fieldType(core.bool),
  httpOnly: dart.fieldType(core.bool)
}));
_http.HttpRequest = class HttpRequest extends core.Object {};
(_http.HttpRequest.new = function() {
  ;
}).prototype = _http.HttpRequest.prototype;
_http.HttpRequest.prototype[dart.isStream] = true;
dart.addTypeTests(_http.HttpRequest);
dart.addTypeCaches(_http.HttpRequest);
_http.HttpRequest[dart.implements] = () => [async.Stream$(typed_data.Uint8List)];
dart.setLibraryUri(_http.HttpRequest, L76);
var contentLength$ = dart.privateName(_http, "HttpResponse.contentLength");
var statusCode = dart.privateName(_http, "HttpResponse.statusCode");
var reasonPhrase = dart.privateName(_http, "HttpResponse.reasonPhrase");
var persistentConnection$ = dart.privateName(_http, "HttpResponse.persistentConnection");
var deadline = dart.privateName(_http, "HttpResponse.deadline");
var bufferOutput = dart.privateName(_http, "HttpResponse.bufferOutput");
_http.HttpResponse = class HttpResponse extends core.Object {
  get contentLength() {
    return this[contentLength$];
  }
  set contentLength(value) {
    this[contentLength$] = value;
  }
  get statusCode() {
    return this[statusCode];
  }
  set statusCode(value) {
    this[statusCode] = value;
  }
  get reasonPhrase() {
    return this[reasonPhrase];
  }
  set reasonPhrase(value) {
    this[reasonPhrase] = value;
  }
  get persistentConnection() {
    return this[persistentConnection$];
  }
  set persistentConnection(value) {
    this[persistentConnection$] = value;
  }
  get deadline() {
    return this[deadline];
  }
  set deadline(value) {
    this[deadline] = value;
  }
  get bufferOutput() {
    return this[bufferOutput];
  }
  set bufferOutput(value) {
    this[bufferOutput] = value;
  }
};
(_http.HttpResponse.new = function() {
  this[contentLength$] = null;
  this[statusCode] = null;
  this[reasonPhrase] = null;
  this[persistentConnection$] = null;
  this[deadline] = null;
  this[bufferOutput] = null;
  ;
}).prototype = _http.HttpResponse.prototype;
dart.addTypeTests(_http.HttpResponse);
dart.addTypeCaches(_http.HttpResponse);
_http.HttpResponse[dart.implements] = () => [io.IOSink];
dart.setLibraryUri(_http.HttpResponse, L76);
dart.setFieldSignature(_http.HttpResponse, () => ({
  __proto__: dart.getFields(_http.HttpResponse.__proto__),
  contentLength: dart.fieldType(core.int),
  statusCode: dart.fieldType(core.int),
  reasonPhrase: dart.fieldType(core.String),
  persistentConnection: dart.fieldType(core.bool),
  deadline: dart.fieldType(core.Duration),
  bufferOutput: dart.fieldType(core.bool)
}));
var idleTimeout$ = dart.privateName(_http, "HttpClient.idleTimeout");
var connectionTimeout = dart.privateName(_http, "HttpClient.connectionTimeout");
var maxConnectionsPerHost = dart.privateName(_http, "HttpClient.maxConnectionsPerHost");
var autoUncompress = dart.privateName(_http, "HttpClient.autoUncompress");
var userAgent = dart.privateName(_http, "HttpClient.userAgent");
_http.HttpClient = class HttpClient extends core.Object {
  get idleTimeout() {
    return this[idleTimeout$];
  }
  set idleTimeout(value) {
    this[idleTimeout$] = value;
  }
  get connectionTimeout() {
    return this[connectionTimeout];
  }
  set connectionTimeout(value) {
    this[connectionTimeout] = value;
  }
  get maxConnectionsPerHost() {
    return this[maxConnectionsPerHost];
  }
  set maxConnectionsPerHost(value) {
    this[maxConnectionsPerHost] = value;
  }
  get autoUncompress() {
    return this[autoUncompress];
  }
  set autoUncompress(value) {
    this[autoUncompress] = value;
  }
  get userAgent() {
    return this[userAgent];
  }
  set userAgent(value) {
    this[userAgent] = value;
  }
  static set enableTimelineLogging(value) {
    let t128;
    _http.HttpClient._enableTimelineLogging = (t128 = value, t128 == null ? false : t128);
  }
  static get enableTimelineLogging() {
    return _http.HttpClient._enableTimelineLogging;
  }
  static new(opts) {
    let context = opts && 'context' in opts ? opts.context : null;
    let overrides = _http.HttpOverrides.current;
    if (overrides == null) {
      return new _http._HttpClient.new(context);
    }
    return overrides.createHttpClient(context);
  }
  static findProxyFromEnvironment(url, opts) {
    let environment = opts && 'environment' in opts ? opts.environment : null;
    let overrides = _http.HttpOverrides.current;
    if (overrides == null) {
      return _http._HttpClient._findProxyFromEnvironment(url, environment);
    }
    return overrides.findProxyFromEnvironment(url, environment);
  }
};
(_http.HttpClient[dart.mixinNew] = function() {
  this[idleTimeout$] = null;
  this[connectionTimeout] = null;
  this[maxConnectionsPerHost] = null;
  this[autoUncompress] = null;
  this[userAgent] = null;
}).prototype = _http.HttpClient.prototype;
dart.addTypeTests(_http.HttpClient);
dart.addTypeCaches(_http.HttpClient);
dart.setLibraryUri(_http.HttpClient, L76);
dart.setFieldSignature(_http.HttpClient, () => ({
  __proto__: dart.getFields(_http.HttpClient.__proto__),
  idleTimeout: dart.fieldType(core.Duration),
  connectionTimeout: dart.fieldType(core.Duration),
  maxConnectionsPerHost: dart.fieldType(core.int),
  autoUncompress: dart.fieldType(core.bool),
  userAgent: dart.fieldType(core.String)
}));
dart.defineLazy(_http.HttpClient, {
  /*_http.HttpClient.defaultHttpPort*/get defaultHttpPort() {
    return 80;
  },
  /*_http.HttpClient.DEFAULT_HTTP_PORT*/get DEFAULT_HTTP_PORT() {
    return 80;
  },
  /*_http.HttpClient.defaultHttpsPort*/get defaultHttpsPort() {
    return 443;
  },
  /*_http.HttpClient.DEFAULT_HTTPS_PORT*/get DEFAULT_HTTPS_PORT() {
    return 443;
  },
  /*_http.HttpClient._enableTimelineLogging*/get _enableTimelineLogging() {
    return false;
  },
  set _enableTimelineLogging(_) {}
}, true);
var persistentConnection$0 = dart.privateName(_http, "HttpClientRequest.persistentConnection");
var followRedirects = dart.privateName(_http, "HttpClientRequest.followRedirects");
var maxRedirects = dart.privateName(_http, "HttpClientRequest.maxRedirects");
var contentLength$0 = dart.privateName(_http, "HttpClientRequest.contentLength");
var bufferOutput$ = dart.privateName(_http, "HttpClientRequest.bufferOutput");
_http.HttpClientRequest = class HttpClientRequest extends core.Object {
  get persistentConnection() {
    return this[persistentConnection$0];
  }
  set persistentConnection(value) {
    this[persistentConnection$0] = value;
  }
  get followRedirects() {
    return this[followRedirects];
  }
  set followRedirects(value) {
    this[followRedirects] = value;
  }
  get maxRedirects() {
    return this[maxRedirects];
  }
  set maxRedirects(value) {
    this[maxRedirects] = value;
  }
  get contentLength() {
    return this[contentLength$0];
  }
  set contentLength(value) {
    this[contentLength$0] = value;
  }
  get bufferOutput() {
    return this[bufferOutput$];
  }
  set bufferOutput(value) {
    this[bufferOutput$] = value;
  }
};
(_http.HttpClientRequest.new = function() {
  this[persistentConnection$0] = null;
  this[followRedirects] = null;
  this[maxRedirects] = null;
  this[contentLength$0] = null;
  this[bufferOutput$] = null;
  ;
}).prototype = _http.HttpClientRequest.prototype;
dart.addTypeTests(_http.HttpClientRequest);
dart.addTypeCaches(_http.HttpClientRequest);
_http.HttpClientRequest[dart.implements] = () => [io.IOSink];
dart.setLibraryUri(_http.HttpClientRequest, L76);
dart.setFieldSignature(_http.HttpClientRequest, () => ({
  __proto__: dart.getFields(_http.HttpClientRequest.__proto__),
  persistentConnection: dart.fieldType(core.bool),
  followRedirects: dart.fieldType(core.bool),
  maxRedirects: dart.fieldType(core.int),
  contentLength: dart.fieldType(core.int),
  bufferOutput: dart.fieldType(core.bool)
}));
_http.HttpClientResponse = class HttpClientResponse extends core.Object {};
(_http.HttpClientResponse.new = function() {
  ;
}).prototype = _http.HttpClientResponse.prototype;
_http.HttpClientResponse.prototype[dart.isStream] = true;
dart.addTypeTests(_http.HttpClientResponse);
dart.addTypeCaches(_http.HttpClientResponse);
_http.HttpClientResponse[dart.implements] = () => [async.Stream$(core.List$(core.int))];
dart.setLibraryUri(_http.HttpClientResponse, L76);
var _name$7 = dart.privateName(_http, "_name");
var C452;
var C453;
var C454;
var C455;
_http.HttpClientResponseCompressionState = class HttpClientResponseCompressionState extends core.Object {
  toString() {
    return this[_name$7];
  }
};
(_http.HttpClientResponseCompressionState.new = function(index, _name) {
  this.index = index;
  this[_name$7] = _name;
  ;
}).prototype = _http.HttpClientResponseCompressionState.prototype;
dart.addTypeTests(_http.HttpClientResponseCompressionState);
dart.addTypeCaches(_http.HttpClientResponseCompressionState);
dart.setLibraryUri(_http.HttpClientResponseCompressionState, L76);
dart.setFieldSignature(_http.HttpClientResponseCompressionState, () => ({
  __proto__: dart.getFields(_http.HttpClientResponseCompressionState.__proto__),
  index: dart.finalFieldType(core.int),
  [_name$7]: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(_http.HttpClientResponseCompressionState, ['toString']);
_http.HttpClientResponseCompressionState.notCompressed = C452 || CT.C452;
_http.HttpClientResponseCompressionState.decompressed = C453 || CT.C453;
_http.HttpClientResponseCompressionState.compressed = C454 || CT.C454;
_http.HttpClientResponseCompressionState.values = C455 || CT.C455;
_http.HttpClientCredentials = class HttpClientCredentials extends core.Object {};
(_http.HttpClientCredentials.new = function() {
  ;
}).prototype = _http.HttpClientCredentials.prototype;
dart.addTypeTests(_http.HttpClientCredentials);
dart.addTypeCaches(_http.HttpClientCredentials);
dart.setLibraryUri(_http.HttpClientCredentials, L76);
_http.HttpClientBasicCredentials = class HttpClientBasicCredentials extends _http.HttpClientCredentials {
  static new(username, password) {
    return new _http._HttpClientBasicCredentials.new(username, password);
  }
};
dart.addTypeTests(_http.HttpClientBasicCredentials);
dart.addTypeCaches(_http.HttpClientBasicCredentials);
dart.setLibraryUri(_http.HttpClientBasicCredentials, L76);
_http.HttpClientDigestCredentials = class HttpClientDigestCredentials extends _http.HttpClientCredentials {
  static new(username, password) {
    return new _http._HttpClientDigestCredentials.new(username, password);
  }
};
dart.addTypeTests(_http.HttpClientDigestCredentials);
dart.addTypeCaches(_http.HttpClientDigestCredentials);
dart.setLibraryUri(_http.HttpClientDigestCredentials, L76);
_http.HttpConnectionInfo = class HttpConnectionInfo extends core.Object {};
(_http.HttpConnectionInfo.new = function() {
  ;
}).prototype = _http.HttpConnectionInfo.prototype;
dart.addTypeTests(_http.HttpConnectionInfo);
dart.addTypeCaches(_http.HttpConnectionInfo);
dart.setLibraryUri(_http.HttpConnectionInfo, L76);
_http.RedirectInfo = class RedirectInfo extends core.Object {};
(_http.RedirectInfo.new = function() {
  ;
}).prototype = _http.RedirectInfo.prototype;
dart.addTypeTests(_http.RedirectInfo);
dart.addTypeCaches(_http.RedirectInfo);
dart.setLibraryUri(_http.RedirectInfo, L76);
_http.DetachedSocket = class DetachedSocket extends core.Object {};
(_http.DetachedSocket.new = function() {
  ;
}).prototype = _http.DetachedSocket.prototype;
dart.addTypeTests(_http.DetachedSocket);
dart.addTypeCaches(_http.DetachedSocket);
dart.setLibraryUri(_http.DetachedSocket, L76);
var message$17 = dart.privateName(_http, "HttpException.message");
var uri$0 = dart.privateName(_http, "HttpException.uri");
_http.HttpException = class HttpException extends core.Object {
  get message() {
    return this[message$17];
  }
  set message(value) {
    super.message = value;
  }
  get uri() {
    return this[uri$0];
  }
  set uri(value) {
    super.uri = value;
  }
  toString() {
    let t128;
    let b = (t128 = new core.StringBuffer.new(), t128.write("HttpException: "), t128.write(this.message), t128);
    if (this.uri != null) {
      b.write(", uri = " + dart.str(this.uri));
    }
    return dart.toString(b);
  }
};
(_http.HttpException.new = function(message, opts) {
  let uri = opts && 'uri' in opts ? opts.uri : null;
  this[message$17] = message;
  this[uri$0] = uri;
  ;
}).prototype = _http.HttpException.prototype;
dart.addTypeTests(_http.HttpException);
dart.addTypeCaches(_http.HttpException);
_http.HttpException[dart.implements] = () => [io.IOException];
dart.setLibraryUri(_http.HttpException, L76);
dart.setFieldSignature(_http.HttpException, () => ({
  __proto__: dart.getFields(_http.HttpException.__proto__),
  message: dart.finalFieldType(core.String),
  uri: dart.finalFieldType(core.Uri)
}));
dart.defineExtensionMethods(_http.HttpException, ['toString']);
var message$18 = dart.privateName(_http, "RedirectException.message");
var redirects$ = dart.privateName(_http, "RedirectException.redirects");
_http.RedirectException = class RedirectException extends core.Object {
  get message() {
    return this[message$18];
  }
  set message(value) {
    super.message = value;
  }
  get redirects() {
    return this[redirects$];
  }
  set redirects(value) {
    super.redirects = value;
  }
  toString() {
    return "RedirectException: " + dart.str(this.message);
  }
  get uri() {
    return this.redirects[$last].location;
  }
};
(_http.RedirectException.new = function(message, redirects) {
  this[message$18] = message;
  this[redirects$] = redirects;
  ;
}).prototype = _http.RedirectException.prototype;
dart.addTypeTests(_http.RedirectException);
dart.addTypeCaches(_http.RedirectException);
_http.RedirectException[dart.implements] = () => [_http.HttpException];
dart.setGetterSignature(_http.RedirectException, () => ({
  __proto__: dart.getGetters(_http.RedirectException.__proto__),
  uri: core.Uri
}));
dart.setLibraryUri(_http.RedirectException, L76);
dart.setFieldSignature(_http.RedirectException, () => ({
  __proto__: dart.getFields(_http.RedirectException.__proto__),
  message: dart.finalFieldType(core.String),
  redirects: dart.finalFieldType(core.List$(_http.RedirectInfo))
}));
dart.defineExtensionMethods(_http.RedirectException, ['toString']);
var C456;
_http._CryptoUtils = class _CryptoUtils extends core.Object {
  static getRandomBytes(count) {
    let result = _native_typed_data.NativeUint8List.new(count);
    for (let i = 0; i < dart.notNull(count); i = i + 1) {
      result[$_set](i, _http._CryptoUtils._rng.nextInt(255));
    }
    return result;
  }
  static bytesToHex(bytes) {
    let result = new core.StringBuffer.new();
    for (let part of bytes) {
      result.write((dart.notNull(part) < 16 ? "0" : "") + part[$toRadixString](16));
    }
    return result.toString();
  }
  static bytesToBase64(bytes, urlSafe = false, addLineSeparator = false) {
    let t128, t128$, t128$0, t128$1, t128$2, t128$3, t128$4, t128$5, t128$6, t128$7, t128$8, t128$9, t128$10, t128$11, t128$12, t128$13, t128$14;
    let len = bytes[$length];
    if (len === 0) {
      return "";
    }
    let lookup = dart.test(urlSafe) ? _http._CryptoUtils._encodeTableUrlSafe : _http._CryptoUtils._encodeTable;
    let remainderLength = dart.asNullableInt(len[$remainder](3));
    let chunkLength = dart.notNull(len) - remainderLength;
    let outputLen = (dart.notNull(len) / 3)[$truncate]() * 4 + (remainderLength > 0 ? 4 : 0);
    if (dart.test(addLineSeparator)) {
      outputLen = outputLen + (((outputLen - 1) / 76)[$truncate]() << 1 >>> 0);
    }
    let out = ListOfintL().new(outputLen);
    let j = 0;
    let i = 0;
    let c = 0;
    while (i < chunkLength) {
      let x = (dart.notNull(bytes[$_get]((t128 = i, i = t128 + 1, t128))) << 16 & 16777215 | dart.notNull(bytes[$_get]((t128$ = i, i = t128$ + 1, t128$))) << 8 & 16777215 | dart.notNull(bytes[$_get]((t128$0 = i, i = t128$0 + 1, t128$0)))) >>> 0;
      out[$_set]((t128$1 = j, j = t128$1 + 1, t128$1), lookup[$codeUnitAt](x[$rightShift](18)));
      out[$_set]((t128$2 = j, j = t128$2 + 1, t128$2), lookup[$codeUnitAt](x >> 12 & 63));
      out[$_set]((t128$3 = j, j = t128$3 + 1, t128$3), lookup[$codeUnitAt](x >> 6 & 63));
      out[$_set]((t128$4 = j, j = t128$4 + 1, t128$4), lookup[$codeUnitAt](x & 63));
      if (dart.test(addLineSeparator) && (c = c + 1) === 19 && j < outputLen - 2) {
        out[$_set]((t128$5 = j, j = t128$5 + 1, t128$5), 13);
        out[$_set]((t128$6 = j, j = t128$6 + 1, t128$6), 10);
        c = 0;
      }
    }
    if (remainderLength === 1) {
      let x = bytes[$_get](i);
      out[$_set]((t128$7 = j, j = t128$7 + 1, t128$7), lookup[$codeUnitAt](x[$rightShift](2)));
      out[$_set]((t128$8 = j, j = t128$8 + 1, t128$8), lookup[$codeUnitAt](dart.notNull(x) << 4 & 63));
      out[$_set]((t128$9 = j, j = t128$9 + 1, t128$9), 61);
      out[$_set]((t128$10 = j, j = t128$10 + 1, t128$10), 61);
    } else if (remainderLength === 2) {
      let x = bytes[$_get](i);
      let y = bytes[$_get](i + 1);
      out[$_set]((t128$11 = j, j = t128$11 + 1, t128$11), lookup[$codeUnitAt](x[$rightShift](2)));
      out[$_set]((t128$12 = j, j = t128$12 + 1, t128$12), lookup[$codeUnitAt]((dart.notNull(x) << 4 | y[$rightShift](4)) & 63));
      out[$_set]((t128$13 = j, j = t128$13 + 1, t128$13), lookup[$codeUnitAt](dart.notNull(y) << 2 & 63));
      out[$_set]((t128$14 = j, j = t128$14 + 1, t128$14), 61);
    }
    return core.String.fromCharCodes(out);
  }
  static base64StringToBytes(input, ignoreInvalidCharacters = true) {
    let t128, t128$, t128$0, t128$1;
    let len = input.length;
    if (len === 0) {
      return ListOfintL().new(0);
    }
    let extrasLen = 0;
    for (let i = 0; i < len; i = i + 1) {
      let c = _http._CryptoUtils._decodeTable[$_get](input[$codeUnitAt](i));
      if (dart.notNull(c) < 0) {
        extrasLen = extrasLen + 1;
        if (c === -2 && !dart.test(ignoreInvalidCharacters)) {
          dart.throw(new core.FormatException.new("Invalid character: " + input[$_get](i)));
        }
      }
    }
    if ((len - extrasLen)[$modulo](4) !== 0) {
      dart.throw(new core.FormatException.new("Size of Base 64 characters in Input\n          must be a multiple of 4. Input: " + dart.str(input)));
    }
    let padLength = 0;
    for (let i = len - 1; i >= 0; i = i - 1) {
      let currentCodeUnit = input[$codeUnitAt](i);
      if (dart.notNull(_http._CryptoUtils._decodeTable[$_get](currentCodeUnit)) > 0) break;
      if (currentCodeUnit === 61) padLength = padLength + 1;
    }
    let outputLen = ((len - extrasLen) * 6)[$rightShift](3) - padLength;
    let out = ListOfintL().new(outputLen);
    for (let i = 0, o = 0; o < outputLen;) {
      let x = 0;
      for (let j = 4; j > 0;) {
        let c = _http._CryptoUtils._decodeTable[$_get](input[$codeUnitAt]((t128 = i, i = t128 + 1, t128)));
        if (dart.notNull(c) >= 0) {
          x = (x << 6 & 16777215 | dart.notNull(c)) >>> 0;
          j = j - 1;
        }
      }
      out[$_set]((t128$ = o, o = t128$ + 1, t128$), x[$rightShift](16));
      if (o < outputLen) {
        out[$_set]((t128$0 = o, o = t128$0 + 1, t128$0), x >> 8 & 255);
        if (o < outputLen) out[$_set]((t128$1 = o, o = t128$1 + 1, t128$1), x & 255);
      }
    }
    return out;
  }
};
(_http._CryptoUtils.new = function() {
  ;
}).prototype = _http._CryptoUtils.prototype;
dart.addTypeTests(_http._CryptoUtils);
dart.addTypeCaches(_http._CryptoUtils);
dart.setLibraryUri(_http._CryptoUtils, L76);
dart.defineLazy(_http._CryptoUtils, {
  /*_http._CryptoUtils.PAD*/get PAD() {
    return 61;
  },
  /*_http._CryptoUtils.CR*/get CR() {
    return 13;
  },
  /*_http._CryptoUtils.LF*/get LF() {
    return 10;
  },
  /*_http._CryptoUtils.LINE_LENGTH*/get LINE_LENGTH() {
    return 76;
  },
  /*_http._CryptoUtils._encodeTable*/get _encodeTable() {
    return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  },
  /*_http._CryptoUtils._encodeTableUrlSafe*/get _encodeTableUrlSafe() {
    return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
  },
  /*_http._CryptoUtils._decodeTable*/get _decodeTable() {
    return C456 || CT.C456;
  },
  /*_http._CryptoUtils._rng*/get _rng() {
    return math.Random.secure();
  },
  set _rng(_) {}
}, true);
var _lengthInBytes = dart.privateName(_http, "_lengthInBytes");
var _currentChunk = dart.privateName(_http, "_currentChunk");
var _h = dart.privateName(_http, "_h");
var _digestCalled = dart.privateName(_http, "_digestCalled");
var _chunkSizeInWords$ = dart.privateName(_http, "_chunkSizeInWords");
var _digestSizeInWords$ = dart.privateName(_http, "_digestSizeInWords");
var _bigEndianWords$ = dart.privateName(_http, "_bigEndianWords");
var _pendingData = dart.privateName(_http, "_pendingData");
var _iterate = dart.privateName(_http, "_iterate");
var _resultAsBytes = dart.privateName(_http, "_resultAsBytes");
var _finalizeData = dart.privateName(_http, "_finalizeData");
var _add32 = dart.privateName(_http, "_add32");
var _roundUp = dart.privateName(_http, "_roundUp");
var _rotl32 = dart.privateName(_http, "_rotl32");
var _wordToBytes = dart.privateName(_http, "_wordToBytes");
var _bytesToChunk = dart.privateName(_http, "_bytesToChunk");
var _updateHash = dart.privateName(_http, "_updateHash");
_http._HashBase = class _HashBase extends core.Object {
  add(data) {
    if (dart.test(this[_digestCalled])) {
      dart.throw(new core.StateError.new("Hash update method called after digest was retrieved"));
    }
    this[_lengthInBytes] = dart.notNull(this[_lengthInBytes]) + dart.notNull(data[$length]);
    this[_pendingData][$addAll](data);
    this[_iterate]();
  }
  close() {
    if (dart.test(this[_digestCalled])) {
      return this[_resultAsBytes]();
    }
    this[_digestCalled] = true;
    this[_finalizeData]();
    this[_iterate]();
    if (!(this[_pendingData][$length] === 0)) dart.assertFailed(null, L77, 219, 12, "_pendingData.length == 0");
    return this[_resultAsBytes]();
  }
  get blockSize() {
    return dart.notNull(this[_chunkSizeInWords$]) * 4;
  }
  [_add32](x, y) {
    return dart.dsend(dart.dsend(x, '+', [y]), '&', [4294967295.0]);
  }
  [_roundUp](val, n) {
    return dart.dsend(dart.dsend(dart.dsend(val, '+', [n]), '-', [1]), '&', [dart.dsend(n, '_negate', [])]);
  }
  [_rotl32](val, shift) {
    let mod_shift = dart.notNull(shift) & 31;
    return (val[$leftShift](mod_shift) & 4294967295.0 | ((dart.notNull(val) & 4294967295.0) >>> 0)[$rightShift](32 - mod_shift)) >>> 0;
  }
  [_resultAsBytes]() {
    let result = JSArrayOfintL().of([]);
    for (let i = 0; i < dart.notNull(this[_h][$length]); i = i + 1) {
      result[$addAll](this[_wordToBytes](this[_h][$_get](i)));
    }
    return result;
  }
  [_bytesToChunk](data, dataIndex) {
    if (!(dart.notNull(data[$length]) - dart.notNull(dataIndex) >= dart.notNull(this[_chunkSizeInWords$]) * 4)) dart.assertFailed(null, L77, 256, 12, "(data.length - dataIndex) >= (_chunkSizeInWords * _BYTES_PER_WORD)");
    for (let wordIndex = 0; wordIndex < dart.notNull(this[_chunkSizeInWords$]); wordIndex = wordIndex + 1) {
      let w3 = dart.test(this[_bigEndianWords$]) ? data[$_get](dataIndex) : data[$_get](dart.notNull(dataIndex) + 3);
      let w2 = dart.test(this[_bigEndianWords$]) ? data[$_get](dart.notNull(dataIndex) + 1) : data[$_get](dart.notNull(dataIndex) + 2);
      let w1 = dart.test(this[_bigEndianWords$]) ? data[$_get](dart.notNull(dataIndex) + 2) : data[$_get](dart.notNull(dataIndex) + 1);
      let w0 = dart.test(this[_bigEndianWords$]) ? data[$_get](dart.notNull(dataIndex) + 3) : data[$_get](dataIndex);
      dataIndex = dart.notNull(dataIndex) + 4;
      let word = (dart.notNull(w3) & 255) << 24 >>> 0;
      word = (word | (dart.notNull(w2) & 255) >>> 0 << 16 >>> 0) >>> 0;
      word = (word | (dart.notNull(w1) & 255) >>> 0 << 8 >>> 0) >>> 0;
      word = (word | (dart.notNull(w0) & 255) >>> 0) >>> 0;
      this[_currentChunk][$_set](wordIndex, word);
    }
  }
  [_wordToBytes](word) {
    let bytes = ListOfintL().new(4);
    bytes[$_set](0, (word[$rightShift](dart.test(this[_bigEndianWords$]) ? 24 : 0) & 255) >>> 0);
    bytes[$_set](1, (word[$rightShift](dart.test(this[_bigEndianWords$]) ? 16 : 8) & 255) >>> 0);
    bytes[$_set](2, (word[$rightShift](dart.test(this[_bigEndianWords$]) ? 8 : 16) & 255) >>> 0);
    bytes[$_set](3, (word[$rightShift](dart.test(this[_bigEndianWords$]) ? 0 : 24) & 255) >>> 0);
    return bytes;
  }
  [_iterate]() {
    let len = this[_pendingData][$length];
    let chunkSizeInBytes = dart.notNull(this[_chunkSizeInWords$]) * 4;
    if (dart.notNull(len) >= chunkSizeInBytes) {
      let index = 0;
      for (; dart.notNull(len) - index >= chunkSizeInBytes; index = index + chunkSizeInBytes) {
        this[_bytesToChunk](this[_pendingData], index);
        this[_updateHash](this[_currentChunk]);
      }
      this[_pendingData] = this[_pendingData][$sublist](index, len);
    }
  }
  [_finalizeData]() {
    this[_pendingData][$add](128);
    let contentsLength = dart.notNull(this[_lengthInBytes]) + 9;
    let chunkSizeInBytes = dart.notNull(this[_chunkSizeInWords$]) * 4;
    let finalizedLength = this[_roundUp](contentsLength, chunkSizeInBytes);
    let zeroPadding = dart.dsend(finalizedLength, '-', [contentsLength]);
    for (let i = 0; i < dart.notNull(core.num.as(zeroPadding)); i = i + 1) {
      this[_pendingData][$add](0);
    }
    let lengthInBits = dart.notNull(this[_lengthInBytes]) * 8;
    if (!(lengthInBits < math.pow(2, 32))) dart.assertFailed(null, L77, 309, 12, "lengthInBits < pow(2, 32)");
    if (dart.test(this[_bigEndianWords$])) {
      this[_pendingData][$addAll](this[_wordToBytes](0));
      this[_pendingData][$addAll](this[_wordToBytes]((lengthInBits & 4294967295.0) >>> 0));
    } else {
      this[_pendingData][$addAll](this[_wordToBytes]((lengthInBits & 4294967295.0) >>> 0));
      this[_pendingData][$addAll](this[_wordToBytes](0));
    }
  }
};
(_http._HashBase.new = function(_chunkSizeInWords, _digestSizeInWords, _bigEndianWords) {
  this[_lengthInBytes] = 0;
  this[_currentChunk] = null;
  this[_h] = null;
  this[_digestCalled] = false;
  this[_chunkSizeInWords$] = _chunkSizeInWords;
  this[_digestSizeInWords$] = _digestSizeInWords;
  this[_bigEndianWords$] = _bigEndianWords;
  this[_pendingData] = JSArrayOfintL().of([]);
  this[_currentChunk] = ListOfintL().new(this[_chunkSizeInWords$]);
  this[_h] = ListOfintL().new(this[_digestSizeInWords$]);
}).prototype = _http._HashBase.prototype;
dart.addTypeTests(_http._HashBase);
dart.addTypeCaches(_http._HashBase);
dart.setMethodSignature(_http._HashBase, () => ({
  __proto__: dart.getMethods(_http._HashBase.__proto__),
  add: dart.fnType(dart.dynamic, [core.List$(core.int)]),
  close: dart.fnType(core.List$(core.int), []),
  [_add32]: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic]),
  [_roundUp]: dart.fnType(dart.dynamic, [dart.dynamic, dart.dynamic]),
  [_rotl32]: dart.fnType(core.int, [core.int, core.int]),
  [_resultAsBytes]: dart.fnType(core.List$(core.int), []),
  [_bytesToChunk]: dart.fnType(dart.dynamic, [core.List$(core.int), core.int]),
  [_wordToBytes]: dart.fnType(core.List$(core.int), [core.int]),
  [_iterate]: dart.fnType(dart.dynamic, []),
  [_finalizeData]: dart.fnType(dart.dynamic, [])
}));
dart.setGetterSignature(_http._HashBase, () => ({
  __proto__: dart.getGetters(_http._HashBase.__proto__),
  blockSize: core.int
}));
dart.setLibraryUri(_http._HashBase, L76);
dart.setFieldSignature(_http._HashBase, () => ({
  __proto__: dart.getFields(_http._HashBase.__proto__),
  [_chunkSizeInWords$]: dart.finalFieldType(core.int),
  [_digestSizeInWords$]: dart.finalFieldType(core.int),
  [_bigEndianWords$]: dart.finalFieldType(core.bool),
  [_lengthInBytes]: dart.fieldType(core.int),
  [_pendingData]: dart.fieldType(core.List$(core.int)),
  [_currentChunk]: dart.fieldType(core.List$(core.int)),
  [_h]: dart.fieldType(core.List$(core.int)),
  [_digestCalled]: dart.fieldType(core.bool)
}));
var C457;
var C458;
_http._MD5 = class _MD5 extends _http._HashBase {
  newInstance() {
    return new _http._MD5.new();
  }
  [_updateHash](m) {
    if (!(m[$length] === 16)) dart.assertFailed(null, L77, 358, 12, "m.length == 16");
    let a = this[_h][$_get](0);
    let b = this[_h][$_get](1);
    let c = this[_h][$_get](2);
    let d = this[_h][$_get](3);
    let t0 = null;
    let t1 = null;
    for (let i = 0; i < 64; i = i + 1) {
      if (i < 16) {
        t0 = (dart.notNull(b) & dart.notNull(c) | (~dart.notNull(b) & 4294967295.0 & dart.notNull(d)) >>> 0) >>> 0;
        t1 = i;
      } else if (i < 32) {
        t0 = (dart.notNull(d) & dart.notNull(b) | (~dart.notNull(d) & 4294967295.0 & dart.notNull(c)) >>> 0) >>> 0;
        t1 = (5 * i + 1)[$modulo](16);
      } else if (i < 48) {
        t0 = (dart.notNull(b) ^ dart.notNull(c) ^ dart.notNull(d)) >>> 0;
        t1 = (3 * i + 5)[$modulo](16);
      } else {
        t0 = (dart.notNull(c) ^ (dart.notNull(b) | (~dart.notNull(d) & 4294967295.0) >>> 0) >>> 0) >>> 0;
        t1 = (7 * i)[$modulo](16);
      }
      let temp = d;
      d = c;
      c = b;
      b = core.int.as(this[_add32](b, this[_rotl32](core.int.as(this[_add32](this[_add32](a, t0), this[_add32](_http._MD5._k[$_get](i), m[$_get](core.int.as(t1))))), _http._MD5._r[$_get](i))));
      a = temp;
    }
    this[_h][$_set](0, core.int.as(this[_add32](a, this[_h][$_get](0))));
    this[_h][$_set](1, core.int.as(this[_add32](b, this[_h][$_get](1))));
    this[_h][$_set](2, core.int.as(this[_add32](c, this[_h][$_get](2))));
    this[_h][$_set](3, core.int.as(this[_add32](d, this[_h][$_get](3))));
  }
};
(_http._MD5.new = function() {
  _http._MD5.__proto__.new.call(this, 16, 4, false);
  this[_h][$_set](0, 1732584193);
  this[_h][$_set](1, 4023233417);
  this[_h][$_set](2, 2562383102);
  this[_h][$_set](3, 271733878);
}).prototype = _http._MD5.prototype;
dart.addTypeTests(_http._MD5);
dart.addTypeCaches(_http._MD5);
dart.setMethodSignature(_http._MD5, () => ({
  __proto__: dart.getMethods(_http._MD5.__proto__),
  newInstance: dart.fnType(_http._MD5, []),
  [_updateHash]: dart.fnType(dart.void, [core.List$(core.int)])
}));
dart.setLibraryUri(_http._MD5, L76);
dart.defineLazy(_http._MD5, {
  /*_http._MD5._k*/get _k() {
    return C457 || CT.C457;
  },
  /*_http._MD5._r*/get _r() {
    return C458 || CT.C458;
  }
}, true);
var _w = dart.privateName(_http, "_w");
_http._SHA1 = class _SHA1 extends _http._HashBase {
  newInstance() {
    return new _http._SHA1.new();
  }
  [_updateHash](m) {
    if (!(m[$length] === 16)) dart.assertFailed(null, L77, 419, 12, "m.length == 16");
    let a = this[_h][$_get](0);
    let b = this[_h][$_get](1);
    let c = this[_h][$_get](2);
    let d = this[_h][$_get](3);
    let e = this[_h][$_get](4);
    for (let i = 0; i < 80; i = i + 1) {
      if (i < 16) {
        this[_w][$_set](i, m[$_get](i));
      } else {
        let n = (dart.notNull(this[_w][$_get](i - 3)) ^ dart.notNull(this[_w][$_get](i - 8)) ^ dart.notNull(this[_w][$_get](i - 14)) ^ dart.notNull(this[_w][$_get](i - 16))) >>> 0;
        this[_w][$_set](i, this[_rotl32](n, 1));
      }
      let t = this[_add32](this[_add32](this[_rotl32](a, 5), e), this[_w][$_get](i));
      if (i < 20) {
        t = this[_add32](this[_add32](t, (dart.notNull(b) & dart.notNull(c) | (~dart.notNull(b) & dart.notNull(d)) >>> 0) >>> 0), 1518500249);
      } else if (i < 40) {
        t = this[_add32](this[_add32](t, (dart.notNull(b) ^ dart.notNull(c) ^ dart.notNull(d)) >>> 0), 1859775393);
      } else if (i < 60) {
        t = this[_add32](this[_add32](t, (dart.notNull(b) & dart.notNull(c) | (dart.notNull(b) & dart.notNull(d)) >>> 0 | (dart.notNull(c) & dart.notNull(d)) >>> 0) >>> 0), 2400959708);
      } else {
        t = this[_add32](this[_add32](t, (dart.notNull(b) ^ dart.notNull(c) ^ dart.notNull(d)) >>> 0), 3395469782);
      }
      e = d;
      d = c;
      c = this[_rotl32](b, 30);
      b = a;
      a = core.int.as(dart.dsend(t, '&', [4294967295.0]));
    }
    this[_h][$_set](0, core.int.as(this[_add32](a, this[_h][$_get](0))));
    this[_h][$_set](1, core.int.as(this[_add32](b, this[_h][$_get](1))));
    this[_h][$_set](2, core.int.as(this[_add32](c, this[_h][$_get](2))));
    this[_h][$_set](3, core.int.as(this[_add32](d, this[_h][$_get](3))));
    this[_h][$_set](4, core.int.as(this[_add32](e, this[_h][$_get](4))));
  }
};
(_http._SHA1.new = function() {
  this[_w] = ListOfintL().new(80);
  _http._SHA1.__proto__.new.call(this, 16, 5, true);
  this[_h][$_set](0, 1732584193);
  this[_h][$_set](1, 4023233417);
  this[_h][$_set](2, 2562383102);
  this[_h][$_set](3, 271733878);
  this[_h][$_set](4, 3285377520);
}).prototype = _http._SHA1.prototype;
dart.addTypeTests(_http._SHA1);
dart.addTypeCaches(_http._SHA1);
dart.setMethodSignature(_http._SHA1, () => ({
  __proto__: dart.getMethods(_http._SHA1.__proto__),
  newInstance: dart.fnType(_http._SHA1, []),
  [_updateHash]: dart.fnType(dart.void, [core.List$(core.int)])
}));
dart.setLibraryUri(_http._SHA1, L76);
dart.setFieldSignature(_http._SHA1, () => ({
  __proto__: dart.getFields(_http._SHA1.__proto__),
  [_w]: dart.fieldType(core.List$(core.int))
}));
var C459;
var C460;
var C461;
var C462;
_http.HttpDate = class HttpDate extends core.Object {
  static format(date) {
    let t128;
    let wkday = C459 || CT.C459;
    let month = C460 || CT.C460;
    let d = date.toUtc();
    let sb = (t128 = new core.StringBuffer.new(), t128.write(wkday[$_get](dart.notNull(d.weekday) - 1)), t128.write(", "), t128.write(dart.notNull(d.day) <= 9 ? "0" : ""), t128.write(dart.toString(d.day)), t128.write(" "), t128.write(month[$_get](dart.notNull(d.month) - 1)), t128.write(" "), t128.write(dart.toString(d.year)), t128.write(dart.notNull(d.hour) <= 9 ? " 0" : " "), t128.write(dart.toString(d.hour)), t128.write(dart.notNull(d.minute) <= 9 ? ":0" : ":"), t128.write(dart.toString(d.minute)), t128.write(dart.notNull(d.second) <= 9 ? ":0" : ":"), t128.write(dart.toString(d.second)), t128.write(" GMT"), t128);
    return dart.toString(sb);
  }
  static parse(date) {
    let SP = 32;
    let wkdays = C459 || CT.C459;
    let weekdays = C461 || CT.C461;
    let months = C460 || CT.C460;
    let formatRfc1123 = 0;
    let formatRfc850 = 1;
    let formatAsctime = 2;
    let index = 0;
    let tmp = null;
    let format = null;
    function expect(s) {
      if (date.length - index < s.length) {
        dart.throw(new _http.HttpException.new("Invalid HTTP date " + dart.str(date)));
      }
      let tmp = date[$substring](index, index + s.length);
      if (tmp !== s) {
        dart.throw(new _http.HttpException.new("Invalid HTTP date " + dart.str(date)));
      }
      index = index + s.length;
    }
    dart.fn(expect, StringLTovoid());
    function expectWeekday() {
      let weekday = null;
      let pos = date[$indexOf](",", index);
      if (pos === -1) {
        let pos = date[$indexOf](" ", index);
        if (pos === -1) dart.throw(new _http.HttpException.new("Invalid HTTP date " + dart.str(date)));
        tmp = date[$substring](index, pos);
        index = pos + 1;
        weekday = wkdays[$indexOf](tmp);
        if (weekday !== -1) {
          format = formatAsctime;
          return weekday;
        }
      } else {
        tmp = date[$substring](index, pos);
        index = pos + 1;
        weekday = wkdays[$indexOf](tmp);
        if (weekday !== -1) {
          format = formatRfc1123;
          return weekday;
        }
        weekday = weekdays[$indexOf](tmp);
        if (weekday !== -1) {
          format = formatRfc850;
          return weekday;
        }
      }
      dart.throw(new _http.HttpException.new("Invalid HTTP date " + dart.str(date)));
    }
    dart.fn(expectWeekday, VoidTointL());
    function expectMonth(separator) {
      let pos = date[$indexOf](separator, index);
      if (pos - index !== 3) dart.throw(new _http.HttpException.new("Invalid HTTP date " + dart.str(date)));
      tmp = date[$substring](index, pos);
      index = pos + 1;
      let month = months[$indexOf](tmp);
      if (month !== -1) return month;
      dart.throw(new _http.HttpException.new("Invalid HTTP date " + dart.str(date)));
    }
    dart.fn(expectMonth, StringLTointL());
    function expectNum(separator) {
      let pos = null;
      if (separator.length > 0) {
        pos = date[$indexOf](separator, index);
      } else {
        pos = date.length;
      }
      let tmp = date[$substring](index, pos);
      index = dart.notNull(pos) + separator.length;
      try {
        let value = core.int.parse(tmp);
        return value;
      } catch (e) {
        let ex = dart.getThrown(e);
        if (core.FormatException.is(ex)) {
          dart.throw(new _http.HttpException.new("Invalid HTTP date " + dart.str(date)));
        } else
          throw e;
      }
    }
    dart.fn(expectNum, StringLTointL());
    function expectEnd() {
      if (index !== date.length) {
        dart.throw(new _http.HttpException.new("Invalid HTTP date " + dart.str(date)));
      }
    }
    dart.fn(expectEnd, VoidTovoid());
    let weekday = expectWeekday();
    let day = null;
    let month = null;
    let year = null;
    let hours = null;
    let minutes = null;
    let seconds = null;
    if (format === formatAsctime) {
      month = expectMonth(" ");
      if (date[$codeUnitAt](index) === SP) index = index + 1;
      day = expectNum(" ");
      hours = expectNum(":");
      minutes = expectNum(":");
      seconds = expectNum(" ");
      year = expectNum("");
    } else {
      expect(" ");
      day = expectNum(format === formatRfc1123 ? " " : "-");
      month = expectMonth(format === formatRfc1123 ? " " : "-");
      year = expectNum(" ");
      hours = expectNum(":");
      minutes = expectNum(":");
      seconds = expectNum(" ");
      expect("GMT");
    }
    expectEnd();
    return new core.DateTime.utc(year, dart.notNull(month) + 1, day, hours, minutes, seconds, 0);
  }
  static _parseCookieDate(date) {
    let monthsLowerCase = C462 || CT.C462;
    let position = 0;
    function error() {
      dart.throw(new _http.HttpException.new("Invalid cookie date " + dart.str(date)));
    }
    dart.fn(error, VoidTovoid());
    function isEnd() {
      return position === date.length;
    }
    dart.fn(isEnd, VoidToboolL());
    function isDelimiter(s) {
      let char = s[$codeUnitAt](0);
      if (char === 9) return true;
      if (char >= 32 && char <= 47) return true;
      if (char >= 59 && char <= 64) return true;
      if (char >= 91 && char <= 96) return true;
      if (char >= 123 && char <= 126) return true;
      return false;
    }
    dart.fn(isDelimiter, StringLToboolL());
    function isNonDelimiter(s) {
      let char = s[$codeUnitAt](0);
      if (char >= 0 && char <= 8) return true;
      if (char >= 10 && char <= 31) return true;
      if (char >= 48 && char <= 57) return true;
      if (char === 58) return true;
      if (char >= 65 && char <= 90) return true;
      if (char >= 97 && char <= 122) return true;
      if (char >= 127 && char <= 255) return true;
      return false;
    }
    dart.fn(isNonDelimiter, StringLToboolL());
    function isDigit(s) {
      let char = s[$codeUnitAt](0);
      if (char > 47 && char < 58) return true;
      return false;
    }
    dart.fn(isDigit, StringLToboolL());
    function getMonth(month) {
      if (month.length < 3) return -1;
      return monthsLowerCase[$indexOf](month[$substring](0, 3));
    }
    dart.fn(getMonth, StringLTointL());
    function toInt(s) {
      let index = 0;
      for (; index < s.length && dart.test(isDigit(s[$_get](index))); index = index + 1)
        ;
      return core.int.parse(s[$substring](0, index));
    }
    dart.fn(toInt, StringLTointL());
    let tokens = [];
    while (!dart.test(isEnd())) {
      while (!dart.test(isEnd()) && dart.test(isDelimiter(date[$_get](position))))
        position = position + 1;
      let start = position;
      while (!dart.test(isEnd()) && dart.test(isNonDelimiter(date[$_get](position))))
        position = position + 1;
      tokens[$add](date[$substring](start, position)[$toLowerCase]());
      while (!dart.test(isEnd()) && dart.test(isDelimiter(date[$_get](position))))
        position = position + 1;
    }
    let timeStr = null;
    let dayOfMonthStr = null;
    let monthStr = null;
    let yearStr = null;
    for (let token of tokens) {
      if (dart.dtest(dart.dsend(dart.dload(token, 'length'), '<', [1]))) continue;
      if (timeStr == null && dart.dtest(dart.dsend(dart.dload(token, 'length'), '>=', [5])) && dart.test(isDigit(core.String.as(dart.dsend(token, '_get', [0])))) && (dart.equals(dart.dsend(token, '_get', [1]), ":") || dart.test(isDigit(core.String.as(dart.dsend(token, '_get', [1])))) && dart.equals(dart.dsend(token, '_get', [2]), ":"))) {
        timeStr = core.String.as(token);
      } else if (dayOfMonthStr == null && dart.test(isDigit(core.String.as(dart.dsend(token, '_get', [0]))))) {
        dayOfMonthStr = core.String.as(token);
      } else if (monthStr == null && dart.notNull(getMonth(core.String.as(token))) >= 0) {
        monthStr = core.String.as(token);
      } else if (yearStr == null && dart.dtest(dart.dsend(dart.dload(token, 'length'), '>=', [2])) && dart.test(isDigit(core.String.as(dart.dsend(token, '_get', [0])))) && dart.test(isDigit(core.String.as(dart.dsend(token, '_get', [1]))))) {
        yearStr = core.String.as(token);
      }
    }
    if (timeStr == null || dayOfMonthStr == null || monthStr == null || yearStr == null) {
      error();
    }
    let year = toInt(yearStr);
    if (dart.notNull(year) >= 70 && dart.notNull(year) <= 99)
      year = dart.notNull(year) + 1900;
    else if (dart.notNull(year) >= 0 && dart.notNull(year) <= 69) year = dart.notNull(year) + 2000;
    if (dart.notNull(year) < 1601) error();
    let dayOfMonth = toInt(dayOfMonthStr);
    if (dart.notNull(dayOfMonth) < 1 || dart.notNull(dayOfMonth) > 31) error();
    let month = dart.notNull(getMonth(monthStr)) + 1;
    let timeList = timeStr[$split](":");
    if (timeList[$length] !== 3) error();
    let hour = toInt(timeList[$_get](0));
    let minute = toInt(timeList[$_get](1));
    let second = toInt(timeList[$_get](2));
    if (dart.notNull(hour) > 23) error();
    if (dart.notNull(minute) > 59) error();
    if (dart.notNull(second) > 59) error();
    return new core.DateTime.utc(year, month, dayOfMonth, hour, minute, second, 0);
  }
};
(_http.HttpDate.new = function() {
  ;
}).prototype = _http.HttpDate.prototype;
dart.addTypeTests(_http.HttpDate);
dart.addTypeCaches(_http.HttpDate);
dart.setLibraryUri(_http.HttpDate, L76);
var _originalHeaderNames = dart.privateName(_http, "_originalHeaderNames");
var _mutable = dart.privateName(_http, "_mutable");
var _noFoldingHeaders = dart.privateName(_http, "_noFoldingHeaders");
var _contentLength = dart.privateName(_http, "_contentLength");
var _persistentConnection = dart.privateName(_http, "_persistentConnection");
var _chunkedTransferEncoding = dart.privateName(_http, "_chunkedTransferEncoding");
var _host = dart.privateName(_http, "_host");
var _port = dart.privateName(_http, "_port");
var _headers = dart.privateName(_http, "_headers");
var _defaultPortForScheme = dart.privateName(_http, "_defaultPortForScheme");
var _checkMutable = dart.privateName(_http, "_checkMutable");
var _addAll = dart.privateName(_http, "_addAll");
var _add$2 = dart.privateName(_http, "_add");
var _originalHeaderName = dart.privateName(_http, "_originalHeaderName");
var _set = dart.privateName(_http, "_set");
var _addValue = dart.privateName(_http, "_addValue");
var _updateHostHeader = dart.privateName(_http, "_updateHostHeader");
var _addDate = dart.privateName(_http, "_addDate");
var _addHost = dart.privateName(_http, "_addHost");
var _addExpires = dart.privateName(_http, "_addExpires");
var _addConnection = dart.privateName(_http, "_addConnection");
var _addContentType = dart.privateName(_http, "_addContentType");
var _addContentLength = dart.privateName(_http, "_addContentLength");
var _addTransferEncoding = dart.privateName(_http, "_addTransferEncoding");
var _addIfModifiedSince = dart.privateName(_http, "_addIfModifiedSince");
var _foldHeader = dart.privateName(_http, "_foldHeader");
var _finalize = dart.privateName(_http, "_finalize");
var _build = dart.privateName(_http, "_build");
var _parseCookies = dart.privateName(_http, "_parseCookies");
_http._HttpHeaders = class _HttpHeaders extends core.Object {
  _get(name) {
    return this[_headers][$_get](_http._HttpHeaders._validateField(name));
  }
  value(name) {
    name = _http._HttpHeaders._validateField(name);
    let values = this[_headers][$_get](name);
    if (values == null) return null;
    if (dart.notNull(values[$length]) > 1) {
      dart.throw(new _http.HttpException.new("More than one value for header " + dart.str(name)));
    }
    return values[$_get](0);
  }
  add(name, value, opts) {
    let t130, t130$;
    let preserveHeaderCase = opts && 'preserveHeaderCase' in opts ? opts.preserveHeaderCase : false;
    this[_checkMutable]();
    let lowercaseName = _http._HttpHeaders._validateField(name);
    if (dart.test(preserveHeaderCase) && name != lowercaseName) {
      (t130 = this[_originalHeaderNames], t130 == null ? this[_originalHeaderNames] = new (IdentityMapOfStringL$StringL()).new() : t130)[$_set](lowercaseName, name);
    } else {
      t130$ = this[_originalHeaderNames];
      t130$ == null ? null : t130$[$remove](lowercaseName);
    }
    this[_addAll](lowercaseName, value);
  }
  [_addAll](name, value) {
    if (core.Iterable.is(value)) {
      for (let v of value) {
        this[_add$2](name, _http._HttpHeaders._validateValue(v));
      }
    } else {
      this[_add$2](name, _http._HttpHeaders._validateValue(value));
    }
  }
  set(name, value, opts) {
    let t130, t130$, t130$0;
    let preserveHeaderCase = opts && 'preserveHeaderCase' in opts ? opts.preserveHeaderCase : false;
    this[_checkMutable]();
    let lowercaseName = _http._HttpHeaders._validateField(name);
    this[_headers][$remove](lowercaseName);
    t130 = this[_originalHeaderNames];
    t130 == null ? null : t130[$remove](lowercaseName);
    if (lowercaseName === "transfer-encoding") {
      this[_chunkedTransferEncoding] = false;
    }
    if (dart.test(preserveHeaderCase) && name != lowercaseName) {
      (t130$ = this[_originalHeaderNames], t130$ == null ? this[_originalHeaderNames] = new (IdentityMapOfStringL$StringL()).new() : t130$)[$_set](lowercaseName, name);
    } else {
      t130$0 = this[_originalHeaderNames];
      t130$0 == null ? null : t130$0[$remove](lowercaseName);
    }
    this[_addAll](lowercaseName, value);
  }
  remove(name, value) {
    let t130;
    this[_checkMutable]();
    name = _http._HttpHeaders._validateField(name);
    value = _http._HttpHeaders._validateValue(value);
    let values = this[_headers][$_get](name);
    if (values != null) {
      let index = values[$indexOf](core.String.as(value));
      if (index !== -1) {
        values[$removeRange](index, dart.notNull(index) + 1);
      }
      if (values[$length] === 0) {
        this[_headers][$remove](name);
        t130 = this[_originalHeaderNames];
        t130 == null ? null : t130[$remove](name);
      }
    }
    if (name === "transfer-encoding" && dart.equals(value, "chunked")) {
      this[_chunkedTransferEncoding] = false;
    }
  }
  removeAll(name) {
    let t130;
    this[_checkMutable]();
    name = _http._HttpHeaders._validateField(name);
    this[_headers][$remove](name);
    t130 = this[_originalHeaderNames];
    t130 == null ? null : t130[$remove](name);
  }
  forEach(action) {
    this[_headers][$forEach](dart.fn((name, values) => {
      let originalName = this[_originalHeaderName](name);
      action(originalName, values);
    }, StringLAndListLOfStringLToNullN()));
  }
  noFolding(name) {
    name = _http._HttpHeaders._validateField(name);
    if (this[_noFoldingHeaders] == null) this[_noFoldingHeaders] = JSArrayOfStringL().of([]);
    this[_noFoldingHeaders][$add](name);
  }
  get persistentConnection() {
    return this[_persistentConnection];
  }
  set persistentConnection(persistentConnection) {
    this[_checkMutable]();
    if (dart.equals(persistentConnection, this[_persistentConnection])) return;
    if (dart.test(persistentConnection)) {
      if (this.protocolVersion === "1.1") {
        this.remove("connection", "close");
      } else {
        if (this[_contentLength] === -1) {
          dart.throw(new _http.HttpException.new("Trying to set 'Connection: Keep-Alive' on HTTP 1.0 headers with " + "no ContentLength"));
        }
        this.add("connection", "keep-alive");
      }
    } else {
      if (this.protocolVersion === "1.1") {
        this.add("connection", "close");
      } else {
        this.remove("connection", "keep-alive");
      }
    }
    this[_persistentConnection] = persistentConnection;
  }
  get contentLength() {
    return this[_contentLength];
  }
  set contentLength(contentLength) {
    this[_checkMutable]();
    if (this.protocolVersion === "1.0" && dart.test(this.persistentConnection) && contentLength === -1) {
      dart.throw(new _http.HttpException.new("Trying to clear ContentLength on HTTP 1.0 headers with " + "'Connection: Keep-Alive' set"));
    }
    if (this[_contentLength] == contentLength) return;
    this[_contentLength] = contentLength;
    if (dart.notNull(this[_contentLength]) >= 0) {
      if (dart.test(this.chunkedTransferEncoding)) this.chunkedTransferEncoding = false;
      this[_set]("content-length", dart.toString(contentLength));
    } else {
      this.removeAll("content-length");
      if (this.protocolVersion === "1.1") {
        this.chunkedTransferEncoding = true;
      }
    }
  }
  get chunkedTransferEncoding() {
    return this[_chunkedTransferEncoding];
  }
  set chunkedTransferEncoding(chunkedTransferEncoding) {
    this[_checkMutable]();
    if (dart.test(chunkedTransferEncoding) && this.protocolVersion === "1.0") {
      dart.throw(new _http.HttpException.new("Trying to set 'Transfer-Encoding: Chunked' on HTTP 1.0 headers"));
    }
    if (dart.equals(chunkedTransferEncoding, this[_chunkedTransferEncoding])) return;
    if (dart.test(chunkedTransferEncoding)) {
      let values = this[_headers][$_get]("transfer-encoding");
      if (values == null || !dart.test(values[$contains]("chunked"))) {
        this[_addValue]("transfer-encoding", "chunked");
      }
      this.contentLength = -1;
    } else {
      this.remove("transfer-encoding", "chunked");
    }
    this[_chunkedTransferEncoding] = chunkedTransferEncoding;
  }
  get host() {
    return this[_host];
  }
  set host(host) {
    this[_checkMutable]();
    this[_host] = host;
    this[_updateHostHeader]();
  }
  get port() {
    return this[_port];
  }
  set port(port) {
    this[_checkMutable]();
    this[_port] = port;
    this[_updateHostHeader]();
  }
  get ifModifiedSince() {
    let values = this[_headers][$_get]("if-modified-since");
    if (values != null) {
      try {
        return _http.HttpDate.parse(values[$_get](0));
      } catch (e) {
        let ex = dart.getThrown(e);
        if (core.Exception.is(ex)) {
          return null;
        } else
          throw e;
      }
    }
    return null;
  }
  set ifModifiedSince(ifModifiedSince) {
    this[_checkMutable]();
    let formatted = _http.HttpDate.format(ifModifiedSince.toUtc());
    this[_set]("if-modified-since", formatted);
  }
  get date() {
    let values = this[_headers][$_get]("date");
    if (values != null) {
      try {
        return _http.HttpDate.parse(values[$_get](0));
      } catch (e) {
        let ex = dart.getThrown(e);
        if (core.Exception.is(ex)) {
          return null;
        } else
          throw e;
      }
    }
    return null;
  }
  set date(date) {
    this[_checkMutable]();
    let formatted = _http.HttpDate.format(date.toUtc());
    this[_set]("date", formatted);
  }
  get expires() {
    let values = this[_headers][$_get]("expires");
    if (values != null) {
      try {
        return _http.HttpDate.parse(values[$_get](0));
      } catch (e) {
        let ex = dart.getThrown(e);
        if (core.Exception.is(ex)) {
          return null;
        } else
          throw e;
      }
    }
    return null;
  }
  set expires(expires) {
    this[_checkMutable]();
    let formatted = _http.HttpDate.format(expires.toUtc());
    this[_set]("expires", formatted);
  }
  get contentType() {
    let values = this[_headers][$_get]("content-type");
    if (values != null) {
      return _http.ContentType.parse(values[$_get](0));
    } else {
      return null;
    }
  }
  set contentType(contentType) {
    this[_checkMutable]();
    this[_set]("content-type", dart.toString(contentType));
  }
  clear() {
    this[_checkMutable]();
    this[_headers][$clear]();
    this[_contentLength] = -1;
    this[_persistentConnection] = true;
    this[_chunkedTransferEncoding] = false;
    this[_host] = null;
    this[_port] = null;
  }
  [_add$2](name, value) {
    if (!(name == _http._HttpHeaders._validateField(name))) dart.assertFailed(null, L78, 307, 12, "name == _validateField(name)");
    switch (name.length) {
      case 4:
      {
        if ("date" === name) {
          this[_addDate](name, value);
          return;
        }
        if ("host" === name) {
          this[_addHost](name, value);
          return;
        }
        break;
      }
      case 7:
      {
        if ("expires" === name) {
          this[_addExpires](name, value);
          return;
        }
        break;
      }
      case 10:
      {
        if ("connection" === name) {
          this[_addConnection](name, value);
          return;
        }
        break;
      }
      case 12:
      {
        if ("content-type" === name) {
          this[_addContentType](name, value);
          return;
        }
        break;
      }
      case 14:
      {
        if ("content-length" === name) {
          this[_addContentLength](name, value);
          return;
        }
        break;
      }
      case 17:
      {
        if ("transfer-encoding" === name) {
          this[_addTransferEncoding](name, value);
          return;
        }
        if ("if-modified-since" === name) {
          this[_addIfModifiedSince](name, value);
          return;
        }
      }
    }
    this[_addValue](name, value);
  }
  [_addContentLength](name, value) {
    if (core.int.is(value)) {
      this.contentLength = value;
    } else if (typeof value == 'string') {
      this.contentLength = core.int.parse(value);
    } else {
      dart.throw(new _http.HttpException.new("Unexpected type for header named " + dart.str(name)));
    }
  }
  [_addTransferEncoding](name, value) {
    if (dart.equals(value, "chunked")) {
      this.chunkedTransferEncoding = true;
    } else {
      this[_addValue]("transfer-encoding", value);
    }
  }
  [_addDate](name, value) {
    if (core.DateTime.is(value)) {
      this.date = value;
    } else if (typeof value == 'string') {
      this[_set]("date", value);
    } else {
      dart.throw(new _http.HttpException.new("Unexpected type for header named " + dart.str(name)));
    }
  }
  [_addExpires](name, value) {
    if (core.DateTime.is(value)) {
      this.expires = value;
    } else if (typeof value == 'string') {
      this[_set]("expires", value);
    } else {
      dart.throw(new _http.HttpException.new("Unexpected type for header named " + dart.str(name)));
    }
  }
  [_addIfModifiedSince](name, value) {
    if (core.DateTime.is(value)) {
      this.ifModifiedSince = value;
    } else if (typeof value == 'string') {
      this[_set]("if-modified-since", value);
    } else {
      dart.throw(new _http.HttpException.new("Unexpected type for header named " + dart.str(name)));
    }
  }
  [_addHost](name, value) {
    if (typeof value == 'string') {
      let pos = value[$indexOf](":");
      if (pos === -1) {
        this[_host] = value;
        this[_port] = 80;
      } else {
        if (pos > 0) {
          this[_host] = value[$substring](0, pos);
        } else {
          this[_host] = null;
        }
        if (pos + 1 === value.length) {
          this[_port] = 80;
        } else {
          try {
            this[_port] = core.int.parse(value[$substring](pos + 1));
          } catch (e) {
            let ex = dart.getThrown(e);
            if (core.FormatException.is(ex)) {
              this[_port] = null;
            } else
              throw e;
          }
        }
      }
      this[_set]("host", value);
    } else {
      dart.throw(new _http.HttpException.new("Unexpected type for header named " + dart.str(name)));
    }
  }
  [_addConnection](name, value) {
    let lowerCaseValue = dart.dsend(value, 'toLowerCase', []);
    if (dart.equals(lowerCaseValue, "close")) {
      this[_persistentConnection] = false;
    } else if (dart.equals(lowerCaseValue, "keep-alive")) {
      this[_persistentConnection] = true;
    }
    this[_addValue](name, value);
  }
  [_addContentType](name, value) {
    this[_set]("content-type", core.String.as(value));
  }
  [_addValue](name, value) {
    let values = this[_headers][$_get](name);
    if (values == null) {
      values = JSArrayOfStringL().of([]);
      this[_headers][$_set](name, values);
    }
    if (core.DateTime.is(value)) {
      values[$add](_http.HttpDate.format(value));
    } else if (typeof value == 'string') {
      values[$add](value);
    } else {
      values[$add](core.String.as(_http._HttpHeaders._validateValue(dart.toString(value))));
    }
  }
  [_set](name, value) {
    if (!(name == _http._HttpHeaders._validateField(name))) dart.assertFailed(null, L78, 464, 12, "name == _validateField(name)");
    let values = JSArrayOfStringL().of([]);
    this[_headers][$_set](name, values);
    values[$add](value);
  }
  [_checkMutable]() {
    if (!dart.test(this[_mutable])) dart.throw(new _http.HttpException.new("HTTP headers are not mutable"));
  }
  [_updateHostHeader]() {
    let defaultPort = this[_port] == null || this[_port] == this[_defaultPortForScheme];
    this[_set]("host", defaultPort ? this.host : dart.str(this.host) + ":" + dart.str(this[_port]));
  }
  [_foldHeader](name) {
    if (name === "set-cookie" || this[_noFoldingHeaders] != null && this[_noFoldingHeaders][$indexOf](name) !== -1) {
      return false;
    }
    return true;
  }
  [_finalize]() {
    this[_mutable] = false;
  }
  [_build](builder) {
    for (let name of this[_headers][$keys]) {
      let values = this[_headers][$_get](name);
      let fold = core.bool.as(this[_foldHeader](name));
      let nameData = name[$codeUnits];
      builder.add(nameData);
      builder.addByte(58);
      builder.addByte(32);
      for (let i = 0; i < dart.notNull(values[$length]); i = i + 1) {
        if (i > 0) {
          if (dart.test(fold)) {
            builder.addByte(44);
            builder.addByte(32);
          } else {
            builder.addByte(13);
            builder.addByte(10);
            builder.add(nameData);
            builder.addByte(58);
            builder.addByte(32);
          }
        }
        builder.add(values[$_get](i)[$codeUnits]);
      }
      builder.addByte(13);
      builder.addByte(10);
    }
  }
  toString() {
    let sb = new core.StringBuffer.new();
    this[_headers][$forEach](dart.fn((name, values) => {
      let t138, t138$;
      let originalName = this[_originalHeaderName](name);
      t138 = sb;
      t138.write(originalName);
      t138.write(": ");
      t138;
      let fold = core.bool.as(this[_foldHeader](name));
      for (let i = 0; i < dart.notNull(values[$length]); i = i + 1) {
        if (i > 0) {
          if (dart.test(fold)) {
            sb.write(", ");
          } else {
            t138$ = sb;
            t138$.write("\n");
            t138$.write(originalName);
            t138$.write(": ");
            t138$;
          }
        }
        sb.write(values[$_get](i));
      }
      sb.write("\n");
    }, StringLAndListLOfStringLToNullN()));
    return sb.toString();
  }
  [_parseCookies]() {
    let cookies = JSArrayOfCookieL().of([]);
    function parseCookieString(s) {
      let index = 0;
      function done() {
        return index === -1 || index === s.length;
      }
      dart.fn(done, VoidToboolL());
      function skipWS() {
        while (!dart.test(done())) {
          if (s[$_get](index) !== " " && s[$_get](index) !== "\t") return;
          index = index + 1;
        }
      }
      dart.fn(skipWS, VoidTovoid());
      function parseName() {
        let start = index;
        while (!dart.test(done())) {
          if (s[$_get](index) === " " || s[$_get](index) === "\t" || s[$_get](index) === "=") break;
          index = index + 1;
        }
        return s[$substring](start, index);
      }
      dart.fn(parseName, VoidToStringL());
      function parseValue() {
        let start = index;
        while (!dart.test(done())) {
          if (s[$_get](index) === " " || s[$_get](index) === "\t" || s[$_get](index) === ";") break;
          index = index + 1;
        }
        return s[$substring](start, index);
      }
      dart.fn(parseValue, VoidToStringL());
      function expect(expected) {
        if (dart.test(done())) return false;
        if (s[$_get](index) !== expected) return false;
        index = index + 1;
        return true;
      }
      dart.fn(expect, StringLToboolL());
      while (!dart.test(done())) {
        skipWS();
        if (dart.test(done())) return;
        let name = parseName();
        skipWS();
        if (!dart.test(expect("="))) {
          index = s[$indexOf](";", index);
          continue;
        }
        skipWS();
        let value = parseValue();
        try {
          cookies[$add](new _http._Cookie.new(name, value));
        } catch (e) {
          let _ = dart.getThrown(e);
        }
        skipWS();
        if (dart.test(done())) return;
        if (!dart.test(expect(";"))) {
          index = s[$indexOf](";", index);
          continue;
        }
      }
    }
    dart.fn(parseCookieString, StringLTovoid());
    let values = this[_headers][$_get]("cookie");
    if (values != null) {
      values[$forEach](dart.fn(headerValue => parseCookieString(headerValue), StringLTovoid()));
    }
    return cookies;
  }
  static _validateField(field) {
    for (let i = 0; i < field.length; i = i + 1) {
      if (!dart.test(_http._HttpParser._isTokenChar(field[$codeUnitAt](i)))) {
        dart.throw(new core.FormatException.new("Invalid HTTP header field name: " + dart.str(convert.json.encode(field)), field, i));
      }
    }
    return field[$toLowerCase]();
  }
  static _validateValue(value) {
    if (!(typeof value == 'string')) return value;
    for (let i = 0; i < core.String.as(value).length; i = i + 1) {
      if (!dart.test(_http._HttpParser._isValueChar(core.String.as(value)[$codeUnitAt](i)))) {
        dart.throw(new core.FormatException.new("Invalid HTTP header field value: " + dart.str(convert.json.encode(value)), value, i));
      }
    }
    return value;
  }
  [_originalHeaderName](name) {
    let t139;
    t139 = this[_originalHeaderNames] == null ? null : this[_originalHeaderNames][$_get](name);
    return t139 == null ? name : t139;
  }
};
(_http._HttpHeaders.new = function(protocolVersion, opts) {
  let defaultPortForScheme = opts && 'defaultPortForScheme' in opts ? opts.defaultPortForScheme : 80;
  let initialHeaders = opts && 'initialHeaders' in opts ? opts.initialHeaders : null;
  this[_originalHeaderNames] = null;
  this[_mutable] = true;
  this[_noFoldingHeaders] = null;
  this[_contentLength] = -1;
  this[_persistentConnection] = true;
  this[_chunkedTransferEncoding] = false;
  this[_host] = null;
  this[_port] = null;
  this.protocolVersion = protocolVersion;
  this[_headers] = new (IdentityMapOfStringL$ListLOfStringL()).new();
  this[_defaultPortForScheme] = defaultPortForScheme;
  if (initialHeaders != null) {
    initialHeaders[_headers][$forEach](dart.fn((name, value) => {
      let t132, t131, t130;
      t130 = this[_headers];
      t131 = name;
      t132 = value;
      t130[$_set](t131, t132);
      return t132;
    }, StringLAndListLOfStringLToListLOfStringL()));
    this[_contentLength] = initialHeaders[_contentLength];
    this[_persistentConnection] = initialHeaders[_persistentConnection];
    this[_chunkedTransferEncoding] = initialHeaders[_chunkedTransferEncoding];
    this[_host] = initialHeaders[_host];
    this[_port] = initialHeaders[_port];
  }
  if (this.protocolVersion === "1.0") {
    this[_persistentConnection] = false;
    this[_chunkedTransferEncoding] = false;
  }
}).prototype = _http._HttpHeaders.prototype;
dart.addTypeTests(_http._HttpHeaders);
dart.addTypeCaches(_http._HttpHeaders);
_http._HttpHeaders[dart.implements] = () => [_http.HttpHeaders];
dart.setMethodSignature(_http._HttpHeaders, () => ({
  __proto__: dart.getMethods(_http._HttpHeaders.__proto__),
  _get: dart.fnType(core.List$(core.String), [core.String]),
  value: dart.fnType(core.String, [core.String]),
  add: dart.fnType(dart.void, [core.String, core.Object], {preserveHeaderCase: core.bool}, {}),
  [_addAll]: dart.fnType(dart.void, [core.String, dart.dynamic]),
  set: dart.fnType(dart.void, [core.String, core.Object], {preserveHeaderCase: core.bool}, {}),
  remove: dart.fnType(dart.void, [core.String, core.Object]),
  removeAll: dart.fnType(dart.void, [core.String]),
  forEach: dart.fnType(dart.void, [dart.fnType(dart.void, [core.String, core.List$(core.String)])]),
  noFolding: dart.fnType(dart.void, [core.String]),
  clear: dart.fnType(dart.void, []),
  [_add$2]: dart.fnType(dart.void, [core.String, dart.dynamic]),
  [_addContentLength]: dart.fnType(dart.void, [core.String, dart.dynamic]),
  [_addTransferEncoding]: dart.fnType(dart.void, [core.String, dart.dynamic]),
  [_addDate]: dart.fnType(dart.void, [core.String, dart.dynamic]),
  [_addExpires]: dart.fnType(dart.void, [core.String, dart.dynamic]),
  [_addIfModifiedSince]: dart.fnType(dart.void, [core.String, dart.dynamic]),
  [_addHost]: dart.fnType(dart.void, [core.String, dart.dynamic]),
  [_addConnection]: dart.fnType(dart.void, [core.String, dart.dynamic]),
  [_addContentType]: dart.fnType(dart.void, [core.String, dart.dynamic]),
  [_addValue]: dart.fnType(dart.void, [core.String, core.Object]),
  [_set]: dart.fnType(dart.void, [core.String, core.String]),
  [_checkMutable]: dart.fnType(dart.dynamic, []),
  [_updateHostHeader]: dart.fnType(dart.dynamic, []),
  [_foldHeader]: dart.fnType(dart.dynamic, [core.String]),
  [_finalize]: dart.fnType(dart.void, []),
  [_build]: dart.fnType(dart.void, [io.BytesBuilder]),
  [_parseCookies]: dart.fnType(core.List$(_http.Cookie), []),
  [_originalHeaderName]: dart.fnType(core.String, [core.String])
}));
dart.setGetterSignature(_http._HttpHeaders, () => ({
  __proto__: dart.getGetters(_http._HttpHeaders.__proto__),
  persistentConnection: core.bool,
  contentLength: core.int,
  chunkedTransferEncoding: core.bool,
  host: core.String,
  port: core.int,
  ifModifiedSince: core.DateTime,
  date: core.DateTime,
  expires: core.DateTime,
  contentType: _http.ContentType
}));
dart.setSetterSignature(_http._HttpHeaders, () => ({
  __proto__: dart.getSetters(_http._HttpHeaders.__proto__),
  persistentConnection: core.bool,
  contentLength: core.int,
  chunkedTransferEncoding: core.bool,
  host: core.String,
  port: core.int,
  ifModifiedSince: core.DateTime,
  date: core.DateTime,
  expires: core.DateTime,
  contentType: _http.ContentType
}));
dart.setLibraryUri(_http._HttpHeaders, L76);
dart.setFieldSignature(_http._HttpHeaders, () => ({
  __proto__: dart.getFields(_http._HttpHeaders.__proto__),
  [_headers]: dart.finalFieldType(core.Map$(core.String, core.List$(core.String))),
  [_originalHeaderNames]: dart.fieldType(core.Map$(core.String, core.String)),
  protocolVersion: dart.finalFieldType(core.String),
  [_mutable]: dart.fieldType(core.bool),
  [_noFoldingHeaders]: dart.fieldType(core.List$(core.String)),
  [_contentLength]: dart.fieldType(core.int),
  [_persistentConnection]: dart.fieldType(core.bool),
  [_chunkedTransferEncoding]: dart.fieldType(core.bool),
  [_host]: dart.fieldType(core.String),
  [_port]: dart.fieldType(core.int),
  [_defaultPortForScheme]: dart.finalFieldType(core.int)
}));
dart.defineExtensionMethods(_http._HttpHeaders, ['toString']);
var _parameters = dart.privateName(_http, "_parameters");
var _unmodifiableParameters = dart.privateName(_http, "_unmodifiableParameters");
var _value$9 = dart.privateName(_http, "_value");
var _parse = dart.privateName(_http, "_parse");
var _ensureParameters = dart.privateName(_http, "_ensureParameters");
_http._HeaderValue = class _HeaderValue extends core.Object {
  static parse(value, opts) {
    let parameterSeparator = opts && 'parameterSeparator' in opts ? opts.parameterSeparator : ";";
    let valueSeparator = opts && 'valueSeparator' in opts ? opts.valueSeparator : null;
    let preserveBackslash = opts && 'preserveBackslash' in opts ? opts.preserveBackslash : false;
    let result = new _http._HeaderValue.new();
    result[_parse](value, core.String.as(parameterSeparator), core.String.as(valueSeparator), core.bool.as(preserveBackslash));
    return result;
  }
  get value() {
    return this[_value$9];
  }
  [_ensureParameters]() {
    let t139;
    t139 = this[_parameters];
    return t139 == null ? this[_parameters] = new (IdentityMapOfStringL$StringL()).new() : t139;
  }
  get parameters() {
    let t139;
    t139 = this[_unmodifiableParameters];
    return t139 == null ? this[_unmodifiableParameters] = new (UnmodifiableMapViewOfStringL$StringL()).new(this[_ensureParameters]()) : t139;
  }
  static _isToken(token) {
    if (token[$isEmpty]) {
      return false;
    }
    let delimiters = "\"(),/:;<=>?@[]{}";
    for (let i = 0; i < token.length; i = i + 1) {
      let codeUnit = token[$codeUnitAt](i);
      if (codeUnit <= 32 || codeUnit >= 127 || delimiters[$indexOf](token[$_get](i)) >= 0) {
        return false;
      }
    }
    return true;
  }
  toString() {
    let sb = new core.StringBuffer.new();
    sb.write(this[_value$9]);
    if (this.parameters != null && dart.notNull(this.parameters[$length]) > 0) {
      this[_parameters][$forEach](dart.fn((name, value) => {
        let t139, t139$;
        t139 = sb;
        t139.write("; ");
        t139.write(name);
        t139;
        if (value != null) {
          sb.write("=");
          if (dart.test(_http._HeaderValue._isToken(value))) {
            sb.write(value);
          } else {
            sb.write("\"");
            let start = 0;
            for (let i = 0; i < value.length; i = i + 1) {
              let codeUnit = value[$codeUnitAt](i);
              if (codeUnit === 92 || codeUnit === 34) {
                sb.write(value[$substring](start, i));
                sb.write("\\");
                start = i;
              }
            }
            t139$ = sb;
            t139$.write(value[$substring](start));
            t139$.write("\"");
            t139$;
          }
        }
      }, StringLAndStringLToNullN()));
    }
    return sb.toString();
  }
  [_parse](s, parameterSeparator, valueSeparator, preserveBackslash) {
    let index = 0;
    function done() {
      return index === s.length;
    }
    dart.fn(done, VoidToboolL());
    function skipWS() {
      while (!dart.test(done())) {
        if (s[$_get](index) !== " " && s[$_get](index) !== "\t") return;
        index = index + 1;
      }
    }
    dart.fn(skipWS, VoidTovoid());
    function parseValue() {
      let start = index;
      while (!dart.test(done())) {
        if (s[$_get](index) === " " || s[$_get](index) === "\t" || s[$_get](index) === valueSeparator || s[$_get](index) === parameterSeparator) break;
        index = index + 1;
      }
      return s[$substring](start, index);
    }
    dart.fn(parseValue, VoidToStringL());
    function expect(expected) {
      if (dart.test(done()) || s[$_get](index) !== expected) {
        dart.throw(new _http.HttpException.new("Failed to parse header value"));
      }
      index = index + 1;
    }
    dart.fn(expect, StringLTovoid());
    function maybeExpect(expected) {
      if (dart.test(done()) || !s[$startsWith](expected, index)) {
        return false;
      }
      index = index + 1;
      return true;
    }
    dart.fn(maybeExpect, StringLToboolL());
    const parseParameters = () => {
      let parameters = new (IdentityMapOfStringL$StringL()).new();
      this[_parameters] = new (UnmodifiableMapViewOfStringL$StringL()).new(parameters);
      function parseParameterName() {
        let start = index;
        while (!dart.test(done())) {
          if (s[$_get](index) === " " || s[$_get](index) === "\t" || s[$_get](index) === "=" || s[$_get](index) === parameterSeparator || s[$_get](index) === valueSeparator) break;
          index = index + 1;
        }
        return s[$substring](start, index)[$toLowerCase]();
      }
      dart.fn(parseParameterName, VoidToStringL());
      function parseParameterValue() {
        if (!dart.test(done()) && s[$_get](index) === "\"") {
          let sb = new core.StringBuffer.new();
          index = index + 1;
          while (!dart.test(done())) {
            if (s[$_get](index) === "\\") {
              if (index + 1 === s.length) {
                dart.throw(new _http.HttpException.new("Failed to parse header value"));
              }
              if (dart.test(preserveBackslash) && s[$_get](index + 1) !== "\"") {
                sb.write(s[$_get](index));
              }
              index = index + 1;
            } else if (s[$_get](index) === "\"") {
              index = index + 1;
              return sb.toString();
            }
            sb.write(s[$_get](index));
            index = index + 1;
          }
          dart.throw(new _http.HttpException.new("Failed to parse header value"));
        } else {
          return parseValue();
        }
      }
      dart.fn(parseParameterValue, VoidToStringL());
      while (!dart.test(done())) {
        skipWS();
        if (dart.test(done())) return;
        let name = parseParameterName();
        skipWS();
        if (dart.test(maybeExpect("="))) {
          skipWS();
          let value = parseParameterValue();
          if (name === "charset" && _http._ContentType.is(this)) {
            value = value[$toLowerCase]();
          }
          parameters[$_set](name, value);
          skipWS();
        } else if (name[$isNotEmpty]) {
          parameters[$_set](name, null);
        }
        if (dart.test(done())) return;
        if (s[$_get](index) === valueSeparator) return;
        expect(parameterSeparator);
      }
    };
    dart.fn(parseParameters, VoidTovoid());
    skipWS();
    this[_value$9] = parseValue();
    skipWS();
    if (dart.test(done())) return;
    if (s[$_get](index) === valueSeparator) return;
    maybeExpect(parameterSeparator);
    parseParameters();
  }
};
(_http._HeaderValue.new = function(_value = "", parameters = C443 || CT.C443) {
  this[_parameters] = null;
  this[_unmodifiableParameters] = null;
  this[_value$9] = _value;
  if (parameters != null && dart.test(parameters[$isNotEmpty])) {
    this[_parameters] = HashMapOfStringL$StringL().from(parameters);
  }
}).prototype = _http._HeaderValue.prototype;
dart.addTypeTests(_http._HeaderValue);
dart.addTypeCaches(_http._HeaderValue);
_http._HeaderValue[dart.implements] = () => [_http.HeaderValue];
dart.setMethodSignature(_http._HeaderValue, () => ({
  __proto__: dart.getMethods(_http._HeaderValue.__proto__),
  [_ensureParameters]: dart.fnType(core.Map$(core.String, core.String), []),
  [_parse]: dart.fnType(dart.void, [core.String, core.String, core.String, core.bool])
}));
dart.setGetterSignature(_http._HeaderValue, () => ({
  __proto__: dart.getGetters(_http._HeaderValue.__proto__),
  value: core.String,
  parameters: core.Map$(core.String, core.String)
}));
dart.setLibraryUri(_http._HeaderValue, L76);
dart.setFieldSignature(_http._HeaderValue, () => ({
  __proto__: dart.getFields(_http._HeaderValue.__proto__),
  [_value$9]: dart.fieldType(core.String),
  [_parameters]: dart.fieldType(core.Map$(core.String, core.String)),
  [_unmodifiableParameters]: dart.fieldType(core.Map$(core.String, core.String))
}));
dart.defineExtensionMethods(_http._HeaderValue, ['toString']);
var _primaryType = dart.privateName(_http, "_primaryType");
var _subType = dart.privateName(_http, "_subType");
_http._ContentType = class _ContentType extends _http._HeaderValue {
  static parse(value) {
    let result = new _http._ContentType.__();
    result[_parse](value, ";", null, false);
    let index = result[_value$9][$indexOf]("/");
    if (index === -1 || index === result[_value$9].length - 1) {
      result[_primaryType] = result[_value$9][$trim]()[$toLowerCase]();
      result[_subType] = "";
    } else {
      result[_primaryType] = result[_value$9][$substring](0, index)[$trim]()[$toLowerCase]();
      result[_subType] = result[_value$9][$substring](index + 1)[$trim]()[$toLowerCase]();
    }
    return result;
  }
  get mimeType() {
    return dart.str(this.primaryType) + "/" + dart.str(this.subType);
  }
  get primaryType() {
    return this[_primaryType];
  }
  get subType() {
    return this[_subType];
  }
  get charset() {
    return this.parameters[$_get]("charset");
  }
};
(_http._ContentType.new = function(primaryType, subType, charset, parameters) {
  this[_primaryType] = "";
  this[_subType] = "";
  this[_primaryType] = primaryType;
  this[_subType] = subType;
  _http._ContentType.__proto__.new.call(this, "");
  if (this[_primaryType] == null) this[_primaryType] = "";
  if (this[_subType] == null) this[_subType] = "";
  this[_value$9] = dart.str(this[_primaryType]) + "/" + dart.str(this[_subType]);
  if (parameters != null) {
    this[_ensureParameters]();
    parameters[$forEach](dart.fn((key, value) => {
      let t139;
      let lowerCaseKey = key[$toLowerCase]();
      if (lowerCaseKey === "charset") {
        value = (t139 = value, t139 == null ? null : t139[$toLowerCase]());
      }
      this[_parameters][$_set](lowerCaseKey, value);
    }, StringLAndStringLToNullN()));
  }
  if (charset != null) {
    this[_ensureParameters]();
    this[_parameters][$_set]("charset", charset[$toLowerCase]());
  }
}).prototype = _http._ContentType.prototype;
(_http._ContentType.__ = function() {
  this[_primaryType] = "";
  this[_subType] = "";
  _http._ContentType.__proto__.new.call(this);
  ;
}).prototype = _http._ContentType.prototype;
dart.addTypeTests(_http._ContentType);
dart.addTypeCaches(_http._ContentType);
_http._ContentType[dart.implements] = () => [_http.ContentType];
dart.setGetterSignature(_http._ContentType, () => ({
  __proto__: dart.getGetters(_http._ContentType.__proto__),
  mimeType: core.String,
  primaryType: core.String,
  subType: core.String,
  charset: core.String
}));
dart.setLibraryUri(_http._ContentType, L76);
dart.setFieldSignature(_http._ContentType, () => ({
  __proto__: dart.getFields(_http._ContentType.__proto__),
  [_primaryType]: dart.fieldType(core.String),
  [_subType]: dart.fieldType(core.String)
}));
var _parseSetCookieValue = dart.privateName(_http, "_parseSetCookieValue");
var C463;
_http._Cookie = class _Cookie extends core.Object {
  get name() {
    return this[_name$7];
  }
  get value() {
    return this[_value$9];
  }
  set name(newName) {
    _http._Cookie._validateName(newName);
    this[_name$7] = newName;
  }
  set value(newValue) {
    _http._Cookie._validateValue(newValue);
    this[_value$9] = newValue;
  }
  [_parseSetCookieValue](s) {
    let index = 0;
    function done() {
      return index === s.length;
    }
    dart.fn(done, VoidToboolL());
    function parseName() {
      let start = index;
      while (!dart.test(done())) {
        if (s[$_get](index) === "=") break;
        index = index + 1;
      }
      return s[$substring](start, index)[$trim]();
    }
    dart.fn(parseName, VoidToStringL());
    function parseValue() {
      let start = index;
      while (!dart.test(done())) {
        if (s[$_get](index) === ";") break;
        index = index + 1;
      }
      return s[$substring](start, index)[$trim]();
    }
    dart.fn(parseValue, VoidToStringL());
    const parseAttributes = () => {
      function parseAttributeName() {
        let start = index;
        while (!dart.test(done())) {
          if (s[$_get](index) === "=" || s[$_get](index) === ";") break;
          index = index + 1;
        }
        return s[$substring](start, index)[$trim]()[$toLowerCase]();
      }
      dart.fn(parseAttributeName, VoidToStringL());
      function parseAttributeValue() {
        let start = index;
        while (!dart.test(done())) {
          if (s[$_get](index) === ";") break;
          index = index + 1;
        }
        return s[$substring](start, index)[$trim]()[$toLowerCase]();
      }
      dart.fn(parseAttributeValue, VoidToStringL());
      while (!dart.test(done())) {
        let name = parseAttributeName();
        let value = "";
        if (!dart.test(done()) && s[$_get](index) === "=") {
          index = index + 1;
          value = parseAttributeValue();
        }
        if (name === "expires") {
          this.expires = _http.HttpDate._parseCookieDate(value);
        } else if (name === "max-age") {
          this.maxAge = core.int.parse(value);
        } else if (name === "domain") {
          this.domain = value;
        } else if (name === "path") {
          this.path = value;
        } else if (name === "httponly") {
          this.httpOnly = true;
        } else if (name === "secure") {
          this.secure = true;
        }
        if (!dart.test(done())) index = index + 1;
      }
    };
    dart.fn(parseAttributes, VoidTovoid());
    this[_name$7] = _http._Cookie._validateName(parseName());
    if (dart.test(done()) || this[_name$7].length === 0) {
      dart.throw(new _http.HttpException.new("Failed to parse header value [" + dart.str(s) + "]"));
    }
    index = index + 1;
    this[_value$9] = _http._Cookie._validateValue(parseValue());
    if (dart.test(done())) return;
    index = index + 1;
    parseAttributes();
  }
  toString() {
    let t139, t139$, t139$0, t139$1, t139$2;
    let sb = new core.StringBuffer.new();
    t139 = sb;
    t139.write(this[_name$7]);
    t139.write("=");
    t139.write(this[_value$9]);
    t139;
    if (this.expires != null) {
      t139$ = sb;
      t139$.write("; Expires=");
      t139$.write(_http.HttpDate.format(this.expires));
      t139$;
    }
    if (this.maxAge != null) {
      t139$0 = sb;
      t139$0.write("; Max-Age=");
      t139$0.write(this.maxAge);
      t139$0;
    }
    if (this.domain != null) {
      t139$1 = sb;
      t139$1.write("; Domain=");
      t139$1.write(this.domain);
      t139$1;
    }
    if (this.path != null) {
      t139$2 = sb;
      t139$2.write("; Path=");
      t139$2.write(this.path);
      t139$2;
    }
    if (dart.test(this.secure)) sb.write("; Secure");
    if (dart.test(this.httpOnly)) sb.write("; HttpOnly");
    return sb.toString();
  }
  static _validateName(newName) {
    let separators = C463 || CT.C463;
    if (newName == null) dart.throw(new core.ArgumentError.notNull("name"));
    for (let i = 0; i < newName.length; i = i + 1) {
      let codeUnit = newName[$codeUnits][$_get](i);
      if (dart.notNull(codeUnit) <= 32 || dart.notNull(codeUnit) >= 127 || dart.notNull(separators[$indexOf](newName[$_get](i))) >= 0) {
        dart.throw(new core.FormatException.new("Invalid character in cookie name, code unit: '" + dart.str(codeUnit) + "'", newName, i));
      }
    }
    return newName;
  }
  static _validateValue(newValue) {
    if (newValue == null) dart.throw(new core.ArgumentError.notNull("value"));
    let start = 0;
    let end = newValue.length;
    if (2 <= newValue.length && newValue[$codeUnits][$_get](start) === 34 && newValue[$codeUnits][$_get](end - 1) === 34) {
      start = start + 1;
      end = end - 1;
    }
    for (let i = start; i < end; i = i + 1) {
      let codeUnit = newValue[$codeUnits][$_get](i);
      if (!(codeUnit === 33 || dart.notNull(codeUnit) >= 35 && dart.notNull(codeUnit) <= 43 || dart.notNull(codeUnit) >= 45 && dart.notNull(codeUnit) <= 58 || dart.notNull(codeUnit) >= 60 && dart.notNull(codeUnit) <= 91 || dart.notNull(codeUnit) >= 93 && dart.notNull(codeUnit) <= 126)) {
        dart.throw(new core.FormatException.new("Invalid character in cookie value, code unit: '" + dart.str(codeUnit) + "'", newValue, i));
      }
    }
    return newValue;
  }
};
(_http._Cookie.new = function(name, value) {
  this.expires = null;
  this.maxAge = null;
  this.domain = null;
  this.path = null;
  this.httpOnly = false;
  this.secure = false;
  this[_name$7] = _http._Cookie._validateName(name);
  this[_value$9] = _http._Cookie._validateValue(value);
  this.httpOnly = true;
  ;
}).prototype = _http._Cookie.prototype;
(_http._Cookie.fromSetCookieValue = function(value) {
  this.expires = null;
  this.maxAge = null;
  this.domain = null;
  this.path = null;
  this.httpOnly = false;
  this.secure = false;
  this[_value$9] = null;
  this[_name$7] = null;
  this[_parseSetCookieValue](value);
}).prototype = _http._Cookie.prototype;
dart.addTypeTests(_http._Cookie);
dart.addTypeCaches(_http._Cookie);
_http._Cookie[dart.implements] = () => [_http.Cookie];
dart.setMethodSignature(_http._Cookie, () => ({
  __proto__: dart.getMethods(_http._Cookie.__proto__),
  [_parseSetCookieValue]: dart.fnType(dart.void, [core.String])
}));
dart.setGetterSignature(_http._Cookie, () => ({
  __proto__: dart.getGetters(_http._Cookie.__proto__),
  name: core.String,
  value: core.String
}));
dart.setSetterSignature(_http._Cookie, () => ({
  __proto__: dart.getSetters(_http._Cookie.__proto__),
  name: core.String,
  value: core.String
}));
dart.setLibraryUri(_http._Cookie, L76);
dart.setFieldSignature(_http._Cookie, () => ({
  __proto__: dart.getFields(_http._Cookie.__proto__),
  [_name$7]: dart.fieldType(core.String),
  [_value$9]: dart.fieldType(core.String),
  expires: dart.fieldType(core.DateTime),
  maxAge: dart.fieldType(core.int),
  domain: dart.fieldType(core.String),
  path: dart.fieldType(core.String),
  httpOnly: dart.fieldType(core.bool),
  secure: dart.fieldType(core.bool)
}));
dart.defineExtensionMethods(_http._Cookie, ['toString']);
var __serviceId$ = dart.privateName(_http, "__serviceId");
var _serviceId$ = dart.privateName(_http, "_serviceId");
var _serviceTypePath$ = dart.privateName(_http, "_serviceTypePath");
var _servicePath$ = dart.privateName(_http, "_servicePath");
var _serviceTypeName$ = dart.privateName(_http, "_serviceTypeName");
var _serviceType$ = dart.privateName(_http, "_serviceType");
_http._ServiceObject = class _ServiceObject extends core.Object {
  get [_serviceId$]() {
    let t139;
    if (this[__serviceId$] === 0) this[__serviceId$] = (t139 = _http._nextServiceId, _http._nextServiceId = dart.notNull(t139) + 1, t139);
    return this[__serviceId$];
  }
  get [_servicePath$]() {
    return dart.str(this[_serviceTypePath$]) + "/" + dart.str(this[_serviceId$]);
  }
  [_serviceType$](ref) {
    if (dart.test(ref)) return "@" + dart.str(this[_serviceTypeName$]);
    return this[_serviceTypeName$];
  }
};
(_http._ServiceObject.new = function() {
  this[__serviceId$] = 0;
  ;
}).prototype = _http._ServiceObject.prototype;
dart.addTypeTests(_http._ServiceObject);
dart.addTypeCaches(_http._ServiceObject);
dart.setMethodSignature(_http._ServiceObject, () => ({
  __proto__: dart.getMethods(_http._ServiceObject.__proto__),
  [_serviceType$]: dart.fnType(core.String, [core.bool])
}));
dart.setGetterSignature(_http._ServiceObject, () => ({
  __proto__: dart.getGetters(_http._ServiceObject.__proto__),
  [_serviceId$]: core.int,
  [_servicePath$]: core.String
}));
dart.setLibraryUri(_http._ServiceObject, L76);
dart.setFieldSignature(_http._ServiceObject, () => ({
  __proto__: dart.getFields(_http._ServiceObject.__proto__),
  [__serviceId$]: dart.fieldType(core.int)
}));
var _length$3 = dart.privateName(_http, "_length");
var _buffer$1 = dart.privateName(_http, "_buffer");
var _grow$0 = dart.privateName(_http, "_grow");
_http._CopyingBytesBuilder = class _CopyingBytesBuilder extends core.Object {
  add(bytes) {
    let bytesLength = bytes[$length];
    if (bytesLength === 0) return;
    let required = dart.notNull(this[_length$3]) + dart.notNull(bytesLength);
    if (dart.notNull(this[_buffer$1][$length]) < required) {
      this[_grow$0](required);
    }
    if (!(dart.notNull(this[_buffer$1][$length]) >= required)) dart.assertFailed(null, L79, 54, 12, "_buffer.length >= required");
    if (typed_data.Uint8List.is(bytes)) {
      this[_buffer$1][$setRange](this[_length$3], required, bytes);
    } else {
      for (let i = 0; i < dart.notNull(bytesLength); i = i + 1) {
        this[_buffer$1][$_set](dart.notNull(this[_length$3]) + i, bytes[$_get](i));
      }
    }
    this[_length$3] = required;
  }
  addByte(byte) {
    if (this[_buffer$1][$length] == this[_length$3]) {
      this[_grow$0](this[_length$3]);
    }
    if (!(dart.notNull(this[_buffer$1][$length]) > dart.notNull(this[_length$3]))) dart.assertFailed(null, L79, 71, 12, "_buffer.length > _length");
    this[_buffer$1][$_set](this[_length$3], byte);
    this[_length$3] = dart.notNull(this[_length$3]) + 1;
  }
  [_grow$0](required) {
    let newSize = dart.notNull(required) * 2;
    if (dart.notNull(newSize) < 1024) {
      newSize = 1024;
    } else {
      newSize = _http._CopyingBytesBuilder._pow2roundup(newSize);
    }
    let newBuffer = _native_typed_data.NativeUint8List.new(newSize);
    newBuffer[$setRange](0, this[_buffer$1][$length], this[_buffer$1]);
    this[_buffer$1] = newBuffer;
  }
  takeBytes() {
    if (this[_length$3] === 0) return _http._CopyingBytesBuilder._emptyList;
    let buffer = typed_data.Uint8List.view(this[_buffer$1][$buffer], this[_buffer$1][$offsetInBytes], this[_length$3]);
    this.clear();
    return buffer;
  }
  toBytes() {
    if (this[_length$3] === 0) return _http._CopyingBytesBuilder._emptyList;
    return _native_typed_data.NativeUint8List.fromList(typed_data.Uint8List.view(this[_buffer$1][$buffer], this[_buffer$1][$offsetInBytes], this[_length$3]));
  }
  get length() {
    return this[_length$3];
  }
  get isEmpty() {
    return this[_length$3] === 0;
  }
  get isNotEmpty() {
    return this[_length$3] !== 0;
  }
  clear() {
    this[_length$3] = 0;
    this[_buffer$1] = _http._CopyingBytesBuilder._emptyList;
  }
  static _pow2roundup(x) {
    if (!(dart.notNull(x) > 0)) dart.assertFailed(null, L79, 116, 12, "x > 0");
    x = dart.notNull(x) - 1;
    x = (dart.notNull(x) | x[$rightShift](1)) >>> 0;
    x = (dart.notNull(x) | x[$rightShift](2)) >>> 0;
    x = (dart.notNull(x) | x[$rightShift](4)) >>> 0;
    x = (dart.notNull(x) | x[$rightShift](8)) >>> 0;
    x = (dart.notNull(x) | x[$rightShift](16)) >>> 0;
    return dart.notNull(x) + 1;
  }
};
(_http._CopyingBytesBuilder.new = function(initialCapacity = 0) {
  this[_length$3] = 0;
  this[_buffer$1] = dart.notNull(initialCapacity) <= 0 ? _http._CopyingBytesBuilder._emptyList : _native_typed_data.NativeUint8List.new(_http._CopyingBytesBuilder._pow2roundup(initialCapacity));
  ;
}).prototype = _http._CopyingBytesBuilder.prototype;
dart.addTypeTests(_http._CopyingBytesBuilder);
dart.addTypeCaches(_http._CopyingBytesBuilder);
_http._CopyingBytesBuilder[dart.implements] = () => [io.BytesBuilder];
dart.setMethodSignature(_http._CopyingBytesBuilder, () => ({
  __proto__: dart.getMethods(_http._CopyingBytesBuilder.__proto__),
  add: dart.fnType(dart.void, [core.List$(core.int)]),
  addByte: dart.fnType(dart.void, [core.int]),
  [_grow$0]: dart.fnType(dart.void, [core.int]),
  takeBytes: dart.fnType(typed_data.Uint8List, []),
  toBytes: dart.fnType(typed_data.Uint8List, []),
  clear: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(_http._CopyingBytesBuilder, () => ({
  __proto__: dart.getGetters(_http._CopyingBytesBuilder.__proto__),
  length: core.int,
  isEmpty: core.bool,
  isNotEmpty: core.bool
}));
dart.setLibraryUri(_http._CopyingBytesBuilder, L76);
dart.setFieldSignature(_http._CopyingBytesBuilder, () => ({
  __proto__: dart.getFields(_http._CopyingBytesBuilder.__proto__),
  [_length$3]: dart.fieldType(core.int),
  [_buffer$1]: dart.fieldType(typed_data.Uint8List)
}));
dart.defineLazy(_http._CopyingBytesBuilder, {
  /*_http._CopyingBytesBuilder._INIT_SIZE*/get _INIT_SIZE() {
    return 1024;
  },
  /*_http._CopyingBytesBuilder._emptyList*/get _emptyList() {
    return _native_typed_data.NativeUint8List.new(0);
  }
}, true);
var _dataCompleter = dart.privateName(_http, "_dataCompleter");
var _transferLength$ = dart.privateName(_http, "_transferLength");
var _stream$2 = dart.privateName(_http, "_stream");
_http._HttpIncoming = class _HttpIncoming extends async.Stream$(typed_data.Uint8List) {
  get transferLength() {
    return this[_transferLength$];
  }
  listen(onData, opts) {
    let onError = opts && 'onError' in opts ? opts.onError : null;
    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
    this.hasSubscriber = true;
    return this[_stream$2].handleError(dart.fn(error => {
      dart.throw(new _http.HttpException.new(core.String.as(dart.dload(error, 'message')), {uri: this.uri}));
    }, dynamicToNullN())).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
  }
  get dataDone() {
    return this[_dataCompleter].future;
  }
  close(closing) {
    this.fullBodyRead = true;
    this.hasSubscriber = true;
    this[_dataCompleter].complete(closing);
  }
};
(_http._HttpIncoming.new = function(headers, _transferLength, _stream) {
  this[_dataCompleter] = async.Completer.new();
  this.fullBodyRead = false;
  this.upgraded = false;
  this.statusCode = null;
  this.reasonPhrase = null;
  this.method = null;
  this.uri = null;
  this.hasSubscriber = false;
  this.headers = headers;
  this[_transferLength$] = _transferLength;
  this[_stream$2] = _stream;
  _http._HttpIncoming.__proto__.new.call(this);
  ;
}).prototype = _http._HttpIncoming.prototype;
dart.addTypeTests(_http._HttpIncoming);
dart.addTypeCaches(_http._HttpIncoming);
dart.setMethodSignature(_http._HttpIncoming, () => ({
  __proto__: dart.getMethods(_http._HttpIncoming.__proto__),
  listen: dart.fnType(async.StreamSubscription$(typed_data.Uint8List), [dart.fnType(dart.void, [typed_data.Uint8List])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {}),
  close: dart.fnType(dart.void, [core.bool])
}));
dart.setGetterSignature(_http._HttpIncoming, () => ({
  __proto__: dart.getGetters(_http._HttpIncoming.__proto__),
  transferLength: core.int,
  dataDone: async.Future
}));
dart.setLibraryUri(_http._HttpIncoming, L76);
dart.setFieldSignature(_http._HttpIncoming, () => ({
  __proto__: dart.getFields(_http._HttpIncoming.__proto__),
  [_transferLength$]: dart.finalFieldType(core.int),
  [_dataCompleter]: dart.finalFieldType(async.Completer),
  [_stream$2]: dart.fieldType(async.Stream$(typed_data.Uint8List)),
  fullBodyRead: dart.fieldType(core.bool),
  headers: dart.finalFieldType(_http._HttpHeaders),
  upgraded: dart.fieldType(core.bool),
  statusCode: dart.fieldType(core.int),
  reasonPhrase: dart.fieldType(core.String),
  method: dart.fieldType(core.String),
  uri: dart.fieldType(core.Uri),
  hasSubscriber: dart.fieldType(core.bool)
}));
var _cookies = dart.privateName(_http, "_cookies");
var _incoming$ = dart.privateName(_http, "_incoming");
_http._HttpInboundMessageListInt = class _HttpInboundMessageListInt extends async.Stream$(core.List$(core.int)) {
  get cookies() {
    if (this[_cookies] != null) return this[_cookies];
    return this[_cookies] = this.headers[_parseCookies]();
  }
  get headers() {
    return this[_incoming$].headers;
  }
  get protocolVersion() {
    return this.headers.protocolVersion;
  }
  get contentLength() {
    return this.headers.contentLength;
  }
  get persistentConnection() {
    return this.headers.persistentConnection;
  }
};
(_http._HttpInboundMessageListInt.new = function(_incoming) {
  this[_cookies] = null;
  this[_incoming$] = _incoming;
  _http._HttpInboundMessageListInt.__proto__.new.call(this);
  ;
}).prototype = _http._HttpInboundMessageListInt.prototype;
dart.addTypeTests(_http._HttpInboundMessageListInt);
dart.addTypeCaches(_http._HttpInboundMessageListInt);
dart.setGetterSignature(_http._HttpInboundMessageListInt, () => ({
  __proto__: dart.getGetters(_http._HttpInboundMessageListInt.__proto__),
  cookies: core.List$(_http.Cookie),
  headers: _http._HttpHeaders,
  protocolVersion: core.String,
  contentLength: core.int,
  persistentConnection: core.bool
}));
dart.setLibraryUri(_http._HttpInboundMessageListInt, L76);
dart.setFieldSignature(_http._HttpInboundMessageListInt, () => ({
  __proto__: dart.getFields(_http._HttpInboundMessageListInt.__proto__),
  [_incoming$]: dart.finalFieldType(_http._HttpIncoming),
  [_cookies]: dart.fieldType(core.List$(_http.Cookie))
}));
_http._HttpInboundMessage = class _HttpInboundMessage extends async.Stream$(typed_data.Uint8List) {
  get cookies() {
    if (this[_cookies] != null) return this[_cookies];
    return this[_cookies] = this.headers[_parseCookies]();
  }
  get headers() {
    return this[_incoming$].headers;
  }
  get protocolVersion() {
    return this.headers.protocolVersion;
  }
  get contentLength() {
    return this.headers.contentLength;
  }
  get persistentConnection() {
    return this.headers.persistentConnection;
  }
};
(_http._HttpInboundMessage.new = function(_incoming) {
  this[_cookies] = null;
  this[_incoming$] = _incoming;
  _http._HttpInboundMessage.__proto__.new.call(this);
  ;
}).prototype = _http._HttpInboundMessage.prototype;
dart.addTypeTests(_http._HttpInboundMessage);
dart.addTypeCaches(_http._HttpInboundMessage);
dart.setGetterSignature(_http._HttpInboundMessage, () => ({
  __proto__: dart.getGetters(_http._HttpInboundMessage.__proto__),
  cookies: core.List$(_http.Cookie),
  headers: _http._HttpHeaders,
  protocolVersion: core.String,
  contentLength: core.int,
  persistentConnection: core.bool
}));
dart.setLibraryUri(_http._HttpInboundMessage, L76);
dart.setFieldSignature(_http._HttpInboundMessage, () => ({
  __proto__: dart.getFields(_http._HttpInboundMessage.__proto__),
  [_incoming$]: dart.finalFieldType(_http._HttpIncoming),
  [_cookies]: dart.fieldType(core.List$(_http.Cookie))
}));
var _session = dart.privateName(_http, "_session");
var _requestedUri = dart.privateName(_http, "_requestedUri");
var _httpServer$ = dart.privateName(_http, "_httpServer");
var _httpConnection$ = dart.privateName(_http, "_httpConnection");
var _sessionManagerInstance = dart.privateName(_http, "_sessionManagerInstance");
var _sessionManager$ = dart.privateName(_http, "_sessionManager");
var _markSeen = dart.privateName(_http, "_markSeen");
var _socket$0 = dart.privateName(_http, "_socket");
var _destroyed = dart.privateName(_http, "_destroyed");
_http._HttpRequest = class _HttpRequest extends _http._HttpInboundMessage {
  listen(onData, opts) {
    let onError = opts && 'onError' in opts ? opts.onError : null;
    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
    return this[_incoming$].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
  }
  get uri() {
    return this[_incoming$].uri;
  }
  get requestedUri() {
    if (this[_requestedUri] == null) {
      let proto = this.headers._get("x-forwarded-proto");
      let scheme = proto != null ? proto[$first] : io.SecureSocket.is(this[_httpConnection$][_socket$0]) ? "https" : "http";
      let hostList = this.headers._get("x-forwarded-host");
      let host = null;
      if (hostList != null) {
        host = hostList[$first];
      } else {
        hostList = this.headers._get("host");
        if (hostList != null) {
          host = hostList[$first];
        } else {
          host = dart.str(this[_httpServer$].address.host) + ":" + dart.str(this[_httpServer$].port);
        }
      }
      this[_requestedUri] = core.Uri.parse(dart.str(scheme) + "://" + dart.str(host) + dart.str(this.uri));
    }
    return this[_requestedUri];
  }
  get method() {
    return this[_incoming$].method;
  }
  get session() {
    if (this[_session] != null) {
      if (dart.test(this[_session][_destroyed])) {
        this[_session] = null;
        return this.session;
      }
      return this[_session];
    }
    return this[_session] = this[_httpServer$][_sessionManager$].createSession();
  }
  get connectionInfo() {
    return this[_httpConnection$].connectionInfo;
  }
  get certificate() {
    let socket = this[_httpConnection$][_socket$0];
    if (io.SecureSocket.is(socket)) return socket.peerCertificate;
    return null;
  }
};
(_http._HttpRequest.new = function(response, _incoming, _httpServer, _httpConnection) {
  let t139;
  this[_session] = null;
  this[_requestedUri] = null;
  this.response = response;
  this[_httpServer$] = _httpServer;
  this[_httpConnection$] = _httpConnection;
  _http._HttpRequest.__proto__.new.call(this, _incoming);
  if (this.headers.protocolVersion === "1.1") {
    t139 = this.response.headers;
    t139.chunkedTransferEncoding = true;
    t139.persistentConnection = this.headers.persistentConnection;
    t139;
  }
  if (this[_httpServer$][_sessionManagerInstance] != null) {
    let sessionIds = this.cookies[$where](dart.fn(cookie => cookie.name[$toUpperCase]() === "DARTSESSID", CookieLToboolL()))[$map](core.String, dart.fn(cookie => cookie.value, CookieLToStringL()));
    for (let sessionId of sessionIds) {
      this[_session] = this[_httpServer$][_sessionManager$].getSession(sessionId);
      if (this[_session] != null) {
        this[_session][_markSeen]();
        break;
      }
    }
  }
}).prototype = _http._HttpRequest.prototype;
dart.addTypeTests(_http._HttpRequest);
dart.addTypeCaches(_http._HttpRequest);
_http._HttpRequest[dart.implements] = () => [_http.HttpRequest];
dart.setMethodSignature(_http._HttpRequest, () => ({
  __proto__: dart.getMethods(_http._HttpRequest.__proto__),
  listen: dart.fnType(async.StreamSubscription$(typed_data.Uint8List), [dart.fnType(dart.void, [typed_data.Uint8List])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {})
}));
dart.setGetterSignature(_http._HttpRequest, () => ({
  __proto__: dart.getGetters(_http._HttpRequest.__proto__),
  uri: core.Uri,
  requestedUri: core.Uri,
  method: core.String,
  session: _http.HttpSession,
  connectionInfo: _http.HttpConnectionInfo,
  certificate: io.X509Certificate
}));
dart.setLibraryUri(_http._HttpRequest, L76);
dart.setFieldSignature(_http._HttpRequest, () => ({
  __proto__: dart.getFields(_http._HttpRequest.__proto__),
  response: dart.finalFieldType(_http.HttpResponse),
  [_httpServer$]: dart.finalFieldType(_http._HttpServer),
  [_httpConnection$]: dart.finalFieldType(_http._HttpConnection),
  [_session]: dart.fieldType(_http._HttpSession),
  [_requestedUri]: dart.fieldType(core.Uri)
}));
var _httpRequest$ = dart.privateName(_http, "_httpRequest");
var _httpClient$ = dart.privateName(_http, "_httpClient");
var _responseRedirects = dart.privateName(_http, "_responseRedirects");
var _httpClientConnection$ = dart.privateName(_http, "_httpClientConnection");
var _openUrlFromRequest = dart.privateName(_http, "_openUrlFromRequest");
var C464;
var _connectionClosed = dart.privateName(_http, "_connectionClosed");
var _shouldAuthenticateProxy = dart.privateName(_http, "_shouldAuthenticateProxy");
var _shouldAuthenticate = dart.privateName(_http, "_shouldAuthenticate");
var _timeline$ = dart.privateName(_http, "_timeline");
var _proxy$ = dart.privateName(_http, "_proxy");
var _findProxyCredentials = dart.privateName(_http, "_findProxyCredentials");
var _findCredentials = dart.privateName(_http, "_findCredentials");
var _removeProxyCredentials = dart.privateName(_http, "_removeProxyCredentials");
var _removeCredentials = dart.privateName(_http, "_removeCredentials");
var _authenticateProxy = dart.privateName(_http, "_authenticateProxy");
var _authenticate = dart.privateName(_http, "_authenticate");
_http._HttpClientResponse = class _HttpClientResponse extends _http._HttpInboundMessageListInt {
  get redirects() {
    return this[_httpRequest$][_responseRedirects];
  }
  static _getCompressionState(httpClient, headers) {
    if (headers.value("content-encoding") === "gzip") {
      return dart.test(httpClient.autoUncompress) ? _http.HttpClientResponseCompressionState.decompressed : _http.HttpClientResponseCompressionState.compressed;
    } else {
      return _http.HttpClientResponseCompressionState.notCompressed;
    }
  }
  get statusCode() {
    return this[_incoming$].statusCode;
  }
  get reasonPhrase() {
    return this[_incoming$].reasonPhrase;
  }
  get certificate() {
    let socket = this[_httpRequest$][_httpClientConnection$][_socket$0];
    if (io.SecureSocket.is(socket)) return socket.peerCertificate;
    return null;
  }
  get cookies() {
    if (this[_cookies] != null) return this[_cookies];
    this[_cookies] = JSArrayOfCookieL().of([]);
    let values = this.headers._get("set-cookie");
    if (values != null) {
      values[$forEach](dart.fn(value => {
        this[_cookies][$add](_http.Cookie.fromSetCookieValue(value));
      }, StringLToNullN()));
    }
    return this[_cookies];
  }
  get isRedirect() {
    if (this[_httpRequest$].method === "GET" || this[_httpRequest$].method === "HEAD") {
      return this.statusCode === 301 || this.statusCode === 302 || this.statusCode === 303 || this.statusCode === 307;
    } else if (this[_httpRequest$].method === "POST") {
      return this.statusCode === 303;
    }
    return false;
  }
  redirect(method = null, url = null, followLoops = null) {
    if (method == null) {
      if (this.statusCode === 303 && this[_httpRequest$].method === "POST") {
        method = "GET";
      } else {
        method = this[_httpRequest$].method;
      }
    }
    if (url == null) {
      let location = this.headers.value("location");
      if (location == null) {
        dart.throw(new core.StateError.new("Response has no Location header for redirect"));
      }
      url = core.Uri.parse(location);
    }
    if (!dart.equals(followLoops, true)) {
      for (let redirect of this.redirects) {
        if (dart.equals(redirect.location, url)) {
          return FutureOfHttpClientResponseL().error(new _http.RedirectException.new("Redirect loop detected", this.redirects));
        }
      }
    }
    return this[_httpClient$][_openUrlFromRequest](method, url, this[_httpRequest$]).then(_http.HttpClientResponse, dart.fn(request => {
      let t139;
      t139 = request[_responseRedirects];
      t139[$addAll](this.redirects);
      t139[$add](new _http._RedirectInfo.new(this.statusCode, method, url));
      t139;
      return request.close();
    }, _HttpClientRequestLToFutureLOfHttpClientResponseL()));
  }
  listen(onData, opts) {
    let onError = opts && 'onError' in opts ? opts.onError : null;
    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
    if (dart.test(this[_incoming$].upgraded)) {
      this[_httpRequest$][_httpClientConnection$].destroy();
      return new (_EmptyStreamOfUint8ListL()).new().listen(null, {onDone: onDone});
    }
    let stream = this[_incoming$];
    if (dart.equals(this.compressionState, _http.HttpClientResponseCompressionState.decompressed)) {
      stream = stream.cast(ListOfintL()).transform(ListOfintL(), io.gzip.decoder).transform(typed_data.Uint8List, C464 || CT.C464);
    }
    return stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
  }
  detachSocket() {
    this[_httpClient$][_connectionClosed](this[_httpRequest$][_httpClientConnection$]);
    return this[_httpRequest$][_httpClientConnection$].detachSocket();
  }
  get connectionInfo() {
    return this[_httpRequest$].connectionInfo;
  }
  get [_shouldAuthenticateProxy]() {
    let challenge = this.headers._get("proxy-authenticate");
    return this.statusCode === 407 && challenge != null && challenge[$length] === 1;
  }
  get [_shouldAuthenticate]() {
    let challenge = this.headers._get("www-authenticate");
    return this.statusCode === 401 && challenge != null && challenge[$length] === 1;
  }
  [_authenticate](proxyAuth) {
    let t139, t139$;
    t139 = this[_httpRequest$][_timeline$];
    t139 == null ? null : t139.instant("Authentication");
    const retry = () => {
      let t139;
      t139 = this[_httpRequest$][_timeline$];
      t139 == null ? null : t139.instant("Retrying");
      return this.drain(dart.dynamic).then(_http.HttpClientResponse, dart.fn(_ => this[_httpClient$][_openUrlFromRequest](this[_httpRequest$].method, this[_httpRequest$].uri, this[_httpRequest$]).then(_http.HttpClientResponse, dart.fn(request => request.close(), _HttpClientRequestLToFutureLOfHttpClientResponseL())), dynamicToFutureLOfHttpClientResponseL()));
    };
    dart.fn(retry, VoidToFutureLOfHttpClientResponseL());
    const authChallenge = () => {
      return dart.test(proxyAuth) ? this.headers._get("proxy-authenticate") : this.headers._get("www-authenticate");
    };
    dart.fn(authChallenge, VoidToListLOfStringL());
    const findCredentials = scheme => {
      return dart.test(proxyAuth) ? this[_httpClient$][_findProxyCredentials](this[_httpRequest$][_proxy$], scheme) : this[_httpClient$][_findCredentials](this[_httpRequest$].uri, scheme);
    };
    dart.fn(findCredentials, _AuthenticationSchemeLTo_CredentialsL());
    const removeCredentials = cr => {
      if (dart.test(proxyAuth)) {
        this[_httpClient$][_removeProxyCredentials](cr);
      } else {
        this[_httpClient$][_removeCredentials](cr);
      }
    };
    dart.fn(removeCredentials, _CredentialsLTovoid());
    const requestAuthentication = (scheme, realm) => {
      let t143, t142, t141, t140, t139, t142$, t141$, t140$, t139$;
      if (dart.test(proxyAuth)) {
        if (this[_httpClient$][_authenticateProxy] == null) {
          return async.Future.value(false);
        }
        let proxy = this[_httpRequest$][_proxy$];
        return async.Future.as((t139 = this[_httpClient$], t140 = proxy.host, t141 = proxy.port, t142 = dart.toString(scheme), t143 = realm, dart.dsend(t139, _authenticateProxy, [t140, t141, t142, t143])));
      } else {
        if (this[_httpClient$][_authenticate] == null) {
          return async.Future.value(false);
        }
        return async.Future.as((t139$ = this[_httpClient$], t140$ = this[_httpRequest$].uri, t141$ = dart.toString(scheme), t142$ = realm, dart.dsend(t139$, _authenticate, [t140$, t141$, t142$])));
      }
    };
    dart.fn(requestAuthentication, _AuthenticationSchemeLAndStringLToFutureL());
    let challenge = authChallenge();
    if (!(challenge != null || challenge[$length] === 1)) dart.assertFailed(null, L79, 499, 12, "challenge != null || challenge.length == 1");
    let header = _http._HeaderValue.parse(challenge[$_get](0), {parameterSeparator: ","});
    let scheme = _http._AuthenticationScheme.fromString(header.value);
    let realm = header.parameters[$_get]("realm");
    let cr = findCredentials(scheme);
    if (cr != null) {
      if (dart.equals(cr.scheme, _http._AuthenticationScheme.BASIC) && !dart.test(cr.used)) {
        return retry();
      }
      if (dart.equals(cr.scheme, _http._AuthenticationScheme.DIGEST) && (header.parameters[$_get]("algorithm") == null || header.parameters[$_get]("algorithm")[$toLowerCase]() === "md5")) {
        if (cr.nonce == null || cr.nonce == header.parameters[$_get]("nonce")) {
          if (cr.nonce == null) {
            t139$ = cr;
            t139$.nonce = header.parameters[$_get]("nonce");
            t139$.algorithm = "MD5";
            t139$.qop = header.parameters[$_get]("qop");
            t139$.nonceCount = 0;
            t139$;
          }
          return retry();
        } else if (header.parameters[$_get]("stale") != null && header.parameters[$_get]("stale")[$toLowerCase]() === "true") {
          cr.nonce = header.parameters[$_get]("nonce");
          return retry();
        }
      }
    }
    if (cr != null) {
      removeCredentials(cr);
      cr = null;
    }
    return requestAuthentication(scheme, realm).then(_http.HttpClientResponse, dart.fn(credsAvailable => {
      if (dart.dtest(credsAvailable)) {
        cr = this[_httpClient$][_findCredentials](this[_httpRequest$].uri, scheme);
        return retry();
      } else {
        return this;
      }
    }, dynamicToFutureOrLOfHttpClientResponseL()));
  }
};
(_http._HttpClientResponse.new = function(_incoming, _httpRequest, _httpClient) {
  this[_httpRequest$] = _httpRequest;
  this[_httpClient$] = _httpClient;
  this.compressionState = _http._HttpClientResponse._getCompressionState(_httpClient, _incoming.headers);
  _http._HttpClientResponse.__proto__.new.call(this, _incoming);
  _incoming.uri = this[_httpRequest$].uri;
}).prototype = _http._HttpClientResponse.prototype;
dart.addTypeTests(_http._HttpClientResponse);
dart.addTypeCaches(_http._HttpClientResponse);
_http._HttpClientResponse[dart.implements] = () => [_http.HttpClientResponse];
dart.setMethodSignature(_http._HttpClientResponse, () => ({
  __proto__: dart.getMethods(_http._HttpClientResponse.__proto__),
  redirect: dart.fnType(async.Future$(_http.HttpClientResponse), [], [core.String, core.Uri, core.bool]),
  listen: dart.fnType(async.StreamSubscription$(typed_data.Uint8List), [dart.fnType(dart.void, [typed_data.Uint8List])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {}),
  detachSocket: dart.fnType(async.Future$(io.Socket), []),
  [_authenticate]: dart.fnType(async.Future$(_http.HttpClientResponse), [core.bool])
}));
dart.setGetterSignature(_http._HttpClientResponse, () => ({
  __proto__: dart.getGetters(_http._HttpClientResponse.__proto__),
  redirects: core.List$(_http.RedirectInfo),
  statusCode: core.int,
  reasonPhrase: core.String,
  certificate: io.X509Certificate,
  isRedirect: core.bool,
  connectionInfo: _http.HttpConnectionInfo,
  [_shouldAuthenticateProxy]: core.bool,
  [_shouldAuthenticate]: core.bool
}));
dart.setLibraryUri(_http._HttpClientResponse, L76);
dart.setFieldSignature(_http._HttpClientResponse, () => ({
  __proto__: dart.getFields(_http._HttpClientResponse.__proto__),
  [_httpClient$]: dart.finalFieldType(_http._HttpClient),
  [_httpRequest$]: dart.finalFieldType(_http._HttpClientRequest),
  compressionState: dart.finalFieldType(_http.HttpClientResponseCompressionState)
}));
_http._ToUint8List = class _ToUint8List extends convert.Converter$(core.List$(core.int), typed_data.Uint8List) {
  convert(input) {
    ListOfintL().as(input);
    return _native_typed_data.NativeUint8List.fromList(input);
  }
  startChunkedConversion(sink) {
    SinkOfUint8ListL().as(sink);
    return new _http._Uint8ListConversionSink.new(sink);
  }
};
(_http._ToUint8List.new = function() {
  _http._ToUint8List.__proto__.new.call(this);
  ;
}).prototype = _http._ToUint8List.prototype;
dart.addTypeTests(_http._ToUint8List);
dart.addTypeCaches(_http._ToUint8List);
dart.setMethodSignature(_http._ToUint8List, () => ({
  __proto__: dart.getMethods(_http._ToUint8List.__proto__),
  convert: dart.fnType(typed_data.Uint8List, [core.Object])
}));
dart.setLibraryUri(_http._ToUint8List, L76);
var _target$2 = dart.privateName(_http, "_target");
var _target$3 = dart.privateName(_http, "_Uint8ListConversionSink._target");
_http._Uint8ListConversionSink = class _Uint8ListConversionSink extends core.Object {
  get [_target$2]() {
    return this[_target$3];
  }
  set [_target$2](value) {
    super[_target$2] = value;
  }
  add(data) {
    ListOfintL().as(data);
    this[_target$2].add(_native_typed_data.NativeUint8List.fromList(data));
  }
  close() {
    this[_target$2].close();
  }
};
(_http._Uint8ListConversionSink.new = function(_target) {
  this[_target$3] = _target;
  ;
}).prototype = _http._Uint8ListConversionSink.prototype;
dart.addTypeTests(_http._Uint8ListConversionSink);
dart.addTypeCaches(_http._Uint8ListConversionSink);
_http._Uint8ListConversionSink[dart.implements] = () => [core.Sink$(core.List$(core.int))];
dart.setMethodSignature(_http._Uint8ListConversionSink, () => ({
  __proto__: dart.getMethods(_http._Uint8ListConversionSink.__proto__),
  add: dart.fnType(dart.void, [core.Object]),
  close: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(_http._Uint8ListConversionSink, L76);
dart.setFieldSignature(_http._Uint8ListConversionSink, () => ({
  __proto__: dart.getFields(_http._Uint8ListConversionSink.__proto__),
  [_target$2]: dart.finalFieldType(core.Sink$(typed_data.Uint8List))
}));
var _doneCompleter$ = dart.privateName(_http, "_doneCompleter");
var _controllerInstance$ = dart.privateName(_http, "_controllerInstance");
var _controllerCompleter$ = dart.privateName(_http, "_controllerCompleter");
var _isClosed$0 = dart.privateName(_http, "_isClosed");
var _isBound$ = dart.privateName(_http, "_isBound");
var _hasError$0 = dart.privateName(_http, "_hasError");
var _controller$1 = dart.privateName(_http, "_controller");
var _closeTarget$ = dart.privateName(_http, "_closeTarget");
var _completeDoneValue$ = dart.privateName(_http, "_completeDoneValue");
var _completeDoneError$ = dart.privateName(_http, "_completeDoneError");
const _is__StreamSinkImpl_default$ = Symbol('_is__StreamSinkImpl_default');
_http._StreamSinkImpl$ = dart.generic(T => {
  var StreamOfTL = () => (StreamOfTL = dart.constFn(async.Stream$(T)))();
  var StreamControllerOfTL = () => (StreamControllerOfTL = dart.constFn(async.StreamController$(T)))();
  class _StreamSinkImpl extends core.Object {
    add(data) {
      T.as(data);
      if (dart.test(this[_isClosed$0])) {
        dart.throw(new core.StateError.new("StreamSink is closed"));
      }
      this[_controller$1].add(data);
    }
    addError(error, stackTrace = null) {
      if (dart.test(this[_isClosed$0])) {
        dart.throw(new core.StateError.new("StreamSink is closed"));
      }
      this[_controller$1].addError(error, stackTrace);
    }
    addStream(stream) {
      StreamOfTL().as(stream);
      if (dart.test(this[_isBound$])) {
        dart.throw(new core.StateError.new("StreamSink is already bound to a stream"));
      }
      this[_isBound$] = true;
      if (dart.test(this[_hasError$0])) return this.done;
      const targetAddStream = () => {
        return this[_target$2].addStream(stream).whenComplete(dart.fn(() => {
          this[_isBound$] = false;
        }, VoidToNullN()));
      };
      dart.fn(targetAddStream, VoidToFutureL());
      if (this[_controllerInstance$] == null) return targetAddStream();
      let future = this[_controllerCompleter$].future;
      this[_controllerInstance$].close();
      return future.then(dart.dynamic, dart.fn(_ => targetAddStream(), dynamicToFutureL()));
    }
    flush() {
      if (dart.test(this[_isBound$])) {
        dart.throw(new core.StateError.new("StreamSink is bound to a stream"));
      }
      if (this[_controllerInstance$] == null) return async.Future.value(this);
      this[_isBound$] = true;
      let future = this[_controllerCompleter$].future;
      this[_controllerInstance$].close();
      return future.whenComplete(dart.fn(() => {
        this[_isBound$] = false;
      }, VoidToNullN()));
    }
    close() {
      if (dart.test(this[_isBound$])) {
        dart.throw(new core.StateError.new("StreamSink is bound to a stream"));
      }
      if (!dart.test(this[_isClosed$0])) {
        this[_isClosed$0] = true;
        if (this[_controllerInstance$] != null) {
          this[_controllerInstance$].close();
        } else {
          this[_closeTarget$]();
        }
      }
      return this.done;
    }
    [_closeTarget$]() {
      this[_target$2].close().then(dart.void, dart.bind(this, _completeDoneValue$), {onError: dart.bind(this, _completeDoneError$)});
    }
    get done() {
      return this[_doneCompleter$].future;
    }
    [_completeDoneValue$](value) {
      if (!dart.test(this[_doneCompleter$].isCompleted)) {
        this[_doneCompleter$].complete(value);
      }
    }
    [_completeDoneError$](error, stackTrace) {
      if (!dart.test(this[_doneCompleter$].isCompleted)) {
        this[_hasError$0] = true;
        this[_doneCompleter$].completeError(error, stackTrace);
      }
    }
    get [_controller$1]() {
      if (dart.test(this[_isBound$])) {
        dart.throw(new core.StateError.new("StreamSink is bound to a stream"));
      }
      if (dart.test(this[_isClosed$0])) {
        dart.throw(new core.StateError.new("StreamSink is closed"));
      }
      if (this[_controllerInstance$] == null) {
        this[_controllerInstance$] = StreamControllerOfTL().new({sync: true});
        this[_controllerCompleter$] = async.Completer.new();
        this[_target$2].addStream(this[_controller$1].stream).then(core.Null, dart.fn(_ => {
          if (dart.test(this[_isBound$])) {
            this[_controllerCompleter$].complete(this);
            this[_controllerCompleter$] = null;
            this[_controllerInstance$] = null;
          } else {
            this[_closeTarget$]();
          }
        }, dynamicToNullN()), {onError: dart.fn((error, stackTrace) => {
            if (dart.test(this[_isBound$])) {
              this[_controllerCompleter$].completeError(error, core.StackTrace.as(stackTrace));
              this[_controllerCompleter$] = null;
              this[_controllerInstance$] = null;
            } else {
              this[_completeDoneError$](error, core.StackTrace.as(stackTrace));
            }
          }, dynamicAnddynamicToNullN())});
      }
      return this[_controllerInstance$];
    }
  }
  (_StreamSinkImpl.new = function(_target) {
    this[_doneCompleter$] = async.Completer.new();
    this[_controllerInstance$] = null;
    this[_controllerCompleter$] = null;
    this[_isClosed$0] = false;
    this[_isBound$] = false;
    this[_hasError$0] = false;
    this[_target$2] = _target;
    ;
  }).prototype = _StreamSinkImpl.prototype;
  dart.addTypeTests(_StreamSinkImpl);
  _StreamSinkImpl.prototype[_is__StreamSinkImpl_default$] = true;
  dart.addTypeCaches(_StreamSinkImpl);
  _StreamSinkImpl[dart.implements] = () => [async.StreamSink$(T)];
  dart.setMethodSignature(_StreamSinkImpl, () => ({
    __proto__: dart.getMethods(_StreamSinkImpl.__proto__),
    add: dart.fnType(dart.void, [core.Object]),
    addError: dart.fnType(dart.void, [core.Object], [core.StackTrace]),
    addStream: dart.fnType(async.Future, [core.Object]),
    flush: dart.fnType(async.Future, []),
    close: dart.fnType(async.Future, []),
    [_closeTarget$]: dart.fnType(dart.void, []),
    [_completeDoneValue$]: dart.fnType(dart.void, [dart.dynamic]),
    [_completeDoneError$]: dart.fnType(dart.void, [dart.dynamic, core.StackTrace])
  }));
  dart.setGetterSignature(_StreamSinkImpl, () => ({
    __proto__: dart.getGetters(_StreamSinkImpl.__proto__),
    done: async.Future,
    [_controller$1]: async.StreamController$(T)
  }));
  dart.setLibraryUri(_StreamSinkImpl, L76);
  dart.setFieldSignature(_StreamSinkImpl, () => ({
    __proto__: dart.getFields(_StreamSinkImpl.__proto__),
    [_target$2]: dart.finalFieldType(async.StreamConsumer$(T)),
    [_doneCompleter$]: dart.finalFieldType(async.Completer),
    [_controllerInstance$]: dart.fieldType(async.StreamController$(T)),
    [_controllerCompleter$]: dart.fieldType(async.Completer),
    [_isClosed$0]: dart.fieldType(core.bool),
    [_isBound$]: dart.fieldType(core.bool),
    [_hasError$0]: dart.fieldType(core.bool)
  }));
  return _StreamSinkImpl;
});
_http._StreamSinkImpl = _http._StreamSinkImpl$();
dart.addTypeTests(_http._StreamSinkImpl, _is__StreamSinkImpl_default$);
var _encodingMutable$ = dart.privateName(_http, "_encodingMutable");
var _encoding$0 = dart.privateName(_http, "_encoding");
_http._IOSinkImpl = class _IOSinkImpl extends _http._StreamSinkImpl$(core.List$(core.int)) {
  get encoding() {
    return this[_encoding$0];
  }
  set encoding(value) {
    if (!dart.test(this[_encodingMutable$])) {
      dart.throw(new core.StateError.new("IOSink encoding is not mutable"));
    }
    this[_encoding$0] = value;
  }
  write(obj) {
    let string = dart.str(obj);
    if (string[$isEmpty]) return;
    this.add(this[_encoding$0].encode(string));
  }
  writeAll(objects, separator = "") {
    let iterator = objects[$iterator];
    if (!dart.test(iterator.moveNext())) return;
    if (separator[$isEmpty]) {
      do {
        this.write(iterator.current);
      } while (dart.test(iterator.moveNext()));
    } else {
      this.write(iterator.current);
      while (dart.test(iterator.moveNext())) {
        this.write(separator);
        this.write(iterator.current);
      }
    }
  }
  writeln(object = "") {
    this.write(object);
    this.write("\n");
  }
  writeCharCode(charCode) {
    this.write(core.String.fromCharCode(charCode));
  }
};
(_http._IOSinkImpl.new = function(target, _encoding) {
  this[_encodingMutable$] = true;
  this[_encoding$0] = _encoding;
  _http._IOSinkImpl.__proto__.new.call(this, target);
  ;
}).prototype = _http._IOSinkImpl.prototype;
dart.addTypeTests(_http._IOSinkImpl);
dart.addTypeCaches(_http._IOSinkImpl);
_http._IOSinkImpl[dart.implements] = () => [io.IOSink];
dart.setMethodSignature(_http._IOSinkImpl, () => ({
  __proto__: dart.getMethods(_http._IOSinkImpl.__proto__),
  write: dart.fnType(dart.void, [core.Object]),
  writeAll: dart.fnType(dart.void, [core.Iterable], [core.String]),
  writeln: dart.fnType(dart.void, [], [core.Object]),
  writeCharCode: dart.fnType(dart.void, [core.int])
}));
dart.setGetterSignature(_http._IOSinkImpl, () => ({
  __proto__: dart.getGetters(_http._IOSinkImpl.__proto__),
  encoding: convert.Encoding
}));
dart.setSetterSignature(_http._IOSinkImpl, () => ({
  __proto__: dart.getSetters(_http._IOSinkImpl.__proto__),
  encoding: convert.Encoding
}));
dart.setLibraryUri(_http._IOSinkImpl, L76);
dart.setFieldSignature(_http._IOSinkImpl, () => ({
  __proto__: dart.getFields(_http._IOSinkImpl.__proto__),
  [_encoding$0]: dart.fieldType(convert.Encoding),
  [_encodingMutable$]: dart.fieldType(core.bool)
}));
var _encodingSet = dart.privateName(_http, "_encodingSet");
var _bufferOutput = dart.privateName(_http, "_bufferOutput");
var _uri = dart.privateName(_http, "_uri");
var _outgoing = dart.privateName(_http, "_outgoing");
var _isConnectionClosed = dart.privateName(_http, "_isConnectionClosed");
const _is__HttpOutboundMessage_default = Symbol('_is__HttpOutboundMessage_default');
_http._HttpOutboundMessage$ = dart.generic(T => {
  class _HttpOutboundMessage extends _http._IOSinkImpl {
    get contentLength() {
      return this.headers.contentLength;
    }
    set contentLength(contentLength) {
      this.headers.contentLength = contentLength;
    }
    get persistentConnection() {
      return this.headers.persistentConnection;
    }
    set persistentConnection(p) {
      this.headers.persistentConnection = p;
    }
    get bufferOutput() {
      return this[_bufferOutput];
    }
    set bufferOutput(bufferOutput) {
      if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError.new("Header already sent"));
      this[_bufferOutput] = bufferOutput;
    }
    get encoding() {
      if (dart.test(this[_encodingSet]) && dart.test(this[_outgoing].headersWritten)) {
        return this[_encoding$0];
      }
      let charset = null;
      if (this.headers.contentType != null && this.headers.contentType.charset != null) {
        charset = this.headers.contentType.charset;
      } else {
        charset = "iso-8859-1";
      }
      return convert.Encoding.getByName(core.String.as(charset));
    }
    set encoding(value) {
      super.encoding = value;
    }
    add(data) {
      ListOfintL().as(data);
      if (data[$length] === 0) return;
      super.add(data);
    }
    write(obj) {
      if (!dart.test(this[_encodingSet])) {
        this[_encoding$0] = this.encoding;
        this[_encodingSet] = true;
      }
      super.write(obj);
    }
    get [_isConnectionClosed]() {
      return false;
    }
  }
  (_HttpOutboundMessage.new = function(uri, protocolVersion, outgoing, opts) {
    let initialHeaders = opts && 'initialHeaders' in opts ? opts.initialHeaders : null;
    this[_encodingSet] = false;
    this[_bufferOutput] = true;
    this[_uri] = uri;
    this.headers = new _http._HttpHeaders.new(protocolVersion, {defaultPortForScheme: uri.scheme === "https" ? 443 : 80, initialHeaders: initialHeaders});
    this[_outgoing] = outgoing;
    _HttpOutboundMessage.__proto__.new.call(this, outgoing, null);
    this[_outgoing].outbound = this;
    this[_encodingMutable$] = false;
  }).prototype = _HttpOutboundMessage.prototype;
  dart.addTypeTests(_HttpOutboundMessage);
  _HttpOutboundMessage.prototype[_is__HttpOutboundMessage_default] = true;
  dart.addTypeCaches(_HttpOutboundMessage);
  dart.setGetterSignature(_HttpOutboundMessage, () => ({
    __proto__: dart.getGetters(_HttpOutboundMessage.__proto__),
    contentLength: core.int,
    persistentConnection: core.bool,
    bufferOutput: core.bool,
    [_isConnectionClosed]: core.bool
  }));
  dart.setSetterSignature(_HttpOutboundMessage, () => ({
    __proto__: dart.getSetters(_HttpOutboundMessage.__proto__),
    contentLength: core.int,
    persistentConnection: core.bool,
    bufferOutput: core.bool
  }));
  dart.setLibraryUri(_HttpOutboundMessage, L76);
  dart.setFieldSignature(_HttpOutboundMessage, () => ({
    __proto__: dart.getFields(_HttpOutboundMessage.__proto__),
    [_encodingSet]: dart.fieldType(core.bool),
    [_bufferOutput]: dart.fieldType(core.bool),
    [_uri]: dart.finalFieldType(core.Uri),
    [_outgoing]: dart.finalFieldType(_http._HttpOutgoing),
    headers: dart.finalFieldType(_http._HttpHeaders)
  }));
  return _HttpOutboundMessage;
});
_http._HttpOutboundMessage = _http._HttpOutboundMessage$();
dart.addTypeTests(_http._HttpOutboundMessage, _is__HttpOutboundMessage_default);
var _statusCode = dart.privateName(_http, "_statusCode");
var _reasonPhrase = dart.privateName(_http, "_reasonPhrase");
var _deadline = dart.privateName(_http, "_deadline");
var _deadlineTimer = dart.privateName(_http, "_deadlineTimer");
var _isClosing = dart.privateName(_http, "_isClosing");
var _findReasonPhrase = dart.privateName(_http, "_findReasonPhrase");
var _isNew = dart.privateName(_http, "_isNew");
var _writeHeader = dart.privateName(_http, "_writeHeader");
_http._HttpResponse = class _HttpResponse extends _http._HttpOutboundMessage$(_http.HttpResponse) {
  get [_isConnectionClosed]() {
    return this[_httpRequest$][_httpConnection$][_isClosing];
  }
  get cookies() {
    if (this[_cookies] == null) this[_cookies] = JSArrayOfCookieL().of([]);
    return this[_cookies];
  }
  get statusCode() {
    return this[_statusCode];
  }
  set statusCode(statusCode) {
    if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError.new("Header already sent"));
    this[_statusCode] = statusCode;
  }
  get reasonPhrase() {
    return this[_findReasonPhrase](this.statusCode);
  }
  set reasonPhrase(reasonPhrase) {
    if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError.new("Header already sent"));
    this[_reasonPhrase] = reasonPhrase;
  }
  redirect(location, opts) {
    let status = opts && 'status' in opts ? opts.status : 302;
    if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError.new("Header already sent"));
    this.statusCode = status;
    this.headers.set("location", dart.toString(location));
    return this.close();
  }
  detachSocket(opts) {
    let writeHeaders = opts && 'writeHeaders' in opts ? opts.writeHeaders : true;
    if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError.new("Headers already sent"));
    this.deadline = null;
    let future = this[_httpRequest$][_httpConnection$].detachSocket();
    if (dart.test(writeHeaders)) {
      let headersFuture = this[_outgoing].writeHeaders({drainRequest: false, setOutgoing: false});
      if (!(headersFuture == null)) dart.assertFailed(null, L79, 886, 14, "headersFuture == null");
    } else {
      this[_outgoing].headersWritten = true;
    }
    this.close();
    this.done.catchError(dart.fn(_ => {
    }, dynamicToNullN()));
    return future;
  }
  get connectionInfo() {
    return this[_httpRequest$].connectionInfo;
  }
  get deadline() {
    return this[_deadline];
  }
  set deadline(d) {
    if (this[_deadlineTimer] != null) this[_deadlineTimer].cancel();
    this[_deadline] = d;
    if (this[_deadline] == null) return;
    this[_deadlineTimer] = async.Timer.new(this[_deadline], dart.fn(() => {
      this[_httpRequest$][_httpConnection$].destroy();
    }, VoidToNullN()));
  }
  [_writeHeader]() {
    let t139, t139$;
    let buffer = new _http._CopyingBytesBuilder.new(8192);
    if (this.headers.protocolVersion === "1.1") {
      buffer.add(_http._Const.HTTP11);
    } else {
      buffer.add(_http._Const.HTTP10);
    }
    buffer.addByte(32);
    buffer.add(dart.toString(this.statusCode)[$codeUnits]);
    buffer.addByte(32);
    buffer.add(this.reasonPhrase[$codeUnits]);
    buffer.addByte(13);
    buffer.addByte(10);
    let session = this[_httpRequest$][_session];
    if (session != null && !dart.test(session[_destroyed])) {
      session[_isNew] = false;
      let found = false;
      for (let i = 0; i < dart.notNull(this.cookies[$length]); i = i + 1) {
        if (this.cookies[$_get](i).name[$toUpperCase]() === "DARTSESSID") {
          t139 = this.cookies[$_get](i);
          t139.value = session.id;
          t139.httpOnly = true;
          t139.path = "/";
          t139;
          found = true;
        }
      }
      if (!found) {
        let cookie = _http.Cookie.new("DARTSESSID", session.id);
        this.cookies[$add]((t139$ = cookie, t139$.httpOnly = true, t139$.path = "/", t139$));
      }
    }
    if (this[_cookies] != null) {
      this[_cookies][$forEach](dart.fn(cookie => {
        this.headers.add("set-cookie", cookie);
      }, CookieLToNullN()));
    }
    this.headers[_finalize]();
    this.headers[_build](buffer);
    buffer.addByte(13);
    buffer.addByte(10);
    let headerBytes = buffer.takeBytes();
    this[_outgoing].setHeader(headerBytes, headerBytes[$length]);
  }
  [_findReasonPhrase](statusCode) {
    if (this[_reasonPhrase] != null) {
      return this[_reasonPhrase];
    }
    switch (statusCode) {
      case 100:
      {
        return "Continue";
      }
      case 101:
      {
        return "Switching Protocols";
      }
      case 200:
      {
        return "OK";
      }
      case 201:
      {
        return "Created";
      }
      case 202:
      {
        return "Accepted";
      }
      case 203:
      {
        return "Non-Authoritative Information";
      }
      case 204:
      {
        return "No Content";
      }
      case 205:
      {
        return "Reset Content";
      }
      case 206:
      {
        return "Partial Content";
      }
      case 300:
      {
        return "Multiple Choices";
      }
      case 301:
      {
        return "Moved Permanently";
      }
      case 302:
      {
        return "Found";
      }
      case 303:
      {
        return "See Other";
      }
      case 304:
      {
        return "Not Modified";
      }
      case 305:
      {
        return "Use Proxy";
      }
      case 307:
      {
        return "Temporary Redirect";
      }
      case 400:
      {
        return "Bad Request";
      }
      case 401:
      {
        return "Unauthorized";
      }
      case 402:
      {
        return "Payment Required";
      }
      case 403:
      {
        return "Forbidden";
      }
      case 404:
      {
        return "Not Found";
      }
      case 405:
      {
        return "Method Not Allowed";
      }
      case 406:
      {
        return "Not Acceptable";
      }
      case 407:
      {
        return "Proxy Authentication Required";
      }
      case 408:
      {
        return "Request Time-out";
      }
      case 409:
      {
        return "Conflict";
      }
      case 410:
      {
        return "Gone";
      }
      case 411:
      {
        return "Length Required";
      }
      case 412:
      {
        return "Precondition Failed";
      }
      case 413:
      {
        return "Request Entity Too Large";
      }
      case 414:
      {
        return "Request-URI Too Long";
      }
      case 415:
      {
        return "Unsupported Media Type";
      }
      case 416:
      {
        return "Requested range not satisfiable";
      }
      case 417:
      {
        return "Expectation Failed";
      }
      case 500:
      {
        return "Internal Server Error";
      }
      case 501:
      {
        return "Not Implemented";
      }
      case 502:
      {
        return "Bad Gateway";
      }
      case 503:
      {
        return "Service Unavailable";
      }
      case 504:
      {
        return "Gateway Time-out";
      }
      case 505:
      {
        return "Http Version not supported";
      }
      default:
      {
        return "Status " + dart.str(statusCode);
      }
    }
  }
};
(_http._HttpResponse.new = function(uri, protocolVersion, outgoing, defaultHeaders, serverHeader) {
  this[_statusCode] = 200;
  this[_reasonPhrase] = null;
  this[_cookies] = null;
  this[_httpRequest$] = null;
  this[_deadline] = null;
  this[_deadlineTimer] = null;
  _http._HttpResponse.__proto__.new.call(this, uri, protocolVersion, outgoing, {initialHeaders: _http._HttpHeaders.as(defaultHeaders)});
  if (serverHeader != null) {
    this.headers.set("server", serverHeader);
  }
}).prototype = _http._HttpResponse.prototype;
dart.addTypeTests(_http._HttpResponse);
dart.addTypeCaches(_http._HttpResponse);
_http._HttpResponse[dart.implements] = () => [_http.HttpResponse];
dart.setMethodSignature(_http._HttpResponse, () => ({
  __proto__: dart.getMethods(_http._HttpResponse.__proto__),
  redirect: dart.fnType(async.Future, [core.Uri], {status: core.int}, {}),
  detachSocket: dart.fnType(async.Future$(io.Socket), [], {writeHeaders: core.bool}, {}),
  [_writeHeader]: dart.fnType(dart.void, []),
  [_findReasonPhrase]: dart.fnType(core.String, [core.int])
}));
dart.setGetterSignature(_http._HttpResponse, () => ({
  __proto__: dart.getGetters(_http._HttpResponse.__proto__),
  cookies: core.List$(_http.Cookie),
  statusCode: core.int,
  reasonPhrase: core.String,
  connectionInfo: _http.HttpConnectionInfo,
  deadline: core.Duration
}));
dart.setSetterSignature(_http._HttpResponse, () => ({
  __proto__: dart.getSetters(_http._HttpResponse.__proto__),
  statusCode: core.int,
  reasonPhrase: core.String,
  deadline: core.Duration
}));
dart.setLibraryUri(_http._HttpResponse, L76);
dart.setFieldSignature(_http._HttpResponse, () => ({
  __proto__: dart.getFields(_http._HttpResponse.__proto__),
  [_statusCode]: dart.fieldType(core.int),
  [_reasonPhrase]: dart.fieldType(core.String),
  [_cookies]: dart.fieldType(core.List$(_http.Cookie)),
  [_httpRequest$]: dart.fieldType(_http._HttpRequest),
  [_deadline]: dart.fieldType(core.Duration),
  [_deadlineTimer]: dart.fieldType(async.Timer)
}));
var _responseCompleter = dart.privateName(_http, "_responseCompleter");
var _response = dart.privateName(_http, "_response");
var _followRedirects = dart.privateName(_http, "_followRedirects");
var _maxRedirects = dart.privateName(_http, "_maxRedirects");
var _onIncoming = dart.privateName(_http, "_onIncoming");
var _onError$ = dart.privateName(_http, "_onError");
var _proxyTunnel$ = dart.privateName(_http, "_proxyTunnel");
var _requestUri = dart.privateName(_http, "_requestUri");
_http._HttpClientRequest = class _HttpClientRequest extends _http._HttpOutboundMessage$(_http.HttpClientResponse) {
  get done() {
    if (this[_response] == null) {
      this[_response] = async.Future.wait(dart.dynamic, JSArrayOfFutureL().of([this[_responseCompleter].future, super.done]), {eagerError: true}).then(_http.HttpClientResponse, dart.fn(list => FutureOrOfHttpClientResponseL().as(list[$_get](0)), ListLToFutureOrLOfHttpClientResponseL()));
    }
    return this[_response];
  }
  close() {
    super.close();
    return this.done;
  }
  get maxRedirects() {
    return this[_maxRedirects];
  }
  set maxRedirects(maxRedirects) {
    if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError.new("Request already sent"));
    this[_maxRedirects] = maxRedirects;
  }
  get followRedirects() {
    return this[_followRedirects];
  }
  set followRedirects(followRedirects) {
    if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError.new("Request already sent"));
    this[_followRedirects] = followRedirects;
  }
  get connectionInfo() {
    return this[_httpClientConnection$].connectionInfo;
  }
  [_onIncoming](incoming) {
    let response = new _http._HttpClientResponse.new(incoming, this, this[_httpClient$]);
    let future = null;
    if (dart.test(this.followRedirects) && dart.test(response.isRedirect)) {
      if (dart.notNull(response.redirects[$length]) < dart.notNull(this.maxRedirects)) {
        future = response.drain(dart.dynamic).then(_http.HttpClientResponse, dart.fn(_ => response.redirect(), dynamicToFutureLOfHttpClientResponseL()));
      } else {
        future = response.drain(dart.dynamic).then(_http.HttpClientResponse, dart.fn(_ => FutureOfHttpClientResponseL().error(new _http.RedirectException.new("Redirect limit exceeded", response.redirects)), dynamicToFutureLOfHttpClientResponseL()));
      }
    } else if (dart.test(response[_shouldAuthenticateProxy])) {
      future = response[_authenticate](true);
    } else if (dart.test(response[_shouldAuthenticate])) {
      future = response[_authenticate](false);
    } else {
      future = FutureOfHttpClientResponseL().value(response);
    }
    future.then(dart.void, dart.fn(v => this[_responseCompleter].complete(v), HttpClientResponseLTovoid()), {onError: dart.bind(this[_responseCompleter], 'completeError')});
  }
  [_onError$](error, stackTrace) {
    this[_responseCompleter].completeError(error, stackTrace);
  }
  [_requestUri]() {
    const uriStartingFromPath = () => {
      let result = this.uri.path;
      if (result[$isEmpty]) result = "/";
      if (dart.test(this.uri.hasQuery)) {
        result = dart.str(result) + "?" + dart.str(this.uri.query);
      }
      return result;
    };
    dart.fn(uriStartingFromPath, VoidToStringL());
    if (dart.test(this[_proxy$].isDirect)) {
      return uriStartingFromPath();
    } else {
      if (this.method === "CONNECT") {
        return dart.str(this.uri.host) + ":" + dart.str(this.uri.port);
      } else {
        if (dart.test(this[_httpClientConnection$][_proxyTunnel$])) {
          return uriStartingFromPath();
        } else {
          return dart.toString(this.uri.removeFragment());
        }
      }
    }
  }
  [_writeHeader]() {
    let t140;
    let buffer = new _http._CopyingBytesBuilder.new(8192);
    buffer.add(this.method[$codeUnits]);
    buffer.addByte(32);
    buffer.add(this[_requestUri]()[$codeUnits]);
    buffer.addByte(32);
    buffer.add(_http._Const.HTTP11);
    buffer.addByte(13);
    buffer.addByte(10);
    if (!dart.test(this.cookies[$isEmpty])) {
      let sb = new core.StringBuffer.new();
      for (let i = 0; i < dart.notNull(this.cookies[$length]); i = i + 1) {
        if (i > 0) sb.write("; ");
        t140 = sb;
        t140.write(this.cookies[$_get](i).name);
        t140.write("=");
        t140.write(this.cookies[$_get](i).value);
        t140;
      }
      this.headers.add("cookie", sb.toString());
    }
    this.headers[_finalize]();
    this.headers[_build](buffer);
    buffer.addByte(13);
    buffer.addByte(10);
    let headerBytes = buffer.takeBytes();
    this[_outgoing].setHeader(headerBytes, headerBytes[$length]);
  }
};
(_http._HttpClientRequest.new = function(outgoing, uri, method, _proxy, _httpClient, _httpClientConnection, _timeline) {
  let t139;
  this.cookies = JSArrayOfCookieL().of([]);
  this[_responseCompleter] = CompleterOfHttpClientResponseL().new();
  this[_response] = null;
  this[_followRedirects] = true;
  this[_maxRedirects] = 5;
  this[_responseRedirects] = JSArrayOfRedirectInfoL().of([]);
  this.method = method;
  this[_proxy$] = _proxy;
  this[_httpClient$] = _httpClient;
  this[_httpClientConnection$] = _httpClientConnection;
  this[_timeline$] = _timeline;
  this.uri = uri;
  _http._HttpClientRequest.__proto__.new.call(this, uri, "1.1", outgoing);
  t139 = this[_timeline$];
  t139 == null ? null : t139.instant("Request initiated");
  if (this.method === "GET" || this.method === "HEAD") {
    this.contentLength = 0;
  } else {
    this.headers.chunkedTransferEncoding = true;
  }
  this[_responseCompleter].future.then(core.Null, dart.fn(response => {
    let t139, t139$;
    t139 = this[_timeline$];
    t139 == null ? null : t139.instant("Response receieved");
    function formatConnectionInfo() {
      let t139, t139$, t139$0, t139$1;
      return new _js_helper.LinkedMap.from(["localPort", (t139 = response.connectionInfo, t139 == null ? null : t139.localPort), "remoteAddress", (t139$0 = (t139$ = response.connectionInfo, t139$ == null ? null : t139$.remoteAddress), t139$0 == null ? null : t139$0.address), "remotePort", (t139$1 = response.connectionInfo, t139$1 == null ? null : t139$1.remotePort)]);
    }
    dart.fn(formatConnectionInfo, VoidToMapL());
    function formatHeaders() {
      let headers = new (IdentityMapOfStringL$ListLOfStringL()).new();
      response.headers.forEach(dart.fn((name, values) => {
        headers[$_set](name, values);
      }, StringLAndListLOfStringLToNullN()));
      return headers;
    }
    dart.fn(formatHeaders, VoidToMapL());
    function formatRedirectInfo() {
      let redirects = JSArrayOfMapLOfStringL$dynamic().of([]);
      for (let redirect of response.redirects) {
        redirects[$add](new (IdentityMapOfStringL$dynamic()).from(["location", dart.toString(redirect.location), "method", redirect.method, "statusCode", redirect.statusCode]));
      }
      return redirects;
    }
    dart.fn(formatRedirectInfo, VoidToListLOfMapLOfStringL$dynamic());
    t139$ = this[_timeline$];
    t139$ == null ? null : t139$.finish({arguments: new _js_helper.LinkedMap.from(["requestHeaders", outgoing.outbound.headers[_headers], "compressionState", dart.toString(response.compressionState), "connectionInfo", formatConnectionInfo(), "contentLength", response.contentLength, "cookies", (() => {
          let t140 = JSArrayOfStringL().of([]);
          for (let cookie of response.cookies)
            t140[$add](dart.toString(cookie));
          return t140;
        })(), "responseHeaders", formatHeaders(), "isRedirect", response.isRedirect, "persistentConnection", response.persistentConnection, "reasonPhrase", response.reasonPhrase, "redirects", formatRedirectInfo(), "statusCode", response.statusCode])});
  }, HttpClientResponseLToNullN()), {onError: dart.fn(e => {
    }, dynamicToNullN())});
}).prototype = _http._HttpClientRequest.prototype;
dart.addTypeTests(_http._HttpClientRequest);
dart.addTypeCaches(_http._HttpClientRequest);
_http._HttpClientRequest[dart.implements] = () => [_http.HttpClientRequest];
dart.setMethodSignature(_http._HttpClientRequest, () => ({
  __proto__: dart.getMethods(_http._HttpClientRequest.__proto__),
  close: dart.fnType(async.Future$(_http.HttpClientResponse), []),
  [_onIncoming]: dart.fnType(dart.void, [_http._HttpIncoming]),
  [_onError$]: dart.fnType(dart.void, [dart.dynamic, core.StackTrace]),
  [_requestUri]: dart.fnType(core.String, []),
  [_writeHeader]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(_http._HttpClientRequest, () => ({
  __proto__: dart.getGetters(_http._HttpClientRequest.__proto__),
  done: async.Future$(_http.HttpClientResponse),
  maxRedirects: core.int,
  followRedirects: core.bool,
  connectionInfo: _http.HttpConnectionInfo
}));
dart.setSetterSignature(_http._HttpClientRequest, () => ({
  __proto__: dart.getSetters(_http._HttpClientRequest.__proto__),
  maxRedirects: core.int,
  followRedirects: core.bool
}));
dart.setLibraryUri(_http._HttpClientRequest, L76);
dart.setFieldSignature(_http._HttpClientRequest, () => ({
  __proto__: dart.getFields(_http._HttpClientRequest.__proto__),
  method: dart.finalFieldType(core.String),
  uri: dart.finalFieldType(core.Uri),
  cookies: dart.finalFieldType(core.List$(_http.Cookie)),
  [_httpClient$]: dart.finalFieldType(_http._HttpClient),
  [_httpClientConnection$]: dart.finalFieldType(_http._HttpClientConnection),
  [_timeline$]: dart.finalFieldType(developer.TimelineTask),
  [_responseCompleter]: dart.finalFieldType(async.Completer$(_http.HttpClientResponse)),
  [_proxy$]: dart.finalFieldType(_http._Proxy),
  [_response]: dart.fieldType(async.Future$(_http.HttpClientResponse)),
  [_followRedirects]: dart.fieldType(core.bool),
  [_maxRedirects]: dart.fieldType(core.int),
  [_responseRedirects]: dart.fieldType(core.List$(_http.RedirectInfo))
}));
var _consume$ = dart.privateName(_http, "_consume");
_http._HttpGZipSink = class _HttpGZipSink extends convert.ByteConversionSink {
  add(chunk) {
    let t140;
    ListOfintL().as(chunk);
    t140 = chunk;
    this[_consume$](t140);
  }
  addSlice(chunk, start, end, isLast) {
    let t140, t140$;
    if (typed_data.Uint8List.is(chunk)) {
      t140 = typed_data.Uint8List.view(chunk[$buffer], dart.notNull(chunk[$offsetInBytes]) + dart.notNull(start), dart.notNull(end) - dart.notNull(start));
      this[_consume$](t140);
    } else {
      t140$ = chunk[$sublist](start, dart.notNull(end) - dart.notNull(start));
      this[_consume$](t140$);
    }
  }
  close() {
  }
};
(_http._HttpGZipSink.new = function(_consume) {
  this[_consume$] = _consume;
  _http._HttpGZipSink.__proto__.new.call(this);
  ;
}).prototype = _http._HttpGZipSink.prototype;
dart.addTypeTests(_http._HttpGZipSink);
dart.addTypeCaches(_http._HttpGZipSink);
dart.setMethodSignature(_http._HttpGZipSink, () => ({
  __proto__: dart.getMethods(_http._HttpGZipSink.__proto__),
  add: dart.fnType(dart.void, [core.Object]),
  addSlice: dart.fnType(dart.void, [core.List$(core.int), core.int, core.int, core.bool]),
  close: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(_http._HttpGZipSink, L76);
dart.setFieldSignature(_http._HttpGZipSink, () => ({
  __proto__: dart.getFields(_http._HttpGZipSink.__proto__),
  [_consume$]: dart.finalFieldType(dart.fnType(dart.void, [core.List$(core.int)]))
}));
var _closeFuture = dart.privateName(_http, "_closeFuture");
var _pendingChunkedFooter = dart.privateName(_http, "_pendingChunkedFooter");
var _bytesWritten = dart.privateName(_http, "_bytesWritten");
var _gzip = dart.privateName(_http, "_gzip");
var _gzipSink = dart.privateName(_http, "_gzipSink");
var _gzipAdd = dart.privateName(_http, "_gzipAdd");
var _gzipBuffer = dart.privateName(_http, "_gzipBuffer");
var _gzipBufferLength = dart.privateName(_http, "_gzipBufferLength");
var _socketError = dart.privateName(_http, "_socketError");
var _addGZipChunk = dart.privateName(_http, "_addGZipChunk");
var _chunkHeader = dart.privateName(_http, "_chunkHeader");
var _addChunk$ = dart.privateName(_http, "_addChunk");
var _ignoreError = dart.privateName(_http, "_ignoreError");
var C465;
var C466;
var C467;
_http._HttpOutgoing = class _HttpOutgoing extends core.Object {
  writeHeaders(opts) {
    let drainRequest = opts && 'drainRequest' in opts ? opts.drainRequest : true;
    let setOutgoing = opts && 'setOutgoing' in opts ? opts.setOutgoing : true;
    if (dart.test(this.headersWritten)) return null;
    this.headersWritten = true;
    let drainFuture = null;
    let gzip = false;
    if (_http._HttpResponse.is(this.outbound)) {
      let response = _http._HttpResponse.as(this.outbound);
      if (dart.test(response[_httpRequest$][_httpServer$].autoCompress) && dart.test(this.outbound.bufferOutput) && dart.test(this.outbound.headers.chunkedTransferEncoding)) {
        let acceptEncodings = response[_httpRequest$].headers._get("accept-encoding");
        let contentEncoding = this.outbound.headers._get("content-encoding");
        if (acceptEncodings != null && dart.test(acceptEncodings[$expand](dart.dynamic, dart.fn(list => core.Iterable.as(dart.dsend(list, 'split', [","])), dynamicToIterableL()))[$any](dart.fn(encoding => dart.equals(dart.dsend(dart.dsend(encoding, 'trim', []), 'toLowerCase', []), "gzip"), dynamicToboolL()))) && contentEncoding == null) {
          this.outbound.headers.set("content-encoding", "gzip");
          gzip = true;
        }
      }
      if (dart.test(drainRequest) && !dart.test(response[_httpRequest$][_incoming$].hasSubscriber)) {
        drainFuture = response[_httpRequest$].drain(dart.dynamic).catchError(dart.fn(_ => {
        }, dynamicToNullN()));
      }
    } else {
      drainRequest = false;
    }
    if (!dart.test(this.ignoreBody)) {
      if (dart.test(setOutgoing)) {
        let contentLength = this.outbound.headers.contentLength;
        if (dart.test(this.outbound.headers.chunkedTransferEncoding)) {
          this.chunked = true;
          if (gzip) this.gzip = true;
        } else if (dart.notNull(contentLength) >= 0) {
          this.contentLength = contentLength;
        }
      }
      if (drainFuture != null) {
        return drainFuture.then(dart.dynamic, dart.fn(_ => this.outbound[_writeHeader](), dynamicTovoid()));
      }
    }
    this.outbound[_writeHeader]();
    return null;
  }
  addStream(stream) {
    StreamOfListLOfintL().as(stream);
    if (dart.test(this[_socketError])) {
      stream.listen(null).cancel();
      return async.Future.value(this.outbound);
    }
    if (dart.test(this.ignoreBody)) {
      stream.drain(dart.dynamic).catchError(dart.fn(_ => {
      }, dynamicToNullN()));
      let future = this.writeHeaders();
      if (future != null) {
        return future.then(dart.dynamic, dart.fn(_ => this.close(), dynamicToFutureL()));
      }
      return this.close();
    }
    let sub = null;
    let controller = StreamControllerOfListLOfintL().new({onPause: dart.fn(() => sub.pause(), VoidTovoid()), onResume: dart.fn(() => sub.resume(), VoidTovoid()), sync: true});
    const onData = data => {
      if (dart.test(this[_socketError])) return;
      if (data[$length] === 0) return;
      if (dart.test(this.chunked)) {
        if (dart.test(this[_gzip])) {
          this[_gzipAdd] = dart.bind(controller, 'add');
          this[_addGZipChunk](data, dart.bind(this[_gzipSink], 'add'));
          this[_gzipAdd] = null;
          return;
        }
        this[_addChunk$](this[_chunkHeader](data[$length]), dart.bind(controller, 'add'));
        this[_pendingChunkedFooter] = 2;
      } else {
        if (this.contentLength != null) {
          this[_bytesWritten] = dart.notNull(this[_bytesWritten]) + dart.notNull(data[$length]);
          if (dart.notNull(this[_bytesWritten]) > dart.notNull(this.contentLength)) {
            controller.addError(new _http.HttpException.new("Content size exceeds specified contentLength. " + dart.str(this[_bytesWritten]) + " bytes written while expected " + dart.str(this.contentLength) + ". " + "[" + dart.str(core.String.fromCharCodes(data)) + "]"));
            return;
          }
        }
      }
      this[_addChunk$](data, dart.bind(controller, 'add'));
    };
    dart.fn(onData, ListLOfintLTovoid());
    sub = stream.listen(onData, {onError: dart.bind(controller, 'addError'), onDone: dart.bind(controller, 'close'), cancelOnError: true});
    if (!dart.test(this.headersWritten)) {
      let future = this.writeHeaders();
      if (future != null) {
        sub.pause(future);
      }
    }
    return this.socket.addStream(controller.stream).then(dart.dynamic, dart.fn(_ => this.outbound, dynamicTo_HttpOutboundMessageL()), {onError: dart.fn((error, stackTrace) => {
        if (dart.test(this[_gzip])) this[_gzipSink].close();
        this[_socketError] = true;
        this[_doneCompleter$].completeError(error, core.StackTrace.as(stackTrace));
        if (dart.test(this[_ignoreError](error))) {
          return this.outbound;
        } else {
          dart.throw(error);
        }
      }, dynamicAnddynamicTo_HttpOutboundMessageL())});
  }
  close() {
    if (this[_closeFuture] != null) return this[_closeFuture];
    if (dart.test(this[_socketError])) return async.Future.value(this.outbound);
    if (dart.test(this.outbound[_isConnectionClosed])) return async.Future.value(this.outbound);
    if (!dart.test(this.headersWritten) && !dart.test(this.ignoreBody)) {
      if (this.outbound.headers.contentLength === -1) {
        this.outbound.headers.chunkedTransferEncoding = false;
        this.outbound.headers.contentLength = 0;
      } else if (dart.notNull(this.outbound.headers.contentLength) > 0) {
        let error = new _http.HttpException.new("No content even though contentLength was specified to be " + "greater than 0: " + dart.str(this.outbound.headers.contentLength) + ".", {uri: this.outbound[_uri]});
        this[_doneCompleter$].completeError(error);
        return this[_closeFuture] = async.Future.error(error);
      }
    }
    if (this.contentLength != null) {
      if (dart.notNull(this[_bytesWritten]) < dart.notNull(this.contentLength)) {
        let error = new _http.HttpException.new("Content size below specified contentLength. " + " " + dart.str(this[_bytesWritten]) + " bytes written but expected " + dart.str(this.contentLength) + ".", {uri: this.outbound[_uri]});
        this[_doneCompleter$].completeError(error);
        return this[_closeFuture] = async.Future.error(error);
      }
    }
    const finalize = () => {
      if (dart.test(this.chunked)) {
        if (dart.test(this[_gzip])) {
          this[_gzipAdd] = dart.bind(this.socket, 'add');
          if (dart.notNull(this[_gzipBufferLength]) > 0) {
            this[_gzipSink].add(typed_data.Uint8List.view(this[_gzipBuffer][$buffer], this[_gzipBuffer][$offsetInBytes], this[_gzipBufferLength]));
          }
          this[_gzipBuffer] = null;
          this[_gzipSink].close();
          this[_gzipAdd] = null;
        }
        this[_addChunk$](this[_chunkHeader](0), dart.bind(this.socket, 'add'));
      }
      if (dart.notNull(this[_length$3]) > 0) {
        this.socket.add(typed_data.Uint8List.view(this[_buffer$1][$buffer], this[_buffer$1][$offsetInBytes], this[_length$3]));
      }
      this[_buffer$1] = null;
      return this.socket.flush().then(dart.dynamic, dart.fn(_ => {
        this[_doneCompleter$].complete(this.socket);
        return this.outbound;
      }, dynamicTo_HttpOutboundMessageL()), {onError: dart.fn((error, stackTrace) => {
          this[_doneCompleter$].completeError(error, core.StackTrace.as(stackTrace));
          if (dart.test(this[_ignoreError](error))) {
            return this.outbound;
          } else {
            dart.throw(error);
          }
        }, dynamicAnddynamicTo_HttpOutboundMessageL())});
    };
    dart.fn(finalize, VoidToFutureL());
    let future = this.writeHeaders();
    if (future != null) {
      return this[_closeFuture] = future.whenComplete(finalize);
    }
    return this[_closeFuture] = finalize();
  }
  get done() {
    return this[_doneCompleter$].future;
  }
  setHeader(data, length) {
    if (!(this[_length$3] === 0)) dart.assertFailed(null, L79, 1559, 12, "_length == 0");
    this[_buffer$1] = typed_data.Uint8List.as(data);
    this[_length$3] = length;
  }
  set gzip(value) {
    this[_gzip] = value;
    if (dart.test(this[_gzip])) {
      this[_gzipBuffer] = _native_typed_data.NativeUint8List.new(8192);
      if (!(this[_gzipSink] == null)) dart.assertFailed(null, L79, 1568, 14, "_gzipSink == null");
      this[_gzipSink] = new io.ZLibEncoder.new({gzip: true}).startChunkedConversion(new _http._HttpGZipSink.new(dart.fn(data => {
        if (this[_gzipAdd] == null) return;
        this[_addChunk$](this[_chunkHeader](data[$length]), this[_gzipAdd]);
        this[_pendingChunkedFooter] = 2;
        this[_addChunk$](data, this[_gzipAdd]);
      }, ListLOfintLToNullN())));
    }
  }
  [_ignoreError](error) {
    return (io.SocketException.is(error) || io.TlsException.is(error)) && _http.HttpResponse.is(this.outbound);
  }
  [_addGZipChunk](chunk, add) {
    if (!dart.test(this.outbound.bufferOutput)) {
      add(chunk);
      return;
    }
    if (dart.notNull(chunk[$length]) > dart.notNull(this[_gzipBuffer][$length]) - dart.notNull(this[_gzipBufferLength])) {
      add(typed_data.Uint8List.view(this[_gzipBuffer][$buffer], this[_gzipBuffer][$offsetInBytes], this[_gzipBufferLength]));
      this[_gzipBuffer] = _native_typed_data.NativeUint8List.new(8192);
      this[_gzipBufferLength] = 0;
    }
    if (dart.notNull(chunk[$length]) > 8192) {
      add(chunk);
    } else {
      this[_gzipBuffer][$setRange](this[_gzipBufferLength], dart.notNull(this[_gzipBufferLength]) + dart.notNull(chunk[$length]), chunk);
      this[_gzipBufferLength] = dart.notNull(this[_gzipBufferLength]) + dart.notNull(chunk[$length]);
    }
  }
  [_addChunk$](chunk, add) {
    if (!dart.test(this.outbound.bufferOutput)) {
      if (this[_buffer$1] != null) {
        add(typed_data.Uint8List.view(this[_buffer$1][$buffer], this[_buffer$1][$offsetInBytes], this[_length$3]));
        this[_buffer$1] = null;
        this[_length$3] = 0;
      }
      add(chunk);
      return;
    }
    if (dart.notNull(chunk[$length]) > dart.notNull(this[_buffer$1][$length]) - dart.notNull(this[_length$3])) {
      add(typed_data.Uint8List.view(this[_buffer$1][$buffer], this[_buffer$1][$offsetInBytes], this[_length$3]));
      this[_buffer$1] = _native_typed_data.NativeUint8List.new(8192);
      this[_length$3] = 0;
    }
    if (dart.notNull(chunk[$length]) > 8192) {
      add(chunk);
    } else {
      this[_buffer$1][$setRange](this[_length$3], dart.notNull(this[_length$3]) + dart.notNull(chunk[$length]), chunk);
      this[_length$3] = dart.notNull(this[_length$3]) + dart.notNull(chunk[$length]);
    }
  }
  [_chunkHeader](length) {
    let hexDigits = C465 || CT.C465;
    if (length === 0) {
      if (this[_pendingChunkedFooter] === 2) return _http._HttpOutgoing._footerAndChunk0Length;
      return _http._HttpOutgoing._chunk0Length;
    }
    let size = this[_pendingChunkedFooter];
    let len = length;
    while (dart.notNull(len) > 0) {
      size = dart.notNull(size) + 1;
      len = len[$rightShift](4);
    }
    let footerAndHeader = _native_typed_data.NativeUint8List.new(dart.notNull(size) + 2);
    if (this[_pendingChunkedFooter] === 2) {
      footerAndHeader[$_set](0, 13);
      footerAndHeader[$_set](1, 10);
    }
    let index = size;
    while (dart.notNull(index) > dart.notNull(this[_pendingChunkedFooter])) {
      footerAndHeader[$_set](index = dart.notNull(index) - 1, hexDigits[$_get](dart.notNull(length) & 15));
      length = length[$rightShift](4);
    }
    footerAndHeader[$_set](dart.notNull(size) + 0, 13);
    footerAndHeader[$_set](dart.notNull(size) + 1, 10);
    return footerAndHeader;
  }
};
(_http._HttpOutgoing.new = function(socket) {
  this[_doneCompleter$] = CompleterOfSocketL().new();
  this.ignoreBody = false;
  this.headersWritten = false;
  this[_buffer$1] = null;
  this[_length$3] = 0;
  this[_closeFuture] = null;
  this.chunked = false;
  this[_pendingChunkedFooter] = 0;
  this.contentLength = null;
  this[_bytesWritten] = 0;
  this[_gzip] = false;
  this[_gzipSink] = null;
  this[_gzipAdd] = null;
  this[_gzipBuffer] = null;
  this[_gzipBufferLength] = 0;
  this[_socketError] = false;
  this.outbound = null;
  this.socket = socket;
  ;
}).prototype = _http._HttpOutgoing.prototype;
dart.addTypeTests(_http._HttpOutgoing);
dart.addTypeCaches(_http._HttpOutgoing);
_http._HttpOutgoing[dart.implements] = () => [async.StreamConsumer$(core.List$(core.int))];
dart.setMethodSignature(_http._HttpOutgoing, () => ({
  __proto__: dart.getMethods(_http._HttpOutgoing.__proto__),
  writeHeaders: dart.fnType(async.Future, [], {drainRequest: core.bool, setOutgoing: core.bool}, {}),
  addStream: dart.fnType(async.Future, [core.Object]),
  close: dart.fnType(async.Future, []),
  setHeader: dart.fnType(dart.void, [core.List$(core.int), core.int]),
  [_ignoreError]: dart.fnType(core.bool, [dart.dynamic]),
  [_addGZipChunk]: dart.fnType(dart.void, [core.List$(core.int), dart.fnType(dart.void, [core.List$(core.int)])]),
  [_addChunk$]: dart.fnType(dart.void, [core.List$(core.int), dart.fnType(dart.void, [core.List$(core.int)])]),
  [_chunkHeader]: dart.fnType(core.List$(core.int), [core.int])
}));
dart.setGetterSignature(_http._HttpOutgoing, () => ({
  __proto__: dart.getGetters(_http._HttpOutgoing.__proto__),
  done: async.Future$(io.Socket)
}));
dart.setSetterSignature(_http._HttpOutgoing, () => ({
  __proto__: dart.getSetters(_http._HttpOutgoing.__proto__),
  gzip: core.bool
}));
dart.setLibraryUri(_http._HttpOutgoing, L76);
dart.setFieldSignature(_http._HttpOutgoing, () => ({
  __proto__: dart.getFields(_http._HttpOutgoing.__proto__),
  [_doneCompleter$]: dart.finalFieldType(async.Completer$(io.Socket)),
  socket: dart.finalFieldType(io.Socket),
  ignoreBody: dart.fieldType(core.bool),
  headersWritten: dart.fieldType(core.bool),
  [_buffer$1]: dart.fieldType(typed_data.Uint8List),
  [_length$3]: dart.fieldType(core.int),
  [_closeFuture]: dart.fieldType(async.Future),
  chunked: dart.fieldType(core.bool),
  [_pendingChunkedFooter]: dart.fieldType(core.int),
  contentLength: dart.fieldType(core.int),
  [_bytesWritten]: dart.fieldType(core.int),
  [_gzip]: dart.fieldType(core.bool),
  [_gzipSink]: dart.fieldType(convert.ByteConversionSink),
  [_gzipAdd]: dart.fieldType(dart.fnType(dart.void, [core.List$(core.int)])),
  [_gzipBuffer]: dart.fieldType(typed_data.Uint8List),
  [_gzipBufferLength]: dart.fieldType(core.int),
  [_socketError]: dart.fieldType(core.bool),
  outbound: dart.fieldType(_http._HttpOutboundMessage)
}));
dart.defineLazy(_http._HttpOutgoing, {
  /*_http._HttpOutgoing._footerAndChunk0Length*/get _footerAndChunk0Length() {
    return C466 || CT.C466;
  },
  /*_http._HttpOutgoing._chunk0Length*/get _chunk0Length() {
    return C467 || CT.C467;
  }
}, true);
var _subscription$0 = dart.privateName(_http, "_subscription");
var _dispose = dart.privateName(_http, "_dispose");
var _idleTimer = dart.privateName(_http, "_idleTimer");
var _currentUri = dart.privateName(_http, "_currentUri");
var _nextResponseCompleter = dart.privateName(_http, "_nextResponseCompleter");
var _streamFuture = dart.privateName(_http, "_streamFuture");
var _context$0 = dart.privateName(_http, "_context");
var _httpParser = dart.privateName(_http, "_httpParser");
var _proxyCredentials = dart.privateName(_http, "_proxyCredentials");
var _returnConnection = dart.privateName(_http, "_returnConnection");
_http._HttpClientConnection = class _HttpClientConnection extends core.Object {
  send(uri, port, method, proxy, timeline) {
    let t140;
    if (dart.test(this.closed)) {
      dart.throw(new _http.HttpException.new("Socket closed before request was sent", {uri: uri}));
    }
    this[_currentUri] = uri;
    this[_subscription$0].pause();
    if (method === "CONNECT") {
      this[_httpParser].connectMethod = true;
    }
    let proxyCreds = null;
    let creds = null;
    let outgoing = new _http._HttpOutgoing.new(this[_socket$0]);
    let request = new _http._HttpClientRequest.new(outgoing, uri, method, proxy, this[_httpClient$], this, timeline);
    let host = uri.host;
    if (host[$contains](":")) host = "[" + dart.str(host) + "]";
    t140 = request.headers;
    t140.host = host;
    t140.port = port;
    t140.add("accept-encoding", "gzip");
    t140;
    if (this[_httpClient$].userAgent != null) {
      request.headers.add("user-agent", this[_httpClient$].userAgent);
    }
    if (dart.test(proxy.isAuthenticated)) {
      let auth = _http._CryptoUtils.bytesToBase64(convert.utf8.encode(dart.str(proxy.username) + ":" + dart.str(proxy.password)));
      request.headers.set("proxy-authorization", "Basic " + dart.str(auth));
    } else if (!dart.test(proxy.isDirect) && dart.notNull(this[_httpClient$][_proxyCredentials][$length]) > 0) {
      proxyCreds = this[_httpClient$][_findProxyCredentials](proxy);
      if (proxyCreds != null) {
        proxyCreds.authorize(request);
      }
    }
    if (uri.userInfo != null && !uri.userInfo[$isEmpty]) {
      let auth = _http._CryptoUtils.bytesToBase64(convert.utf8.encode(uri.userInfo));
      request.headers.set("authorization", "Basic " + dart.str(auth));
    } else {
      creds = this[_httpClient$][_findCredentials](uri);
      if (creds != null) {
        creds.authorize(request);
      }
    }
    this[_httpParser].isHead = method === "HEAD";
    this[_streamFuture] = outgoing.done.then(io.Socket, dart.fn(s => {
      this[_nextResponseCompleter] = CompleterOf_HttpIncomingL().new();
      this[_nextResponseCompleter].future.then(core.Null, dart.fn(incoming => {
        this[_currentUri] = null;
        incoming.dataDone.then(core.Null, dart.fn(closing => {
          if (dart.test(incoming.upgraded)) {
            this[_httpClient$][_connectionClosed](this);
            this.startTimer();
            return;
          }
          if (dart.test(this.closed)) return;
          if (!dart.dtest(closing) && !dart.test(this[_dispose]) && dart.test(incoming.headers.persistentConnection) && dart.test(request.persistentConnection)) {
            this[_httpClient$][_returnConnection](this);
            this[_subscription$0].resume();
          } else {
            this.destroy();
          }
        }, dynamicToNullN()));
        if (proxyCreds != null && dart.equals(proxyCreds.scheme, _http._AuthenticationScheme.DIGEST)) {
          let authInfo = incoming.headers._get("proxy-authentication-info");
          if (authInfo != null && authInfo[$length] === 1) {
            let header = _http._HeaderValue.parse(authInfo[$_get](0), {parameterSeparator: ","});
            let nextnonce = header.parameters[$_get]("nextnonce");
            if (nextnonce != null) proxyCreds.nonce = nextnonce;
          }
        }
        if (creds != null && dart.equals(creds.scheme, _http._AuthenticationScheme.DIGEST)) {
          let authInfo = incoming.headers._get("authentication-info");
          if (authInfo != null && authInfo[$length] === 1) {
            let header = _http._HeaderValue.parse(authInfo[$_get](0), {parameterSeparator: ","});
            let nextnonce = header.parameters[$_get]("nextnonce");
            if (nextnonce != null) creds.nonce = nextnonce;
          }
        }
        request[_onIncoming](incoming);
      }, _HttpIncomingLToNullN())).catchError(dart.fn(error => {
        dart.throw(new _http.HttpException.new("Connection closed before data was received", {uri: uri}));
      }, dynamicToNullN()), {test: dart.fn(error => core.StateError.is(error), ObjectLToboolL())}).catchError(dart.fn((error, stackTrace) => {
        this.destroy();
        request[_onError$](error, core.StackTrace.as(stackTrace));
      }, dynamicAnddynamicToNullN()));
      this[_subscription$0].resume();
      return s;
    }, SocketLToSocketL()), {onError: dart.fn(e => {
        this.destroy();
      }, dynamicToNullN())});
    return request;
  }
  detachSocket() {
    return this[_streamFuture].then(io.Socket, dart.fn(_ => new _http._DetachedSocket.new(this[_socket$0], this[_httpParser].detachIncoming()), SocketLTo_DetachedSocketL()));
  }
  destroy() {
    this.closed = true;
    this[_httpClient$][_connectionClosed](this);
    this[_socket$0].destroy();
  }
  close() {
    this.closed = true;
    this[_httpClient$][_connectionClosed](this);
    this[_streamFuture].timeout(this[_httpClient$].idleTimeout).then(dart.void, dart.fn(_ => this[_socket$0].destroy(), SocketLTovoid()));
  }
  createProxyTunnel(host, port, proxy, callback, timeline) {
    let t140;
    t140 = timeline;
    t140 == null ? null : t140.instant("Establishing proxy tunnel", {arguments: new _js_helper.LinkedMap.from(["proxyInfo", (() => {
          let t141 = new (IdentityMapOfStringL$ObjectL()).new();
          if (proxy.host != null) t141[$_set]("host", proxy.host);
          if (proxy.port != null) t141[$_set]("port", proxy.port);
          if (proxy.username != null) t141[$_set]("username", proxy.username);
          t141[$_set]("isDirect", proxy.isDirect);
          return t141;
        })()])});
    let method = "CONNECT";
    let uri = core._Uri.new({host: host, port: port});
    _http._HttpClient._startRequestTimelineEvent(timeline, method, uri);
    let request = this.send(core._Uri.new({host: host, port: port}), port, method, proxy, timeline);
    if (dart.test(proxy.isAuthenticated)) {
      let auth = _http._CryptoUtils.bytesToBase64(convert.utf8.encode(dart.str(proxy.username) + ":" + dart.str(proxy.password)));
      request.headers.set("proxy-authorization", "Basic " + dart.str(auth));
    }
    return request.close().then(io.SecureSocket, dart.fn(response => {
      let t141;
      if (response.statusCode !== 200) {
        let error = "Proxy failed to establish tunnel " + "(" + dart.str(response.statusCode) + " " + dart.str(response.reasonPhrase) + ")";
        t141 = timeline;
        t141 == null ? null : t141.instant(error);
        dart.throw(new _http.HttpException.new(error, {uri: request.uri}));
      }
      let socket = _http._HttpClientResponse.as(response)[_httpRequest$][_httpClientConnection$][_socket$0];
      return io.SecureSocket.secure(socket, {host: host, context: this[_context$0], onBadCertificate: callback});
    }, HttpClientResponseLToFutureLOfSecureSocketL())).then(_http._HttpClientConnection, dart.fn(secureSocket => {
      let t141;
      let key = core.String.as(_http._HttpClientConnection.makeKey(true, host, port));
      t141 = timeline;
      t141 == null ? null : t141.instant("Proxy tunnel established");
      return new _http._HttpClientConnection.new(key, secureSocket, request[_httpClient$], true);
    }, SecureSocketLTo_HttpClientConnectionL()));
  }
  get connectionInfo() {
    return _http._HttpConnectionInfo.create(this[_socket$0]);
  }
  static makeKey(isSecure, host, port) {
    return dart.test(isSecure) ? "ssh:" + dart.str(host) + ":" + dart.str(port) : dart.str(host) + ":" + dart.str(port);
  }
  stopTimer() {
    if (this[_idleTimer] != null) {
      this[_idleTimer].cancel();
      this[_idleTimer] = null;
    }
  }
  startTimer() {
    if (!(this[_idleTimer] == null)) dart.assertFailed(null, L79, 1956, 12, "_idleTimer == null");
    this[_idleTimer] = async.Timer.new(this[_httpClient$].idleTimeout, dart.fn(() => {
      this[_idleTimer] = null;
      this.close();
    }, VoidToNullN()));
  }
};
(_http._HttpClientConnection.new = function(key, _socket, _httpClient, _proxyTunnel = false, _context = null) {
  this[_subscription$0] = null;
  this[_dispose] = false;
  this[_idleTimer] = null;
  this.closed = false;
  this[_currentUri] = null;
  this[_nextResponseCompleter] = null;
  this[_streamFuture] = null;
  this.key = key;
  this[_socket$0] = _socket;
  this[_httpClient$] = _httpClient;
  this[_proxyTunnel$] = _proxyTunnel;
  this[_context$0] = _context;
  this[_httpParser] = _http._HttpParser.responseParser();
  this[_httpParser].listenToStream(this[_socket$0]);
  this[_subscription$0] = this[_httpParser].listen(dart.fn(incoming => {
    this[_subscription$0].pause();
    if (this[_nextResponseCompleter] == null) {
      dart.throw(new _http.HttpException.new("Unexpected response (unsolicited response without request).", {uri: this[_currentUri]}));
    }
    if (incoming.statusCode === 100) {
      incoming.drain(dart.dynamic).then(core.Null, dart.fn(_ => {
        this[_subscription$0].resume();
      }, dynamicToNullN())).catchError(dart.fn((error, stackTrace = null) => {
        this[_nextResponseCompleter].completeError(new _http.HttpException.new(core.String.as(dart.dload(error, 'message')), {uri: this[_currentUri]}), stackTrace);
        this[_nextResponseCompleter] = null;
      }, dynamicAndStackTraceLToNullN$()));
    } else {
      this[_nextResponseCompleter].complete(incoming);
      this[_nextResponseCompleter] = null;
    }
  }, _HttpIncomingLToNullN()), {onError: dart.fn((error, stackTrace = null) => {
      if (this[_nextResponseCompleter] != null) {
        this[_nextResponseCompleter].completeError(new _http.HttpException.new(core.String.as(dart.dload(error, 'message')), {uri: this[_currentUri]}), stackTrace);
        this[_nextResponseCompleter] = null;
      }
    }, dynamicAndStackTraceLToNullN$()), onDone: dart.fn(() => {
      if (this[_nextResponseCompleter] != null) {
        this[_nextResponseCompleter].completeError(new _http.HttpException.new("Connection closed before response was received", {uri: this[_currentUri]}));
        this[_nextResponseCompleter] = null;
      }
      this.close();
    }, VoidToNullN())});
}).prototype = _http._HttpClientConnection.prototype;
dart.addTypeTests(_http._HttpClientConnection);
dart.addTypeCaches(_http._HttpClientConnection);
dart.setMethodSignature(_http._HttpClientConnection, () => ({
  __proto__: dart.getMethods(_http._HttpClientConnection.__proto__),
  send: dart.fnType(_http._HttpClientRequest, [core.Uri, core.int, core.String, _http._Proxy, developer.TimelineTask]),
  detachSocket: dart.fnType(async.Future$(io.Socket), []),
  destroy: dart.fnType(dart.void, []),
  close: dart.fnType(dart.void, []),
  createProxyTunnel: dart.fnType(async.Future$(_http._HttpClientConnection), [core.String, core.int, _http._Proxy, dart.fnType(core.bool, [io.X509Certificate]), developer.TimelineTask]),
  stopTimer: dart.fnType(dart.void, []),
  startTimer: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(_http._HttpClientConnection, () => ({
  __proto__: dart.getGetters(_http._HttpClientConnection.__proto__),
  connectionInfo: _http.HttpConnectionInfo
}));
dart.setLibraryUri(_http._HttpClientConnection, L76);
dart.setFieldSignature(_http._HttpClientConnection, () => ({
  __proto__: dart.getFields(_http._HttpClientConnection.__proto__),
  key: dart.finalFieldType(core.String),
  [_socket$0]: dart.finalFieldType(io.Socket),
  [_proxyTunnel$]: dart.finalFieldType(core.bool),
  [_context$0]: dart.finalFieldType(io.SecurityContext),
  [_httpParser]: dart.finalFieldType(_http._HttpParser),
  [_subscription$0]: dart.fieldType(async.StreamSubscription),
  [_httpClient$]: dart.finalFieldType(_http._HttpClient),
  [_dispose]: dart.fieldType(core.bool),
  [_idleTimer]: dart.fieldType(async.Timer),
  closed: dart.fieldType(core.bool),
  [_currentUri]: dart.fieldType(core.Uri),
  [_nextResponseCompleter]: dart.fieldType(async.Completer$(_http._HttpIncoming)),
  [_streamFuture]: dart.fieldType(async.Future$(io.Socket))
}));
_http._ConnectionInfo = class _ConnectionInfo extends core.Object {};
(_http._ConnectionInfo.new = function(connection, proxy) {
  this.connection = connection;
  this.proxy = proxy;
  ;
}).prototype = _http._ConnectionInfo.prototype;
dart.addTypeTests(_http._ConnectionInfo);
dart.addTypeCaches(_http._ConnectionInfo);
dart.setLibraryUri(_http._ConnectionInfo, L76);
dart.setFieldSignature(_http._ConnectionInfo, () => ({
  __proto__: dart.getFields(_http._ConnectionInfo.__proto__),
  connection: dart.finalFieldType(_http._HttpClientConnection),
  proxy: dart.finalFieldType(_http._Proxy)
}));
var _idle = dart.privateName(_http, "_idle");
var _active = dart.privateName(_http, "_active");
var _socketTasks = dart.privateName(_http, "_socketTasks");
var _pending = dart.privateName(_http, "_pending");
var _connecting = dart.privateName(_http, "_connecting");
var _checkPending = dart.privateName(_http, "_checkPending");
var _connectionsChanged = dart.privateName(_http, "_connectionsChanged");
var _badCertificateCallback = dart.privateName(_http, "_badCertificateCallback");
var _getConnectionTarget = dart.privateName(_http, "_getConnectionTarget");
_http._ConnectionTarget = class _ConnectionTarget extends core.Object {
  get isEmpty() {
    return dart.test(this[_idle][$isEmpty]) && dart.test(this[_active][$isEmpty]) && this[_connecting] === 0;
  }
  get hasIdle() {
    return this[_idle][$isNotEmpty];
  }
  get hasActive() {
    return dart.test(this[_active][$isNotEmpty]) || dart.notNull(this[_connecting]) > 0;
  }
  takeIdle() {
    if (!dart.test(this.hasIdle)) dart.assertFailed(null, L79, 1994, 12, "hasIdle");
    let connection = this[_idle][$first];
    this[_idle].remove(connection);
    connection.stopTimer();
    this[_active].add(connection);
    return connection;
  }
  [_checkPending]() {
    if (dart.test(this[_pending][$isNotEmpty])) {
      dart.dcall(this[_pending].removeFirst(), []);
    }
  }
  addNewActive(connection) {
    this[_active].add(connection);
  }
  returnConnection(connection) {
    if (!dart.test(this[_active].contains(connection))) dart.assertFailed(null, L79, 2013, 12, "_active.contains(connection)");
    this[_active].remove(connection);
    this[_idle].add(connection);
    connection.startTimer();
    this[_checkPending]();
  }
  connectionClosed(connection) {
    if (!(!dart.test(this[_active].contains(connection)) || !dart.test(this[_idle].contains(connection)))) dart.assertFailed(null, L79, 2021, 12, "!_active.contains(connection) || !_idle.contains(connection)");
    this[_active].remove(connection);
    this[_idle].remove(connection);
    this[_checkPending]();
  }
  close(force) {
    for (let t of this[_socketTasks][$toList]()) {
      t.socket.then(core.Null, dart.fn(s => {
        dart.dsend(s, 'destroy', []);
      }, dynamicToNullN()), {onError: dart.fn(e => {
        }, dynamicToNullN())});
      t.cancel();
    }
    if (dart.test(force)) {
      for (let c of this[_idle][$toList]()) {
        c.destroy();
      }
      for (let c of this[_active][$toList]()) {
        c.destroy();
      }
    } else {
      for (let c of this[_idle][$toList]()) {
        c.close();
      }
    }
  }
  connect(uriHost, uriPort, proxy, client, timeline) {
    if (dart.test(this.hasIdle)) {
      let connection = this.takeIdle();
      client[_connectionsChanged]();
      return FutureOf_ConnectionInfoL().value(new _http._ConnectionInfo.new(connection, proxy));
    }
    if (client.maxConnectionsPerHost != null && dart.notNull(this[_active][$length]) + dart.notNull(this[_connecting]) >= dart.notNull(client.maxConnectionsPerHost)) {
      let completer = CompleterOf_ConnectionInfoL().new();
      this[_pending].add(dart.fn(() => {
        completer.complete(this.connect(uriHost, uriPort, proxy, client, timeline));
      }, VoidToNullN()));
      return completer.future;
    }
    let currentBadCertificateCallback = client[_badCertificateCallback];
    function callback(certificate) {
      if (currentBadCertificateCallback == null) return false;
      return currentBadCertificateCallback(certificate, uriHost, uriPort);
    }
    dart.fn(callback, X509CertificateLToboolL());
    let connectionTask = dart.test(this.isSecure) && dart.test(proxy.isDirect) ? io.SecureSocket.startConnect(this.host, this.port, {context: this.context, onBadCertificate: callback}) : io.Socket.startConnect(this.host, this.port);
    this[_connecting] = dart.notNull(this[_connecting]) + 1;
    return connectionTask.then(_http._ConnectionInfo, dart.fn(task => {
      this[_socketTasks].add(task);
      let socketFuture = task.socket;
      let connectionTimeout = client.connectionTimeout;
      if (connectionTimeout != null) {
        socketFuture = socketFuture.timeout(connectionTimeout, {onTimeout: dart.fn(() => {
            this[_socketTasks].remove(task);
            task.cancel();
            return null;
          }, VoidToNullN())});
      }
      return socketFuture.then(_http._ConnectionInfo, dart.fn(socket => {
        if (socket == null) {
          if (!(connectionTimeout != null)) dart.assertFailed(null, L79, 2095, 18, "connectionTimeout != null");
          dart.throw(new io.SocketException.new("HTTP connection timed out after " + dart.str(connectionTimeout) + ", " + "host: " + dart.str(this.host) + ", port: " + dart.str(this.port)));
        }
        this[_connecting] = dart.notNull(this[_connecting]) - 1;
        dart.dsend(socket, 'setOption', [io.SocketOption.tcpNoDelay, true]);
        let connection = new _http._HttpClientConnection.new(this.key, io.Socket.as(socket), client, false, this.context);
        if (dart.test(this.isSecure) && !dart.test(proxy.isDirect)) {
          connection[_dispose] = true;
          return connection.createProxyTunnel(uriHost, uriPort, proxy, callback, timeline).then(_http._ConnectionInfo, dart.fn(tunnel => {
            client[_getConnectionTarget](uriHost, uriPort, true).addNewActive(tunnel);
            this[_socketTasks].remove(task);
            return new _http._ConnectionInfo.new(tunnel, proxy);
          }, _HttpClientConnectionLTo_ConnectionInfoL()));
        } else {
          this.addNewActive(connection);
          this[_socketTasks].remove(task);
          return new _http._ConnectionInfo.new(connection, proxy);
        }
      }, dynamicToFutureOrLOf_ConnectionInfoL()), {onError: dart.fn(error => {
          this[_connecting] = dart.notNull(this[_connecting]) - 1;
          this[_socketTasks].remove(task);
          this[_checkPending]();
          dart.throw(error);
        }, dynamicToNullN())});
    }, ConnectionTaskLToFutureLOf_ConnectionInfoL()));
  }
};
(_http._ConnectionTarget.new = function(key, host, port, isSecure, context) {
  this[_idle] = new (_HashSetOf_HttpClientConnectionL()).new();
  this[_active] = new (_HashSetOf_HttpClientConnectionL()).new();
  this[_socketTasks] = new (_HashSetOfConnectionTaskL()).new();
  this[_pending] = new collection.ListQueue.new();
  this[_connecting] = 0;
  this.key = key;
  this.host = host;
  this.port = port;
  this.isSecure = isSecure;
  this.context = context;
  ;
}).prototype = _http._ConnectionTarget.prototype;
dart.addTypeTests(_http._ConnectionTarget);
dart.addTypeCaches(_http._ConnectionTarget);
dart.setMethodSignature(_http._ConnectionTarget, () => ({
  __proto__: dart.getMethods(_http._ConnectionTarget.__proto__),
  takeIdle: dart.fnType(_http._HttpClientConnection, []),
  [_checkPending]: dart.fnType(dart.dynamic, []),
  addNewActive: dart.fnType(dart.void, [_http._HttpClientConnection]),
  returnConnection: dart.fnType(dart.void, [_http._HttpClientConnection]),
  connectionClosed: dart.fnType(dart.void, [_http._HttpClientConnection]),
  close: dart.fnType(dart.void, [core.bool]),
  connect: dart.fnType(async.Future$(_http._ConnectionInfo), [core.String, core.int, _http._Proxy, _http._HttpClient, developer.TimelineTask])
}));
dart.setGetterSignature(_http._ConnectionTarget, () => ({
  __proto__: dart.getGetters(_http._ConnectionTarget.__proto__),
  isEmpty: core.bool,
  hasIdle: core.bool,
  hasActive: core.bool
}));
dart.setLibraryUri(_http._ConnectionTarget, L76);
dart.setFieldSignature(_http._ConnectionTarget, () => ({
  __proto__: dart.getFields(_http._ConnectionTarget.__proto__),
  key: dart.finalFieldType(core.String),
  host: dart.finalFieldType(core.String),
  port: dart.finalFieldType(core.int),
  isSecure: dart.finalFieldType(core.bool),
  context: dart.finalFieldType(io.SecurityContext),
  [_idle]: dart.finalFieldType(core.Set$(_http._HttpClientConnection)),
  [_active]: dart.finalFieldType(core.Set$(_http._HttpClientConnection)),
  [_socketTasks]: dart.finalFieldType(core.Set$(io.ConnectionTask)),
  [_pending]: dart.finalFieldType(collection.Queue),
  [_connecting]: dart.fieldType(core.int)
}));
var _closing = dart.privateName(_http, "_closing");
var _closingForcefully = dart.privateName(_http, "_closingForcefully");
var _connectionTargets = dart.privateName(_http, "_connectionTargets");
var _credentials = dart.privateName(_http, "_credentials");
var _findProxy = dart.privateName(_http, "_findProxy");
var C468;
var _idleTimeout = dart.privateName(_http, "_idleTimeout");
var C469;
var _openUrl = dart.privateName(_http, "_openUrl");
var _closeConnections = dart.privateName(_http, "_closeConnections");
var _Proxy_isDirect = dart.privateName(_http, "_Proxy.isDirect");
var _Proxy_password = dart.privateName(_http, "_Proxy.password");
var _Proxy_username = dart.privateName(_http, "_Proxy.username");
var _Proxy_port = dart.privateName(_http, "_Proxy.port");
var _Proxy_host = dart.privateName(_http, "_Proxy.host");
var C472;
var C471;
var _ProxyConfiguration_proxies = dart.privateName(_http, "_ProxyConfiguration.proxies");
var C470;
var _getConnection = dart.privateName(_http, "_getConnection");
_http._HttpClient = class _HttpClient extends core.Object {
  get idleTimeout() {
    return this[_idleTimeout];
  }
  set idleTimeout(timeout) {
    this[_idleTimeout] = timeout;
    for (let c of this[_connectionTargets][$values]) {
      for (let idle of c[_idle]) {
        idle.stopTimer();
        idle.startTimer();
      }
    }
  }
  set badCertificateCallback(callback) {
    this[_badCertificateCallback] = callback;
  }
  open(method, host, port, path) {
    let fragmentStart = path.length;
    let queryStart = path.length;
    for (let i = path.length - 1; i >= 0; i = i - 1) {
      let char = path[$codeUnitAt](i);
      if (char === 35) {
        fragmentStart = i;
        queryStart = i;
      } else if (char === 63) {
        queryStart = i;
      }
    }
    let query = null;
    if (queryStart < fragmentStart) {
      query = path[$substring](queryStart + 1, fragmentStart);
      path = path[$substring](0, queryStart);
    }
    let uri = core._Uri.new({scheme: "http", host: host, port: port, path: path, query: query});
    return this[_openUrl](method, uri);
  }
  openUrl(method, url) {
    return this[_openUrl](method, url);
  }
  get(host, port, path) {
    return this.open("get", host, port, path);
  }
  getUrl(url) {
    return this[_openUrl]("get", url);
  }
  post(host, port, path) {
    return this.open("post", host, port, path);
  }
  postUrl(url) {
    return this[_openUrl]("post", url);
  }
  put(host, port, path) {
    return this.open("put", host, port, path);
  }
  putUrl(url) {
    return this[_openUrl]("put", url);
  }
  delete(host, port, path) {
    return this.open("delete", host, port, path);
  }
  deleteUrl(url) {
    return this[_openUrl]("delete", url);
  }
  head(host, port, path) {
    return this.open("head", host, port, path);
  }
  headUrl(url) {
    return this[_openUrl]("head", url);
  }
  patch(host, port, path) {
    return this.open("patch", host, port, path);
  }
  patchUrl(url) {
    return this[_openUrl]("patch", url);
  }
  close(opts) {
    let force = opts && 'force' in opts ? opts.force : false;
    this[_closing] = true;
    this[_closingForcefully] = force;
    this[_closeConnections](this[_closingForcefully]);
    if (!!dart.test(this[_connectionTargets][$values][$any](dart.fn(s => s.hasIdle, _ConnectionTargetLToboolL())))) dart.assertFailed(null, L79, 2236, 12, "!_connectionTargets.values.any((s) => s.hasIdle)");
    if (!(!dart.test(force) || !dart.test(this[_connectionTargets][$values][$any](dart.fn(s => s[_active][$isNotEmpty], _ConnectionTargetLToboolL()))))) dart.assertFailed(null, L79, 2238, 9, "!force || !_connectionTargets.values.any((s) => s._active.isNotEmpty)");
  }
  set authenticate(f) {
    this[_authenticate] = f;
  }
  addCredentials(url, realm, cr) {
    this[_credentials][$add](new _http._SiteCredentials.new(url, realm, _http._HttpClientCredentials.as(cr)));
  }
  set authenticateProxy(f) {
    this[_authenticateProxy] = f;
  }
  addProxyCredentials(host, port, realm, cr) {
    this[_proxyCredentials][$add](new _http._ProxyCredentials.new(host, port, realm, _http._HttpClientCredentials.as(cr)));
  }
  set findProxy(f) {
    return this[_findProxy] = f;
  }
  static _startRequestTimelineEvent(timeline, method, uri) {
    let t141;
    t141 = timeline;
    t141 == null ? null : t141.start("HTTP CLIENT " + method[$toUpperCase](), {arguments: new _js_helper.LinkedMap.from(["method", method[$toUpperCase](), "uri", dart.toString(uri)])});
  }
  [_openUrl](method, uri) {
    let t141;
    if (dart.test(this[_closing])) {
      dart.throw(new core.StateError.new("Client is closed"));
    }
    uri = uri.removeFragment();
    if (method == null) {
      dart.throw(new core.ArgumentError.new(method));
    }
    if (method !== "CONNECT") {
      if (uri.host[$isEmpty]) {
        dart.throw(new core.ArgumentError.new("No host specified in URI " + dart.str(uri)));
      } else if (uri.scheme !== "http" && uri.scheme !== "https") {
        dart.throw(new core.ArgumentError.new("Unsupported scheme '" + dart.str(uri.scheme) + "' in URI " + dart.str(uri)));
      }
    }
    let isSecure = uri.scheme === "https";
    let port = uri.port;
    if (port === 0) {
      port = isSecure ? 443 : 80;
    }
    let proxyConf = C470 || CT.C470;
    if (this[_findProxy] != null) {
      try {
        proxyConf = new _http._ProxyConfiguration.new(core.String.as((t141 = uri, dart.dsend(this, _findProxy, [t141]))));
      } catch (e) {
        let error = dart.getThrown(e);
        let stackTrace = dart.stackTrace(e);
        return FutureOf_HttpClientRequestL().error(error, stackTrace);
      }
    }
    let timeline = null;
    if (dart.test(_http.HttpClient.enableTimelineLogging)) {
      timeline = new developer.TimelineTask.new({filterKey: "HTTP/client"});
      _http._HttpClient._startRequestTimelineEvent(timeline, method, uri);
    }
    return this[_getConnection](uri.host, port, proxyConf, isSecure, timeline).then(_http._HttpClientRequest, dart.fn(info => {
      function send(info) {
        let t142;
        t142 = timeline;
        t142 == null ? null : t142.instant("Connection established");
        return info.connection.send(uri, port, method[$toUpperCase](), info.proxy, timeline);
      }
      dart.fn(send, _ConnectionInfoLTo_HttpClientRequestL());
      if (dart.test(info.connection.closed)) {
        return this[_getConnection](uri.host, port, proxyConf, isSecure, timeline).then(_http._HttpClientRequest, send);
      }
      return send(info);
    }, _ConnectionInfoLToFutureOrLOf_HttpClientRequestL()), {onError: dart.fn(error => {
        let t142;
        t142 = timeline;
        t142 == null ? null : t142.finish({arguments: new _js_helper.LinkedMap.from(["error", dart.toString(error)])});
        dart.throw(error);
      }, dynamicToNullN())});
  }
  [_openUrlFromRequest](method, uri, previous) {
    let resolved = previous.uri.resolveUri(uri);
    return this[_openUrl](method, resolved).then(_http._HttpClientRequest, dart.fn(request => {
      let t142, t142$;
      t142 = request;
      t142.followRedirects = previous.followRedirects;
      t142.maxRedirects = previous.maxRedirects;
      t142;
      for (let header of previous.headers[_headers][$keys]) {
        if (request.headers._get(header) == null) {
          request.headers.set(header, previous.headers._get(header));
        }
      }
      t142$ = request;
      t142$.headers.chunkedTransferEncoding = false;
      t142$.contentLength = 0;
      return t142$;
    }, _HttpClientRequestLTo_HttpClientRequestL()));
  }
  [_returnConnection](connection) {
    this[_connectionTargets][$_get](connection.key).returnConnection(connection);
    this[_connectionsChanged]();
  }
  [_connectionClosed](connection) {
    connection.stopTimer();
    let connectionTarget = this[_connectionTargets][$_get](connection.key);
    if (connectionTarget != null) {
      connectionTarget.connectionClosed(connection);
      if (dart.test(connectionTarget.isEmpty)) {
        this[_connectionTargets][$remove](connection.key);
      }
      this[_connectionsChanged]();
    }
  }
  [_connectionsChanged]() {
    if (dart.test(this[_closing])) {
      this[_closeConnections](this[_closingForcefully]);
    }
  }
  [_closeConnections](force) {
    for (let connectionTarget of this[_connectionTargets][$values][$toList]()) {
      connectionTarget.close(force);
    }
  }
  [_getConnectionTarget](host, port, isSecure) {
    let key = core.String.as(_http._HttpClientConnection.makeKey(isSecure, host, port));
    return this[_connectionTargets][$putIfAbsent](key, dart.fn(() => new _http._ConnectionTarget.new(key, host, port, isSecure, this[_context$0]), VoidTo_ConnectionTargetL()));
  }
  [_getConnection](uriHost, uriPort, proxyConf, isSecure, timeline) {
    let proxies = proxyConf.proxies[$iterator];
    const connect = error => {
      if (!dart.test(proxies.moveNext())) return FutureOf_ConnectionInfoL().error(error);
      let proxy = proxies.current;
      let host = dart.test(proxy.isDirect) ? uriHost : proxy.host;
      let port = dart.test(proxy.isDirect) ? uriPort : proxy.port;
      return this[_getConnectionTarget](host, port, isSecure).connect(uriHost, uriPort, proxy, this, timeline).catchError(connect);
    };
    dart.fn(connect, dynamicToFutureLOf_ConnectionInfoL());
    return connect(new _http.HttpException.new("No proxies given"));
  }
  [_findCredentials](url, scheme = null) {
    let cr = this[_credentials][$fold](_http._SiteCredentials, null, dart.fn((prev, value) => {
      let siteCredentials = _http._SiteCredentials.as(value);
      if (dart.test(siteCredentials.applies(url, scheme))) {
        if (prev == null) return _http._SiteCredentials.as(value);
        return siteCredentials.uri.path.length > prev.uri.path.length ? siteCredentials : prev;
      } else {
        return prev;
      }
    }, _SiteCredentialsLAnd_CredentialsLTo_SiteCredentialsL()));
    return cr;
  }
  [_findProxyCredentials](proxy, scheme = null) {
    let it = this[_proxyCredentials][$iterator];
    while (dart.test(it.moveNext())) {
      if (dart.test(it.current.applies(proxy, scheme))) {
        return it.current;
      }
    }
    return null;
  }
  [_removeCredentials](cr) {
    let index = this[_credentials][$indexOf](cr);
    if (index !== -1) {
      this[_credentials][$removeAt](index);
    }
  }
  [_removeProxyCredentials](cr) {
    let index = this[_proxyCredentials][$indexOf](_http._ProxyCredentials.as(cr));
    if (index !== -1) {
      this[_proxyCredentials][$removeAt](index);
    }
  }
  static _findProxyFromEnvironment(url, environment) {
    function checkNoProxy(option) {
      if (option == null) return null;
      let names = option[$split](",")[$map](core.String, dart.fn(s => s[$trim](), StringLToStringL()))[$iterator];
      while (dart.test(names.moveNext())) {
        let name = names.current;
        if (name[$startsWith]("[") && name[$endsWith]("]") && "[" + dart.str(url.host) + "]" === name || name[$isNotEmpty] && url.host[$endsWith](name)) {
          return "DIRECT";
        }
      }
      return null;
    }
    dart.fn(checkNoProxy, StringLToStringL());
    function checkProxy(option) {
      if (option == null) return null;
      option = option[$trim]();
      if (option[$isEmpty]) return null;
      let pos = option[$indexOf]("://");
      if (pos >= 0) {
        option = option[$substring](pos + 3);
      }
      pos = option[$indexOf]("/");
      if (pos >= 0) {
        option = option[$substring](0, pos);
      }
      if (option[$indexOf]("[") === 0) {
        let pos = option[$lastIndexOf](":");
        if (option[$indexOf]("]") > pos) option = dart.str(option) + ":1080";
      } else {
        if (option[$indexOf](":") === -1) option = dart.str(option) + ":1080";
      }
      return "PROXY " + dart.str(option);
    }
    dart.fn(checkProxy, StringLToStringL());
    if (environment == null) environment = _http._HttpClient._platformEnvironmentCache;
    let proxyCfg = null;
    let noProxy = environment[$_get]("no_proxy");
    if (noProxy == null) noProxy = environment[$_get]("NO_PROXY");
    if ((proxyCfg = checkNoProxy(noProxy)) != null) {
      return proxyCfg;
    }
    if (url.scheme === "http") {
      let proxy = environment[$_get]("http_proxy");
      if (proxy == null) proxy = environment[$_get]("HTTP_PROXY");
      if ((proxyCfg = checkProxy(proxy)) != null) {
        return proxyCfg;
      }
    } else if (url.scheme === "https") {
      let proxy = environment[$_get]("https_proxy");
      if (proxy == null) proxy = environment[$_get]("HTTPS_PROXY");
      if ((proxyCfg = checkProxy(proxy)) != null) {
        return proxyCfg;
      }
    }
    return "DIRECT";
  }
};
(_http._HttpClient.new = function(_context) {
  this[_closing] = false;
  this[_closingForcefully] = false;
  this[_connectionTargets] = new (IdentityMapOfStringL$_ConnectionTargetL()).new();
  this[_credentials] = JSArrayOf_CredentialsL().of([]);
  this[_proxyCredentials] = JSArrayOf_ProxyCredentialsL().of([]);
  this[_authenticate] = null;
  this[_authenticateProxy] = null;
  this[_findProxy] = C468 || CT.C468;
  this[_idleTimeout] = C469 || CT.C469;
  this[_badCertificateCallback] = null;
  this.connectionTimeout = null;
  this.maxConnectionsPerHost = null;
  this.autoUncompress = true;
  this.userAgent = _http._getHttpVersion();
  this[_context$0] = _context;
  ;
}).prototype = _http._HttpClient.prototype;
dart.addTypeTests(_http._HttpClient);
dart.addTypeCaches(_http._HttpClient);
_http._HttpClient[dart.implements] = () => [_http.HttpClient];
dart.setMethodSignature(_http._HttpClient, () => ({
  __proto__: dart.getMethods(_http._HttpClient.__proto__),
  open: dart.fnType(async.Future$(_http.HttpClientRequest), [core.String, core.String, core.int, core.String]),
  openUrl: dart.fnType(async.Future$(_http.HttpClientRequest), [core.String, core.Uri]),
  get: dart.fnType(async.Future$(_http.HttpClientRequest), [core.String, core.int, core.String]),
  getUrl: dart.fnType(async.Future$(_http.HttpClientRequest), [core.Uri]),
  post: dart.fnType(async.Future$(_http.HttpClientRequest), [core.String, core.int, core.String]),
  postUrl: dart.fnType(async.Future$(_http.HttpClientRequest), [core.Uri]),
  put: dart.fnType(async.Future$(_http.HttpClientRequest), [core.String, core.int, core.String]),
  putUrl: dart.fnType(async.Future$(_http.HttpClientRequest), [core.Uri]),
  delete: dart.fnType(async.Future$(_http.HttpClientRequest), [core.String, core.int, core.String]),
  deleteUrl: dart.fnType(async.Future$(_http.HttpClientRequest), [core.Uri]),
  head: dart.fnType(async.Future$(_http.HttpClientRequest), [core.String, core.int, core.String]),
  headUrl: dart.fnType(async.Future$(_http.HttpClientRequest), [core.Uri]),
  patch: dart.fnType(async.Future$(_http.HttpClientRequest), [core.String, core.int, core.String]),
  patchUrl: dart.fnType(async.Future$(_http.HttpClientRequest), [core.Uri]),
  close: dart.fnType(dart.void, [], {force: core.bool}, {}),
  addCredentials: dart.fnType(dart.void, [core.Uri, core.String, _http.HttpClientCredentials]),
  addProxyCredentials: dart.fnType(dart.void, [core.String, core.int, core.String, _http.HttpClientCredentials]),
  [_openUrl]: dart.fnType(async.Future$(_http._HttpClientRequest), [core.String, core.Uri]),
  [_openUrlFromRequest]: dart.fnType(async.Future$(_http._HttpClientRequest), [core.String, core.Uri, _http._HttpClientRequest]),
  [_returnConnection]: dart.fnType(dart.void, [_http._HttpClientConnection]),
  [_connectionClosed]: dart.fnType(dart.void, [_http._HttpClientConnection]),
  [_connectionsChanged]: dart.fnType(dart.void, []),
  [_closeConnections]: dart.fnType(dart.void, [core.bool]),
  [_getConnectionTarget]: dart.fnType(_http._ConnectionTarget, [core.String, core.int, core.bool]),
  [_getConnection]: dart.fnType(async.Future$(_http._ConnectionInfo), [core.String, core.int, _http._ProxyConfiguration, core.bool, developer.TimelineTask]),
  [_findCredentials]: dart.fnType(_http._SiteCredentials, [core.Uri], [_http._AuthenticationScheme]),
  [_findProxyCredentials]: dart.fnType(_http._ProxyCredentials, [_http._Proxy], [_http._AuthenticationScheme]),
  [_removeCredentials]: dart.fnType(dart.void, [_http._Credentials]),
  [_removeProxyCredentials]: dart.fnType(dart.void, [_http._Credentials])
}));
dart.setGetterSignature(_http._HttpClient, () => ({
  __proto__: dart.getGetters(_http._HttpClient.__proto__),
  idleTimeout: core.Duration
}));
dart.setSetterSignature(_http._HttpClient, () => ({
  __proto__: dart.getSetters(_http._HttpClient.__proto__),
  idleTimeout: core.Duration,
  badCertificateCallback: dart.fnType(core.bool, [io.X509Certificate, core.String, core.int]),
  authenticate: dart.fnType(async.Future$(core.bool), [core.Uri, core.String, core.String]),
  authenticateProxy: dart.fnType(async.Future$(core.bool), [core.String, core.int, core.String, core.String]),
  findProxy: dart.fnType(core.String, [core.Uri])
}));
dart.setLibraryUri(_http._HttpClient, L76);
dart.setFieldSignature(_http._HttpClient, () => ({
  __proto__: dart.getFields(_http._HttpClient.__proto__),
  [_closing]: dart.fieldType(core.bool),
  [_closingForcefully]: dart.fieldType(core.bool),
  [_connectionTargets]: dart.finalFieldType(core.Map$(core.String, _http._ConnectionTarget)),
  [_credentials]: dart.finalFieldType(core.List$(_http._Credentials)),
  [_proxyCredentials]: dart.finalFieldType(core.List$(_http._ProxyCredentials)),
  [_context$0]: dart.finalFieldType(io.SecurityContext),
  [_authenticate]: dart.fieldType(core.Function),
  [_authenticateProxy]: dart.fieldType(core.Function),
  [_findProxy]: dart.fieldType(core.Function),
  [_idleTimeout]: dart.fieldType(core.Duration),
  [_badCertificateCallback]: dart.fieldType(dart.fnType(core.bool, [io.X509Certificate, core.String, core.int])),
  connectionTimeout: dart.fieldType(core.Duration),
  maxConnectionsPerHost: dart.fieldType(core.int),
  autoUncompress: dart.fieldType(core.bool),
  userAgent: dart.fieldType(core.String)
}));
dart.defineLazy(_http._HttpClient, {
  /*_http._HttpClient._platformEnvironmentCache*/get _platformEnvironmentCache() {
    return io.Platform.environment;
  },
  set _platformEnvironmentCache(_) {}
}, true);
var _state$1 = dart.privateName(_http, "_state");
var _idleMark = dart.privateName(_http, "_idleMark");
var _markActive = dart.privateName(_http, "_markActive");
var _markIdle = dart.privateName(_http, "_markIdle");
var _handleRequest = dart.privateName(_http, "_handleRequest");
var _isActive = dart.privateName(_http, "_isActive");
var _isIdle = dart.privateName(_http, "_isIdle");
var _toJSON$ = dart.privateName(_http, "_toJSON");
const LinkedListEntry__ServiceObject$36 = class LinkedListEntry__ServiceObject extends collection.LinkedListEntry {};
(LinkedListEntry__ServiceObject$36.new = function() {
  _http._ServiceObject.new.call(this);
  LinkedListEntry__ServiceObject$36.__proto__.new.call(this);
}).prototype = LinkedListEntry__ServiceObject$36.prototype;
dart.applyMixin(LinkedListEntry__ServiceObject$36, _http._ServiceObject);
_http._HttpConnection = class _HttpConnection extends LinkedListEntry__ServiceObject$36 {
  markIdle() {
    this[_idleMark] = true;
  }
  get isMarkedIdle() {
    return this[_idleMark];
  }
  destroy() {
    if (this[_state$1] === 2 || this[_state$1] === 3) return;
    this[_state$1] = 2;
    dart.dsend(this[_socket$0], 'destroy', []);
    this[_httpServer$][_connectionClosed](this);
    _http._HttpConnection._connections[$remove](this[_serviceId$]);
  }
  detachSocket() {
    this[_state$1] = 3;
    this[_httpServer$][_connectionClosed](this);
    let detachedIncoming = this[_httpParser].detachIncoming();
    return this[_streamFuture].then(io.Socket, dart.fn(_ => {
      _http._HttpConnection._connections[$remove](this[_serviceId$]);
      return new _http._DetachedSocket.new(io.Socket.as(this[_socket$0]), detachedIncoming);
    }, dynamicTo_DetachedSocketL()));
  }
  get connectionInfo() {
    return _http._HttpConnectionInfo.create(io.Socket.as(this[_socket$0]));
  }
  get [_isActive]() {
    return this[_state$1] === 0;
  }
  get [_isIdle]() {
    return this[_state$1] === 1;
  }
  get [_isClosing]() {
    return this[_state$1] === 2;
  }
  get [_serviceTypePath$]() {
    return "io/http/serverconnections";
  }
  get [_serviceTypeName$]() {
    return "HttpServerConnection";
  }
  [_toJSON$](ref) {
    let name = dart.str(dart.dload(dart.dload(this[_socket$0], 'address'), 'host')) + ":" + dart.str(dart.dload(this[_socket$0], 'port')) + " <-> " + dart.str(dart.dload(dart.dload(this[_socket$0], 'remoteAddress'), 'host')) + ":" + dart.str(dart.dload(this[_socket$0], 'remotePort'));
    let r = new (IdentityMapOfStringL$dynamic()).from(["id", this[_servicePath$], "type", this[_serviceType$](ref), "name", name, "user_name", name]);
    if (dart.test(ref)) {
      return r;
    }
    r[$_set]("server", this[_httpServer$][_toJSON$](true));
    try {
      r[$_set]("socket", dart.dsend(this[_socket$0], _toJSON$, [true]));
    } catch (e) {
      let _ = dart.getThrown(e);
      r[$_set]("socket", new (IdentityMapOfStringL$StringL()).from(["id", this[_servicePath$], "type", "@Socket", "name", "UserSocket", "user_name", "UserSocket"]));
    }
    switch (this[_state$1]) {
      case 0:
      {
        r[$_set]("state", "Active");
        break;
      }
      case 1:
      {
        r[$_set]("state", "Idle");
        break;
      }
      case 2:
      {
        r[$_set]("state", "Closing");
        break;
      }
      case 3:
      {
        r[$_set]("state", "Detached");
        break;
      }
      default:
      {
        r[$_set]("state", "Unknown");
        break;
      }
    }
    return r;
  }
};
(_http._HttpConnection.new = function(_socket, _httpServer) {
  this[_state$1] = 1;
  this[_subscription$0] = null;
  this[_idleMark] = false;
  this[_streamFuture] = null;
  this[_socket$0] = _socket;
  this[_httpServer$] = _httpServer;
  this[_httpParser] = _http._HttpParser.requestParser();
  _http._HttpConnection.__proto__.new.call(this);
  _http._HttpConnection._connections[$_set](this[_serviceId$], this);
  this[_httpParser].listenToStream(StreamOfUint8ListL().as(this[_socket$0]));
  this[_subscription$0] = this[_httpParser].listen(dart.fn(incoming => {
    this[_httpServer$][_markActive](this);
    incoming.dataDone.then(core.Null, dart.fn(closing => {
      if (dart.dtest(closing)) this.destroy();
    }, dynamicToNullN()));
    this[_subscription$0].pause();
    this[_state$1] = 0;
    let outgoing = new _http._HttpOutgoing.new(io.Socket.as(this[_socket$0]));
    let response = new _http._HttpResponse.new(incoming.uri, incoming.headers.protocolVersion, outgoing, this[_httpServer$].defaultResponseHeaders, this[_httpServer$].serverHeader);
    if (incoming.statusCode === 400) {
      response.statusCode = 400;
    }
    let request = new _http._HttpRequest.new(response, incoming, this[_httpServer$], this);
    this[_streamFuture] = outgoing.done.then(dart.dynamic, dart.fn(_ => {
      response.deadline = null;
      if (this[_state$1] === 3) return;
      if (dart.test(response.persistentConnection) && dart.test(request.persistentConnection) && dart.test(incoming.fullBodyRead) && !dart.test(this[_httpParser].upgrade) && !dart.test(this[_httpServer$].closed)) {
        this[_state$1] = 1;
        this[_idleMark] = false;
        this[_httpServer$][_markIdle](this);
        this[_subscription$0].resume();
      } else {
        this.destroy();
      }
    }, SocketLToNullN()), {onError: dart.fn(_ => {
        this.destroy();
      }, dynamicToNullN())});
    outgoing.ignoreBody = request.method === "HEAD";
    response[_httpRequest$] = request;
    this[_httpServer$][_handleRequest](request);
  }, _HttpIncomingLToNullN()), {onDone: dart.fn(() => {
      this.destroy();
    }, VoidToNullN()), onError: dart.fn(error => {
      this.destroy();
    }, dynamicToNullN())});
}).prototype = _http._HttpConnection.prototype;
dart.addTypeTests(_http._HttpConnection);
dart.addTypeCaches(_http._HttpConnection);
dart.setMethodSignature(_http._HttpConnection, () => ({
  __proto__: dart.getMethods(_http._HttpConnection.__proto__),
  markIdle: dart.fnType(dart.void, []),
  destroy: dart.fnType(dart.void, []),
  detachSocket: dart.fnType(async.Future$(io.Socket), []),
  [_toJSON$]: dart.fnType(core.Map, [core.bool])
}));
dart.setGetterSignature(_http._HttpConnection, () => ({
  __proto__: dart.getGetters(_http._HttpConnection.__proto__),
  isMarkedIdle: core.bool,
  connectionInfo: _http.HttpConnectionInfo,
  [_isActive]: core.bool,
  [_isIdle]: core.bool,
  [_isClosing]: core.bool,
  [_serviceTypePath$]: core.String,
  [_serviceTypeName$]: core.String
}));
dart.setLibraryUri(_http._HttpConnection, L76);
dart.setFieldSignature(_http._HttpConnection, () => ({
  __proto__: dart.getFields(_http._HttpConnection.__proto__),
  [_socket$0]: dart.finalFieldType(dart.dynamic),
  [_httpServer$]: dart.finalFieldType(_http._HttpServer),
  [_httpParser]: dart.finalFieldType(_http._HttpParser),
  [_state$1]: dart.fieldType(core.int),
  [_subscription$0]: dart.fieldType(async.StreamSubscription),
  [_idleMark]: dart.fieldType(core.bool),
  [_streamFuture]: dart.fieldType(async.Future)
}));
dart.defineLazy(_http._HttpConnection, {
  /*_http._HttpConnection._ACTIVE*/get _ACTIVE() {
    return 0;
  },
  /*_http._HttpConnection._IDLE*/get _IDLE() {
    return 1;
  },
  /*_http._HttpConnection._CLOSING*/get _CLOSING() {
    return 2;
  },
  /*_http._HttpConnection._DETACHED*/get _DETACHED() {
    return 3;
  },
  /*_http._HttpConnection._connections*/get _connections() {
    return new (IdentityMapOfintL$_HttpConnectionL()).new();
  },
  set _connections(_) {}
}, true);
var _activeConnections = dart.privateName(_http, "_activeConnections");
var _idleConnections = dart.privateName(_http, "_idleConnections");
var _serverSocket$ = dart.privateName(_http, "_serverSocket");
var _closeServer$ = dart.privateName(_http, "_closeServer");
var C473;
var _maybePerformCleanup$ = dart.privateName(_http, "_maybePerformCleanup");
const Stream__ServiceObject$36 = class Stream__ServiceObject extends async.Stream$(_http.HttpRequest) {};
(Stream__ServiceObject$36.new = function() {
  _http._ServiceObject.new.call(this);
  Stream__ServiceObject$36.__proto__.new.call(this);
}).prototype = Stream__ServiceObject$36.prototype;
(Stream__ServiceObject$36._internal = function() {
  _http._ServiceObject.new.call(this);
  Stream__ServiceObject$36.__proto__._internal.call(this);
}).prototype = Stream__ServiceObject$36.prototype;
dart.applyMixin(Stream__ServiceObject$36, _http._ServiceObject);
_http._HttpServer = class _HttpServer extends Stream__ServiceObject$36 {
  static bind(address, port, backlog, v6Only, shared) {
    return io.ServerSocket.bind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared}).then(_http.HttpServer, dart.fn(socket => new _http._HttpServer.__(socket, true), ServerSocketLTo_HttpServerL()));
  }
  static bindSecure(address, port, context, backlog, v6Only, requestClientCertificate, shared) {
    return io.SecureServerSocket.bind(address, port, context, {backlog: backlog, v6Only: v6Only, requestClientCertificate: requestClientCertificate, shared: shared}).then(_http.HttpServer, dart.fn(socket => new _http._HttpServer.__(socket, true), SecureServerSocketLTo_HttpServerL()));
  }
  static _initDefaultResponseHeaders() {
    let defaultResponseHeaders = new _http._HttpHeaders.new("1.1");
    defaultResponseHeaders.contentType = _http.ContentType.text;
    defaultResponseHeaders.set("X-Frame-Options", "SAMEORIGIN");
    defaultResponseHeaders.set("X-Content-Type-Options", "nosniff");
    defaultResponseHeaders.set("X-XSS-Protection", "1; mode=block");
    return defaultResponseHeaders;
  }
  get idleTimeout() {
    return this[_idleTimeout];
  }
  set idleTimeout(duration) {
    if (this[_idleTimer] != null) {
      this[_idleTimer].cancel();
      this[_idleTimer] = null;
    }
    this[_idleTimeout] = duration;
    if (this[_idleTimeout] != null) {
      this[_idleTimer] = async.Timer.periodic(this[_idleTimeout], dart.fn(_ => {
        for (let idle of this[_idleConnections][$toList]()) {
          if (dart.test(idle.isMarkedIdle)) {
            idle.destroy();
          } else {
            idle.markIdle();
          }
        }
      }, TimerLToNullN()));
    }
  }
  listen(onData, opts) {
    let onError = opts && 'onError' in opts ? opts.onError : null;
    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
    dart.dsend(this[_serverSocket$], 'listen', [dart.fn(socket => {
        socket.setOption(io.SocketOption.tcpNoDelay, true);
        let connection = new _http._HttpConnection.new(socket, this);
        this[_idleConnections].add(connection);
      }, SocketLToNullN())], {onError: dart.fn((error, stackTrace) => {
        if (!io.HandshakeException.is(error)) {
          this[_controller$1].addError(error, core.StackTrace.as(stackTrace));
        }
      }, dynamicAnddynamicToNullN()), onDone: dart.bind(this[_controller$1], 'close')});
    return this[_controller$1].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
  }
  close(opts) {
    let force = opts && 'force' in opts ? opts.force : false;
    this.closed = true;
    let result = null;
    if (this[_serverSocket$] != null && dart.test(this[_closeServer$])) {
      result = async.Future.as(dart.dsend(this[_serverSocket$], 'close', []));
    } else {
      result = async.Future.value();
    }
    this.idleTimeout = null;
    if (dart.test(force)) {
      for (let c of this[_activeConnections][$toList]()) {
        c.destroy();
      }
      if (!dart.test(this[_activeConnections].isEmpty)) dart.assertFailed(null, L79, 2801, 14, "_activeConnections.isEmpty");
    }
    for (let c of this[_idleConnections][$toList]()) {
      c.destroy();
    }
    this[_maybePerformCleanup$]();
    return result;
  }
  [_maybePerformCleanup$]() {
    if (dart.test(this.closed) && dart.test(this[_idleConnections].isEmpty) && dart.test(this[_activeConnections].isEmpty) && this[_sessionManagerInstance] != null) {
      this[_sessionManagerInstance].close();
      this[_sessionManagerInstance] = null;
      _http._HttpServer._servers[$remove](this[_serviceId$]);
    }
  }
  get port() {
    if (dart.test(this.closed)) dart.throw(new _http.HttpException.new("HttpServer is not bound to a socket"));
    return core.int.as(dart.dload(this[_serverSocket$], 'port'));
  }
  get address() {
    if (dart.test(this.closed)) dart.throw(new _http.HttpException.new("HttpServer is not bound to a socket"));
    return io.InternetAddress.as(dart.dload(this[_serverSocket$], 'address'));
  }
  set sessionTimeout(timeout) {
    this[_sessionManager$].sessionTimeout = timeout;
  }
  [_handleRequest](request) {
    if (!dart.test(this.closed)) {
      this[_controller$1].add(request);
    } else {
      request[_httpConnection$].destroy();
    }
  }
  [_connectionClosed](connection) {
    connection.unlink();
    this[_maybePerformCleanup$]();
  }
  [_markIdle](connection) {
    this[_activeConnections].remove(connection);
    this[_idleConnections].add(connection);
  }
  [_markActive](connection) {
    this[_idleConnections].remove(connection);
    this[_activeConnections].add(connection);
  }
  get [_sessionManager$]() {
    if (this[_sessionManagerInstance] == null) {
      this[_sessionManagerInstance] = new _http._HttpSessionManager.new();
    }
    return this[_sessionManagerInstance];
  }
  connectionsInfo() {
    let result = new _http.HttpConnectionsInfo.new();
    result.total = dart.notNull(this[_activeConnections].length) + dart.notNull(this[_idleConnections].length);
    this[_activeConnections].forEach(dart.fn(conn => {
      let t143, t143$;
      if (dart.test(conn[_isActive])) {
        t143 = result;
        t143.active = dart.notNull(t143.active) + 1;
      } else {
        if (!dart.test(conn[_isClosing])) dart.assertFailed(null, L79, 2874, 16, "conn._isClosing");
        t143$ = result;
        t143$.closing = dart.notNull(t143$.closing) + 1;
      }
    }, _HttpConnectionLToNullN()));
    this[_idleConnections].forEach(dart.fn(conn => {
      let t143;
      t143 = result;
      t143.idle = dart.notNull(t143.idle) + 1;
      if (!dart.test(conn[_isIdle])) dart.assertFailed(null, L79, 2880, 14, "conn._isIdle");
    }, _HttpConnectionLToNullN()));
    return result;
  }
  get [_serviceTypePath$]() {
    return "io/http/servers";
  }
  get [_serviceTypeName$]() {
    return "HttpServer";
  }
  [_toJSON$](ref) {
    let r = new (IdentityMapOfStringL$dynamic()).from(["id", this[_servicePath$], "type", this[_serviceType$](ref), "name", dart.str(this.address.host) + ":" + dart.str(this.port), "user_name", dart.str(this.address.host) + ":" + dart.str(this.port)]);
    if (dart.test(ref)) {
      return r;
    }
    try {
      r[$_set]("socket", dart.dsend(this[_serverSocket$], _toJSON$, [true]));
    } catch (e) {
      let _ = dart.getThrown(e);
      r[$_set]("socket", new (IdentityMapOfStringL$StringL()).from(["id", this[_servicePath$], "type", "@Socket", "name", "UserSocket", "user_name", "UserSocket"]));
    }
    r[$_set]("port", this.port);
    r[$_set]("address", this.address.host);
    r[$_set]("active", this[_activeConnections][$map](core.Map, dart.fn(c => c[_toJSON$](true), _HttpConnectionLToMapL()))[$toList]());
    r[$_set]("idle", this[_idleConnections][$map](core.Map, dart.fn(c => c[_toJSON$](true), _HttpConnectionLToMapL()))[$toList]());
    r[$_set]("closed", this.closed);
    return r;
  }
};
(_http._HttpServer.__ = function(_serverSocket, _closeServer) {
  this.serverHeader = null;
  this.defaultResponseHeaders = _http._HttpServer._initDefaultResponseHeaders();
  this.autoCompress = false;
  this[_idleTimeout] = null;
  this[_idleTimer] = null;
  this[_sessionManagerInstance] = null;
  this.closed = false;
  this[_activeConnections] = new (LinkedListOf_HttpConnectionL()).new();
  this[_idleConnections] = new (LinkedListOf_HttpConnectionL()).new();
  this[_controller$1] = null;
  this[_serverSocket$] = _serverSocket;
  this[_closeServer$] = _closeServer;
  _http._HttpServer.__proto__.new.call(this);
  this[_controller$1] = StreamControllerOfHttpRequestL().new({sync: true, onCancel: dart.bind(this, 'close')});
  this.idleTimeout = C473 || CT.C473;
  _http._HttpServer._servers[$_set](this[_serviceId$], this);
}).prototype = _http._HttpServer.prototype;
(_http._HttpServer.listenOn = function(_serverSocket) {
  this.serverHeader = null;
  this.defaultResponseHeaders = _http._HttpServer._initDefaultResponseHeaders();
  this.autoCompress = false;
  this[_idleTimeout] = null;
  this[_idleTimer] = null;
  this[_sessionManagerInstance] = null;
  this.closed = false;
  this[_activeConnections] = new (LinkedListOf_HttpConnectionL()).new();
  this[_idleConnections] = new (LinkedListOf_HttpConnectionL()).new();
  this[_controller$1] = null;
  this[_serverSocket$] = _serverSocket;
  this[_closeServer$] = false;
  _http._HttpServer.__proto__.new.call(this);
  this[_controller$1] = StreamControllerOfHttpRequestL().new({sync: true, onCancel: dart.bind(this, 'close')});
  this.idleTimeout = C473 || CT.C473;
  _http._HttpServer._servers[$_set](this[_serviceId$], this);
}).prototype = _http._HttpServer.prototype;
dart.addTypeTests(_http._HttpServer);
dart.addTypeCaches(_http._HttpServer);
_http._HttpServer[dart.implements] = () => [_http.HttpServer];
dart.setMethodSignature(_http._HttpServer, () => ({
  __proto__: dart.getMethods(_http._HttpServer.__proto__),
  listen: dart.fnType(async.StreamSubscription$(_http.HttpRequest), [dart.fnType(dart.void, [_http.HttpRequest])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {}),
  close: dart.fnType(async.Future, [], {force: core.bool}, {}),
  [_maybePerformCleanup$]: dart.fnType(dart.void, []),
  [_handleRequest]: dart.fnType(dart.void, [_http._HttpRequest]),
  [_connectionClosed]: dart.fnType(dart.void, [_http._HttpConnection]),
  [_markIdle]: dart.fnType(dart.void, [_http._HttpConnection]),
  [_markActive]: dart.fnType(dart.void, [_http._HttpConnection]),
  connectionsInfo: dart.fnType(_http.HttpConnectionsInfo, []),
  [_toJSON$]: dart.fnType(core.Map$(core.String, dart.dynamic), [core.bool])
}));
dart.setGetterSignature(_http._HttpServer, () => ({
  __proto__: dart.getGetters(_http._HttpServer.__proto__),
  idleTimeout: core.Duration,
  port: core.int,
  address: io.InternetAddress,
  [_sessionManager$]: _http._HttpSessionManager,
  [_serviceTypePath$]: core.String,
  [_serviceTypeName$]: core.String
}));
dart.setSetterSignature(_http._HttpServer, () => ({
  __proto__: dart.getSetters(_http._HttpServer.__proto__),
  idleTimeout: core.Duration,
  sessionTimeout: core.int
}));
dart.setLibraryUri(_http._HttpServer, L76);
dart.setFieldSignature(_http._HttpServer, () => ({
  __proto__: dart.getFields(_http._HttpServer.__proto__),
  serverHeader: dart.fieldType(core.String),
  defaultResponseHeaders: dart.finalFieldType(_http.HttpHeaders),
  autoCompress: dart.fieldType(core.bool),
  [_idleTimeout]: dart.fieldType(core.Duration),
  [_idleTimer]: dart.fieldType(async.Timer),
  [_sessionManagerInstance]: dart.fieldType(_http._HttpSessionManager),
  closed: dart.fieldType(core.bool),
  [_serverSocket$]: dart.finalFieldType(dart.dynamic),
  [_closeServer$]: dart.finalFieldType(core.bool),
  [_activeConnections]: dart.finalFieldType(collection.LinkedList$(_http._HttpConnection)),
  [_idleConnections]: dart.finalFieldType(collection.LinkedList$(_http._HttpConnection)),
  [_controller$1]: dart.fieldType(async.StreamController$(_http.HttpRequest))
}));
dart.defineLazy(_http._HttpServer, {
  /*_http._HttpServer._servers*/get _servers() {
    return new (LinkedMapOfintL$_HttpServerL()).new();
  },
  set _servers(_) {}
}, true);
_http._ProxyConfiguration = class _ProxyConfiguration extends core.Object {
  get proxies() {
    return this[proxies];
  }
  set proxies(value) {
    super.proxies = value;
  }
};
(_http._ProxyConfiguration.new = function(configuration) {
  this[proxies] = JSArrayOf_ProxyL().of([]);
  if (configuration == null) {
    dart.throw(new _http.HttpException.new("Invalid proxy configuration " + dart.str(configuration)));
  }
  let list = configuration[$split](";");
  list[$forEach](dart.fn(proxy => {
    proxy = proxy[$trim]();
    if (!proxy[$isEmpty]) {
      if (proxy[$startsWith]("PROXY ")) {
        let username = null;
        let password = null;
        proxy = proxy[$substring]("PROXY ".length)[$trim]();
        let at = proxy[$indexOf]("@");
        if (at !== -1) {
          let userinfo = proxy[$substring](0, at)[$trim]();
          proxy = proxy[$substring](at + 1)[$trim]();
          let colon = userinfo[$indexOf](":");
          if (colon === -1 || colon === 0 || colon === proxy.length - 1) {
            dart.throw(new _http.HttpException.new("Invalid proxy configuration " + dart.str(configuration)));
          }
          username = userinfo[$substring](0, colon)[$trim]();
          password = userinfo[$substring](colon + 1)[$trim]();
        }
        let colon = proxy[$lastIndexOf](":");
        if (colon === -1 || colon === 0 || colon === proxy.length - 1) {
          dart.throw(new _http.HttpException.new("Invalid proxy configuration " + dart.str(configuration)));
        }
        let host = proxy[$substring](0, colon)[$trim]();
        if (host[$startsWith]("[") && host[$endsWith]("]")) {
          host = host[$substring](1, host.length - 1);
        }
        let portString = proxy[$substring](colon + 1)[$trim]();
        let port = null;
        try {
          port = core.int.parse(portString);
        } catch (e) {
          let ex = dart.getThrown(e);
          if (core.FormatException.is(ex)) {
            dart.throw(new _http.HttpException.new("Invalid proxy configuration " + dart.str(configuration) + ", " + "invalid port '" + portString + "'"));
          } else
            throw e;
        }
        this.proxies[$add](new _http._Proxy.new(host, port, username, password));
      } else if (proxy[$trim]() === "DIRECT") {
        this.proxies[$add](new _http._Proxy.direct());
      } else {
        dart.throw(new _http.HttpException.new("Invalid proxy configuration " + dart.str(configuration)));
      }
    }
  }, StringLToNullN()));
}).prototype = _http._ProxyConfiguration.prototype;
(_http._ProxyConfiguration.direct = function() {
  this[proxies] = C471 || CT.C471;
  ;
}).prototype = _http._ProxyConfiguration.prototype;
dart.addTypeTests(_http._ProxyConfiguration);
dart.addTypeCaches(_http._ProxyConfiguration);
const proxies = _ProxyConfiguration_proxies;
dart.setLibraryUri(_http._ProxyConfiguration, L76);
dart.setFieldSignature(_http._ProxyConfiguration, () => ({
  __proto__: dart.getFields(_http._ProxyConfiguration.__proto__),
  proxies: dart.finalFieldType(core.List$(_http._Proxy))
}));
dart.defineLazy(_http._ProxyConfiguration, {
  /*_http._ProxyConfiguration.PROXY_PREFIX*/get PROXY_PREFIX() {
    return "PROXY ";
  },
  /*_http._ProxyConfiguration.DIRECT_PREFIX*/get DIRECT_PREFIX() {
    return "DIRECT";
  }
}, true);
_http._Proxy = class _Proxy extends core.Object {
  get host() {
    return this[host$];
  }
  set host(value) {
    super.host = value;
  }
  get port() {
    return this[port$1];
  }
  set port(value) {
    super.port = value;
  }
  get username() {
    return this[username$];
  }
  set username(value) {
    super.username = value;
  }
  get password() {
    return this[password$];
  }
  set password(value) {
    super.password = value;
  }
  get isDirect() {
    return this[isDirect];
  }
  set isDirect(value) {
    super.isDirect = value;
  }
  get isAuthenticated() {
    return this.username != null;
  }
};
(_http._Proxy.new = function(host, port, username, password) {
  this[host$] = host;
  this[port$1] = port;
  this[username$] = username;
  this[password$] = password;
  this[isDirect] = false;
  ;
}).prototype = _http._Proxy.prototype;
(_http._Proxy.direct = function() {
  this[host$] = null;
  this[port$1] = null;
  this[username$] = null;
  this[password$] = null;
  this[isDirect] = true;
  ;
}).prototype = _http._Proxy.prototype;
dart.addTypeTests(_http._Proxy);
dart.addTypeCaches(_http._Proxy);
const host$ = _Proxy_host;
const port$1 = _Proxy_port;
const username$ = _Proxy_username;
const password$ = _Proxy_password;
const isDirect = _Proxy_isDirect;
dart.setGetterSignature(_http._Proxy, () => ({
  __proto__: dart.getGetters(_http._Proxy.__proto__),
  isAuthenticated: core.bool
}));
dart.setLibraryUri(_http._Proxy, L76);
dart.setFieldSignature(_http._Proxy, () => ({
  __proto__: dart.getFields(_http._Proxy.__proto__),
  host: dart.finalFieldType(core.String),
  port: dart.finalFieldType(core.int),
  username: dart.finalFieldType(core.String),
  password: dart.finalFieldType(core.String),
  isDirect: dart.finalFieldType(core.bool)
}));
_http._HttpConnectionInfo = class _HttpConnectionInfo extends core.Object {
  static create(socket) {
    let t146;
    if (socket == null) return null;
    try {
      let info = new _http._HttpConnectionInfo.new();
      t146 = info;
      t146.remoteAddress = socket.remoteAddress;
      t146.remotePort = socket.remotePort;
      t146.localPort = socket.port;
      return t146;
    } catch (e$) {
      let e = dart.getThrown(e$);
    }
    return null;
  }
};
(_http._HttpConnectionInfo.new = function() {
  this.remoteAddress = null;
  this.remotePort = null;
  this.localPort = null;
  ;
}).prototype = _http._HttpConnectionInfo.prototype;
dart.addTypeTests(_http._HttpConnectionInfo);
dart.addTypeCaches(_http._HttpConnectionInfo);
_http._HttpConnectionInfo[dart.implements] = () => [_http.HttpConnectionInfo];
dart.setLibraryUri(_http._HttpConnectionInfo, L76);
dart.setFieldSignature(_http._HttpConnectionInfo, () => ({
  __proto__: dart.getFields(_http._HttpConnectionInfo.__proto__),
  remoteAddress: dart.fieldType(io.InternetAddress),
  remotePort: dart.fieldType(core.int),
  localPort: dart.fieldType(core.int)
}));
_http._DetachedSocket = class _DetachedSocket extends async.Stream$(typed_data.Uint8List) {
  listen(onData, opts) {
    let onError = opts && 'onError' in opts ? opts.onError : null;
    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
    return this[_incoming$].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
  }
  get encoding() {
    return this[_socket$0].encoding;
  }
  set encoding(value) {
    this[_socket$0].encoding = value;
  }
  write(obj) {
    this[_socket$0].write(obj);
  }
  writeln(obj = "") {
    this[_socket$0].writeln(obj);
  }
  writeCharCode(charCode) {
    this[_socket$0].writeCharCode(charCode);
  }
  writeAll(objects, separator = "") {
    this[_socket$0].writeAll(objects, separator);
  }
  add(bytes) {
    ListOfintL().as(bytes);
    this[_socket$0].add(bytes);
  }
  addError(error, stackTrace = null) {
    return this[_socket$0].addError(error, stackTrace);
  }
  addStream(stream) {
    StreamOfListLOfintL().as(stream);
    return this[_socket$0].addStream(stream);
  }
  destroy() {
    this[_socket$0].destroy();
  }
  flush() {
    return this[_socket$0].flush();
  }
  close() {
    return this[_socket$0].close();
  }
  get done() {
    return this[_socket$0].done;
  }
  get port() {
    return this[_socket$0].port;
  }
  get address() {
    return this[_socket$0].address;
  }
  get remoteAddress() {
    return this[_socket$0].remoteAddress;
  }
  get remotePort() {
    return this[_socket$0].remotePort;
  }
  setOption(option, enabled) {
    return this[_socket$0].setOption(option, enabled);
  }
  getRawOption(option) {
    return this[_socket$0].getRawOption(option);
  }
  setRawOption(option) {
    this[_socket$0].setRawOption(option);
  }
  [_toJSON$](ref) {
    return core.Map.as(dart.dsend(this[_socket$0], _toJSON$, [ref]));
  }
};
(_http._DetachedSocket.new = function(_socket, _incoming) {
  this[_socket$0] = _socket;
  this[_incoming$] = _incoming;
  _http._DetachedSocket.__proto__.new.call(this);
  ;
}).prototype = _http._DetachedSocket.prototype;
dart.addTypeTests(_http._DetachedSocket);
dart.addTypeCaches(_http._DetachedSocket);
_http._DetachedSocket[dart.implements] = () => [io.Socket];
dart.setMethodSignature(_http._DetachedSocket, () => ({
  __proto__: dart.getMethods(_http._DetachedSocket.__proto__),
  listen: dart.fnType(async.StreamSubscription$(typed_data.Uint8List), [dart.fnType(dart.void, [typed_data.Uint8List])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {}),
  write: dart.fnType(dart.void, [core.Object]),
  writeln: dart.fnType(dart.void, [], [core.Object]),
  writeCharCode: dart.fnType(dart.void, [core.int]),
  writeAll: dart.fnType(dart.void, [core.Iterable], [core.String]),
  add: dart.fnType(dart.void, [core.Object]),
  addError: dart.fnType(dart.void, [core.Object], [core.StackTrace]),
  addStream: dart.fnType(async.Future, [core.Object]),
  destroy: dart.fnType(dart.void, []),
  flush: dart.fnType(async.Future, []),
  close: dart.fnType(async.Future, []),
  setOption: dart.fnType(core.bool, [io.SocketOption, core.bool]),
  getRawOption: dart.fnType(typed_data.Uint8List, [io.RawSocketOption]),
  setRawOption: dart.fnType(dart.void, [io.RawSocketOption]),
  [_toJSON$]: dart.fnType(core.Map, [core.bool])
}));
dart.setGetterSignature(_http._DetachedSocket, () => ({
  __proto__: dart.getGetters(_http._DetachedSocket.__proto__),
  encoding: convert.Encoding,
  done: async.Future,
  port: core.int,
  address: io.InternetAddress,
  remoteAddress: io.InternetAddress,
  remotePort: core.int
}));
dart.setSetterSignature(_http._DetachedSocket, () => ({
  __proto__: dart.getSetters(_http._DetachedSocket.__proto__),
  encoding: convert.Encoding
}));
dart.setLibraryUri(_http._DetachedSocket, L76);
dart.setFieldSignature(_http._DetachedSocket, () => ({
  __proto__: dart.getFields(_http._DetachedSocket.__proto__),
  [_incoming$]: dart.finalFieldType(async.Stream$(typed_data.Uint8List)),
  [_socket$0]: dart.finalFieldType(io.Socket)
}));
var _scheme = dart.privateName(_http, "_scheme");
var _scheme$ = dart.privateName(_http, "_AuthenticationScheme._scheme");
var C474;
var C475;
var C476;
_http._AuthenticationScheme = class _AuthenticationScheme extends core.Object {
  get [_scheme]() {
    return this[_scheme$];
  }
  set [_scheme](value) {
    super[_scheme] = value;
  }
  static fromString(scheme) {
    if (scheme[$toLowerCase]() === "basic") return _http._AuthenticationScheme.BASIC;
    if (scheme[$toLowerCase]() === "digest") return _http._AuthenticationScheme.DIGEST;
    return _http._AuthenticationScheme.UNKNOWN;
  }
  toString() {
    if (this[$_equals](_http._AuthenticationScheme.BASIC)) return "Basic";
    if (this[$_equals](_http._AuthenticationScheme.DIGEST)) return "Digest";
    return "Unknown";
  }
};
(_http._AuthenticationScheme.new = function(_scheme) {
  this[_scheme$] = _scheme;
  ;
}).prototype = _http._AuthenticationScheme.prototype;
dart.addTypeTests(_http._AuthenticationScheme);
dart.addTypeCaches(_http._AuthenticationScheme);
dart.setLibraryUri(_http._AuthenticationScheme, L76);
dart.setFieldSignature(_http._AuthenticationScheme, () => ({
  __proto__: dart.getFields(_http._AuthenticationScheme.__proto__),
  [_scheme]: dart.finalFieldType(core.int)
}));
dart.defineExtensionMethods(_http._AuthenticationScheme, ['toString']);
dart.defineLazy(_http._AuthenticationScheme, {
  /*_http._AuthenticationScheme.UNKNOWN*/get UNKNOWN() {
    return C474 || CT.C474;
  },
  /*_http._AuthenticationScheme.BASIC*/get BASIC() {
    return C475 || CT.C475;
  },
  /*_http._AuthenticationScheme.DIGEST*/get DIGEST() {
    return C476 || CT.C476;
  }
}, true);
_http._Credentials = class _Credentials extends core.Object {
  get scheme() {
    return this.credentials.scheme;
  }
};
(_http._Credentials.new = function(credentials, realm) {
  let t147;
  this.used = false;
  this.ha1 = null;
  this.nonce = null;
  this.algorithm = null;
  this.qop = null;
  this.nonceCount = null;
  this.credentials = credentials;
  this.realm = realm;
  if (dart.equals(this.credentials.scheme, _http._AuthenticationScheme.DIGEST)) {
    let creds = _http._HttpClientDigestCredentials.as(this.credentials);
    let hasher = (t147 = new _http._MD5.new(), t147.add(convert.utf8.encode(creds.username)), t147.add(JSArrayOfintL().of([58])), t147.add(this.realm[$codeUnits]), t147.add(JSArrayOfintL().of([58])), t147.add(convert.utf8.encode(creds.password)), t147);
    this.ha1 = _http._CryptoUtils.bytesToHex(hasher.close());
  }
}).prototype = _http._Credentials.prototype;
dart.addTypeTests(_http._Credentials);
dart.addTypeCaches(_http._Credentials);
dart.setGetterSignature(_http._Credentials, () => ({
  __proto__: dart.getGetters(_http._Credentials.__proto__),
  scheme: _http._AuthenticationScheme
}));
dart.setLibraryUri(_http._Credentials, L76);
dart.setFieldSignature(_http._Credentials, () => ({
  __proto__: dart.getFields(_http._Credentials.__proto__),
  credentials: dart.fieldType(_http._HttpClientCredentials),
  realm: dart.fieldType(core.String),
  used: dart.fieldType(core.bool),
  ha1: dart.fieldType(core.String),
  nonce: dart.fieldType(core.String),
  algorithm: dart.fieldType(core.String),
  qop: dart.fieldType(core.String),
  nonceCount: dart.fieldType(core.int)
}));
_http._SiteCredentials = class _SiteCredentials extends _http._Credentials {
  applies(uri, scheme) {
    if (scheme != null && !dart.equals(this.credentials.scheme, scheme)) return false;
    if (uri.host != this.uri.host) return false;
    let thisPort = this.uri.port === 0 ? 80 : this.uri.port;
    let otherPort = uri.port === 0 ? 80 : uri.port;
    if (otherPort != thisPort) return false;
    return uri.path[$startsWith](this.uri.path);
  }
  authorize(request) {
    if (dart.equals(this.credentials.scheme, _http._AuthenticationScheme.DIGEST) && this.nonce == null) {
      return;
    }
    this.credentials.authorize(this, request);
    this.used = true;
  }
};
(_http._SiteCredentials.new = function(uri, realm, creds) {
  this.uri = uri;
  _http._SiteCredentials.__proto__.new.call(this, creds, core.String.as(realm));
  ;
}).prototype = _http._SiteCredentials.prototype;
dart.addTypeTests(_http._SiteCredentials);
dart.addTypeCaches(_http._SiteCredentials);
dart.setMethodSignature(_http._SiteCredentials, () => ({
  __proto__: dart.getMethods(_http._SiteCredentials.__proto__),
  applies: dart.fnType(core.bool, [core.Uri, _http._AuthenticationScheme]),
  authorize: dart.fnType(dart.void, [_http.HttpClientRequest])
}));
dart.setLibraryUri(_http._SiteCredentials, L76);
dart.setFieldSignature(_http._SiteCredentials, () => ({
  __proto__: dart.getFields(_http._SiteCredentials.__proto__),
  uri: dart.fieldType(core.Uri)
}));
_http._ProxyCredentials = class _ProxyCredentials extends _http._Credentials {
  applies(proxy, scheme) {
    if (scheme != null && !dart.equals(this.credentials.scheme, scheme)) return false;
    return proxy.host == this.host && proxy.port == this.port;
  }
  authorize(request) {
    if (dart.equals(this.credentials.scheme, _http._AuthenticationScheme.DIGEST) && this.nonce == null) {
      return;
    }
    this.credentials.authorizeProxy(this, request);
  }
};
(_http._ProxyCredentials.new = function(host, port, realm, creds) {
  this.host = host;
  this.port = port;
  _http._ProxyCredentials.__proto__.new.call(this, creds, core.String.as(realm));
  ;
}).prototype = _http._ProxyCredentials.prototype;
dart.addTypeTests(_http._ProxyCredentials);
dart.addTypeCaches(_http._ProxyCredentials);
dart.setMethodSignature(_http._ProxyCredentials, () => ({
  __proto__: dart.getMethods(_http._ProxyCredentials.__proto__),
  applies: dart.fnType(core.bool, [_http._Proxy, _http._AuthenticationScheme]),
  authorize: dart.fnType(dart.void, [_http.HttpClientRequest])
}));
dart.setLibraryUri(_http._ProxyCredentials, L76);
dart.setFieldSignature(_http._ProxyCredentials, () => ({
  __proto__: dart.getFields(_http._ProxyCredentials.__proto__),
  host: dart.fieldType(core.String),
  port: dart.fieldType(core.int)
}));
_http._HttpClientCredentials = class _HttpClientCredentials extends core.Object {};
(_http._HttpClientCredentials.new = function() {
  ;
}).prototype = _http._HttpClientCredentials.prototype;
dart.addTypeTests(_http._HttpClientCredentials);
dart.addTypeCaches(_http._HttpClientCredentials);
_http._HttpClientCredentials[dart.implements] = () => [_http.HttpClientCredentials];
dart.setLibraryUri(_http._HttpClientCredentials, L76);
_http._HttpClientBasicCredentials = class _HttpClientBasicCredentials extends _http._HttpClientCredentials {
  get scheme() {
    return _http._AuthenticationScheme.BASIC;
  }
  authorization() {
    let auth = _http._CryptoUtils.bytesToBase64(convert.utf8.encode(dart.str(this.username) + ":" + dart.str(this.password)));
    return "Basic " + dart.str(auth);
  }
  authorize(_, request) {
    request.headers.set("authorization", this.authorization());
  }
  authorizeProxy(_, request) {
    request.headers.set("proxy-authorization", this.authorization());
  }
};
(_http._HttpClientBasicCredentials.new = function(username, password) {
  this.username = username;
  this.password = password;
  ;
}).prototype = _http._HttpClientBasicCredentials.prototype;
dart.addTypeTests(_http._HttpClientBasicCredentials);
dart.addTypeCaches(_http._HttpClientBasicCredentials);
_http._HttpClientBasicCredentials[dart.implements] = () => [_http.HttpClientBasicCredentials];
dart.setMethodSignature(_http._HttpClientBasicCredentials, () => ({
  __proto__: dart.getMethods(_http._HttpClientBasicCredentials.__proto__),
  authorization: dart.fnType(core.String, []),
  authorize: dart.fnType(dart.void, [_http._Credentials, _http.HttpClientRequest]),
  authorizeProxy: dart.fnType(dart.void, [_http._ProxyCredentials, _http.HttpClientRequest])
}));
dart.setGetterSignature(_http._HttpClientBasicCredentials, () => ({
  __proto__: dart.getGetters(_http._HttpClientBasicCredentials.__proto__),
  scheme: _http._AuthenticationScheme
}));
dart.setLibraryUri(_http._HttpClientBasicCredentials, L76);
dart.setFieldSignature(_http._HttpClientBasicCredentials, () => ({
  __proto__: dart.getFields(_http._HttpClientBasicCredentials.__proto__),
  username: dart.fieldType(core.String),
  password: dart.fieldType(core.String)
}));
_http._HttpClientDigestCredentials = class _HttpClientDigestCredentials extends _http._HttpClientCredentials {
  get scheme() {
    return _http._AuthenticationScheme.DIGEST;
  }
  authorization(credentials, request) {
    let t147, t147$, t147$0, t147$1, t147$2, t147$3, t147$4;
    let requestUri = request[_requestUri]();
    let hasher = (t147 = new _http._MD5.new(), t147.add(request.method[$codeUnits]), t147.add(JSArrayOfintL().of([58])), t147.add(requestUri[$codeUnits]), t147);
    let ha2 = _http._CryptoUtils.bytesToHex(hasher.close());
    let qop = null;
    let cnonce = null;
    let nc = null;
    hasher = (t147$ = new _http._MD5.new(), t147$.add(credentials.ha1[$codeUnits]), t147$.add(JSArrayOfintL().of([58])), t147$);
    if (credentials.qop === "auth") {
      qop = credentials.qop;
      cnonce = _http._CryptoUtils.bytesToHex(_http._CryptoUtils.getRandomBytes(4));
      t147$0 = credentials;
      t147$0.nonceCount = dart.notNull(t147$0.nonceCount) + 1;
      nc = credentials.nonceCount[$toRadixString](16);
      nc = "00000000"[$substring](0, 8 - nc.length + 1) + dart.notNull(nc);
      t147$1 = hasher;
      t147$1.add(credentials.nonce[$codeUnits]);
      t147$1.add(JSArrayOfintL().of([58]));
      t147$1.add(nc[$codeUnits]);
      t147$1.add(JSArrayOfintL().of([58]));
      t147$1.add(cnonce[$codeUnits]);
      t147$1.add(JSArrayOfintL().of([58]));
      t147$1.add(credentials.qop[$codeUnits]);
      t147$1.add(JSArrayOfintL().of([58]));
      t147$1.add(ha2[$codeUnits]);
      t147$1;
    } else {
      t147$2 = hasher;
      t147$2.add(credentials.nonce[$codeUnits]);
      t147$2.add(JSArrayOfintL().of([58]));
      t147$2.add(ha2[$codeUnits]);
      t147$2;
    }
    let response = _http._CryptoUtils.bytesToHex(hasher.close());
    let buffer = (t147$3 = new core.StringBuffer.new(), t147$3.write("Digest "), t147$3.write("username=\"" + dart.str(this.username) + "\""), t147$3.write(", realm=\"" + dart.str(credentials.realm) + "\""), t147$3.write(", nonce=\"" + dart.str(credentials.nonce) + "\""), t147$3.write(", uri=\"" + dart.str(requestUri) + "\""), t147$3.write(", algorithm=\"" + dart.str(credentials.algorithm) + "\""), t147$3);
    if (qop === "auth") {
      t147$4 = buffer;
      t147$4.write(", qop=\"" + dart.str(qop) + "\"");
      t147$4.write(", cnonce=\"" + dart.str(cnonce) + "\"");
      t147$4.write(", nc=\"" + dart.str(nc) + "\"");
      t147$4;
    }
    buffer.write(", response=\"" + dart.str(response) + "\"");
    return dart.toString(buffer);
  }
  authorize(credentials, request) {
    request.headers.set("authorization", this.authorization(credentials, _http._HttpClientRequest.as(request)));
  }
  authorizeProxy(credentials, request) {
    request.headers.set("proxy-authorization", this.authorization(credentials, _http._HttpClientRequest.as(request)));
  }
};
(_http._HttpClientDigestCredentials.new = function(username, password) {
  this.username = username;
  this.password = password;
  ;
}).prototype = _http._HttpClientDigestCredentials.prototype;
dart.addTypeTests(_http._HttpClientDigestCredentials);
dart.addTypeCaches(_http._HttpClientDigestCredentials);
_http._HttpClientDigestCredentials[dart.implements] = () => [_http.HttpClientDigestCredentials];
dart.setMethodSignature(_http._HttpClientDigestCredentials, () => ({
  __proto__: dart.getMethods(_http._HttpClientDigestCredentials.__proto__),
  authorization: dart.fnType(core.String, [_http._Credentials, _http._HttpClientRequest]),
  authorize: dart.fnType(dart.void, [_http._Credentials, _http.HttpClientRequest]),
  authorizeProxy: dart.fnType(dart.void, [_http._ProxyCredentials, _http.HttpClientRequest])
}));
dart.setGetterSignature(_http._HttpClientDigestCredentials, () => ({
  __proto__: dart.getGetters(_http._HttpClientDigestCredentials.__proto__),
  scheme: _http._AuthenticationScheme
}));
dart.setLibraryUri(_http._HttpClientDigestCredentials, L76);
dart.setFieldSignature(_http._HttpClientDigestCredentials, () => ({
  __proto__: dart.getFields(_http._HttpClientDigestCredentials.__proto__),
  username: dart.fieldType(core.String),
  password: dart.fieldType(core.String)
}));
var statusCode$ = dart.privateName(_http, "_RedirectInfo.statusCode");
var method$ = dart.privateName(_http, "_RedirectInfo.method");
var location$ = dart.privateName(_http, "_RedirectInfo.location");
_http._RedirectInfo = class _RedirectInfo extends core.Object {
  get statusCode() {
    return this[statusCode$];
  }
  set statusCode(value) {
    super.statusCode = value;
  }
  get method() {
    return this[method$];
  }
  set method(value) {
    super.method = value;
  }
  get location() {
    return this[location$];
  }
  set location(value) {
    super.location = value;
  }
};
(_http._RedirectInfo.new = function(statusCode, method, location) {
  this[statusCode$] = statusCode;
  this[method$] = method;
  this[location$] = location;
  ;
}).prototype = _http._RedirectInfo.prototype;
dart.addTypeTests(_http._RedirectInfo);
dart.addTypeCaches(_http._RedirectInfo);
_http._RedirectInfo[dart.implements] = () => [_http.RedirectInfo];
dart.setLibraryUri(_http._RedirectInfo, L76);
dart.setFieldSignature(_http._RedirectInfo, () => ({
  __proto__: dart.getFields(_http._RedirectInfo.__proto__),
  statusCode: dart.finalFieldType(core.int),
  method: dart.finalFieldType(core.String),
  location: dart.finalFieldType(core.Uri)
}));
var C477;
var C478;
var C479;
var C480;
var C481;
_http._Const = class _Const extends core.Object {};
(_http._Const.new = function() {
  ;
}).prototype = _http._Const.prototype;
dart.addTypeTests(_http._Const);
dart.addTypeCaches(_http._Const);
dart.setLibraryUri(_http._Const, L76);
dart.defineLazy(_http._Const, {
  /*_http._Const.HTTP*/get HTTP() {
    return C477 || CT.C477;
  },
  /*_http._Const.HTTP1DOT*/get HTTP1DOT() {
    return C478 || CT.C478;
  },
  /*_http._Const.HTTP10*/get HTTP10() {
    return C479 || CT.C479;
  },
  /*_http._Const.HTTP11*/get HTTP11() {
    return C480 || CT.C480;
  },
  /*_http._Const.T*/get T() {
    return true;
  },
  /*_http._Const.F*/get F() {
    return false;
  },
  /*_http._Const.SEPARATOR_MAP*/get SEPARATOR_MAP() {
    return C481 || CT.C481;
  }
}, true);
_http._CharCode = class _CharCode extends core.Object {};
(_http._CharCode.new = function() {
  ;
}).prototype = _http._CharCode.prototype;
dart.addTypeTests(_http._CharCode);
dart.addTypeCaches(_http._CharCode);
dart.setLibraryUri(_http._CharCode, L76);
dart.defineLazy(_http._CharCode, {
  /*_http._CharCode.HT*/get HT() {
    return 9;
  },
  /*_http._CharCode.LF*/get LF() {
    return 10;
  },
  /*_http._CharCode.CR*/get CR() {
    return 13;
  },
  /*_http._CharCode.SP*/get SP() {
    return 32;
  },
  /*_http._CharCode.AMPERSAND*/get AMPERSAND() {
    return 38;
  },
  /*_http._CharCode.COMMA*/get COMMA() {
    return 44;
  },
  /*_http._CharCode.DASH*/get DASH() {
    return 45;
  },
  /*_http._CharCode.SLASH*/get SLASH() {
    return 47;
  },
  /*_http._CharCode.ZERO*/get ZERO() {
    return 48;
  },
  /*_http._CharCode.ONE*/get ONE() {
    return 49;
  },
  /*_http._CharCode.COLON*/get COLON() {
    return 58;
  },
  /*_http._CharCode.SEMI_COLON*/get SEMI_COLON() {
    return 59;
  },
  /*_http._CharCode.EQUAL*/get EQUAL() {
    return 61;
  }
}, true);
_http._State = class _State extends core.Object {};
(_http._State.new = function() {
  ;
}).prototype = _http._State.prototype;
dart.addTypeTests(_http._State);
dart.addTypeCaches(_http._State);
dart.setLibraryUri(_http._State, L76);
dart.defineLazy(_http._State, {
  /*_http._State.START*/get START() {
    return 0;
  },
  /*_http._State.METHOD_OR_RESPONSE_HTTP_VERSION*/get METHOD_OR_RESPONSE_HTTP_VERSION() {
    return 1;
  },
  /*_http._State.RESPONSE_HTTP_VERSION*/get RESPONSE_HTTP_VERSION() {
    return 2;
  },
  /*_http._State.REQUEST_LINE_METHOD*/get REQUEST_LINE_METHOD() {
    return 3;
  },
  /*_http._State.REQUEST_LINE_URI*/get REQUEST_LINE_URI() {
    return 4;
  },
  /*_http._State.REQUEST_LINE_HTTP_VERSION*/get REQUEST_LINE_HTTP_VERSION() {
    return 5;
  },
  /*_http._State.REQUEST_LINE_ENDING*/get REQUEST_LINE_ENDING() {
    return 6;
  },
  /*_http._State.RESPONSE_LINE_STATUS_CODE*/get RESPONSE_LINE_STATUS_CODE() {
    return 7;
  },
  /*_http._State.RESPONSE_LINE_REASON_PHRASE*/get RESPONSE_LINE_REASON_PHRASE() {
    return 8;
  },
  /*_http._State.RESPONSE_LINE_ENDING*/get RESPONSE_LINE_ENDING() {
    return 9;
  },
  /*_http._State.HEADER_START*/get HEADER_START() {
    return 10;
  },
  /*_http._State.HEADER_FIELD*/get HEADER_FIELD() {
    return 11;
  },
  /*_http._State.HEADER_VALUE_START*/get HEADER_VALUE_START() {
    return 12;
  },
  /*_http._State.HEADER_VALUE*/get HEADER_VALUE() {
    return 13;
  },
  /*_http._State.HEADER_VALUE_FOLDING_OR_ENDING*/get HEADER_VALUE_FOLDING_OR_ENDING() {
    return 14;
  },
  /*_http._State.HEADER_VALUE_FOLD_OR_END*/get HEADER_VALUE_FOLD_OR_END() {
    return 15;
  },
  /*_http._State.HEADER_ENDING*/get HEADER_ENDING() {
    return 16;
  },
  /*_http._State.CHUNK_SIZE_STARTING_CR*/get CHUNK_SIZE_STARTING_CR() {
    return 17;
  },
  /*_http._State.CHUNK_SIZE_STARTING_LF*/get CHUNK_SIZE_STARTING_LF() {
    return 18;
  },
  /*_http._State.CHUNK_SIZE*/get CHUNK_SIZE() {
    return 19;
  },
  /*_http._State.CHUNK_SIZE_EXTENSION*/get CHUNK_SIZE_EXTENSION() {
    return 20;
  },
  /*_http._State.CHUNK_SIZE_ENDING*/get CHUNK_SIZE_ENDING() {
    return 21;
  },
  /*_http._State.CHUNKED_BODY_DONE_CR*/get CHUNKED_BODY_DONE_CR() {
    return 22;
  },
  /*_http._State.CHUNKED_BODY_DONE_LF*/get CHUNKED_BODY_DONE_LF() {
    return 23;
  },
  /*_http._State.BODY*/get BODY() {
    return 24;
  },
  /*_http._State.CLOSED*/get CLOSED() {
    return 25;
  },
  /*_http._State.UPGRADED*/get UPGRADED() {
    return 26;
  },
  /*_http._State.FAILURE*/get FAILURE() {
    return 27;
  },
  /*_http._State.FIRST_BODY_STATE*/get FIRST_BODY_STATE() {
    return 17;
  }
}, true);
_http._HttpVersion = class _HttpVersion extends core.Object {};
(_http._HttpVersion.new = function() {
  ;
}).prototype = _http._HttpVersion.prototype;
dart.addTypeTests(_http._HttpVersion);
dart.addTypeCaches(_http._HttpVersion);
dart.setLibraryUri(_http._HttpVersion, L76);
dart.defineLazy(_http._HttpVersion, {
  /*_http._HttpVersion.UNDETERMINED*/get UNDETERMINED() {
    return 0;
  },
  /*_http._HttpVersion.HTTP10*/get HTTP10() {
    return 1;
  },
  /*_http._HttpVersion.HTTP11*/get HTTP11() {
    return 2;
  }
}, true);
_http._MessageType = class _MessageType extends core.Object {};
(_http._MessageType.new = function() {
  ;
}).prototype = _http._MessageType.prototype;
dart.addTypeTests(_http._MessageType);
dart.addTypeCaches(_http._MessageType);
dart.setLibraryUri(_http._MessageType, L76);
dart.defineLazy(_http._MessageType, {
  /*_http._MessageType.UNDETERMINED*/get UNDETERMINED() {
    return 0;
  },
  /*_http._MessageType.REQUEST*/get REQUEST() {
    return 1;
  },
  /*_http._MessageType.RESPONSE*/get RESPONSE() {
    return 0;
  }
}, true);
var _isCanceled$ = dart.privateName(_http, "_isCanceled");
var _pauseCount$0 = dart.privateName(_http, "_pauseCount");
var _scheduled = dart.privateName(_http, "_scheduled");
var _injectData$ = dart.privateName(_http, "_injectData");
var _userOnData$ = dart.privateName(_http, "_userOnData");
var _maybeScheduleData = dart.privateName(_http, "_maybeScheduleData");
_http._HttpDetachedStreamSubscription = class _HttpDetachedStreamSubscription extends core.Object {
  get isPaused() {
    return this[_subscription$0].isPaused;
  }
  asFuture(T, futureValue = null) {
    return this[_subscription$0].asFuture(T, futureValue);
  }
  cancel() {
    this[_isCanceled$] = true;
    this[_injectData$] = null;
    return this[_subscription$0].cancel();
  }
  onData(handleData) {
    this[_userOnData$] = handleData;
    this[_subscription$0].onData(handleData);
  }
  onDone(handleDone) {
    this[_subscription$0].onDone(handleDone);
  }
  onError(handleError) {
    this[_subscription$0].onError(handleError);
  }
  pause(resumeSignal = null) {
    if (this[_injectData$] == null) {
      this[_subscription$0].pause(resumeSignal);
    } else {
      this[_pauseCount$0] = dart.notNull(this[_pauseCount$0]) + 1;
      if (resumeSignal != null) {
        resumeSignal.whenComplete(dart.bind(this, 'resume'));
      }
    }
  }
  resume() {
    if (this[_injectData$] == null) {
      this[_subscription$0].resume();
    } else {
      this[_pauseCount$0] = dart.notNull(this[_pauseCount$0]) - 1;
      this[_maybeScheduleData]();
    }
  }
  [_maybeScheduleData]() {
    if (dart.test(this[_scheduled])) return;
    if (this[_pauseCount$0] !== 0) return;
    this[_scheduled] = true;
    async.scheduleMicrotask(dart.fn(() => {
      let t147;
      this[_scheduled] = false;
      if (dart.notNull(this[_pauseCount$0]) > 0 || dart.test(this[_isCanceled$])) return;
      let data = this[_injectData$];
      this[_injectData$] = null;
      this[_subscription$0].resume();
      if (this[_userOnData$] != null) {
        t147 = data;
        dart.dsend(this, _userOnData$, [t147]);
      }
    }, VoidToNullN()));
  }
};
(_http._HttpDetachedStreamSubscription.new = function(_subscription, _injectData, _userOnData) {
  this[_isCanceled$] = false;
  this[_pauseCount$0] = 1;
  this[_scheduled] = false;
  this[_subscription$0] = _subscription;
  this[_injectData$] = _injectData;
  this[_userOnData$] = _userOnData;
  ;
}).prototype = _http._HttpDetachedStreamSubscription.prototype;
_http._HttpDetachedStreamSubscription.prototype[dart.isStreamSubscription] = true;
dart.addTypeTests(_http._HttpDetachedStreamSubscription);
dart.addTypeCaches(_http._HttpDetachedStreamSubscription);
_http._HttpDetachedStreamSubscription[dart.implements] = () => [async.StreamSubscription$(typed_data.Uint8List)];
dart.setMethodSignature(_http._HttpDetachedStreamSubscription, () => ({
  __proto__: dart.getMethods(_http._HttpDetachedStreamSubscription.__proto__),
  asFuture: dart.gFnType(T => [async.Future$(T), [], [T]]),
  cancel: dart.fnType(async.Future, []),
  onData: dart.fnType(dart.void, [dart.fnType(dart.void, [typed_data.Uint8List])]),
  onDone: dart.fnType(dart.void, [dart.fnType(dart.void, [])]),
  onError: dart.fnType(dart.void, [core.Function]),
  pause: dart.fnType(dart.void, [], [async.Future]),
  resume: dart.fnType(dart.void, []),
  [_maybeScheduleData]: dart.fnType(dart.void, [])
}));
dart.setGetterSignature(_http._HttpDetachedStreamSubscription, () => ({
  __proto__: dart.getGetters(_http._HttpDetachedStreamSubscription.__proto__),
  isPaused: core.bool
}));
dart.setLibraryUri(_http._HttpDetachedStreamSubscription, L76);
dart.setFieldSignature(_http._HttpDetachedStreamSubscription, () => ({
  __proto__: dart.getFields(_http._HttpDetachedStreamSubscription.__proto__),
  [_subscription$0]: dart.fieldType(async.StreamSubscription$(typed_data.Uint8List)),
  [_injectData$]: dart.fieldType(typed_data.Uint8List),
  [_isCanceled$]: dart.fieldType(core.bool),
  [_pauseCount$0]: dart.fieldType(core.int),
  [_userOnData$]: dart.fieldType(core.Function),
  [_scheduled]: dart.fieldType(core.bool)
}));
_http._HttpDetachedIncoming = class _HttpDetachedIncoming extends async.Stream$(typed_data.Uint8List) {
  listen(onData, opts) {
    let t147, t147$, t147$0;
    let onError = opts && 'onError' in opts ? opts.onError : null;
    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
    if (this.subscription != null) {
      t147 = this.subscription;
      t147.onData(onData);
      t147.onError(onError);
      t147.onDone(onDone);
      t147;
      if (this.bufferedData == null) {
        t147$ = this.subscription;
        t147$.resume();
        return t147$;
      }
      t147$0 = new _http._HttpDetachedStreamSubscription.new(this.subscription, this.bufferedData, onData);
      t147$0.resume();
      return t147$0;
    } else {
      return StreamOfUint8ListL().fromIterable(JSArrayOfUint8ListL().of([this.bufferedData])).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
    }
  }
};
(_http._HttpDetachedIncoming.new = function(subscription, bufferedData) {
  this.subscription = subscription;
  this.bufferedData = bufferedData;
  _http._HttpDetachedIncoming.__proto__.new.call(this);
  ;
}).prototype = _http._HttpDetachedIncoming.prototype;
dart.addTypeTests(_http._HttpDetachedIncoming);
dart.addTypeCaches(_http._HttpDetachedIncoming);
dart.setMethodSignature(_http._HttpDetachedIncoming, () => ({
  __proto__: dart.getMethods(_http._HttpDetachedIncoming.__proto__),
  listen: dart.fnType(async.StreamSubscription$(typed_data.Uint8List), [dart.fnType(dart.void, [typed_data.Uint8List])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {})
}));
dart.setLibraryUri(_http._HttpDetachedIncoming, L76);
dart.setFieldSignature(_http._HttpDetachedIncoming, () => ({
  __proto__: dart.getFields(_http._HttpDetachedIncoming.__proto__),
  subscription: dart.finalFieldType(async.StreamSubscription$(typed_data.Uint8List)),
  bufferedData: dart.finalFieldType(typed_data.Uint8List)
}));
var _parserCalled = dart.privateName(_http, "_parserCalled");
var _index$1 = dart.privateName(_http, "_index");
var _httpVersionIndex = dart.privateName(_http, "_httpVersionIndex");
var _messageType = dart.privateName(_http, "_messageType");
var _statusCodeLength = dart.privateName(_http, "_statusCodeLength");
var _method$ = dart.privateName(_http, "_method");
var _uriOrReasonPhrase = dart.privateName(_http, "_uriOrReasonPhrase");
var _headerField = dart.privateName(_http, "_headerField");
var _headerValue = dart.privateName(_http, "_headerValue");
var _headerSizeLimit = dart.privateName(_http, "_headerSizeLimit");
var _httpVersion = dart.privateName(_http, "_httpVersion");
var _connectionUpgrade = dart.privateName(_http, "_connectionUpgrade");
var _chunked = dart.privateName(_http, "_chunked");
var _noMessageBody = dart.privateName(_http, "_noMessageBody");
var _remainingContent = dart.privateName(_http, "_remainingContent");
var _transferEncoding = dart.privateName(_http, "_transferEncoding");
var _chunkSizeLimit = dart.privateName(_http, "_chunkSizeLimit");
var _socketSubscription = dart.privateName(_http, "_socketSubscription");
var _paused = dart.privateName(_http, "_paused");
var _bodyPaused = dart.privateName(_http, "_bodyPaused");
var _bodyController = dart.privateName(_http, "_bodyController");
var _requestParser$ = dart.privateName(_http, "_requestParser");
var _pauseStateChanged = dart.privateName(_http, "_pauseStateChanged");
var _reset = dart.privateName(_http, "_reset");
var _onData$2 = dart.privateName(_http, "_onData");
var _onDone = dart.privateName(_http, "_onDone");
var _doParse = dart.privateName(_http, "_doParse");
var _reportBodyError = dart.privateName(_http, "_reportBodyError");
var _reportHttpError = dart.privateName(_http, "_reportHttpError");
var _createIncoming = dart.privateName(_http, "_createIncoming");
var _closeIncoming = dart.privateName(_http, "_closeIncoming");
var _headersEnd = dart.privateName(_http, "_headersEnd");
var _addWithValidation = dart.privateName(_http, "_addWithValidation");
var _expect = dart.privateName(_http, "_expect");
var _expectHexDigit = dart.privateName(_http, "_expectHexDigit");
var _releaseBuffer = dart.privateName(_http, "_releaseBuffer");
var _reportSizeLimitError = dart.privateName(_http, "_reportSizeLimitError");
_http._HttpParser = class _HttpParser extends async.Stream$(_http._HttpIncoming) {
  static requestParser() {
    return new _http._HttpParser.__(true);
  }
  static responseParser() {
    return new _http._HttpParser.__(false);
  }
  listen(onData, opts) {
    let onError = opts && 'onError' in opts ? opts.onError : null;
    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
    return this[_controller$1].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
  }
  listenToStream(stream) {
    this[_socketSubscription] = stream.listen(dart.bind(this, _onData$2), {onError: dart.bind(this[_controller$1], 'addError'), onDone: dart.bind(this, _onDone)});
  }
  [_parse]() {
    try {
      this[_doParse]();
    } catch (e$) {
      let e = dart.getThrown(e$);
      let s = dart.stackTrace(e$);
      if (dart.notNull(this[_state$1]) >= 17 && dart.notNull(this[_state$1]) <= 24) {
        this[_state$1] = 27;
        this[_reportBodyError](e, s);
      } else {
        this[_state$1] = 27;
        this[_reportHttpError](e, s);
      }
    }
  }
  [_headersEnd]() {
    if (!dart.test(this[_requestParser$]) && dart.notNull(this[_statusCode]) >= 200 && dart.notNull(this[_statusCode]) < 300 && dart.test(this.connectMethod)) {
      this[_transferLength$] = -1;
      this[_headers].chunkedTransferEncoding = false;
      this[_chunked] = false;
      this[_headers].removeAll("content-length");
      this[_headers].removeAll("transfer-encoding");
    }
    this[_headers][_mutable] = false;
    this[_transferLength$] = this[_headers].contentLength;
    if (dart.test(this[_chunked])) this[_transferLength$] = -1;
    if (this[_messageType] === 1 && dart.notNull(this[_transferLength$]) < 0 && dart.equals(this[_chunked], false)) {
      this[_transferLength$] = 0;
    }
    if (dart.test(this[_connectionUpgrade])) {
      this[_state$1] = 26;
      this[_transferLength$] = 0;
    }
    this[_createIncoming](this[_transferLength$]);
    if (dart.test(this[_requestParser$])) {
      this[_incoming$].method = core.String.fromCharCodes(this[_method$]);
      this[_incoming$].uri = core.Uri.parse(core.String.fromCharCodes(this[_uriOrReasonPhrase]));
    } else {
      this[_incoming$].statusCode = this[_statusCode];
      this[_incoming$].reasonPhrase = core.String.fromCharCodes(this[_uriOrReasonPhrase]);
    }
    this[_method$][$clear]();
    this[_uriOrReasonPhrase][$clear]();
    if (dart.test(this[_connectionUpgrade])) {
      this[_incoming$].upgraded = true;
      this[_parserCalled] = false;
      let tmp = this[_incoming$];
      this[_closeIncoming]();
      this[_controller$1].add(tmp);
      return true;
    }
    if (this[_transferLength$] === 0 || this[_messageType] === 0 && dart.test(this[_noMessageBody])) {
      this[_reset]();
      let tmp = this[_incoming$];
      this[_closeIncoming]();
      this[_controller$1].add(tmp);
      return false;
    } else if (dart.test(this[_chunked])) {
      this[_state$1] = 19;
      this[_remainingContent] = 0;
    } else if (dart.notNull(this[_transferLength$]) > 0) {
      this[_remainingContent] = this[_transferLength$];
      this[_state$1] = 24;
    } else {
      this[_state$1] = 24;
    }
    this[_parserCalled] = false;
    this[_controller$1].add(this[_incoming$]);
    return true;
  }
  [_doParse]() {
    let t148;
    if (!!dart.test(this[_parserCalled])) dart.assertFailed(null, L80, 427, 12, "!_parserCalled");
    this[_parserCalled] = true;
    if (this[_state$1] === 25) {
      dart.throw(new _http.HttpException.new("Data on closed connection"));
    }
    if (this[_state$1] === 27) {
      dart.throw(new _http.HttpException.new("Data on failed connection"));
    }
    while (this[_buffer$1] != null && dart.notNull(this[_index$1]) < dart.notNull(this[_buffer$1][$length]) && this[_state$1] !== 27 && this[_state$1] !== 26) {
      if (this[_incoming$] != null && dart.test(this[_bodyPaused]) || this[_incoming$] == null && dart.test(this[_paused])) {
        this[_parserCalled] = false;
        return;
      }
      let byte = this[_buffer$1][$_get]((t148 = this[_index$1], this[_index$1] = dart.notNull(t148) + 1, t148));
      switch (this[_state$1]) {
        case 0:
        {
          if (byte == _http._Const.HTTP[$_get](0)) {
            this[_httpVersionIndex] = 1;
            this[_state$1] = 1;
          } else {
            if (!dart.test(_http._HttpParser._isTokenChar(byte))) {
              dart.throw(new _http.HttpException.new("Invalid request method"));
            }
            this[_addWithValidation](this[_method$], byte);
            if (!dart.test(this[_requestParser$])) {
              dart.throw(new _http.HttpException.new("Invalid response line"));
            }
            this[_state$1] = 3;
          }
          break;
        }
        case 1:
        {
          if (dart.notNull(this[_httpVersionIndex]) < dart.notNull(_http._Const.HTTP[$length]) && byte == _http._Const.HTTP[$_get](this[_httpVersionIndex])) {
            this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
          } else if (this[_httpVersionIndex] == _http._Const.HTTP[$length] && byte === 47) {
            this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
            if (dart.test(this[_requestParser$])) {
              dart.throw(new _http.HttpException.new("Invalid request line"));
            }
            this[_state$1] = 2;
          } else {
            for (let i = 0; i < dart.notNull(this[_httpVersionIndex]); i = i + 1) {
              this[_addWithValidation](this[_method$], _http._Const.HTTP[$_get](i));
            }
            if (byte === 32) {
              this[_state$1] = 4;
            } else {
              this[_addWithValidation](this[_method$], byte);
              this[_httpVersion] = 0;
              if (!dart.test(this[_requestParser$])) {
                dart.throw(new _http.HttpException.new("Invalid response line"));
              }
              this[_state$1] = 3;
            }
          }
          break;
        }
        case 2:
        {
          if (dart.notNull(this[_httpVersionIndex]) < dart.notNull(_http._Const.HTTP1DOT[$length])) {
            this[_expect](byte, _http._Const.HTTP1DOT[$_get](this[_httpVersionIndex]));
            this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
          } else if (this[_httpVersionIndex] == _http._Const.HTTP1DOT[$length] && byte === 49) {
            this[_httpVersion] = 2;
            this[_persistentConnection] = true;
            this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
          } else if (this[_httpVersionIndex] == _http._Const.HTTP1DOT[$length] && byte === 48) {
            this[_httpVersion] = 1;
            this[_persistentConnection] = false;
            this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
          } else if (this[_httpVersionIndex] === dart.notNull(_http._Const.HTTP1DOT[$length]) + 1) {
            this[_expect](byte, 32);
            this[_state$1] = 7;
          } else {
            dart.throw(new _http.HttpException.new("Invalid response line, failed to parse HTTP version"));
          }
          break;
        }
        case 3:
        {
          if (byte === 32) {
            this[_state$1] = 4;
          } else {
            if (dart.test(_http._Const.SEPARATOR_MAP[$_get](byte)) || byte === 13 || byte === 10) {
              dart.throw(new _http.HttpException.new("Invalid request method"));
            }
            this[_addWithValidation](this[_method$], byte);
          }
          break;
        }
        case 4:
        {
          if (byte === 32) {
            if (this[_uriOrReasonPhrase][$length] === 0) {
              dart.throw(new _http.HttpException.new("Invalid request, empty URI"));
            }
            this[_state$1] = 5;
            this[_httpVersionIndex] = 0;
          } else {
            if (byte === 13 || byte === 10) {
              dart.throw(new _http.HttpException.new("Invalid request, unexpected " + dart.str(byte) + " in URI"));
            }
            this[_addWithValidation](this[_uriOrReasonPhrase], byte);
          }
          break;
        }
        case 5:
        {
          if (dart.notNull(this[_httpVersionIndex]) < dart.notNull(_http._Const.HTTP1DOT[$length])) {
            this[_expect](byte, _http._Const.HTTP11[$_get](this[_httpVersionIndex]));
            this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
          } else if (this[_httpVersionIndex] == _http._Const.HTTP1DOT[$length]) {
            if (byte === 49) {
              this[_httpVersion] = 2;
              this[_persistentConnection] = true;
              this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
            } else if (byte === 48) {
              this[_httpVersion] = 1;
              this[_persistentConnection] = false;
              this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
            } else {
              dart.throw(new _http.HttpException.new("Invalid response, invalid HTTP version"));
            }
          } else {
            if (byte === 13) {
              this[_state$1] = 6;
            } else {
              this[_expect](byte, 10);
              this[_messageType] = 1;
              this[_state$1] = 10;
            }
          }
          break;
        }
        case 6:
        {
          this[_expect](byte, 10);
          this[_messageType] = 1;
          this[_state$1] = 10;
          break;
        }
        case 7:
        {
          if (byte === 32) {
            this[_state$1] = 8;
          } else if (byte === 13) {
            this[_state$1] = 9;
          } else {
            this[_statusCodeLength] = dart.notNull(this[_statusCodeLength]) + 1;
            if (dart.notNull(byte) < 48 || dart.notNull(byte) > 57) {
              dart.throw(new _http.HttpException.new("Invalid response status code with " + dart.str(byte)));
            } else if (dart.notNull(this[_statusCodeLength]) > 3) {
              dart.throw(new _http.HttpException.new("Invalid response, status code is over 3 digits"));
            } else {
              this[_statusCode] = dart.notNull(this[_statusCode]) * 10 + dart.notNull(byte) - 48;
            }
          }
          break;
        }
        case 8:
        {
          if (byte === 13) {
            this[_state$1] = 9;
          } else {
            if (byte === 13 || byte === 10) {
              dart.throw(new _http.HttpException.new("Invalid response, unexpected " + dart.str(byte) + " in reason phrase"));
            }
            this[_addWithValidation](this[_uriOrReasonPhrase], byte);
          }
          break;
        }
        case 9:
        {
          this[_expect](byte, 10);
          this[_messageType] === 0;
          if (dart.notNull(this[_statusCode]) <= 199 || this[_statusCode] === 204 || this[_statusCode] === 304) {
            this[_noMessageBody] = true;
          }
          this[_state$1] = 10;
          break;
        }
        case 10:
        {
          this[_headers] = new _http._HttpHeaders.new(this.version);
          if (byte === 13) {
            this[_state$1] = 16;
          } else if (byte === 10) {
            this[_state$1] = 16;
            this[_index$1] = dart.notNull(this[_index$1]) - 1;
          } else {
            this[_addWithValidation](this[_headerField], _http._HttpParser._toLowerCaseByte(byte));
            this[_state$1] = 11;
          }
          break;
        }
        case 11:
        {
          if (byte === 58) {
            this[_state$1] = 12;
          } else {
            if (!dart.test(_http._HttpParser._isTokenChar(byte))) {
              dart.throw(new _http.HttpException.new("Invalid header field name, with " + dart.str(byte)));
            }
            this[_addWithValidation](this[_headerField], _http._HttpParser._toLowerCaseByte(byte));
          }
          break;
        }
        case 12:
        {
          if (byte === 13) {
            this[_state$1] = 14;
          } else if (byte === 10) {
            this[_state$1] = 15;
          } else if (byte !== 32 && byte !== 9) {
            this[_addWithValidation](this[_headerValue], byte);
            this[_state$1] = 13;
          }
          break;
        }
        case 13:
        {
          if (byte === 13) {
            this[_state$1] = 14;
          } else if (byte === 10) {
            this[_state$1] = 15;
          } else {
            this[_addWithValidation](this[_headerValue], byte);
          }
          break;
        }
        case 14:
        {
          this[_expect](byte, 10);
          this[_state$1] = 15;
          break;
        }
        case 15:
        {
          if (byte === 32 || byte === 9) {
            this[_state$1] = 12;
          } else {
            let headerField = core.String.fromCharCodes(this[_headerField]);
            let headerValue = core.String.fromCharCodes(this[_headerValue]);
            if (headerField === "content-length") {
              if (dart.test(this[_contentLength]) || dart.test(this[_transferEncoding])) {
                this[_statusCode] = 400;
              }
              this[_contentLength] = true;
            } else if (headerField === "transfer-encoding") {
              this[_transferEncoding] = true;
              if (dart.test(_http._HttpParser._caseInsensitiveCompare("chunked"[$codeUnits], this[_headerValue]))) {
                this[_chunked] = true;
              }
              if (dart.test(this[_contentLength])) {
                this[_statusCode] = 400;
              }
            }
            if (headerField === "connection") {
              let tokens = _http._HttpParser._tokenizeFieldValue(headerValue);
              let isResponse = this[_messageType] === 0;
              let isUpgradeCode = this[_statusCode] === 426 || this[_statusCode] === 101;
              for (let i = 0; i < dart.notNull(tokens[$length]); i = i + 1) {
                let isUpgrade = _http._HttpParser._caseInsensitiveCompare("upgrade"[$codeUnits], tokens[$_get](i)[$codeUnits]);
                if (dart.test(isUpgrade) && !isResponse || dart.test(isUpgrade) && isResponse && isUpgradeCode) {
                  this[_connectionUpgrade] = true;
                }
                this[_headers][_add$2](headerField, tokens[$_get](i));
              }
            } else {
              this[_headers][_add$2](headerField, headerValue);
            }
            this[_headerField][$clear]();
            this[_headerValue][$clear]();
            if (byte === 13) {
              this[_state$1] = 16;
            } else if (byte === 10) {
              this[_state$1] = 16;
              this[_index$1] = dart.notNull(this[_index$1]) - 1;
            } else {
              this[_state$1] = 11;
              this[_addWithValidation](this[_headerField], _http._HttpParser._toLowerCaseByte(byte));
            }
          }
          break;
        }
        case 16:
        {
          this[_expect](byte, 10);
          if (dart.test(this[_headersEnd]())) {
            return;
          }
          break;
        }
        case 17:
        {
          this[_expect](byte, 13);
          this[_state$1] = 18;
          break;
        }
        case 18:
        {
          this[_expect](byte, 10);
          this[_state$1] = 19;
          break;
        }
        case 19:
        {
          if (byte === 13) {
            this[_state$1] = 21;
          } else if (byte === 59) {
            this[_state$1] = 20;
          } else {
            let value = this[_expectHexDigit](byte);
            if (dart.notNull(this[_remainingContent]) > this[_chunkSizeLimit][$rightShift](4)) {
              dart.throw(new _http.HttpException.new("Chunk size overflows the integer"));
            }
            this[_remainingContent] = dart.notNull(this[_remainingContent]) * 16 + dart.notNull(value);
          }
          break;
        }
        case 20:
        {
          if (byte === 13) {
            this[_state$1] = 21;
          }
          break;
        }
        case 21:
        {
          this[_expect](byte, 10);
          if (dart.notNull(this[_remainingContent]) > 0) {
            this[_state$1] = 24;
          } else {
            this[_state$1] = 22;
          }
          break;
        }
        case 22:
        {
          this[_expect](byte, 13);
          this[_state$1] = 23;
          break;
        }
        case 23:
        {
          this[_expect](byte, 10);
          this[_reset]();
          this[_closeIncoming]();
          break;
        }
        case 24:
        {
          this[_index$1] = dart.notNull(this[_index$1]) - 1;
          let dataAvailable = dart.notNull(this[_buffer$1][$length]) - dart.notNull(this[_index$1]);
          if (dart.notNull(this[_remainingContent]) >= 0 && dart.notNull(dataAvailable) > dart.notNull(this[_remainingContent])) {
            dataAvailable = this[_remainingContent];
          }
          let data = typed_data.Uint8List.view(this[_buffer$1][$buffer], dart.notNull(this[_buffer$1][$offsetInBytes]) + dart.notNull(this[_index$1]), dataAvailable);
          this[_bodyController].add(data);
          if (this[_remainingContent] !== -1) {
            this[_remainingContent] = dart.notNull(this[_remainingContent]) - dart.notNull(data[$length]);
          }
          this[_index$1] = dart.notNull(this[_index$1]) + dart.notNull(data[$length]);
          if (this[_remainingContent] === 0) {
            if (!dart.test(this[_chunked])) {
              this[_reset]();
              this[_closeIncoming]();
            } else {
              this[_state$1] = 17;
            }
          }
          break;
        }
        case 27:
        {
          if (!false) dart.assertFailed(null, L80, 824, 18, "false");
          break;
        }
        default:
        {
          if (!false) dart.assertFailed(null, L80, 829, 18, "false");
          break;
        }
      }
    }
    this[_parserCalled] = false;
    if (this[_buffer$1] != null && this[_index$1] == this[_buffer$1][$length]) {
      this[_releaseBuffer]();
      if (this[_state$1] !== 26 && this[_state$1] !== 27) {
        this[_socketSubscription].resume();
      }
    }
  }
  [_onData$2](buffer) {
    this[_socketSubscription].pause();
    if (!(this[_buffer$1] == null)) dart.assertFailed(null, L80, 847, 12, "_buffer == null");
    this[_buffer$1] = buffer;
    this[_index$1] = 0;
    this[_parse]();
  }
  [_onDone]() {
    this[_socketSubscription] = null;
    if (this[_state$1] === 25 || this[_state$1] === 27) return;
    if (this[_incoming$] != null) {
      if (this[_state$1] !== 26 && !(this[_state$1] === 0 && !dart.test(this[_requestParser$])) && !(this[_state$1] === 24 && !dart.test(this[_chunked]) && this[_transferLength$] === -1)) {
        this[_reportBodyError](new _http.HttpException.new("Connection closed while receiving data"));
      }
      this[_closeIncoming](true);
      this[_controller$1].close();
      return;
    }
    if (this[_state$1] === 0) {
      if (!dart.test(this[_requestParser$])) {
        this[_reportHttpError](new _http.HttpException.new("Connection closed before full header was received"));
      }
      this[_controller$1].close();
      return;
    }
    if (this[_state$1] === 26) {
      this[_controller$1].close();
      return;
    }
    if (dart.notNull(this[_state$1]) < 17) {
      this[_state$1] = 27;
      this[_reportHttpError](new _http.HttpException.new("Connection closed before full header was received"));
      this[_controller$1].close();
      return;
    }
    if (!dart.test(this[_chunked]) && this[_transferLength$] === -1) {
      this[_state$1] = 25;
    } else {
      this[_state$1] = 27;
      this[_reportHttpError](new _http.HttpException.new("Connection closed before full body was received"));
    }
    this[_controller$1].close();
  }
  get version() {
    switch (this[_httpVersion]) {
      case 1:
      {
        return "1.0";
      }
      case 2:
      {
        return "1.1";
      }
    }
    return null;
  }
  get messageType() {
    return this[_messageType];
  }
  get transferLength() {
    return this[_transferLength$];
  }
  get upgrade() {
    return dart.test(this[_connectionUpgrade]) && this[_state$1] === 26;
  }
  get persistentConnection() {
    return this[_persistentConnection];
  }
  set isHead(value) {
    let t148;
    return this[_noMessageBody] = (t148 = value, t148 == null ? false : t148);
  }
  detachIncoming() {
    this[_state$1] = 26;
    return new _http._HttpDetachedIncoming.new(this[_socketSubscription], this.readUnparsedData());
  }
  readUnparsedData() {
    if (this[_buffer$1] == null) return null;
    if (this[_index$1] == this[_buffer$1][$length]) return null;
    let result = this[_buffer$1][$sublist](this[_index$1]);
    this[_releaseBuffer]();
    return result;
  }
  [_reset]() {
    if (this[_state$1] === 26) return;
    this[_state$1] = 0;
    this[_messageType] = 0;
    this[_headerField][$clear]();
    this[_headerValue][$clear]();
    this[_method$][$clear]();
    this[_uriOrReasonPhrase][$clear]();
    this[_statusCode] = 0;
    this[_statusCodeLength] = 0;
    this[_httpVersion] = 0;
    this[_transferLength$] = -1;
    this[_persistentConnection] = false;
    this[_connectionUpgrade] = false;
    this[_chunked] = false;
    this[_noMessageBody] = false;
    this[_remainingContent] = -1;
    this[_contentLength] = false;
    this[_transferEncoding] = false;
    this[_headers] = null;
  }
  [_releaseBuffer]() {
    this[_buffer$1] = null;
    this[_index$1] = null;
  }
  static _isTokenChar(byte) {
    return dart.notNull(byte) > 31 && dart.notNull(byte) < 128 && !dart.test(_http._Const.SEPARATOR_MAP[$_get](byte));
  }
  static _isValueChar(byte) {
    return dart.notNull(byte) > 31 && dart.notNull(byte) < 128 || byte === 32 || byte === 9;
  }
  static _tokenizeFieldValue(headerValue) {
    let tokens = JSArrayOfStringL().of([]);
    let start = 0;
    let index = 0;
    while (index < headerValue.length) {
      if (headerValue[$_get](index) === ",") {
        tokens[$add](headerValue[$substring](start, index));
        start = index + 1;
      } else if (headerValue[$_get](index) === " " || headerValue[$_get](index) === "\t") {
        start = start + 1;
      }
      index = index + 1;
    }
    tokens[$add](headerValue[$substring](start, index));
    return tokens;
  }
  static _toLowerCaseByte(x) {
    return (dart.notNull(x) - 65 & 127) < 26 ? (dart.notNull(x) | 32) >>> 0 : x;
  }
  static _caseInsensitiveCompare(expected, value) {
    if (expected[$length] != value[$length]) return false;
    for (let i = 0; i < dart.notNull(expected[$length]); i = i + 1) {
      if (expected[$_get](i) != _http._HttpParser._toLowerCaseByte(value[$_get](i))) return false;
    }
    return true;
  }
  [_expect](val1, val2) {
    if (val1 != val2) {
      dart.throw(new _http.HttpException.new("Failed to parse HTTP, " + dart.str(val1) + " does not match " + dart.str(val2)));
    }
  }
  [_expectHexDigit](byte) {
    if (48 <= dart.notNull(byte) && dart.notNull(byte) <= 57) {
      return dart.notNull(byte) - 48;
    } else if (65 <= dart.notNull(byte) && dart.notNull(byte) <= 70) {
      return dart.notNull(byte) - 65 + 10;
    } else if (97 <= dart.notNull(byte) && dart.notNull(byte) <= 102) {
      return dart.notNull(byte) - 97 + 10;
    } else {
      dart.throw(new _http.HttpException.new("Failed to parse HTTP, " + dart.str(byte) + " is expected to be a Hex digit"));
    }
  }
  [_addWithValidation](list, byte) {
    if (dart.notNull(list[$length]) < dart.notNull(this[_headerSizeLimit])) {
      list[$add](byte);
    } else {
      this[_reportSizeLimitError]();
    }
  }
  [_reportSizeLimitError]() {
    let method = "";
    switch (this[_state$1]) {
      case 0:
      case 1:
      case 3:
      {
        method = "Method";
        break;
      }
      case 4:
      {
        method = "URI";
        break;
      }
      case 8:
      {
        method = "Reason phrase";
        break;
      }
      case 10:
      case 11:
      {
        method = "Header field";
        break;
      }
      case 12:
      case 13:
      {
        method = "Header value";
        break;
      }
      default:
      {
        dart.throw(new core.UnsupportedError.new("Unexpected state: " + dart.str(this[_state$1])));
        break;
      }
    }
    dart.throw(new _http.HttpException.new(method + " exceeds the " + dart.str(this[_headerSizeLimit]) + " size limit"));
  }
  [_createIncoming](transferLength) {
    if (!(this[_incoming$] == null)) dart.assertFailed(null, L80, 1076, 12, "_incoming == null");
    if (!(this[_bodyController] == null)) dart.assertFailed(null, L80, 1077, 12, "_bodyController == null");
    if (!!dart.test(this[_bodyPaused])) dart.assertFailed(null, L80, 1078, 12, "!_bodyPaused");
    let incoming = null;
    this[_bodyController] = StreamControllerOfUint8ListL().new({sync: true, onListen: dart.fn(() => {
        if (!dart.equals(incoming, this[_incoming$])) return;
        if (!dart.test(this[_bodyPaused])) dart.assertFailed(null, L80, 1084, 18, "_bodyPaused");
        this[_bodyPaused] = false;
        this[_pauseStateChanged]();
      }, VoidToNullN()), onPause: dart.fn(() => {
        if (!dart.equals(incoming, this[_incoming$])) return;
        if (!!dart.test(this[_bodyPaused])) dart.assertFailed(null, L80, 1090, 18, "!_bodyPaused");
        this[_bodyPaused] = true;
        this[_pauseStateChanged]();
      }, VoidToNullN()), onResume: dart.fn(() => {
        if (!dart.equals(incoming, this[_incoming$])) return;
        if (!dart.test(this[_bodyPaused])) dart.assertFailed(null, L80, 1096, 18, "_bodyPaused");
        this[_bodyPaused] = false;
        this[_pauseStateChanged]();
      }, VoidToNullN()), onCancel: dart.fn(() => {
        if (!dart.equals(incoming, this[_incoming$])) return;
        if (this[_socketSubscription] != null) {
          this[_socketSubscription].cancel();
        }
        this[_closeIncoming](true);
        this[_controller$1].close();
      }, VoidToNullN())});
    incoming = this[_incoming$] = new _http._HttpIncoming.new(this[_headers], transferLength, this[_bodyController].stream);
    this[_bodyPaused] = true;
    this[_pauseStateChanged]();
  }
  [_closeIncoming](closing = false) {
    if (this[_incoming$] == null) return;
    let tmp = this[_incoming$];
    tmp.close(closing);
    this[_incoming$] = null;
    if (this[_bodyController] != null) {
      this[_bodyController].close();
      this[_bodyController] = null;
    }
    this[_bodyPaused] = false;
    this[_pauseStateChanged]();
  }
  [_pauseStateChanged]() {
    if (this[_incoming$] != null) {
      if (!dart.test(this[_bodyPaused]) && !dart.test(this[_parserCalled])) {
        this[_parse]();
      }
    } else {
      if (!dart.test(this[_paused]) && !dart.test(this[_parserCalled])) {
        this[_parse]();
      }
    }
  }
  [_reportHttpError](error, stackTrace = null) {
    if (this[_socketSubscription] != null) this[_socketSubscription].cancel();
    this[_state$1] = 27;
    this[_controller$1].addError(error, core.StackTrace.as(stackTrace));
    this[_controller$1].close();
  }
  [_reportBodyError](error, stackTrace = null) {
    if (this[_socketSubscription] != null) this[_socketSubscription].cancel();
    this[_state$1] = 27;
    this[_bodyController].addError(error, core.StackTrace.as(stackTrace));
    if (this[_bodyController] != null) {
      this[_bodyController].close();
    }
  }
};
(_http._HttpParser.__ = function(_requestParser) {
  this[_parserCalled] = false;
  this[_buffer$1] = null;
  this[_index$1] = null;
  this[_state$1] = null;
  this[_httpVersionIndex] = null;
  this[_messageType] = null;
  this[_statusCode] = 0;
  this[_statusCodeLength] = 0;
  this[_method$] = JSArrayOfintL().of([]);
  this[_uriOrReasonPhrase] = JSArrayOfintL().of([]);
  this[_headerField] = JSArrayOfintL().of([]);
  this[_headerValue] = JSArrayOfintL().of([]);
  this[_headerSizeLimit] = 8 * 1024;
  this[_httpVersion] = null;
  this[_transferLength$] = -1;
  this[_persistentConnection] = null;
  this[_connectionUpgrade] = null;
  this[_chunked] = null;
  this[_noMessageBody] = false;
  this[_remainingContent] = -1;
  this[_contentLength] = false;
  this[_transferEncoding] = false;
  this.connectMethod = false;
  this[_headers] = null;
  this[_chunkSizeLimit] = 2147483647;
  this[_incoming$] = null;
  this[_socketSubscription] = null;
  this[_paused] = true;
  this[_bodyPaused] = false;
  this[_controller$1] = null;
  this[_bodyController] = null;
  this[_requestParser$] = _requestParser;
  _http._HttpParser.__proto__.new.call(this);
  this[_controller$1] = StreamControllerOf_HttpIncomingL().new({sync: true, onListen: dart.fn(() => {
      this[_paused] = false;
    }, VoidToNullN()), onPause: dart.fn(() => {
      this[_paused] = true;
      this[_pauseStateChanged]();
    }, VoidToNullN()), onResume: dart.fn(() => {
      this[_paused] = false;
      this[_pauseStateChanged]();
    }, VoidToNullN()), onCancel: dart.fn(() => {
      if (this[_socketSubscription] != null) {
        this[_socketSubscription].cancel();
      }
    }, VoidToNullN())});
  this[_reset]();
}).prototype = _http._HttpParser.prototype;
dart.addTypeTests(_http._HttpParser);
dart.addTypeCaches(_http._HttpParser);
dart.setMethodSignature(_http._HttpParser, () => ({
  __proto__: dart.getMethods(_http._HttpParser.__proto__),
  listen: dart.fnType(async.StreamSubscription$(_http._HttpIncoming), [dart.fnType(dart.void, [_http._HttpIncoming])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {}),
  listenToStream: dart.fnType(dart.void, [async.Stream$(typed_data.Uint8List)]),
  [_parse]: dart.fnType(dart.void, []),
  [_headersEnd]: dart.fnType(core.bool, []),
  [_doParse]: dart.fnType(dart.void, []),
  [_onData$2]: dart.fnType(dart.void, [typed_data.Uint8List]),
  [_onDone]: dart.fnType(dart.void, []),
  detachIncoming: dart.fnType(_http._HttpDetachedIncoming, []),
  readUnparsedData: dart.fnType(typed_data.Uint8List, []),
  [_reset]: dart.fnType(dart.void, []),
  [_releaseBuffer]: dart.fnType(dart.void, []),
  [_expect]: dart.fnType(dart.void, [core.int, core.int]),
  [_expectHexDigit]: dart.fnType(core.int, [core.int]),
  [_addWithValidation]: dart.fnType(dart.void, [core.List$(core.int), core.int]),
  [_reportSizeLimitError]: dart.fnType(dart.void, []),
  [_createIncoming]: dart.fnType(dart.void, [core.int]),
  [_closeIncoming]: dart.fnType(dart.void, [], [core.bool]),
  [_pauseStateChanged]: dart.fnType(dart.void, []),
  [_reportHttpError]: dart.fnType(dart.void, [dart.dynamic], [dart.dynamic]),
  [_reportBodyError]: dart.fnType(dart.void, [dart.dynamic], [dart.dynamic])
}));
dart.setGetterSignature(_http._HttpParser, () => ({
  __proto__: dart.getGetters(_http._HttpParser.__proto__),
  version: core.String,
  messageType: core.int,
  transferLength: core.int,
  upgrade: core.bool,
  persistentConnection: core.bool
}));
dart.setSetterSignature(_http._HttpParser, () => ({
  __proto__: dart.getSetters(_http._HttpParser.__proto__),
  isHead: core.bool
}));
dart.setLibraryUri(_http._HttpParser, L76);
dart.setFieldSignature(_http._HttpParser, () => ({
  __proto__: dart.getFields(_http._HttpParser.__proto__),
  [_parserCalled]: dart.fieldType(core.bool),
  [_buffer$1]: dart.fieldType(typed_data.Uint8List),
  [_index$1]: dart.fieldType(core.int),
  [_requestParser$]: dart.finalFieldType(core.bool),
  [_state$1]: dart.fieldType(core.int),
  [_httpVersionIndex]: dart.fieldType(core.int),
  [_messageType]: dart.fieldType(core.int),
  [_statusCode]: dart.fieldType(core.int),
  [_statusCodeLength]: dart.fieldType(core.int),
  [_method$]: dart.finalFieldType(core.List$(core.int)),
  [_uriOrReasonPhrase]: dart.finalFieldType(core.List$(core.int)),
  [_headerField]: dart.finalFieldType(core.List$(core.int)),
  [_headerValue]: dart.finalFieldType(core.List$(core.int)),
  [_headerSizeLimit]: dart.fieldType(core.int),
  [_httpVersion]: dart.fieldType(core.int),
  [_transferLength$]: dart.fieldType(core.int),
  [_persistentConnection]: dart.fieldType(core.bool),
  [_connectionUpgrade]: dart.fieldType(core.bool),
  [_chunked]: dart.fieldType(core.bool),
  [_noMessageBody]: dart.fieldType(core.bool),
  [_remainingContent]: dart.fieldType(core.int),
  [_contentLength]: dart.fieldType(core.bool),
  [_transferEncoding]: dart.fieldType(core.bool),
  connectMethod: dart.fieldType(core.bool),
  [_headers]: dart.fieldType(_http._HttpHeaders),
  [_chunkSizeLimit]: dart.fieldType(core.int),
  [_incoming$]: dart.fieldType(_http._HttpIncoming),
  [_socketSubscription]: dart.fieldType(async.StreamSubscription$(typed_data.Uint8List)),
  [_paused]: dart.fieldType(core.bool),
  [_bodyPaused]: dart.fieldType(core.bool),
  [_controller$1]: dart.fieldType(async.StreamController$(_http._HttpIncoming)),
  [_bodyController]: dart.fieldType(async.StreamController$(typed_data.Uint8List))
}));
var _timeoutCallback = dart.privateName(_http, "_timeoutCallback");
var _prev = dart.privateName(_http, "_prev");
var _next$4 = dart.privateName(_http, "_next");
var _data$1 = dart.privateName(_http, "_data");
var _lastSeen = dart.privateName(_http, "_lastSeen");
var _removeFromTimeoutQueue = dart.privateName(_http, "_removeFromTimeoutQueue");
var _sessions = dart.privateName(_http, "_sessions");
var _bumpToEnd = dart.privateName(_http, "_bumpToEnd");
_http._HttpSession = class _HttpSession extends core.Object {
  destroy() {
    this[_destroyed] = true;
    this[_sessionManager$][_removeFromTimeoutQueue](this);
    this[_sessionManager$][_sessions][$remove](this.id);
  }
  [_markSeen]() {
    this[_lastSeen] = new core.DateTime.now();
    this[_sessionManager$][_bumpToEnd](this);
  }
  get lastSeen() {
    return this[_lastSeen];
  }
  get isNew() {
    return this[_isNew];
  }
  set onTimeout(callback) {
    this[_timeoutCallback] = callback;
  }
  containsValue(value) {
    return this[_data$1][$containsValue](value);
  }
  containsKey(key) {
    return this[_data$1][$containsKey](key);
  }
  _get(key) {
    return this[_data$1][$_get](key);
  }
  _set(key, value$) {
    let value = value$;
    this[_data$1][$_set](key, value);
    return value$;
  }
  putIfAbsent(key, ifAbsent) {
    VoidToLdynamic().as(ifAbsent);
    return this[_data$1][$putIfAbsent](key, ifAbsent);
  }
  addAll(other) {
    core.Map.as(other);
    return this[_data$1][$addAll](other);
  }
  remove(key) {
    return this[_data$1][$remove](key);
  }
  clear() {
    this[_data$1][$clear]();
  }
  forEach(f) {
    this[_data$1][$forEach](f);
  }
  get entries() {
    return this[_data$1][$entries];
  }
  addEntries(entries) {
    IterableOfMapEntryL().as(entries);
    this[_data$1][$addEntries](entries);
  }
  map(K, V, transform) {
    return this[_data$1][$map](K, V, transform);
  }
  removeWhere(test) {
    this[_data$1][$removeWhere](test);
  }
  cast(K, V) {
    return this[_data$1][$cast](K, V);
  }
  update(key, update, opts) {
    dynamicToLdynamic().as(update);
    let ifAbsent = opts && 'ifAbsent' in opts ? opts.ifAbsent : null;
    VoidToLdynamic().as(ifAbsent);
    return this[_data$1][$update](key, update, {ifAbsent: ifAbsent});
  }
  updateAll(update) {
    dynamicAnddynamicToLdynamic().as(update);
    this[_data$1][$updateAll](update);
  }
  get keys() {
    return this[_data$1][$keys];
  }
  get values() {
    return this[_data$1][$values];
  }
  get length() {
    return this[_data$1][$length];
  }
  get isEmpty() {
    return this[_data$1][$isEmpty];
  }
  get isNotEmpty() {
    return this[_data$1][$isNotEmpty];
  }
  toString() {
    return "HttpSession id:" + dart.str(this.id) + " " + dart.str(this[_data$1]);
  }
};
(_http._HttpSession.new = function(_sessionManager, id) {
  this[_destroyed] = false;
  this[_isNew] = true;
  this[_timeoutCallback] = null;
  this[_prev] = null;
  this[_next$4] = null;
  this[_data$1] = new _js_helper.LinkedMap.new();
  this[_sessionManager$] = _sessionManager;
  this.id = id;
  this[_lastSeen] = new core.DateTime.now();
  ;
}).prototype = _http._HttpSession.prototype;
dart.addTypeTests(_http._HttpSession);
dart.addTypeCaches(_http._HttpSession);
_http._HttpSession[dart.implements] = () => [_http.HttpSession];
dart.setMethodSignature(_http._HttpSession, () => ({
  __proto__: dart.getMethods(_http._HttpSession.__proto__),
  destroy: dart.fnType(dart.void, []),
  [_markSeen]: dart.fnType(dart.void, []),
  containsValue: dart.fnType(core.bool, [core.Object]),
  [$containsValue]: dart.fnType(core.bool, [core.Object]),
  containsKey: dart.fnType(core.bool, [core.Object]),
  [$containsKey]: dart.fnType(core.bool, [core.Object]),
  _get: dart.fnType(dart.dynamic, [core.Object]),
  [$_get]: dart.fnType(dart.dynamic, [core.Object]),
  _set: dart.fnType(dart.void, [core.Object, core.Object]),
  [$_set]: dart.fnType(dart.void, [core.Object, core.Object]),
  putIfAbsent: dart.fnType(dart.dynamic, [core.Object, core.Object]),
  [$putIfAbsent]: dart.fnType(dart.dynamic, [core.Object, core.Object]),
  addAll: dart.fnType(dart.void, [core.Object]),
  [$addAll]: dart.fnType(dart.void, [core.Object]),
  remove: dart.fnType(dart.dynamic, [core.Object]),
  [$remove]: dart.fnType(dart.dynamic, [core.Object]),
  clear: dart.fnType(dart.void, []),
  [$clear]: dart.fnType(dart.void, []),
  forEach: dart.fnType(dart.void, [dart.fnType(dart.void, [dart.dynamic, dart.dynamic])]),
  [$forEach]: dart.fnType(dart.void, [dart.fnType(dart.void, [dart.dynamic, dart.dynamic])]),
  addEntries: dart.fnType(dart.void, [core.Object]),
  [$addEntries]: dart.fnType(dart.void, [core.Object]),
  map: dart.gFnType((K, V) => [core.Map$(K, V), [dart.fnType(core.MapEntry$(K, V), [dart.dynamic, dart.dynamic])]]),
  [$map]: dart.gFnType((K, V) => [core.Map$(K, V), [dart.fnType(core.MapEntry$(K, V), [dart.dynamic, dart.dynamic])]]),
  removeWhere: dart.fnType(dart.void, [dart.fnType(core.bool, [dart.dynamic, dart.dynamic])]),
  [$removeWhere]: dart.fnType(dart.void, [dart.fnType(core.bool, [dart.dynamic, dart.dynamic])]),
  cast: dart.gFnType((K, V) => [core.Map$(K, V), []]),
  [$cast]: dart.gFnType((K, V) => [core.Map$(K, V), []]),
  update: dart.fnType(dart.dynamic, [core.Object, core.Object], {ifAbsent: core.Object}, {}),
  [$update]: dart.fnType(dart.dynamic, [core.Object, core.Object], {ifAbsent: core.Object}, {}),
  updateAll: dart.fnType(dart.void, [core.Object]),
  [$updateAll]: dart.fnType(dart.void, [core.Object])
}));
dart.setGetterSignature(_http._HttpSession, () => ({
  __proto__: dart.getGetters(_http._HttpSession.__proto__),
  lastSeen: core.DateTime,
  isNew: core.bool,
  entries: core.Iterable$(core.MapEntry),
  [$entries]: core.Iterable$(core.MapEntry),
  keys: core.Iterable,
  [$keys]: core.Iterable,
  values: core.Iterable,
  [$values]: core.Iterable,
  length: core.int,
  [$length]: core.int,
  isEmpty: core.bool,
  [$isEmpty]: core.bool,
  isNotEmpty: core.bool,
  [$isNotEmpty]: core.bool
}));
dart.setSetterSignature(_http._HttpSession, () => ({
  __proto__: dart.getSetters(_http._HttpSession.__proto__),
  onTimeout: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(_http._HttpSession, L76);
dart.setFieldSignature(_http._HttpSession, () => ({
  __proto__: dart.getFields(_http._HttpSession.__proto__),
  [_destroyed]: dart.fieldType(core.bool),
  [_isNew]: dart.fieldType(core.bool),
  [_lastSeen]: dart.fieldType(core.DateTime),
  [_timeoutCallback]: dart.fieldType(core.Function),
  [_sessionManager$]: dart.fieldType(_http._HttpSessionManager),
  [_prev]: dart.fieldType(_http._HttpSession),
  [_next$4]: dart.fieldType(_http._HttpSession),
  id: dart.finalFieldType(core.String),
  [_data$1]: dart.finalFieldType(core.Map)
}));
dart.defineExtensionMethods(_http._HttpSession, [
  'containsValue',
  'containsKey',
  '_get',
  '_set',
  'putIfAbsent',
  'addAll',
  'remove',
  'clear',
  'forEach',
  'addEntries',
  'map',
  'removeWhere',
  'cast',
  'update',
  'updateAll',
  'toString'
]);
dart.defineExtensionAccessors(_http._HttpSession, [
  'entries',
  'keys',
  'values',
  'length',
  'isEmpty',
  'isNotEmpty'
]);
var _sessionTimeout = dart.privateName(_http, "_sessionTimeout");
var _head$0 = dart.privateName(_http, "_head");
var _tail$ = dart.privateName(_http, "_tail");
var _timer = dart.privateName(_http, "_timer");
var _addToTimeoutQueue = dart.privateName(_http, "_addToTimeoutQueue");
var _stopTimer = dart.privateName(_http, "_stopTimer");
var _startTimer = dart.privateName(_http, "_startTimer");
var _timerTimeout = dart.privateName(_http, "_timerTimeout");
_http._HttpSessionManager = class _HttpSessionManager extends core.Object {
  createSessionId() {
    let data = _http._CryptoUtils.getRandomBytes(16);
    return _http._CryptoUtils.bytesToHex(data);
  }
  getSession(id) {
    return this[_sessions][$_get](id);
  }
  createSession() {
    let t150, t149, t148;
    let id = this.createSessionId();
    while (dart.test(this[_sessions][$containsKey](id))) {
      id = this.createSessionId();
    }
    let session = (t148 = this[_sessions], t149 = id, t150 = new _http._HttpSession.new(this, id), t148[$_set](t149, t150), t150);
    this[_addToTimeoutQueue](session);
    return session;
  }
  set sessionTimeout(timeout) {
    this[_sessionTimeout] = timeout;
    this[_stopTimer]();
    this[_startTimer]();
  }
  close() {
    this[_stopTimer]();
  }
  [_bumpToEnd](session) {
    this[_removeFromTimeoutQueue](session);
    this[_addToTimeoutQueue](session);
  }
  [_addToTimeoutQueue](session) {
    if (this[_head$0] == null) {
      if (!(this[_tail$] == null)) dart.assertFailed(null, L81, 150, 14, "_tail == null");
      this[_tail$] = this[_head$0] = session;
      this[_startTimer]();
    } else {
      if (!(this[_timer] != null)) dart.assertFailed(null, L81, 154, 14, "_timer != null");
      if (!(this[_tail$] != null)) dart.assertFailed(null, L81, 155, 14, "_tail != null");
      this[_tail$][_next$4] = session;
      session[_prev] = this[_tail$];
      this[_tail$] = session;
    }
  }
  [_removeFromTimeoutQueue](session) {
    if (session[_next$4] != null) {
      session[_next$4][_prev] = session[_prev];
    }
    if (session[_prev] != null) {
      session[_prev][_next$4] = session[_next$4];
    }
    if (dart.equals(this[_head$0], session)) {
      this[_head$0] = session[_next$4];
      this[_stopTimer]();
      this[_startTimer]();
    }
    if (dart.equals(this[_tail$], session)) {
      this[_tail$] = session[_prev];
    }
    session[_next$4] = session[_prev] = null;
  }
  [_timerTimeout]() {
    this[_stopTimer]();
    if (!(this[_head$0] != null)) dart.assertFailed(null, L81, 184, 12, "_head != null");
    let session = this[_head$0];
    session.destroy();
    if (session[_timeoutCallback] != null) {
      dart.dsend(session, _timeoutCallback, []);
    }
  }
  [_startTimer]() {
    if (!(this[_timer] == null)) dart.assertFailed(null, L81, 193, 12, "_timer == null");
    if (this[_head$0] != null) {
      let seconds = new core.DateTime.now().difference(this[_head$0].lastSeen).inSeconds;
      this[_timer] = async.Timer.new(new core.Duration.new({seconds: dart.notNull(this[_sessionTimeout]) - dart.notNull(seconds)}), dart.bind(this, _timerTimeout));
    }
  }
  [_stopTimer]() {
    if (this[_timer] != null) {
      this[_timer].cancel();
      this[_timer] = null;
    }
  }
};
(_http._HttpSessionManager.new = function() {
  this[_sessionTimeout] = 20 * 60;
  this[_head$0] = null;
  this[_tail$] = null;
  this[_timer] = null;
  this[_sessions] = new (IdentityMapOfStringL$_HttpSessionL()).new();
  ;
}).prototype = _http._HttpSessionManager.prototype;
dart.addTypeTests(_http._HttpSessionManager);
dart.addTypeCaches(_http._HttpSessionManager);
dart.setMethodSignature(_http._HttpSessionManager, () => ({
  __proto__: dart.getMethods(_http._HttpSessionManager.__proto__),
  createSessionId: dart.fnType(core.String, []),
  getSession: dart.fnType(_http._HttpSession, [core.String]),
  createSession: dart.fnType(_http._HttpSession, []),
  close: dart.fnType(dart.void, []),
  [_bumpToEnd]: dart.fnType(dart.void, [_http._HttpSession]),
  [_addToTimeoutQueue]: dart.fnType(dart.void, [_http._HttpSession]),
  [_removeFromTimeoutQueue]: dart.fnType(dart.void, [_http._HttpSession]),
  [_timerTimeout]: dart.fnType(dart.void, []),
  [_startTimer]: dart.fnType(dart.void, []),
  [_stopTimer]: dart.fnType(dart.void, [])
}));
dart.setSetterSignature(_http._HttpSessionManager, () => ({
  __proto__: dart.getSetters(_http._HttpSessionManager.__proto__),
  sessionTimeout: core.int
}));
dart.setLibraryUri(_http._HttpSessionManager, L76);
dart.setFieldSignature(_http._HttpSessionManager, () => ({
  __proto__: dart.getFields(_http._HttpSessionManager.__proto__),
  [_sessions]: dart.fieldType(core.Map$(core.String, _http._HttpSession)),
  [_sessionTimeout]: dart.fieldType(core.int),
  [_head$0]: dart.fieldType(_http._HttpSession),
  [_tail$]: dart.fieldType(_http._HttpSession),
  [_timer]: dart.fieldType(async.Timer)
}));
_http.HttpOverrides = class HttpOverrides extends core.Object {
  static get current() {
    let t148;
    return _http.HttpOverrides.as((t148 = async.Zone.current._get(_http._httpOverridesToken), t148 == null ? _http.HttpOverrides._global : t148));
  }
  static set global(overrides) {
    _http.HttpOverrides._global = overrides;
  }
  static runZoned(R, body, opts) {
    let createHttpClient = opts && 'createHttpClient' in opts ? opts.createHttpClient : null;
    let findProxyFromEnvironment = opts && 'findProxyFromEnvironment' in opts ? opts.findProxyFromEnvironment : null;
    let overrides = new _http._HttpOverridesScope.new(createHttpClient, findProxyFromEnvironment);
    return _http._asyncRunZoned(R, body, {zoneValues: new _js_helper.LinkedMap.from([_http._httpOverridesToken, overrides])});
  }
  static runWithHttpOverrides(R, body, overrides) {
    return _http._asyncRunZoned(R, body, {zoneValues: new _js_helper.LinkedMap.from([_http._httpOverridesToken, overrides])});
  }
  createHttpClient(context) {
    return new _http._HttpClient.new(context);
  }
  findProxyFromEnvironment(url, environment) {
    return _http._HttpClient._findProxyFromEnvironment(url, environment);
  }
};
(_http.HttpOverrides.new = function() {
  ;
}).prototype = _http.HttpOverrides.prototype;
dart.addTypeTests(_http.HttpOverrides);
dart.addTypeCaches(_http.HttpOverrides);
dart.setMethodSignature(_http.HttpOverrides, () => ({
  __proto__: dart.getMethods(_http.HttpOverrides.__proto__),
  createHttpClient: dart.fnType(_http.HttpClient, [io.SecurityContext]),
  findProxyFromEnvironment: dart.fnType(core.String, [core.Uri, core.Map$(core.String, core.String)])
}));
dart.setLibraryUri(_http.HttpOverrides, L76);
dart.defineLazy(_http.HttpOverrides, {
  /*_http.HttpOverrides._global*/get _global() {
    return null;
  },
  set _global(_) {}
}, true);
var _previous$5 = dart.privateName(_http, "_previous");
var _createHttpClient$ = dart.privateName(_http, "_createHttpClient");
var _findProxyFromEnvironment$ = dart.privateName(_http, "_findProxyFromEnvironment");
_http._HttpOverridesScope = class _HttpOverridesScope extends _http.HttpOverrides {
  createHttpClient(context) {
    let t148;
    if (this[_createHttpClient$] != null) {
      t148 = context;
      return this[_createHttpClient$](t148);
    }
    if (this[_previous$5] != null) return this[_previous$5].createHttpClient(context);
    return super.createHttpClient(context);
  }
  findProxyFromEnvironment(url, environment) {
    let t149, t148;
    if (this[_findProxyFromEnvironment$] != null) {
      t148 = url;
      t149 = environment;
      return this[_findProxyFromEnvironment$](t148, t149);
    }
    if (this[_previous$5] != null) {
      return this[_previous$5].findProxyFromEnvironment(url, environment);
    }
    return super.findProxyFromEnvironment(url, environment);
  }
};
(_http._HttpOverridesScope.new = function(_createHttpClient, _findProxyFromEnvironment) {
  this[_previous$5] = _http.HttpOverrides.current;
  this[_createHttpClient$] = _createHttpClient;
  this[_findProxyFromEnvironment$] = _findProxyFromEnvironment;
  ;
}).prototype = _http._HttpOverridesScope.prototype;
dart.addTypeTests(_http._HttpOverridesScope);
dart.addTypeCaches(_http._HttpOverridesScope);
dart.setLibraryUri(_http._HttpOverridesScope, L76);
dart.setFieldSignature(_http._HttpOverridesScope, () => ({
  __proto__: dart.getFields(_http._HttpOverridesScope.__proto__),
  [_previous$5]: dart.finalFieldType(_http.HttpOverrides),
  [_createHttpClient$]: dart.finalFieldType(dart.fnType(_http.HttpClient, [io.SecurityContext])),
  [_findProxyFromEnvironment$]: dart.finalFieldType(dart.fnType(core.String, [core.Uri, core.Map$(core.String, core.String)]))
}));
_http.WebSocketStatus = class WebSocketStatus extends core.Object {};
(_http.WebSocketStatus.new = function() {
  ;
}).prototype = _http.WebSocketStatus.prototype;
dart.addTypeTests(_http.WebSocketStatus);
dart.addTypeCaches(_http.WebSocketStatus);
dart.setLibraryUri(_http.WebSocketStatus, L76);
dart.defineLazy(_http.WebSocketStatus, {
  /*_http.WebSocketStatus.normalClosure*/get normalClosure() {
    return 1000;
  },
  /*_http.WebSocketStatus.goingAway*/get goingAway() {
    return 1001;
  },
  /*_http.WebSocketStatus.protocolError*/get protocolError() {
    return 1002;
  },
  /*_http.WebSocketStatus.unsupportedData*/get unsupportedData() {
    return 1003;
  },
  /*_http.WebSocketStatus.reserved1004*/get reserved1004() {
    return 1004;
  },
  /*_http.WebSocketStatus.noStatusReceived*/get noStatusReceived() {
    return 1005;
  },
  /*_http.WebSocketStatus.abnormalClosure*/get abnormalClosure() {
    return 1006;
  },
  /*_http.WebSocketStatus.invalidFramePayloadData*/get invalidFramePayloadData() {
    return 1007;
  },
  /*_http.WebSocketStatus.policyViolation*/get policyViolation() {
    return 1008;
  },
  /*_http.WebSocketStatus.messageTooBig*/get messageTooBig() {
    return 1009;
  },
  /*_http.WebSocketStatus.missingMandatoryExtension*/get missingMandatoryExtension() {
    return 1010;
  },
  /*_http.WebSocketStatus.internalServerError*/get internalServerError() {
    return 1011;
  },
  /*_http.WebSocketStatus.reserved1015*/get reserved1015() {
    return 1015;
  },
  /*_http.WebSocketStatus.NORMAL_CLOSURE*/get NORMAL_CLOSURE() {
    return 1000;
  },
  /*_http.WebSocketStatus.GOING_AWAY*/get GOING_AWAY() {
    return 1001;
  },
  /*_http.WebSocketStatus.PROTOCOL_ERROR*/get PROTOCOL_ERROR() {
    return 1002;
  },
  /*_http.WebSocketStatus.UNSUPPORTED_DATA*/get UNSUPPORTED_DATA() {
    return 1003;
  },
  /*_http.WebSocketStatus.RESERVED_1004*/get RESERVED_1004() {
    return 1004;
  },
  /*_http.WebSocketStatus.NO_STATUS_RECEIVED*/get NO_STATUS_RECEIVED() {
    return 1005;
  },
  /*_http.WebSocketStatus.ABNORMAL_CLOSURE*/get ABNORMAL_CLOSURE() {
    return 1006;
  },
  /*_http.WebSocketStatus.INVALID_FRAME_PAYLOAD_DATA*/get INVALID_FRAME_PAYLOAD_DATA() {
    return 1007;
  },
  /*_http.WebSocketStatus.POLICY_VIOLATION*/get POLICY_VIOLATION() {
    return 1008;
  },
  /*_http.WebSocketStatus.MESSAGE_TOO_BIG*/get MESSAGE_TOO_BIG() {
    return 1009;
  },
  /*_http.WebSocketStatus.MISSING_MANDATORY_EXTENSION*/get MISSING_MANDATORY_EXTENSION() {
    return 1010;
  },
  /*_http.WebSocketStatus.INTERNAL_SERVER_ERROR*/get INTERNAL_SERVER_ERROR() {
    return 1011;
  },
  /*_http.WebSocketStatus.RESERVED_1015*/get RESERVED_1015() {
    return 1015;
  }
}, true);
var _createServerResponseHeader = dart.privateName(_http, "_createServerResponseHeader");
var _createClientRequestHeader = dart.privateName(_http, "_createClientRequestHeader");
var _createHeader = dart.privateName(_http, "_createHeader");
var clientNoContextTakeover$ = dart.privateName(_http, "CompressionOptions.clientNoContextTakeover");
var serverNoContextTakeover$ = dart.privateName(_http, "CompressionOptions.serverNoContextTakeover");
var clientMaxWindowBits$ = dart.privateName(_http, "CompressionOptions.clientMaxWindowBits");
var serverMaxWindowBits$ = dart.privateName(_http, "CompressionOptions.serverMaxWindowBits");
var enabled$ = dart.privateName(_http, "CompressionOptions.enabled");
var C482;
var C483;
_http.CompressionOptions = class CompressionOptions extends core.Object {
  get clientNoContextTakeover() {
    return this[clientNoContextTakeover$];
  }
  set clientNoContextTakeover(value) {
    super.clientNoContextTakeover = value;
  }
  get serverNoContextTakeover() {
    return this[serverNoContextTakeover$];
  }
  set serverNoContextTakeover(value) {
    super.serverNoContextTakeover = value;
  }
  get clientMaxWindowBits() {
    return this[clientMaxWindowBits$];
  }
  set clientMaxWindowBits(value) {
    super.clientMaxWindowBits = value;
  }
  get serverMaxWindowBits() {
    return this[serverMaxWindowBits$];
  }
  set serverMaxWindowBits(value) {
    super.serverMaxWindowBits = value;
  }
  get enabled() {
    return this[enabled$];
  }
  set enabled(value) {
    super.enabled = value;
  }
  [_createServerResponseHeader](requested) {
    let t148, t148$;
    let info = new _http._CompressionMaxWindowBits.new();
    let mwb = null;
    let part = null;
    if ((t148 = requested, t148 == null ? null : t148.parameters) != null) {
      part = requested.parameters[$_get]("server_max_window_bits");
    }
    if (part != null) {
      if (part.length >= 2 && part[$startsWith]("0")) {
        dart.throw(new core.ArgumentError.new("Illegal 0 padding on value."));
      } else {
        mwb = this.serverMaxWindowBits == null ? (t148$ = core.int.tryParse(part), t148$ == null ? 15 : t148$) : this.serverMaxWindowBits;
        info.headerValue = "; server_max_window_bits=" + dart.str(mwb);
        info.maxWindowBits = mwb;
      }
    } else {
      info.headerValue = "";
      info.maxWindowBits = 15;
    }
    return info;
  }
  [_createClientRequestHeader](requested, size) {
    let info = "";
    if (requested != null) {
      info = "; client_max_window_bits=" + dart.str(size);
    } else {
      if (this.clientMaxWindowBits == null) {
        info = "; client_max_window_bits";
      } else {
        info = "; client_max_window_bits=" + dart.str(this.clientMaxWindowBits);
      }
      if (this.serverMaxWindowBits != null) {
        info = info + ("; server_max_window_bits=" + dart.str(this.serverMaxWindowBits));
      }
    }
    return info;
  }
  [_createHeader](requested = null) {
    let t148, t148$, t148$0, t148$1;
    let info = new _http._CompressionMaxWindowBits.new("", 0);
    if (!dart.test(this.enabled)) {
      return info;
    }
    info.headerValue = "permessage-deflate";
    if (dart.test(this.clientNoContextTakeover) && (requested == null || requested != null && dart.test(requested.parameters[$containsKey]("client_no_context_takeover")))) {
      t148 = info;
      t148.headerValue = dart.notNull(t148.headerValue) + "; client_no_context_takeover";
    }
    if (dart.test(this.serverNoContextTakeover) && (requested == null || requested != null && dart.test(requested.parameters[$containsKey]("server_no_context_takeover")))) {
      t148$ = info;
      t148$.headerValue = dart.notNull(t148$.headerValue) + "; server_no_context_takeover";
    }
    let headerList = this[_createServerResponseHeader](requested);
    t148$0 = info;
    t148$0.headerValue = dart.notNull(t148$0.headerValue) + dart.notNull(headerList.headerValue);
    info.maxWindowBits = headerList.maxWindowBits;
    t148$1 = info;
    t148$1.headerValue = dart.notNull(t148$1.headerValue) + dart.notNull(this[_createClientRequestHeader](requested, info.maxWindowBits));
    return info;
  }
};
(_http.CompressionOptions.new = function(opts) {
  let clientNoContextTakeover = opts && 'clientNoContextTakeover' in opts ? opts.clientNoContextTakeover : false;
  let serverNoContextTakeover = opts && 'serverNoContextTakeover' in opts ? opts.serverNoContextTakeover : false;
  let clientMaxWindowBits = opts && 'clientMaxWindowBits' in opts ? opts.clientMaxWindowBits : null;
  let serverMaxWindowBits = opts && 'serverMaxWindowBits' in opts ? opts.serverMaxWindowBits : null;
  let enabled = opts && 'enabled' in opts ? opts.enabled : true;
  this[clientNoContextTakeover$] = clientNoContextTakeover;
  this[serverNoContextTakeover$] = serverNoContextTakeover;
  this[clientMaxWindowBits$] = clientMaxWindowBits;
  this[serverMaxWindowBits$] = serverMaxWindowBits;
  this[enabled$] = enabled;
  ;
}).prototype = _http.CompressionOptions.prototype;
dart.addTypeTests(_http.CompressionOptions);
dart.addTypeCaches(_http.CompressionOptions);
dart.setMethodSignature(_http.CompressionOptions, () => ({
  __proto__: dart.getMethods(_http.CompressionOptions.__proto__),
  [_createServerResponseHeader]: dart.fnType(_http._CompressionMaxWindowBits, [_http.HeaderValue]),
  [_createClientRequestHeader]: dart.fnType(core.String, [_http.HeaderValue, core.int]),
  [_createHeader]: dart.fnType(_http._CompressionMaxWindowBits, [], [_http.HeaderValue])
}));
dart.setLibraryUri(_http.CompressionOptions, L76);
dart.setFieldSignature(_http.CompressionOptions, () => ({
  __proto__: dart.getFields(_http.CompressionOptions.__proto__),
  clientNoContextTakeover: dart.finalFieldType(core.bool),
  serverNoContextTakeover: dart.finalFieldType(core.bool),
  clientMaxWindowBits: dart.finalFieldType(core.int),
  serverMaxWindowBits: dart.finalFieldType(core.int),
  enabled: dart.finalFieldType(core.bool)
}));
dart.defineLazy(_http.CompressionOptions, {
  /*_http.CompressionOptions.compressionDefault*/get compressionDefault() {
    return C482 || CT.C482;
  },
  /*_http.CompressionOptions.DEFAULT*/get DEFAULT() {
    return C482 || CT.C482;
  },
  /*_http.CompressionOptions.compressionOff*/get compressionOff() {
    return C483 || CT.C483;
  },
  /*_http.CompressionOptions.OFF*/get OFF() {
    return C483 || CT.C483;
  }
}, true);
_http.WebSocketTransformer = class WebSocketTransformer extends core.Object {
  static new(opts) {
    let protocolSelector = opts && 'protocolSelector' in opts ? opts.protocolSelector : null;
    let compression = opts && 'compression' in opts ? opts.compression : C482 || CT.C482;
    return new _http._WebSocketTransformerImpl.new(protocolSelector, compression);
  }
  static upgrade(request, opts) {
    let protocolSelector = opts && 'protocolSelector' in opts ? opts.protocolSelector : null;
    let compression = opts && 'compression' in opts ? opts.compression : C482 || CT.C482;
    return _http._WebSocketTransformerImpl._upgrade(request, protocolSelector, compression);
  }
  static isUpgradeRequest(request) {
    return _http._WebSocketTransformerImpl._isUpgradeRequest(request);
  }
};
(_http.WebSocketTransformer[dart.mixinNew] = function() {
}).prototype = _http.WebSocketTransformer.prototype;
dart.addTypeTests(_http.WebSocketTransformer);
dart.addTypeCaches(_http.WebSocketTransformer);
_http.WebSocketTransformer[dart.implements] = () => [async.StreamTransformer$(_http.HttpRequest, _http.WebSocket)];
dart.setLibraryUri(_http.WebSocketTransformer, L76);
var pingInterval = dart.privateName(_http, "WebSocket.pingInterval");
_http.WebSocket = class WebSocket extends core.Object {
  get pingInterval() {
    return this[pingInterval];
  }
  set pingInterval(value) {
    this[pingInterval] = value;
  }
  static connect(url, opts) {
    let protocols = opts && 'protocols' in opts ? opts.protocols : null;
    let headers = opts && 'headers' in opts ? opts.headers : null;
    let compression = opts && 'compression' in opts ? opts.compression : C482 || CT.C482;
    return _http._WebSocketImpl.connect(url, protocols, headers, {compression: compression});
  }
  static fromUpgradedSocket(socket, opts) {
    let protocol = opts && 'protocol' in opts ? opts.protocol : null;
    let serverSide = opts && 'serverSide' in opts ? opts.serverSide : null;
    let compression = opts && 'compression' in opts ? opts.compression : C482 || CT.C482;
    if (serverSide == null) {
      dart.throw(new core.ArgumentError.new("The serverSide argument must be passed " + "explicitly to WebSocket.fromUpgradedSocket."));
    }
    return new _http._WebSocketImpl._fromSocket(socket, protocol, compression, serverSide);
  }
  static get userAgent() {
    return _http._WebSocketImpl.userAgent;
  }
  static set userAgent(userAgent) {
    _http._WebSocketImpl.userAgent = userAgent;
  }
};
(_http.WebSocket.new = function() {
  this[pingInterval] = null;
  ;
}).prototype = _http.WebSocket.prototype;
_http.WebSocket.prototype[dart.isStream] = true;
dart.addTypeTests(_http.WebSocket);
dart.addTypeCaches(_http.WebSocket);
_http.WebSocket[dart.implements] = () => [async.Stream, async.StreamSink];
dart.setLibraryUri(_http.WebSocket, L76);
dart.setFieldSignature(_http.WebSocket, () => ({
  __proto__: dart.getFields(_http.WebSocket.__proto__),
  pingInterval: dart.fieldType(core.Duration)
}));
dart.defineLazy(_http.WebSocket, {
  /*_http.WebSocket.connecting*/get connecting() {
    return 0;
  },
  /*_http.WebSocket.open*/get open() {
    return 1;
  },
  /*_http.WebSocket.closing*/get closing() {
    return 2;
  },
  /*_http.WebSocket.closed*/get closed() {
    return 3;
  },
  /*_http.WebSocket.CONNECTING*/get CONNECTING() {
    return 0;
  },
  /*_http.WebSocket.OPEN*/get OPEN() {
    return 1;
  },
  /*_http.WebSocket.CLOSING*/get CLOSING() {
    return 2;
  },
  /*_http.WebSocket.CLOSED*/get CLOSED() {
    return 3;
  }
}, true);
var message$19 = dart.privateName(_http, "WebSocketException.message");
_http.WebSocketException = class WebSocketException extends core.Object {
  get message() {
    return this[message$19];
  }
  set message(value) {
    super.message = value;
  }
  toString() {
    return "WebSocketException: " + dart.str(this.message);
  }
};
(_http.WebSocketException.new = function(message = "") {
  this[message$19] = message;
  ;
}).prototype = _http.WebSocketException.prototype;
dart.addTypeTests(_http.WebSocketException);
dart.addTypeCaches(_http.WebSocketException);
_http.WebSocketException[dart.implements] = () => [io.IOException];
dart.setLibraryUri(_http.WebSocketException, L76);
dart.setFieldSignature(_http.WebSocketException, () => ({
  __proto__: dart.getFields(_http.WebSocketException.__proto__),
  message: dart.finalFieldType(core.String)
}));
dart.defineExtensionMethods(_http.WebSocketException, ['toString']);
_http._WebSocketMessageType = class _WebSocketMessageType extends core.Object {};
(_http._WebSocketMessageType.new = function() {
  ;
}).prototype = _http._WebSocketMessageType.prototype;
dart.addTypeTests(_http._WebSocketMessageType);
dart.addTypeCaches(_http._WebSocketMessageType);
dart.setLibraryUri(_http._WebSocketMessageType, L76);
dart.defineLazy(_http._WebSocketMessageType, {
  /*_http._WebSocketMessageType.NONE*/get NONE() {
    return 0;
  },
  /*_http._WebSocketMessageType.TEXT*/get TEXT() {
    return 1;
  },
  /*_http._WebSocketMessageType.BINARY*/get BINARY() {
    return 2;
  }
}, true);
_http._WebSocketOpcode = class _WebSocketOpcode extends core.Object {};
(_http._WebSocketOpcode.new = function() {
  ;
}).prototype = _http._WebSocketOpcode.prototype;
dart.addTypeTests(_http._WebSocketOpcode);
dart.addTypeCaches(_http._WebSocketOpcode);
dart.setLibraryUri(_http._WebSocketOpcode, L76);
dart.defineLazy(_http._WebSocketOpcode, {
  /*_http._WebSocketOpcode.CONTINUATION*/get CONTINUATION() {
    return 0;
  },
  /*_http._WebSocketOpcode.TEXT*/get TEXT() {
    return 1;
  },
  /*_http._WebSocketOpcode.BINARY*/get BINARY() {
    return 2;
  },
  /*_http._WebSocketOpcode.RESERVED_3*/get RESERVED_3() {
    return 3;
  },
  /*_http._WebSocketOpcode.RESERVED_4*/get RESERVED_4() {
    return 4;
  },
  /*_http._WebSocketOpcode.RESERVED_5*/get RESERVED_5() {
    return 5;
  },
  /*_http._WebSocketOpcode.RESERVED_6*/get RESERVED_6() {
    return 6;
  },
  /*_http._WebSocketOpcode.RESERVED_7*/get RESERVED_7() {
    return 7;
  },
  /*_http._WebSocketOpcode.CLOSE*/get CLOSE() {
    return 8;
  },
  /*_http._WebSocketOpcode.PING*/get PING() {
    return 9;
  },
  /*_http._WebSocketOpcode.PONG*/get PONG() {
    return 10;
  },
  /*_http._WebSocketOpcode.RESERVED_B*/get RESERVED_B() {
    return 11;
  },
  /*_http._WebSocketOpcode.RESERVED_C*/get RESERVED_C() {
    return 12;
  },
  /*_http._WebSocketOpcode.RESERVED_D*/get RESERVED_D() {
    return 13;
  },
  /*_http._WebSocketOpcode.RESERVED_E*/get RESERVED_E() {
    return 14;
  },
  /*_http._WebSocketOpcode.RESERVED_F*/get RESERVED_F() {
    return 15;
  }
}, true);
_http._EncodedString = class _EncodedString extends core.Object {};
(_http._EncodedString.new = function(bytes) {
  this.bytes = bytes;
  ;
}).prototype = _http._EncodedString.prototype;
dart.addTypeTests(_http._EncodedString);
dart.addTypeCaches(_http._EncodedString);
dart.setLibraryUri(_http._EncodedString, L76);
dart.setFieldSignature(_http._EncodedString, () => ({
  __proto__: dart.getFields(_http._EncodedString.__proto__),
  bytes: dart.finalFieldType(core.List$(core.int))
}));
_http._CompressionMaxWindowBits = class _CompressionMaxWindowBits extends core.Object {
  toString() {
    return this.headerValue;
  }
};
(_http._CompressionMaxWindowBits.new = function(headerValue = null, maxWindowBits = null) {
  this.headerValue = headerValue;
  this.maxWindowBits = maxWindowBits;
  ;
}).prototype = _http._CompressionMaxWindowBits.prototype;
dart.addTypeTests(_http._CompressionMaxWindowBits);
dart.addTypeCaches(_http._CompressionMaxWindowBits);
dart.setLibraryUri(_http._CompressionMaxWindowBits, L76);
dart.setFieldSignature(_http._CompressionMaxWindowBits, () => ({
  __proto__: dart.getFields(_http._CompressionMaxWindowBits.__proto__),
  headerValue: dart.fieldType(core.String),
  maxWindowBits: dart.fieldType(core.int)
}));
dart.defineExtensionMethods(_http._CompressionMaxWindowBits, ['toString']);
var _fin = dart.privateName(_http, "_fin");
var _compressed = dart.privateName(_http, "_compressed");
var _opcode = dart.privateName(_http, "_opcode");
var _len = dart.privateName(_http, "_len");
var _masked = dart.privateName(_http, "_masked");
var _remainingLenBytes = dart.privateName(_http, "_remainingLenBytes");
var _remainingMaskingKeyBytes = dart.privateName(_http, "_remainingMaskingKeyBytes");
var _remainingPayloadBytes = dart.privateName(_http, "_remainingPayloadBytes");
var _unmaskingIndex = dart.privateName(_http, "_unmaskingIndex");
var _currentMessageType = dart.privateName(_http, "_currentMessageType");
var _eventSink$ = dart.privateName(_http, "_eventSink");
var _maskingBytes = dart.privateName(_http, "_maskingBytes");
var _payload = dart.privateName(_http, "_payload");
var _serverSide$ = dart.privateName(_http, "_serverSide");
var _deflate$ = dart.privateName(_http, "_deflate");
var _isControlFrame = dart.privateName(_http, "_isControlFrame");
var _lengthDone = dart.privateName(_http, "_lengthDone");
var _maskDone = dart.privateName(_http, "_maskDone");
var _unmask = dart.privateName(_http, "_unmask");
var _controlFrameEnd = dart.privateName(_http, "_controlFrameEnd");
var _messageFrameEnd = dart.privateName(_http, "_messageFrameEnd");
var _startPayload = dart.privateName(_http, "_startPayload");
var _prepareForNextFrame = dart.privateName(_http, "_prepareForNextFrame");
_http._WebSocketProtocolTransformer = class _WebSocketProtocolTransformer extends async.StreamTransformerBase$(core.List$(core.int), dart.dynamic) {
  bind(stream) {
    StreamOfListLOfintL().as(stream);
    return async.Stream.eventTransformed(stream, dart.fn(eventSink => {
      if (this[_eventSink$] != null) {
        dart.throw(new core.StateError.new("WebSocket transformer already used."));
      }
      this[_eventSink$] = eventSink;
      return this;
    }, EventSinkLTo_WebSocketProtocolTransformerL()));
  }
  addError(error, stackTrace = null) {
    core.ArgumentError.checkNotNull(core.Object, error, "error");
    this[_eventSink$].addError(error, stackTrace);
  }
  close() {
    this[_eventSink$].close();
  }
  add(bytes) {
    let t148;
    ListOfintL().as(bytes);
    let buffer = typed_data.Uint8List.is(bytes) ? bytes : _native_typed_data.NativeUint8List.fromList(bytes);
    let index = 0;
    let lastIndex = buffer[$length];
    if (this[_state$1] === 5) {
      dart.throw(new _http.WebSocketException.new("Data on closed connection"));
    }
    if (this[_state$1] === 6) {
      dart.throw(new _http.WebSocketException.new("Data on failed connection"));
    }
    while (index < dart.notNull(lastIndex) && this[_state$1] !== 5 && this[_state$1] !== 6) {
      let byte = buffer[$_get](index);
      if (dart.notNull(this[_state$1]) <= 2) {
        if (this[_state$1] === 0) {
          this[_fin] = (dart.notNull(byte) & 128) !== 0;
          if ((dart.notNull(byte) & (32 | 16) >>> 0) !== 0) {
            dart.throw(new _http.WebSocketException.new("Protocol error"));
          }
          this[_opcode] = (dart.notNull(byte) & 15) >>> 0;
          if (this[_opcode] !== 0) {
            if ((dart.notNull(byte) & 64) !== 0) {
              this[_compressed] = true;
            } else {
              this[_compressed] = false;
            }
          }
          if (dart.notNull(this[_opcode]) <= 2) {
            if (this[_opcode] === 0) {
              if (this[_currentMessageType] === 0) {
                dart.throw(new _http.WebSocketException.new("Protocol error"));
              }
            } else {
              if (!(this[_opcode] === 1 || this[_opcode] === 2)) dart.assertFailed(null, L82, 166, 22, "_opcode == _WebSocketOpcode.TEXT ||\n                  _opcode == _WebSocketOpcode.BINARY");
              if (this[_currentMessageType] !== 0) {
                dart.throw(new _http.WebSocketException.new("Protocol error"));
              }
              this[_currentMessageType] = this[_opcode];
            }
          } else if (dart.notNull(this[_opcode]) >= 8 && dart.notNull(this[_opcode]) <= 10) {
            if (!dart.test(this[_fin])) dart.throw(new _http.WebSocketException.new("Protocol error"));
          } else {
            dart.throw(new _http.WebSocketException.new("Protocol error"));
          }
          this[_state$1] = 1;
        } else if (this[_state$1] === 1) {
          this[_masked] = (dart.notNull(byte) & 128) !== 0;
          this[_len] = dart.notNull(byte) & 127;
          if (dart.test(this[_isControlFrame]()) && dart.notNull(this[_len]) > 125) {
            dart.throw(new _http.WebSocketException.new("Protocol error"));
          }
          if (this[_len] === 126) {
            this[_len] = 0;
            this[_remainingLenBytes] = 2;
            this[_state$1] = 2;
          } else if (this[_len] === 127) {
            this[_len] = 0;
            this[_remainingLenBytes] = 8;
            this[_state$1] = 2;
          } else {
            if (!(dart.notNull(this[_len]) < 126)) dart.assertFailed(null, L82, 196, 20, "_len < 126");
            this[_lengthDone]();
          }
        } else {
          if (!(this[_state$1] === 2)) dart.assertFailed(null, L82, 200, 18, "_state == LEN_REST");
          this[_len] = (dart.notNull(this[_len]) << 8 | dart.notNull(byte)) >>> 0;
          this[_remainingLenBytes] = dart.notNull(this[_remainingLenBytes]) - 1;
          if (this[_remainingLenBytes] === 0) {
            this[_lengthDone]();
          }
        }
      } else {
        if (this[_state$1] === 3) {
          this[_maskingBytes][$_set](4 - dart.notNull((t148 = this[_remainingMaskingKeyBytes], this[_remainingMaskingKeyBytes] = dart.notNull(t148) - 1, t148)), byte);
          if (this[_remainingMaskingKeyBytes] === 0) {
            this[_maskDone]();
          }
        } else {
          if (!(this[_state$1] === 4)) dart.assertFailed(null, L82, 214, 18, "_state == PAYLOAD");
          let payloadLength = math.min(core.int, dart.notNull(lastIndex) - index, this[_remainingPayloadBytes]);
          this[_remainingPayloadBytes] = dart.notNull(this[_remainingPayloadBytes]) - payloadLength;
          if (dart.test(this[_masked])) {
            this[_unmask](index, payloadLength, buffer);
          }
          this[_payload].add(typed_data.Uint8List.view(buffer[$buffer], dart.notNull(buffer[$offsetInBytes]) + index, payloadLength));
          index = index + payloadLength;
          if (dart.test(this[_isControlFrame]())) {
            if (this[_remainingPayloadBytes] === 0) this[_controlFrameEnd]();
          } else {
            if (this[_currentMessageType] !== 1 && this[_currentMessageType] !== 2) {
              dart.throw(new _http.WebSocketException.new("Protocol error"));
            }
            if (this[_remainingPayloadBytes] === 0) this[_messageFrameEnd]();
          }
          index = index - 1;
        }
      }
      index = index + 1;
    }
  }
  [_unmask](index, length, buffer) {
    let t150, t149, t148, t149$, t148$, t150$, t149$0, t148$0;
    if (dart.notNull(length) >= 16) {
      let startOffset = 16 - (dart.notNull(index) & 15);
      let end = dart.notNull(index) + startOffset;
      for (let i = index; dart.notNull(i) < end; i = dart.notNull(i) + 1) {
        t148 = buffer;
        t149 = i;
        t148[$_set](t149, (dart.notNull(t148[$_get](t149)) ^ dart.notNull(core.int.as(this[_maskingBytes][$_get](dart.notNull((t150 = this[_unmaskingIndex], this[_unmaskingIndex] = dart.notNull(t150) + 1, t150)) & 3)))) >>> 0);
      }
      index = dart.notNull(index) + startOffset;
      length = dart.notNull(length) - startOffset;
      let blockCount = (dart.notNull(length) / 16)[$truncate]();
      if (blockCount > 0) {
        let mask = 0;
        for (let i = 3; i >= 0; i = i - 1) {
          mask = (mask << 8 | dart.notNull(core.int.as(this[_maskingBytes][$_get](dart.notNull(this[_unmaskingIndex]) + i & 3)))) >>> 0;
        }
        let blockMask = new _native_typed_data.NativeInt32x4.new(mask, mask, mask, mask);
        let blockBuffer = typed_data.Int32x4List.view(buffer[$buffer], dart.notNull(buffer[$offsetInBytes]) + dart.notNull(index), blockCount);
        for (let i = 0; i < dart.notNull(blockBuffer[$length]); i = i + 1) {
          t148$ = blockBuffer;
          t149$ = i;
          t148$[$_set](t149$, t148$[$_get](t149$)['^'](blockMask));
        }
        let bytes = blockCount * 16;
        index = dart.notNull(index) + bytes;
        length = dart.notNull(length) - bytes;
      }
    }
    let end = dart.notNull(index) + dart.notNull(length);
    for (let i = index; dart.notNull(i) < end; i = dart.notNull(i) + 1) {
      t148$0 = buffer;
      t149$0 = i;
      t148$0[$_set](t149$0, (dart.notNull(t148$0[$_get](t149$0)) ^ dart.notNull(core.int.as(this[_maskingBytes][$_get](dart.notNull((t150$ = this[_unmaskingIndex], this[_unmaskingIndex] = dart.notNull(t150$) + 1, t150$)) & 3)))) >>> 0);
    }
  }
  [_lengthDone]() {
    if (dart.test(this[_masked])) {
      if (!dart.test(this[_serverSide$])) {
        dart.throw(new _http.WebSocketException.new("Received masked frame from server"));
      }
      this[_state$1] = 3;
    } else {
      if (dart.test(this[_serverSide$])) {
        dart.throw(new _http.WebSocketException.new("Received unmasked frame from client"));
      }
      this[_remainingPayloadBytes] = this[_len];
      this[_startPayload]();
    }
  }
  [_maskDone]() {
    this[_remainingPayloadBytes] = this[_len];
    this[_startPayload]();
  }
  [_startPayload]() {
    if (this[_remainingPayloadBytes] === 0) {
      if (dart.test(this[_isControlFrame]())) {
        switch (this[_opcode]) {
          case 8:
          {
            this[_state$1] = 5;
            this[_eventSink$].close();
            break;
          }
          case 9:
          {
            this[_eventSink$].add(new _http._WebSocketPing.new());
            break;
          }
          case 10:
          {
            this[_eventSink$].add(new _http._WebSocketPong.new());
            break;
          }
        }
        this[_prepareForNextFrame]();
      } else {
        this[_messageFrameEnd]();
      }
    } else {
      this[_state$1] = 4;
    }
  }
  [_messageFrameEnd]() {
    if (dart.test(this[_fin])) {
      let bytes = this[_payload].takeBytes();
      if (this[_deflate$] != null && dart.test(this[_compressed])) {
        bytes = this[_deflate$].processIncomingMessage(bytes);
      }
      switch (this[_currentMessageType]) {
        case 1:
        {
          this[_eventSink$].add(convert.utf8.decode(bytes));
          break;
        }
        case 2:
        {
          this[_eventSink$].add(bytes);
          break;
        }
      }
      this[_currentMessageType] = 0;
    }
    this[_prepareForNextFrame]();
  }
  [_controlFrameEnd]() {
    switch (this[_opcode]) {
      case 8:
      {
        this.closeCode = 1005;
        let payload = this[_payload].takeBytes();
        if (dart.notNull(payload[$length]) > 0) {
          if (payload[$length] === 1) {
            dart.throw(new _http.WebSocketException.new("Protocol error"));
          }
          this.closeCode = (dart.notNull(payload[$_get](0)) << 8 | dart.notNull(payload[$_get](1))) >>> 0;
          if (this.closeCode === 1005) {
            dart.throw(new _http.WebSocketException.new("Protocol error"));
          }
          if (dart.notNull(payload[$length]) > 2) {
            this.closeReason = convert.utf8.decode(payload[$sublist](2));
          }
        }
        this[_state$1] = 5;
        this[_eventSink$].close();
        break;
      }
      case 9:
      {
        this[_eventSink$].add(new _http._WebSocketPing.new(this[_payload].takeBytes()));
        break;
      }
      case 10:
      {
        this[_eventSink$].add(new _http._WebSocketPong.new(this[_payload].takeBytes()));
        break;
      }
    }
    this[_prepareForNextFrame]();
  }
  [_isControlFrame]() {
    return this[_opcode] === 8 || this[_opcode] === 9 || this[_opcode] === 10;
  }
  [_prepareForNextFrame]() {
    if (this[_state$1] !== 5 && this[_state$1] !== 6) this[_state$1] = 0;
    this[_fin] = false;
    this[_opcode] = -1;
    this[_len] = -1;
    this[_remainingLenBytes] = -1;
    this[_remainingMaskingKeyBytes] = 4;
    this[_remainingPayloadBytes] = -1;
    this[_unmaskingIndex] = 0;
  }
};
(_http._WebSocketProtocolTransformer.new = function(_serverSide = false, _deflate = null) {
  this[_state$1] = 0;
  this[_fin] = false;
  this[_compressed] = false;
  this[_opcode] = -1;
  this[_len] = -1;
  this[_masked] = false;
  this[_remainingLenBytes] = -1;
  this[_remainingMaskingKeyBytes] = 4;
  this[_remainingPayloadBytes] = -1;
  this[_unmaskingIndex] = 0;
  this[_currentMessageType] = 0;
  this.closeCode = 1005;
  this.closeReason = "";
  this[_eventSink$] = null;
  this[_maskingBytes] = core.List.new(4);
  this[_payload] = io.BytesBuilder.new({copy: false});
  this[_serverSide$] = _serverSide;
  this[_deflate$] = _deflate;
  _http._WebSocketProtocolTransformer.__proto__.new.call(this);
  ;
}).prototype = _http._WebSocketProtocolTransformer.prototype;
dart.addTypeTests(_http._WebSocketProtocolTransformer);
dart.addTypeCaches(_http._WebSocketProtocolTransformer);
_http._WebSocketProtocolTransformer[dart.implements] = () => [async.EventSink$(core.List$(core.int))];
dart.setMethodSignature(_http._WebSocketProtocolTransformer, () => ({
  __proto__: dart.getMethods(_http._WebSocketProtocolTransformer.__proto__),
  bind: dart.fnType(async.Stream, [core.Object]),
  addError: dart.fnType(dart.void, [core.Object], [core.StackTrace]),
  close: dart.fnType(dart.void, []),
  add: dart.fnType(dart.void, [core.Object]),
  [_unmask]: dart.fnType(dart.void, [core.int, core.int, typed_data.Uint8List]),
  [_lengthDone]: dart.fnType(dart.void, []),
  [_maskDone]: dart.fnType(dart.void, []),
  [_startPayload]: dart.fnType(dart.void, []),
  [_messageFrameEnd]: dart.fnType(dart.void, []),
  [_controlFrameEnd]: dart.fnType(dart.void, []),
  [_isControlFrame]: dart.fnType(core.bool, []),
  [_prepareForNextFrame]: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(_http._WebSocketProtocolTransformer, L76);
dart.setFieldSignature(_http._WebSocketProtocolTransformer, () => ({
  __proto__: dart.getFields(_http._WebSocketProtocolTransformer.__proto__),
  [_state$1]: dart.fieldType(core.int),
  [_fin]: dart.fieldType(core.bool),
  [_compressed]: dart.fieldType(core.bool),
  [_opcode]: dart.fieldType(core.int),
  [_len]: dart.fieldType(core.int),
  [_masked]: dart.fieldType(core.bool),
  [_remainingLenBytes]: dart.fieldType(core.int),
  [_remainingMaskingKeyBytes]: dart.fieldType(core.int),
  [_remainingPayloadBytes]: dart.fieldType(core.int),
  [_unmaskingIndex]: dart.fieldType(core.int),
  [_currentMessageType]: dart.fieldType(core.int),
  closeCode: dart.fieldType(core.int),
  closeReason: dart.fieldType(core.String),
  [_eventSink$]: dart.fieldType(async.EventSink),
  [_serverSide$]: dart.finalFieldType(core.bool),
  [_maskingBytes]: dart.finalFieldType(core.List),
  [_payload]: dart.finalFieldType(io.BytesBuilder),
  [_deflate$]: dart.fieldType(_http._WebSocketPerMessageDeflate)
}));
dart.defineLazy(_http._WebSocketProtocolTransformer, {
  /*_http._WebSocketProtocolTransformer.START*/get START() {
    return 0;
  },
  /*_http._WebSocketProtocolTransformer.LEN_FIRST*/get LEN_FIRST() {
    return 1;
  },
  /*_http._WebSocketProtocolTransformer.LEN_REST*/get LEN_REST() {
    return 2;
  },
  /*_http._WebSocketProtocolTransformer.MASK*/get MASK() {
    return 3;
  },
  /*_http._WebSocketProtocolTransformer.PAYLOAD*/get PAYLOAD() {
    return 4;
  },
  /*_http._WebSocketProtocolTransformer.CLOSED*/get CLOSED() {
    return 5;
  },
  /*_http._WebSocketProtocolTransformer.FAILURE*/get FAILURE() {
    return 6;
  },
  /*_http._WebSocketProtocolTransformer.FIN*/get FIN() {
    return 128;
  },
  /*_http._WebSocketProtocolTransformer.RSV1*/get RSV1() {
    return 64;
  },
  /*_http._WebSocketProtocolTransformer.RSV2*/get RSV2() {
    return 32;
  },
  /*_http._WebSocketProtocolTransformer.RSV3*/get RSV3() {
    return 16;
  },
  /*_http._WebSocketProtocolTransformer.OPCODE*/get OPCODE() {
    return 15;
  }
}, true);
_http._WebSocketPing = class _WebSocketPing extends core.Object {};
(_http._WebSocketPing.new = function(payload = null) {
  this.payload = payload;
  ;
}).prototype = _http._WebSocketPing.prototype;
dart.addTypeTests(_http._WebSocketPing);
dart.addTypeCaches(_http._WebSocketPing);
dart.setLibraryUri(_http._WebSocketPing, L76);
dart.setFieldSignature(_http._WebSocketPing, () => ({
  __proto__: dart.getFields(_http._WebSocketPing.__proto__),
  payload: dart.finalFieldType(core.List$(core.int))
}));
_http._WebSocketPong = class _WebSocketPong extends core.Object {};
(_http._WebSocketPong.new = function(payload = null) {
  this.payload = payload;
  ;
}).prototype = _http._WebSocketPong.prototype;
dart.addTypeTests(_http._WebSocketPong);
dart.addTypeCaches(_http._WebSocketPong);
dart.setLibraryUri(_http._WebSocketPong, L76);
dart.setFieldSignature(_http._WebSocketPong, () => ({
  __proto__: dart.getFields(_http._WebSocketPong.__proto__),
  payload: dart.finalFieldType(core.List$(core.int))
}));
var _protocolSelector$ = dart.privateName(_http, "_protocolSelector");
var _compression$ = dart.privateName(_http, "_compression");
_http._WebSocketTransformerImpl = class _WebSocketTransformerImpl extends async.StreamTransformerBase$(_http.HttpRequest, _http.WebSocket) {
  bind(stream) {
    StreamOfHttpRequestL().as(stream);
    stream.listen(dart.fn(request => {
      _http._WebSocketTransformerImpl._upgrade(request, this[_protocolSelector$], this[_compression$]).then(dart.void, dart.fn(webSocket => this[_controller$1].add(webSocket), WebSocketLTovoid())).catchError(dart.bind(this[_controller$1], 'addError'));
    }, HttpRequestLToNullN()), {onDone: dart.fn(() => {
        this[_controller$1].close();
      }, VoidToNullN())});
    return this[_controller$1].stream;
  }
  static _tokenizeFieldValue(headerValue) {
    let tokens = JSArrayOfStringL().of([]);
    let start = 0;
    let index = 0;
    while (index < headerValue.length) {
      if (headerValue[$_get](index) === ",") {
        tokens[$add](headerValue[$substring](start, index));
        start = index + 1;
      } else if (headerValue[$_get](index) === " " || headerValue[$_get](index) === "\t") {
        start = start + 1;
      }
      index = index + 1;
    }
    tokens[$add](headerValue[$substring](start, index));
    return tokens;
  }
  static _upgrade(request, _protocolSelector, compression) {
    let t148;
    let response = request.response;
    if (!dart.test(_http._WebSocketTransformerImpl._isUpgradeRequest(request))) {
      t148 = response;
      t148.statusCode = 400;
      t148.close();
      t148;
      return FutureOfWebSocketL().error(new _http.WebSocketException.new("Invalid WebSocket upgrade request"));
    }
    function upgrade(protocol) {
      let t148;
      t148 = response;
      t148.statusCode = 101;
      t148.headers.add("connection", "Upgrade");
      t148.headers.add("upgrade", "websocket");
      t148;
      let key = request.headers.value("Sec-WebSocket-Key");
      let sha1 = new _http._SHA1.new();
      sha1.add((dart.str(key) + dart.str(_http._webSocketGUID))[$codeUnits]);
      let accept = _http._CryptoUtils.bytesToBase64(sha1.close());
      response.headers.add("Sec-WebSocket-Accept", accept);
      if (protocol != null) {
        response.headers.add("Sec-WebSocket-Protocol", protocol);
      }
      let deflate = _http._WebSocketTransformerImpl._negotiateCompression(request, response, compression);
      response.headers.contentLength = 0;
      return response.detachSocket().then(_http.WebSocket, dart.fn(socket => new _http._WebSocketImpl._fromSocket(socket, protocol, compression, true, deflate), SocketLTo_WebSocketImplL()));
    }
    dart.fn(upgrade, StringLToFutureLOfWebSocketL());
    let protocols = request.headers._get("Sec-WebSocket-Protocol");
    if (protocols != null && _protocolSelector != null) {
      protocols = _http._WebSocketTransformerImpl._tokenizeFieldValue(protocols[$join](", "));
      return FutureOfStringL().new(dart.fn(() => FutureOrOfStringL().as(_protocolSelector(protocols)), VoidToFutureOrLOfStringL())).then(core.String, dart.fn(protocol => {
        if (dart.notNull(protocols[$indexOf](protocol)) < 0) {
          dart.throw(new _http.WebSocketException.new("Selected protocol is not in the list of available protocols"));
        }
        return protocol;
      }, StringLToStringL())).catchError(dart.fn(error => {
        let t148;
        t148 = response;
        t148.statusCode = 500;
        t148.close();
        t148;
        dart.throw(error);
      }, dynamicToNullN())).then(_http.WebSocket, upgrade);
    } else {
      return upgrade(null);
    }
  }
  static _negotiateCompression(request, response, compression) {
    let extensionHeader = request.headers.value("Sec-WebSocket-Extensions");
    extensionHeader == null ? extensionHeader = "" : null;
    let hv = _http.HeaderValue.parse(extensionHeader, {valueSeparator: ","});
    if (dart.test(compression.enabled) && hv.value === "permessage-deflate") {
      let info = compression[_createHeader](hv);
      response.headers.add("Sec-WebSocket-Extensions", info.headerValue);
      let serverNoContextTakeover = dart.test(hv.parameters[$containsKey]("server_no_context_takeover")) && dart.test(compression.serverNoContextTakeover);
      let clientNoContextTakeover = dart.test(hv.parameters[$containsKey]("client_no_context_takeover")) && dart.test(compression.clientNoContextTakeover);
      let deflate = new _http._WebSocketPerMessageDeflate.new({serverNoContextTakeover: serverNoContextTakeover, clientNoContextTakeover: clientNoContextTakeover, serverMaxWindowBits: info.maxWindowBits, clientMaxWindowBits: info.maxWindowBits, serverSide: true});
      return deflate;
    }
    return null;
  }
  static _isUpgradeRequest(request) {
    if (request.method !== "GET") {
      return false;
    }
    if (request.headers._get("connection") == null) {
      return false;
    }
    let isUpgrade = false;
    request.headers._get("connection")[$forEach](dart.fn(value => {
      if (value[$toLowerCase]() === "upgrade") isUpgrade = true;
    }, StringLToNullN()));
    if (!isUpgrade) return false;
    let upgrade = request.headers.value("upgrade");
    if (upgrade == null || upgrade[$toLowerCase]() !== "websocket") {
      return false;
    }
    let version = request.headers.value("Sec-WebSocket-Version");
    if (version == null || version !== "13") {
      return false;
    }
    let key = request.headers.value("Sec-WebSocket-Key");
    if (key == null) {
      return false;
    }
    return true;
  }
};
(_http._WebSocketTransformerImpl.new = function(_protocolSelector, _compression) {
  this[_controller$1] = StreamControllerOfWebSocketL().new({sync: true});
  this[_protocolSelector$] = _protocolSelector;
  this[_compression$] = _compression;
  _http._WebSocketTransformerImpl.__proto__.new.call(this);
  ;
}).prototype = _http._WebSocketTransformerImpl.prototype;
dart.addTypeTests(_http._WebSocketTransformerImpl);
dart.addTypeCaches(_http._WebSocketTransformerImpl);
_http._WebSocketTransformerImpl[dart.implements] = () => [_http.WebSocketTransformer];
dart.setMethodSignature(_http._WebSocketTransformerImpl, () => ({
  __proto__: dart.getMethods(_http._WebSocketTransformerImpl.__proto__),
  bind: dart.fnType(async.Stream$(_http.WebSocket), [core.Object])
}));
dart.setLibraryUri(_http._WebSocketTransformerImpl, L76);
dart.setFieldSignature(_http._WebSocketTransformerImpl, () => ({
  __proto__: dart.getFields(_http._WebSocketTransformerImpl.__proto__),
  [_controller$1]: dart.finalFieldType(async.StreamController$(_http.WebSocket)),
  [_protocolSelector$]: dart.finalFieldType(dart.fnType(dart.dynamic, [core.List$(core.String)])),
  [_compression$]: dart.finalFieldType(_http.CompressionOptions)
}));
var _ensureDecoder = dart.privateName(_http, "_ensureDecoder");
var _ensureEncoder = dart.privateName(_http, "_ensureEncoder");
var C484;
_http._WebSocketPerMessageDeflate = class _WebSocketPerMessageDeflate extends core.Object {
  [_ensureDecoder]() {
    if (this.decoder == null) {
      this.decoder = io.RawZLibFilter.inflateFilter({windowBits: dart.test(this.serverSide) ? this.clientMaxWindowBits : this.serverMaxWindowBits, raw: true});
    }
  }
  [_ensureEncoder]() {
    if (this.encoder == null) {
      this.encoder = io.RawZLibFilter.deflateFilter({windowBits: dart.test(this.serverSide) ? this.serverMaxWindowBits : this.clientMaxWindowBits, raw: true});
    }
  }
  processIncomingMessage(msg) {
    this[_ensureDecoder]();
    let data = JSArrayOfintL().of([]);
    data[$addAll](msg);
    data[$addAll](C484 || CT.C484);
    this.decoder.process(data, 0, data[$length]);
    let result = io.BytesBuilder.new();
    let out = null;
    while ((out = this.decoder.processed()) != null) {
      result.add(out);
    }
    if (dart.test(this.serverSide) && dart.test(this.clientNoContextTakeover) || !dart.test(this.serverSide) && dart.test(this.serverNoContextTakeover)) {
      this.decoder = null;
    }
    return result.takeBytes();
  }
  processOutgoingMessage(msg) {
    this[_ensureEncoder]();
    let result = JSArrayOfintL().of([]);
    let buffer = null;
    if (!typed_data.Uint8List.is(msg)) {
      for (let i = 0; i < dart.notNull(msg[$length]); i = i + 1) {
        if (dart.notNull(msg[$_get](i)) < 0 || 255 < dart.notNull(msg[$_get](i))) {
          dart.throw(new core.ArgumentError.new("List element is not a byte value " + "(value " + dart.str(msg[$_get](i)) + " at index " + dart.str(i) + ")"));
        }
      }
      buffer = _native_typed_data.NativeUint8List.fromList(msg);
    } else {
      buffer = typed_data.Uint8List.as(msg);
    }
    this.encoder.process(buffer, 0, buffer[$length]);
    let out = null;
    while ((out = this.encoder.processed()) != null) {
      result[$addAll](out);
    }
    if (!dart.test(this.serverSide) && dart.test(this.clientNoContextTakeover) || dart.test(this.serverSide) && dart.test(this.serverNoContextTakeover)) {
      this.encoder = null;
    }
    if (dart.notNull(result[$length]) > 4) {
      result = result[$sublist](0, dart.notNull(result[$length]) - 4);
    }
    if (result[$length] === 0) {
      return JSArrayOfintL().of([0]);
    }
    return result;
  }
};
(_http._WebSocketPerMessageDeflate.new = function(opts) {
  let clientMaxWindowBits = opts && 'clientMaxWindowBits' in opts ? opts.clientMaxWindowBits : 15;
  let serverMaxWindowBits = opts && 'serverMaxWindowBits' in opts ? opts.serverMaxWindowBits : 15;
  let serverNoContextTakeover = opts && 'serverNoContextTakeover' in opts ? opts.serverNoContextTakeover : false;
  let clientNoContextTakeover = opts && 'clientNoContextTakeover' in opts ? opts.clientNoContextTakeover : false;
  let serverSide = opts && 'serverSide' in opts ? opts.serverSide : false;
  this.decoder = null;
  this.encoder = null;
  this.clientMaxWindowBits = clientMaxWindowBits;
  this.serverMaxWindowBits = serverMaxWindowBits;
  this.serverNoContextTakeover = serverNoContextTakeover;
  this.clientNoContextTakeover = clientNoContextTakeover;
  this.serverSide = serverSide;
  ;
}).prototype = _http._WebSocketPerMessageDeflate.prototype;
dart.addTypeTests(_http._WebSocketPerMessageDeflate);
dart.addTypeCaches(_http._WebSocketPerMessageDeflate);
dart.setMethodSignature(_http._WebSocketPerMessageDeflate, () => ({
  __proto__: dart.getMethods(_http._WebSocketPerMessageDeflate.__proto__),
  [_ensureDecoder]: dart.fnType(dart.void, []),
  [_ensureEncoder]: dart.fnType(dart.void, []),
  processIncomingMessage: dart.fnType(typed_data.Uint8List, [core.List$(core.int)]),
  processOutgoingMessage: dart.fnType(core.List$(core.int), [core.List$(core.int)])
}));
dart.setLibraryUri(_http._WebSocketPerMessageDeflate, L76);
dart.setFieldSignature(_http._WebSocketPerMessageDeflate, () => ({
  __proto__: dart.getFields(_http._WebSocketPerMessageDeflate.__proto__),
  serverNoContextTakeover: dart.fieldType(core.bool),
  clientNoContextTakeover: dart.fieldType(core.bool),
  clientMaxWindowBits: dart.fieldType(core.int),
  serverMaxWindowBits: dart.fieldType(core.int),
  serverSide: dart.fieldType(core.bool),
  decoder: dart.fieldType(io.RawZLibFilter),
  encoder: dart.fieldType(io.RawZLibFilter)
}));
var _deflateHelper = dart.privateName(_http, "_deflateHelper");
var _outCloseCode = dart.privateName(_http, "_outCloseCode");
var _outCloseReason = dart.privateName(_http, "_outCloseReason");
_http._WebSocketOutgoingTransformer = class _WebSocketOutgoingTransformer extends async.StreamTransformerBase$(dart.dynamic, core.List$(core.int)) {
  bind(stream) {
    async.Stream.as(stream);
    return StreamOfListLOfintL().eventTransformed(stream, dart.fn(eventSink => {
      if (this[_eventSink$] != null) {
        dart.throw(new core.StateError.new("WebSocket transformer already used"));
      }
      this[_eventSink$] = eventSink;
      return this;
    }, EventSinkLOfListLOfintLTo_WebSocketOutgoingTransformerL()));
  }
  add(message) {
    if (_http._WebSocketPong.is(message)) {
      this.addFrame(10, message.payload);
      return;
    }
    if (_http._WebSocketPing.is(message)) {
      this.addFrame(9, message.payload);
      return;
    }
    let data = null;
    let opcode = null;
    if (message != null) {
      if (typeof message == 'string') {
        opcode = 1;
        data = convert.utf8.encode(message);
      } else if (ListOfintL().is(message)) {
        opcode = 2;
        data = message;
      } else if (_http._EncodedString.is(message)) {
        opcode = 1;
        data = message.bytes;
      } else {
        dart.throw(new core.ArgumentError.new(message));
      }
      if (this[_deflateHelper] != null) {
        data = this[_deflateHelper].processOutgoingMessage(data);
      }
    } else {
      opcode = 1;
    }
    this.addFrame(opcode, data);
  }
  addError(error, stackTrace = null) {
    core.ArgumentError.checkNotNull(core.Object, error, "error");
    this[_eventSink$].addError(error, stackTrace);
  }
  close() {
    let code = this.webSocket[_outCloseCode];
    let reason = this.webSocket[_outCloseReason];
    let data = null;
    if (code != null) {
      data = JSArrayOfintL().of([]);
      data[$add](dart.notNull(code) >> 8 & 255);
      data[$add](dart.notNull(code) & 255);
      if (reason != null) {
        data[$addAll](convert.utf8.encode(reason));
      }
    }
    this.addFrame(8, data);
    this[_eventSink$].close();
  }
  addFrame(opcode, data) {
    _http._WebSocketOutgoingTransformer.createFrame(opcode, data, this.webSocket[_serverSide$], this[_deflateHelper] != null && (opcode === 1 || opcode === 2))[$forEach](dart.fn(e => {
      this[_eventSink$].add(e);
    }, ListLOfintLToNullN()));
  }
  static createFrame(opcode, data, serverSide, compressed) {
    let t148, t148$, t148$0, t148$1, t149, t148$2, t149$, t148$3, t149$0, t148$4;
    let mask = !dart.test(serverSide);
    let dataLength = data == null ? 0 : data[$length];
    let headerSize = mask ? 6 : 2;
    if (dart.notNull(dataLength) > 65535) {
      headerSize = headerSize + 8;
    } else if (dart.notNull(dataLength) > 125) {
      headerSize = headerSize + 2;
    }
    let header = _native_typed_data.NativeUint8List.new(headerSize);
    let index = 0;
    let hoc = (128 | (dart.test(compressed) ? 64 : 0) | (dart.notNull(opcode) & 15) >>> 0) >>> 0;
    header[$_set]((t148 = index, index = t148 + 1, t148), hoc);
    let lengthBytes = 1;
    if (dart.notNull(dataLength) > 65535) {
      header[$_set]((t148$ = index, index = t148$ + 1, t148$), 127);
      lengthBytes = 8;
    } else if (dart.notNull(dataLength) > 125) {
      header[$_set]((t148$0 = index, index = t148$0 + 1, t148$0), 126);
      lengthBytes = 2;
    }
    for (let i = 0; i < lengthBytes; i = i + 1) {
      header[$_set]((t148$1 = index, index = t148$1 + 1, t148$1), dataLength[$rightShift]((lengthBytes - 1 - i) * 8) & 255);
    }
    if (mask) {
      t148$2 = header;
      t149 = 1;
      t148$2[$_set](t149, (dart.notNull(t148$2[$_get](t149)) | 1 << 7) >>> 0);
      let maskBytes = _http._CryptoUtils.getRandomBytes(4);
      header[$setRange](index, index + 4, maskBytes);
      index = index + 4;
      if (data != null) {
        let list = null;
        if (opcode === 1 && typed_data.Uint8List.is(data)) {
          list = data;
        } else {
          if (typed_data.Uint8List.is(data)) {
            list = _native_typed_data.NativeUint8List.fromList(data);
          } else {
            list = _native_typed_data.NativeUint8List.new(data[$length]);
            for (let i = 0; i < dart.notNull(data[$length]); i = i + 1) {
              if (dart.notNull(data[$_get](i)) < 0 || 255 < dart.notNull(data[$_get](i))) {
                dart.throw(new core.ArgumentError.new("List element is not a byte value " + "(value " + dart.str(data[$_get](i)) + " at index " + dart.str(i) + ")"));
              }
              list[$_set](i, data[$_get](i));
            }
          }
        }
        let blockCount = (dart.notNull(list[$length]) / 16)[$truncate]();
        if (blockCount > 0) {
          let mask = 0;
          for (let i = 3; i >= 0; i = i - 1) {
            mask = (mask << 8 | dart.notNull(maskBytes[$_get](i))) >>> 0;
          }
          let blockMask = new _native_typed_data.NativeInt32x4.new(mask, mask, mask, mask);
          let blockBuffer = typed_data.Int32x4List.view(list[$buffer], list[$offsetInBytes], blockCount);
          for (let i = 0; i < dart.notNull(blockBuffer[$length]); i = i + 1) {
            t148$3 = blockBuffer;
            t149$ = i;
            t148$3[$_set](t149$, t148$3[$_get](t149$)['^'](blockMask));
          }
        }
        for (let i = blockCount * 16; i < dart.notNull(list[$length]); i = i + 1) {
          t148$4 = list;
          t149$0 = i;
          t148$4[$_set](t149$0, (dart.notNull(t148$4[$_get](t149$0)) ^ dart.notNull(maskBytes[$_get](i & 3))) >>> 0);
        }
        data = list;
      }
    }
    if (!(index === headerSize)) dart.assertFailed(null, L82, 840, 12, "index == headerSize");
    if (data == null) {
      return JSArrayOfListLOfintL().of([header]);
    } else {
      return JSArrayOfListLOfintL().of([header, data]);
    }
  }
};
(_http._WebSocketOutgoingTransformer.new = function(webSocket) {
  this[_eventSink$] = null;
  this[_deflateHelper] = null;
  this.webSocket = webSocket;
  _http._WebSocketOutgoingTransformer.__proto__.new.call(this);
  this[_deflateHelper] = this.webSocket[_deflate$];
}).prototype = _http._WebSocketOutgoingTransformer.prototype;
dart.addTypeTests(_http._WebSocketOutgoingTransformer);
dart.addTypeCaches(_http._WebSocketOutgoingTransformer);
_http._WebSocketOutgoingTransformer[dart.implements] = () => [async.EventSink];
dart.setMethodSignature(_http._WebSocketOutgoingTransformer, () => ({
  __proto__: dart.getMethods(_http._WebSocketOutgoingTransformer.__proto__),
  bind: dart.fnType(async.Stream$(core.List$(core.int)), [core.Object]),
  add: dart.fnType(dart.void, [core.Object]),
  addError: dart.fnType(dart.void, [core.Object], [core.StackTrace]),
  close: dart.fnType(dart.void, []),
  addFrame: dart.fnType(dart.void, [core.int, core.List$(core.int)])
}));
dart.setLibraryUri(_http._WebSocketOutgoingTransformer, L76);
dart.setFieldSignature(_http._WebSocketOutgoingTransformer, () => ({
  __proto__: dart.getFields(_http._WebSocketOutgoingTransformer.__proto__),
  webSocket: dart.finalFieldType(_http._WebSocketImpl),
  [_eventSink$]: dart.fieldType(async.EventSink$(core.List$(core.int))),
  [_deflateHelper]: dart.fieldType(_http._WebSocketPerMessageDeflate)
}));
var _issuedPause = dart.privateName(_http, "_issuedPause");
var _closed$ = dart.privateName(_http, "_closed");
var _closeCompleter$ = dart.privateName(_http, "_closeCompleter");
var _completer = dart.privateName(_http, "_completer");
var _onListen = dart.privateName(_http, "_onListen");
var _onPause$ = dart.privateName(_http, "_onPause");
var _onResume$ = dart.privateName(_http, "_onResume");
var _cancel$ = dart.privateName(_http, "_cancel");
var _done = dart.privateName(_http, "_done");
var _ensureController = dart.privateName(_http, "_ensureController");
_http._WebSocketConsumer = class _WebSocketConsumer extends core.Object {
  [_onListen]() {
    if (this[_subscription$0] != null) {
      this[_subscription$0].cancel();
    }
  }
  [_onPause$]() {
    if (this[_subscription$0] != null) {
      this[_subscription$0].pause();
    } else {
      this[_issuedPause] = true;
    }
  }
  [_onResume$]() {
    if (this[_subscription$0] != null) {
      this[_subscription$0].resume();
    } else {
      this[_issuedPause] = false;
    }
  }
  [_cancel$]() {
    if (this[_subscription$0] != null) {
      let subscription = this[_subscription$0];
      this[_subscription$0] = null;
      subscription.cancel();
    }
  }
  [_ensureController]() {
    if (this[_controller$1] != null) return;
    this[_controller$1] = async.StreamController.new({sync: true, onPause: dart.bind(this, _onPause$), onResume: dart.bind(this, _onResume$), onCancel: dart.bind(this, _onListen)});
    let stream = this[_controller$1].stream.transform(ListOfintL(), new _http._WebSocketOutgoingTransformer.new(this.webSocket));
    this.socket.addStream(stream).then(core.Null, dart.fn(_ => {
      this[_done]();
      this[_closeCompleter$].complete(this.webSocket);
    }, dynamicToNullN()), {onError: dart.fn((error, stackTrace) => {
        this[_closed$] = true;
        this[_cancel$]();
        if (core.ArgumentError.is(error)) {
          if (!dart.test(this[_done](error, stackTrace))) {
            this[_closeCompleter$].completeError(error, stackTrace);
          }
        } else {
          this[_done]();
          this[_closeCompleter$].complete(this.webSocket);
        }
      }, dynamicAndStackTraceLToNullN())});
  }
  [_done](error = null, stackTrace = null) {
    if (this[_completer] == null) return false;
    if (error != null) {
      this[_completer].completeError(error, stackTrace);
    } else {
      this[_completer].complete(this.webSocket);
    }
    this[_completer] = null;
    return true;
  }
  addStream(stream) {
    async.Stream.as(stream);
    if (dart.test(this[_closed$])) {
      stream.listen(null).cancel();
      return async.Future.value(this.webSocket);
    }
    this[_ensureController]();
    this[_completer] = async.Completer.new();
    this[_subscription$0] = stream.listen(dart.fn(data => {
      this[_controller$1].add(data);
    }, dynamicToNullN()), {onDone: dart.bind(this, _done), onError: dart.bind(this, _done), cancelOnError: true});
    if (dart.test(this[_issuedPause])) {
      this[_subscription$0].pause();
      this[_issuedPause] = false;
    }
    return this[_completer].future;
  }
  close() {
    this[_ensureController]();
    const closeSocket = () => {
      return this.socket.close().catchError(dart.fn(_ => {
      }, dynamicToNullN())).then(dart.dynamic, dart.fn(_ => this.webSocket, dynamicTo_WebSocketImplL()));
    };
    dart.fn(closeSocket, VoidToFutureL());
    this[_controller$1].close();
    return this[_closeCompleter$].future.then(dart.dynamic, dart.fn(_ => closeSocket(), dynamicToFutureL()));
  }
  add(data) {
    if (dart.test(this[_closed$])) return;
    this[_ensureController]();
    if (dart.test(this[_controller$1].isClosed)) return;
    this[_controller$1].add(data);
  }
  closeSocket() {
    this[_closed$] = true;
    this[_cancel$]();
    this.close();
  }
};
(_http._WebSocketConsumer.new = function(webSocket, socket) {
  this[_controller$1] = null;
  this[_subscription$0] = null;
  this[_issuedPause] = false;
  this[_closed$] = false;
  this[_closeCompleter$] = CompleterOfWebSocketL().new();
  this[_completer] = null;
  this.webSocket = webSocket;
  this.socket = socket;
  ;
}).prototype = _http._WebSocketConsumer.prototype;
dart.addTypeTests(_http._WebSocketConsumer);
dart.addTypeCaches(_http._WebSocketConsumer);
_http._WebSocketConsumer[dart.implements] = () => [async.StreamConsumer];
dart.setMethodSignature(_http._WebSocketConsumer, () => ({
  __proto__: dart.getMethods(_http._WebSocketConsumer.__proto__),
  [_onListen]: dart.fnType(dart.void, []),
  [_onPause$]: dart.fnType(dart.void, []),
  [_onResume$]: dart.fnType(dart.void, []),
  [_cancel$]: dart.fnType(dart.void, []),
  [_ensureController]: dart.fnType(dart.dynamic, []),
  [_done]: dart.fnType(core.bool, [], [dart.dynamic, core.StackTrace]),
  addStream: dart.fnType(async.Future, [core.Object]),
  close: dart.fnType(async.Future, []),
  add: dart.fnType(dart.void, [dart.dynamic]),
  closeSocket: dart.fnType(dart.void, [])
}));
dart.setLibraryUri(_http._WebSocketConsumer, L76);
dart.setFieldSignature(_http._WebSocketConsumer, () => ({
  __proto__: dart.getFields(_http._WebSocketConsumer.__proto__),
  webSocket: dart.finalFieldType(_http._WebSocketImpl),
  socket: dart.finalFieldType(io.Socket),
  [_controller$1]: dart.fieldType(async.StreamController),
  [_subscription$0]: dart.fieldType(async.StreamSubscription),
  [_issuedPause]: dart.fieldType(core.bool),
  [_closed$]: dart.fieldType(core.bool),
  [_closeCompleter$]: dart.fieldType(async.Completer),
  [_completer]: dart.fieldType(async.Completer)
}));
var _sink = dart.privateName(_http, "_sink");
var _readyState = dart.privateName(_http, "_readyState");
var _writeClosed = dart.privateName(_http, "_writeClosed");
var _closeCode = dart.privateName(_http, "_closeCode");
var _closeReason = dart.privateName(_http, "_closeReason");
var _pingInterval = dart.privateName(_http, "_pingInterval");
var _pingTimer = dart.privateName(_http, "_pingTimer");
var _consumer = dart.privateName(_http, "_consumer");
var _closeTimer = dart.privateName(_http, "_closeTimer");
var _close$0 = dart.privateName(_http, "_close");
var C485;
const Stream__ServiceObject$36$ = class Stream__ServiceObject extends async.Stream {};
(Stream__ServiceObject$36$.new = function() {
  _http._ServiceObject.new.call(this);
  Stream__ServiceObject$36$.__proto__.new.call(this);
}).prototype = Stream__ServiceObject$36$.prototype;
(Stream__ServiceObject$36$._internal = function() {
  _http._ServiceObject.new.call(this);
  Stream__ServiceObject$36$.__proto__._internal.call(this);
}).prototype = Stream__ServiceObject$36$.prototype;
dart.applyMixin(Stream__ServiceObject$36$, _http._ServiceObject);
_http._WebSocketImpl = class _WebSocketImpl extends Stream__ServiceObject$36$ {
  static connect(url, protocols, headers, opts) {
    let compression = opts && 'compression' in opts ? opts.compression : C482 || CT.C482;
    let uri = core.Uri.parse(url);
    if (uri.scheme !== "ws" && uri.scheme !== "wss") {
      dart.throw(new _http.WebSocketException.new("Unsupported URL scheme '" + dart.str(uri.scheme) + "'"));
    }
    let random = math.Random.new();
    let nonceData = _native_typed_data.NativeUint8List.new(16);
    for (let i = 0; i < 16; i = i + 1) {
      nonceData[$_set](i, random.nextInt(256));
    }
    let nonce = _http._CryptoUtils.bytesToBase64(nonceData);
    uri = core._Uri.new({scheme: uri.scheme === "wss" ? "https" : "http", userInfo: uri.userInfo, host: uri.host, port: uri.port, path: uri.path, query: uri.query, fragment: uri.fragment});
    return _http._WebSocketImpl._httpClient.openUrl("GET", uri).then(_http.HttpClientResponse, dart.fn(request => {
      let t148;
      if (uri.userInfo != null && !uri.userInfo[$isEmpty]) {
        let auth = _http._CryptoUtils.bytesToBase64(convert.utf8.encode(uri.userInfo));
        request.headers.set("authorization", "Basic " + dart.str(auth));
      }
      if (headers != null) {
        headers[$forEach](dart.fn((field, value) => request.headers.add(field, value), StringLAnddynamicTovoid()));
      }
      t148 = request.headers;
      t148.set("connection", "Upgrade");
      t148.set("upgrade", "websocket");
      t148.set("Sec-WebSocket-Key", nonce);
      t148.set("Cache-Control", "no-cache");
      t148.set("Sec-WebSocket-Version", "13");
      t148;
      if (protocols != null) {
        request.headers.add("Sec-WebSocket-Protocol", protocols[$toList]());
      }
      if (dart.test(compression.enabled)) {
        request.headers.add("Sec-WebSocket-Extensions", compression[_createHeader]());
      }
      return request.close();
    }, HttpClientRequestLToFutureLOfHttpClientResponseL())).then(_http.WebSocket, dart.fn(response => {
      function error(message) {
        response.detachSocket().then(core.Null, dart.fn(socket => {
          socket.destroy();
        }, SocketLToNullN()));
        dart.throw(new _http.WebSocketException.new(message));
      }
      dart.fn(error, StringLTovoid());
      if (response.statusCode !== 101 || response.headers._get("connection") == null || !dart.test(response.headers._get("connection")[$any](dart.fn(value => value[$toLowerCase]() === "upgrade", StringLToboolL()))) || response.headers.value("upgrade")[$toLowerCase]() !== "websocket") {
        error("Connection to '" + dart.str(uri) + "' was not upgraded to websocket");
      }
      let accept = response.headers.value("Sec-WebSocket-Accept");
      if (accept == null) {
        error("Response did not contain a 'Sec-WebSocket-Accept' header");
      }
      let sha1 = new _http._SHA1.new();
      sha1.add((dart.str(nonce) + dart.str(_http._webSocketGUID))[$codeUnits]);
      let expectedAccept = sha1.close();
      let receivedAccept = _http._CryptoUtils.base64StringToBytes(accept);
      if (expectedAccept[$length] != receivedAccept[$length]) {
        error("Response header 'Sec-WebSocket-Accept' is the wrong length");
      }
      for (let i = 0; i < dart.notNull(expectedAccept[$length]); i = i + 1) {
        if (expectedAccept[$_get](i) != receivedAccept[$_get](i)) {
          error("Bad response 'Sec-WebSocket-Accept' header");
        }
      }
      let protocol = response.headers.value("Sec-WebSocket-Protocol");
      let deflate = _http._WebSocketImpl.negotiateClientCompression(response, compression);
      return response.detachSocket().then(_http.WebSocket, dart.fn(socket => new _http._WebSocketImpl._fromSocket(socket, protocol, compression, false, deflate), SocketLTo_WebSocketImplL()));
    }, HttpClientResponseLToFutureLOfWebSocketL()));
  }
  static negotiateClientCompression(response, compression) {
    let extensionHeader = response.headers.value("Sec-WebSocket-Extensions");
    if (extensionHeader == null) {
      extensionHeader = "";
    }
    let hv = _http.HeaderValue.parse(extensionHeader, {valueSeparator: ","});
    if (dart.test(compression.enabled) && hv.value === "permessage-deflate") {
      let serverNoContextTakeover = hv.parameters[$containsKey]("server_no_context_takeover");
      let clientNoContextTakeover = hv.parameters[$containsKey]("client_no_context_takeover");
      function getWindowBits(type) {
        let t148;
        let o = hv.parameters[$_get](type);
        if (o == null) {
          return 15;
        }
        t148 = core.int.tryParse(o);
        return t148 == null ? 15 : t148;
      }
      dart.fn(getWindowBits, StringLTointL());
      return new _http._WebSocketPerMessageDeflate.new({clientMaxWindowBits: getWindowBits("client_max_window_bits"), serverMaxWindowBits: getWindowBits("server_max_window_bits"), clientNoContextTakeover: clientNoContextTakeover, serverNoContextTakeover: serverNoContextTakeover});
    }
    return null;
  }
  listen(onData, opts) {
    let onError = opts && 'onError' in opts ? opts.onError : null;
    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
    return this[_controller$1].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
  }
  get pingInterval() {
    return this[_pingInterval];
  }
  set pingInterval(interval) {
    if (dart.test(this[_writeClosed])) return;
    if (this[_pingTimer] != null) this[_pingTimer].cancel();
    this[_pingInterval] = interval;
    if (this[_pingInterval] == null) return;
    this[_pingTimer] = async.Timer.new(this[_pingInterval], dart.fn(() => {
      if (dart.test(this[_writeClosed])) return;
      this[_consumer].add(new _http._WebSocketPing.new());
      this[_pingTimer] = async.Timer.new(this[_pingInterval], dart.fn(() => {
        let t148;
        t148 = this[_closeTimer];
        t148 == null ? null : t148.cancel();
        this[_close$0](1001);
        this[_closeCode] = this[_outCloseCode];
        this[_closeReason] = this[_outCloseReason];
        this[_controller$1].close();
      }, VoidToNullN()));
    }, VoidToNullN()));
  }
  get readyState() {
    return this[_readyState];
  }
  get extensions() {
    return null;
  }
  get closeCode() {
    return this[_closeCode];
  }
  get closeReason() {
    return this[_closeReason];
  }
  add(data) {
    this[_sink].add(data);
  }
  addUtf8Text(bytes) {
    core.ArgumentError.checkNotNull(ListOfintL(), bytes, "bytes");
    this[_sink].add(new _http._EncodedString.new(bytes));
  }
  addError(error, stackTrace = null) {
    this[_sink].addError(error, stackTrace);
  }
  addStream(stream) {
    async.Stream.as(stream);
    return this[_sink].addStream(stream);
  }
  get done() {
    return this[_sink].done;
  }
  close(code = null, reason = null) {
    if (dart.test(_http._WebSocketImpl._isReservedStatusCode(code))) {
      dart.throw(new _http.WebSocketException.new("Reserved status code " + dart.str(code)));
    }
    if (this[_outCloseCode] == null) {
      this[_outCloseCode] = code;
      this[_outCloseReason] = reason;
    }
    if (!dart.test(this[_controller$1].isClosed)) {
      if (!dart.test(this[_controller$1].hasListener) && this[_subscription$0] != null) {
        this[_controller$1].stream.drain(dart.dynamic).catchError(dart.fn(_ => new _js_helper.LinkedMap.new(), dynamicToMapL()));
      }
      if (this[_closeTimer] == null) {
        this[_closeTimer] = async.Timer.new(C485 || CT.C485, dart.fn(() => {
          this[_closeCode] = this[_outCloseCode];
          this[_closeReason] = this[_outCloseReason];
          if (this[_subscription$0] != null) this[_subscription$0].cancel();
          this[_controller$1].close();
          _http._WebSocketImpl._webSockets[$remove](this[_serviceId$]);
        }, VoidToNullN()));
      }
    }
    return this[_sink].close();
  }
  static get userAgent() {
    return _http._WebSocketImpl._httpClient.userAgent;
  }
  static set userAgent(userAgent) {
    _http._WebSocketImpl._httpClient.userAgent = userAgent;
  }
  [_close$0](code = null, reason = null) {
    if (dart.test(this[_writeClosed])) return;
    if (this[_outCloseCode] == null) {
      this[_outCloseCode] = code;
      this[_outCloseReason] = reason;
    }
    this[_writeClosed] = true;
    this[_consumer].closeSocket();
    _http._WebSocketImpl._webSockets[$remove](this[_serviceId$]);
  }
  get [_serviceTypePath$]() {
    return "io/websockets";
  }
  get [_serviceTypeName$]() {
    return "WebSocket";
  }
  [_toJSON$](ref) {
    let name = dart.str(dart.dload(dart.dload(this[_socket$0], 'address'), 'host')) + ":" + dart.str(dart.dload(this[_socket$0], 'port'));
    let r = new (IdentityMapOfStringL$dynamic()).from(["id", this[_servicePath$], "type", this[_serviceType$](ref), "name", name, "user_name", name]);
    if (dart.test(ref)) {
      return r;
    }
    try {
      r[$_set]("socket", dart.dsend(this[_socket$0], _toJSON$, [true]));
    } catch (e) {
      let _ = dart.getThrown(e);
      r[$_set]("socket", new (IdentityMapOfStringL$StringL()).from(["id", this[_servicePath$], "type", "@Socket", "name", "UserSocket", "user_name", "UserSocket"]));
    }
    return r;
  }
  static _isReservedStatusCode(code) {
    return code != null && (dart.notNull(code) < 1000 || code === 1004 || code === 1005 || code === 1006 || dart.notNull(code) > 1011 && dart.notNull(code) < 1015 || dart.notNull(code) >= 1015 && dart.notNull(code) < 3000);
  }
};
(_http._WebSocketImpl._fromSocket = function(_socket, protocol, compression, _serverSide = false, deflate = null) {
  this[_controller$1] = null;
  this[_subscription$0] = null;
  this[_sink] = null;
  this[_readyState] = 0;
  this[_writeClosed] = false;
  this[_closeCode] = null;
  this[_closeReason] = null;
  this[_pingInterval] = null;
  this[_pingTimer] = null;
  this[_consumer] = null;
  this[_outCloseCode] = null;
  this[_outCloseReason] = null;
  this[_closeTimer] = null;
  this[_deflate$] = null;
  this[_socket$0] = _socket;
  this.protocol = protocol;
  this[_serverSide$] = _serverSide;
  _http._WebSocketImpl.__proto__.new.call(this);
  this[_consumer] = new _http._WebSocketConsumer.new(this, io.Socket.as(this[_socket$0]));
  this[_sink] = new _http._StreamSinkImpl.new(this[_consumer]);
  this[_readyState] = 1;
  this[_deflate$] = deflate;
  let transformer = new _http._WebSocketProtocolTransformer.new(this[_serverSide$], this[_deflate$]);
  this[_subscription$0] = transformer.bind(StreamOfListLOfintL().as(this[_socket$0])).listen(dart.fn(data => {
    if (_http._WebSocketPing.is(data)) {
      if (!dart.test(this[_writeClosed])) this[_consumer].add(new _http._WebSocketPong.new(data.payload));
    } else if (_http._WebSocketPong.is(data)) {
      this.pingInterval = this[_pingInterval];
    } else {
      this[_controller$1].add(data);
    }
  }, dynamicToNullN()), {onError: dart.fn((error, stackTrace) => {
      if (this[_closeTimer] != null) this[_closeTimer].cancel();
      if (core.FormatException.is(error)) {
        this[_close$0](1007);
      } else {
        this[_close$0](1002);
      }
      this[_closeCode] = this[_outCloseCode];
      this[_closeReason] = this[_outCloseReason];
      this[_controller$1].close();
    }, dynamicAnddynamicToNullN()), onDone: dart.fn(() => {
      if (this[_closeTimer] != null) this[_closeTimer].cancel();
      if (this[_readyState] === 1) {
        this[_readyState] = 2;
        if (!dart.test(_http._WebSocketImpl._isReservedStatusCode(transformer.closeCode))) {
          this[_close$0](transformer.closeCode, transformer.closeReason);
        } else {
          this[_close$0]();
        }
        this[_readyState] = 3;
      }
      this[_closeCode] = transformer.closeCode;
      this[_closeReason] = transformer.closeReason;
      this[_controller$1].close();
    }, VoidToNullN()), cancelOnError: true});
  this[_subscription$0].pause();
  this[_controller$1] = async.StreamController.new({sync: true, onListen: dart.bind(this[_subscription$0], 'resume'), onCancel: dart.fn(() => {
      this[_subscription$0].cancel();
      this[_subscription$0] = null;
    }, VoidToNullN()), onPause: dart.bind(this[_subscription$0], 'pause'), onResume: dart.bind(this[_subscription$0], 'resume')});
  _http._WebSocketImpl._webSockets[$_set](this[_serviceId$], this);
}).prototype = _http._WebSocketImpl.prototype;
dart.addTypeTests(_http._WebSocketImpl);
dart.addTypeCaches(_http._WebSocketImpl);
_http._WebSocketImpl[dart.implements] = () => [_http.WebSocket];
dart.setMethodSignature(_http._WebSocketImpl, () => ({
  __proto__: dart.getMethods(_http._WebSocketImpl.__proto__),
  listen: dart.fnType(async.StreamSubscription, [dart.fnType(dart.void, [dart.dynamic])], {cancelOnError: core.bool, onDone: dart.fnType(dart.void, []), onError: core.Function}, {}),
  add: dart.fnType(dart.void, [core.Object]),
  addUtf8Text: dart.fnType(dart.void, [core.List$(core.int)]),
  addError: dart.fnType(dart.void, [core.Object], [core.StackTrace]),
  addStream: dart.fnType(async.Future, [core.Object]),
  close: dart.fnType(async.Future, [], [core.int, core.String]),
  [_close$0]: dart.fnType(dart.void, [], [core.int, core.String]),
  [_toJSON$]: dart.fnType(core.Map$(core.String, dart.dynamic), [core.bool])
}));
dart.setGetterSignature(_http._WebSocketImpl, () => ({
  __proto__: dart.getGetters(_http._WebSocketImpl.__proto__),
  pingInterval: core.Duration,
  readyState: core.int,
  extensions: core.String,
  closeCode: core.int,
  closeReason: core.String,
  done: async.Future,
  [_serviceTypePath$]: core.String,
  [_serviceTypeName$]: core.String
}));
dart.setSetterSignature(_http._WebSocketImpl, () => ({
  __proto__: dart.getSetters(_http._WebSocketImpl.__proto__),
  pingInterval: core.Duration
}));
dart.setLibraryUri(_http._WebSocketImpl, L76);
dart.setFieldSignature(_http._WebSocketImpl, () => ({
  __proto__: dart.getFields(_http._WebSocketImpl.__proto__),
  protocol: dart.finalFieldType(core.String),
  [_controller$1]: dart.fieldType(async.StreamController),
  [_subscription$0]: dart.fieldType(async.StreamSubscription),
  [_sink]: dart.fieldType(async.StreamSink),
  [_socket$0]: dart.finalFieldType(dart.dynamic),
  [_serverSide$]: dart.finalFieldType(core.bool),
  [_readyState]: dart.fieldType(core.int),
  [_writeClosed]: dart.fieldType(core.bool),
  [_closeCode]: dart.fieldType(core.int),
  [_closeReason]: dart.fieldType(core.String),
  [_pingInterval]: dart.fieldType(core.Duration),
  [_pingTimer]: dart.fieldType(async.Timer),
  [_consumer]: dart.fieldType(_http._WebSocketConsumer),
  [_outCloseCode]: dart.fieldType(core.int),
  [_outCloseReason]: dart.fieldType(core.String),
  [_closeTimer]: dart.fieldType(async.Timer),
  [_deflate$]: dart.fieldType(_http._WebSocketPerMessageDeflate)
}));
dart.defineLazy(_http._WebSocketImpl, {
  /*_http._WebSocketImpl._webSockets*/get _webSockets() {
    return new (LinkedMapOfintL$_WebSocketImplL()).new();
  },
  set _webSockets(_) {},
  /*_http._WebSocketImpl.DEFAULT_WINDOW_BITS*/get DEFAULT_WINDOW_BITS() {
    return 15;
  },
  /*_http._WebSocketImpl.PER_MESSAGE_DEFLATE*/get PER_MESSAGE_DEFLATE() {
    return "permessage-deflate";
  },
  /*_http._WebSocketImpl._httpClient*/get _httpClient() {
    return _http.HttpClient.new();
  }
}, true);
_http._getHttpVersion = function _getHttpVersion() {
  let version = io.Platform.version;
  let index = version[$indexOf](".", version[$indexOf](".") + 1);
  version = version[$substring](0, index);
  return "Dart/" + dart.str(version) + " (dart:io)";
};
dart.defineLazy(_http, {
  /*_http._MASK_8*/get _MASK_8() {
    return 255;
  },
  /*_http._MASK_32*/get _MASK_32() {
    return 4294967295.0;
  },
  /*_http._BITS_PER_BYTE*/get _BITS_PER_BYTE() {
    return 8;
  },
  /*_http._BYTES_PER_WORD*/get _BYTES_PER_WORD() {
    return 4;
  },
  /*_http._nextServiceId*/get _nextServiceId() {
    return 1;
  },
  set _nextServiceId(_) {},
  /*_http._OUTGOING_BUFFER_SIZE*/get _OUTGOING_BUFFER_SIZE() {
    return 8192;
  },
  /*_http._DART_SESSION_ID*/get _DART_SESSION_ID() {
    return "DARTSESSID";
  },
  /*_http._httpOverridesToken*/get _httpOverridesToken() {
    return new core.Object.new();
  },
  /*_http._asyncRunZoned*/get _asyncRunZoned() {
    return C209 || CT.C209;
  },
  /*_http._webSocketGUID*/get _webSocketGUID() {
    return "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
  },
  /*_http._clientNoContextTakeover*/get _clientNoContextTakeover() {
    return "client_no_context_takeover";
  },
  /*_http._serverNoContextTakeover*/get _serverNoContextTakeover() {
    return "server_no_context_takeover";
  },
  /*_http._clientMaxWindowBits*/get _clientMaxWindowBits() {
    return "client_max_window_bits";
  },
  /*_http._serverMaxWindowBits*/get _serverMaxWindowBits() {
    return "server_max_window_bits";
  }
}, true);
dart.setBaseClass(_http._HttpConnection.__proto__, collection.LinkedListEntry$(_http._HttpConnection));
dart.trackLibraries("dart_sdk", {
  "dart:_runtime": dart,
  "dart:_debugger": _debugger,
  "dart:_foreign_helper": _foreign_helper,
  "dart:_interceptors": _interceptors,
  "dart:_internal": _internal,
  "dart:_isolate_helper": _isolate_helper,
  "dart:_js_helper": _js_helper,
  "dart:_js_primitives": _js_primitives,
  "dart:_metadata": _metadata,
  "dart:_native_typed_data": _native_typed_data,
  "dart:async": async,
  "dart:collection": collection,
  "dart:convert": convert,
  "dart:developer": developer,
  "dart:io": io,
  "dart:isolate": isolate$,
  "dart:js": js,
  "dart:js_util": js_util,
  "dart:math": math,
  "dart:typed_data": typed_data,
  "dart:indexed_db": indexed_db,
  "dart:html": html$,
  "dart:html_common": html_common,
  "dart:svg": svg$,
  "dart:web_audio": web_audio,
  "dart:web_gl": web_gl,
  "dart:web_sql": web_sql,
  "dart:core": core,
  "dart:_http": _http
}, {
  "dart:_runtime": ["utils.dart", "classes.dart", "rtti.dart", "types.dart", "errors.dart", "operations.dart"],
  "dart:_debugger": ["profile.dart"],
  "dart:_interceptors": ["js_array.dart", "js_number.dart", "js_string.dart"],
  "dart:_internal": ["async_cast.dart", "cast.dart", "errors.dart", "iterable.dart", "list.dart", "print.dart", "sort.dart", "symbol.dart", "linked_list.dart"],
  "dart:_js_helper": ["annotations.dart", "linked_hash_map.dart", "identity_hash_map.dart", "custom_hash_map.dart", "native_helper.dart", "regexp_helper.dart", "string_helper.dart", "js_rti.dart"],
  "dart:async": ["async_error.dart", "broadcast_stream_controller.dart", "deferred_load.dart", "future.dart", "future_impl.dart", "schedule_microtask.dart", "stream.dart", "stream_controller.dart", "stream_impl.dart", "stream_pipe.dart", "stream_transformers.dart", "timer.dart", "zone.dart"],
  "dart:collection": ["collections.dart", "hash_map.dart", "hash_set.dart", "iterable.dart", "iterator.dart", "linked_hash_map.dart", "linked_hash_set.dart", "linked_list.dart", "list.dart", "maps.dart", "queue.dart", "set.dart", "splay_tree.dart"],
  "dart:convert": ["ascii.dart", "base64.dart", "byte_conversion.dart", "chunked_conversion.dart", "codec.dart", "converter.dart", "encoding.dart", "html_escape.dart", "json.dart", "latin1.dart", "line_splitter.dart", "string_conversion.dart", "utf.dart"],
  "dart:developer": ["extension.dart", "profiler.dart", "service.dart", "timeline.dart"],
  "dart:io": ["bytes_builder.dart", "common.dart", "data_transformer.dart", "directory.dart", "directory_impl.dart", "embedder_config.dart", "eventhandler.dart", "file.dart", "file_impl.dart", "file_system_entity.dart", "io_resource_info.dart", "io_sink.dart", "io_service.dart", "link.dart", "namespace_impl.dart", "network_profiling.dart", "overrides.dart", "platform.dart", "platform_impl.dart", "process.dart", "secure_server_socket.dart", "secure_socket.dart", "security_context.dart", "service_object.dart", "socket.dart", "stdio.dart", "string_transformer.dart", "sync_socket.dart"],
  "dart:isolate": ["capability.dart"],
  "dart:math": ["jenkins_smi_hash.dart", "point.dart", "random.dart", "rectangle.dart"],
  "dart:typed_data": ["unmodifiable_typed_data.dart"],
  "dart:html_common": ["css_class_set.dart", "conversions.dart", "conversions_dart2js.dart", "device.dart", "filtered_element_list.dart", "lists.dart"],
  "dart:core": ["annotations.dart", "bigint.dart", "bool.dart", "comparable.dart", "date_time.dart", "double.dart", "duration.dart", "errors.dart", "exceptions.dart", "expando.dart", "function.dart", "identical.dart", "int.dart", "invocation.dart", "iterable.dart", "iterator.dart", "list.dart", "map.dart", "null.dart", "num.dart", "object.dart", "pattern.dart", "print.dart", "regexp.dart", "set.dart", "sink.dart", "stacktrace.dart", "stopwatch.dart", "string.dart", "string_buffer.dart", "string_sink.dart", "symbol.dart", "type.dart", "uri.dart"],
  "dart:_http": ["crypto.dart", "http_date.dart", "http_headers.dart", "http_impl.dart", "http_parser.dart", "http_session.dart", "overrides.dart", "websocket.dart", "websocket_impl.dart"]
}, null);

//# sourceMappingURL=dart_sdk.js.map
