Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(275)

Side by Side Diff: lib/runtime/messages_widget.js

Issue 1788973002: Remove code that requires whole-program compile (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: merged Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/runtime/messages_widget.dart ('k') | lib/runtime/messages_widget.js.map » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Generated by dart2js, the Dart to JavaScript compiler version: 1.13.0-dev.3.1 .
2 // The code supports the following hooks:
3 // dartPrint(message):
4 // if this function is defined it is called instead of the Dart [print]
5 // method.
6 //
7 // dartMainRunner(main, args):
8 // if this function is defined, the Dart [main] method will not be invoked
9 // directly. Instead, a closure that will invoke [main], and its arguments
10 // [args] is passed to [dartMainRunner].
11 //
12 // dartDeferredLibraryLoader(uri, successCallback, errorCallback):
13 // if this function is defined, it will be called when a deferered library
14 // is loaded. It should load and eval the javascript of `uri`, and call
15 // successCallback. If it fails to do so, it should call errorCallback with
16 // an error.
17 (function() {
18 // /* ::norenaming:: */
19 var supportsDirectProtoAccess = function() {
20 var cls = function() {
21 };
22 cls.prototype = {p: {}};
23 var object = new cls();
24 return object.__proto__ && object.__proto__.p === cls.prototype.p;
25 }();
26 function map(x) {
27 x = Object.create(null);
28 x.x = 0;
29 delete x.x;
30 return x;
31 }
32 // The global objects start as so-called "slow objects". For V8, this
33 // means that it won't try to make map transitions as we add properties
34 // to these objects. Later on, we attempt to turn these objects into
35 // fast objects by calling "convertToFastObject" (see
36 // [emitConvertToFastObjectFunction]).
37 var A = map();
38 var B = map();
39 var C = map();
40 var D = map();
41 var E = map();
42 var F = map();
43 var G = map();
44 var H = map();
45 var J = map();
46 var K = map();
47 var L = map();
48 var M = map();
49 var N = map();
50 var O = map();
51 var P = map();
52 var Q = map();
53 var R = map();
54 var S = map();
55 var T = map();
56 var U = map();
57 var V = map();
58 var W = map();
59 var X = map();
60 var Y = map();
61 var Z = map();
62 function Isolate() {
63 }
64 init();
65 // Constructors are generated at runtime.
66 function setupProgram(programData, typesOffset) {
67 "use strict";
68 function generateAccessor(fieldDescriptor, accessors, cls) {
69 var fieldInformation = fieldDescriptor.split("-");
70 var field = fieldInformation[0];
71 var len = field.length;
72 var code = field.charCodeAt(len - 1);
73 var reflectable;
74 if (fieldInformation.length > 1)
75 reflectable = true;
76 else
77 reflectable = false;
78 code = code >= 60 && code <= 64 ? code - 59 : code >= 123 && code <= 126 ? code - 117 : code >= 37 && code <= 43 ? code - 27 : 0;
79 if (code) {
80 var getterCode = code & 3;
81 var setterCode = code >> 2;
82 var accessorName = field = field.substring(0, len - 1);
83 var divider = field.indexOf(":");
84 if (divider > 0) {
85 accessorName = field.substring(0, divider);
86 field = field.substring(divider + 1);
87 }
88 if (getterCode) {
89 var args = getterCode & 2 ? "receiver" : "";
90 var receiver = getterCode & 1 ? "this" : "receiver";
91 var body = "return " + receiver + "." + field;
92 var property = cls + ".prototype.get$" + accessorName + "=";
93 var fn = "function(" + args + "){" + body + "}";
94 if (reflectable)
95 accessors.push(property + "$reflectable(" + fn + ");\n");
96 else
97 accessors.push(property + fn + ";\n");
98 }
99 if (setterCode) {
100 var args = setterCode & 2 ? "receiver, value" : "value";
101 var receiver = setterCode & 1 ? "this" : "receiver";
102 var body = receiver + "." + field + " = value";
103 var property = cls + ".prototype.set$" + accessorName + "=";
104 var fn = "function(" + args + "){" + body + "}";
105 if (reflectable)
106 accessors.push(property + "$reflectable(" + fn + ");\n");
107 else
108 accessors.push(property + fn + ";\n");
109 }
110 }
111 return field;
112 }
113 function defineClass(name, fields) {
114 var accessors = [];
115 var str = "function " + name + "(";
116 var body = "";
117 var fieldNames = "";
118 for (var i = 0; i < fields.length; i++) {
119 if (i != 0)
120 str += ", ";
121 var field = generateAccessor(fields[i], accessors, name);
122 fieldNames += "'" + field + "',";
123 var parameter = "p_" + field;
124 str += parameter;
125 body += "this." + field + " = " + parameter + ";\n";
126 }
127 if (supportsDirectProtoAccess)
128 body += "this." + "$deferredAction" + "();";
129 str += ") {\n" + body + "}\n";
130 str += name + ".builtin$cls=\"" + name + "\";\n";
131 str += "$desc=$collectedClasses." + name + "[1];\n";
132 str += name + ".prototype = $desc;\n";
133 if (typeof defineClass.name != "string")
134 str += name + ".name=\"" + name + "\";\n";
135 str += name + "." + "$__fields__" + "=[" + fieldNames + "];\n";
136 str += accessors.join("");
137 return str;
138 }
139 init.createNewIsolate = function() {
140 return new Isolate();
141 };
142 init.classIdExtractor = function(o) {
143 return o.constructor.name;
144 };
145 init.classFieldsExtractor = function(o) {
146 var fieldNames = o.constructor.$__fields__;
147 if (!fieldNames)
148 return [];
149 var result = [];
150 result.length = fieldNames.length;
151 for (var i = 0; i < fieldNames.length; i++)
152 result[i] = o[fieldNames[i]];
153 return result;
154 };
155 init.instanceFromClassId = function(name) {
156 return new init.allClasses[name]();
157 };
158 init.initializeEmptyInstance = function(name, o, fields) {
159 init.allClasses[name].apply(o, fields);
160 return o;
161 };
162 var inheritFrom = supportsDirectProtoAccess ? function(constructor, superCon structor) {
163 var prototype = constructor.prototype;
164 prototype.__proto__ = superConstructor.prototype;
165 prototype.constructor = constructor;
166 prototype["$is" + constructor.name] = constructor;
167 return convertToFastObject(prototype);
168 } : function() {
169 function tmp() {
170 }
171 return function(constructor, superConstructor) {
172 tmp.prototype = superConstructor.prototype;
173 var object = new tmp();
174 convertToSlowObject(object);
175 var properties = constructor.prototype;
176 var members = Object.keys(properties);
177 for (var i = 0; i < members.length; i++) {
178 var member = members[i];
179 object[member] = properties[member];
180 }
181 object["$is" + constructor.name] = constructor;
182 object.constructor = constructor;
183 constructor.prototype = object;
184 return object;
185 };
186 }();
187 function finishClasses(processedClasses) {
188 var allClasses = init.allClasses;
189 processedClasses.combinedConstructorFunction += "return [\n" + processedCl asses.constructorsList.join(",\n ") + "\n]";
190 var constructors = new Function("$collectedClasses", processedClasses.comb inedConstructorFunction)(processedClasses.collected);
191 processedClasses.combinedConstructorFunction = null;
192 for (var i = 0; i < constructors.length; i++) {
193 var constructor = constructors[i];
194 var cls = constructor.name;
195 var desc = processedClasses.collected[cls];
196 var globalObject = desc[0];
197 desc = desc[1];
198 allClasses[cls] = constructor;
199 globalObject[cls] = constructor;
200 }
201 constructors = null;
202 var finishedClasses = init.finishedClasses;
203 function finishClass(cls) {
204 if (finishedClasses[cls])
205 return;
206 finishedClasses[cls] = true;
207 var superclass = processedClasses.pending[cls];
208 if (superclass && superclass.indexOf("+") > 0) {
209 var s = superclass.split("+");
210 superclass = s[0];
211 var mixinClass = s[1];
212 finishClass(mixinClass);
213 var mixin = allClasses[mixinClass];
214 var mixinPrototype = mixin.prototype;
215 var clsPrototype = allClasses[cls].prototype;
216 var properties = Object.keys(mixinPrototype);
217 for (var i = 0; i < properties.length; i++) {
218 var d = properties[i];
219 if (!hasOwnProperty.call(clsPrototype, d))
220 clsPrototype[d] = mixinPrototype[d];
221 }
222 }
223 if (!superclass || typeof superclass != "string") {
224 var constructor = allClasses[cls];
225 var prototype = constructor.prototype;
226 prototype.constructor = constructor;
227 prototype.$isObject = constructor;
228 prototype.$deferredAction = function() {
229 };
230 return;
231 }
232 finishClass(superclass);
233 var superConstructor = allClasses[superclass];
234 if (!superConstructor)
235 superConstructor = existingIsolateProperties[superclass];
236 var constructor = allClasses[cls];
237 var prototype = inheritFrom(constructor, superConstructor);
238 if (mixinPrototype)
239 prototype.$deferredAction = mixinDeferredActionHelper(mixinPrototype, prototype);
240 if (Object.prototype.hasOwnProperty.call(prototype, "%")) {
241 var nativeSpec = prototype["%"].split(";");
242 if (nativeSpec[0]) {
243 var tags = nativeSpec[0].split("|");
244 for (var i = 0; i < tags.length; i++) {
245 init.interceptorsByTag[tags[i]] = constructor;
246 init.leafTags[tags[i]] = true;
247 }
248 }
249 if (nativeSpec[1]) {
250 tags = nativeSpec[1].split("|");
251 if (nativeSpec[2]) {
252 var subclasses = nativeSpec[2].split("|");
253 for (var i = 0; i < subclasses.length; i++) {
254 var subclass = allClasses[subclasses[i]];
255 subclass.$nativeSuperclassTag = tags[0];
256 }
257 }
258 for (i = 0; i < tags.length; i++) {
259 init.interceptorsByTag[tags[i]] = constructor;
260 init.leafTags[tags[i]] = false;
261 }
262 }
263 prototype.$deferredAction();
264 }
265 if (prototype.$isInterceptor)
266 prototype.$deferredAction();
267 }
268 var properties = Object.keys(processedClasses.pending);
269 for (var i = 0; i < properties.length; i++)
270 finishClass(properties[i]);
271 }
272 function finishAddStubsHelper() {
273 var prototype = this;
274 while (!prototype.hasOwnProperty("$deferredAction"))
275 prototype = prototype.__proto__;
276 delete prototype.$deferredAction;
277 var properties = Object.keys(prototype);
278 for (var index = 0; index < properties.length; index++) {
279 var property = properties[index];
280 var firstChar = property.charCodeAt(0);
281 var elem;
282 if (property !== "^" && property !== "$reflectable" && firstChar !== 43 && firstChar !== 42 && (elem = prototype[property]) != null && elem.constructor === Array && property !== "<>")
283 addStubs(prototype, elem, property, false, []);
284 }
285 convertToFastObject(prototype);
286 prototype = prototype.__proto__;
287 prototype.$deferredAction();
288 }
289 function mixinDeferredActionHelper(mixinPrototype, targetPrototype) {
290 var chain;
291 if (targetPrototype.hasOwnProperty("$deferredAction"))
292 chain = targetPrototype.$deferredAction;
293 return function foo() {
294 var prototype = this;
295 while (!prototype.hasOwnProperty("$deferredAction"))
296 prototype = prototype.__proto__;
297 if (chain)
298 prototype.$deferredAction = chain;
299 else {
300 delete prototype.$deferredAction;
301 convertToFastObject(prototype);
302 }
303 mixinPrototype.$deferredAction();
304 prototype.$deferredAction();
305 };
306 }
307 function processClassData(cls, descriptor, processedClasses) {
308 descriptor = convertToSlowObject(descriptor);
309 var previousProperty;
310 var properties = Object.keys(descriptor);
311 var hasDeferredWork = false;
312 var shouldDeferWork = supportsDirectProtoAccess && cls != "Object";
313 for (var i = 0; i < properties.length; i++) {
314 var property = properties[i];
315 var firstChar = property.charCodeAt(0);
316 if (property === "static") {
317 processStatics(init.statics[cls] = descriptor.static, processedClasses );
318 delete descriptor.static;
319 } else if (firstChar === 43) {
320 mangledNames[previousProperty] = property.substring(1);
321 var flag = descriptor[property];
322 if (flag > 0)
323 descriptor[previousProperty].$reflectable = flag;
324 } else if (firstChar === 42) {
325 descriptor[previousProperty].$defaultValues = descriptor[property];
326 var optionalMethods = descriptor.$methodsWithOptionalArguments;
327 if (!optionalMethods)
328 descriptor.$methodsWithOptionalArguments = optionalMethods = {};
329 optionalMethods[property] = previousProperty;
330 } else {
331 var elem = descriptor[property];
332 if (property !== "^" && elem != null && elem.constructor === Array && property !== "<>")
333 if (shouldDeferWork)
334 hasDeferredWork = true;
335 else
336 addStubs(descriptor, elem, property, false, []);
337 else
338 previousProperty = property;
339 }
340 }
341 if (hasDeferredWork)
342 descriptor.$deferredAction = finishAddStubsHelper;
343 var classData = descriptor["^"], split, supr, fields = classData;
344 var s = fields.split(";");
345 fields = s[1] ? s[1].split(",") : [];
346 supr = s[0];
347 split = supr.split(":");
348 if (split.length == 2) {
349 supr = split[0];
350 var functionSignature = split[1];
351 if (functionSignature)
352 descriptor.$signature = function(s) {
353 return function() {
354 return init.types[s];
355 };
356 }(functionSignature);
357 }
358 if (supr)
359 processedClasses.pending[cls] = supr;
360 processedClasses.combinedConstructorFunction += defineClass(cls, fields);
361 processedClasses.constructorsList.push(cls);
362 processedClasses.collected[cls] = [globalObject, descriptor];
363 classes.push(cls);
364 }
365 function processStatics(descriptor, processedClasses) {
366 var properties = Object.keys(descriptor);
367 for (var i = 0; i < properties.length; i++) {
368 var property = properties[i];
369 if (property === "^")
370 continue;
371 var element = descriptor[property];
372 var firstChar = property.charCodeAt(0);
373 var previousProperty;
374 if (firstChar === 43) {
375 mangledGlobalNames[previousProperty] = property.substring(1);
376 var flag = descriptor[property];
377 if (flag > 0)
378 descriptor[previousProperty].$reflectable = flag;
379 if (element && element.length)
380 init.typeInformation[previousProperty] = element;
381 } else if (firstChar === 42) {
382 globalObject[previousProperty].$defaultValues = element;
383 var optionalMethods = descriptor.$methodsWithOptionalArguments;
384 if (!optionalMethods)
385 descriptor.$methodsWithOptionalArguments = optionalMethods = {};
386 optionalMethods[property] = previousProperty;
387 } else if (typeof element === "function") {
388 globalObject[previousProperty = property] = element;
389 functions.push(property);
390 init.globalFunctions[property] = element;
391 } else if (element.constructor === Array)
392 addStubs(globalObject, element, property, true, functions);
393 else {
394 previousProperty = property;
395 processClassData(property, element, processedClasses);
396 }
397 }
398 }
399 function addStubs(prototype, array, name, isStatic, functions) {
400 var index = 0, alias = array[index], f;
401 if (typeof alias == "string")
402 f = array[++index];
403 else {
404 f = alias;
405 alias = name;
406 }
407 var funcs = [prototype[name] = prototype[alias] = f];
408 f.$stubName = name;
409 functions.push(name);
410 for (index++; index < array.length; index++) {
411 f = array[index];
412 if (typeof f != "function")
413 break;
414 if (!isStatic)
415 f.$stubName = array[++index];
416 funcs.push(f);
417 if (f.$stubName) {
418 prototype[f.$stubName] = f;
419 functions.push(f.$stubName);
420 }
421 }
422 for (var i = 0; i < funcs.length; index++, i++)
423 funcs[i].$callName = array[index];
424 var getterStubName = array[index];
425 array = array.slice(++index);
426 var requiredParameterInfo = array[0];
427 var requiredParameterCount = requiredParameterInfo >> 1;
428 var isAccessor = (requiredParameterInfo & 1) === 1;
429 var isSetter = requiredParameterInfo === 3;
430 var isGetter = requiredParameterInfo === 1;
431 var optionalParameterInfo = array[1];
432 var optionalParameterCount = optionalParameterInfo >> 1;
433 var optionalParametersAreNamed = (optionalParameterInfo & 1) === 1;
434 var isIntercepted = requiredParameterCount + optionalParameterCount != fun cs[0].length;
435 var functionTypeIndex = array[2];
436 if (typeof functionTypeIndex == "number")
437 array[2] = functionTypeIndex + typesOffset;
438 var unmangledNameIndex = 2 * optionalParameterCount + requiredParameterCou nt + 3;
439 if (getterStubName) {
440 f = tearOff(funcs, array, isStatic, name, isIntercepted);
441 prototype[name].$getter = f;
442 f.$getterStub = true;
443 if (isStatic) {
444 init.globalFunctions[name] = f;
445 functions.push(getterStubName);
446 }
447 prototype[getterStubName] = f;
448 funcs.push(f);
449 f.$stubName = getterStubName;
450 f.$callName = null;
451 }
452 }
453 function tearOffGetter(funcs, reflectionInfo, name, isIntercepted) {
454 return isIntercepted ? new Function("funcs", "reflectionInfo", "name", "H" , "c", "return function tearOff_" + name + functionCounter++ + "(x) {" + "if (c === null) c = " + "H.closureFromTearOff" + "(" + "this, funcs, reflectionInfo, f alse, [x], name);" + "return new c(this, funcs[0], x, name);" + "}")(funcs, refl ectionInfo, name, H, null) : new Function("funcs", "reflectionInfo", "name", "H" , "c", "return function tearOff_" + name + functionCounter++ + "() {" + "if (c = == null) c = " + "H.closureFromTearOff" + "(" + "this, funcs, reflectionInfo, fa lse, [], name);" + "return new c(this, funcs[0], null, name);" + "}")(funcs, ref lectionInfo, name, H, null);
455 }
456 function tearOff(funcs, reflectionInfo, isStatic, name, isIntercepted) {
457 var cache;
458 return isStatic ? function() {
459 if (cache === void 0)
460 cache = H.closureFromTearOff(this, funcs, reflectionInfo, true, [], na me).prototype;
461 return cache;
462 } : tearOffGetter(funcs, reflectionInfo, name, isIntercepted);
463 }
464 var functionCounter = 0;
465 if (!init.libraries)
466 init.libraries = [];
467 if (!init.mangledNames)
468 init.mangledNames = map();
469 if (!init.mangledGlobalNames)
470 init.mangledGlobalNames = map();
471 if (!init.statics)
472 init.statics = map();
473 if (!init.typeInformation)
474 init.typeInformation = map();
475 if (!init.globalFunctions)
476 init.globalFunctions = map();
477 var libraries = init.libraries;
478 var mangledNames = init.mangledNames;
479 var mangledGlobalNames = init.mangledGlobalNames;
480 var hasOwnProperty = Object.prototype.hasOwnProperty;
481 var length = programData.length;
482 var processedClasses = map();
483 processedClasses.collected = map();
484 processedClasses.pending = map();
485 processedClasses.constructorsList = [];
486 processedClasses.combinedConstructorFunction = "function $reflectable(fn){fn .$reflectable=1;return fn};\n" + "var $desc;\n";
487 for (var i = 0; i < length; i++) {
488 var data = programData[i];
489 var name = data[0];
490 var uri = data[1];
491 var metadata = data[2];
492 var globalObject = data[3];
493 var descriptor = data[4];
494 var isRoot = !!data[5];
495 var fields = descriptor && descriptor["^"];
496 if (fields instanceof Array)
497 fields = fields[0];
498 var classes = [];
499 var functions = [];
500 processStatics(descriptor, processedClasses);
501 libraries.push([name, uri, classes, functions, metadata, fields, isRoot, g lobalObject]);
502 }
503 finishClasses(processedClasses);
504 }
505 Isolate.functionThatReturnsNull = function() {
506 };
507 var dart = [["_foreign_helper", "dart:_foreign_helper",, H, {
508 "^": "",
509 JS_CONST: {
510 "^": "Object;code"
511 }
512 }], ["_interceptors", "dart:_interceptors",, J, {
513 "^": "",
514 getInterceptor: function(object) {
515 return void 0;
516 },
517 makeDispatchRecord: function(interceptor, proto, extension, indexability) {
518 return {i: interceptor, p: proto, e: extension, x: indexability};
519 },
520 getNativeInterceptor: function(object) {
521 var record, proto, objectProto, interceptor;
522 record = object[init.dispatchPropertyName];
523 if (record == null)
524 if ($.initNativeDispatchFlag == null) {
525 H.initNativeDispatch();
526 record = object[init.dispatchPropertyName];
527 }
528 if (record != null) {
529 proto = record.p;
530 if (false === proto)
531 return record.i;
532 if (true === proto)
533 return object;
534 objectProto = Object.getPrototypeOf(object);
535 if (proto === objectProto)
536 return record.i;
537 if (record.e === objectProto)
538 throw H.wrapException(new P.UnimplementedError("Return interceptor for " + H.S(proto(object, record))));
539 }
540 interceptor = H.lookupAndCacheInterceptor(object);
541 if (interceptor == null) {
542 proto = Object.getPrototypeOf(object);
543 if (proto == null || proto === Object.prototype)
544 return C.PlainJavaScriptObject_methods;
545 else
546 return C.UnknownJavaScriptObject_methods;
547 }
548 return interceptor;
549 },
550 Interceptor: {
551 "^": "Object;",
552 $eq: function(receiver, other) {
553 return receiver === other;
554 },
555 get$hashCode: function(receiver) {
556 return H.Primitives_objectHashCode(receiver);
557 },
558 toString$0: ["super$Interceptor$toString", function(receiver) {
559 return H.Primitives_objectToHumanReadableString(receiver);
560 }],
561 "%": "DOMImplementation|MediaError|MediaKeyError|Range|SVGAnimatedEnumerat ion|SVGAnimatedLength|SVGAnimatedLengthList|SVGAnimatedNumber|SVGAnimatedNumberL ist|SVGAnimatedString"
562 },
563 JSBool: {
564 "^": "Interceptor;",
565 toString$0: function(receiver) {
566 return String(receiver);
567 },
568 get$hashCode: function(receiver) {
569 return receiver ? 519018 : 218159;
570 },
571 $isbool: 1
572 },
573 JSNull: {
574 "^": "Interceptor;",
575 $eq: function(receiver, other) {
576 return null == other;
577 },
578 toString$0: function(receiver) {
579 return "null";
580 },
581 get$hashCode: function(receiver) {
582 return 0;
583 }
584 },
585 JavaScriptObject: {
586 "^": "Interceptor;",
587 get$hashCode: function(_) {
588 return 0;
589 },
590 $isJSObject: 1
591 },
592 PlainJavaScriptObject: {
593 "^": "JavaScriptObject;"
594 },
595 UnknownJavaScriptObject: {
596 "^": "JavaScriptObject;",
597 toString$0: function(receiver) {
598 return String(receiver);
599 }
600 },
601 JSArray: {
602 "^": "Interceptor;",
603 checkMutable$1: function(receiver, reason) {
604 if (!!receiver.immutable$list)
605 throw H.wrapException(new P.UnsupportedError(reason));
606 },
607 checkGrowable$1: function(receiver, reason) {
608 if (!!receiver.fixed$length)
609 throw H.wrapException(new P.UnsupportedError(reason));
610 },
611 add$1: function(receiver, value) {
612 this.checkGrowable$1(receiver, "add");
613 receiver.push(value);
614 },
615 removeAt$1: function(receiver, index) {
616 this.checkGrowable$1(receiver, "removeAt");
617 if (index >= receiver.length)
618 throw H.wrapException(P.RangeError$value(index, null, null));
619 return receiver.splice(index, 1)[0];
620 },
621 insert$2: function(receiver, index, value) {
622 this.checkGrowable$1(receiver, "insert");
623 if (index > receiver.length)
624 throw H.wrapException(P.RangeError$value(index, null, null));
625 receiver.splice(index, 0, value);
626 },
627 insertAll$2: function(receiver, index, iterable) {
628 var insertionLength, end;
629 this.checkGrowable$1(receiver, "insertAll");
630 P.RangeError_checkValueInInterval(index, 0, receiver.length, "index", nu ll);
631 insertionLength = iterable.length;
632 this.set$length(receiver, receiver.length + insertionLength);
633 end = index + insertionLength;
634 this.setRange$4(receiver, end, receiver.length, receiver, index);
635 this.setRange$3(receiver, index, end, iterable);
636 },
637 removeLast$0: function(receiver) {
638 this.checkGrowable$1(receiver, "removeLast");
639 if (receiver.length === 0)
640 throw H.wrapException(H.diagnoseIndexError(receiver, -1));
641 return receiver.pop();
642 },
643 where$1: function(receiver, f) {
644 return H.setRuntimeTypeInfo(new H.WhereIterable(receiver, f), [H.getType ArgumentByIndex(receiver, 0)]);
645 },
646 forEach$1: function(receiver, f) {
647 var end, i;
648 end = receiver.length;
649 for (i = 0; i < end; ++i) {
650 f.call$1(receiver[i]);
651 if (receiver.length !== end)
652 throw H.wrapException(new P.ConcurrentModificationError(receiver));
653 }
654 },
655 map$1: function(receiver, f) {
656 return H.setRuntimeTypeInfo(new H.MappedListIterable(receiver, f), [null , null]);
657 },
658 join$1: function(receiver, separator) {
659 var t1, list, i, t2;
660 t1 = receiver.length;
661 list = new Array(t1);
662 list.fixed$length = Array;
663 for (i = 0; i < receiver.length; ++i) {
664 t2 = H.S(receiver[i]);
665 if (i >= t1)
666 return H.ioore(list, i);
667 list[i] = t2;
668 }
669 return list.join(separator);
670 },
671 elementAt$1: function(receiver, index) {
672 if (index >>> 0 !== index || index >= receiver.length)
673 return H.ioore(receiver, index);
674 return receiver[index];
675 },
676 sublist$2: function(receiver, start, end) {
677 if (start < 0 || start > receiver.length)
678 throw H.wrapException(P.RangeError$range(start, 0, receiver.length, "s tart", null));
679 if (end < start || end > receiver.length)
680 throw H.wrapException(P.RangeError$range(end, start, receiver.length, "end", null));
681 if (start === end)
682 return H.setRuntimeTypeInfo([], [H.getTypeArgumentByIndex(receiver, 0) ]);
683 return H.setRuntimeTypeInfo(receiver.slice(start, end), [H.getTypeArgume ntByIndex(receiver, 0)]);
684 },
685 get$first: function(receiver) {
686 if (receiver.length > 0)
687 return receiver[0];
688 throw H.wrapException(H.IterableElementError_noElement());
689 },
690 get$last: function(receiver) {
691 var t1 = receiver.length;
692 if (t1 > 0)
693 return receiver[t1 - 1];
694 throw H.wrapException(H.IterableElementError_noElement());
695 },
696 setRange$4: function(receiver, start, end, iterable, skipCount) {
697 var $length, i, t1;
698 this.checkMutable$1(receiver, "set range");
699 P.RangeError_checkValidRange(start, end, receiver.length, null, null, nu ll);
700 $length = end - start;
701 if ($length === 0)
702 return;
703 if (skipCount < 0)
704 H.throwExpression(P.RangeError$range(skipCount, 0, null, "skipCount", null));
705 if (skipCount + $length > iterable.length)
706 throw H.wrapException(H.IterableElementError_tooFew());
707 if (skipCount < start)
708 for (i = $length - 1; i >= 0; --i) {
709 t1 = skipCount + i;
710 if (t1 < 0 || t1 >= iterable.length)
711 return H.ioore(iterable, t1);
712 receiver[start + i] = iterable[t1];
713 }
714 else
715 for (i = 0; i < $length; ++i) {
716 t1 = skipCount + i;
717 if (t1 < 0 || t1 >= iterable.length)
718 return H.ioore(iterable, t1);
719 receiver[start + i] = iterable[t1];
720 }
721 },
722 setRange$3: function($receiver, start, end, iterable) {
723 return this.setRange$4($receiver, start, end, iterable, 0);
724 },
725 any$1: function(receiver, test) {
726 var end, i;
727 end = receiver.length;
728 for (i = 0; i < end; ++i) {
729 if (test.call$1(receiver[i]) === true)
730 return true;
731 if (receiver.length !== end)
732 throw H.wrapException(new P.ConcurrentModificationError(receiver));
733 }
734 return false;
735 },
736 indexOf$2: function(receiver, element, start) {
737 var i, t1;
738 if (start >= receiver.length)
739 return -1;
740 if (start < 0)
741 start = 0;
742 for (i = start; t1 = receiver.length, i < t1; ++i) {
743 if (i < 0)
744 return H.ioore(receiver, i);
745 if (J.$eq$(receiver[i], element))
746 return i;
747 }
748 return -1;
749 },
750 indexOf$1: function($receiver, element) {
751 return this.indexOf$2($receiver, element, 0);
752 },
753 lastIndexOf$2: function(receiver, element, startIndex) {
754 var t1, i;
755 if (startIndex < 0)
756 return -1;
757 t1 = receiver.length;
758 if (startIndex >= t1)
759 startIndex = t1 - 1;
760 for (i = startIndex; i >= 0; --i) {
761 if (i >= receiver.length)
762 return H.ioore(receiver, i);
763 if (J.$eq$(receiver[i], element))
764 return i;
765 }
766 return -1;
767 },
768 contains$1: function(receiver, other) {
769 var i;
770 for (i = 0; i < receiver.length; ++i)
771 if (J.$eq$(receiver[i], other))
772 return true;
773 return false;
774 },
775 get$isEmpty: function(receiver) {
776 return receiver.length === 0;
777 },
778 get$isNotEmpty: function(receiver) {
779 return receiver.length !== 0;
780 },
781 toString$0: function(receiver) {
782 return P.IterableBase_iterableToFullString(receiver, "[", "]");
783 },
784 get$iterator: function(receiver) {
785 return H.setRuntimeTypeInfo(new J.ArrayIterator(receiver, receiver.lengt h, 0, null), [H.getTypeArgumentByIndex(receiver, 0)]);
786 },
787 get$hashCode: function(receiver) {
788 return H.Primitives_objectHashCode(receiver);
789 },
790 get$length: function(receiver) {
791 return receiver.length;
792 },
793 set$length: function(receiver, newLength) {
794 this.checkGrowable$1(receiver, "set length");
795 if (newLength < 0)
796 throw H.wrapException(P.RangeError$range(newLength, 0, null, "newLengt h", null));
797 receiver.length = newLength;
798 },
799 $index: function(receiver, index) {
800 if (typeof index !== "number" || Math.floor(index) !== index)
801 throw H.wrapException(H.diagnoseIndexError(receiver, index));
802 if (index >= receiver.length || index < 0)
803 throw H.wrapException(H.diagnoseIndexError(receiver, index));
804 return receiver[index];
805 },
806 $indexSet: function(receiver, index, value) {
807 if (!!receiver.immutable$list)
808 H.throwExpression(new P.UnsupportedError("indexed set"));
809 if (index >= receiver.length || index < 0)
810 throw H.wrapException(H.diagnoseIndexError(receiver, index));
811 receiver[index] = value;
812 },
813 $isJSIndexable: 1,
814 $isList: 1,
815 $asList: null,
816 $isEfficientLength: 1,
817 static: {JSArray_JSArray$fixed: function($length, $E) {
818 var t1;
819 if (typeof $length !== "number" || Math.floor($length) !== $length)
820 throw H.wrapException(P.ArgumentError$value($length, "length", "is n ot an integer"));
821 if ($length < 0 || $length > 4294967295)
822 throw H.wrapException(P.RangeError$range($length, 0, 4294967295, "le ngth", null));
823 t1 = H.setRuntimeTypeInfo(new Array($length), [$E]);
824 t1.fixed$length = Array;
825 return t1;
826 }}
827 },
828 JSUnmodifiableArray: {
829 "^": "JSArray;"
830 },
831 ArrayIterator: {
832 "^": "Object;__interceptors$_iterable,__interceptors$_length,__interceptor s$_index,__interceptors$_current",
833 get$current: function() {
834 return this.__interceptors$_current;
835 },
836 moveNext$0: function() {
837 var t1, $length, t2;
838 t1 = this.__interceptors$_iterable;
839 $length = t1.length;
840 if (this.__interceptors$_length !== $length)
841 throw H.wrapException(new P.ConcurrentModificationError(t1));
842 t2 = this.__interceptors$_index;
843 if (t2 >= $length) {
844 this.__interceptors$_current = null;
845 return false;
846 }
847 this.__interceptors$_current = t1[t2];
848 this.__interceptors$_index = t2 + 1;
849 return true;
850 }
851 },
852 JSNumber: {
853 "^": "Interceptor;",
854 get$isNegative: function(receiver) {
855 return receiver === 0 ? 1 / receiver < 0 : receiver < 0;
856 },
857 get$isNaN: function(receiver) {
858 return isNaN(receiver);
859 },
860 remainder$1: function(receiver, b) {
861 return receiver % b;
862 },
863 abs$0: function(receiver) {
864 return Math.abs(receiver);
865 },
866 toInt$0: function(receiver) {
867 var t1;
868 if (receiver >= -2147483648 && receiver <= 2147483647)
869 return receiver | 0;
870 if (isFinite(receiver)) {
871 t1 = receiver < 0 ? Math.ceil(receiver) : Math.floor(receiver);
872 return t1 + 0;
873 }
874 throw H.wrapException(new P.UnsupportedError("" + receiver));
875 },
876 toRadixString$1: function(receiver, radix) {
877 var result, match, t1, exponent;
878 H.checkInt(radix);
879 if (radix < 2 || radix > 36)
880 throw H.wrapException(P.RangeError$range(radix, 2, 36, "radix", null)) ;
881 result = receiver.toString(radix);
882 if (C.JSString_methods.codeUnitAt$1(result, result.length - 1) !== 41)
883 return result;
884 match = /^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(result);
885 if (match == null)
886 H.throwExpression(new P.UnsupportedError("Unexpected toString result: " + result));
887 t1 = J.getInterceptor$asx(match);
888 result = t1.$index(match, 1);
889 exponent = +t1.$index(match, 3);
890 if (t1.$index(match, 2) != null) {
891 result += t1.$index(match, 2);
892 exponent -= t1.$index(match, 2).length;
893 }
894 return result + C.JSString_methods.$mul("0", exponent);
895 },
896 toString$0: function(receiver) {
897 if (receiver === 0 && 1 / receiver < 0)
898 return "-0.0";
899 else
900 return "" + receiver;
901 },
902 get$hashCode: function(receiver) {
903 return receiver & 0x1FFFFFFF;
904 },
905 $negate: function(receiver) {
906 return -receiver;
907 },
908 $add: function(receiver, other) {
909 if (typeof other !== "number")
910 throw H.wrapException(H.argumentErrorValue(other));
911 return receiver + other;
912 },
913 $sub: function(receiver, other) {
914 if (typeof other !== "number")
915 throw H.wrapException(H.argumentErrorValue(other));
916 return receiver - other;
917 },
918 _tdivFast$1: function(receiver, other) {
919 return (receiver | 0) === receiver ? receiver / other | 0 : this.toInt$0 (receiver / other);
920 },
921 $shl: function(receiver, other) {
922 if (other < 0)
923 throw H.wrapException(H.argumentErrorValue(other));
924 return other > 31 ? 0 : receiver << other >>> 0;
925 },
926 _shlPositive$1: function(receiver, other) {
927 return other > 31 ? 0 : receiver << other >>> 0;
928 },
929 _shrOtherPositive$1: function(receiver, other) {
930 var t1;
931 if (receiver > 0)
932 t1 = other > 31 ? 0 : receiver >>> other;
933 else {
934 t1 = other > 31 ? 31 : other;
935 t1 = receiver >> t1 >>> 0;
936 }
937 return t1;
938 },
939 _shrReceiverPositive$1: function(receiver, other) {
940 if (other < 0)
941 throw H.wrapException(H.argumentErrorValue(other));
942 return other > 31 ? 0 : receiver >>> other;
943 },
944 $or: function(receiver, other) {
945 if (typeof other !== "number")
946 throw H.wrapException(H.argumentErrorValue(other));
947 return (receiver | other) >>> 0;
948 },
949 $lt: function(receiver, other) {
950 if (typeof other !== "number")
951 throw H.wrapException(H.argumentErrorValue(other));
952 return receiver < other;
953 },
954 $gt: function(receiver, other) {
955 if (typeof other !== "number")
956 throw H.wrapException(H.argumentErrorValue(other));
957 return receiver > other;
958 },
959 $isnum: 1
960 },
961 JSInt: {
962 "^": "JSNumber;",
963 $is$double: 1,
964 $isnum: 1,
965 $is$int: 1
966 },
967 JSDouble: {
968 "^": "JSNumber;",
969 $is$double: 1,
970 $isnum: 1
971 },
972 JSString: {
973 "^": "Interceptor;",
974 codeUnitAt$1: function(receiver, index) {
975 if (typeof index !== "number" || Math.floor(index) !== index)
976 throw H.wrapException(H.diagnoseIndexError(receiver, index));
977 if (index < 0)
978 throw H.wrapException(H.diagnoseIndexError(receiver, index));
979 if (index >= receiver.length)
980 throw H.wrapException(H.diagnoseIndexError(receiver, index));
981 return receiver.charCodeAt(index);
982 },
983 allMatches$2: function(receiver, string, start) {
984 H.checkString(string);
985 H.checkInt(start);
986 if (start > string.length)
987 throw H.wrapException(P.RangeError$range(start, 0, string.length, null , null));
988 return new H._StringAllMatchesIterable(string, receiver, start);
989 },
990 allMatches$1: function($receiver, string) {
991 return this.allMatches$2($receiver, string, 0);
992 },
993 matchAsPrefix$2: function(receiver, string, start) {
994 var t1, i;
995 if (start < 0 || start > string.length)
996 throw H.wrapException(P.RangeError$range(start, 0, string.length, null , null));
997 t1 = receiver.length;
998 if (start + t1 > string.length)
999 return;
1000 for (i = 0; i < t1; ++i)
1001 if (this.codeUnitAt$1(string, start + i) !== this.codeUnitAt$1(receive r, i))
1002 return;
1003 return new H.StringMatch(start, string, receiver);
1004 },
1005 $add: function(receiver, other) {
1006 if (typeof other !== "string")
1007 throw H.wrapException(P.ArgumentError$value(other, null, null));
1008 return receiver + other;
1009 },
1010 endsWith$1: function(receiver, other) {
1011 var otherLength, t1;
1012 H.checkString(other);
1013 otherLength = other.length;
1014 t1 = receiver.length;
1015 if (otherLength > t1)
1016 return false;
1017 return other === this.substring$1(receiver, t1 - otherLength);
1018 },
1019 replaceAll$2: function(receiver, from, to) {
1020 H.checkString(to);
1021 return H.stringReplaceAllUnchecked(receiver, from, to);
1022 },
1023 replaceAllMapped$2: function(receiver, from, convert) {
1024 return H.stringReplaceAllFuncUnchecked(receiver, from, convert, null);
1025 },
1026 split$1: function(receiver, pattern) {
1027 return receiver.split(pattern);
1028 },
1029 replaceRange$3: function(receiver, start, end, replacement) {
1030 H.checkString(replacement);
1031 H.checkInt(start);
1032 end = P.RangeError_checkValidRange(start, end, receiver.length, null, nu ll, null);
1033 H.checkInt(end);
1034 return H.stringReplaceRangeUnchecked(receiver, start, end, replacement);
1035 },
1036 startsWith$2: function(receiver, pattern, index) {
1037 var endIndex;
1038 H.checkInt(index);
1039 if (index < 0 || index > receiver.length)
1040 throw H.wrapException(P.RangeError$range(index, 0, receiver.length, nu ll, null));
1041 endIndex = index + pattern.length;
1042 if (endIndex > receiver.length)
1043 return false;
1044 return pattern === receiver.substring(index, endIndex);
1045 },
1046 startsWith$1: function($receiver, pattern) {
1047 return this.startsWith$2($receiver, pattern, 0);
1048 },
1049 substring$2: function(receiver, startIndex, endIndex) {
1050 var t1;
1051 if (typeof startIndex !== "number" || Math.floor(startIndex) !== startIn dex)
1052 H.throwExpression(H.argumentErrorValue(startIndex));
1053 if (endIndex == null)
1054 endIndex = receiver.length;
1055 if (typeof endIndex !== "number" || Math.floor(endIndex) !== endIndex)
1056 H.throwExpression(H.argumentErrorValue(endIndex));
1057 t1 = J.getInterceptor$n(startIndex);
1058 if (t1.$lt(startIndex, 0))
1059 throw H.wrapException(P.RangeError$value(startIndex, null, null));
1060 if (t1.$gt(startIndex, endIndex))
1061 throw H.wrapException(P.RangeError$value(startIndex, null, null));
1062 if (J.$gt$n(endIndex, receiver.length))
1063 throw H.wrapException(P.RangeError$value(endIndex, null, null));
1064 return receiver.substring(startIndex, endIndex);
1065 },
1066 substring$1: function($receiver, startIndex) {
1067 return this.substring$2($receiver, startIndex, null);
1068 },
1069 toLowerCase$0: function(receiver) {
1070 return receiver.toLowerCase();
1071 },
1072 trim$0: function(receiver) {
1073 var result, endIndex, startIndex, t1, endIndex0;
1074 result = receiver.trim();
1075 endIndex = result.length;
1076 if (endIndex === 0)
1077 return result;
1078 if (this.codeUnitAt$1(result, 0) === 133) {
1079 startIndex = J.JSString__skipLeadingWhitespace(result, 1);
1080 if (startIndex === endIndex)
1081 return "";
1082 } else
1083 startIndex = 0;
1084 t1 = endIndex - 1;
1085 endIndex0 = this.codeUnitAt$1(result, t1) === 133 ? J.JSString__skipTrai lingWhitespace(result, t1) : endIndex;
1086 if (startIndex === 0 && endIndex0 === endIndex)
1087 return result;
1088 return result.substring(startIndex, endIndex0);
1089 },
1090 $mul: function(receiver, times) {
1091 var s, result;
1092 if (0 >= times)
1093 return "";
1094 if (times === 1 || receiver.length === 0)
1095 return receiver;
1096 if (times !== times >>> 0)
1097 throw H.wrapException(C.C_OutOfMemoryError);
1098 for (s = receiver, result = ""; true;) {
1099 if ((times & 1) === 1)
1100 result = s + result;
1101 times = times >>> 1;
1102 if (times === 0)
1103 break;
1104 s += s;
1105 }
1106 return result;
1107 },
1108 get$codeUnits: function(receiver) {
1109 return new H.CodeUnits(receiver);
1110 },
1111 indexOf$2: function(receiver, pattern, start) {
1112 var t1, match, t2, i;
1113 if (pattern == null)
1114 H.throwExpression(H.argumentErrorValue(pattern));
1115 if (start < 0 || start > receiver.length)
1116 throw H.wrapException(P.RangeError$range(start, 0, receiver.length, nu ll, null));
1117 if (typeof pattern === "string")
1118 return receiver.indexOf(pattern, start);
1119 t1 = J.getInterceptor(pattern);
1120 if (!!t1.$isJSSyntaxRegExp) {
1121 match = pattern._execGlobal$2(receiver, start);
1122 return match == null ? -1 : match._match.index;
1123 }
1124 for (t2 = receiver.length, i = start; i <= t2; ++i)
1125 if (t1.matchAsPrefix$2(pattern, receiver, i) != null)
1126 return i;
1127 return -1;
1128 },
1129 indexOf$1: function($receiver, pattern) {
1130 return this.indexOf$2($receiver, pattern, 0);
1131 },
1132 lastIndexOf$2: function(receiver, pattern, start) {
1133 var t1, t2;
1134 if (start == null)
1135 start = receiver.length;
1136 else if (start < 0 || start > receiver.length)
1137 throw H.wrapException(P.RangeError$range(start, 0, receiver.length, nu ll, null));
1138 t1 = pattern.length;
1139 if (typeof start !== "number")
1140 return start.$add();
1141 t2 = receiver.length;
1142 if (start + t1 > t2)
1143 start = t2 - t1;
1144 return receiver.lastIndexOf(pattern, start);
1145 },
1146 lastIndexOf$1: function($receiver, pattern) {
1147 return this.lastIndexOf$2($receiver, pattern, null);
1148 },
1149 contains$2: function(receiver, other, startIndex) {
1150 if (other == null)
1151 H.throwExpression(H.argumentErrorValue(other));
1152 if (startIndex > receiver.length)
1153 throw H.wrapException(P.RangeError$range(startIndex, 0, receiver.lengt h, null, null));
1154 return H.stringContainsUnchecked(receiver, other, startIndex);
1155 },
1156 contains$1: function($receiver, other) {
1157 return this.contains$2($receiver, other, 0);
1158 },
1159 get$isEmpty: function(receiver) {
1160 return receiver.length === 0;
1161 },
1162 get$isNotEmpty: function(receiver) {
1163 return receiver.length !== 0;
1164 },
1165 toString$0: function(receiver) {
1166 return receiver;
1167 },
1168 get$hashCode: function(receiver) {
1169 var t1, hash, i;
1170 for (t1 = receiver.length, hash = 0, i = 0; i < t1; ++i) {
1171 hash = 536870911 & hash + receiver.charCodeAt(i);
1172 hash = 536870911 & hash + ((524287 & hash) << 10 >>> 0);
1173 hash ^= hash >> 6;
1174 }
1175 hash = 536870911 & hash + ((67108863 & hash) << 3 >>> 0);
1176 hash ^= hash >> 11;
1177 return 536870911 & hash + ((16383 & hash) << 15 >>> 0);
1178 },
1179 get$length: function(receiver) {
1180 return receiver.length;
1181 },
1182 $index: function(receiver, index) {
1183 if (typeof index !== "number" || Math.floor(index) !== index)
1184 throw H.wrapException(H.diagnoseIndexError(receiver, index));
1185 if (index >= receiver.length || index < 0)
1186 throw H.wrapException(H.diagnoseIndexError(receiver, index));
1187 return receiver[index];
1188 },
1189 $isJSIndexable: 1,
1190 $isString: 1,
1191 $isPattern: 1,
1192 static: {JSString__isWhitespace: function(codeUnit) {
1193 if (codeUnit < 256)
1194 switch (codeUnit) {
1195 case 9:
1196 case 10:
1197 case 11:
1198 case 12:
1199 case 13:
1200 case 32:
1201 case 133:
1202 case 160:
1203 return true;
1204 default:
1205 return false;
1206 }
1207 switch (codeUnit) {
1208 case 5760:
1209 case 6158:
1210 case 8192:
1211 case 8193:
1212 case 8194:
1213 case 8195:
1214 case 8196:
1215 case 8197:
1216 case 8198:
1217 case 8199:
1218 case 8200:
1219 case 8201:
1220 case 8202:
1221 case 8232:
1222 case 8233:
1223 case 8239:
1224 case 8287:
1225 case 12288:
1226 case 65279:
1227 return true;
1228 default:
1229 return false;
1230 }
1231 }, JSString__skipLeadingWhitespace: function(string, index) {
1232 var t1, codeUnit;
1233 for (t1 = string.length; index < t1;) {
1234 codeUnit = C.JSString_methods.codeUnitAt$1(string, index);
1235 if (codeUnit !== 32 && codeUnit !== 13 && !J.JSString__isWhitespace( codeUnit))
1236 break;
1237 ++index;
1238 }
1239 return index;
1240 }, JSString__skipTrailingWhitespace: function(string, index) {
1241 var index0, codeUnit;
1242 for (; index > 0; index = index0) {
1243 index0 = index - 1;
1244 codeUnit = C.JSString_methods.codeUnitAt$1(string, index0);
1245 if (codeUnit !== 32 && codeUnit !== 13 && !J.JSString__isWhitespace( codeUnit))
1246 break;
1247 }
1248 return index;
1249 }}
1250 }
1251 }], ["_isolate_helper", "dart:_isolate_helper",, H, {
1252 "^": "",
1253 _callInIsolate: function(isolate, $function) {
1254 var result = isolate.eval$1($function);
1255 if (!init.globalState.currentContext._isExecutingEvent)
1256 init.globalState.topEventLoop.run$0();
1257 return result;
1258 },
1259 leaveJsAsync: function() {
1260 --init.globalState.topEventLoop._activeJsAsyncCount;
1261 },
1262 startRootIsolate: function(entry, args) {
1263 var t1, t2, t3, t4, t5, rootContext;
1264 t1 = {};
1265 t1._captured_args_0 = args;
1266 if (args == null) {
1267 args = [];
1268 t1._captured_args_0 = args;
1269 t2 = args;
1270 } else
1271 t2 = args;
1272 if (!J.getInterceptor(t2).$isList)
1273 throw H.wrapException(P.ArgumentError$("Arguments to main must be a List : " + H.S(t2)));
1274 init.globalState = new H._Manager(0, 0, 1, null, null, null, null, null, n ull, null, null, null, entry);
1275 t2 = init.globalState;
1276 t3 = self.window == null;
1277 t4 = self.Worker;
1278 t5 = t3 && !!self.postMessage;
1279 t2.isWorker = t5;
1280 t5 = !t5;
1281 if (t5)
1282 t4 = t4 != null && $.$get$IsolateNatives_thisScript() != null;
1283 else
1284 t4 = true;
1285 t2.supportsWorkers = t4;
1286 t2.fromCommandLine = t3 && t5;
1287 t2.topEventLoop = new H._EventLoop(P.ListQueue$(null, H._IsolateEvent), 0) ;
1288 t2.isolates = H.setRuntimeTypeInfo(new H.JsLinkedHashMap(0, null, null, nu ll, null, null, 0), [P.$int, H._IsolateContext]);
1289 t2.managers = H.setRuntimeTypeInfo(new H.JsLinkedHashMap(0, null, null, nu ll, null, null, 0), [P.$int, null]);
1290 if (t2.isWorker === true) {
1291 t3 = new H._MainManagerStub();
1292 t2.mainManager = t3;
1293 self.onmessage = function(f, a) {
1294 return function(e) {
1295 f(a, e);
1296 };
1297 }(H.IsolateNatives__processWorkerMessage, t3);
1298 self.dartPrint = self.dartPrint || function(serialize) {
1299 return function(object) {
1300 if (self.console && self.console.log)
1301 self.console.log(object);
1302 else
1303 self.postMessage(serialize(object));
1304 };
1305 }(H._Manager__serializePrintMessage);
1306 }
1307 if (init.globalState.isWorker === true)
1308 return;
1309 t2 = init.globalState.nextIsolateId++;
1310 t3 = H.setRuntimeTypeInfo(new H.JsLinkedHashMap(0, null, null, null, null, null, 0), [P.$int, H.RawReceivePortImpl]);
1311 t4 = P.LinkedHashSet_LinkedHashSet(null, null, null, P.$int);
1312 t5 = new H.RawReceivePortImpl(0, null, false);
1313 rootContext = new H._IsolateContext(t2, t3, t4, init.createNewIsolate(), t 5, new H.CapabilityImpl(H.random64()), new H.CapabilityImpl(H.random64()), false , false, [], P.LinkedHashSet_LinkedHashSet(null, null, null, null), null, null, false, true, P.LinkedHashSet_LinkedHashSet(null, null, null, null));
1314 t4.add$1(0, 0);
1315 rootContext._addRegistration$2(0, t5);
1316 init.globalState.rootContext = rootContext;
1317 init.globalState.currentContext = rootContext;
1318 t2 = H.getDynamicRuntimeType();
1319 t3 = H.buildFunctionType(t2, [t2])._isTest$1(entry);
1320 if (t3)
1321 rootContext.eval$1(new H.startRootIsolate_closure(t1, entry));
1322 else {
1323 t2 = H.buildFunctionType(t2, [t2, t2])._isTest$1(entry);
1324 if (t2)
1325 rootContext.eval$1(new H.startRootIsolate_closure0(t1, entry));
1326 else
1327 rootContext.eval$1(entry);
1328 }
1329 init.globalState.topEventLoop.run$0();
1330 },
1331 IsolateNatives_computeThisScript: function() {
1332 var currentScript = init.currentScript;
1333 if (currentScript != null)
1334 return String(currentScript.src);
1335 if (init.globalState.isWorker === true)
1336 return H.IsolateNatives_computeThisScriptFromTrace();
1337 return;
1338 },
1339 IsolateNatives_computeThisScriptFromTrace: function() {
1340 var stack, matches;
1341 stack = new Error().stack;
1342 if (stack == null) {
1343 stack = function() {
1344 try {
1345 throw new Error();
1346 } catch (e) {
1347 return e.stack;
1348 }
1349 }();
1350 if (stack == null)
1351 throw H.wrapException(new P.UnsupportedError("No stack trace"));
1352 }
1353 matches = stack.match(new RegExp("^ *at [^(]*\\((.*):[0-9]*:[0-9]*\\)$", " m"));
1354 if (matches != null)
1355 return matches[1];
1356 matches = stack.match(new RegExp("^[^@]*@(.*):[0-9]*$", "m"));
1357 if (matches != null)
1358 return matches[1];
1359 throw H.wrapException(new P.UnsupportedError("Cannot extract URI from \"" + H.S(stack) + "\""));
1360 },
1361 IsolateNatives__processWorkerMessage: function(sender, e) {
1362 var msg, t1, functionName, entryPoint, args, message, isSpawnUri, startPau sed, replyTo, t2, t3, t4, context;
1363 msg = new H._Deserializer(true, []).deserialize$1(e.data);
1364 t1 = J.getInterceptor$asx(msg);
1365 switch (t1.$index(msg, "command")) {
1366 case "start":
1367 init.globalState.currentManagerId = t1.$index(msg, "id");
1368 functionName = t1.$index(msg, "functionName");
1369 entryPoint = functionName == null ? init.globalState.entry : init.glob alFunctions[functionName]();
1370 args = t1.$index(msg, "args");
1371 message = new H._Deserializer(true, []).deserialize$1(t1.$index(msg, " msg"));
1372 isSpawnUri = t1.$index(msg, "isSpawnUri");
1373 startPaused = t1.$index(msg, "startPaused");
1374 replyTo = new H._Deserializer(true, []).deserialize$1(t1.$index(msg, " replyTo"));
1375 t1 = init.globalState.nextIsolateId++;
1376 t2 = H.setRuntimeTypeInfo(new H.JsLinkedHashMap(0, null, null, null, n ull, null, 0), [P.$int, H.RawReceivePortImpl]);
1377 t3 = P.LinkedHashSet_LinkedHashSet(null, null, null, P.$int);
1378 t4 = new H.RawReceivePortImpl(0, null, false);
1379 context = new H._IsolateContext(t1, t2, t3, init.createNewIsolate(), t 4, new H.CapabilityImpl(H.random64()), new H.CapabilityImpl(H.random64()), false , false, [], P.LinkedHashSet_LinkedHashSet(null, null, null, null), null, null, false, true, P.LinkedHashSet_LinkedHashSet(null, null, null, null));
1380 t3.add$1(0, 0);
1381 context._addRegistration$2(0, t4);
1382 init.globalState.topEventLoop.events._add$1(new H._IsolateEvent(contex t, new H.IsolateNatives__processWorkerMessage_closure(entryPoint, args, message, isSpawnUri, startPaused, replyTo), "worker-start"));
1383 init.globalState.currentContext = context;
1384 init.globalState.topEventLoop.run$0();
1385 break;
1386 case "spawn-worker":
1387 break;
1388 case "message":
1389 if (t1.$index(msg, "port") != null)
1390 J.send$1$x(t1.$index(msg, "port"), t1.$index(msg, "msg"));
1391 init.globalState.topEventLoop.run$0();
1392 break;
1393 case "close":
1394 init.globalState.managers.remove$1(0, $.$get$IsolateNatives_workerIds( ).$index(0, sender));
1395 sender.terminate();
1396 init.globalState.topEventLoop.run$0();
1397 break;
1398 case "log":
1399 H.IsolateNatives__log(t1.$index(msg, "msg"));
1400 break;
1401 case "print":
1402 if (init.globalState.isWorker === true) {
1403 t1 = init.globalState.mainManager;
1404 t2 = P.LinkedHashMap__makeLiteral(["command", "print", "msg", msg]);
1405 t2 = new H._Serializer(true, P.LinkedHashMap_LinkedHashMap$identity( null, P.$int)).serialize$1(t2);
1406 t1.toString;
1407 self.postMessage(t2);
1408 } else
1409 P.print(t1.$index(msg, "msg"));
1410 break;
1411 case "error":
1412 throw H.wrapException(t1.$index(msg, "msg"));
1413 }
1414 },
1415 IsolateNatives__log: function(msg) {
1416 var trace, t1, t2, exception;
1417 if (init.globalState.isWorker === true) {
1418 t1 = init.globalState.mainManager;
1419 t2 = P.LinkedHashMap__makeLiteral(["command", "log", "msg", msg]);
1420 t2 = new H._Serializer(true, P.LinkedHashMap_LinkedHashMap$identity(null , P.$int)).serialize$1(t2);
1421 t1.toString;
1422 self.postMessage(t2);
1423 } else
1424 try {
1425 self.console.log(msg);
1426 } catch (exception) {
1427 H.unwrapException(exception);
1428 trace = H.getTraceFromException(exception);
1429 throw H.wrapException(P.Exception_Exception(trace));
1430 }
1431 },
1432 IsolateNatives__startIsolate: function(topLevel, args, message, isSpawnUri, startPaused, replyTo) {
1433 var context, t1, t2, t3;
1434 context = init.globalState.currentContext;
1435 t1 = context.id;
1436 $.Primitives_mirrorFunctionCacheName = $.Primitives_mirrorFunctionCacheNam e + ("_" + t1);
1437 $.Primitives_mirrorInvokeCacheName = $.Primitives_mirrorInvokeCacheName + ("_" + t1);
1438 t1 = context.controlPort;
1439 t2 = init.globalState.currentContext.id;
1440 t3 = context.pauseCapability;
1441 J.send$1$x(replyTo, ["spawned", new H._NativeJsSendPort(t1, t2), t3, conte xt.terminateCapability]);
1442 t2 = new H.IsolateNatives__startIsolate_runStartFunction(topLevel, args, m essage, isSpawnUri, context);
1443 if (startPaused === true) {
1444 context.addPause$2(t3, t3);
1445 init.globalState.topEventLoop.events._add$1(new H._IsolateEvent(context, t2, "start isolate"));
1446 } else
1447 t2.call$0();
1448 },
1449 _clone: function(message) {
1450 return new H._Deserializer(true, []).deserialize$1(new H._Serializer(false , P.LinkedHashMap_LinkedHashMap$identity(null, P.$int)).serialize$1(message));
1451 },
1452 startRootIsolate_closure: {
1453 "^": "Closure:1;__isolate_helper$_box_0,_captured_entry_1",
1454 call$0: function() {
1455 this._captured_entry_1.call$1(this.__isolate_helper$_box_0._captured_arg s_0);
1456 }
1457 },
1458 startRootIsolate_closure0: {
1459 "^": "Closure:1;__isolate_helper$_box_0,_captured_entry_2",
1460 call$0: function() {
1461 this._captured_entry_2.call$2(this.__isolate_helper$_box_0._captured_arg s_0, null);
1462 }
1463 },
1464 _Manager: {
1465 "^": "Object;nextIsolateId,currentManagerId,nextManagerId,currentContext,r ootContext,topEventLoop,fromCommandLine,isWorker,supportsWorkers,isolates,mainMa nager,managers,entry",
1466 static: {_Manager__serializePrintMessage: function(object) {
1467 var t1 = P.LinkedHashMap__makeLiteral(["command", "print", "msg", obje ct]);
1468 return new H._Serializer(true, P.LinkedHashMap_LinkedHashMap$identity( null, P.$int)).serialize$1(t1);
1469 }}
1470 },
1471 _IsolateContext: {
1472 "^": "Object;id,ports,weakPorts,isolateStatics<,controlPort<,pauseCapabili ty,terminateCapability,initialized,isPaused,delayedEvents,pauseTokens,doneHandle rs,_scheduledControlEvents,_isExecutingEvent,errorsAreFatal,errorPorts",
1473 addPause$2: function(authentification, resume) {
1474 if (!this.pauseCapability.$eq(0, authentification))
1475 return;
1476 if (this.pauseTokens.add$1(0, resume) && !this.isPaused)
1477 this.isPaused = true;
1478 this._updateGlobalState$0();
1479 },
1480 removePause$1: function(resume) {
1481 var t1, t2, $event, t3, t4, t5;
1482 if (!this.isPaused)
1483 return;
1484 t1 = this.pauseTokens;
1485 t1.remove$1(0, resume);
1486 if (t1._collection$_length === 0) {
1487 for (t1 = this.delayedEvents; t2 = t1.length, t2 !== 0;) {
1488 if (0 >= t2)
1489 return H.ioore(t1, -1);
1490 $event = t1.pop();
1491 t2 = init.globalState.topEventLoop.events;
1492 t3 = t2._head;
1493 t4 = t2._table;
1494 t5 = t4.length;
1495 t3 = (t3 - 1 & t5 - 1) >>> 0;
1496 t2._head = t3;
1497 if (t3 < 0 || t3 >= t5)
1498 return H.ioore(t4, t3);
1499 t4[t3] = $event;
1500 if (t3 === t2._tail)
1501 t2._grow$0();
1502 ++t2._modificationCount;
1503 }
1504 this.isPaused = false;
1505 }
1506 this._updateGlobalState$0();
1507 },
1508 addDoneListener$2: function(responsePort, response) {
1509 var t1, i, t2;
1510 if (this.doneHandlers == null)
1511 this.doneHandlers = [];
1512 for (t1 = J.getInterceptor(responsePort), i = 0; t2 = this.doneHandlers, i < t2.length; i += 2)
1513 if (t1.$eq(responsePort, t2[i])) {
1514 t1 = this.doneHandlers;
1515 t2 = i + 1;
1516 if (t2 >= t1.length)
1517 return H.ioore(t1, t2);
1518 t1[t2] = response;
1519 return;
1520 }
1521 t2.push(responsePort);
1522 this.doneHandlers.push(response);
1523 },
1524 removeDoneListener$1: function(responsePort) {
1525 var t1, i, t2;
1526 if (this.doneHandlers == null)
1527 return;
1528 for (t1 = J.getInterceptor(responsePort), i = 0; t2 = this.doneHandlers, i < t2.length; i += 2)
1529 if (t1.$eq(responsePort, t2[i])) {
1530 t1 = this.doneHandlers;
1531 t2 = i + 2;
1532 t1.toString;
1533 if (typeof t1 !== "object" || t1 === null || !!t1.fixed$length)
1534 H.throwExpression(new P.UnsupportedError("removeRange"));
1535 P.RangeError_checkValidRange(i, t2, t1.length, null, null, null);
1536 t1.splice(i, t2 - i);
1537 return;
1538 }
1539 },
1540 setErrorsFatal$2: function(authentification, errorsAreFatal) {
1541 if (!this.terminateCapability.$eq(0, authentification))
1542 return;
1543 this.errorsAreFatal = errorsAreFatal;
1544 },
1545 handlePing$3: function(responsePort, pingType, response) {
1546 var t1 = J.getInterceptor(pingType);
1547 if (!t1.$eq(pingType, 0))
1548 t1 = t1.$eq(pingType, 1) && !this._isExecutingEvent;
1549 else
1550 t1 = true;
1551 if (t1) {
1552 J.send$1$x(responsePort, response);
1553 return;
1554 }
1555 t1 = this._scheduledControlEvents;
1556 if (t1 == null) {
1557 t1 = P.ListQueue$(null, null);
1558 this._scheduledControlEvents = t1;
1559 }
1560 t1._add$1(new H._IsolateContext_handlePing_respond(responsePort, respons e));
1561 },
1562 handleKill$2: function(authentification, priority) {
1563 var t1;
1564 if (!this.terminateCapability.$eq(0, authentification))
1565 return;
1566 t1 = J.getInterceptor(priority);
1567 if (!t1.$eq(priority, 0))
1568 t1 = t1.$eq(priority, 1) && !this._isExecutingEvent;
1569 else
1570 t1 = true;
1571 if (t1) {
1572 this.kill$0();
1573 return;
1574 }
1575 t1 = this._scheduledControlEvents;
1576 if (t1 == null) {
1577 t1 = P.ListQueue$(null, null);
1578 this._scheduledControlEvents = t1;
1579 }
1580 t1._add$1(this.get$kill());
1581 },
1582 handleUncaughtError$2: function(error, stackTrace) {
1583 var t1, message;
1584 t1 = this.errorPorts;
1585 if (t1._collection$_length === 0) {
1586 if (this.errorsAreFatal === true && this === init.globalState.rootCont ext)
1587 return;
1588 if (self.console && self.console.error)
1589 self.console.error(error, stackTrace);
1590 else {
1591 P.print(error);
1592 if (stackTrace != null)
1593 P.print(stackTrace);
1594 }
1595 return;
1596 }
1597 message = new Array(2);
1598 message.fixed$length = Array;
1599 message[0] = J.toString$0$(error);
1600 message[1] = stackTrace == null ? null : J.toString$0$(stackTrace);
1601 for (t1 = H.setRuntimeTypeInfo(new P.LinkedHashSetIterator(t1, t1._colle ction$_modifications, null, null), [null]), t1._cell = t1._set._collection$_firs t; t1.moveNext$0();)
1602 J.send$1$x(t1._collection$_current, message);
1603 },
1604 eval$1: function(code) {
1605 var old, result, oldIsExecutingEvent, e, s, exception, t1;
1606 old = init.globalState.currentContext;
1607 init.globalState.currentContext = this;
1608 $ = this.isolateStatics;
1609 result = null;
1610 oldIsExecutingEvent = this._isExecutingEvent;
1611 this._isExecutingEvent = true;
1612 try {
1613 result = code.call$0();
1614 } catch (exception) {
1615 t1 = H.unwrapException(exception);
1616 e = t1;
1617 s = H.getTraceFromException(exception);
1618 this.handleUncaughtError$2(e, s);
1619 if (this.errorsAreFatal === true) {
1620 this.kill$0();
1621 if (this === init.globalState.rootContext)
1622 throw exception;
1623 }
1624 } finally {
1625 this._isExecutingEvent = oldIsExecutingEvent;
1626 init.globalState.currentContext = old;
1627 if (old != null)
1628 $ = old.get$isolateStatics();
1629 if (this._scheduledControlEvents != null)
1630 for (; t1 = this._scheduledControlEvents, !t1.get$isEmpty(t1);)
1631 this._scheduledControlEvents.removeFirst$0().call$0();
1632 }
1633 return result;
1634 },
1635 lookup$1: function(portId) {
1636 return this.ports.$index(0, portId);
1637 },
1638 _addRegistration$2: function(portId, port) {
1639 var t1 = this.ports;
1640 if (t1.containsKey$1(portId))
1641 throw H.wrapException(P.Exception_Exception("Registry: ports must be r egistered only once."));
1642 t1.$indexSet(0, portId, port);
1643 },
1644 _updateGlobalState$0: function() {
1645 var t1 = this.ports;
1646 if (t1.get$length(t1) - this.weakPorts._collection$_length > 0 || this.i sPaused || !this.initialized)
1647 init.globalState.isolates.$indexSet(0, this.id, this);
1648 else
1649 this.kill$0();
1650 },
1651 kill$0: [function() {
1652 var t1, t2, i, responsePort, t3;
1653 t1 = this._scheduledControlEvents;
1654 if (t1 != null)
1655 t1.clear$0(0);
1656 for (t1 = this.ports, t2 = t1.get$values(t1), t2 = t2.get$iterator(t2); t2.moveNext$0();)
1657 t2.get$current().__isolate_helper$_close$0();
1658 t1.clear$0(0);
1659 this.weakPorts.clear$0(0);
1660 init.globalState.isolates.remove$1(0, this.id);
1661 this.errorPorts.clear$0(0);
1662 if (this.doneHandlers != null) {
1663 for (i = 0; t1 = this.doneHandlers, t2 = t1.length, i < t2; i += 2) {
1664 responsePort = t1[i];
1665 t3 = i + 1;
1666 if (t3 >= t2)
1667 return H.ioore(t1, t3);
1668 J.send$1$x(responsePort, t1[t3]);
1669 }
1670 this.doneHandlers = null;
1671 }
1672 }, "call$0", "get$kill", 0, 0, 2]
1673 },
1674 _IsolateContext_handlePing_respond: {
1675 "^": "Closure:2;_captured_responsePort_0,_captured_response_1",
1676 call$0: function() {
1677 J.send$1$x(this._captured_responsePort_0, this._captured_response_1);
1678 }
1679 },
1680 _EventLoop: {
1681 "^": "Object;events,_activeJsAsyncCount",
1682 dequeue$0: function() {
1683 var t1 = this.events;
1684 if (t1._head === t1._tail)
1685 return;
1686 return t1.removeFirst$0();
1687 },
1688 runIteration$0: function() {
1689 var $event, t1, t2;
1690 $event = this.dequeue$0();
1691 if ($event == null) {
1692 if (init.globalState.rootContext != null)
1693 if (init.globalState.isolates.containsKey$1(init.globalState.rootCon text.id))
1694 if (init.globalState.fromCommandLine === true) {
1695 t1 = init.globalState.rootContext.ports;
1696 t1 = t1.get$isEmpty(t1);
1697 } else
1698 t1 = false;
1699 else
1700 t1 = false;
1701 else
1702 t1 = false;
1703 if (t1)
1704 H.throwExpression(P.Exception_Exception("Program exited with open Re ceivePorts."));
1705 t1 = init.globalState;
1706 if (t1.isWorker === true) {
1707 t2 = t1.isolates;
1708 t2 = t2.get$isEmpty(t2) && t1.topEventLoop._activeJsAsyncCount === 0 ;
1709 } else
1710 t2 = false;
1711 if (t2) {
1712 t1 = t1.mainManager;
1713 t2 = P.LinkedHashMap__makeLiteral(["command", "close"]);
1714 t2 = new H._Serializer(true, P.LinkedHashMap_LinkedHashMap$identity( null, P.$int)).serialize$1(t2);
1715 t1.toString;
1716 self.postMessage(t2);
1717 }
1718 return false;
1719 }
1720 $event.process$0();
1721 return true;
1722 },
1723 _runHelper$0: function() {
1724 if (self.window != null)
1725 new H._EventLoop__runHelper_next(this).call$0();
1726 else
1727 for (; this.runIteration$0();)
1728 ;
1729 },
1730 run$0: function() {
1731 var e, trace, exception, t1, t2;
1732 if (init.globalState.isWorker !== true)
1733 this._runHelper$0();
1734 else
1735 try {
1736 this._runHelper$0();
1737 } catch (exception) {
1738 t1 = H.unwrapException(exception);
1739 e = t1;
1740 trace = H.getTraceFromException(exception);
1741 t1 = init.globalState.mainManager;
1742 t2 = P.LinkedHashMap__makeLiteral(["command", "error", "msg", H.S(e) + "\n" + H.S(trace)]);
1743 t2 = new H._Serializer(true, P.LinkedHashMap_LinkedHashMap$identity( null, P.$int)).serialize$1(t2);
1744 t1.toString;
1745 self.postMessage(t2);
1746 }
1747 }
1748 },
1749 _EventLoop__runHelper_next: {
1750 "^": "Closure:2;__isolate_helper$_captured_this_0",
1751 call$0: function() {
1752 if (!this.__isolate_helper$_captured_this_0.runIteration$0())
1753 return;
1754 P.Timer_Timer(C.Duration_0, this);
1755 }
1756 },
1757 _IsolateEvent: {
1758 "^": "Object;isolate,fn,message>",
1759 process$0: function() {
1760 var t1 = this.isolate;
1761 if (t1.isPaused) {
1762 t1.delayedEvents.push(this);
1763 return;
1764 }
1765 t1.eval$1(this.fn);
1766 }
1767 },
1768 _MainManagerStub: {
1769 "^": "Object;"
1770 },
1771 IsolateNatives__processWorkerMessage_closure: {
1772 "^": "Closure:1;_captured_entryPoint_0,_captured_args_1,_captured_message_ 2,_captured_isSpawnUri_3,_captured_startPaused_4,_captured_replyTo_5",
1773 call$0: function() {
1774 H.IsolateNatives__startIsolate(this._captured_entryPoint_0, this._captur ed_args_1, this._captured_message_2, this._captured_isSpawnUri_3, this._captured _startPaused_4, this._captured_replyTo_5);
1775 }
1776 },
1777 IsolateNatives__startIsolate_runStartFunction: {
1778 "^": "Closure:2;_captured_topLevel_0,_captured_args_1,_captured_message_2, _captured_isSpawnUri_3,_captured_context_4",
1779 call$0: function() {
1780 var t1, t2, t3, t4;
1781 t1 = this._captured_context_4;
1782 t1.initialized = true;
1783 if (this._captured_isSpawnUri_3 !== true)
1784 this._captured_topLevel_0.call$1(this._captured_message_2);
1785 else {
1786 t2 = this._captured_topLevel_0;
1787 t3 = H.getDynamicRuntimeType();
1788 t4 = H.buildFunctionType(t3, [t3, t3])._isTest$1(t2);
1789 if (t4)
1790 t2.call$2(this._captured_args_1, this._captured_message_2);
1791 else {
1792 t3 = H.buildFunctionType(t3, [t3])._isTest$1(t2);
1793 if (t3)
1794 t2.call$1(this._captured_args_1);
1795 else
1796 t2.call$0();
1797 }
1798 }
1799 t1._updateGlobalState$0();
1800 }
1801 },
1802 _BaseSendPort: {
1803 "^": "Object;"
1804 },
1805 _NativeJsSendPort: {
1806 "^": "_BaseSendPort;_receivePort,_isolateId",
1807 send$1: function(_, message) {
1808 var isolate, t1, msg, t2;
1809 isolate = init.globalState.isolates.$index(0, this._isolateId);
1810 if (isolate == null)
1811 return;
1812 t1 = this._receivePort;
1813 if (t1.get$_isClosed())
1814 return;
1815 msg = H._clone(message);
1816 if (isolate.get$controlPort() === t1) {
1817 t1 = J.getInterceptor$asx(msg);
1818 switch (t1.$index(msg, 0)) {
1819 case "pause":
1820 isolate.addPause$2(t1.$index(msg, 1), t1.$index(msg, 2));
1821 break;
1822 case "resume":
1823 isolate.removePause$1(t1.$index(msg, 1));
1824 break;
1825 case "add-ondone":
1826 isolate.addDoneListener$2(t1.$index(msg, 1), t1.$index(msg, 2));
1827 break;
1828 case "remove-ondone":
1829 isolate.removeDoneListener$1(t1.$index(msg, 1));
1830 break;
1831 case "set-errors-fatal":
1832 isolate.setErrorsFatal$2(t1.$index(msg, 1), t1.$index(msg, 2));
1833 break;
1834 case "ping":
1835 isolate.handlePing$3(t1.$index(msg, 1), t1.$index(msg, 2), t1.$ind ex(msg, 3));
1836 break;
1837 case "kill":
1838 isolate.handleKill$2(t1.$index(msg, 1), t1.$index(msg, 2));
1839 break;
1840 case "getErrors":
1841 t1 = t1.$index(msg, 1);
1842 isolate.errorPorts.add$1(0, t1);
1843 break;
1844 case "stopErrors":
1845 t1 = t1.$index(msg, 1);
1846 isolate.errorPorts.remove$1(0, t1);
1847 break;
1848 }
1849 return;
1850 }
1851 t1 = init.globalState.topEventLoop;
1852 t2 = "receive " + H.S(message);
1853 t1.events._add$1(new H._IsolateEvent(isolate, new H._NativeJsSendPort_se nd_closure(this, msg), t2));
1854 },
1855 $eq: function(_, other) {
1856 if (other == null)
1857 return false;
1858 return other instanceof H._NativeJsSendPort && J.$eq$(this._receivePort, other._receivePort);
1859 },
1860 get$hashCode: function(_) {
1861 return this._receivePort.get$_id();
1862 }
1863 },
1864 _NativeJsSendPort_send_closure: {
1865 "^": "Closure:1;__isolate_helper$_captured_this_0,_captured_msg_1",
1866 call$0: function() {
1867 var t1 = this.__isolate_helper$_captured_this_0._receivePort;
1868 if (!t1.get$_isClosed())
1869 t1.__isolate_helper$_add$1(this._captured_msg_1);
1870 }
1871 },
1872 _WorkerSendPort: {
1873 "^": "_BaseSendPort;_workerId,_receivePortId,_isolateId",
1874 send$1: function(_, message) {
1875 var t1, workerMessage, manager;
1876 t1 = P.LinkedHashMap__makeLiteral(["command", "message", "port", this, " msg", message]);
1877 workerMessage = new H._Serializer(true, P.LinkedHashMap_LinkedHashMap$id entity(null, P.$int)).serialize$1(t1);
1878 if (init.globalState.isWorker === true) {
1879 init.globalState.mainManager.toString;
1880 self.postMessage(workerMessage);
1881 } else {
1882 manager = init.globalState.managers.$index(0, this._workerId);
1883 if (manager != null)
1884 manager.postMessage(workerMessage);
1885 }
1886 },
1887 $eq: function(_, other) {
1888 if (other == null)
1889 return false;
1890 return other instanceof H._WorkerSendPort && J.$eq$(this._workerId, othe r._workerId) && J.$eq$(this._isolateId, other._isolateId) && J.$eq$(this._receiv ePortId, other._receivePortId);
1891 },
1892 get$hashCode: function(_) {
1893 var t1, t2, t3;
1894 t1 = this._workerId;
1895 if (typeof t1 !== "number")
1896 return t1.$shl();
1897 t2 = this._isolateId;
1898 if (typeof t2 !== "number")
1899 return t2.$shl();
1900 t3 = this._receivePortId;
1901 if (typeof t3 !== "number")
1902 return H.iae(t3);
1903 return (t1 << 16 ^ t2 << 8 ^ t3) >>> 0;
1904 }
1905 },
1906 RawReceivePortImpl: {
1907 "^": "Object;_id<,_handler,_isClosed<",
1908 __isolate_helper$_close$0: function() {
1909 this._isClosed = true;
1910 this._handler = null;
1911 },
1912 __isolate_helper$_add$1: function(dataEvent) {
1913 if (this._isClosed)
1914 return;
1915 this._handler$1(dataEvent);
1916 },
1917 _handler$1: function(arg0) {
1918 return this._handler.call$1(arg0);
1919 },
1920 $isRawReceivePort: 1
1921 },
1922 TimerImpl: {
1923 "^": "Object;_once,_inEventLoop,_handle",
1924 TimerImpl$2: function(milliseconds, callback) {
1925 var t1, t2;
1926 if (milliseconds === 0)
1927 t1 = self.setTimeout == null || init.globalState.isWorker === true;
1928 else
1929 t1 = false;
1930 if (t1) {
1931 this._handle = 1;
1932 t1 = init.globalState.topEventLoop;
1933 t2 = init.globalState.currentContext;
1934 t1.events._add$1(new H._IsolateEvent(t2, new H.TimerImpl_internalCallb ack(this, callback), "timer"));
1935 this._inEventLoop = true;
1936 } else if (self.setTimeout != null) {
1937 ++init.globalState.topEventLoop._activeJsAsyncCount;
1938 this._handle = self.setTimeout(H.convertDartClosureToJS(new H.TimerImp l_internalCallback0(this, callback), 0), milliseconds);
1939 } else
1940 throw H.wrapException(new P.UnsupportedError("Timer greater than 0.")) ;
1941 },
1942 static: {TimerImpl$: function(milliseconds, callback) {
1943 var t1 = new H.TimerImpl(true, false, null);
1944 t1.TimerImpl$2(milliseconds, callback);
1945 return t1;
1946 }}
1947 },
1948 TimerImpl_internalCallback: {
1949 "^": "Closure:2;__isolate_helper$_captured_this_0,_captured_callback_1",
1950 call$0: function() {
1951 this.__isolate_helper$_captured_this_0._handle = null;
1952 this._captured_callback_1.call$0();
1953 }
1954 },
1955 TimerImpl_internalCallback0: {
1956 "^": "Closure:2;__isolate_helper$_captured_this_2,_captured_callback_3",
1957 call$0: function() {
1958 this.__isolate_helper$_captured_this_2._handle = null;
1959 H.leaveJsAsync();
1960 this._captured_callback_3.call$0();
1961 }
1962 },
1963 CapabilityImpl: {
1964 "^": "Object;_id<",
1965 get$hashCode: function(_) {
1966 var hash = this._id;
1967 if (typeof hash !== "number")
1968 return hash.$shr();
1969 hash = C.JSNumber_methods._shrOtherPositive$1(hash, 0) ^ C.JSNumber_meth ods._tdivFast$1(hash, 4294967296);
1970 hash = (~hash >>> 0) + (hash << 15 >>> 0) & 4294967295;
1971 hash = ((hash ^ hash >>> 12) >>> 0) * 5 & 4294967295;
1972 hash = ((hash ^ hash >>> 4) >>> 0) * 2057 & 4294967295;
1973 return (hash ^ hash >>> 16) >>> 0;
1974 },
1975 $eq: function(_, other) {
1976 var t1, t2;
1977 if (other == null)
1978 return false;
1979 if (other === this)
1980 return true;
1981 if (other instanceof H.CapabilityImpl) {
1982 t1 = this._id;
1983 t2 = other._id;
1984 return t1 == null ? t2 == null : t1 === t2;
1985 }
1986 return false;
1987 }
1988 },
1989 _Serializer: {
1990 "^": "Object;_serializeSendPorts,serializedObjectIds",
1991 serialize$1: [function(x) {
1992 var t1, serializationId, serializeTearOff, t2, $name;
1993 if (x == null || typeof x === "string" || typeof x === "number" || typeo f x === "boolean")
1994 return x;
1995 t1 = this.serializedObjectIds;
1996 serializationId = t1.$index(0, x);
1997 if (serializationId != null)
1998 return ["ref", serializationId];
1999 t1.$indexSet(0, x, t1.get$length(t1));
2000 t1 = J.getInterceptor(x);
2001 if (!!t1.$isNativeByteBuffer)
2002 return ["buffer", x];
2003 if (!!t1.$isNativeTypedData)
2004 return ["typed", x];
2005 if (!!t1.$isJSIndexable)
2006 return this.serializeJSIndexable$1(x);
2007 if (!!t1.$isInternalMap) {
2008 serializeTearOff = this.get$serialize();
2009 t2 = x.get$keys();
2010 t2 = H.MappedIterable_MappedIterable(t2, serializeTearOff, H.getRuntim eTypeArgument(t2, "Iterable", 0), null);
2011 t2 = P.List_List$from(t2, true, H.getRuntimeTypeArgument(t2, "Iterable ", 0));
2012 t1 = t1.get$values(x);
2013 t1 = H.MappedIterable_MappedIterable(t1, serializeTearOff, H.getRuntim eTypeArgument(t1, "Iterable", 0), null);
2014 return ["map", t2, P.List_List$from(t1, true, H.getRuntimeTypeArgument (t1, "Iterable", 0))];
2015 }
2016 if (!!t1.$isJSObject)
2017 return this.serializeJSObject$1(x);
2018 if (!!t1.$isInterceptor)
2019 this.unsupported$1(x);
2020 if (!!t1.$isRawReceivePort)
2021 this.unsupported$2(x, "RawReceivePorts can't be transmitted:");
2022 if (!!t1.$is_NativeJsSendPort)
2023 return this.serializeJsSendPort$1(x);
2024 if (!!t1.$is_WorkerSendPort)
2025 return this.serializeWorkerSendPort$1(x);
2026 if (!!t1.$isClosure) {
2027 $name = x.$static_name;
2028 if ($name == null)
2029 this.unsupported$2(x, "Closures can't be transmitted:");
2030 return ["function", $name];
2031 }
2032 if (!!t1.$isCapabilityImpl)
2033 return ["capability", x._id];
2034 if (!(x instanceof P.Object))
2035 this.unsupported$1(x);
2036 return ["dart", init.classIdExtractor(x), this.serializeArrayInPlace$1(i nit.classFieldsExtractor(x))];
2037 }, "call$1", "get$serialize", 2, 0, 0],
2038 unsupported$2: function(x, message) {
2039 throw H.wrapException(new P.UnsupportedError(H.S(message == null ? "Can' t transmit:" : message) + " " + H.S(x)));
2040 },
2041 unsupported$1: function(x) {
2042 return this.unsupported$2(x, null);
2043 },
2044 serializeJSIndexable$1: function(indexable) {
2045 var serialized = this.serializeArray$1(indexable);
2046 if (!!indexable.fixed$length)
2047 return ["fixed", serialized];
2048 if (!indexable.fixed$length)
2049 return ["extendable", serialized];
2050 if (!indexable.immutable$list)
2051 return ["mutable", serialized];
2052 if (indexable.constructor === Array)
2053 return ["const", serialized];
2054 this.unsupported$2(indexable, "Can't serialize indexable: ");
2055 },
2056 serializeArray$1: function(x) {
2057 var serialized, i, t1;
2058 serialized = [];
2059 C.JSArray_methods.set$length(serialized, x.length);
2060 for (i = 0; i < x.length; ++i) {
2061 t1 = this.serialize$1(x[i]);
2062 if (i >= serialized.length)
2063 return H.ioore(serialized, i);
2064 serialized[i] = t1;
2065 }
2066 return serialized;
2067 },
2068 serializeArrayInPlace$1: function(x) {
2069 var i;
2070 for (i = 0; i < x.length; ++i)
2071 C.JSArray_methods.$indexSet(x, i, this.serialize$1(x[i]));
2072 return x;
2073 },
2074 serializeJSObject$1: function(x) {
2075 var keys, values, i, t1;
2076 if (!!x.constructor && x.constructor !== Object)
2077 this.unsupported$2(x, "Only plain JS Objects are supported:");
2078 keys = Object.keys(x);
2079 values = [];
2080 C.JSArray_methods.set$length(values, keys.length);
2081 for (i = 0; i < keys.length; ++i) {
2082 t1 = this.serialize$1(x[keys[i]]);
2083 if (i >= values.length)
2084 return H.ioore(values, i);
2085 values[i] = t1;
2086 }
2087 return ["js-object", keys, values];
2088 },
2089 serializeWorkerSendPort$1: function(x) {
2090 if (this._serializeSendPorts)
2091 return ["sendport", x._workerId, x._isolateId, x._receivePortId];
2092 return ["raw sendport", x];
2093 },
2094 serializeJsSendPort$1: function(x) {
2095 if (this._serializeSendPorts)
2096 return ["sendport", init.globalState.currentManagerId, x._isolateId, x ._receivePort.get$_id()];
2097 return ["raw sendport", x];
2098 }
2099 },
2100 _Deserializer: {
2101 "^": "Object;_adjustSendPorts,deserializedObjects",
2102 deserialize$1: [function(x) {
2103 var serializationId, t1, result, classId, fields, emptyInstance;
2104 if (x == null || typeof x === "string" || typeof x === "number" || typeo f x === "boolean")
2105 return x;
2106 if (typeof x !== "object" || x === null || x.constructor !== Array)
2107 throw H.wrapException(P.ArgumentError$("Bad serialized message: " + H. S(x)));
2108 switch (C.JSArray_methods.get$first(x)) {
2109 case "ref":
2110 if (1 >= x.length)
2111 return H.ioore(x, 1);
2112 serializationId = x[1];
2113 t1 = this.deserializedObjects;
2114 if (serializationId >>> 0 !== serializationId || serializationId >= t1.length)
2115 return H.ioore(t1, serializationId);
2116 return t1[serializationId];
2117 case "buffer":
2118 if (1 >= x.length)
2119 return H.ioore(x, 1);
2120 result = x[1];
2121 this.deserializedObjects.push(result);
2122 return result;
2123 case "typed":
2124 if (1 >= x.length)
2125 return H.ioore(x, 1);
2126 result = x[1];
2127 this.deserializedObjects.push(result);
2128 return result;
2129 case "fixed":
2130 if (1 >= x.length)
2131 return H.ioore(x, 1);
2132 result = x[1];
2133 this.deserializedObjects.push(result);
2134 t1 = this.deserializeArrayInPlace$1(result);
2135 t1.$builtinTypeInfo = [null];
2136 t1.fixed$length = Array;
2137 return t1;
2138 case "extendable":
2139 if (1 >= x.length)
2140 return H.ioore(x, 1);
2141 result = x[1];
2142 this.deserializedObjects.push(result);
2143 t1 = this.deserializeArrayInPlace$1(result);
2144 t1.$builtinTypeInfo = [null];
2145 return t1;
2146 case "mutable":
2147 if (1 >= x.length)
2148 return H.ioore(x, 1);
2149 result = x[1];
2150 this.deserializedObjects.push(result);
2151 return this.deserializeArrayInPlace$1(result);
2152 case "const":
2153 if (1 >= x.length)
2154 return H.ioore(x, 1);
2155 result = x[1];
2156 this.deserializedObjects.push(result);
2157 t1 = this.deserializeArrayInPlace$1(result);
2158 t1.$builtinTypeInfo = [null];
2159 t1.fixed$length = Array;
2160 return t1;
2161 case "map":
2162 return this.deserializeMap$1(x);
2163 case "sendport":
2164 return this.deserializeSendPort$1(x);
2165 case "raw sendport":
2166 if (1 >= x.length)
2167 return H.ioore(x, 1);
2168 result = x[1];
2169 this.deserializedObjects.push(result);
2170 return result;
2171 case "js-object":
2172 return this.deserializeJSObject$1(x);
2173 case "function":
2174 if (1 >= x.length)
2175 return H.ioore(x, 1);
2176 result = init.globalFunctions[x[1]]();
2177 this.deserializedObjects.push(result);
2178 return result;
2179 case "capability":
2180 if (1 >= x.length)
2181 return H.ioore(x, 1);
2182 return new H.CapabilityImpl(x[1]);
2183 case "dart":
2184 t1 = x.length;
2185 if (1 >= t1)
2186 return H.ioore(x, 1);
2187 classId = x[1];
2188 if (2 >= t1)
2189 return H.ioore(x, 2);
2190 fields = x[2];
2191 emptyInstance = init.instanceFromClassId(classId);
2192 this.deserializedObjects.push(emptyInstance);
2193 this.deserializeArrayInPlace$1(fields);
2194 return init.initializeEmptyInstance(classId, emptyInstance, fields);
2195 default:
2196 throw H.wrapException("couldn't deserialize: " + H.S(x));
2197 }
2198 }, "call$1", "get$deserialize", 2, 0, 0],
2199 deserializeArrayInPlace$1: function(x) {
2200 var t1, i, t2;
2201 t1 = J.getInterceptor$asx(x);
2202 i = 0;
2203 while (true) {
2204 t2 = t1.get$length(x);
2205 if (typeof t2 !== "number")
2206 return H.iae(t2);
2207 if (!(i < t2))
2208 break;
2209 t1.$indexSet(x, i, this.deserialize$1(t1.$index(x, i)));
2210 ++i;
2211 }
2212 return x;
2213 },
2214 deserializeMap$1: function(x) {
2215 var t1, keys, values, result, t2, i;
2216 t1 = x.length;
2217 if (1 >= t1)
2218 return H.ioore(x, 1);
2219 keys = x[1];
2220 if (2 >= t1)
2221 return H.ioore(x, 2);
2222 values = x[2];
2223 result = P.LinkedHashMap__makeEmpty();
2224 this.deserializedObjects.push(result);
2225 keys = J.map$1$ax(keys, this.get$deserialize()).toList$0(0);
2226 for (t1 = J.getInterceptor$asx(keys), t2 = J.getInterceptor$asx(values), i = 0; i < t1.get$length(keys); ++i) {
2227 if (i >= keys.length)
2228 return H.ioore(keys, i);
2229 result.$indexSet(0, keys[i], this.deserialize$1(t2.$index(values, i))) ;
2230 }
2231 return result;
2232 },
2233 deserializeSendPort$1: function(x) {
2234 var t1, managerId, isolateId, receivePortId, isolate, receivePort, resul t;
2235 t1 = x.length;
2236 if (1 >= t1)
2237 return H.ioore(x, 1);
2238 managerId = x[1];
2239 if (2 >= t1)
2240 return H.ioore(x, 2);
2241 isolateId = x[2];
2242 if (3 >= t1)
2243 return H.ioore(x, 3);
2244 receivePortId = x[3];
2245 if (J.$eq$(managerId, init.globalState.currentManagerId)) {
2246 isolate = init.globalState.isolates.$index(0, isolateId);
2247 if (isolate == null)
2248 return;
2249 receivePort = isolate.lookup$1(receivePortId);
2250 if (receivePort == null)
2251 return;
2252 result = new H._NativeJsSendPort(receivePort, isolateId);
2253 } else
2254 result = new H._WorkerSendPort(managerId, receivePortId, isolateId);
2255 this.deserializedObjects.push(result);
2256 return result;
2257 },
2258 deserializeJSObject$1: function(x) {
2259 var t1, keys, values, o, t2, i, t3;
2260 t1 = x.length;
2261 if (1 >= t1)
2262 return H.ioore(x, 1);
2263 keys = x[1];
2264 if (2 >= t1)
2265 return H.ioore(x, 2);
2266 values = x[2];
2267 o = {};
2268 this.deserializedObjects.push(o);
2269 t1 = J.getInterceptor$asx(keys);
2270 t2 = J.getInterceptor$asx(values);
2271 i = 0;
2272 while (true) {
2273 t3 = t1.get$length(keys);
2274 if (typeof t3 !== "number")
2275 return H.iae(t3);
2276 if (!(i < t3))
2277 break;
2278 o[t1.$index(keys, i)] = this.deserialize$1(t2.$index(values, i));
2279 ++i;
2280 }
2281 return o;
2282 }
2283 }
2284 }], ["_js_helper", "dart:_js_helper",, H, {
2285 "^": "",
2286 getType: function(index) {
2287 return init.types[index];
2288 },
2289 isJsIndexable: function(object, record) {
2290 var result;
2291 if (record != null) {
2292 result = record.x;
2293 if (result != null)
2294 return result;
2295 }
2296 return !!J.getInterceptor(object).$isJavaScriptIndexingBehavior;
2297 },
2298 S: function(value) {
2299 var res;
2300 if (typeof value === "string")
2301 return value;
2302 if (typeof value === "number") {
2303 if (value !== 0)
2304 return "" + value;
2305 } else if (true === value)
2306 return "true";
2307 else if (false === value)
2308 return "false";
2309 else if (value == null)
2310 return "null";
2311 res = J.toString$0$(value);
2312 if (typeof res !== "string")
2313 throw H.wrapException(H.argumentErrorValue(value));
2314 return res;
2315 },
2316 Primitives_objectHashCode: function(object) {
2317 var hash = object.$identityHash;
2318 if (hash == null) {
2319 hash = Math.random() * 0x3fffffff | 0;
2320 object.$identityHash = hash;
2321 }
2322 return hash;
2323 },
2324 Primitives__parseIntError: function(source, handleError) {
2325 throw H.wrapException(new P.FormatException(source, null, null));
2326 },
2327 Primitives_parseInt: function(source, radix, handleError) {
2328 var match, decimalMatch, maxCharCode, digitsPart, t1, i;
2329 H.checkString(source);
2330 match = /^\s*[+-]?((0x[a-f0-9]+)|(\d+)|([a-z0-9]+))\s*$/i.exec(source);
2331 if (match == null)
2332 return H.Primitives__parseIntError(source, handleError);
2333 if (3 >= match.length)
2334 return H.ioore(match, 3);
2335 decimalMatch = match[3];
2336 if (radix == null) {
2337 if (decimalMatch != null)
2338 return parseInt(source, 10);
2339 if (match[2] != null)
2340 return parseInt(source, 16);
2341 return H.Primitives__parseIntError(source, handleError);
2342 }
2343 if (radix < 2 || radix > 36)
2344 throw H.wrapException(P.RangeError$range(radix, 2, 36, "radix", null));
2345 if (radix === 10 && decimalMatch != null)
2346 return parseInt(source, 10);
2347 if (radix < 10 || decimalMatch == null) {
2348 maxCharCode = radix <= 10 ? 47 + radix : 86 + radix;
2349 digitsPart = match[1];
2350 for (t1 = digitsPart.length, i = 0; i < t1; ++i)
2351 if ((C.JSString_methods.codeUnitAt$1(digitsPart, i) | 32) > maxCharCod e)
2352 return H.Primitives__parseIntError(source, handleError);
2353 }
2354 return parseInt(source, radix);
2355 },
2356 Primitives_objectTypeName: function(object) {
2357 var $name, decompiled;
2358 $name = C.JS_CONST_8ZY(J.getInterceptor(object));
2359 if ($name === "Object") {
2360 decompiled = String(object.constructor).match(/^\s*function\s*([\w$]*)\s *\(/)[1];
2361 if (typeof decompiled === "string")
2362 $name = /^\w+$/.test(decompiled) ? decompiled : $name;
2363 }
2364 if ($name.length > 1 && C.JSString_methods.codeUnitAt$1($name, 0) === 36)
2365 $name = C.JSString_methods.substring$1($name, 1);
2366 return ($name + H.joinArguments(H.getRuntimeTypeInfo(object), 0, null)).re place(/[^<,> ]+/g, function(m) {
2367 return init.mangledGlobalNames[m] || m;
2368 });
2369 },
2370 Primitives_objectToHumanReadableString: function(object) {
2371 return "Instance of '" + H.Primitives_objectTypeName(object) + "'";
2372 },
2373 Primitives_currentUri: function() {
2374 if (!!self.location)
2375 return self.location.href;
2376 return;
2377 },
2378 Primitives__fromCharCodeApply: function(array) {
2379 var end, result, i, i0, chunkEnd;
2380 end = array.length;
2381 if (end <= 500)
2382 return String.fromCharCode.apply(null, array);
2383 for (result = "", i = 0; i < end; i = i0) {
2384 i0 = i + 500;
2385 chunkEnd = i0 < end ? i0 : end;
2386 result += String.fromCharCode.apply(null, array.slice(i, chunkEnd));
2387 }
2388 return result;
2389 },
2390 Primitives_stringFromCodePoints: function(codePoints) {
2391 var a, t1, _i, i;
2392 a = [];
2393 a.$builtinTypeInfo = [P.$int];
2394 for (t1 = codePoints.length, _i = 0; _i < codePoints.length; codePoints.le ngth === t1 || (0, H.throwConcurrentModificationError)(codePoints), ++_i) {
2395 i = codePoints[_i];
2396 if (typeof i !== "number" || Math.floor(i) !== i)
2397 throw H.wrapException(H.argumentErrorValue(i));
2398 if (i <= 65535)
2399 a.push(i);
2400 else if (i <= 1114111) {
2401 a.push(55296 + (C.JSInt_methods._shrOtherPositive$1(i - 65536, 10) & 1 023));
2402 a.push(56320 + (i & 1023));
2403 } else
2404 throw H.wrapException(H.argumentErrorValue(i));
2405 }
2406 return H.Primitives__fromCharCodeApply(a);
2407 },
2408 Primitives_stringFromCharCodes: function(charCodes) {
2409 var t1, _i, t2, i;
2410 for (t1 = charCodes.length, _i = 0; t2 = charCodes.length, _i < t2; t2 === t1 || (0, H.throwConcurrentModificationError)(charCodes), ++_i) {
2411 i = charCodes[_i];
2412 if (typeof i !== "number" || Math.floor(i) !== i)
2413 throw H.wrapException(H.argumentErrorValue(i));
2414 if (i < 0)
2415 throw H.wrapException(H.argumentErrorValue(i));
2416 if (i > 65535)
2417 return H.Primitives_stringFromCodePoints(charCodes);
2418 }
2419 return H.Primitives__fromCharCodeApply(charCodes);
2420 },
2421 Primitives_stringFromCharCode: function(charCode) {
2422 var bits;
2423 if (0 <= charCode) {
2424 if (charCode <= 65535)
2425 return String.fromCharCode(charCode);
2426 if (charCode <= 1114111) {
2427 bits = charCode - 65536;
2428 return String.fromCharCode((55296 | C.JSInt_methods._shrOtherPositive$ 1(bits, 10)) >>> 0, 56320 | bits & 1023);
2429 }
2430 }
2431 throw H.wrapException(P.RangeError$range(charCode, 0, 1114111, null, null) );
2432 },
2433 Primitives_getProperty: function(object, key) {
2434 if (object == null || typeof object === "boolean" || typeof object === "nu mber" || typeof object === "string")
2435 throw H.wrapException(H.argumentErrorValue(object));
2436 return object[key];
2437 },
2438 Primitives_setProperty: function(object, key, value) {
2439 if (object == null || typeof object === "boolean" || typeof object === "nu mber" || typeof object === "string")
2440 throw H.wrapException(H.argumentErrorValue(object));
2441 object[key] = value;
2442 },
2443 iae: function(argument) {
2444 throw H.wrapException(H.argumentErrorValue(argument));
2445 },
2446 ioore: function(receiver, index) {
2447 if (receiver == null)
2448 J.get$length$asx(receiver);
2449 throw H.wrapException(H.diagnoseIndexError(receiver, index));
2450 },
2451 diagnoseIndexError: function(indexable, index) {
2452 var $length, t1;
2453 if (typeof index !== "number" || Math.floor(index) !== index)
2454 return new P.ArgumentError(true, index, "index", null);
2455 $length = J.get$length$asx(indexable);
2456 if (!(index < 0)) {
2457 if (typeof $length !== "number")
2458 return H.iae($length);
2459 t1 = index >= $length;
2460 } else
2461 t1 = true;
2462 if (t1)
2463 return P.IndexError$(index, indexable, "index", null, $length);
2464 return P.RangeError$value(index, "index", null);
2465 },
2466 diagnoseRangeError: function(start, end, $length) {
2467 if (start > $length)
2468 return new P.RangeError(0, $length, true, start, "start", "Invalid value ");
2469 if (end != null)
2470 if (end < start || end > $length)
2471 return new P.RangeError(start, $length, true, end, "end", "Invalid val ue");
2472 return new P.ArgumentError(true, end, "end", null);
2473 },
2474 argumentErrorValue: function(object) {
2475 return new P.ArgumentError(true, object, null, null);
2476 },
2477 checkInt: function(value) {
2478 if (typeof value !== "number" || Math.floor(value) !== value)
2479 throw H.wrapException(H.argumentErrorValue(value));
2480 return value;
2481 },
2482 checkString: function(value) {
2483 if (typeof value !== "string")
2484 throw H.wrapException(H.argumentErrorValue(value));
2485 return value;
2486 },
2487 wrapException: function(ex) {
2488 var wrapper;
2489 if (ex == null)
2490 ex = new P.NullThrownError();
2491 wrapper = new Error();
2492 wrapper.dartException = ex;
2493 if ("defineProperty" in Object) {
2494 Object.defineProperty(wrapper, "message", {get: H.toStringWrapper});
2495 wrapper.name = "";
2496 } else
2497 wrapper.toString = H.toStringWrapper;
2498 return wrapper;
2499 },
2500 toStringWrapper: function() {
2501 return J.toString$0$(this.dartException);
2502 },
2503 throwExpression: function(ex) {
2504 throw H.wrapException(ex);
2505 },
2506 throwConcurrentModificationError: function(collection) {
2507 throw H.wrapException(new P.ConcurrentModificationError(collection));
2508 },
2509 unwrapException: function(ex) {
2510 var t1, message, number, ieErrorCode, t2, nsme, notClosure, nullCall, null LiteralCall, undefCall, undefLiteralCall, nullProperty, undefProperty, undefLite ralProperty, match;
2511 t1 = new H.unwrapException_saveStackTrace(ex);
2512 if (ex == null)
2513 return;
2514 if (ex instanceof H.ExceptionAndStackTrace)
2515 return t1.call$1(ex.dartException);
2516 if (typeof ex !== "object")
2517 return ex;
2518 if ("dartException" in ex)
2519 return t1.call$1(ex.dartException);
2520 else if (!("message" in ex))
2521 return ex;
2522 message = ex.message;
2523 if ("number" in ex && typeof ex.number == "number") {
2524 number = ex.number;
2525 ieErrorCode = number & 65535;
2526 if ((C.JSInt_methods._shrOtherPositive$1(number, 16) & 8191) === 10)
2527 switch (ieErrorCode) {
2528 case 438:
2529 return t1.call$1(H.JsNoSuchMethodError$(H.S(message) + " (Error " + ieErrorCode + ")", null));
2530 case 445:
2531 case 5007:
2532 t2 = H.S(message) + " (Error " + ieErrorCode + ")";
2533 return t1.call$1(new H.NullError(t2, null));
2534 }
2535 }
2536 if (ex instanceof TypeError) {
2537 nsme = $.$get$TypeErrorDecoder_noSuchMethodPattern();
2538 notClosure = $.$get$TypeErrorDecoder_notClosurePattern();
2539 nullCall = $.$get$TypeErrorDecoder_nullCallPattern();
2540 nullLiteralCall = $.$get$TypeErrorDecoder_nullLiteralCallPattern();
2541 undefCall = $.$get$TypeErrorDecoder_undefinedCallPattern();
2542 undefLiteralCall = $.$get$TypeErrorDecoder_undefinedLiteralCallPattern() ;
2543 nullProperty = $.$get$TypeErrorDecoder_nullPropertyPattern();
2544 $.$get$TypeErrorDecoder_nullLiteralPropertyPattern();
2545 undefProperty = $.$get$TypeErrorDecoder_undefinedPropertyPattern();
2546 undefLiteralProperty = $.$get$TypeErrorDecoder_undefinedLiteralPropertyP attern();
2547 match = nsme.matchTypeError$1(message);
2548 if (match != null)
2549 return t1.call$1(H.JsNoSuchMethodError$(message, match));
2550 else {
2551 match = notClosure.matchTypeError$1(message);
2552 if (match != null) {
2553 match.method = "call";
2554 return t1.call$1(H.JsNoSuchMethodError$(message, match));
2555 } else {
2556 match = nullCall.matchTypeError$1(message);
2557 if (match == null) {
2558 match = nullLiteralCall.matchTypeError$1(message);
2559 if (match == null) {
2560 match = undefCall.matchTypeError$1(message);
2561 if (match == null) {
2562 match = undefLiteralCall.matchTypeError$1(message);
2563 if (match == null) {
2564 match = nullProperty.matchTypeError$1(message);
2565 if (match == null) {
2566 match = nullLiteralCall.matchTypeError$1(message);
2567 if (match == null) {
2568 match = undefProperty.matchTypeError$1(message);
2569 if (match == null) {
2570 match = undefLiteralProperty.matchTypeError$1(message) ;
2571 t2 = match != null;
2572 } else
2573 t2 = true;
2574 } else
2575 t2 = true;
2576 } else
2577 t2 = true;
2578 } else
2579 t2 = true;
2580 } else
2581 t2 = true;
2582 } else
2583 t2 = true;
2584 } else
2585 t2 = true;
2586 if (t2)
2587 return t1.call$1(new H.NullError(message, match == null ? null : m atch.method));
2588 }
2589 }
2590 return t1.call$1(new H.UnknownJsTypeError(typeof message === "string" ? message : ""));
2591 }
2592 if (ex instanceof RangeError) {
2593 if (typeof message === "string" && message.indexOf("call stack") !== -1)
2594 return new P.StackOverflowError();
2595 message = function(ex) {
2596 try {
2597 return String(ex);
2598 } catch (e) {
2599 }
2600 return null;
2601 }(ex);
2602 return t1.call$1(new P.ArgumentError(false, null, null, typeof message = == "string" ? message.replace(/^RangeError:\s*/, "") : message));
2603 }
2604 if (typeof InternalError == "function" && ex instanceof InternalError)
2605 if (typeof message === "string" && message === "too much recursion")
2606 return new P.StackOverflowError();
2607 return ex;
2608 },
2609 getTraceFromException: function(exception) {
2610 var trace;
2611 if (exception instanceof H.ExceptionAndStackTrace)
2612 return exception.stackTrace;
2613 if (exception == null)
2614 return new H._StackTrace(exception, null);
2615 trace = exception.$cachedTrace;
2616 if (trace != null)
2617 return trace;
2618 return exception.$cachedTrace = new H._StackTrace(exception, null);
2619 },
2620 objectHashCode: function(object) {
2621 if (object == null || typeof object != 'object')
2622 return J.get$hashCode$(object);
2623 else
2624 return H.Primitives_objectHashCode(object);
2625 },
2626 fillLiteralMap: function(keyValuePairs, result) {
2627 var $length, index, index0, index1;
2628 $length = keyValuePairs.length;
2629 for (index = 0; index < $length; index = index1) {
2630 index0 = index + 1;
2631 index1 = index0 + 1;
2632 result.$indexSet(0, keyValuePairs[index], keyValuePairs[index0]);
2633 }
2634 return result;
2635 },
2636 invokeClosure: function(closure, isolate, numberOfArguments, arg1, arg2, arg 3, arg4) {
2637 var t1 = J.getInterceptor(numberOfArguments);
2638 if (t1.$eq(numberOfArguments, 0))
2639 return H._callInIsolate(isolate, new H.invokeClosure_closure(closure));
2640 else if (t1.$eq(numberOfArguments, 1))
2641 return H._callInIsolate(isolate, new H.invokeClosure_closure0(closure, a rg1));
2642 else if (t1.$eq(numberOfArguments, 2))
2643 return H._callInIsolate(isolate, new H.invokeClosure_closure1(closure, a rg1, arg2));
2644 else if (t1.$eq(numberOfArguments, 3))
2645 return H._callInIsolate(isolate, new H.invokeClosure_closure2(closure, a rg1, arg2, arg3));
2646 else if (t1.$eq(numberOfArguments, 4))
2647 return H._callInIsolate(isolate, new H.invokeClosure_closure3(closure, a rg1, arg2, arg3, arg4));
2648 else
2649 throw H.wrapException(P.Exception_Exception("Unsupported number of argum ents for wrapped closure"));
2650 },
2651 convertDartClosureToJS: function(closure, arity) {
2652 var $function;
2653 if (closure == null)
2654 return;
2655 $function = closure.$identity;
2656 if (!!$function)
2657 return $function;
2658 $function = function(closure, arity, context, invoke) {
2659 return function(a1, a2, a3, a4) {
2660 return invoke(closure, context, arity, a1, a2, a3, a4);
2661 };
2662 }(closure, arity, init.globalState.currentContext, H.invokeClosure);
2663 closure.$identity = $function;
2664 return $function;
2665 },
2666 Closure_fromTearOff: function(receiver, functions, reflectionInfo, isStatic, jsArguments, propertyName) {
2667 var $function, callName, functionType, $prototype, $constructor, t1, isInt ercepted, trampoline, signatureFunction, getReceiver, i, stub, stubCallName, t2;
2668 $function = functions[0];
2669 callName = $function.$callName;
2670 if (!!J.getInterceptor(reflectionInfo).$isList) {
2671 $function.$reflectionInfo = reflectionInfo;
2672 functionType = H.ReflectionInfo_ReflectionInfo($function).functionType;
2673 } else
2674 functionType = reflectionInfo;
2675 $prototype = isStatic ? Object.create(new H.StaticClosure().constructor.pr ototype) : Object.create(new H.BoundClosure(null, null, null, null).constructor. prototype);
2676 $prototype.$initialize = $prototype.constructor;
2677 if (isStatic)
2678 $constructor = function() {
2679 this.$initialize();
2680 };
2681 else {
2682 t1 = $.Closure_functionCounter;
2683 $.Closure_functionCounter = J.$add$ns(t1, 1);
2684 t1 = new Function("a,b,c,d", "this.$initialize(a,b,c,d);" + t1);
2685 $constructor = t1;
2686 }
2687 $prototype.constructor = $constructor;
2688 $constructor.prototype = $prototype;
2689 t1 = !isStatic;
2690 if (t1) {
2691 isIntercepted = jsArguments.length == 1 && true;
2692 trampoline = H.Closure_forwardCallTo(receiver, $function, isIntercepted) ;
2693 trampoline.$reflectionInfo = reflectionInfo;
2694 } else {
2695 $prototype.$static_name = propertyName;
2696 trampoline = $function;
2697 isIntercepted = false;
2698 }
2699 if (typeof functionType == "number")
2700 signatureFunction = function(t) {
2701 return function() {
2702 return H.getType(t);
2703 };
2704 }(functionType);
2705 else if (t1 && typeof functionType == "function") {
2706 getReceiver = isIntercepted ? H.BoundClosure_receiverOf : H.BoundClosure _selfOf;
2707 signatureFunction = function(f, r) {
2708 return function() {
2709 return f.apply({$receiver: r(this)}, arguments);
2710 };
2711 }(functionType, getReceiver);
2712 } else
2713 throw H.wrapException("Error in reflectionInfo.");
2714 $prototype.$signature = signatureFunction;
2715 $prototype[callName] = trampoline;
2716 for (t1 = functions.length, i = 1; i < t1; ++i) {
2717 stub = functions[i];
2718 stubCallName = stub.$callName;
2719 if (stubCallName != null) {
2720 t2 = isStatic ? stub : H.Closure_forwardCallTo(receiver, stub, isInter cepted);
2721 $prototype[stubCallName] = t2;
2722 }
2723 }
2724 $prototype["call*"] = trampoline;
2725 $prototype.$requiredArgCount = $function.$requiredArgCount;
2726 $prototype.$defaultValues = $function.$defaultValues;
2727 return $constructor;
2728 },
2729 Closure_cspForwardCall: function(arity, isSuperCall, stubName, $function) {
2730 var getSelf = H.BoundClosure_selfOf;
2731 switch (isSuperCall ? -1 : arity) {
2732 case 0:
2733 return function(n, S) {
2734 return function() {
2735 return S(this)[n]();
2736 };
2737 }(stubName, getSelf);
2738 case 1:
2739 return function(n, S) {
2740 return function(a) {
2741 return S(this)[n](a);
2742 };
2743 }(stubName, getSelf);
2744 case 2:
2745 return function(n, S) {
2746 return function(a, b) {
2747 return S(this)[n](a, b);
2748 };
2749 }(stubName, getSelf);
2750 case 3:
2751 return function(n, S) {
2752 return function(a, b, c) {
2753 return S(this)[n](a, b, c);
2754 };
2755 }(stubName, getSelf);
2756 case 4:
2757 return function(n, S) {
2758 return function(a, b, c, d) {
2759 return S(this)[n](a, b, c, d);
2760 };
2761 }(stubName, getSelf);
2762 case 5:
2763 return function(n, S) {
2764 return function(a, b, c, d, e) {
2765 return S(this)[n](a, b, c, d, e);
2766 };
2767 }(stubName, getSelf);
2768 default:
2769 return function(f, s) {
2770 return function() {
2771 return f.apply(s(this), arguments);
2772 };
2773 }($function, getSelf);
2774 }
2775 },
2776 Closure_forwardCallTo: function(receiver, $function, isIntercepted) {
2777 var stubName, arity, lookedUpFunction, t1, t2, $arguments;
2778 if (isIntercepted)
2779 return H.Closure_forwardInterceptedCallTo(receiver, $function);
2780 stubName = $function.$stubName;
2781 arity = $function.length;
2782 lookedUpFunction = receiver[stubName];
2783 t1 = $function == null ? lookedUpFunction == null : $function === lookedUp Function;
2784 t2 = !t1 || arity >= 27;
2785 if (t2)
2786 return H.Closure_cspForwardCall(arity, !t1, stubName, $function);
2787 if (arity === 0) {
2788 t1 = $.BoundClosure_selfFieldNameCache;
2789 if (t1 == null) {
2790 t1 = H.BoundClosure_computeFieldNamed("self");
2791 $.BoundClosure_selfFieldNameCache = t1;
2792 }
2793 t1 = "return function(){return this." + H.S(t1) + "." + H.S(stubName) + "();";
2794 t2 = $.Closure_functionCounter;
2795 $.Closure_functionCounter = J.$add$ns(t2, 1);
2796 return new Function(t1 + H.S(t2) + "}")();
2797 }
2798 $arguments = "abcdefghijklmnopqrstuvwxyz".split("").splice(0, arity).join( ",");
2799 t1 = "return function(" + $arguments + "){return this.";
2800 t2 = $.BoundClosure_selfFieldNameCache;
2801 if (t2 == null) {
2802 t2 = H.BoundClosure_computeFieldNamed("self");
2803 $.BoundClosure_selfFieldNameCache = t2;
2804 }
2805 t2 = t1 + H.S(t2) + "." + H.S(stubName) + "(" + $arguments + ");";
2806 t1 = $.Closure_functionCounter;
2807 $.Closure_functionCounter = J.$add$ns(t1, 1);
2808 return new Function(t2 + H.S(t1) + "}")();
2809 },
2810 Closure_cspForwardInterceptedCall: function(arity, isSuperCall, $name, $func tion) {
2811 var getSelf, getReceiver;
2812 getSelf = H.BoundClosure_selfOf;
2813 getReceiver = H.BoundClosure_receiverOf;
2814 switch (isSuperCall ? -1 : arity) {
2815 case 0:
2816 throw H.wrapException(new H.RuntimeError("Intercepted function with no arguments."));
2817 case 1:
2818 return function(n, s, r) {
2819 return function() {
2820 return s(this)[n](r(this));
2821 };
2822 }($name, getSelf, getReceiver);
2823 case 2:
2824 return function(n, s, r) {
2825 return function(a) {
2826 return s(this)[n](r(this), a);
2827 };
2828 }($name, getSelf, getReceiver);
2829 case 3:
2830 return function(n, s, r) {
2831 return function(a, b) {
2832 return s(this)[n](r(this), a, b);
2833 };
2834 }($name, getSelf, getReceiver);
2835 case 4:
2836 return function(n, s, r) {
2837 return function(a, b, c) {
2838 return s(this)[n](r(this), a, b, c);
2839 };
2840 }($name, getSelf, getReceiver);
2841 case 5:
2842 return function(n, s, r) {
2843 return function(a, b, c, d) {
2844 return s(this)[n](r(this), a, b, c, d);
2845 };
2846 }($name, getSelf, getReceiver);
2847 case 6:
2848 return function(n, s, r) {
2849 return function(a, b, c, d, e) {
2850 return s(this)[n](r(this), a, b, c, d, e);
2851 };
2852 }($name, getSelf, getReceiver);
2853 default:
2854 return function(f, s, r, a) {
2855 return function() {
2856 a = [r(this)];
2857 Array.prototype.push.apply(a, arguments);
2858 return f.apply(s(this), a);
2859 };
2860 }($function, getSelf, getReceiver);
2861 }
2862 },
2863 Closure_forwardInterceptedCallTo: function(receiver, $function) {
2864 var selfField, t1, stubName, arity, lookedUpFunction, t2, t3, $arguments;
2865 selfField = H.BoundClosure_selfFieldName();
2866 t1 = $.BoundClosure_receiverFieldNameCache;
2867 if (t1 == null) {
2868 t1 = H.BoundClosure_computeFieldNamed("receiver");
2869 $.BoundClosure_receiverFieldNameCache = t1;
2870 }
2871 stubName = $function.$stubName;
2872 arity = $function.length;
2873 lookedUpFunction = receiver[stubName];
2874 t2 = $function == null ? lookedUpFunction == null : $function === lookedUp Function;
2875 t3 = !t2 || arity >= 28;
2876 if (t3)
2877 return H.Closure_cspForwardInterceptedCall(arity, !t2, stubName, $functi on);
2878 if (arity === 1) {
2879 t1 = "return function(){return this." + H.S(selfField) + "." + H.S(stubN ame) + "(this." + H.S(t1) + ");";
2880 t2 = $.Closure_functionCounter;
2881 $.Closure_functionCounter = J.$add$ns(t2, 1);
2882 return new Function(t1 + H.S(t2) + "}")();
2883 }
2884 $arguments = "abcdefghijklmnopqrstuvwxyz".split("").splice(0, arity - 1).j oin(",");
2885 t1 = "return function(" + $arguments + "){return this." + H.S(selfField) + "." + H.S(stubName) + "(this." + H.S(t1) + ", " + $arguments + ");";
2886 t2 = $.Closure_functionCounter;
2887 $.Closure_functionCounter = J.$add$ns(t2, 1);
2888 return new Function(t1 + H.S(t2) + "}")();
2889 },
2890 closureFromTearOff: function(receiver, functions, reflectionInfo, isStatic, jsArguments, $name) {
2891 var t1;
2892 functions.fixed$length = Array;
2893 if (!!J.getInterceptor(reflectionInfo).$isList) {
2894 reflectionInfo.fixed$length = Array;
2895 t1 = reflectionInfo;
2896 } else
2897 t1 = reflectionInfo;
2898 return H.Closure_fromTearOff(receiver, functions, t1, !!isStatic, jsArgume nts, $name);
2899 },
2900 throwCyclicInit: function(staticName) {
2901 throw H.wrapException(new P.CyclicInitializationError("Cyclic initializati on for static " + H.S(staticName)));
2902 },
2903 buildFunctionType: function(returnType, parameterTypes, optionalParameterTyp es) {
2904 return new H.RuntimeFunctionType(returnType, parameterTypes, optionalParam eterTypes, null);
2905 },
2906 getDynamicRuntimeType: function() {
2907 return C.C_DynamicRuntimeType;
2908 },
2909 random64: function() {
2910 return (Math.random() * 0x100000000 >>> 0) + (Math.random() * 0x100000000 >>> 0) * 4294967296;
2911 },
2912 setRuntimeTypeInfo: function(target, rti) {
2913 if (target != null)
2914 target.$builtinTypeInfo = rti;
2915 return target;
2916 },
2917 getRuntimeTypeInfo: function(target) {
2918 if (target == null)
2919 return;
2920 return target.$builtinTypeInfo;
2921 },
2922 getRuntimeTypeArguments: function(target, substitutionName) {
2923 return H.substitute(target["$as" + H.S(substitutionName)], H.getRuntimeTyp eInfo(target));
2924 },
2925 getRuntimeTypeArgument: function(target, substitutionName, index) {
2926 var $arguments = H.getRuntimeTypeArguments(target, substitutionName);
2927 return $arguments == null ? null : $arguments[index];
2928 },
2929 getTypeArgumentByIndex: function(target, index) {
2930 var rti = H.getRuntimeTypeInfo(target);
2931 return rti == null ? null : rti[index];
2932 },
2933 runtimeTypeToString: function(rti, onTypeVariable) {
2934 if (rti == null)
2935 return "dynamic";
2936 else if (typeof rti === "object" && rti !== null && rti.constructor === Ar ray)
2937 return rti[0].builtin$cls + H.joinArguments(rti, 1, onTypeVariable);
2938 else if (typeof rti == "function")
2939 return rti.builtin$cls;
2940 else if (typeof rti === "number" && Math.floor(rti) === rti)
2941 return C.JSInt_methods.toString$0(rti);
2942 else
2943 return;
2944 },
2945 joinArguments: function(types, startIndex, onTypeVariable) {
2946 var buffer, index, firstArgument, allDynamic, t1, argument;
2947 if (types == null)
2948 return "";
2949 buffer = new P.StringBuffer("");
2950 for (index = startIndex, firstArgument = true, allDynamic = true, t1 = ""; index < types.length; ++index) {
2951 if (firstArgument)
2952 firstArgument = false;
2953 else
2954 buffer._contents = t1 + ", ";
2955 argument = types[index];
2956 if (argument != null)
2957 allDynamic = false;
2958 t1 = buffer._contents += H.S(H.runtimeTypeToString(argument, onTypeVaria ble));
2959 }
2960 return allDynamic ? "" : "<" + H.S(buffer) + ">";
2961 },
2962 getRuntimeTypeString: function(object) {
2963 var className = J.getInterceptor(object).constructor.builtin$cls;
2964 if (object == null)
2965 return className;
2966 return className + H.joinArguments(object.$builtinTypeInfo, 0, null);
2967 },
2968 substitute: function(substitution, $arguments) {
2969 if (typeof substitution == "function") {
2970 substitution = H.invokeOn(substitution, null, $arguments);
2971 if (substitution == null || typeof substitution === "object" && substitu tion !== null && substitution.constructor === Array)
2972 $arguments = substitution;
2973 else if (typeof substitution == "function")
2974 $arguments = H.invokeOn(substitution, null, $arguments);
2975 }
2976 return $arguments;
2977 },
2978 areSubtypes: function(s, t) {
2979 var len, i;
2980 if (s == null || t == null)
2981 return true;
2982 len = s.length;
2983 for (i = 0; i < len; ++i)
2984 if (!H.isSubtype(s[i], t[i]))
2985 return false;
2986 return true;
2987 },
2988 computeSignature: function(signature, context, contextName) {
2989 return H.invokeOn(signature, context, H.getRuntimeTypeArguments(context, c ontextName));
2990 },
2991 isSubtype: function(s, t) {
2992 var t1, typeOfS, t2, typeOfT, substitution;
2993 if (s === t)
2994 return true;
2995 if (s == null || t == null)
2996 return true;
2997 if ('func' in t)
2998 return H.isFunctionSubtype(s, t);
2999 if ('func' in s)
3000 return t.builtin$cls === "Function";
3001 t1 = typeof s === "object" && s !== null && s.constructor === Array;
3002 typeOfS = t1 ? s[0] : s;
3003 t2 = typeof t === "object" && t !== null && t.constructor === Array;
3004 typeOfT = t2 ? t[0] : t;
3005 if (typeOfT !== typeOfS) {
3006 if (!('$is' + H.runtimeTypeToString(typeOfT, null) in typeOfS.prototype) )
3007 return false;
3008 substitution = typeOfS.prototype["$as" + H.S(H.runtimeTypeToString(typeO fT, null))];
3009 } else
3010 substitution = null;
3011 if (!t1 && substitution == null || !t2)
3012 return true;
3013 t1 = t1 ? s.slice(1) : null;
3014 t2 = t2 ? t.slice(1) : null;
3015 return H.areSubtypes(H.substitute(substitution, t1), t2);
3016 },
3017 areAssignable: function(s, t, allowShorter) {
3018 var t1, sLength, tLength, i, t2;
3019 t1 = t == null;
3020 if (t1 && s == null)
3021 return true;
3022 if (t1)
3023 return allowShorter;
3024 if (s == null)
3025 return false;
3026 sLength = s.length;
3027 tLength = t.length;
3028 if (allowShorter) {
3029 if (sLength < tLength)
3030 return false;
3031 } else if (sLength !== tLength)
3032 return false;
3033 for (i = 0; i < tLength; ++i) {
3034 t1 = s[i];
3035 t2 = t[i];
3036 if (!(H.isSubtype(t1, t2) || H.isSubtype(t2, t1)))
3037 return false;
3038 }
3039 return true;
3040 },
3041 areAssignableMaps: function(s, t) {
3042 var t1, names, i, $name, tType, sType;
3043 if (t == null)
3044 return true;
3045 if (s == null)
3046 return false;
3047 t1 = Object.getOwnPropertyNames(t);
3048 t1.fixed$length = Array;
3049 names = t1;
3050 for (t1 = names.length, i = 0; i < t1; ++i) {
3051 $name = names[i];
3052 if (!Object.hasOwnProperty.call(s, $name))
3053 return false;
3054 tType = t[$name];
3055 sType = s[$name];
3056 if (!(H.isSubtype(tType, sType) || H.isSubtype(sType, tType)))
3057 return false;
3058 }
3059 return true;
3060 },
3061 isFunctionSubtype: function(s, t) {
3062 var sReturnType, tReturnType, sParameterTypes, tParameterTypes, sOptionalP arameterTypes, tOptionalParameterTypes, sParametersLen, tParametersLen, sOptiona lParametersLen, tOptionalParametersLen, pos, t1, t2, tPos, sPos;
3063 if (!('func' in s))
3064 return false;
3065 if ("void" in s) {
3066 if (!("void" in t) && "ret" in t)
3067 return false;
3068 } else if (!("void" in t)) {
3069 sReturnType = s.ret;
3070 tReturnType = t.ret;
3071 if (!(H.isSubtype(sReturnType, tReturnType) || H.isSubtype(tReturnType, sReturnType)))
3072 return false;
3073 }
3074 sParameterTypes = s.args;
3075 tParameterTypes = t.args;
3076 sOptionalParameterTypes = s.opt;
3077 tOptionalParameterTypes = t.opt;
3078 sParametersLen = sParameterTypes != null ? sParameterTypes.length : 0;
3079 tParametersLen = tParameterTypes != null ? tParameterTypes.length : 0;
3080 sOptionalParametersLen = sOptionalParameterTypes != null ? sOptionalParame terTypes.length : 0;
3081 tOptionalParametersLen = tOptionalParameterTypes != null ? tOptionalParame terTypes.length : 0;
3082 if (sParametersLen > tParametersLen)
3083 return false;
3084 if (sParametersLen + sOptionalParametersLen < tParametersLen + tOptionalPa rametersLen)
3085 return false;
3086 if (sParametersLen === tParametersLen) {
3087 if (!H.areAssignable(sParameterTypes, tParameterTypes, false))
3088 return false;
3089 if (!H.areAssignable(sOptionalParameterTypes, tOptionalParameterTypes, t rue))
3090 return false;
3091 } else {
3092 for (pos = 0; pos < sParametersLen; ++pos) {
3093 t1 = sParameterTypes[pos];
3094 t2 = tParameterTypes[pos];
3095 if (!(H.isSubtype(t1, t2) || H.isSubtype(t2, t1)))
3096 return false;
3097 }
3098 for (tPos = pos, sPos = 0; tPos < tParametersLen; ++sPos, ++tPos) {
3099 t1 = sOptionalParameterTypes[sPos];
3100 t2 = tParameterTypes[tPos];
3101 if (!(H.isSubtype(t1, t2) || H.isSubtype(t2, t1)))
3102 return false;
3103 }
3104 for (tPos = 0; tPos < tOptionalParametersLen; ++sPos, ++tPos) {
3105 t1 = sOptionalParameterTypes[sPos];
3106 t2 = tOptionalParameterTypes[tPos];
3107 if (!(H.isSubtype(t1, t2) || H.isSubtype(t2, t1)))
3108 return false;
3109 }
3110 }
3111 return H.areAssignableMaps(s.named, t.named);
3112 },
3113 invokeOn: function($function, receiver, $arguments) {
3114 return $function.apply(receiver, $arguments);
3115 },
3116 toStringForNativeObject: function(obj) {
3117 var t1 = $.getTagFunction;
3118 return "Instance of " + (t1 == null ? "<Unknown>" : t1.call$1(obj));
3119 },
3120 hashCodeForNativeObject: function(object) {
3121 return H.Primitives_objectHashCode(object);
3122 },
3123 defineProperty: function(obj, property, value) {
3124 Object.defineProperty(obj, property, {value: value, enumerable: false, wri table: true, configurable: true});
3125 },
3126 lookupAndCacheInterceptor: function(obj) {
3127 var tag, record, interceptor, interceptorClass, mark, t1;
3128 tag = $.getTagFunction.call$1(obj);
3129 record = $.dispatchRecordsForInstanceTags[tag];
3130 if (record != null) {
3131 Object.defineProperty(obj, init.dispatchPropertyName, {value: record, en umerable: false, writable: true, configurable: true});
3132 return record.i;
3133 }
3134 interceptor = $.interceptorsForUncacheableTags[tag];
3135 if (interceptor != null)
3136 return interceptor;
3137 interceptorClass = init.interceptorsByTag[tag];
3138 if (interceptorClass == null) {
3139 tag = $.alternateTagFunction.call$2(obj, tag);
3140 if (tag != null) {
3141 record = $.dispatchRecordsForInstanceTags[tag];
3142 if (record != null) {
3143 Object.defineProperty(obj, init.dispatchPropertyName, {value: record , enumerable: false, writable: true, configurable: true});
3144 return record.i;
3145 }
3146 interceptor = $.interceptorsForUncacheableTags[tag];
3147 if (interceptor != null)
3148 return interceptor;
3149 interceptorClass = init.interceptorsByTag[tag];
3150 }
3151 }
3152 if (interceptorClass == null)
3153 return;
3154 interceptor = interceptorClass.prototype;
3155 mark = tag[0];
3156 if (mark === "!") {
3157 record = H.makeLeafDispatchRecord(interceptor);
3158 $.dispatchRecordsForInstanceTags[tag] = record;
3159 Object.defineProperty(obj, init.dispatchPropertyName, {value: record, en umerable: false, writable: true, configurable: true});
3160 return record.i;
3161 }
3162 if (mark === "~") {
3163 $.interceptorsForUncacheableTags[tag] = interceptor;
3164 return interceptor;
3165 }
3166 if (mark === "-") {
3167 t1 = H.makeLeafDispatchRecord(interceptor);
3168 Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyN ame, {value: t1, enumerable: false, writable: true, configurable: true});
3169 return t1.i;
3170 }
3171 if (mark === "+")
3172 return H.patchInteriorProto(obj, interceptor);
3173 if (mark === "*")
3174 throw H.wrapException(new P.UnimplementedError(tag));
3175 if (init.leafTags[tag] === true) {
3176 t1 = H.makeLeafDispatchRecord(interceptor);
3177 Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyN ame, {value: t1, enumerable: false, writable: true, configurable: true});
3178 return t1.i;
3179 } else
3180 return H.patchInteriorProto(obj, interceptor);
3181 },
3182 patchInteriorProto: function(obj, interceptor) {
3183 var proto = Object.getPrototypeOf(obj);
3184 Object.defineProperty(proto, init.dispatchPropertyName, {value: J.makeDisp atchRecord(interceptor, proto, null, null), enumerable: false, writable: true, c onfigurable: true});
3185 return interceptor;
3186 },
3187 makeLeafDispatchRecord: function(interceptor) {
3188 return J.makeDispatchRecord(interceptor, false, null, !!interceptor.$isJav aScriptIndexingBehavior);
3189 },
3190 makeDefaultDispatchRecord: function(tag, interceptorClass, proto) {
3191 var interceptor = interceptorClass.prototype;
3192 if (init.leafTags[tag] === true)
3193 return J.makeDispatchRecord(interceptor, false, null, !!interceptor.$isJ avaScriptIndexingBehavior);
3194 else
3195 return J.makeDispatchRecord(interceptor, proto, null, null);
3196 },
3197 initNativeDispatch: function() {
3198 if (true === $.initNativeDispatchFlag)
3199 return;
3200 $.initNativeDispatchFlag = true;
3201 H.initNativeDispatchContinue();
3202 },
3203 initNativeDispatchContinue: function() {
3204 var map, tags, fun, i, tag, proto, record, interceptorClass;
3205 $.dispatchRecordsForInstanceTags = Object.create(null);
3206 $.interceptorsForUncacheableTags = Object.create(null);
3207 H.initHooks();
3208 map = init.interceptorsByTag;
3209 tags = Object.getOwnPropertyNames(map);
3210 if (typeof window != "undefined") {
3211 window;
3212 fun = function() {
3213 };
3214 for (i = 0; i < tags.length; ++i) {
3215 tag = tags[i];
3216 proto = $.prototypeForTagFunction.call$1(tag);
3217 if (proto != null) {
3218 record = H.makeDefaultDispatchRecord(tag, map[tag], proto);
3219 if (record != null) {
3220 Object.defineProperty(proto, init.dispatchPropertyName, {value: re cord, enumerable: false, writable: true, configurable: true});
3221 fun.prototype = proto;
3222 }
3223 }
3224 }
3225 }
3226 for (i = 0; i < tags.length; ++i) {
3227 tag = tags[i];
3228 if (/^[A-Za-z_]/.test(tag)) {
3229 interceptorClass = map[tag];
3230 map["!" + tag] = interceptorClass;
3231 map["~" + tag] = interceptorClass;
3232 map["-" + tag] = interceptorClass;
3233 map["+" + tag] = interceptorClass;
3234 map["*" + tag] = interceptorClass;
3235 }
3236 }
3237 },
3238 initHooks: function() {
3239 var hooks, transformers, i, transformer, getTag, getUnknownTag, prototypeF orTag;
3240 hooks = C.JS_CONST_gkc();
3241 hooks = H.applyHooksTransformer(C.JS_CONST_0, H.applyHooksTransformer(C.JS _CONST_rr7, H.applyHooksTransformer(C.JS_CONST_Fs4, H.applyHooksTransformer(C.JS _CONST_Fs4, H.applyHooksTransformer(C.JS_CONST_gkc0, H.applyHooksTransformer(C.J S_CONST_4hp, H.applyHooksTransformer(C.JS_CONST_QJm(C.JS_CONST_8ZY), hooks)))))) );
3242 if (typeof dartNativeDispatchHooksTransformer != "undefined") {
3243 transformers = dartNativeDispatchHooksTransformer;
3244 if (typeof transformers == "function")
3245 transformers = [transformers];
3246 if (transformers.constructor == Array)
3247 for (i = 0; i < transformers.length; ++i) {
3248 transformer = transformers[i];
3249 if (typeof transformer == "function")
3250 hooks = transformer(hooks) || hooks;
3251 }
3252 }
3253 getTag = hooks.getTag;
3254 getUnknownTag = hooks.getUnknownTag;
3255 prototypeForTag = hooks.prototypeForTag;
3256 $.getTagFunction = new H.initHooks_closure(getTag);
3257 $.alternateTagFunction = new H.initHooks_closure0(getUnknownTag);
3258 $.prototypeForTagFunction = new H.initHooks_closure1(prototypeForTag);
3259 },
3260 applyHooksTransformer: function(transformer, hooks) {
3261 return transformer(hooks) || hooks;
3262 },
3263 stringContainsUnchecked: function(receiver, other, startIndex) {
3264 var t1;
3265 if (typeof other === "string")
3266 return receiver.indexOf(other, startIndex) >= 0;
3267 else {
3268 t1 = J.getInterceptor(other);
3269 if (!!t1.$isJSSyntaxRegExp) {
3270 t1 = C.JSString_methods.substring$1(receiver, startIndex);
3271 return other._nativeRegExp.test(H.checkString(t1));
3272 } else {
3273 t1 = t1.allMatches$1(other, C.JSString_methods.substring$1(receiver, s tartIndex));
3274 return !t1.get$isEmpty(t1);
3275 }
3276 }
3277 },
3278 stringReplaceAllUnchecked: function(receiver, pattern, replacement) {
3279 var $length, t1, i;
3280 H.checkString(replacement);
3281 if (pattern === "")
3282 if (receiver === "")
3283 return replacement;
3284 else {
3285 $length = receiver.length;
3286 for (t1 = replacement, i = 0; i < $length; ++i)
3287 t1 = t1 + receiver[i] + replacement;
3288 return t1.charCodeAt(0) == 0 ? t1 : t1;
3289 }
3290 else
3291 return receiver.replace(new RegExp(pattern.replace(new RegExp("[[\\]{}() *+?.\\\\^$|]", 'g'), "\\$&"), 'g'), replacement.replace(/\$/g, "$$$$"));
3292 },
3293 _stringIdentity: [function(string) {
3294 return string;
3295 }, "call$1", "_js_helper___stringIdentity$closure", 2, 0, 9],
3296 stringReplaceAllFuncUnchecked: function(receiver, pattern, onMatch, onNonMat ch) {
3297 var t1, buffer, startIndex, match, t2, t3;
3298 onNonMatch = H._js_helper___stringIdentity$closure();
3299 t1 = J.getInterceptor(pattern);
3300 if (!t1.$isPattern)
3301 throw H.wrapException(P.ArgumentError$value(pattern, "pattern", "is not a Pattern"));
3302 buffer = new P.StringBuffer("");
3303 for (t1 = t1.allMatches$1(pattern, receiver), t1 = new H._AllMatchesIterat or(t1._re, t1._string, t1._start, null), startIndex = 0; t1.moveNext$0();) {
3304 match = t1.__js_helper$_current;
3305 t2 = match._match;
3306 buffer._contents += H.S(onNonMatch.call$1(C.JSString_methods.substring$2 (receiver, startIndex, t2.index)));
3307 buffer._contents += H.S(onMatch.call$1(match));
3308 t3 = t2.index;
3309 if (0 >= t2.length)
3310 return H.ioore(t2, 0);
3311 t2 = J.get$length$asx(t2[0]);
3312 if (typeof t2 !== "number")
3313 return H.iae(t2);
3314 startIndex = t3 + t2;
3315 }
3316 t1 = buffer._contents += H.S(onNonMatch.call$1(C.JSString_methods.substrin g$1(receiver, startIndex)));
3317 return t1.charCodeAt(0) == 0 ? t1 : t1;
3318 },
3319 stringReplaceFirstUnchecked: function(receiver, pattern, replacement, startI ndex) {
3320 var index = receiver.indexOf(pattern, startIndex);
3321 if (index < 0)
3322 return receiver;
3323 return H.stringReplaceRangeUnchecked(receiver, index, index + pattern.leng th, replacement);
3324 },
3325 stringReplaceRangeUnchecked: function(receiver, start, end, replacement) {
3326 var prefix, suffix;
3327 prefix = receiver.substring(0, start);
3328 suffix = receiver.substring(end);
3329 return prefix + replacement + suffix;
3330 },
3331 ReflectionInfo: {
3332 "^": "Object;jsFunction,data,isAccessor,requiredParameterCount,optionalPar ameterCount,areOptionalParametersNamed,functionType,cachedSortedIndices",
3333 static: {ReflectionInfo_ReflectionInfo: function(jsFunction) {
3334 var data, requiredParametersInfo, optionalParametersInfo;
3335 data = jsFunction.$reflectionInfo;
3336 if (data == null)
3337 return;
3338 data.fixed$length = Array;
3339 data = data;
3340 requiredParametersInfo = data[0];
3341 optionalParametersInfo = data[1];
3342 return new H.ReflectionInfo(jsFunction, data, (requiredParametersInfo & 1) === 1, requiredParametersInfo >> 1, optionalParametersInfo >> 1, (optionalP arametersInfo & 1) === 1, data[2], null);
3343 }}
3344 },
3345 TypeErrorDecoder: {
3346 "^": "Object;_pattern,_arguments,_argumentsExpr,_expr,_method,_receiver",
3347 matchTypeError$1: function(message) {
3348 var match, result, t1;
3349 match = new RegExp(this._pattern).exec(message);
3350 if (match == null)
3351 return;
3352 result = Object.create(null);
3353 t1 = this._arguments;
3354 if (t1 !== -1)
3355 result.arguments = match[t1 + 1];
3356 t1 = this._argumentsExpr;
3357 if (t1 !== -1)
3358 result.argumentsExpr = match[t1 + 1];
3359 t1 = this._expr;
3360 if (t1 !== -1)
3361 result.expr = match[t1 + 1];
3362 t1 = this._method;
3363 if (t1 !== -1)
3364 result.method = match[t1 + 1];
3365 t1 = this._receiver;
3366 if (t1 !== -1)
3367 result.receiver = match[t1 + 1];
3368 return result;
3369 },
3370 static: {TypeErrorDecoder_extractPattern: function(message) {
3371 var match, $arguments, argumentsExpr, expr, method, receiver;
3372 message = message.replace(String({}), '$receiver$').replace(new RegExp ("[[\\]{}()*+?.\\\\^$|]", 'g'), '\\$&');
3373 match = message.match(/\\\$[a-zA-Z]+\\\$/g);
3374 if (match == null)
3375 match = [];
3376 $arguments = match.indexOf("\\$arguments\\$");
3377 argumentsExpr = match.indexOf("\\$argumentsExpr\\$");
3378 expr = match.indexOf("\\$expr\\$");
3379 method = match.indexOf("\\$method\\$");
3380 receiver = match.indexOf("\\$receiver\\$");
3381 return new H.TypeErrorDecoder(message.replace('\\$arguments\\$', '((?: x|[^x])*)').replace('\\$argumentsExpr\\$', '((?:x|[^x])*)').replace('\\$expr\\$' , '((?:x|[^x])*)').replace('\\$method\\$', '((?:x|[^x])*)').replace('\\$receiver \\$', '((?:x|[^x])*)'), $arguments, argumentsExpr, expr, method, receiver);
3382 }, TypeErrorDecoder_provokeCallErrorOn: function(expression) {
3383 return function($expr$) {
3384 var $argumentsExpr$ = '$arguments$';
3385 try {
3386 $expr$.$method$($argumentsExpr$);
3387 } catch (e) {
3388 return e.message;
3389 }
3390 }(expression);
3391 }, TypeErrorDecoder_provokePropertyErrorOn: function(expression) {
3392 return function($expr$) {
3393 try {
3394 $expr$.$method$;
3395 } catch (e) {
3396 return e.message;
3397 }
3398 }(expression);
3399 }}
3400 },
3401 NullError: {
3402 "^": "Error;_message,_method",
3403 toString$0: function(_) {
3404 var t1 = this._method;
3405 if (t1 == null)
3406 return "NullError: " + H.S(this._message);
3407 return "NullError: method not found: '" + H.S(t1) + "' on null";
3408 }
3409 },
3410 JsNoSuchMethodError: {
3411 "^": "Error;_message,_method,_receiver",
3412 toString$0: function(_) {
3413 var t1, t2;
3414 t1 = this._method;
3415 if (t1 == null)
3416 return "NoSuchMethodError: " + H.S(this._message);
3417 t2 = this._receiver;
3418 if (t2 == null)
3419 return "NoSuchMethodError: method not found: '" + H.S(t1) + "' (" + H. S(this._message) + ")";
3420 return "NoSuchMethodError: method not found: '" + H.S(t1) + "' on '" + H .S(t2) + "' (" + H.S(this._message) + ")";
3421 },
3422 static: {JsNoSuchMethodError$: function(_message, match) {
3423 var t1, t2;
3424 t1 = match == null;
3425 t2 = t1 ? null : match.method;
3426 return new H.JsNoSuchMethodError(_message, t2, t1 ? null : match.recei ver);
3427 }}
3428 },
3429 UnknownJsTypeError: {
3430 "^": "Error;_message",
3431 toString$0: function(_) {
3432 var t1 = this._message;
3433 return C.JSString_methods.get$isEmpty(t1) ? "Error" : "Error: " + t1;
3434 }
3435 },
3436 ExceptionAndStackTrace: {
3437 "^": "Object;dartException,stackTrace<"
3438 },
3439 unwrapException_saveStackTrace: {
3440 "^": "Closure:0;_captured_ex_0",
3441 call$1: function(error) {
3442 if (!!J.getInterceptor(error).$isError)
3443 if (error.$thrownJsError == null)
3444 error.$thrownJsError = this._captured_ex_0;
3445 return error;
3446 }
3447 },
3448 _StackTrace: {
3449 "^": "Object;_exception,_trace",
3450 toString$0: function(_) {
3451 var t1, trace;
3452 t1 = this._trace;
3453 if (t1 != null)
3454 return t1;
3455 t1 = this._exception;
3456 trace = t1 !== null && typeof t1 === "object" ? t1.stack : null;
3457 t1 = trace == null ? "" : trace;
3458 this._trace = t1;
3459 return t1;
3460 }
3461 },
3462 invokeClosure_closure: {
3463 "^": "Closure:1;_captured_closure_0",
3464 call$0: function() {
3465 return this._captured_closure_0.call$0();
3466 }
3467 },
3468 invokeClosure_closure0: {
3469 "^": "Closure:1;_captured_closure_1,_captured_arg1_2",
3470 call$0: function() {
3471 return this._captured_closure_1.call$1(this._captured_arg1_2);
3472 }
3473 },
3474 invokeClosure_closure1: {
3475 "^": "Closure:1;_captured_closure_3,_captured_arg1_4,_captured_arg2_5",
3476 call$0: function() {
3477 return this._captured_closure_3.call$2(this._captured_arg1_4, this._capt ured_arg2_5);
3478 }
3479 },
3480 invokeClosure_closure2: {
3481 "^": "Closure:1;_captured_closure_6,_captured_arg1_7,_captured_arg2_8,_cap tured_arg3_9",
3482 call$0: function() {
3483 return this._captured_closure_6.call$3(this._captured_arg1_7, this._capt ured_arg2_8, this._captured_arg3_9);
3484 }
3485 },
3486 invokeClosure_closure3: {
3487 "^": "Closure:1;_captured_closure_10,_captured_arg1_11,_captured_arg2_12,_ captured_arg3_13,_captured_arg4_14",
3488 call$0: function() {
3489 return this._captured_closure_10.call$4(this._captured_arg1_11, this._ca ptured_arg2_12, this._captured_arg3_13, this._captured_arg4_14);
3490 }
3491 },
3492 Closure: {
3493 "^": "Object;",
3494 toString$0: function(_) {
3495 return "Closure '" + H.Primitives_objectTypeName(this) + "'";
3496 },
3497 get$$call: function() {
3498 return this;
3499 },
3500 get$$call: function() {
3501 return this;
3502 }
3503 },
3504 TearOffClosure: {
3505 "^": "Closure;"
3506 },
3507 StaticClosure: {
3508 "^": "TearOffClosure;",
3509 toString$0: function(_) {
3510 var $name = this.$static_name;
3511 if ($name == null)
3512 return "Closure of unknown static method";
3513 return "Closure '" + $name + "'";
3514 }
3515 },
3516 BoundClosure: {
3517 "^": "TearOffClosure;_self,__js_helper$_target,_receiver,__js_helper$_name ",
3518 $eq: function(_, other) {
3519 if (other == null)
3520 return false;
3521 if (this === other)
3522 return true;
3523 if (!(other instanceof H.BoundClosure))
3524 return false;
3525 return this._self === other._self && this.__js_helper$_target === other. __js_helper$_target && this._receiver === other._receiver;
3526 },
3527 get$hashCode: function(_) {
3528 var t1, receiverHashCode;
3529 t1 = this._receiver;
3530 if (t1 == null)
3531 receiverHashCode = H.Primitives_objectHashCode(this._self);
3532 else
3533 receiverHashCode = typeof t1 !== "object" ? J.get$hashCode$(t1) : H.Pr imitives_objectHashCode(t1);
3534 t1 = H.Primitives_objectHashCode(this.__js_helper$_target);
3535 if (typeof receiverHashCode !== "number")
3536 return receiverHashCode.$xor();
3537 return (receiverHashCode ^ t1) >>> 0;
3538 },
3539 toString$0: function(_) {
3540 var receiver = this._receiver;
3541 if (receiver == null)
3542 receiver = this._self;
3543 return "Closure '" + H.S(this.__js_helper$_name) + "' of " + H.Primitive s_objectToHumanReadableString(receiver);
3544 },
3545 static: {BoundClosure_selfOf: function(closure) {
3546 return closure._self;
3547 }, BoundClosure_receiverOf: function(closure) {
3548 return closure._receiver;
3549 }, BoundClosure_selfFieldName: function() {
3550 var t1 = $.BoundClosure_selfFieldNameCache;
3551 if (t1 == null) {
3552 t1 = H.BoundClosure_computeFieldNamed("self");
3553 $.BoundClosure_selfFieldNameCache = t1;
3554 }
3555 return t1;
3556 }, BoundClosure_computeFieldNamed: function(fieldName) {
3557 var template, t1, names, i, $name;
3558 template = new H.BoundClosure("self", "target", "receiver", "name");
3559 t1 = Object.getOwnPropertyNames(template);
3560 t1.fixed$length = Array;
3561 names = t1;
3562 for (t1 = names.length, i = 0; i < t1; ++i) {
3563 $name = names[i];
3564 if (template[$name] === fieldName)
3565 return $name;
3566 }
3567 }}
3568 },
3569 RuntimeError: {
3570 "^": "Error;message>",
3571 toString$0: function(_) {
3572 return "RuntimeError: " + H.S(this.message);
3573 }
3574 },
3575 RuntimeType: {
3576 "^": "Object;"
3577 },
3578 RuntimeFunctionType: {
3579 "^": "RuntimeType;returnType,parameterTypes,optionalParameterTypes,namedPa rameters",
3580 _isTest$1: function(expression) {
3581 var functionTypeObject = this._extractFunctionTypeObjectFrom$1(expressio n);
3582 return functionTypeObject == null ? false : H.isFunctionSubtype(function TypeObject, this.toRti$0());
3583 },
3584 _extractFunctionTypeObjectFrom$1: function(o) {
3585 var interceptor = J.getInterceptor(o);
3586 return "$signature" in interceptor ? interceptor.$signature() : null;
3587 },
3588 toRti$0: function() {
3589 var result, t1, t2, namedRti, keys, i, $name;
3590 result = {func: "dynafunc"};
3591 t1 = this.returnType;
3592 t2 = J.getInterceptor(t1);
3593 if (!!t2.$isVoidRuntimeType)
3594 result.void = true;
3595 else if (!t2.$isDynamicRuntimeType)
3596 result.ret = t1.toRti$0();
3597 t1 = this.parameterTypes;
3598 if (t1 != null && t1.length !== 0)
3599 result.args = H.RuntimeFunctionType_listToRti(t1);
3600 t1 = this.optionalParameterTypes;
3601 if (t1 != null && t1.length !== 0)
3602 result.opt = H.RuntimeFunctionType_listToRti(t1);
3603 t1 = this.namedParameters;
3604 if (t1 != null) {
3605 namedRti = Object.create(null);
3606 keys = H.extractKeys(t1);
3607 for (t2 = keys.length, i = 0; i < t2; ++i) {
3608 $name = keys[i];
3609 namedRti[$name] = t1[$name].toRti$0();
3610 }
3611 result.named = namedRti;
3612 }
3613 return result;
3614 },
3615 toString$0: function(_) {
3616 var t1, t2, result, needsComma, i, type, keys, $name;
3617 t1 = this.parameterTypes;
3618 if (t1 != null)
3619 for (t2 = t1.length, result = "(", needsComma = false, i = 0; i < t2; ++i, needsComma = true) {
3620 type = t1[i];
3621 if (needsComma)
3622 result += ", ";
3623 result += H.S(type);
3624 }
3625 else {
3626 result = "(";
3627 needsComma = false;
3628 }
3629 t1 = this.optionalParameterTypes;
3630 if (t1 != null && t1.length !== 0) {
3631 result = (needsComma ? result + ", " : result) + "[";
3632 for (t2 = t1.length, needsComma = false, i = 0; i < t2; ++i, needsComm a = true) {
3633 type = t1[i];
3634 if (needsComma)
3635 result += ", ";
3636 result += H.S(type);
3637 }
3638 result += "]";
3639 } else {
3640 t1 = this.namedParameters;
3641 if (t1 != null) {
3642 result = (needsComma ? result + ", " : result) + "{";
3643 keys = H.extractKeys(t1);
3644 for (t2 = keys.length, needsComma = false, i = 0; i < t2; ++i, needs Comma = true) {
3645 $name = keys[i];
3646 if (needsComma)
3647 result += ", ";
3648 result += H.S(t1[$name].toRti$0()) + " " + $name;
3649 }
3650 result += "}";
3651 }
3652 }
3653 return result + (") -> " + H.S(this.returnType));
3654 },
3655 static: {RuntimeFunctionType_listToRti: function(list) {
3656 var result, t1, i;
3657 list = list;
3658 result = [];
3659 for (t1 = list.length, i = 0; i < t1; ++i)
3660 result.push(list[i].toRti$0());
3661 return result;
3662 }}
3663 },
3664 DynamicRuntimeType: {
3665 "^": "RuntimeType;",
3666 toString$0: function(_) {
3667 return "dynamic";
3668 },
3669 toRti$0: function() {
3670 return;
3671 }
3672 },
3673 TypeImpl: {
3674 "^": "Object;_typeName,_unmangledName",
3675 toString$0: function(_) {
3676 var t1, unmangledName;
3677 t1 = this._unmangledName;
3678 if (t1 != null)
3679 return t1;
3680 unmangledName = this._typeName.replace(/[^<,> ]+/g, function(m) {
3681 return init.mangledGlobalNames[m] || m;
3682 });
3683 this._unmangledName = unmangledName;
3684 return unmangledName;
3685 },
3686 get$hashCode: function(_) {
3687 return J.get$hashCode$(this._typeName);
3688 },
3689 $eq: function(_, other) {
3690 if (other == null)
3691 return false;
3692 return other instanceof H.TypeImpl && J.$eq$(this._typeName, other._type Name);
3693 }
3694 },
3695 JsLinkedHashMap: {
3696 "^": "Object;__js_helper$_length,_strings,_nums,_rest,_first,__js_helper$_ last,_modifications",
3697 get$length: function(_) {
3698 return this.__js_helper$_length;
3699 },
3700 get$isEmpty: function(_) {
3701 return this.__js_helper$_length === 0;
3702 },
3703 get$isNotEmpty: function(_) {
3704 return !this.get$isEmpty(this);
3705 },
3706 get$keys: function() {
3707 return H.setRuntimeTypeInfo(new H.LinkedHashMapKeyIterable(this), [H.get TypeArgumentByIndex(this, 0)]);
3708 },
3709 get$values: function(_) {
3710 return H.MappedIterable_MappedIterable(this.get$keys(), new H.JsLinkedHa shMap_values_closure(this), H.getTypeArgumentByIndex(this, 0), H.getTypeArgument ByIndex(this, 1));
3711 },
3712 containsKey$1: function(key) {
3713 var strings, nums;
3714 if (typeof key === "string") {
3715 strings = this._strings;
3716 if (strings == null)
3717 return false;
3718 return this._containsTableEntry$2(strings, key);
3719 } else if (typeof key === "number" && (key & 0x3ffffff) === key) {
3720 nums = this._nums;
3721 if (nums == null)
3722 return false;
3723 return this._containsTableEntry$2(nums, key);
3724 } else
3725 return this.internalContainsKey$1(key);
3726 },
3727 internalContainsKey$1: function(key) {
3728 var rest = this._rest;
3729 if (rest == null)
3730 return false;
3731 return this.internalFindBucketIndex$2(this._getTableEntry$2(rest, this.i nternalComputeHashCode$1(key)), key) >= 0;
3732 },
3733 $index: function(_, key) {
3734 var strings, cell, nums;
3735 if (typeof key === "string") {
3736 strings = this._strings;
3737 if (strings == null)
3738 return;
3739 cell = this._getTableEntry$2(strings, key);
3740 return cell == null ? null : cell.get$hashMapCellValue();
3741 } else if (typeof key === "number" && (key & 0x3ffffff) === key) {
3742 nums = this._nums;
3743 if (nums == null)
3744 return;
3745 cell = this._getTableEntry$2(nums, key);
3746 return cell == null ? null : cell.get$hashMapCellValue();
3747 } else
3748 return this.internalGet$1(key);
3749 },
3750 internalGet$1: function(key) {
3751 var rest, bucket, index;
3752 rest = this._rest;
3753 if (rest == null)
3754 return;
3755 bucket = this._getTableEntry$2(rest, this.internalComputeHashCode$1(key) );
3756 index = this.internalFindBucketIndex$2(bucket, key);
3757 if (index < 0)
3758 return;
3759 return bucket[index].get$hashMapCellValue();
3760 },
3761 $indexSet: function(_, key, value) {
3762 var strings, nums, rest, hash, bucket, index;
3763 if (typeof key === "string") {
3764 strings = this._strings;
3765 if (strings == null) {
3766 strings = this._newHashTable$0();
3767 this._strings = strings;
3768 }
3769 this.__js_helper$_addHashTableEntry$3(strings, key, value);
3770 } else if (typeof key === "number" && (key & 0x3ffffff) === key) {
3771 nums = this._nums;
3772 if (nums == null) {
3773 nums = this._newHashTable$0();
3774 this._nums = nums;
3775 }
3776 this.__js_helper$_addHashTableEntry$3(nums, key, value);
3777 } else {
3778 rest = this._rest;
3779 if (rest == null) {
3780 rest = this._newHashTable$0();
3781 this._rest = rest;
3782 }
3783 hash = this.internalComputeHashCode$1(key);
3784 bucket = this._getTableEntry$2(rest, hash);
3785 if (bucket == null)
3786 this._setTableEntry$3(rest, hash, [this.__js_helper$_newLinkedCell$2 (key, value)]);
3787 else {
3788 index = this.internalFindBucketIndex$2(bucket, key);
3789 if (index >= 0)
3790 bucket[index].set$hashMapCellValue(value);
3791 else
3792 bucket.push(this.__js_helper$_newLinkedCell$2(key, value));
3793 }
3794 }
3795 },
3796 putIfAbsent$2: function(key, ifAbsent) {
3797 var value;
3798 if (this.containsKey$1(key))
3799 return this.$index(0, key);
3800 value = ifAbsent.call$0();
3801 this.$indexSet(0, key, value);
3802 return value;
3803 },
3804 remove$1: function(_, key) {
3805 if (typeof key === "string")
3806 return this.__js_helper$_removeHashTableEntry$2(this._strings, key);
3807 else if (typeof key === "number" && (key & 0x3ffffff) === key)
3808 return this.__js_helper$_removeHashTableEntry$2(this._nums, key);
3809 else
3810 return this.internalRemove$1(key);
3811 },
3812 internalRemove$1: function(key) {
3813 var rest, bucket, index, cell;
3814 rest = this._rest;
3815 if (rest == null)
3816 return;
3817 bucket = this._getTableEntry$2(rest, this.internalComputeHashCode$1(key) );
3818 index = this.internalFindBucketIndex$2(bucket, key);
3819 if (index < 0)
3820 return;
3821 cell = bucket.splice(index, 1)[0];
3822 this.__js_helper$_unlinkCell$1(cell);
3823 return cell.get$hashMapCellValue();
3824 },
3825 clear$0: function(_) {
3826 if (this.__js_helper$_length > 0) {
3827 this.__js_helper$_last = null;
3828 this._first = null;
3829 this._rest = null;
3830 this._nums = null;
3831 this._strings = null;
3832 this.__js_helper$_length = 0;
3833 this._modifications = this._modifications + 1 & 67108863;
3834 }
3835 },
3836 forEach$1: function(_, action) {
3837 var cell, modifications;
3838 cell = this._first;
3839 modifications = this._modifications;
3840 for (; cell != null;) {
3841 action.call$2(cell.hashMapCellKey, cell.hashMapCellValue);
3842 if (modifications !== this._modifications)
3843 throw H.wrapException(new P.ConcurrentModificationError(this));
3844 cell = cell._next;
3845 }
3846 },
3847 __js_helper$_addHashTableEntry$3: function(table, key, value) {
3848 var cell = this._getTableEntry$2(table, key);
3849 if (cell == null)
3850 this._setTableEntry$3(table, key, this.__js_helper$_newLinkedCell$2(ke y, value));
3851 else
3852 cell.set$hashMapCellValue(value);
3853 },
3854 __js_helper$_removeHashTableEntry$2: function(table, key) {
3855 var cell;
3856 if (table == null)
3857 return;
3858 cell = this._getTableEntry$2(table, key);
3859 if (cell == null)
3860 return;
3861 this.__js_helper$_unlinkCell$1(cell);
3862 this._deleteTableEntry$2(table, key);
3863 return cell.get$hashMapCellValue();
3864 },
3865 __js_helper$_newLinkedCell$2: function(key, value) {
3866 var cell, last;
3867 cell = new H.LinkedHashMapCell(key, value, null, null);
3868 if (this._first == null) {
3869 this.__js_helper$_last = cell;
3870 this._first = cell;
3871 } else {
3872 last = this.__js_helper$_last;
3873 cell.__js_helper$_previous = last;
3874 last._next = cell;
3875 this.__js_helper$_last = cell;
3876 }
3877 ++this.__js_helper$_length;
3878 this._modifications = this._modifications + 1 & 67108863;
3879 return cell;
3880 },
3881 __js_helper$_unlinkCell$1: function(cell) {
3882 var previous, next;
3883 previous = cell.get$__js_helper$_previous();
3884 next = cell._next;
3885 if (previous == null)
3886 this._first = next;
3887 else
3888 previous._next = next;
3889 if (next == null)
3890 this.__js_helper$_last = previous;
3891 else
3892 next.__js_helper$_previous = previous;
3893 --this.__js_helper$_length;
3894 this._modifications = this._modifications + 1 & 67108863;
3895 },
3896 internalComputeHashCode$1: function(key) {
3897 return J.get$hashCode$(key) & 0x3ffffff;
3898 },
3899 internalFindBucketIndex$2: function(bucket, key) {
3900 var $length, i;
3901 if (bucket == null)
3902 return -1;
3903 $length = bucket.length;
3904 for (i = 0; i < $length; ++i)
3905 if (J.$eq$(bucket[i].get$hashMapCellKey(), key))
3906 return i;
3907 return -1;
3908 },
3909 toString$0: function(_) {
3910 return P.Maps_mapToString(this);
3911 },
3912 _getTableEntry$2: function(table, key) {
3913 return table[key];
3914 },
3915 _setTableEntry$3: function(table, key, value) {
3916 table[key] = value;
3917 },
3918 _deleteTableEntry$2: function(table, key) {
3919 delete table[key];
3920 },
3921 _containsTableEntry$2: function(table, key) {
3922 return this._getTableEntry$2(table, key) != null;
3923 },
3924 _newHashTable$0: function() {
3925 var table = Object.create(null);
3926 this._setTableEntry$3(table, "<non-identifier-key>", table);
3927 this._deleteTableEntry$2(table, "<non-identifier-key>");
3928 return table;
3929 },
3930 $isInternalMap: 1
3931 },
3932 JsLinkedHashMap_values_closure: {
3933 "^": "Closure:0;__js_helper$_captured_this_0",
3934 call$1: function(each) {
3935 return this.__js_helper$_captured_this_0.$index(0, each);
3936 }
3937 },
3938 LinkedHashMapCell: {
3939 "^": "Object;hashMapCellKey<,hashMapCellValue@,_next,__js_helper$_previous <"
3940 },
3941 LinkedHashMapKeyIterable: {
3942 "^": "Iterable;_map",
3943 get$length: function(_) {
3944 return this._map.__js_helper$_length;
3945 },
3946 get$isEmpty: function(_) {
3947 return this._map.__js_helper$_length === 0;
3948 },
3949 get$iterator: function(_) {
3950 var t1, t2;
3951 t1 = this._map;
3952 t2 = new H.LinkedHashMapKeyIterator(t1, t1._modifications, null, null);
3953 t2.$builtinTypeInfo = this.$builtinTypeInfo;
3954 t2.__js_helper$_cell = t1._first;
3955 return t2;
3956 },
3957 contains$1: function(_, element) {
3958 return this._map.containsKey$1(element);
3959 },
3960 forEach$1: function(_, f) {
3961 var t1, cell, modifications;
3962 t1 = this._map;
3963 cell = t1._first;
3964 modifications = t1._modifications;
3965 for (; cell != null;) {
3966 f.call$1(cell.hashMapCellKey);
3967 if (modifications !== t1._modifications)
3968 throw H.wrapException(new P.ConcurrentModificationError(t1));
3969 cell = cell._next;
3970 }
3971 },
3972 $isEfficientLength: 1
3973 },
3974 LinkedHashMapKeyIterator: {
3975 "^": "Object;_map,_modifications,__js_helper$_cell,__js_helper$_current",
3976 get$current: function() {
3977 return this.__js_helper$_current;
3978 },
3979 moveNext$0: function() {
3980 var t1 = this._map;
3981 if (this._modifications !== t1._modifications)
3982 throw H.wrapException(new P.ConcurrentModificationError(t1));
3983 else {
3984 t1 = this.__js_helper$_cell;
3985 if (t1 == null) {
3986 this.__js_helper$_current = null;
3987 return false;
3988 } else {
3989 this.__js_helper$_current = t1.hashMapCellKey;
3990 this.__js_helper$_cell = t1._next;
3991 return true;
3992 }
3993 }
3994 }
3995 },
3996 initHooks_closure: {
3997 "^": "Closure:0;_captured_getTag_0",
3998 call$1: function(o) {
3999 return this._captured_getTag_0(o);
4000 }
4001 },
4002 initHooks_closure0: {
4003 "^": "Closure:11;_captured_getUnknownTag_1",
4004 call$2: function(o, tag) {
4005 return this._captured_getUnknownTag_1(o, tag);
4006 }
4007 },
4008 initHooks_closure1: {
4009 "^": "Closure:12;_captured_prototypeForTag_2",
4010 call$1: function(tag) {
4011 return this._captured_prototypeForTag_2(tag);
4012 }
4013 },
4014 JSSyntaxRegExp: {
4015 "^": "Object;pattern,_nativeRegExp,_nativeGlobalRegExp,_nativeAnchoredRegE xp",
4016 toString$0: function(_) {
4017 return "RegExp/" + this.pattern + "/";
4018 },
4019 get$_nativeGlobalVersion: function() {
4020 var t1 = this._nativeGlobalRegExp;
4021 if (t1 != null)
4022 return t1;
4023 t1 = this._nativeRegExp;
4024 t1 = H.JSSyntaxRegExp_makeNative(this.pattern, t1.multiline, !t1.ignoreC ase, true);
4025 this._nativeGlobalRegExp = t1;
4026 return t1;
4027 },
4028 get$_nativeAnchoredVersion: function() {
4029 var t1 = this._nativeAnchoredRegExp;
4030 if (t1 != null)
4031 return t1;
4032 t1 = this._nativeRegExp;
4033 t1 = H.JSSyntaxRegExp_makeNative(this.pattern + "|()", t1.multiline, !t1 .ignoreCase, true);
4034 this._nativeAnchoredRegExp = t1;
4035 return t1;
4036 },
4037 allMatches$2: function(_, string, start) {
4038 H.checkString(string);
4039 H.checkInt(start);
4040 if (start > string.length)
4041 throw H.wrapException(P.RangeError$range(start, 0, string.length, null , null));
4042 return new H._AllMatchesIterable(this, string, start);
4043 },
4044 allMatches$1: function($receiver, string) {
4045 return this.allMatches$2($receiver, string, 0);
4046 },
4047 _execGlobal$2: function(string, start) {
4048 var regexp, match;
4049 regexp = this.get$_nativeGlobalVersion();
4050 regexp.lastIndex = start;
4051 match = regexp.exec(string);
4052 if (match == null)
4053 return;
4054 return H._MatchImplementation$(this, match);
4055 },
4056 _execAnchored$2: function(string, start) {
4057 var regexp, match, t1, t2;
4058 regexp = this.get$_nativeAnchoredVersion();
4059 regexp.lastIndex = start;
4060 match = regexp.exec(string);
4061 if (match == null)
4062 return;
4063 t1 = match.length;
4064 t2 = t1 - 1;
4065 if (t2 < 0)
4066 return H.ioore(match, t2);
4067 if (match[t2] != null)
4068 return;
4069 C.JSArray_methods.set$length(match, t2);
4070 return H._MatchImplementation$(this, match);
4071 },
4072 matchAsPrefix$2: function(_, string, start) {
4073 if (start < 0 || start > string.length)
4074 throw H.wrapException(P.RangeError$range(start, 0, string.length, null , null));
4075 return this._execAnchored$2(string, start);
4076 },
4077 $isPattern: 1,
4078 static: {JSSyntaxRegExp_makeNative: function(source, multiLine, caseSensit ive, global) {
4079 var m, i, g, regexp;
4080 H.checkString(source);
4081 m = multiLine ? "m" : "";
4082 i = caseSensitive ? "" : "i";
4083 g = global ? "g" : "";
4084 regexp = function() {
4085 try {
4086 return new RegExp(source, m + i + g);
4087 } catch (e) {
4088 return e;
4089 }
4090 }();
4091 if (regexp instanceof RegExp)
4092 return regexp;
4093 throw H.wrapException(new P.FormatException("Illegal RegExp pattern (" + String(regexp) + ")", source, null));
4094 }}
4095 },
4096 _MatchImplementation: {
4097 "^": "Object;pattern,_match",
4098 group$1: function(index) {
4099 var t1 = this._match;
4100 if (index >>> 0 !== index || index >= t1.length)
4101 return H.ioore(t1, index);
4102 return t1[index];
4103 },
4104 $index: function(_, index) {
4105 var t1 = this._match;
4106 if (index >>> 0 !== index || index >= t1.length)
4107 return H.ioore(t1, index);
4108 return t1[index];
4109 },
4110 _MatchImplementation$2: function(pattern, _match) {
4111 },
4112 static: {_MatchImplementation$: function(pattern, _match) {
4113 var t1 = new H._MatchImplementation(pattern, _match);
4114 t1._MatchImplementation$2(pattern, _match);
4115 return t1;
4116 }}
4117 },
4118 _AllMatchesIterable: {
4119 "^": "IterableBase;_re,_string,_start",
4120 get$iterator: function(_) {
4121 return new H._AllMatchesIterator(this._re, this._string, this._start, nu ll);
4122 },
4123 $asIterableBase: function() {
4124 return [P.Match];
4125 },
4126 $asIterable: function() {
4127 return [P.Match];
4128 }
4129 },
4130 _AllMatchesIterator: {
4131 "^": "Object;_regExp,_string,_nextIndex,__js_helper$_current",
4132 get$current: function() {
4133 return this.__js_helper$_current;
4134 },
4135 moveNext$0: function() {
4136 var t1, t2, match, t3, nextIndex;
4137 t1 = this._string;
4138 if (t1 == null)
4139 return false;
4140 t2 = this._nextIndex;
4141 if (t2 <= t1.length) {
4142 match = this._regExp._execGlobal$2(t1, t2);
4143 if (match != null) {
4144 this.__js_helper$_current = match;
4145 t1 = match._match;
4146 t2 = t1.index;
4147 if (0 >= t1.length)
4148 return H.ioore(t1, 0);
4149 t3 = J.get$length$asx(t1[0]);
4150 if (typeof t3 !== "number")
4151 return H.iae(t3);
4152 nextIndex = t2 + t3;
4153 this._nextIndex = t1.index === nextIndex ? nextIndex + 1 : nextIndex ;
4154 return true;
4155 }
4156 }
4157 this.__js_helper$_current = null;
4158 this._string = null;
4159 return false;
4160 }
4161 },
4162 StringMatch: {
4163 "^": "Object;start,input,pattern",
4164 $index: function(_, g) {
4165 return this.group$1(g);
4166 },
4167 group$1: function(group_) {
4168 if (group_ !== 0)
4169 throw H.wrapException(P.RangeError$value(group_, null, null));
4170 return this.pattern;
4171 }
4172 },
4173 _StringAllMatchesIterable: {
4174 "^": "Iterable;_input,_pattern,__js_helper$_index",
4175 get$iterator: function(_) {
4176 return new H._StringAllMatchesIterator(this._input, this._pattern, this. __js_helper$_index, null);
4177 },
4178 $asIterable: function() {
4179 return [P.Match];
4180 }
4181 },
4182 _StringAllMatchesIterator: {
4183 "^": "Object;_input,_pattern,__js_helper$_index,__js_helper$_current",
4184 moveNext$0: function() {
4185 var t1, t2, t3, t4, t5, index, end;
4186 t1 = this.__js_helper$_index;
4187 t2 = this._pattern;
4188 t3 = t2.length;
4189 t4 = this._input;
4190 t5 = t4.length;
4191 if (t1 + t3 > t5) {
4192 this.__js_helper$_current = null;
4193 return false;
4194 }
4195 index = t4.indexOf(t2, t1);
4196 if (index < 0) {
4197 this.__js_helper$_index = t5 + 1;
4198 this.__js_helper$_current = null;
4199 return false;
4200 }
4201 end = index + t3;
4202 this.__js_helper$_current = new H.StringMatch(index, t4, t2);
4203 this.__js_helper$_index = end === this.__js_helper$_index ? end + 1 : en d;
4204 return true;
4205 },
4206 get$current: function() {
4207 return this.__js_helper$_current;
4208 }
4209 }
4210 }], ["dart._internal", "dart:_internal",, H, {
4211 "^": "",
4212 IterableElementError_noElement: function() {
4213 return new P.StateError("No element");
4214 },
4215 IterableElementError_tooMany: function() {
4216 return new P.StateError("Too many elements");
4217 },
4218 IterableElementError_tooFew: function() {
4219 return new P.StateError("Too few elements");
4220 },
4221 Symbol_getName: function(symbol) {
4222 return symbol.get$_name();
4223 },
4224 CodeUnits: {
4225 "^": "UnmodifiableListBase;__internal$_string",
4226 get$length: function(_) {
4227 return this.__internal$_string.length;
4228 },
4229 $index: function(_, i) {
4230 return C.JSString_methods.codeUnitAt$1(this.__internal$_string, i);
4231 },
4232 $asUnmodifiableListBase: function() {
4233 return [P.$int];
4234 },
4235 $asListBase: function() {
4236 return [P.$int];
4237 },
4238 $asObject_ListMixin: function() {
4239 return [P.$int];
4240 },
4241 $asList: function() {
4242 return [P.$int];
4243 }
4244 },
4245 ListIterable: {
4246 "^": "Iterable;",
4247 get$iterator: function(_) {
4248 return H.setRuntimeTypeInfo(new H.ListIterator(this, this.get$length(thi s), 0, null), [H.getRuntimeTypeArgument(this, "ListIterable", 0)]);
4249 },
4250 forEach$1: function(_, action) {
4251 var $length, i;
4252 $length = this.get$length(this);
4253 for (i = 0; i < $length; ++i) {
4254 action.call$1(this.elementAt$1(0, i));
4255 if ($length !== this.get$length(this))
4256 throw H.wrapException(new P.ConcurrentModificationError(this));
4257 }
4258 },
4259 get$isEmpty: function(_) {
4260 return this.get$length(this) === 0;
4261 },
4262 get$last: function(_) {
4263 if (this.get$length(this) === 0)
4264 throw H.wrapException(H.IterableElementError_noElement());
4265 return this.elementAt$1(0, this.get$length(this) - 1);
4266 },
4267 contains$1: function(_, element) {
4268 var $length, i;
4269 $length = this.get$length(this);
4270 for (i = 0; i < $length; ++i) {
4271 if (J.$eq$(this.elementAt$1(0, i), element))
4272 return true;
4273 if ($length !== this.get$length(this))
4274 throw H.wrapException(new P.ConcurrentModificationError(this));
4275 }
4276 return false;
4277 },
4278 join$1: function(_, separator) {
4279 var $length, first, buffer, i, t1;
4280 $length = this.get$length(this);
4281 if (separator.length !== 0) {
4282 if ($length === 0)
4283 return "";
4284 first = H.S(this.elementAt$1(0, 0));
4285 if ($length !== this.get$length(this))
4286 throw H.wrapException(new P.ConcurrentModificationError(this));
4287 buffer = new P.StringBuffer(first);
4288 for (i = 1; i < $length; ++i) {
4289 buffer._contents += separator;
4290 buffer._contents += H.S(this.elementAt$1(0, i));
4291 if ($length !== this.get$length(this))
4292 throw H.wrapException(new P.ConcurrentModificationError(this));
4293 }
4294 t1 = buffer._contents;
4295 return t1.charCodeAt(0) == 0 ? t1 : t1;
4296 } else {
4297 buffer = new P.StringBuffer("");
4298 for (i = 0; i < $length; ++i) {
4299 buffer._contents += H.S(this.elementAt$1(0, i));
4300 if ($length !== this.get$length(this))
4301 throw H.wrapException(new P.ConcurrentModificationError(this));
4302 }
4303 t1 = buffer._contents;
4304 return t1.charCodeAt(0) == 0 ? t1 : t1;
4305 }
4306 },
4307 where$1: function(_, test) {
4308 return this.super$Iterable$where(this, test);
4309 },
4310 map$1: function(_, f) {
4311 return H.setRuntimeTypeInfo(new H.MappedListIterable(this, f), [null, nu ll]);
4312 },
4313 toList$1$growable: function(_, growable) {
4314 var result, i, t1;
4315 if (growable) {
4316 result = H.setRuntimeTypeInfo([], [H.getRuntimeTypeArgument(this, "Lis tIterable", 0)]);
4317 C.JSArray_methods.set$length(result, this.get$length(this));
4318 } else
4319 result = H.setRuntimeTypeInfo(new Array(this.get$length(this)), [H.get RuntimeTypeArgument(this, "ListIterable", 0)]);
4320 for (i = 0; i < this.get$length(this); ++i) {
4321 t1 = this.elementAt$1(0, i);
4322 if (i >= result.length)
4323 return H.ioore(result, i);
4324 result[i] = t1;
4325 }
4326 return result;
4327 },
4328 toList$0: function($receiver) {
4329 return this.toList$1$growable($receiver, true);
4330 },
4331 $isEfficientLength: 1
4332 },
4333 SubListIterable: {
4334 "^": "ListIterable;_iterable,__internal$_start,_endOrLength",
4335 get$_endIndex: function() {
4336 var $length, t1, t2;
4337 $length = J.get$length$asx(this._iterable);
4338 t1 = this._endOrLength;
4339 if (t1 != null) {
4340 if (typeof t1 !== "number")
4341 return t1.$gt();
4342 t2 = t1 > $length;
4343 } else
4344 t2 = true;
4345 if (t2)
4346 return $length;
4347 return t1;
4348 },
4349 get$_startIndex: function() {
4350 var $length, t1;
4351 $length = J.get$length$asx(this._iterable);
4352 t1 = this.__internal$_start;
4353 if (t1 > $length)
4354 return $length;
4355 return t1;
4356 },
4357 get$length: function(_) {
4358 var $length, t1, t2, t3;
4359 $length = J.get$length$asx(this._iterable);
4360 t1 = this.__internal$_start;
4361 if (t1 >= $length)
4362 return 0;
4363 t2 = this._endOrLength;
4364 if (t2 != null) {
4365 if (typeof t2 !== "number")
4366 return t2.$ge();
4367 t3 = t2 >= $length;
4368 } else
4369 t3 = true;
4370 if (t3)
4371 return $length - t1;
4372 if (typeof t2 !== "number")
4373 return t2.$sub();
4374 return t2 - t1;
4375 },
4376 elementAt$1: function(_, index) {
4377 var realIndex, t1;
4378 realIndex = this.get$_startIndex() + index;
4379 if (index >= 0) {
4380 t1 = this.get$_endIndex();
4381 if (typeof t1 !== "number")
4382 return H.iae(t1);
4383 t1 = realIndex >= t1;
4384 } else
4385 t1 = true;
4386 if (t1)
4387 throw H.wrapException(P.IndexError$(index, this, "index", null, null)) ;
4388 return J.elementAt$1$ax(this._iterable, realIndex);
4389 }
4390 },
4391 ListIterator: {
4392 "^": "Object;_iterable,__internal$_length,_index,__internal$_current",
4393 get$current: function() {
4394 return this.__internal$_current;
4395 },
4396 moveNext$0: function() {
4397 var t1, t2, $length, t3;
4398 t1 = this._iterable;
4399 t2 = J.getInterceptor$asx(t1);
4400 $length = t2.get$length(t1);
4401 if (this.__internal$_length !== $length)
4402 throw H.wrapException(new P.ConcurrentModificationError(t1));
4403 t3 = this._index;
4404 if (t3 >= $length) {
4405 this.__internal$_current = null;
4406 return false;
4407 }
4408 this.__internal$_current = t2.elementAt$1(t1, t3);
4409 ++this._index;
4410 return true;
4411 }
4412 },
4413 MappedIterable: {
4414 "^": "Iterable;_iterable,_f",
4415 get$iterator: function(_) {
4416 var t1 = new H.MappedIterator(null, J.get$iterator$ax(this._iterable), t his._f);
4417 t1.$builtinTypeInfo = this.$builtinTypeInfo;
4418 return t1;
4419 },
4420 get$length: function(_) {
4421 return J.get$length$asx(this._iterable);
4422 },
4423 get$isEmpty: function(_) {
4424 return J.get$isEmpty$asx(this._iterable);
4425 },
4426 get$last: function(_) {
4427 return this._f$1(J.get$last$ax(this._iterable));
4428 },
4429 _f$1: function(arg0) {
4430 return this._f.call$1(arg0);
4431 },
4432 $asIterable: function($S, $T) {
4433 return [$T];
4434 },
4435 static: {MappedIterable_MappedIterable: function(iterable, $function, $S, $T) {
4436 if (!!J.getInterceptor(iterable).$isEfficientLength)
4437 return H.setRuntimeTypeInfo(new H.EfficientLengthMappedIterable(iter able, $function), [$S, $T]);
4438 return H.setRuntimeTypeInfo(new H.MappedIterable(iterable, $function), [$S, $T]);
4439 }}
4440 },
4441 EfficientLengthMappedIterable: {
4442 "^": "MappedIterable;_iterable,_f",
4443 $isEfficientLength: 1
4444 },
4445 MappedIterator: {
4446 "^": "Iterator;__internal$_current,_iterator,_f",
4447 moveNext$0: function() {
4448 var t1 = this._iterator;
4449 if (t1.moveNext$0()) {
4450 this.__internal$_current = this._f$1(t1.get$current());
4451 return true;
4452 }
4453 this.__internal$_current = null;
4454 return false;
4455 },
4456 get$current: function() {
4457 return this.__internal$_current;
4458 },
4459 _f$1: function(arg0) {
4460 return this._f.call$1(arg0);
4461 },
4462 $asIterator: function($S, $T) {
4463 return [$T];
4464 }
4465 },
4466 MappedListIterable: {
4467 "^": "ListIterable;_source,_f",
4468 get$length: function(_) {
4469 return J.get$length$asx(this._source);
4470 },
4471 elementAt$1: function(_, index) {
4472 return this._f$1(J.elementAt$1$ax(this._source, index));
4473 },
4474 _f$1: function(arg0) {
4475 return this._f.call$1(arg0);
4476 },
4477 $asListIterable: function($S, $T) {
4478 return [$T];
4479 },
4480 $asIterable: function($S, $T) {
4481 return [$T];
4482 },
4483 $isEfficientLength: 1
4484 },
4485 WhereIterable: {
4486 "^": "Iterable;_iterable,_f",
4487 get$iterator: function(_) {
4488 var t1 = new H.WhereIterator(J.get$iterator$ax(this._iterable), this._f) ;
4489 t1.$builtinTypeInfo = this.$builtinTypeInfo;
4490 return t1;
4491 }
4492 },
4493 WhereIterator: {
4494 "^": "Iterator;_iterator,_f",
4495 moveNext$0: function() {
4496 for (var t1 = this._iterator; t1.moveNext$0();)
4497 if (this._f$1(t1.get$current()) === true)
4498 return true;
4499 return false;
4500 },
4501 get$current: function() {
4502 return this._iterator.get$current();
4503 },
4504 _f$1: function(arg0) {
4505 return this._f.call$1(arg0);
4506 }
4507 },
4508 FixedLengthListMixin: {
4509 "^": "Object;",
4510 set$length: function(receiver, newLength) {
4511 throw H.wrapException(new P.UnsupportedError("Cannot change the length o f a fixed-length list"));
4512 },
4513 add$1: function(receiver, value) {
4514 throw H.wrapException(new P.UnsupportedError("Cannot add to a fixed-leng th list"));
4515 }
4516 },
4517 UnmodifiableListMixin: {
4518 "^": "Object;",
4519 $indexSet: function(_, index, value) {
4520 throw H.wrapException(new P.UnsupportedError("Cannot modify an unmodifia ble list"));
4521 },
4522 set$length: function(_, newLength) {
4523 throw H.wrapException(new P.UnsupportedError("Cannot change the length o f an unmodifiable list"));
4524 },
4525 add$1: function(_, value) {
4526 throw H.wrapException(new P.UnsupportedError("Cannot add to an unmodifia ble list"));
4527 },
4528 $isList: 1,
4529 $asList: null,
4530 $isEfficientLength: 1
4531 },
4532 UnmodifiableListBase: {
4533 "^": "ListBase+UnmodifiableListMixin;",
4534 $isList: 1,
4535 $asList: null,
4536 $isEfficientLength: 1
4537 }
4538 }], ["dart._js_names", "dart:_js_names",, H, {
4539 "^": "",
4540 extractKeys: function(victim) {
4541 var t1 = H.setRuntimeTypeInfo(victim ? Object.keys(victim) : [], [null]);
4542 t1.fixed$length = Array;
4543 return t1;
4544 }
4545 }], ["dart.async", "dart:async",, P, {
4546 "^": "",
4547 _AsyncRun__initializeScheduleImmediate: function() {
4548 var t1, div, span;
4549 t1 = {};
4550 if (self.scheduleImmediate != null)
4551 return P.async__AsyncRun__scheduleImmediateJsOverride$closure();
4552 if (self.MutationObserver != null && self.document != null) {
4553 div = self.document.createElement("div");
4554 span = self.document.createElement("span");
4555 t1._captured_storedCallback_0 = null;
4556 new self.MutationObserver(H.convertDartClosureToJS(new P._AsyncRun__init ializeScheduleImmediate_internalCallback(t1), 1)).observe(div, {childList: true} );
4557 return new P._AsyncRun__initializeScheduleImmediate_closure(t1, div, spa n);
4558 } else if (self.setImmediate != null)
4559 return P.async__AsyncRun__scheduleImmediateWithSetImmediate$closure();
4560 return P.async__AsyncRun__scheduleImmediateWithTimer$closure();
4561 },
4562 _AsyncRun__scheduleImmediateJsOverride: [function(callback) {
4563 ++init.globalState.topEventLoop._activeJsAsyncCount;
4564 self.scheduleImmediate(H.convertDartClosureToJS(new P._AsyncRun__scheduleI mmediateJsOverride_internalCallback(callback), 0));
4565 }, "call$1", "async__AsyncRun__scheduleImmediateJsOverride$closure", 2, 0, 4 ],
4566 _AsyncRun__scheduleImmediateWithSetImmediate: [function(callback) {
4567 ++init.globalState.topEventLoop._activeJsAsyncCount;
4568 self.setImmediate(H.convertDartClosureToJS(new P._AsyncRun__scheduleImmedi ateWithSetImmediate_internalCallback(callback), 0));
4569 }, "call$1", "async__AsyncRun__scheduleImmediateWithSetImmediate$closure", 2 , 0, 4],
4570 _AsyncRun__scheduleImmediateWithTimer: [function(callback) {
4571 P.Timer__createTimer(C.Duration_0, callback);
4572 }, "call$1", "async__AsyncRun__scheduleImmediateWithTimer$closure", 2, 0, 4] ,
4573 _asyncHelper: function(object, bodyFunctionOrErrorCode, completer) {
4574 if (bodyFunctionOrErrorCode === 0) {
4575 J.complete$1$x(completer, object);
4576 return;
4577 } else if (bodyFunctionOrErrorCode === 1) {
4578 completer.completeError$2(H.unwrapException(object), H.getTraceFromExcep tion(object));
4579 return;
4580 }
4581 P._awaitOnObject(object, bodyFunctionOrErrorCode);
4582 return completer.get$future();
4583 },
4584 _awaitOnObject: function(object, bodyFunction) {
4585 var thenCallback, errorCallback, t1, future;
4586 thenCallback = new P._awaitOnObject_closure(bodyFunction);
4587 errorCallback = new P._awaitOnObject_closure0(bodyFunction);
4588 t1 = J.getInterceptor(object);
4589 if (!!t1.$is_Future)
4590 object._thenNoZoneRegistration$2(thenCallback, errorCallback);
4591 else if (!!t1.$isFuture)
4592 object.then$2$onError(thenCallback, errorCallback);
4593 else {
4594 future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [ null]);
4595 future._setValue$1(object);
4596 future._thenNoZoneRegistration$2(thenCallback, null);
4597 }
4598 },
4599 _wrapJsFunctionForAsync: function($function) {
4600 var $protected = function(errorCode, result) {
4601 while (true)
4602 try {
4603 $function(errorCode, result);
4604 break;
4605 } catch (error) {
4606 result = error;
4607 errorCode = 1;
4608 }
4609 };
4610 $.Zone__current.toString;
4611 return new P._wrapJsFunctionForAsync_closure($protected);
4612 },
4613 _registerErrorHandler: function(errorHandler, zone) {
4614 var t1 = H.getDynamicRuntimeType();
4615 t1 = H.buildFunctionType(t1, [t1, t1])._isTest$1(errorHandler);
4616 if (t1) {
4617 zone.toString;
4618 return errorHandler;
4619 } else {
4620 zone.toString;
4621 return errorHandler;
4622 }
4623 },
4624 Completer_Completer$sync: function($T) {
4625 return H.setRuntimeTypeInfo(new P._SyncCompleter(H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [$T])), [$T]);
4626 },
4627 _completeWithErrorCallback: function(result, error, stackTrace) {
4628 $.Zone__current.toString;
4629 result._completeError$2(error, stackTrace);
4630 },
4631 _microtaskLoop: function() {
4632 var t1, t2;
4633 for (; t1 = $._nextCallback, t1 != null;) {
4634 $._lastPriorityCallback = null;
4635 t2 = t1.next;
4636 $._nextCallback = t2;
4637 if (t2 == null)
4638 $._lastCallback = null;
4639 $.Zone__current = t1.zone;
4640 t1.callback$0();
4641 }
4642 },
4643 _microtaskLoopEntry: [function() {
4644 $._isInCallbackLoop = true;
4645 try {
4646 P._microtaskLoop();
4647 } finally {
4648 $.Zone__current = C.C__RootZone;
4649 $._lastPriorityCallback = null;
4650 $._isInCallbackLoop = false;
4651 if ($._nextCallback != null)
4652 $.$get$_AsyncRun_scheduleImmediateClosure().call$1(P.async___microtask LoopEntry$closure());
4653 }
4654 }, "call$0", "async___microtaskLoopEntry$closure", 0, 0, 2],
4655 _scheduleAsyncCallback: function(newEntry) {
4656 if ($._nextCallback == null) {
4657 $._lastCallback = newEntry;
4658 $._nextCallback = newEntry;
4659 if (!$._isInCallbackLoop)
4660 $.$get$_AsyncRun_scheduleImmediateClosure().call$1(P.async___microtask LoopEntry$closure());
4661 } else {
4662 $._lastCallback.next = newEntry;
4663 $._lastCallback = newEntry;
4664 }
4665 },
4666 scheduleMicrotask: function(callback) {
4667 var currentZone, t1;
4668 currentZone = $.Zone__current;
4669 if (C.C__RootZone === currentZone) {
4670 P._rootScheduleMicrotask(null, null, C.C__RootZone, callback);
4671 return;
4672 }
4673 currentZone.toString;
4674 if (C.C__RootZone.get$errorZone() === currentZone) {
4675 P._rootScheduleMicrotask(null, null, currentZone, callback);
4676 return;
4677 }
4678 t1 = $.Zone__current;
4679 P._rootScheduleMicrotask(null, null, t1, t1.bindCallback$2$runGuarded(call back, true));
4680 },
4681 StreamIterator_StreamIterator: function(stream, $T) {
4682 var t1, t2, t3;
4683 t1 = H.setRuntimeTypeInfo(new P._StreamIteratorImpl(null, null, null, 0), [$T]);
4684 t2 = t1.get$_async$_onData();
4685 t3 = t1.get$_onError();
4686 t1._subscription = stream.listen$4$cancelOnError$onDone$onError(t2, true, t1.get$_onDone(), t3);
4687 return t1;
4688 },
4689 _runUserCode: function(userCode, onSuccess, onError) {
4690 var e, s, replacement, error, stackTrace, exception, t1;
4691 try {
4692 onSuccess.call$1(userCode.call$0());
4693 } catch (exception) {
4694 t1 = H.unwrapException(exception);
4695 e = t1;
4696 s = H.getTraceFromException(exception);
4697 $.Zone__current.toString;
4698 replacement = null;
4699 if (replacement == null)
4700 onError.call$2(e, s);
4701 else {
4702 t1 = J.get$error$x(replacement);
4703 error = t1;
4704 stackTrace = replacement.get$stackTrace();
4705 onError.call$2(error, stackTrace);
4706 }
4707 }
4708 },
4709 _cancelAndError: function(subscription, future, error, stackTrace) {
4710 var cancelFuture = subscription.cancel$0();
4711 if (!!J.getInterceptor(cancelFuture).$isFuture)
4712 cancelFuture.whenComplete$1(new P._cancelAndError_closure(future, error, stackTrace));
4713 else
4714 future._completeError$2(error, stackTrace);
4715 },
4716 _cancelAndErrorClosure: function(subscription, future) {
4717 return new P._cancelAndErrorClosure_closure(subscription, future);
4718 },
4719 _cancelAndValue: function(subscription, future, value) {
4720 var cancelFuture = subscription.cancel$0();
4721 if (!!J.getInterceptor(cancelFuture).$isFuture)
4722 cancelFuture.whenComplete$1(new P._cancelAndValue_closure(future, value) );
4723 else
4724 future._complete$1(value);
4725 },
4726 _addErrorWithReplacement: function(sink, error, stackTrace) {
4727 $.Zone__current.toString;
4728 sink._addError$2(error, stackTrace);
4729 },
4730 Timer_Timer: function(duration, callback) {
4731 var t1 = $.Zone__current;
4732 if (t1 === C.C__RootZone) {
4733 t1.toString;
4734 return P.Timer__createTimer(duration, callback);
4735 }
4736 return P.Timer__createTimer(duration, t1.bindCallback$2$runGuarded(callbac k, true));
4737 },
4738 Timer__createTimer: function(duration, callback) {
4739 var milliseconds = C.JSInt_methods._tdivFast$1(duration._duration, 1000);
4740 return H.TimerImpl$(milliseconds < 0 ? 0 : milliseconds, callback);
4741 },
4742 Zone__enter: function(zone) {
4743 var previous = $.Zone__current;
4744 $.Zone__current = zone;
4745 return previous;
4746 },
4747 _rootHandleUncaughtError: function($self, $parent, zone, error, stackTrace) {
4748 var entry, t1, t2;
4749 entry = new P._AsyncCallbackEntry(new P._rootHandleUncaughtError_closure(e rror, stackTrace), C.C__RootZone, null);
4750 t1 = $._nextCallback;
4751 if (t1 == null) {
4752 P._scheduleAsyncCallback(entry);
4753 $._lastPriorityCallback = $._lastCallback;
4754 } else {
4755 t2 = $._lastPriorityCallback;
4756 if (t2 == null) {
4757 entry.next = t1;
4758 $._lastPriorityCallback = entry;
4759 $._nextCallback = entry;
4760 } else {
4761 entry.next = t2.next;
4762 t2.next = entry;
4763 $._lastPriorityCallback = entry;
4764 if (entry.next == null)
4765 $._lastCallback = entry;
4766 }
4767 }
4768 },
4769 _rootRun: function($self, $parent, zone, f) {
4770 var old, t1;
4771 if ($.Zone__current === zone)
4772 return f.call$0();
4773 old = P.Zone__enter(zone);
4774 try {
4775 t1 = f.call$0();
4776 return t1;
4777 } finally {
4778 $.Zone__current = old;
4779 }
4780 },
4781 _rootRunUnary: function($self, $parent, zone, f, arg) {
4782 var old, t1;
4783 if ($.Zone__current === zone)
4784 return f.call$1(arg);
4785 old = P.Zone__enter(zone);
4786 try {
4787 t1 = f.call$1(arg);
4788 return t1;
4789 } finally {
4790 $.Zone__current = old;
4791 }
4792 },
4793 _rootRunBinary: function($self, $parent, zone, f, arg1, arg2) {
4794 var old, t1;
4795 if ($.Zone__current === zone)
4796 return f.call$2(arg1, arg2);
4797 old = P.Zone__enter(zone);
4798 try {
4799 t1 = f.call$2(arg1, arg2);
4800 return t1;
4801 } finally {
4802 $.Zone__current = old;
4803 }
4804 },
4805 _rootScheduleMicrotask: function($self, $parent, zone, f) {
4806 var t1 = C.C__RootZone !== zone;
4807 if (t1) {
4808 f = zone.bindCallback$2$runGuarded(f, !(!t1 || C.C__RootZone.get$errorZo ne() === zone));
4809 zone = C.C__RootZone;
4810 }
4811 P._scheduleAsyncCallback(new P._AsyncCallbackEntry(f, zone, null));
4812 },
4813 _AsyncRun__initializeScheduleImmediate_internalCallback: {
4814 "^": "Closure:0;_box_0",
4815 call$1: function(_) {
4816 var t1, f;
4817 H.leaveJsAsync();
4818 t1 = this._box_0;
4819 f = t1._captured_storedCallback_0;
4820 t1._captured_storedCallback_0 = null;
4821 f.call$0();
4822 }
4823 },
4824 _AsyncRun__initializeScheduleImmediate_closure: {
4825 "^": "Closure:13;_box_0,_captured_div_1,_captured_span_2",
4826 call$1: function(callback) {
4827 var t1, t2;
4828 ++init.globalState.topEventLoop._activeJsAsyncCount;
4829 this._box_0._captured_storedCallback_0 = callback;
4830 t1 = this._captured_div_1;
4831 t2 = this._captured_span_2;
4832 t1.firstChild ? t1.removeChild(t2) : t1.appendChild(t2);
4833 }
4834 },
4835 _AsyncRun__scheduleImmediateJsOverride_internalCallback: {
4836 "^": "Closure:1;_captured_callback_0",
4837 call$0: function() {
4838 H.leaveJsAsync();
4839 this._captured_callback_0.call$0();
4840 }
4841 },
4842 _AsyncRun__scheduleImmediateWithSetImmediate_internalCallback: {
4843 "^": "Closure:1;_captured_callback_0",
4844 call$0: function() {
4845 H.leaveJsAsync();
4846 this._captured_callback_0.call$0();
4847 }
4848 },
4849 _awaitOnObject_closure: {
4850 "^": "Closure:0;_captured_bodyFunction_0",
4851 call$1: function(result) {
4852 return this._captured_bodyFunction_0.call$2(0, result);
4853 }
4854 },
4855 _awaitOnObject_closure0: {
4856 "^": "Closure:5;_captured_bodyFunction_1",
4857 call$2: function(error, stackTrace) {
4858 this._captured_bodyFunction_1.call$2(1, new H.ExceptionAndStackTrace(err or, stackTrace));
4859 }
4860 },
4861 _wrapJsFunctionForAsync_closure: {
4862 "^": "Closure:14;_captured_protected_0",
4863 call$2: function(errorCode, result) {
4864 this._captured_protected_0(errorCode, result);
4865 }
4866 },
4867 _UncaughtAsyncError: {
4868 "^": "AsyncError;error,stackTrace",
4869 toString$0: function(_) {
4870 var result, t1;
4871 result = "Uncaught Error: " + H.S(this.error);
4872 t1 = this.stackTrace;
4873 return t1 != null ? result + ("\nStack Trace:\n" + H.S(t1)) : result;
4874 },
4875 static: {_UncaughtAsyncError__getBestStackTrace: function(error, stackTrac e) {
4876 if (stackTrace != null)
4877 return stackTrace;
4878 if (!!J.getInterceptor(error).$isError)
4879 return error.get$stackTrace();
4880 return;
4881 }}
4882 },
4883 Future: {
4884 "^": "Object;"
4885 },
4886 _Completer: {
4887 "^": "Object;future<",
4888 completeError$2: [function(error, stackTrace) {
4889 error = error != null ? error : new P.NullThrownError();
4890 if (this.future._state !== 0)
4891 throw H.wrapException(new P.StateError("Future already completed"));
4892 $.Zone__current.toString;
4893 this._completeError$2(error, stackTrace);
4894 }, function(error) {
4895 return this.completeError$2(error, null);
4896 }, "completeError$1", "call$2", "call$1", "get$completeError", 2, 2, 6, 0]
4897 },
4898 _AsyncCompleter: {
4899 "^": "_Completer;future",
4900 complete$1: function(_, value) {
4901 var t1 = this.future;
4902 if (t1._state !== 0)
4903 throw H.wrapException(new P.StateError("Future already completed"));
4904 t1._asyncComplete$1(value);
4905 },
4906 _completeError$2: function(error, stackTrace) {
4907 this.future._asyncCompleteError$2(error, stackTrace);
4908 }
4909 },
4910 _SyncCompleter: {
4911 "^": "_Completer;future",
4912 complete$1: function(_, value) {
4913 var t1 = this.future;
4914 if (t1._state !== 0)
4915 throw H.wrapException(new P.StateError("Future already completed"));
4916 t1._complete$1(value);
4917 },
4918 _completeError$2: function(error, stackTrace) {
4919 this.future._completeError$2(error, stackTrace);
4920 }
4921 },
4922 _FutureListener: {
4923 "^": "Object;_nextListener<,result>,state,callback,errorCallback",
4924 get$_zone: function() {
4925 return this.result._zone;
4926 },
4927 get$handlesValue: function() {
4928 return (this.state & 1) !== 0;
4929 },
4930 get$hasErrorTest: function() {
4931 return this.state === 6;
4932 },
4933 get$handlesComplete: function() {
4934 return this.state === 8;
4935 },
4936 get$_onValue: function() {
4937 return this.callback;
4938 },
4939 get$_whenCompleteAction: function() {
4940 return this.callback;
4941 }
4942 },
4943 _Future: {
4944 "^": "Object;_state?,_zone<,_resultOrListeners",
4945 get$_hasError: function() {
4946 return this._state === 8;
4947 },
4948 set$_isChained: function(value) {
4949 if (value)
4950 this._state = 2;
4951 else
4952 this._state = 0;
4953 },
4954 then$2$onError: function(f, onError) {
4955 var currentZone = $.Zone__current;
4956 if (currentZone !== C.C__RootZone) {
4957 currentZone.toString;
4958 if (onError != null)
4959 onError = P._registerErrorHandler(onError, currentZone);
4960 }
4961 return this._thenNoZoneRegistration$2(f, onError);
4962 },
4963 then$1: function(f) {
4964 return this.then$2$onError(f, null);
4965 },
4966 _thenNoZoneRegistration$2: function(f, onError) {
4967 var result = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null ), [null]);
4968 this._addListener$1(new P._FutureListener(null, result, onError == null ? 1 : 3, f, onError));
4969 return result;
4970 },
4971 whenComplete$1: function(action) {
4972 var t1, result;
4973 t1 = $.Zone__current;
4974 result = new P._Future(0, t1, null);
4975 result.$builtinTypeInfo = this.$builtinTypeInfo;
4976 if (t1 !== C.C__RootZone)
4977 t1.toString;
4978 this._addListener$1(new P._FutureListener(null, result, 8, action, null) );
4979 return result;
4980 },
4981 _markPendingCompletion$0: function() {
4982 if (this._state !== 0)
4983 throw H.wrapException(new P.StateError("Future already completed"));
4984 this._state = 1;
4985 },
4986 get$_value: function() {
4987 return this._resultOrListeners;
4988 },
4989 get$_error: function() {
4990 return this._resultOrListeners;
4991 },
4992 _setValue$1: function(value) {
4993 this._state = 4;
4994 this._resultOrListeners = value;
4995 },
4996 _setErrorObject$1: function(error) {
4997 this._state = 8;
4998 this._resultOrListeners = error;
4999 },
5000 _setError$2: function(error, stackTrace) {
5001 this._setErrorObject$1(new P.AsyncError(error, stackTrace));
5002 },
5003 _addListener$1: function(listener) {
5004 var t1;
5005 if (this._state >= 4) {
5006 t1 = this._zone;
5007 t1.toString;
5008 P._rootScheduleMicrotask(null, null, t1, new P._Future__addListener_cl osure(this, listener));
5009 } else {
5010 listener._nextListener = this._resultOrListeners;
5011 this._resultOrListeners = listener;
5012 }
5013 },
5014 _removeListeners$0: function() {
5015 var current, prev, next;
5016 current = this._resultOrListeners;
5017 this._resultOrListeners = null;
5018 for (prev = null; current != null; prev = current, current = next) {
5019 next = current.get$_nextListener();
5020 current._nextListener = prev;
5021 }
5022 return prev;
5023 },
5024 _complete$1: function(value) {
5025 var t1, listeners;
5026 t1 = J.getInterceptor(value);
5027 if (!!t1.$isFuture)
5028 if (!!t1.$is_Future)
5029 P._Future__chainCoreFuture(value, this);
5030 else
5031 P._Future__chainForeignFuture(value, this);
5032 else {
5033 listeners = this._removeListeners$0();
5034 this._setValue$1(value);
5035 P._Future__propagateToListeners(this, listeners);
5036 }
5037 },
5038 _completeWithValue$1: function(value) {
5039 var listeners = this._removeListeners$0();
5040 this._setValue$1(value);
5041 P._Future__propagateToListeners(this, listeners);
5042 },
5043 _completeError$2: [function(error, stackTrace) {
5044 var listeners = this._removeListeners$0();
5045 this._setErrorObject$1(new P.AsyncError(error, stackTrace));
5046 P._Future__propagateToListeners(this, listeners);
5047 }, function(error) {
5048 return this._completeError$2(error, null);
5049 }, "_completeError$1", "call$2", "call$1", "get$_completeError", 2, 2, 15, 0],
5050 _asyncComplete$1: function(value) {
5051 var t1;
5052 if (value == null)
5053 ;
5054 else {
5055 t1 = J.getInterceptor(value);
5056 if (!!t1.$isFuture) {
5057 if (!!t1.$is_Future) {
5058 t1 = value._state;
5059 if (t1 >= 4 && t1 === 8) {
5060 this._markPendingCompletion$0();
5061 t1 = this._zone;
5062 t1.toString;
5063 P._rootScheduleMicrotask(null, null, t1, new P._Future__asyncCom plete_closure(this, value));
5064 } else
5065 P._Future__chainCoreFuture(value, this);
5066 } else
5067 P._Future__chainForeignFuture(value, this);
5068 return;
5069 }
5070 }
5071 this._markPendingCompletion$0();
5072 t1 = this._zone;
5073 t1.toString;
5074 P._rootScheduleMicrotask(null, null, t1, new P._Future__asyncComplete_cl osure0(this, value));
5075 },
5076 _asyncCompleteError$2: function(error, stackTrace) {
5077 var t1;
5078 this._markPendingCompletion$0();
5079 t1 = this._zone;
5080 t1.toString;
5081 P._rootScheduleMicrotask(null, null, t1, new P._Future__asyncCompleteErr or_closure(this, error, stackTrace));
5082 },
5083 $isFuture: 1,
5084 static: {_Future__chainForeignFuture: function(source, target) {
5085 var e, s, exception, t1;
5086 target.set$_state(2);
5087 try {
5088 source.then$2$onError(new P._Future__chainForeignFuture_closure(targ et), new P._Future__chainForeignFuture_closure0(target));
5089 } catch (exception) {
5090 t1 = H.unwrapException(exception);
5091 e = t1;
5092 s = H.getTraceFromException(exception);
5093 P.scheduleMicrotask(new P._Future__chainForeignFuture_closure1(targe t, e, s));
5094 }
5095 }, _Future__chainCoreFuture: function(source, target) {
5096 var listener;
5097 target._state = 2;
5098 listener = new P._FutureListener(null, target, 0, null, null);
5099 if (source._state >= 4)
5100 P._Future__propagateToListeners(source, listener);
5101 else
5102 source._addListener$1(listener);
5103 }, _Future__propagateToListeners: function(source, listeners) {
5104 var t1, t2, t3, hasError, asyncError, t4, listeners0, sourceValue, zon e, oldZone, chainSource, result;
5105 t1 = {};
5106 t1._captured_source_4 = source;
5107 for (t2 = source; true;) {
5108 t3 = {};
5109 hasError = t2.get$_hasError();
5110 if (listeners == null) {
5111 if (hasError) {
5112 asyncError = t1._captured_source_4.get$_error();
5113 t2 = t1._captured_source_4.get$_zone();
5114 t3 = J.get$error$x(asyncError);
5115 t4 = asyncError.get$stackTrace();
5116 t2.toString;
5117 P._rootHandleUncaughtError(null, null, t2, t3, t4);
5118 }
5119 return;
5120 }
5121 for (; listeners.get$_nextListener() != null; listeners = listeners0 ) {
5122 listeners0 = listeners._nextListener;
5123 listeners._nextListener = null;
5124 P._Future__propagateToListeners(t1._captured_source_4, listeners);
5125 }
5126 t3._captured_listenerHasValue_1 = true;
5127 sourceValue = hasError ? null : t1._captured_source_4.get$_value();
5128 t3._captured_listenerValueOrError_2 = sourceValue;
5129 t3._captured_isPropagationAborted_3 = false;
5130 t2 = !hasError;
5131 if (!t2 || listeners.get$handlesValue() || listeners.state === 8) {
5132 zone = listeners.get$_zone();
5133 if (hasError) {
5134 t4 = t1._captured_source_4.get$_zone();
5135 t4.toString;
5136 if (t4 == null ? zone != null : t4 !== zone) {
5137 t4 = t4.get$errorZone();
5138 zone.toString;
5139 t4 = t4 === zone;
5140 } else
5141 t4 = true;
5142 t4 = !t4;
5143 } else
5144 t4 = false;
5145 if (t4) {
5146 asyncError = t1._captured_source_4.get$_error();
5147 t2 = t1._captured_source_4.get$_zone();
5148 t3 = J.get$error$x(asyncError);
5149 t4 = asyncError.get$stackTrace();
5150 t2.toString;
5151 P._rootHandleUncaughtError(null, null, t2, t3, t4);
5152 return;
5153 }
5154 oldZone = $.Zone__current;
5155 if (oldZone == null ? zone != null : oldZone !== zone)
5156 $.Zone__current = zone;
5157 else
5158 oldZone = null;
5159 if (t2) {
5160 if (listeners.get$handlesValue())
5161 t3._captured_listenerHasValue_1 = new P._Future__propagateToLi steners_handleValueCallback(t3, listeners, sourceValue, zone).call$0();
5162 } else
5163 new P._Future__propagateToListeners_handleError(t1, t3, listener s, zone).call$0();
5164 if (listeners.get$handlesComplete())
5165 new P._Future__propagateToListeners_handleWhenCompleteCallback(t 1, t3, hasError, listeners, zone).call$0();
5166 if (oldZone != null)
5167 $.Zone__current = oldZone;
5168 if (t3._captured_isPropagationAborted_3)
5169 return;
5170 if (t3._captured_listenerHasValue_1 === true) {
5171 t2 = t3._captured_listenerValueOrError_2;
5172 t2 = (sourceValue == null ? t2 != null : sourceValue !== t2) && !!J.getInterceptor(t2).$isFuture;
5173 } else
5174 t2 = false;
5175 if (t2) {
5176 chainSource = t3._captured_listenerValueOrError_2;
5177 result = listeners.result;
5178 if (chainSource instanceof P._Future)
5179 if (chainSource._state >= 4) {
5180 result._state = 2;
5181 t1._captured_source_4 = chainSource;
5182 listeners = new P._FutureListener(null, result, 0, null, nul l);
5183 t2 = chainSource;
5184 continue;
5185 } else
5186 P._Future__chainCoreFuture(chainSource, result);
5187 else
5188 P._Future__chainForeignFuture(chainSource, result);
5189 return;
5190 }
5191 }
5192 result = listeners.result;
5193 listeners = result._removeListeners$0();
5194 t2 = t3._captured_listenerHasValue_1;
5195 t3 = t3._captured_listenerValueOrError_2;
5196 if (t2 === true) {
5197 result._state = 4;
5198 result._resultOrListeners = t3;
5199 } else {
5200 result._state = 8;
5201 result._resultOrListeners = t3;
5202 }
5203 t1._captured_source_4 = result;
5204 t2 = result;
5205 }
5206 }}
5207 },
5208 _Future__addListener_closure: {
5209 "^": "Closure:1;_captured_this_0,_captured_listener_1",
5210 call$0: function() {
5211 P._Future__propagateToListeners(this._captured_this_0, this._captured_li stener_1);
5212 }
5213 },
5214 _Future__chainForeignFuture_closure: {
5215 "^": "Closure:0;_captured_target_0",
5216 call$1: function(value) {
5217 this._captured_target_0._completeWithValue$1(value);
5218 }
5219 },
5220 _Future__chainForeignFuture_closure0: {
5221 "^": "Closure:7;_captured_target_1",
5222 call$2: function(error, stackTrace) {
5223 this._captured_target_1._completeError$2(error, stackTrace);
5224 },
5225 call$1: function(error) {
5226 return this.call$2(error, null);
5227 }
5228 },
5229 _Future__chainForeignFuture_closure1: {
5230 "^": "Closure:1;_captured_target_2,_captured_e_3,_captured_s_4",
5231 call$0: function() {
5232 this._captured_target_2._completeError$2(this._captured_e_3, this._captu red_s_4);
5233 }
5234 },
5235 _Future__asyncComplete_closure: {
5236 "^": "Closure:1;_captured_this_0,_captured_coreFuture_1",
5237 call$0: function() {
5238 P._Future__chainCoreFuture(this._captured_coreFuture_1, this._captured_t his_0);
5239 }
5240 },
5241 _Future__asyncComplete_closure0: {
5242 "^": "Closure:1;_captured_this_2,_captured_value_3",
5243 call$0: function() {
5244 this._captured_this_2._completeWithValue$1(this._captured_value_3);
5245 }
5246 },
5247 _Future__asyncCompleteError_closure: {
5248 "^": "Closure:1;_captured_this_0,_captured_error_1,_captured_stackTrace_2" ,
5249 call$0: function() {
5250 this._captured_this_0._completeError$2(this._captured_error_1, this._cap tured_stackTrace_2);
5251 }
5252 },
5253 _Future__propagateToListeners_handleValueCallback: {
5254 "^": "Closure:16;_box_1,_captured_listener_3,_captured_sourceValue_4,_capt ured_zone_5",
5255 call$0: function() {
5256 var e, s, exception, t1;
5257 try {
5258 this._box_1._captured_listenerValueOrError_2 = this._captured_zone_5.r unUnary$2(this._captured_listener_3.get$_onValue(), this._captured_sourceValue_4 );
5259 return true;
5260 } catch (exception) {
5261 t1 = H.unwrapException(exception);
5262 e = t1;
5263 s = H.getTraceFromException(exception);
5264 this._box_1._captured_listenerValueOrError_2 = new P.AsyncError(e, s);
5265 return false;
5266 }
5267 }
5268 },
5269 _Future__propagateToListeners_handleError: {
5270 "^": "Closure:2;_box_2,_box_1,_captured_listener_6,_captured_zone_7",
5271 call$0: function() {
5272 var asyncError, matchesTest, test, e, s, errorCallback, e0, s0, t1, exce ption, t2, listenerValueOrError, t3, t4;
5273 asyncError = this._box_2._captured_source_4.get$_error();
5274 matchesTest = true;
5275 t1 = this._captured_listener_6;
5276 if (t1.get$hasErrorTest()) {
5277 test = t1.callback;
5278 try {
5279 matchesTest = this._captured_zone_7.runUnary$2(test, J.get$error$x(a syncError));
5280 } catch (exception) {
5281 t1 = H.unwrapException(exception);
5282 e = t1;
5283 s = H.getTraceFromException(exception);
5284 t1 = J.get$error$x(asyncError);
5285 t2 = e;
5286 listenerValueOrError = (t1 == null ? t2 == null : t1 === t2) ? async Error : new P.AsyncError(e, s);
5287 t1 = this._box_1;
5288 t1._captured_listenerValueOrError_2 = listenerValueOrError;
5289 t1._captured_listenerHasValue_1 = false;
5290 return;
5291 }
5292 }
5293 errorCallback = t1.errorCallback;
5294 if (matchesTest === true && errorCallback != null) {
5295 try {
5296 t1 = errorCallback;
5297 t2 = H.getDynamicRuntimeType();
5298 t2 = H.buildFunctionType(t2, [t2, t2])._isTest$1(t1);
5299 t3 = this._captured_zone_7;
5300 t4 = this._box_1;
5301 if (t2)
5302 t4._captured_listenerValueOrError_2 = t3.runBinary$3(errorCallback , J.get$error$x(asyncError), asyncError.get$stackTrace());
5303 else
5304 t4._captured_listenerValueOrError_2 = t3.runUnary$2(errorCallback, J.get$error$x(asyncError));
5305 } catch (exception) {
5306 t1 = H.unwrapException(exception);
5307 e0 = t1;
5308 s0 = H.getTraceFromException(exception);
5309 t1 = J.get$error$x(asyncError);
5310 t2 = e0;
5311 listenerValueOrError = (t1 == null ? t2 == null : t1 === t2) ? async Error : new P.AsyncError(e0, s0);
5312 t1 = this._box_1;
5313 t1._captured_listenerValueOrError_2 = listenerValueOrError;
5314 t1._captured_listenerHasValue_1 = false;
5315 return;
5316 }
5317 this._box_1._captured_listenerHasValue_1 = true;
5318 } else {
5319 t1 = this._box_1;
5320 t1._captured_listenerValueOrError_2 = asyncError;
5321 t1._captured_listenerHasValue_1 = false;
5322 }
5323 }
5324 },
5325 _Future__propagateToListeners_handleWhenCompleteCallback: {
5326 "^": "Closure:2;_box_2,_box_1,_captured_hasError_8,_captured_listener_9,_c aptured_zone_10",
5327 call$0: function() {
5328 var t1, e, s, completeResult, t2, exception, t3, result;
5329 t1 = {};
5330 t1._captured_completeResult_0 = null;
5331 try {
5332 completeResult = this._captured_zone_10.run$1(this._captured_listener_ 9.get$_whenCompleteAction());
5333 t1._captured_completeResult_0 = completeResult;
5334 t2 = completeResult;
5335 } catch (exception) {
5336 t1 = H.unwrapException(exception);
5337 e = t1;
5338 s = H.getTraceFromException(exception);
5339 if (this._captured_hasError_8) {
5340 t1 = J.get$error$x(this._box_2._captured_source_4.get$_error());
5341 t2 = e;
5342 t2 = t1 == null ? t2 == null : t1 === t2;
5343 t1 = t2;
5344 } else
5345 t1 = false;
5346 t2 = this._box_1;
5347 if (t1)
5348 t2._captured_listenerValueOrError_2 = this._box_2._captured_source_4 .get$_error();
5349 else
5350 t2._captured_listenerValueOrError_2 = new P.AsyncError(e, s);
5351 t2._captured_listenerHasValue_1 = false;
5352 return;
5353 }
5354 if (!!J.getInterceptor(t2).$isFuture) {
5355 t3 = this._captured_listener_9;
5356 result = t3.get$result(t3);
5357 result.set$_isChained(true);
5358 this._box_1._captured_isPropagationAborted_3 = true;
5359 t2.then$2$onError(new P._Future__propagateToListeners_handleWhenComple teCallback_closure(this._box_2, result), new P._Future__propagateToListeners_han dleWhenCompleteCallback_closure0(t1, result));
5360 }
5361 }
5362 },
5363 _Future__propagateToListeners_handleWhenCompleteCallback_closure: {
5364 "^": "Closure:0;_box_2,_captured_result_11",
5365 call$1: function(ignored) {
5366 P._Future__propagateToListeners(this._box_2._captured_source_4, new P._F utureListener(null, this._captured_result_11, 0, null, null));
5367 }
5368 },
5369 _Future__propagateToListeners_handleWhenCompleteCallback_closure0: {
5370 "^": "Closure:7;_box_0,_captured_result_12",
5371 call$2: function(error, stackTrace) {
5372 var t1, completeResult;
5373 t1 = this._box_0;
5374 if (!(t1._captured_completeResult_0 instanceof P._Future)) {
5375 completeResult = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current , null), [null]);
5376 t1._captured_completeResult_0 = completeResult;
5377 completeResult._setError$2(error, stackTrace);
5378 }
5379 P._Future__propagateToListeners(t1._captured_completeResult_0, new P._Fu tureListener(null, this._captured_result_12, 0, null, null));
5380 },
5381 call$1: function(error) {
5382 return this.call$2(error, null);
5383 }
5384 },
5385 _AsyncCallbackEntry: {
5386 "^": "Object;callback,zone,next",
5387 callback$0: function() {
5388 return this.callback.call$0();
5389 }
5390 },
5391 Stream: {
5392 "^": "Object;",
5393 map$1: function(_, convert) {
5394 return H.setRuntimeTypeInfo(new P._MapStream(convert, this), [H.getRunti meTypeArgument(this, "Stream", 0), null]);
5395 },
5396 contains$1: function(_, needle) {
5397 var t1, future;
5398 t1 = {};
5399 future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [ P.bool]);
5400 t1._captured_subscription_0 = null;
5401 t1._captured_subscription_0 = this.listen$4$cancelOnError$onDone$onError (new P.Stream_contains_closure(t1, this, needle, future), true, new P.Stream_con tains_closure0(future), future.get$_completeError());
5402 return future;
5403 },
5404 forEach$1: function(_, action) {
5405 var t1, future;
5406 t1 = {};
5407 future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [ null]);
5408 t1._captured_subscription_0 = null;
5409 t1._captured_subscription_0 = this.listen$4$cancelOnError$onDone$onError (new P.Stream_forEach_closure(t1, this, action, future), true, new P.Stream_forE ach_closure0(future), future.get$_completeError());
5410 return future;
5411 },
5412 get$length: function(_) {
5413 var t1, future;
5414 t1 = {};
5415 future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [ P.$int]);
5416 t1._captured_count_0 = 0;
5417 this.listen$4$cancelOnError$onDone$onError(new P.Stream_length_closure(t 1), true, new P.Stream_length_closure0(t1, future), future.get$_completeError()) ;
5418 return future;
5419 },
5420 get$isEmpty: function(_) {
5421 var t1, future;
5422 t1 = {};
5423 future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [ P.bool]);
5424 t1._captured_subscription_0 = null;
5425 t1._captured_subscription_0 = this.listen$4$cancelOnError$onDone$onError (new P.Stream_isEmpty_closure(t1, future), true, new P.Stream_isEmpty_closure0(f uture), future.get$_completeError());
5426 return future;
5427 },
5428 toList$0: function(_) {
5429 var result, future;
5430 result = H.setRuntimeTypeInfo([], [H.getRuntimeTypeArgument(this, "Strea m", 0)]);
5431 future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [ [P.List, H.getRuntimeTypeArgument(this, "Stream", 0)]]);
5432 this.listen$4$cancelOnError$onDone$onError(new P.Stream_toList_closure(t his, result), true, new P.Stream_toList_closure0(result, future), future.get$_co mpleteError());
5433 return future;
5434 },
5435 get$last: function(_) {
5436 var t1, future;
5437 t1 = {};
5438 future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [ H.getRuntimeTypeArgument(this, "Stream", 0)]);
5439 t1._captured_result_0 = null;
5440 t1._captured_foundResult_1 = false;
5441 this.listen$4$cancelOnError$onDone$onError(new P.Stream_last_closure(t1, this), true, new P.Stream_last_closure0(t1, future), future.get$_completeError( ));
5442 return future;
5443 }
5444 },
5445 Stream_contains_closure: {
5446 "^": "Closure;_box_0,_async$_captured_this_1,_captured_needle_2,_captured_ future_3",
5447 call$1: function(element) {
5448 var t1, t2;
5449 t1 = this._box_0;
5450 t2 = this._captured_future_3;
5451 P._runUserCode(new P.Stream_contains__closure(this._captured_needle_2, e lement), new P.Stream_contains__closure0(t1, t2), P._cancelAndErrorClosure(t1._c aptured_subscription_0, t2));
5452 },
5453 $signature: function() {
5454 return H.computeSignature(function(T) {
5455 return {func: 1, args: [T]};
5456 }, this._async$_captured_this_1, "Stream");
5457 }
5458 },
5459 Stream_contains__closure: {
5460 "^": "Closure:1;_captured_needle_4,_captured_element_5",
5461 call$0: function() {
5462 return J.$eq$(this._captured_element_5, this._captured_needle_4);
5463 }
5464 },
5465 Stream_contains__closure0: {
5466 "^": "Closure:17;_box_0,_captured_future_6",
5467 call$1: function(isMatch) {
5468 if (isMatch === true)
5469 P._cancelAndValue(this._box_0._captured_subscription_0, this._captured _future_6, true);
5470 }
5471 },
5472 Stream_contains_closure0: {
5473 "^": "Closure:1;_captured_future_7",
5474 call$0: function() {
5475 this._captured_future_7._complete$1(false);
5476 }
5477 },
5478 Stream_forEach_closure: {
5479 "^": "Closure;_box_0,_async$_captured_this_1,_captured_action_2,_captured_ future_3",
5480 call$1: function(element) {
5481 P._runUserCode(new P.Stream_forEach__closure(this._captured_action_2, el ement), new P.Stream_forEach__closure0(), P._cancelAndErrorClosure(this._box_0._ captured_subscription_0, this._captured_future_3));
5482 },
5483 $signature: function() {
5484 return H.computeSignature(function(T) {
5485 return {func: 1, args: [T]};
5486 }, this._async$_captured_this_1, "Stream");
5487 }
5488 },
5489 Stream_forEach__closure: {
5490 "^": "Closure:1;_captured_action_4,_captured_element_5",
5491 call$0: function() {
5492 return this._captured_action_4.call$1(this._captured_element_5);
5493 }
5494 },
5495 Stream_forEach__closure0: {
5496 "^": "Closure:0;",
5497 call$1: function(_) {
5498 }
5499 },
5500 Stream_forEach_closure0: {
5501 "^": "Closure:1;_captured_future_6",
5502 call$0: function() {
5503 this._captured_future_6._complete$1(null);
5504 }
5505 },
5506 Stream_length_closure: {
5507 "^": "Closure:0;_box_0",
5508 call$1: function(_) {
5509 ++this._box_0._captured_count_0;
5510 }
5511 },
5512 Stream_length_closure0: {
5513 "^": "Closure:1;_box_0,_captured_future_1",
5514 call$0: function() {
5515 this._captured_future_1._complete$1(this._box_0._captured_count_0);
5516 }
5517 },
5518 Stream_isEmpty_closure: {
5519 "^": "Closure:0;_box_0,_captured_future_1",
5520 call$1: function(_) {
5521 P._cancelAndValue(this._box_0._captured_subscription_0, this._captured_f uture_1, false);
5522 }
5523 },
5524 Stream_isEmpty_closure0: {
5525 "^": "Closure:1;_captured_future_2",
5526 call$0: function() {
5527 this._captured_future_2._complete$1(true);
5528 }
5529 },
5530 Stream_toList_closure: {
5531 "^": "Closure;_captured_this_0,_async$_captured_result_1",
5532 call$1: function(data) {
5533 this._async$_captured_result_1.push(data);
5534 },
5535 $signature: function() {
5536 return H.computeSignature(function(T) {
5537 return {func: 1, args: [T]};
5538 }, this._captured_this_0, "Stream");
5539 }
5540 },
5541 Stream_toList_closure0: {
5542 "^": "Closure:1;_captured_result_2,_captured_future_3",
5543 call$0: function() {
5544 this._captured_future_3._complete$1(this._captured_result_2);
5545 }
5546 },
5547 Stream_last_closure: {
5548 "^": "Closure;_box_0,_async$_captured_this_1",
5549 call$1: function(value) {
5550 var t1 = this._box_0;
5551 t1._captured_foundResult_1 = true;
5552 t1._captured_result_0 = value;
5553 },
5554 $signature: function() {
5555 return H.computeSignature(function(T) {
5556 return {func: 1, args: [T]};
5557 }, this._async$_captured_this_1, "Stream");
5558 }
5559 },
5560 Stream_last_closure0: {
5561 "^": "Closure:1;_box_0,_captured_future_2",
5562 call$0: function() {
5563 var e, s, t1, exception;
5564 t1 = this._box_0;
5565 if (t1._captured_foundResult_1) {
5566 this._captured_future_2._complete$1(t1._captured_result_0);
5567 return;
5568 }
5569 try {
5570 t1 = H.IterableElementError_noElement();
5571 throw H.wrapException(t1);
5572 } catch (exception) {
5573 t1 = H.unwrapException(exception);
5574 e = t1;
5575 s = H.getTraceFromException(exception);
5576 P._completeWithErrorCallback(this._captured_future_2, e, s);
5577 }
5578 }
5579 },
5580 StreamSubscription: {
5581 "^": "Object;"
5582 },
5583 _EventSink: {
5584 "^": "Object;"
5585 },
5586 _BufferingStreamSubscription: {
5587 "^": "Object;_zone<,_state?",
5588 pause$1: function(_, resumeSignal) {
5589 var t1 = this._state;
5590 if ((t1 & 8) !== 0)
5591 return;
5592 this._state = (t1 + 128 | 4) >>> 0;
5593 if (t1 < 128 && this._pending != null)
5594 this._pending.cancelSchedule$0();
5595 if ((t1 & 4) === 0 && (this._state & 32) === 0)
5596 this._guardCallback$1(this.get$_onPause());
5597 },
5598 pause$0: function($receiver) {
5599 return this.pause$1($receiver, null);
5600 },
5601 resume$0: function() {
5602 var t1 = this._state;
5603 if ((t1 & 8) !== 0)
5604 return;
5605 if (t1 >= 128) {
5606 t1 -= 128;
5607 this._state = t1;
5608 if (t1 < 128) {
5609 if ((t1 & 64) !== 0) {
5610 t1 = this._pending;
5611 t1 = !t1.get$isEmpty(t1);
5612 } else
5613 t1 = false;
5614 if (t1)
5615 this._pending.schedule$1(this);
5616 else {
5617 t1 = (this._state & 4294967291) >>> 0;
5618 this._state = t1;
5619 if ((t1 & 32) === 0)
5620 this._guardCallback$1(this.get$_onResume());
5621 }
5622 }
5623 }
5624 },
5625 cancel$0: function() {
5626 var t1 = (this._state & 4294967279) >>> 0;
5627 this._state = t1;
5628 if ((t1 & 8) !== 0)
5629 return this._cancelFuture;
5630 this._cancel$0();
5631 return this._cancelFuture;
5632 },
5633 _cancel$0: function() {
5634 var t1 = (this._state | 8) >>> 0;
5635 this._state = t1;
5636 if ((t1 & 64) !== 0)
5637 this._pending.cancelSchedule$0();
5638 if ((this._state & 32) === 0)
5639 this._pending = null;
5640 this._cancelFuture = this._onCancel$0();
5641 },
5642 _async$_add$1: ["super$_BufferingStreamSubscription$_add", function(data) {
5643 var t1 = this._state;
5644 if ((t1 & 8) !== 0)
5645 return;
5646 if (t1 < 32)
5647 this._sendData$1(data);
5648 else
5649 this._addPending$1(H.setRuntimeTypeInfo(new P._DelayedData(data, null) , [null]));
5650 }],
5651 _addError$2: ["super$_BufferingStreamSubscription$_addError", function(err or, stackTrace) {
5652 var t1 = this._state;
5653 if ((t1 & 8) !== 0)
5654 return;
5655 if (t1 < 32)
5656 this._sendError$2(error, stackTrace);
5657 else
5658 this._addPending$1(new P._DelayedError(error, stackTrace, null));
5659 }],
5660 _close$0: function() {
5661 var t1 = this._state;
5662 if ((t1 & 8) !== 0)
5663 return;
5664 t1 = (t1 | 2) >>> 0;
5665 this._state = t1;
5666 if (t1 < 32)
5667 this._sendDone$0();
5668 else
5669 this._addPending$1(C.C__DelayedDone);
5670 },
5671 _onPause$0: [function() {
5672 }, "call$0", "get$_onPause", 0, 0, 2],
5673 _onResume$0: [function() {
5674 }, "call$0", "get$_onResume", 0, 0, 2],
5675 _onCancel$0: function() {
5676 return;
5677 },
5678 _addPending$1: function($event) {
5679 var pending, t1;
5680 pending = this._pending;
5681 if (pending == null) {
5682 pending = new P._StreamImplEvents(null, null, 0);
5683 this._pending = pending;
5684 }
5685 pending.add$1(0, $event);
5686 t1 = this._state;
5687 if ((t1 & 64) === 0) {
5688 t1 = (t1 | 64) >>> 0;
5689 this._state = t1;
5690 if (t1 < 128)
5691 this._pending.schedule$1(this);
5692 }
5693 },
5694 _sendData$1: function(data) {
5695 var t1 = this._state;
5696 this._state = (t1 | 32) >>> 0;
5697 this._zone.runUnaryGuarded$2(this._async$_onData, data);
5698 this._state = (this._state & 4294967263) >>> 0;
5699 this._checkState$1((t1 & 4) !== 0);
5700 },
5701 _sendError$2: function(error, stackTrace) {
5702 var t1, t2;
5703 t1 = this._state;
5704 t2 = new P._BufferingStreamSubscription__sendError_sendError(this, error , stackTrace);
5705 if ((t1 & 1) !== 0) {
5706 this._state = (t1 | 16) >>> 0;
5707 this._cancel$0();
5708 t1 = this._cancelFuture;
5709 if (!!J.getInterceptor(t1).$isFuture)
5710 t1.whenComplete$1(t2);
5711 else
5712 t2.call$0();
5713 } else {
5714 t2.call$0();
5715 this._checkState$1((t1 & 4) !== 0);
5716 }
5717 },
5718 _sendDone$0: function() {
5719 var t1, t2;
5720 t1 = new P._BufferingStreamSubscription__sendDone_sendDone(this);
5721 this._cancel$0();
5722 this._state = (this._state | 16) >>> 0;
5723 t2 = this._cancelFuture;
5724 if (!!J.getInterceptor(t2).$isFuture)
5725 t2.whenComplete$1(t1);
5726 else
5727 t1.call$0();
5728 },
5729 _guardCallback$1: function(callback) {
5730 var t1 = this._state;
5731 this._state = (t1 | 32) >>> 0;
5732 callback.call$0();
5733 this._state = (this._state & 4294967263) >>> 0;
5734 this._checkState$1((t1 & 4) !== 0);
5735 },
5736 _checkState$1: function(wasInputPaused) {
5737 var t1, isInputPaused;
5738 if ((this._state & 64) !== 0) {
5739 t1 = this._pending;
5740 t1 = t1.get$isEmpty(t1);
5741 } else
5742 t1 = false;
5743 if (t1) {
5744 t1 = (this._state & 4294967231) >>> 0;
5745 this._state = t1;
5746 if ((t1 & 4) !== 0)
5747 if (t1 < 128) {
5748 t1 = this._pending;
5749 t1 = t1 == null || t1.get$isEmpty(t1);
5750 } else
5751 t1 = false;
5752 else
5753 t1 = false;
5754 if (t1)
5755 this._state = (this._state & 4294967291) >>> 0;
5756 }
5757 for (; true; wasInputPaused = isInputPaused) {
5758 t1 = this._state;
5759 if ((t1 & 8) !== 0) {
5760 this._pending = null;
5761 return;
5762 }
5763 isInputPaused = (t1 & 4) !== 0;
5764 if (wasInputPaused === isInputPaused)
5765 break;
5766 this._state = (t1 ^ 32) >>> 0;
5767 if (isInputPaused)
5768 this._onPause$0();
5769 else
5770 this._onResume$0();
5771 this._state = (this._state & 4294967263) >>> 0;
5772 }
5773 t1 = this._state;
5774 if ((t1 & 64) !== 0 && t1 < 128)
5775 this._pending.schedule$1(this);
5776 },
5777 _BufferingStreamSubscription$4: function(onData, onError, onDone, cancelOn Error, $T) {
5778 var t1 = this._zone;
5779 t1.toString;
5780 this._async$_onData = onData;
5781 this._onError = P._registerErrorHandler(onError, t1);
5782 this._onDone = onDone;
5783 }
5784 },
5785 _BufferingStreamSubscription__sendError_sendError: {
5786 "^": "Closure:2;_captured_this_0,_captured_error_1,_captured_stackTrace_2" ,
5787 call$0: function() {
5788 var t1, t2, t3, t4, t5, t6;
5789 t1 = this._captured_this_0;
5790 t2 = t1._state;
5791 if ((t2 & 8) !== 0 && (t2 & 16) === 0)
5792 return;
5793 t1._state = (t2 | 32) >>> 0;
5794 t2 = t1._onError;
5795 t3 = H.getDynamicRuntimeType();
5796 t3 = H.buildFunctionType(t3, [t3, t3])._isTest$1(t2);
5797 t4 = t1._zone;
5798 t5 = this._captured_error_1;
5799 t6 = t1._onError;
5800 if (t3)
5801 t4.runBinaryGuarded$3(t6, t5, this._captured_stackTrace_2);
5802 else
5803 t4.runUnaryGuarded$2(t6, t5);
5804 t1._state = (t1._state & 4294967263) >>> 0;
5805 }
5806 },
5807 _BufferingStreamSubscription__sendDone_sendDone: {
5808 "^": "Closure:2;_captured_this_0",
5809 call$0: function() {
5810 var t1, t2;
5811 t1 = this._captured_this_0;
5812 t2 = t1._state;
5813 if ((t2 & 16) === 0)
5814 return;
5815 t1._state = (t2 | 42) >>> 0;
5816 t1._zone.runGuarded$1(t1._onDone);
5817 t1._state = (t1._state & 4294967263) >>> 0;
5818 }
5819 },
5820 _DelayedEvent: {
5821 "^": "Object;next@"
5822 },
5823 _DelayedData: {
5824 "^": "_DelayedEvent;value,next",
5825 perform$1: function(dispatch) {
5826 dispatch._sendData$1(this.value);
5827 }
5828 },
5829 _DelayedError: {
5830 "^": "_DelayedEvent;error>,stackTrace<,next",
5831 perform$1: function(dispatch) {
5832 dispatch._sendError$2(this.error, this.stackTrace);
5833 }
5834 },
5835 _DelayedDone: {
5836 "^": "Object;",
5837 perform$1: function(dispatch) {
5838 dispatch._sendDone$0();
5839 },
5840 get$next: function() {
5841 return;
5842 },
5843 set$next: function(_) {
5844 throw H.wrapException(new P.StateError("No events after a done."));
5845 }
5846 },
5847 _PendingEvents: {
5848 "^": "Object;_state?",
5849 schedule$1: function(dispatch) {
5850 var t1 = this._state;
5851 if (t1 === 1)
5852 return;
5853 if (t1 >= 1) {
5854 this._state = 1;
5855 return;
5856 }
5857 P.scheduleMicrotask(new P._PendingEvents_schedule_closure(this, dispatch ));
5858 this._state = 1;
5859 },
5860 cancelSchedule$0: function() {
5861 if (this._state === 1)
5862 this._state = 3;
5863 }
5864 },
5865 _PendingEvents_schedule_closure: {
5866 "^": "Closure:1;_captured_this_0,_captured_dispatch_1",
5867 call$0: function() {
5868 var t1, oldState;
5869 t1 = this._captured_this_0;
5870 oldState = t1._state;
5871 t1._state = 0;
5872 if (oldState === 3)
5873 return;
5874 t1.handleNext$1(this._captured_dispatch_1);
5875 }
5876 },
5877 _StreamImplEvents: {
5878 "^": "_PendingEvents;firstPendingEvent,lastPendingEvent,_state",
5879 get$isEmpty: function(_) {
5880 return this.lastPendingEvent == null;
5881 },
5882 add$1: function(_, $event) {
5883 var t1 = this.lastPendingEvent;
5884 if (t1 == null) {
5885 this.lastPendingEvent = $event;
5886 this.firstPendingEvent = $event;
5887 } else {
5888 t1.set$next($event);
5889 this.lastPendingEvent = $event;
5890 }
5891 },
5892 handleNext$1: function(dispatch) {
5893 var $event, t1;
5894 $event = this.firstPendingEvent;
5895 t1 = $event.get$next();
5896 this.firstPendingEvent = t1;
5897 if (t1 == null)
5898 this.lastPendingEvent = null;
5899 $event.perform$1(dispatch);
5900 }
5901 },
5902 _StreamIteratorImpl: {
5903 "^": "Object;_subscription,_async$_current,_futureOrPrefetch,_state?",
5904 _clear$0: function(_) {
5905 this._subscription = null;
5906 this._futureOrPrefetch = null;
5907 this._async$_current = null;
5908 this._state = 1;
5909 },
5910 _async$_onData$1: [function(data) {
5911 var hasNext;
5912 if (this._state === 2) {
5913 this._async$_current = data;
5914 hasNext = this._futureOrPrefetch;
5915 this._futureOrPrefetch = null;
5916 this._state = 0;
5917 hasNext._complete$1(true);
5918 return;
5919 }
5920 this._subscription.pause$0(0);
5921 this._futureOrPrefetch = data;
5922 this._state = 3;
5923 }, "call$1", "get$_async$_onData", 2, 0, function() {
5924 return H.computeSignature(function(T) {
5925 return {func: 1, void: true, args: [T]};
5926 }, this.$receiver, "_StreamIteratorImpl");
5927 }],
5928 _onError$2: [function(error, stackTrace) {
5929 var hasNext;
5930 if (this._state === 2) {
5931 hasNext = this._futureOrPrefetch;
5932 this._clear$0(0);
5933 hasNext._completeError$2(error, stackTrace);
5934 return;
5935 }
5936 this._subscription.pause$0(0);
5937 this._futureOrPrefetch = new P.AsyncError(error, stackTrace);
5938 this._state = 4;
5939 }, function(error) {
5940 return this._onError$2(error, null);
5941 }, "_onError$1", "call$2", "call$1", "get$_onError", 2, 2, 6, 0],
5942 _onDone$0: [function() {
5943 if (this._state === 2) {
5944 var hasNext = this._futureOrPrefetch;
5945 this._clear$0(0);
5946 hasNext._complete$1(false);
5947 return;
5948 }
5949 this._subscription.pause$0(0);
5950 this._futureOrPrefetch = null;
5951 this._state = 5;
5952 }, "call$0", "get$_onDone", 0, 0, 2]
5953 },
5954 _cancelAndError_closure: {
5955 "^": "Closure:1;_captured_future_0,_captured_error_1,_captured_stackTrace_ 2",
5956 call$0: function() {
5957 return this._captured_future_0._completeError$2(this._captured_error_1, this._captured_stackTrace_2);
5958 }
5959 },
5960 _cancelAndErrorClosure_closure: {
5961 "^": "Closure:5;_captured_subscription_0,_captured_future_1",
5962 call$2: function(error, stackTrace) {
5963 return P._cancelAndError(this._captured_subscription_0, this._captured_f uture_1, error, stackTrace);
5964 }
5965 },
5966 _cancelAndValue_closure: {
5967 "^": "Closure:1;_captured_future_0,_captured_value_1",
5968 call$0: function() {
5969 return this._captured_future_0._complete$1(this._captured_value_1);
5970 }
5971 },
5972 _ForwardingStream: {
5973 "^": "Stream;",
5974 listen$4$cancelOnError$onDone$onError: function(onData, cancelOnError, onD one, onError) {
5975 return this._createSubscription$4(onData, onError, onDone, true === canc elOnError);
5976 },
5977 listen$3$onDone$onError: function(onData, onDone, onError) {
5978 return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, onError);
5979 },
5980 _createSubscription$4: function(onData, onError, onDone, cancelOnError) {
5981 return P._ForwardingStreamSubscription$(this, onData, onError, onDone, c ancelOnError, H.getRuntimeTypeArgument(this, "_ForwardingStream", 0), H.getRunti meTypeArgument(this, "_ForwardingStream", 1));
5982 },
5983 _handleData$2: function(data, sink) {
5984 sink._async$_add$1(data);
5985 },
5986 $asStream: function($S, $T) {
5987 return [$T];
5988 }
5989 },
5990 _ForwardingStreamSubscription: {
5991 "^": "_BufferingStreamSubscription;_stream,_subscription,_async$_onData,_o nError,_onDone,_zone,_state,_cancelFuture,_pending",
5992 _async$_add$1: function(data) {
5993 if ((this._state & 2) !== 0)
5994 return;
5995 this.super$_BufferingStreamSubscription$_add(data);
5996 },
5997 _addError$2: function(error, stackTrace) {
5998 if ((this._state & 2) !== 0)
5999 return;
6000 this.super$_BufferingStreamSubscription$_addError(error, stackTrace);
6001 },
6002 _onPause$0: [function() {
6003 var t1 = this._subscription;
6004 if (t1 == null)
6005 return;
6006 t1.pause$0(0);
6007 }, "call$0", "get$_onPause", 0, 0, 2],
6008 _onResume$0: [function() {
6009 var t1 = this._subscription;
6010 if (t1 == null)
6011 return;
6012 t1.resume$0();
6013 }, "call$0", "get$_onResume", 0, 0, 2],
6014 _onCancel$0: function() {
6015 var t1 = this._subscription;
6016 if (t1 != null) {
6017 this._subscription = null;
6018 return t1.cancel$0();
6019 }
6020 return;
6021 },
6022 _handleData$1: [function(data) {
6023 this._stream._handleData$2(data, this);
6024 }, "call$1", "get$_handleData", 2, 0, function() {
6025 return H.computeSignature(function(S, T) {
6026 return {func: 1, void: true, args: [S]};
6027 }, this.$receiver, "_ForwardingStreamSubscription");
6028 }],
6029 _handleError$2: [function(error, stackTrace) {
6030 this._addError$2(error, stackTrace);
6031 }, "call$2", "get$_handleError", 4, 0, 18],
6032 _handleDone$0: [function() {
6033 this._close$0();
6034 }, "call$0", "get$_handleDone", 0, 0, 2],
6035 _ForwardingStreamSubscription$5: function(_stream, onData, onError, onDone , cancelOnError, $S, $T) {
6036 var t1, t2;
6037 t1 = this.get$_handleData();
6038 t2 = this.get$_handleError();
6039 this._subscription = this._stream._async$_source.listen$3$onDone$onError (t1, this.get$_handleDone(), t2);
6040 },
6041 $as_BufferingStreamSubscription: function($S, $T) {
6042 return [$T];
6043 },
6044 static: {_ForwardingStreamSubscription$: function(_stream, onData, onError , onDone, cancelOnError, $S, $T) {
6045 var t1 = $.Zone__current;
6046 t1 = H.setRuntimeTypeInfo(new P._ForwardingStreamSubscription(_stream, null, null, null, null, t1, cancelOnError ? 1 : 0, null, null), [$S, $T]);
6047 t1._BufferingStreamSubscription$4(onData, onError, onDone, cancelOnErr or, $T);
6048 t1._ForwardingStreamSubscription$5(_stream, onData, onError, onDone, c ancelOnError, $S, $T);
6049 return t1;
6050 }}
6051 },
6052 _MapStream: {
6053 "^": "_ForwardingStream;_transform,_async$_source",
6054 _handleData$2: function(inputEvent, sink) {
6055 var outputEvent, e, s, exception, t1;
6056 outputEvent = null;
6057 try {
6058 outputEvent = this._transform$1(inputEvent);
6059 } catch (exception) {
6060 t1 = H.unwrapException(exception);
6061 e = t1;
6062 s = H.getTraceFromException(exception);
6063 P._addErrorWithReplacement(sink, e, s);
6064 return;
6065 }
6066 sink._async$_add$1(outputEvent);
6067 },
6068 _transform$1: function(arg0) {
6069 return this._transform.call$1(arg0);
6070 }
6071 },
6072 AsyncError: {
6073 "^": "Object;error>,stackTrace<",
6074 toString$0: function(_) {
6075 return H.S(this.error);
6076 },
6077 $isError: 1
6078 },
6079 _Zone: {
6080 "^": "Object;"
6081 },
6082 _rootHandleUncaughtError_closure: {
6083 "^": "Closure:1;_captured_error_0,_captured_stackTrace_1",
6084 call$0: function() {
6085 var t1 = this._captured_error_0;
6086 throw H.wrapException(new P._UncaughtAsyncError(t1, P._UncaughtAsyncErro r__getBestStackTrace(t1, this._captured_stackTrace_1)));
6087 }
6088 },
6089 _RootZone: {
6090 "^": "_Zone;",
6091 get$errorZone: function() {
6092 return this;
6093 },
6094 runGuarded$1: function(f) {
6095 var e, s, t1, exception;
6096 try {
6097 if (C.C__RootZone === $.Zone__current) {
6098 t1 = f.call$0();
6099 return t1;
6100 }
6101 t1 = P._rootRun(null, null, this, f);
6102 return t1;
6103 } catch (exception) {
6104 t1 = H.unwrapException(exception);
6105 e = t1;
6106 s = H.getTraceFromException(exception);
6107 return P._rootHandleUncaughtError(null, null, this, e, s);
6108 }
6109 },
6110 runUnaryGuarded$2: function(f, arg) {
6111 var e, s, t1, exception;
6112 try {
6113 if (C.C__RootZone === $.Zone__current) {
6114 t1 = f.call$1(arg);
6115 return t1;
6116 }
6117 t1 = P._rootRunUnary(null, null, this, f, arg);
6118 return t1;
6119 } catch (exception) {
6120 t1 = H.unwrapException(exception);
6121 e = t1;
6122 s = H.getTraceFromException(exception);
6123 return P._rootHandleUncaughtError(null, null, this, e, s);
6124 }
6125 },
6126 runBinaryGuarded$3: function(f, arg1, arg2) {
6127 var e, s, t1, exception;
6128 try {
6129 if (C.C__RootZone === $.Zone__current) {
6130 t1 = f.call$2(arg1, arg2);
6131 return t1;
6132 }
6133 t1 = P._rootRunBinary(null, null, this, f, arg1, arg2);
6134 return t1;
6135 } catch (exception) {
6136 t1 = H.unwrapException(exception);
6137 e = t1;
6138 s = H.getTraceFromException(exception);
6139 return P._rootHandleUncaughtError(null, null, this, e, s);
6140 }
6141 },
6142 bindCallback$2$runGuarded: function(f, runGuarded) {
6143 if (runGuarded)
6144 return new P._RootZone_bindCallback_closure(this, f);
6145 else
6146 return new P._RootZone_bindCallback_closure0(this, f);
6147 },
6148 bindUnaryCallback$2$runGuarded: function(f, runGuarded) {
6149 if (runGuarded)
6150 return new P._RootZone_bindUnaryCallback_closure(this, f);
6151 else
6152 return new P._RootZone_bindUnaryCallback_closure0(this, f);
6153 },
6154 $index: function(_, key) {
6155 return;
6156 },
6157 run$1: function(f) {
6158 if ($.Zone__current === C.C__RootZone)
6159 return f.call$0();
6160 return P._rootRun(null, null, this, f);
6161 },
6162 runUnary$2: function(f, arg) {
6163 if ($.Zone__current === C.C__RootZone)
6164 return f.call$1(arg);
6165 return P._rootRunUnary(null, null, this, f, arg);
6166 },
6167 runBinary$3: function(f, arg1, arg2) {
6168 if ($.Zone__current === C.C__RootZone)
6169 return f.call$2(arg1, arg2);
6170 return P._rootRunBinary(null, null, this, f, arg1, arg2);
6171 }
6172 },
6173 _RootZone_bindCallback_closure: {
6174 "^": "Closure:1;_captured_this_0,_captured_f_1",
6175 call$0: function() {
6176 return this._captured_this_0.runGuarded$1(this._captured_f_1);
6177 }
6178 },
6179 _RootZone_bindCallback_closure0: {
6180 "^": "Closure:1;_captured_this_2,_captured_f_3",
6181 call$0: function() {
6182 return this._captured_this_2.run$1(this._captured_f_3);
6183 }
6184 },
6185 _RootZone_bindUnaryCallback_closure: {
6186 "^": "Closure:0;_captured_this_0,_captured_f_1",
6187 call$1: function(arg) {
6188 return this._captured_this_0.runUnaryGuarded$2(this._captured_f_1, arg);
6189 }
6190 },
6191 _RootZone_bindUnaryCallback_closure0: {
6192 "^": "Closure:0;_captured_this_2,_captured_f_3",
6193 call$1: function(arg) {
6194 return this._captured_this_2.runUnary$2(this._captured_f_3, arg);
6195 }
6196 }
6197 }], ["dart.collection", "dart:collection",, P, {
6198 "^": "",
6199 LinkedHashMap_LinkedHashMap$_empty: function($K, $V) {
6200 return H.setRuntimeTypeInfo(new H.JsLinkedHashMap(0, null, null, null, nul l, null, 0), [$K, $V]);
6201 },
6202 LinkedHashMap__makeEmpty: function() {
6203 return H.setRuntimeTypeInfo(new H.JsLinkedHashMap(0, null, null, null, nul l, null, 0), [null, null]);
6204 },
6205 LinkedHashMap__makeLiteral: function(keyValuePairs) {
6206 return H.fillLiteralMap(keyValuePairs, H.setRuntimeTypeInfo(new H.JsLinked HashMap(0, null, null, null, null, null, 0), [null, null]));
6207 },
6208 HashSet_HashSet: function(equals, hashCode, isValidKey, $E) {
6209 return H.setRuntimeTypeInfo(new P._HashSet(0, null, null, null, null), [$E ]);
6210 },
6211 IterableBase_iterableToShortString: function(iterable, leftDelimiter, rightD elimiter) {
6212 var parts, t1;
6213 if (P._isToStringVisiting(iterable)) {
6214 if (leftDelimiter === "(" && rightDelimiter === ")")
6215 return "(...)";
6216 return leftDelimiter + "..." + rightDelimiter;
6217 }
6218 parts = [];
6219 t1 = $.$get$_toStringVisiting();
6220 t1.push(iterable);
6221 try {
6222 P._iterablePartsToStrings(iterable, parts);
6223 } finally {
6224 if (0 >= t1.length)
6225 return H.ioore(t1, -1);
6226 t1.pop();
6227 }
6228 t1 = P.StringBuffer__writeAll(leftDelimiter, parts, ", ") + rightDelimiter ;
6229 return t1.charCodeAt(0) == 0 ? t1 : t1;
6230 },
6231 IterableBase_iterableToFullString: function(iterable, leftDelimiter, rightDe limiter) {
6232 var buffer, t1, t2;
6233 if (P._isToStringVisiting(iterable))
6234 return leftDelimiter + "..." + rightDelimiter;
6235 buffer = new P.StringBuffer(leftDelimiter);
6236 t1 = $.$get$_toStringVisiting();
6237 t1.push(iterable);
6238 try {
6239 t2 = buffer;
6240 t2._contents = P.StringBuffer__writeAll(t2.get$_contents(), iterable, ", ");
6241 } finally {
6242 if (0 >= t1.length)
6243 return H.ioore(t1, -1);
6244 t1.pop();
6245 }
6246 t1 = buffer;
6247 t1._contents = t1.get$_contents() + rightDelimiter;
6248 t1 = buffer.get$_contents();
6249 return t1.charCodeAt(0) == 0 ? t1 : t1;
6250 },
6251 _isToStringVisiting: function(o) {
6252 var i, t1;
6253 for (i = 0; t1 = $.$get$_toStringVisiting(), i < t1.length; ++i)
6254 if (o === t1[i])
6255 return true;
6256 return false;
6257 },
6258 _iterablePartsToStrings: function(iterable, parts) {
6259 var it, $length, count, next, ultimateString, penultimateString, penultima te, ultimate, ultimate0, elision;
6260 it = iterable.get$iterator(iterable);
6261 $length = 0;
6262 count = 0;
6263 while (true) {
6264 if (!($length < 80 || count < 3))
6265 break;
6266 if (!it.moveNext$0())
6267 return;
6268 next = H.S(it.get$current());
6269 parts.push(next);
6270 $length += next.length + 2;
6271 ++count;
6272 }
6273 if (!it.moveNext$0()) {
6274 if (count <= 5)
6275 return;
6276 if (0 >= parts.length)
6277 return H.ioore(parts, -1);
6278 ultimateString = parts.pop();
6279 if (0 >= parts.length)
6280 return H.ioore(parts, -1);
6281 penultimateString = parts.pop();
6282 } else {
6283 penultimate = it.get$current();
6284 ++count;
6285 if (!it.moveNext$0()) {
6286 if (count <= 4) {
6287 parts.push(H.S(penultimate));
6288 return;
6289 }
6290 ultimateString = H.S(penultimate);
6291 if (0 >= parts.length)
6292 return H.ioore(parts, -1);
6293 penultimateString = parts.pop();
6294 $length += ultimateString.length + 2;
6295 } else {
6296 ultimate = it.get$current();
6297 ++count;
6298 for (; it.moveNext$0(); penultimate = ultimate, ultimate = ultimate0) {
6299 ultimate0 = it.get$current();
6300 ++count;
6301 if (count > 100) {
6302 while (true) {
6303 if (!($length > 75 && count > 3))
6304 break;
6305 if (0 >= parts.length)
6306 return H.ioore(parts, -1);
6307 $length -= parts.pop().length + 2;
6308 --count;
6309 }
6310 parts.push("...");
6311 return;
6312 }
6313 }
6314 penultimateString = H.S(penultimate);
6315 ultimateString = H.S(ultimate);
6316 $length += ultimateString.length + penultimateString.length + 4;
6317 }
6318 }
6319 if (count > parts.length + 2) {
6320 $length += 5;
6321 elision = "...";
6322 } else
6323 elision = null;
6324 while (true) {
6325 if (!($length > 80 && parts.length > 3))
6326 break;
6327 if (0 >= parts.length)
6328 return H.ioore(parts, -1);
6329 $length -= parts.pop().length + 2;
6330 if (elision == null) {
6331 $length += 5;
6332 elision = "...";
6333 }
6334 }
6335 if (elision != null)
6336 parts.push(elision);
6337 parts.push(penultimateString);
6338 parts.push(ultimateString);
6339 },
6340 LinkedHashMap_LinkedHashMap$identity: function($K, $V) {
6341 return P._LinkedIdentityHashMap__LinkedIdentityHashMap$es6($K, $V);
6342 },
6343 LinkedHashSet_LinkedHashSet: function(equals, hashCode, isValidKey, $E) {
6344 return H.setRuntimeTypeInfo(new P._LinkedHashSet(0, null, null, null, null , null, 0), [$E]);
6345 },
6346 LinkedHashSet_LinkedHashSet$from: function(elements, $E) {
6347 var result, t1, _i;
6348 result = P.LinkedHashSet_LinkedHashSet(null, null, null, $E);
6349 for (t1 = elements.length, _i = 0; _i < elements.length; elements.length = == t1 || (0, H.throwConcurrentModificationError)(elements), ++_i)
6350 result.add$1(0, elements[_i]);
6351 return result;
6352 },
6353 Maps_mapToString: function(m) {
6354 var t1, result, t2;
6355 t1 = {};
6356 if (P._isToStringVisiting(m))
6357 return "{...}";
6358 result = new P.StringBuffer("");
6359 try {
6360 $.$get$_toStringVisiting().push(m);
6361 t2 = result;
6362 t2._contents = t2.get$_contents() + "{";
6363 t1._captured_first_0 = true;
6364 J.forEach$1$ax(m, new P.Maps_mapToString_closure(t1, result));
6365 t1 = result;
6366 t1._contents = t1.get$_contents() + "}";
6367 } finally {
6368 t1 = $.$get$_toStringVisiting();
6369 if (0 >= t1.length)
6370 return H.ioore(t1, -1);
6371 t1.pop();
6372 }
6373 t1 = result.get$_contents();
6374 return t1.charCodeAt(0) == 0 ? t1 : t1;
6375 },
6376 _LinkedIdentityHashMap: {
6377 "^": "JsLinkedHashMap;__js_helper$_length,_strings,_nums,_rest,_first,__js _helper$_last,_modifications",
6378 internalComputeHashCode$1: function(key) {
6379 return H.objectHashCode(key) & 0x3ffffff;
6380 },
6381 internalFindBucketIndex$2: function(bucket, key) {
6382 var $length, i, t1;
6383 if (bucket == null)
6384 return -1;
6385 $length = bucket.length;
6386 for (i = 0; i < $length; ++i) {
6387 t1 = bucket[i].get$hashMapCellKey();
6388 if (t1 == null ? key == null : t1 === key)
6389 return i;
6390 }
6391 return -1;
6392 },
6393 static: {_LinkedIdentityHashMap__LinkedIdentityHashMap$es6: function($K, $ V) {
6394 return H.setRuntimeTypeInfo(new P._LinkedIdentityHashMap(0, null, null , null, null, null, 0), [$K, $V]);
6395 }}
6396 },
6397 _HashSet: {
6398 "^": "_HashSetBase;_collection$_length,_collection$_strings,_collection$_n ums,_collection$_rest,_elements",
6399 get$iterator: function(_) {
6400 var t1 = new P.HashSetIterator(this, this._computeElements$0(), 0, null) ;
6401 t1.$builtinTypeInfo = this.$builtinTypeInfo;
6402 return t1;
6403 },
6404 get$length: function(_) {
6405 return this._collection$_length;
6406 },
6407 get$isEmpty: function(_) {
6408 return this._collection$_length === 0;
6409 },
6410 get$isNotEmpty: function(_) {
6411 return this._collection$_length !== 0;
6412 },
6413 contains$1: function(_, object) {
6414 var strings, nums;
6415 if (typeof object === "string" && object !== "__proto__") {
6416 strings = this._collection$_strings;
6417 return strings == null ? false : strings[object] != null;
6418 } else if (typeof object === "number" && (object & 0x3ffffff) === object ) {
6419 nums = this._collection$_nums;
6420 return nums == null ? false : nums[object] != null;
6421 } else
6422 return this._contains$1(object);
6423 },
6424 _contains$1: function(object) {
6425 var rest = this._collection$_rest;
6426 if (rest == null)
6427 return false;
6428 return this._findBucketIndex$2(rest[this._computeHashCode$1(object)], ob ject) >= 0;
6429 },
6430 lookup$1: function(object) {
6431 var t1;
6432 if (!(typeof object === "string" && object !== "__proto__"))
6433 t1 = typeof object === "number" && (object & 0x3ffffff) === object;
6434 else
6435 t1 = true;
6436 if (t1)
6437 return this.contains$1(0, object) ? object : null;
6438 return this._lookup$1(object);
6439 },
6440 _lookup$1: function(object) {
6441 var rest, bucket, index;
6442 rest = this._collection$_rest;
6443 if (rest == null)
6444 return;
6445 bucket = rest[this._computeHashCode$1(object)];
6446 index = this._findBucketIndex$2(bucket, object);
6447 if (index < 0)
6448 return;
6449 return J.$index$asx(bucket, index);
6450 },
6451 add$1: function(_, element) {
6452 var strings, table, nums;
6453 if (typeof element === "string" && element !== "__proto__") {
6454 strings = this._collection$_strings;
6455 if (strings == null) {
6456 table = Object.create(null);
6457 table["<non-identifier-key>"] = table;
6458 delete table["<non-identifier-key>"];
6459 this._collection$_strings = table;
6460 strings = table;
6461 }
6462 return this._addHashTableEntry$2(strings, element);
6463 } else if (typeof element === "number" && (element & 0x3ffffff) === elem ent) {
6464 nums = this._collection$_nums;
6465 if (nums == null) {
6466 table = Object.create(null);
6467 table["<non-identifier-key>"] = table;
6468 delete table["<non-identifier-key>"];
6469 this._collection$_nums = table;
6470 nums = table;
6471 }
6472 return this._addHashTableEntry$2(nums, element);
6473 } else
6474 return this._add$1(element);
6475 },
6476 _add$1: function(element) {
6477 var rest, hash, bucket;
6478 rest = this._collection$_rest;
6479 if (rest == null) {
6480 rest = P._HashSet__newHashTable();
6481 this._collection$_rest = rest;
6482 }
6483 hash = this._computeHashCode$1(element);
6484 bucket = rest[hash];
6485 if (bucket == null)
6486 rest[hash] = [element];
6487 else {
6488 if (this._findBucketIndex$2(bucket, element) >= 0)
6489 return false;
6490 bucket.push(element);
6491 }
6492 ++this._collection$_length;
6493 this._elements = null;
6494 return true;
6495 },
6496 _computeElements$0: function() {
6497 var t1, result, strings, names, entries, index, i, nums, rest, bucket, $ length, i0;
6498 t1 = this._elements;
6499 if (t1 != null)
6500 return t1;
6501 result = new Array(this._collection$_length);
6502 result.fixed$length = Array;
6503 strings = this._collection$_strings;
6504 if (strings != null) {
6505 names = Object.getOwnPropertyNames(strings);
6506 entries = names.length;
6507 for (index = 0, i = 0; i < entries; ++i) {
6508 result[index] = names[i];
6509 ++index;
6510 }
6511 } else
6512 index = 0;
6513 nums = this._collection$_nums;
6514 if (nums != null) {
6515 names = Object.getOwnPropertyNames(nums);
6516 entries = names.length;
6517 for (i = 0; i < entries; ++i) {
6518 result[index] = +names[i];
6519 ++index;
6520 }
6521 }
6522 rest = this._collection$_rest;
6523 if (rest != null) {
6524 names = Object.getOwnPropertyNames(rest);
6525 entries = names.length;
6526 for (i = 0; i < entries; ++i) {
6527 bucket = rest[names[i]];
6528 $length = bucket.length;
6529 for (i0 = 0; i0 < $length; ++i0) {
6530 result[index] = bucket[i0];
6531 ++index;
6532 }
6533 }
6534 }
6535 this._elements = result;
6536 return result;
6537 },
6538 _addHashTableEntry$2: function(table, element) {
6539 if (table[element] != null)
6540 return false;
6541 table[element] = 0;
6542 ++this._collection$_length;
6543 this._elements = null;
6544 return true;
6545 },
6546 _computeHashCode$1: function(element) {
6547 return J.get$hashCode$(element) & 0x3ffffff;
6548 },
6549 _findBucketIndex$2: function(bucket, element) {
6550 var $length, i;
6551 if (bucket == null)
6552 return -1;
6553 $length = bucket.length;
6554 for (i = 0; i < $length; ++i)
6555 if (J.$eq$(bucket[i], element))
6556 return i;
6557 return -1;
6558 },
6559 $isEfficientLength: 1,
6560 static: {_HashSet__newHashTable: function() {
6561 var table = Object.create(null);
6562 table["<non-identifier-key>"] = table;
6563 delete table["<non-identifier-key>"];
6564 return table;
6565 }}
6566 },
6567 HashSetIterator: {
6568 "^": "Object;_set,_elements,_offset,_collection$_current",
6569 get$current: function() {
6570 return this._collection$_current;
6571 },
6572 moveNext$0: function() {
6573 var elements, offset, t1;
6574 elements = this._elements;
6575 offset = this._offset;
6576 t1 = this._set;
6577 if (elements !== t1._elements)
6578 throw H.wrapException(new P.ConcurrentModificationError(t1));
6579 else if (offset >= elements.length) {
6580 this._collection$_current = null;
6581 return false;
6582 } else {
6583 this._collection$_current = elements[offset];
6584 this._offset = offset + 1;
6585 return true;
6586 }
6587 }
6588 },
6589 _LinkedHashSet: {
6590 "^": "_HashSetBase;_collection$_length,_collection$_strings,_collection$_n ums,_collection$_rest,_collection$_first,_last,_collection$_modifications",
6591 get$iterator: function(_) {
6592 var t1 = H.setRuntimeTypeInfo(new P.LinkedHashSetIterator(this, this._co llection$_modifications, null, null), [null]);
6593 t1._cell = t1._set._collection$_first;
6594 return t1;
6595 },
6596 get$length: function(_) {
6597 return this._collection$_length;
6598 },
6599 get$isEmpty: function(_) {
6600 return this._collection$_length === 0;
6601 },
6602 get$isNotEmpty: function(_) {
6603 return this._collection$_length !== 0;
6604 },
6605 contains$1: function(_, object) {
6606 var strings, nums;
6607 if (typeof object === "string" && object !== "__proto__") {
6608 strings = this._collection$_strings;
6609 if (strings == null)
6610 return false;
6611 return strings[object] != null;
6612 } else if (typeof object === "number" && (object & 0x3ffffff) === object ) {
6613 nums = this._collection$_nums;
6614 if (nums == null)
6615 return false;
6616 return nums[object] != null;
6617 } else
6618 return this._contains$1(object);
6619 },
6620 _contains$1: function(object) {
6621 var rest = this._collection$_rest;
6622 if (rest == null)
6623 return false;
6624 return this._findBucketIndex$2(rest[this._computeHashCode$1(object)], ob ject) >= 0;
6625 },
6626 lookup$1: function(object) {
6627 var t1;
6628 if (!(typeof object === "string" && object !== "__proto__"))
6629 t1 = typeof object === "number" && (object & 0x3ffffff) === object;
6630 else
6631 t1 = true;
6632 if (t1)
6633 return this.contains$1(0, object) ? object : null;
6634 else
6635 return this._lookup$1(object);
6636 },
6637 _lookup$1: function(object) {
6638 var rest, bucket, index;
6639 rest = this._collection$_rest;
6640 if (rest == null)
6641 return;
6642 bucket = rest[this._computeHashCode$1(object)];
6643 index = this._findBucketIndex$2(bucket, object);
6644 if (index < 0)
6645 return;
6646 return J.$index$asx(bucket, index).get$_collection$_element();
6647 },
6648 forEach$1: function(_, action) {
6649 var cell, modifications;
6650 cell = this._collection$_first;
6651 modifications = this._collection$_modifications;
6652 for (; cell != null;) {
6653 action.call$1(cell._collection$_element);
6654 if (modifications !== this._collection$_modifications)
6655 throw H.wrapException(new P.ConcurrentModificationError(this));
6656 cell = cell._collection$_next;
6657 }
6658 },
6659 get$last: function(_) {
6660 var t1 = this._last;
6661 if (t1 == null)
6662 throw H.wrapException(new P.StateError("No elements"));
6663 return t1._collection$_element;
6664 },
6665 add$1: function(_, element) {
6666 var strings, table, nums;
6667 if (typeof element === "string" && element !== "__proto__") {
6668 strings = this._collection$_strings;
6669 if (strings == null) {
6670 table = Object.create(null);
6671 table["<non-identifier-key>"] = table;
6672 delete table["<non-identifier-key>"];
6673 this._collection$_strings = table;
6674 strings = table;
6675 }
6676 return this._addHashTableEntry$2(strings, element);
6677 } else if (typeof element === "number" && (element & 0x3ffffff) === elem ent) {
6678 nums = this._collection$_nums;
6679 if (nums == null) {
6680 table = Object.create(null);
6681 table["<non-identifier-key>"] = table;
6682 delete table["<non-identifier-key>"];
6683 this._collection$_nums = table;
6684 nums = table;
6685 }
6686 return this._addHashTableEntry$2(nums, element);
6687 } else
6688 return this._add$1(element);
6689 },
6690 _add$1: function(element) {
6691 var rest, hash, bucket;
6692 rest = this._collection$_rest;
6693 if (rest == null) {
6694 rest = P._LinkedHashSet__newHashTable();
6695 this._collection$_rest = rest;
6696 }
6697 hash = this._computeHashCode$1(element);
6698 bucket = rest[hash];
6699 if (bucket == null)
6700 rest[hash] = [this._newLinkedCell$1(element)];
6701 else {
6702 if (this._findBucketIndex$2(bucket, element) >= 0)
6703 return false;
6704 bucket.push(this._newLinkedCell$1(element));
6705 }
6706 return true;
6707 },
6708 remove$1: function(_, object) {
6709 if (typeof object === "string" && object !== "__proto__")
6710 return this._removeHashTableEntry$2(this._collection$_strings, object) ;
6711 else if (typeof object === "number" && (object & 0x3ffffff) === object)
6712 return this._removeHashTableEntry$2(this._collection$_nums, object);
6713 else
6714 return this._remove$1(object);
6715 },
6716 _remove$1: function(object) {
6717 var rest, bucket, index;
6718 rest = this._collection$_rest;
6719 if (rest == null)
6720 return false;
6721 bucket = rest[this._computeHashCode$1(object)];
6722 index = this._findBucketIndex$2(bucket, object);
6723 if (index < 0)
6724 return false;
6725 this._unlinkCell$1(bucket.splice(index, 1)[0]);
6726 return true;
6727 },
6728 clear$0: function(_) {
6729 if (this._collection$_length > 0) {
6730 this._last = null;
6731 this._collection$_first = null;
6732 this._collection$_rest = null;
6733 this._collection$_nums = null;
6734 this._collection$_strings = null;
6735 this._collection$_length = 0;
6736 this._collection$_modifications = this._collection$_modifications + 1 & 67108863;
6737 }
6738 },
6739 _addHashTableEntry$2: function(table, element) {
6740 if (table[element] != null)
6741 return false;
6742 table[element] = this._newLinkedCell$1(element);
6743 return true;
6744 },
6745 _removeHashTableEntry$2: function(table, element) {
6746 var cell;
6747 if (table == null)
6748 return false;
6749 cell = table[element];
6750 if (cell == null)
6751 return false;
6752 this._unlinkCell$1(cell);
6753 delete table[element];
6754 return true;
6755 },
6756 _newLinkedCell$1: function(element) {
6757 var cell, last;
6758 cell = new P.LinkedHashSetCell(element, null, null);
6759 if (this._collection$_first == null) {
6760 this._last = cell;
6761 this._collection$_first = cell;
6762 } else {
6763 last = this._last;
6764 cell._previous = last;
6765 last._collection$_next = cell;
6766 this._last = cell;
6767 }
6768 ++this._collection$_length;
6769 this._collection$_modifications = this._collection$_modifications + 1 & 67108863;
6770 return cell;
6771 },
6772 _unlinkCell$1: function(cell) {
6773 var previous, next;
6774 previous = cell.get$_previous();
6775 next = cell._collection$_next;
6776 if (previous == null)
6777 this._collection$_first = next;
6778 else
6779 previous._collection$_next = next;
6780 if (next == null)
6781 this._last = previous;
6782 else
6783 next._previous = previous;
6784 --this._collection$_length;
6785 this._collection$_modifications = this._collection$_modifications + 1 & 67108863;
6786 },
6787 _computeHashCode$1: function(element) {
6788 return J.get$hashCode$(element) & 0x3ffffff;
6789 },
6790 _findBucketIndex$2: function(bucket, element) {
6791 var $length, i;
6792 if (bucket == null)
6793 return -1;
6794 $length = bucket.length;
6795 for (i = 0; i < $length; ++i)
6796 if (J.$eq$(bucket[i].get$_collection$_element(), element))
6797 return i;
6798 return -1;
6799 },
6800 $isEfficientLength: 1,
6801 static: {_LinkedHashSet__newHashTable: function() {
6802 var table = Object.create(null);
6803 table["<non-identifier-key>"] = table;
6804 delete table["<non-identifier-key>"];
6805 return table;
6806 }}
6807 },
6808 LinkedHashSetCell: {
6809 "^": "Object;_collection$_element<,_collection$_next,_previous<"
6810 },
6811 LinkedHashSetIterator: {
6812 "^": "Object;_set,_collection$_modifications,_cell,_collection$_current",
6813 get$current: function() {
6814 return this._collection$_current;
6815 },
6816 moveNext$0: function() {
6817 var t1 = this._set;
6818 if (this._collection$_modifications !== t1._collection$_modifications)
6819 throw H.wrapException(new P.ConcurrentModificationError(t1));
6820 else {
6821 t1 = this._cell;
6822 if (t1 == null) {
6823 this._collection$_current = null;
6824 return false;
6825 } else {
6826 this._collection$_current = t1._collection$_element;
6827 this._cell = t1._collection$_next;
6828 return true;
6829 }
6830 }
6831 }
6832 },
6833 UnmodifiableListView: {
6834 "^": "UnmodifiableListBase;_collection$_source",
6835 get$length: function(_) {
6836 return this._collection$_source.length;
6837 },
6838 $index: function(_, index) {
6839 var t1 = this._collection$_source;
6840 if (index >>> 0 !== index || index >= t1.length)
6841 return H.ioore(t1, index);
6842 return t1[index];
6843 }
6844 },
6845 _HashSetBase: {
6846 "^": "SetBase;"
6847 },
6848 IterableBase: {
6849 "^": "Iterable;"
6850 },
6851 ListBase: {
6852 "^": "Object_ListMixin;"
6853 },
6854 Object_ListMixin: {
6855 "^": "Object+ListMixin;",
6856 $isList: 1,
6857 $asList: null,
6858 $isEfficientLength: 1
6859 },
6860 ListMixin: {
6861 "^": "Object;",
6862 get$iterator: function(receiver) {
6863 return H.setRuntimeTypeInfo(new H.ListIterator(receiver, this.get$length (receiver), 0, null), [H.getRuntimeTypeArgument(receiver, "ListMixin", 0)]);
6864 },
6865 elementAt$1: function(receiver, index) {
6866 return this.$index(receiver, index);
6867 },
6868 forEach$1: function(receiver, action) {
6869 var $length, i;
6870 $length = this.get$length(receiver);
6871 for (i = 0; i < $length; ++i) {
6872 action.call$1(this.$index(receiver, i));
6873 if ($length !== this.get$length(receiver))
6874 throw H.wrapException(new P.ConcurrentModificationError(receiver));
6875 }
6876 },
6877 get$isEmpty: function(receiver) {
6878 return this.get$length(receiver) === 0;
6879 },
6880 get$isNotEmpty: function(receiver) {
6881 return this.get$length(receiver) !== 0;
6882 },
6883 get$last: function(receiver) {
6884 if (this.get$length(receiver) === 0)
6885 throw H.wrapException(H.IterableElementError_noElement());
6886 return this.$index(receiver, this.get$length(receiver) - 1);
6887 },
6888 contains$1: function(receiver, element) {
6889 var $length, i;
6890 $length = this.get$length(receiver);
6891 for (i = 0; i < this.get$length(receiver); ++i) {
6892 if (J.$eq$(this.$index(receiver, i), element))
6893 return true;
6894 if ($length !== this.get$length(receiver))
6895 throw H.wrapException(new P.ConcurrentModificationError(receiver));
6896 }
6897 return false;
6898 },
6899 where$1: function(receiver, test) {
6900 return H.setRuntimeTypeInfo(new H.WhereIterable(receiver, test), [H.getR untimeTypeArgument(receiver, "ListMixin", 0)]);
6901 },
6902 map$1: function(receiver, f) {
6903 return H.setRuntimeTypeInfo(new H.MappedListIterable(receiver, f), [null , null]);
6904 },
6905 add$1: function(receiver, element) {
6906 var t1 = this.get$length(receiver);
6907 this.set$length(receiver, t1 + 1);
6908 this.$indexSet(receiver, t1, element);
6909 },
6910 indexOf$2: function(receiver, element, startIndex) {
6911 var i;
6912 if (startIndex >= this.get$length(receiver))
6913 return -1;
6914 if (startIndex < 0)
6915 startIndex = 0;
6916 for (i = startIndex; i < this.get$length(receiver); ++i)
6917 if (J.$eq$(this.$index(receiver, i), element))
6918 return i;
6919 return -1;
6920 },
6921 indexOf$1: function($receiver, element) {
6922 return this.indexOf$2($receiver, element, 0);
6923 },
6924 lastIndexOf$2: function(receiver, element, startIndex) {
6925 var i;
6926 if (startIndex < 0)
6927 return -1;
6928 if (startIndex >= this.get$length(receiver))
6929 startIndex = this.get$length(receiver) - 1;
6930 for (i = startIndex; i >= 0; --i)
6931 if (J.$eq$(this.$index(receiver, i), element))
6932 return i;
6933 return -1;
6934 },
6935 toString$0: function(receiver) {
6936 return P.IterableBase_iterableToFullString(receiver, "[", "]");
6937 },
6938 $isList: 1,
6939 $asList: null,
6940 $isEfficientLength: 1
6941 },
6942 Maps_mapToString_closure: {
6943 "^": "Closure:3;_collection$_box_0,_captured_result_1",
6944 call$2: function(k, v) {
6945 var t1, t2;
6946 t1 = this._collection$_box_0;
6947 if (!t1._captured_first_0)
6948 this._captured_result_1._contents += ", ";
6949 t1._captured_first_0 = false;
6950 t1 = this._captured_result_1;
6951 t2 = t1._contents += H.S(k);
6952 t1._contents = t2 + ": ";
6953 t1._contents += H.S(v);
6954 }
6955 },
6956 ListQueue: {
6957 "^": "Iterable;_table,_head,_tail,_modificationCount",
6958 get$iterator: function(_) {
6959 var t1 = new P._ListQueueIterator(this, this._tail, this._modificationCo unt, this._head, null);
6960 t1.$builtinTypeInfo = this.$builtinTypeInfo;
6961 return t1;
6962 },
6963 forEach$1: function(_, action) {
6964 var modificationCount, i, t1;
6965 modificationCount = this._modificationCount;
6966 for (i = this._head; i !== this._tail; i = (i + 1 & this._table.length - 1) >>> 0) {
6967 t1 = this._table;
6968 if (i < 0 || i >= t1.length)
6969 return H.ioore(t1, i);
6970 action.call$1(t1[i]);
6971 if (modificationCount !== this._modificationCount)
6972 H.throwExpression(new P.ConcurrentModificationError(this));
6973 }
6974 },
6975 get$isEmpty: function(_) {
6976 return this._head === this._tail;
6977 },
6978 get$length: function(_) {
6979 return (this._tail - this._head & this._table.length - 1) >>> 0;
6980 },
6981 get$last: function(_) {
6982 var t1, t2, t3;
6983 t1 = this._head;
6984 t2 = this._tail;
6985 if (t1 === t2)
6986 throw H.wrapException(H.IterableElementError_noElement());
6987 t1 = this._table;
6988 t3 = t1.length;
6989 t2 = (t2 - 1 & t3 - 1) >>> 0;
6990 if (t2 < 0 || t2 >= t3)
6991 return H.ioore(t1, t2);
6992 return t1[t2];
6993 },
6994 add$1: function(_, value) {
6995 this._add$1(value);
6996 },
6997 clear$0: function(_) {
6998 var i, t1, t2, t3, t4;
6999 i = this._head;
7000 t1 = this._tail;
7001 if (i !== t1) {
7002 for (t2 = this._table, t3 = t2.length, t4 = t3 - 1; i !== t1; i = (i + 1 & t4) >>> 0) {
7003 if (i < 0 || i >= t3)
7004 return H.ioore(t2, i);
7005 t2[i] = null;
7006 }
7007 this._tail = 0;
7008 this._head = 0;
7009 ++this._modificationCount;
7010 }
7011 },
7012 toString$0: function(_) {
7013 return P.IterableBase_iterableToFullString(this, "{", "}");
7014 },
7015 removeFirst$0: function() {
7016 var t1, t2, t3, result;
7017 t1 = this._head;
7018 if (t1 === this._tail)
7019 throw H.wrapException(H.IterableElementError_noElement());
7020 ++this._modificationCount;
7021 t2 = this._table;
7022 t3 = t2.length;
7023 if (t1 >= t3)
7024 return H.ioore(t2, t1);
7025 result = t2[t1];
7026 t2[t1] = null;
7027 this._head = (t1 + 1 & t3 - 1) >>> 0;
7028 return result;
7029 },
7030 _add$1: function(element) {
7031 var t1, t2, t3;
7032 t1 = this._table;
7033 t2 = this._tail;
7034 t3 = t1.length;
7035 if (t2 < 0 || t2 >= t3)
7036 return H.ioore(t1, t2);
7037 t1[t2] = element;
7038 t3 = (t2 + 1 & t3 - 1) >>> 0;
7039 this._tail = t3;
7040 if (this._head === t3)
7041 this._grow$0();
7042 ++this._modificationCount;
7043 },
7044 _grow$0: function() {
7045 var t1, newTable, t2, split;
7046 t1 = new Array(this._table.length * 2);
7047 t1.fixed$length = Array;
7048 newTable = H.setRuntimeTypeInfo(t1, [H.getTypeArgumentByIndex(this, 0)]) ;
7049 t1 = this._table;
7050 t2 = this._head;
7051 split = t1.length - t2;
7052 C.JSArray_methods.setRange$4(newTable, 0, split, t1, t2);
7053 C.JSArray_methods.setRange$4(newTable, split, split + this._head, this._ table, 0);
7054 this._head = 0;
7055 this._tail = this._table.length;
7056 this._table = newTable;
7057 },
7058 ListQueue$1: function(initialCapacity, $E) {
7059 var t1 = new Array(8);
7060 t1.fixed$length = Array;
7061 this._table = H.setRuntimeTypeInfo(t1, [$E]);
7062 },
7063 $isEfficientLength: 1,
7064 static: {ListQueue$: function(initialCapacity, $E) {
7065 var t1 = H.setRuntimeTypeInfo(new P.ListQueue(null, 0, 0, 0), [$E]);
7066 t1.ListQueue$1(initialCapacity, $E);
7067 return t1;
7068 }}
7069 },
7070 _ListQueueIterator: {
7071 "^": "Object;_queue,_end,_modificationCount,_collection$_position,_collect ion$_current",
7072 get$current: function() {
7073 return this._collection$_current;
7074 },
7075 moveNext$0: function() {
7076 var t1, t2, t3;
7077 t1 = this._queue;
7078 if (this._modificationCount !== t1._modificationCount)
7079 H.throwExpression(new P.ConcurrentModificationError(t1));
7080 t2 = this._collection$_position;
7081 if (t2 === this._end) {
7082 this._collection$_current = null;
7083 return false;
7084 }
7085 t1 = t1._table;
7086 t3 = t1.length;
7087 if (t2 >= t3)
7088 return H.ioore(t1, t2);
7089 this._collection$_current = t1[t2];
7090 this._collection$_position = (t2 + 1 & t3 - 1) >>> 0;
7091 return true;
7092 }
7093 },
7094 SetMixin: {
7095 "^": "Object;",
7096 get$isEmpty: function(_) {
7097 return this.get$length(this) === 0;
7098 },
7099 get$isNotEmpty: function(_) {
7100 return this.get$length(this) !== 0;
7101 },
7102 addAll$1: function(_, elements) {
7103 var t1;
7104 for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();)
7105 this.add$1(0, t1.get$current());
7106 },
7107 map$1: function(_, f) {
7108 return H.setRuntimeTypeInfo(new H.EfficientLengthMappedIterable(this, f) , [H.getTypeArgumentByIndex(this, 0), null]);
7109 },
7110 toString$0: function(_) {
7111 return P.IterableBase_iterableToFullString(this, "{", "}");
7112 },
7113 forEach$1: function(_, f) {
7114 var t1;
7115 for (t1 = this.get$iterator(this); t1.moveNext$0();)
7116 f.call$1(t1.get$current());
7117 },
7118 join$1: function(_, separator) {
7119 var iterator, buffer, t1;
7120 iterator = this.get$iterator(this);
7121 if (!iterator.moveNext$0())
7122 return "";
7123 buffer = new P.StringBuffer("");
7124 if (separator === "") {
7125 do
7126 buffer._contents += H.S(iterator.get$current());
7127 while (iterator.moveNext$0());
7128 } else {
7129 buffer._contents = H.S(iterator.get$current());
7130 for (; iterator.moveNext$0();) {
7131 buffer._contents += separator;
7132 buffer._contents += H.S(iterator.get$current());
7133 }
7134 }
7135 t1 = buffer._contents;
7136 return t1.charCodeAt(0) == 0 ? t1 : t1;
7137 },
7138 get$last: function(_) {
7139 var it, result;
7140 it = this.get$iterator(this);
7141 if (!it.moveNext$0())
7142 throw H.wrapException(H.IterableElementError_noElement());
7143 do
7144 result = it.get$current();
7145 while (it.moveNext$0());
7146 return result;
7147 },
7148 $isEfficientLength: 1
7149 },
7150 SetBase: {
7151 "^": "SetMixin;"
7152 }
7153 }], ["dart.convert", "dart:convert",, P, {
7154 "^": "",
7155 _convertJsonToDartLazy: function(object) {
7156 var i;
7157 if (object == null)
7158 return;
7159 if (typeof object != "object")
7160 return object;
7161 if (Object.getPrototypeOf(object) !== Array.prototype)
7162 return new P._JsonMap(object, Object.create(null), null);
7163 for (i = 0; i < object.length; ++i)
7164 object[i] = P._convertJsonToDartLazy(object[i]);
7165 return object;
7166 },
7167 _parseJson: function(source, reviver) {
7168 var parsed, e, t1, exception;
7169 t1 = source;
7170 if (typeof t1 !== "string")
7171 throw H.wrapException(H.argumentErrorValue(source));
7172 parsed = null;
7173 try {
7174 parsed = JSON.parse(source);
7175 } catch (exception) {
7176 t1 = H.unwrapException(exception);
7177 e = t1;
7178 throw H.wrapException(new P.FormatException(String(e), null, null));
7179 }
7180 return P._convertJsonToDartLazy(parsed);
7181 },
7182 _isLeadSurrogate: function(codeUnit) {
7183 codeUnit.$and(0, 64512);
7184 return false;
7185 },
7186 _combineSurrogatePair: function(lead, tail) {
7187 return (C.JSInt_methods.$add(65536, lead.$and(0, 1023).$shl(0, 10)) | tail & 1023) >>> 0;
7188 },
7189 _JsonMap: {
7190 "^": "Object;_original,_processed,_data",
7191 $index: function(_, key) {
7192 var t1, result;
7193 t1 = this._processed;
7194 if (t1 == null)
7195 return this._data.$index(0, key);
7196 else if (typeof key !== "string")
7197 return;
7198 else {
7199 result = t1[key];
7200 return typeof result == "undefined" ? this._process$1(key) : result;
7201 }
7202 },
7203 get$length: function(_) {
7204 var t1;
7205 if (this._processed == null) {
7206 t1 = this._data;
7207 t1 = t1.get$length(t1);
7208 } else
7209 t1 = this._computeKeys$0().length;
7210 return t1;
7211 },
7212 get$isEmpty: function(_) {
7213 var t1;
7214 if (this._processed == null) {
7215 t1 = this._data;
7216 t1 = t1.get$length(t1);
7217 } else
7218 t1 = this._computeKeys$0().length;
7219 return t1 === 0;
7220 },
7221 get$isNotEmpty: function(_) {
7222 var t1;
7223 if (this._processed == null) {
7224 t1 = this._data;
7225 t1 = t1.get$length(t1);
7226 } else
7227 t1 = this._computeKeys$0().length;
7228 return t1 > 0;
7229 },
7230 get$values: function(_) {
7231 var t1;
7232 if (this._processed == null) {
7233 t1 = this._data;
7234 return t1.get$values(t1);
7235 }
7236 return H.MappedIterable_MappedIterable(this._computeKeys$0(), new P._Jso nMap_values_closure(this), null, null);
7237 },
7238 $indexSet: function(_, key, value) {
7239 var processed, original;
7240 if (this._processed == null)
7241 this._data.$indexSet(0, key, value);
7242 else if (this.containsKey$1(key)) {
7243 processed = this._processed;
7244 processed[key] = value;
7245 original = this._original;
7246 if (original == null ? processed != null : original !== processed)
7247 original[key] = null;
7248 } else
7249 this._upgrade$0().$indexSet(0, key, value);
7250 },
7251 containsKey$1: function(key) {
7252 if (this._processed == null)
7253 return this._data.containsKey$1(key);
7254 if (typeof key !== "string")
7255 return false;
7256 return Object.prototype.hasOwnProperty.call(this._original, key);
7257 },
7258 putIfAbsent$2: function(key, ifAbsent) {
7259 var value;
7260 if (this.containsKey$1(key))
7261 return this.$index(0, key);
7262 value = ifAbsent.call$0();
7263 this.$indexSet(0, key, value);
7264 return value;
7265 },
7266 forEach$1: function(_, f) {
7267 var keys, i, key, value;
7268 if (this._processed == null)
7269 return this._data.forEach$1(0, f);
7270 keys = this._computeKeys$0();
7271 for (i = 0; i < keys.length; ++i) {
7272 key = keys[i];
7273 value = this._processed[key];
7274 if (typeof value == "undefined") {
7275 value = P._convertJsonToDartLazy(this._original[key]);
7276 this._processed[key] = value;
7277 }
7278 f.call$2(key, value);
7279 if (keys !== this._data)
7280 throw H.wrapException(new P.ConcurrentModificationError(this));
7281 }
7282 },
7283 toString$0: function(_) {
7284 return P.Maps_mapToString(this);
7285 },
7286 _computeKeys$0: function() {
7287 var keys = this._data;
7288 if (keys == null) {
7289 keys = Object.keys(this._original);
7290 this._data = keys;
7291 }
7292 return keys;
7293 },
7294 _upgrade$0: function() {
7295 var result, keys, i, t1, key;
7296 if (this._processed == null)
7297 return this._data;
7298 result = P.LinkedHashMap__makeEmpty();
7299 keys = this._computeKeys$0();
7300 for (i = 0; t1 = keys.length, i < t1; ++i) {
7301 key = keys[i];
7302 result.$indexSet(0, key, this.$index(0, key));
7303 }
7304 if (t1 === 0)
7305 keys.push(null);
7306 else
7307 C.JSArray_methods.set$length(keys, 0);
7308 this._processed = null;
7309 this._original = null;
7310 this._data = result;
7311 return result;
7312 },
7313 _process$1: function(key) {
7314 var result;
7315 if (!Object.prototype.hasOwnProperty.call(this._original, key))
7316 return;
7317 result = P._convertJsonToDartLazy(this._original[key]);
7318 return this._processed[key] = result;
7319 }
7320 },
7321 _JsonMap_values_closure: {
7322 "^": "Closure:0;_convert$_captured_this_0",
7323 call$1: function(each) {
7324 return this._convert$_captured_this_0.$index(0, each);
7325 }
7326 },
7327 Codec: {
7328 "^": "Object;"
7329 },
7330 Converter: {
7331 "^": "Object;"
7332 },
7333 Encoding: {
7334 "^": "Codec;",
7335 $asCodec: function() {
7336 return [P.String, [P.List, P.$int]];
7337 }
7338 },
7339 HtmlEscapeMode: {
7340 "^": "Object;_convert$_name,escapeLtGt,escapeQuot,escapeApos,escapeSlash",
7341 toString$0: function(_) {
7342 return this._convert$_name;
7343 }
7344 },
7345 HtmlEscape: {
7346 "^": "Converter;mode",
7347 _convert$3: function(text, start, end) {
7348 var t1, t2, t3, t4, t5, i, result, replacement, t6;
7349 if (typeof end !== "number")
7350 return H.iae(end);
7351 t1 = J.getInterceptor$asx(text);
7352 t2 = this.mode;
7353 t3 = t2.escapeSlash;
7354 t4 = t2.escapeLtGt;
7355 t5 = t2.escapeApos;
7356 t2 = t2.escapeQuot;
7357 i = start;
7358 result = null;
7359 for (; i < end; ++i) {
7360 switch (t1.$index(text, i)) {
7361 case "&":
7362 replacement = "&amp;";
7363 break;
7364 case "\"":
7365 replacement = t2 ? "&quot;" : null;
7366 break;
7367 case "'":
7368 replacement = t5 ? "&#39;" : null;
7369 break;
7370 case "<":
7371 replacement = t4 ? "&lt;" : null;
7372 break;
7373 case ">":
7374 replacement = t4 ? "&gt;" : null;
7375 break;
7376 case "/":
7377 replacement = t3 ? "&#47;" : null;
7378 break;
7379 default:
7380 replacement = null;
7381 }
7382 if (replacement != null) {
7383 if (result == null)
7384 result = new P.StringBuffer("");
7385 if (i > start) {
7386 t6 = t1.substring$2(text, start, i);
7387 result._contents = result._contents + t6;
7388 }
7389 result._contents = result._contents + replacement;
7390 start = i + 1;
7391 }
7392 }
7393 if (result == null)
7394 return;
7395 if (end > start)
7396 result._contents += t1.substring$2(text, start, end);
7397 t1 = result._contents;
7398 return t1.charCodeAt(0) == 0 ? t1 : t1;
7399 },
7400 $asConverter: function() {
7401 return [P.String, P.String];
7402 }
7403 },
7404 JsonCodec: {
7405 "^": "Codec;_reviver,_toEncodable",
7406 decode$2$reviver: function(source, reviver) {
7407 return P._parseJson(source, this.get$decoder()._reviver);
7408 },
7409 decode$1: function(source) {
7410 return this.decode$2$reviver(source, null);
7411 },
7412 get$decoder: function() {
7413 return C.JsonDecoder_null;
7414 },
7415 $asCodec: function() {
7416 return [P.Object, P.String];
7417 }
7418 },
7419 JsonDecoder: {
7420 "^": "Converter;_reviver",
7421 $asConverter: function() {
7422 return [P.String, P.Object];
7423 }
7424 },
7425 Utf8Codec: {
7426 "^": "Encoding;_allowMalformed",
7427 get$name: function(_) {
7428 return "utf-8";
7429 },
7430 get$encoder: function() {
7431 return C.C_Utf8Encoder;
7432 }
7433 },
7434 Utf8Encoder: {
7435 "^": "Converter;",
7436 convert$3: function(string, start, end) {
7437 var stringLength, $length, t1, encoder;
7438 stringLength = string.get$length(string);
7439 P.RangeError_checkValidRange(start, end, stringLength, null, null, null) ;
7440 $length = stringLength.$sub(0, start);
7441 t1 = $length.$mul(0, 3);
7442 t1 = new Uint8Array(t1);
7443 encoder = new P._Utf8Encoder(0, 0, t1);
7444 encoder._fillBuffer$3(string, start, stringLength);
7445 encoder._writeSurrogate$2(string.codeUnitAt$1(0, stringLength.$sub(0, 1) ), 0);
7446 return new Uint8Array(t1.subarray(0, H._checkValidRange(0, encoder._buff erIndex, t1.length)));
7447 },
7448 convert$1: function(string) {
7449 return this.convert$3(string, 0, null);
7450 },
7451 $asConverter: function() {
7452 return [P.String, [P.List, P.$int]];
7453 }
7454 },
7455 _Utf8Encoder: {
7456 "^": "Object;_carry,_bufferIndex,_buffer",
7457 _writeSurrogate$2: function(leadingSurrogate, nextCodeUnit) {
7458 var t1, t2, t3, t4;
7459 if ((nextCodeUnit & 64512) === 56320)
7460 P._combineSurrogatePair(leadingSurrogate, nextCodeUnit);
7461 else {
7462 t1 = this._buffer;
7463 t2 = this._bufferIndex++;
7464 t3 = C.JSInt_methods.$or(224, leadingSurrogate.$shr(0, 12));
7465 t4 = t1.length;
7466 if (t2 >= t4)
7467 return H.ioore(t1, t2);
7468 t1[t2] = t3;
7469 t3 = this._bufferIndex++;
7470 t2 = C.JSInt_methods.$or(128, leadingSurrogate.$shr(0, 6).$and(0, 63)) ;
7471 if (t3 >= t4)
7472 return H.ioore(t1, t3);
7473 t1[t3] = t2;
7474 t2 = this._bufferIndex++;
7475 t3 = C.JSInt_methods.$or(128, leadingSurrogate.$and(0, 63));
7476 if (t2 >= t4)
7477 return H.ioore(t1, t2);
7478 t1[t2] = t3;
7479 return false;
7480 }
7481 },
7482 _fillBuffer$3: function(str, start, end) {
7483 var t1, t2, stringIndex, codeUnit, t3, stringIndex0, t4;
7484 if (P._isLeadSurrogate(str.codeUnitAt$1(0, end.$sub(0, 1))))
7485 end = end.$sub(0, 1);
7486 for (t1 = this._buffer, t2 = t1.length, stringIndex = start; C.JSInt_met hods.$lt(stringIndex, end); ++stringIndex) {
7487 codeUnit = str.codeUnitAt$1(0, stringIndex);
7488 if (codeUnit.$le(0, 127)) {
7489 t3 = this._bufferIndex;
7490 if (t3 >= t2)
7491 break;
7492 this._bufferIndex = t3 + 1;
7493 t1[t3] = codeUnit;
7494 } else if (P._isLeadSurrogate(codeUnit)) {
7495 if (this._bufferIndex + 3 >= t2)
7496 break;
7497 stringIndex0 = stringIndex + 1;
7498 if (this._writeSurrogate$2(codeUnit, str.codeUnitAt$1(0, stringIndex 0)))
7499 stringIndex = stringIndex0;
7500 } else if (codeUnit.$le(0, 2047)) {
7501 t3 = this._bufferIndex;
7502 t4 = t3 + 1;
7503 if (t4 >= t2)
7504 break;
7505 this._bufferIndex = t4;
7506 t4 = C.JSInt_methods.$or(192, codeUnit.$shr(0, 6));
7507 if (t3 >= t2)
7508 return H.ioore(t1, t3);
7509 t1[t3] = t4;
7510 t4 = this._bufferIndex++;
7511 t3 = C.JSInt_methods.$or(128, codeUnit.$and(0, 63));
7512 if (t4 >= t2)
7513 return H.ioore(t1, t4);
7514 t1[t4] = t3;
7515 } else {
7516 t3 = this._bufferIndex;
7517 if (t3 + 2 >= t2)
7518 break;
7519 this._bufferIndex = t3 + 1;
7520 t4 = C.JSInt_methods.$or(224, codeUnit.$shr(0, 12));
7521 if (t3 >= t2)
7522 return H.ioore(t1, t3);
7523 t1[t3] = t4;
7524 t4 = this._bufferIndex++;
7525 t3 = C.JSInt_methods.$or(128, codeUnit.$shr(0, 6).$and(0, 63));
7526 if (t4 >= t2)
7527 return H.ioore(t1, t4);
7528 t1[t4] = t3;
7529 t3 = this._bufferIndex++;
7530 t4 = C.JSInt_methods.$or(128, codeUnit.$and(0, 63));
7531 if (t3 >= t2)
7532 return H.ioore(t1, t3);
7533 t1[t3] = t4;
7534 }
7535 }
7536 return stringIndex;
7537 }
7538 },
7539 Utf8Decoder: {
7540 "^": "Converter;_allowMalformed",
7541 convert$3: function(codeUnits, start, end) {
7542 var $length, buffer, t1, decoder;
7543 $length = J.get$length$asx(codeUnits);
7544 P.RangeError_checkValidRange(start, end, $length, null, null, null);
7545 buffer = new P.StringBuffer("");
7546 t1 = this._allowMalformed;
7547 decoder = new P._Utf8Decoder(t1, buffer, true, 0, 0, 0);
7548 decoder.convert$3(codeUnits, start, $length);
7549 if (decoder._expectedUnits > 0) {
7550 if (!t1)
7551 H.throwExpression(new P.FormatException("Unfinished UTF-8 octet sequ ence", null, null));
7552 buffer._contents += H.Primitives_stringFromCharCode(65533);
7553 decoder._convert$_value = 0;
7554 decoder._expectedUnits = 0;
7555 decoder._extraUnits = 0;
7556 }
7557 t1 = buffer._contents;
7558 return t1.charCodeAt(0) == 0 ? t1 : t1;
7559 },
7560 convert$1: function(codeUnits) {
7561 return this.convert$3(codeUnits, 0, null);
7562 },
7563 $asConverter: function() {
7564 return [[P.List, P.$int], P.String];
7565 }
7566 },
7567 _Utf8Decoder: {
7568 "^": "Object;_allowMalformed,_stringSink,_isFirstCharacter,_convert$_value ,_expectedUnits,_extraUnits",
7569 convert$3: function(codeUnits, startIndex, endIndex) {
7570 var value, expectedUnits, extraUnits, t1, t2, t3, t4, t5, i, unit, t6, o neBytes, i0;
7571 value = this._convert$_value;
7572 expectedUnits = this._expectedUnits;
7573 extraUnits = this._extraUnits;
7574 this._convert$_value = 0;
7575 this._expectedUnits = 0;
7576 this._extraUnits = 0;
7577 t1 = new P._Utf8Decoder_convert_scanOneByteCharacters(endIndex);
7578 t2 = new P._Utf8Decoder_convert_addSingleBytes(this, codeUnits, startInd ex, endIndex);
7579 $loop$0:
7580 for (t3 = this._stringSink, t4 = !this._allowMalformed, t5 = J.getInte rceptor$asx(codeUnits), i = startIndex; true; i = i0) {
7581 $multibyte$2:
7582 if (expectedUnits > 0) {
7583 do {
7584 if (i === endIndex)
7585 break $loop$0;
7586 unit = t5.$index(codeUnits, i);
7587 if (typeof unit !== "number")
7588 return unit.$and();
7589 if ((unit & 192) !== 128) {
7590 if (t4)
7591 throw H.wrapException(new P.FormatException("Bad UTF-8 enc oding 0x" + C.JSNumber_methods.toRadixString$1(unit, 16), null, null));
7592 this._isFirstCharacter = false;
7593 t3._contents += H.Primitives_stringFromCharCode(65533);
7594 expectedUnits = 0;
7595 break $multibyte$2;
7596 } else {
7597 value = (value << 6 | unit & 63) >>> 0;
7598 --expectedUnits;
7599 ++i;
7600 }
7601 } while (expectedUnits > 0);
7602 t6 = extraUnits - 1;
7603 if (t6 < 0 || t6 >= 4)
7604 return H.ioore(C.List_127_2047_65535_1114111, t6);
7605 if (value <= C.List_127_2047_65535_1114111[t6]) {
7606 if (t4)
7607 throw H.wrapException(new P.FormatException("Overlong encodi ng of 0x" + C.JSInt_methods.toRadixString$1(value, 16), null, null));
7608 value = 65533;
7609 expectedUnits = 0;
7610 extraUnits = 0;
7611 }
7612 if (value > 1114111) {
7613 if (t4)
7614 throw H.wrapException(new P.FormatException("Character outsi de valid Unicode range: 0x" + C.JSInt_methods.toRadixString$1(value, 16), null, null));
7615 value = 65533;
7616 }
7617 if (!this._isFirstCharacter || value !== 65279)
7618 t3._contents += H.Primitives_stringFromCharCode(value);
7619 this._isFirstCharacter = false;
7620 }
7621 for (; i < endIndex; i = i0) {
7622 oneBytes = t1.call$2(codeUnits, i);
7623 if (J.$gt$n(oneBytes, 0)) {
7624 this._isFirstCharacter = false;
7625 if (typeof oneBytes !== "number")
7626 return H.iae(oneBytes);
7627 i0 = i + oneBytes;
7628 t2.call$2(i, i0);
7629 if (i0 === endIndex)
7630 break;
7631 i = i0;
7632 }
7633 i0 = i + 1;
7634 unit = t5.$index(codeUnits, i);
7635 t6 = J.getInterceptor$n(unit);
7636 if (t6.$lt(unit, 0)) {
7637 if (t4)
7638 throw H.wrapException(new P.FormatException("Negative UTF-8 co de unit: -0x" + J.toRadixString$1$n(t6.$negate(unit), 16), null, null));
7639 t3._contents += H.Primitives_stringFromCharCode(65533);
7640 } else {
7641 if (typeof unit !== "number")
7642 return unit.$and();
7643 if ((unit & 224) === 192) {
7644 value = unit & 31;
7645 expectedUnits = 1;
7646 extraUnits = 1;
7647 continue $loop$0;
7648 }
7649 if ((unit & 240) === 224) {
7650 value = unit & 15;
7651 expectedUnits = 2;
7652 extraUnits = 2;
7653 continue $loop$0;
7654 }
7655 if ((unit & 248) === 240 && unit < 245) {
7656 value = unit & 7;
7657 expectedUnits = 3;
7658 extraUnits = 3;
7659 continue $loop$0;
7660 }
7661 if (t4)
7662 throw H.wrapException(new P.FormatException("Bad UTF-8 encodin g 0x" + C.JSNumber_methods.toRadixString$1(unit, 16), null, null));
7663 this._isFirstCharacter = false;
7664 t3._contents += H.Primitives_stringFromCharCode(65533);
7665 value = 65533;
7666 expectedUnits = 0;
7667 extraUnits = 0;
7668 }
7669 }
7670 break $loop$0;
7671 }
7672 if (expectedUnits > 0) {
7673 this._convert$_value = value;
7674 this._expectedUnits = expectedUnits;
7675 this._extraUnits = extraUnits;
7676 }
7677 }
7678 },
7679 _Utf8Decoder_convert_scanOneByteCharacters: {
7680 "^": "Closure:19;_captured_endIndex_0",
7681 call$2: function(units, from) {
7682 var to, t1, i, unit;
7683 to = this._captured_endIndex_0;
7684 for (t1 = J.getInterceptor$asx(units), i = from; i < to; ++i) {
7685 unit = t1.$index(units, i);
7686 if (typeof unit !== "number")
7687 return unit.$and();
7688 if ((unit & 127) !== unit)
7689 return i - from;
7690 }
7691 return to - from;
7692 }
7693 },
7694 _Utf8Decoder_convert_addSingleBytes: {
7695 "^": "Closure:20;_captured_this_1,_captured_codeUnits_2,_captured_startInd ex_3,_captured_endIndex_4",
7696 call$2: function(from, to) {
7697 this._captured_this_1._stringSink._contents += P.String_String$fromCharC odes(this._captured_codeUnits_2, from, to);
7698 }
7699 }
7700 }], ["dart.core", "dart:core",, P, {
7701 "^": "",
7702 _symbolToString: function(symbol) {
7703 return H.Symbol_getName(symbol);
7704 },
7705 String__stringFromIterable: function(charCodes, start, end) {
7706 var t1, it, i, list;
7707 if (start < 0)
7708 throw H.wrapException(P.RangeError$range(start, 0, J.get$length$asx(char Codes), null, null));
7709 t1 = end == null;
7710 if (!t1 && end < start)
7711 throw H.wrapException(P.RangeError$range(end, start, J.get$length$asx(ch arCodes), null, null));
7712 it = J.get$iterator$ax(charCodes);
7713 for (i = 0; i < start; ++i)
7714 if (!it.moveNext$0())
7715 throw H.wrapException(P.RangeError$range(start, 0, i, null, null));
7716 list = [];
7717 if (t1)
7718 for (; it.moveNext$0();)
7719 list.push(it.get$current());
7720 else
7721 for (i = start; i < end; ++i) {
7722 if (!it.moveNext$0())
7723 throw H.wrapException(P.RangeError$range(end, start, i, null, null)) ;
7724 list.push(it.get$current());
7725 }
7726 return H.Primitives_stringFromCharCodes(list);
7727 },
7728 Error_safeToString: function(object) {
7729 if (typeof object === "number" || typeof object === "boolean" || null == o bject)
7730 return J.toString$0$(object);
7731 if (typeof object === "string")
7732 return JSON.stringify(object);
7733 return P.Error__objectToString(object);
7734 },
7735 Error__objectToString: function(object) {
7736 var t1 = J.getInterceptor(object);
7737 if (!!t1.$isClosure)
7738 return t1.toString$0(object);
7739 return H.Primitives_objectToHumanReadableString(object);
7740 },
7741 Exception_Exception: function(message) {
7742 return new P._Exception(message);
7743 },
7744 List_List$filled: function($length, fill, $E) {
7745 var result, t1, i;
7746 result = J.JSArray_JSArray$fixed($length, $E);
7747 if ($length !== 0 && true)
7748 for (t1 = result.length, i = 0; i < t1; ++i)
7749 result[i] = fill;
7750 return result;
7751 },
7752 List_List$from: function(elements, growable, $E) {
7753 var list, t1;
7754 list = H.setRuntimeTypeInfo([], [$E]);
7755 for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();)
7756 list.push(t1.get$current());
7757 if (growable)
7758 return list;
7759 list.fixed$length = Array;
7760 return list;
7761 },
7762 List_List$generate: function($length, generator, growable, $E) {
7763 var result, t1, i;
7764 if (growable) {
7765 result = H.setRuntimeTypeInfo([], [$E]);
7766 C.JSArray_methods.set$length(result, $length);
7767 } else {
7768 t1 = new Array($length);
7769 t1.fixed$length = Array;
7770 result = H.setRuntimeTypeInfo(t1, [$E]);
7771 }
7772 for (i = 0; i < $length; ++i) {
7773 t1 = generator.call$1(i);
7774 if (i >= result.length)
7775 return H.ioore(result, i);
7776 result[i] = t1;
7777 }
7778 return result;
7779 },
7780 print: function(object) {
7781 var line = H.S(object);
7782 H.printString(line);
7783 },
7784 RegExp_RegExp: function(source, caseSensitive, multiLine) {
7785 return new H.JSSyntaxRegExp(source, H.JSSyntaxRegExp_makeNative(source, mu ltiLine, caseSensitive, false), null, null);
7786 },
7787 String_String$fromCharCodes: function(charCodes, start, end) {
7788 var len;
7789 if (charCodes.constructor === Array) {
7790 len = charCodes.length;
7791 end = P.RangeError_checkValidRange(start, end, len, null, null, null);
7792 return H.Primitives_stringFromCharCodes(start > 0 || end < len ? C.JSArr ay_methods.sublist$2(charCodes, start, end) : charCodes);
7793 }
7794 return P.String__stringFromIterable(charCodes, start, end);
7795 },
7796 NoSuchMethodError_toString_closure: {
7797 "^": "Closure:21;_core$_box_0,_captured_sb_1",
7798 call$2: function(key, value) {
7799 this._captured_sb_1._contents += this._core$_box_0._captured_comma_0;
7800 P._symbolToString(key);
7801 }
7802 },
7803 bool: {
7804 "^": "Object;"
7805 },
7806 "+bool": 0,
7807 DateTime: {
7808 "^": "Object;"
7809 },
7810 $double: {
7811 "^": "num;"
7812 },
7813 "+double": 0,
7814 Duration: {
7815 "^": "Object;_duration<",
7816 $add: function(_, other) {
7817 return new P.Duration(this._duration + other.get$_duration());
7818 },
7819 $sub: function(_, other) {
7820 return new P.Duration(this._duration - other.get$_duration());
7821 },
7822 $lt: function(_, other) {
7823 return this._duration < other.get$_duration();
7824 },
7825 $gt: function(_, other) {
7826 return this._duration > other.get$_duration();
7827 },
7828 $eq: function(_, other) {
7829 if (other == null)
7830 return false;
7831 if (!(other instanceof P.Duration))
7832 return false;
7833 return this._duration === other._duration;
7834 },
7835 get$hashCode: function(_) {
7836 return this._duration & 0x1FFFFFFF;
7837 },
7838 toString$0: function(_) {
7839 var t1, t2, twoDigitMinutes, twoDigitSeconds, sixDigitUs;
7840 t1 = new P.Duration_toString_twoDigits();
7841 t2 = this._duration;
7842 if (t2 < 0)
7843 return "-" + new P.Duration(-t2).toString$0(0);
7844 twoDigitMinutes = t1.call$1(C.JSInt_methods.remainder$1(C.JSInt_methods. _tdivFast$1(t2, 60000000), 60));
7845 twoDigitSeconds = t1.call$1(C.JSInt_methods.remainder$1(C.JSInt_methods. _tdivFast$1(t2, 1000000), 60));
7846 sixDigitUs = new P.Duration_toString_sixDigits().call$1(C.JSInt_methods. remainder$1(t2, 1000000));
7847 return "" + C.JSInt_methods._tdivFast$1(t2, 3600000000) + ":" + H.S(twoD igitMinutes) + ":" + H.S(twoDigitSeconds) + "." + H.S(sixDigitUs);
7848 },
7849 abs$0: function(_) {
7850 return new P.Duration(Math.abs(this._duration));
7851 },
7852 $negate: function(_) {
7853 return new P.Duration(-this._duration);
7854 }
7855 },
7856 Duration_toString_sixDigits: {
7857 "^": "Closure:8;",
7858 call$1: function(n) {
7859 if (n >= 100000)
7860 return "" + n;
7861 if (n >= 10000)
7862 return "0" + n;
7863 if (n >= 1000)
7864 return "00" + n;
7865 if (n >= 100)
7866 return "000" + n;
7867 if (n >= 10)
7868 return "0000" + n;
7869 return "00000" + n;
7870 }
7871 },
7872 Duration_toString_twoDigits: {
7873 "^": "Closure:8;",
7874 call$1: function(n) {
7875 if (n >= 10)
7876 return "" + n;
7877 return "0" + n;
7878 }
7879 },
7880 Error: {
7881 "^": "Object;",
7882 get$stackTrace: function() {
7883 return H.getTraceFromException(this.$thrownJsError);
7884 }
7885 },
7886 NullThrownError: {
7887 "^": "Error;",
7888 toString$0: function(_) {
7889 return "Throw of null.";
7890 }
7891 },
7892 ArgumentError: {
7893 "^": "Error;_hasValue,invalidValue,name>,message>",
7894 get$_errorName: function() {
7895 return "Invalid argument" + (!this._hasValue ? "(s)" : "");
7896 },
7897 get$_errorExplanation: function() {
7898 return "";
7899 },
7900 toString$0: function(_) {
7901 var t1, nameString, message, prefix, explanation, errorValue;
7902 t1 = this.name;
7903 nameString = t1 != null ? " (" + H.S(t1) + ")" : "";
7904 t1 = this.message;
7905 message = t1 == null ? "" : ": " + H.S(t1);
7906 prefix = this.get$_errorName() + nameString + message;
7907 if (!this._hasValue)
7908 return prefix;
7909 explanation = this.get$_errorExplanation();
7910 errorValue = P.Error_safeToString(this.invalidValue);
7911 return prefix + explanation + ": " + H.S(errorValue);
7912 },
7913 static: {ArgumentError$: function(message) {
7914 return new P.ArgumentError(false, null, null, message);
7915 }, ArgumentError$value: function(value, $name, message) {
7916 return new P.ArgumentError(true, value, $name, message);
7917 }}
7918 },
7919 RangeError: {
7920 "^": "ArgumentError;start,end,_hasValue,invalidValue,name,message",
7921 get$_errorName: function() {
7922 return "RangeError";
7923 },
7924 get$_errorExplanation: function() {
7925 var t1, explanation, t2;
7926 t1 = this.start;
7927 if (t1 == null) {
7928 t1 = this.end;
7929 explanation = t1 != null ? ": Not less than or equal to " + H.S(t1) : "";
7930 } else {
7931 t2 = this.end;
7932 if (t2 == null)
7933 explanation = ": Not greater than or equal to " + H.S(t1);
7934 else {
7935 if (typeof t2 !== "number")
7936 return t2.$gt();
7937 if (typeof t1 !== "number")
7938 return H.iae(t1);
7939 if (t2 > t1)
7940 explanation = ": Not in range " + t1 + ".." + t2 + ", inclusive";
7941 else
7942 explanation = t2 < t1 ? ": Valid value range is empty" : ": Only v alid value is " + t1;
7943 }
7944 }
7945 return explanation;
7946 },
7947 static: {RangeError$: function(message) {
7948 return new P.RangeError(null, null, false, null, null, message);
7949 }, RangeError$value: function(value, $name, message) {
7950 return new P.RangeError(null, null, true, value, $name, "Value not in range");
7951 }, RangeError$range: function(invalidValue, minValue, maxValue, $name, m essage) {
7952 return new P.RangeError(minValue, maxValue, true, invalidValue, $name, "Invalid value");
7953 }, RangeError_checkValueInInterval: function(value, minValue, maxValue, $name, message) {
7954 if (value < minValue || value > maxValue)
7955 throw H.wrapException(P.RangeError$range(value, minValue, maxValue, $name, message));
7956 }, RangeError_checkValidRange: function(start, end, $length, startName, endName, message) {
7957 if (0 > start || start > $length)
7958 throw H.wrapException(P.RangeError$range(start, 0, $length, "start", message));
7959 if (end != null) {
7960 if (start > end || end > $length)
7961 throw H.wrapException(P.RangeError$range(end, start, $length, "end ", message));
7962 return end;
7963 }
7964 return $length;
7965 }}
7966 },
7967 IndexError: {
7968 "^": "ArgumentError;indexable,length>,_hasValue,invalidValue,name,message" ,
7969 get$_errorName: function() {
7970 return "RangeError";
7971 },
7972 get$_errorExplanation: function() {
7973 if (J.$lt$n(this.invalidValue, 0))
7974 return ": index must not be negative";
7975 var t1 = this.length;
7976 if (J.$eq$(t1, 0))
7977 return ": no indices are valid";
7978 return ": index should be less than " + H.S(t1);
7979 },
7980 static: {IndexError$: function(invalidValue, indexable, $name, message, $l ength) {
7981 var t1 = $length != null ? $length : J.get$length$asx(indexable);
7982 return new P.IndexError(indexable, t1, true, invalidValue, $name, "Ind ex out of range");
7983 }}
7984 },
7985 UnsupportedError: {
7986 "^": "Error;message>",
7987 toString$0: function(_) {
7988 return "Unsupported operation: " + this.message;
7989 }
7990 },
7991 UnimplementedError: {
7992 "^": "Error;message>",
7993 toString$0: function(_) {
7994 var t1 = this.message;
7995 return t1 != null ? "UnimplementedError: " + H.S(t1) : "UnimplementedErr or";
7996 }
7997 },
7998 StateError: {
7999 "^": "Error;message>",
8000 toString$0: function(_) {
8001 return "Bad state: " + this.message;
8002 }
8003 },
8004 ConcurrentModificationError: {
8005 "^": "Error;modifiedObject",
8006 toString$0: function(_) {
8007 var t1 = this.modifiedObject;
8008 if (t1 == null)
8009 return "Concurrent modification during iteration.";
8010 return "Concurrent modification during iteration: " + H.S(P.Error_safeTo String(t1)) + ".";
8011 }
8012 },
8013 OutOfMemoryError: {
8014 "^": "Object;",
8015 toString$0: function(_) {
8016 return "Out of Memory";
8017 },
8018 get$stackTrace: function() {
8019 return;
8020 },
8021 $isError: 1
8022 },
8023 StackOverflowError: {
8024 "^": "Object;",
8025 toString$0: function(_) {
8026 return "Stack Overflow";
8027 },
8028 get$stackTrace: function() {
8029 return;
8030 },
8031 $isError: 1
8032 },
8033 CyclicInitializationError: {
8034 "^": "Error;variableName",
8035 toString$0: function(_) {
8036 return "Reading static variable '" + this.variableName + "' during its i nitialization";
8037 }
8038 },
8039 _Exception: {
8040 "^": "Object;message>",
8041 toString$0: function(_) {
8042 var t1 = this.message;
8043 if (t1 == null)
8044 return "Exception";
8045 return "Exception: " + H.S(t1);
8046 }
8047 },
8048 FormatException: {
8049 "^": "Object;message>,source,offset",
8050 toString$0: function(_) {
8051 var t1, report, offset, source, lineNum, lineStart, lastWasCR, i, $char, lineEnd, end, start, prefix, postfix, slice;
8052 t1 = this.message;
8053 report = t1 != null && "" !== t1 ? "FormatException: " + H.S(t1) : "Form atException";
8054 offset = this.offset;
8055 source = this.source;
8056 if (typeof source !== "string")
8057 return offset != null ? report + (" (at offset " + H.S(offset) + ")") : report;
8058 if (offset != null)
8059 t1 = offset < 0 || offset > source.length;
8060 else
8061 t1 = false;
8062 if (t1)
8063 offset = null;
8064 if (offset == null) {
8065 if (source.length > 78)
8066 source = J.substring$2$s(source, 0, 75) + "...";
8067 return report + "\n" + H.S(source);
8068 }
8069 for (t1 = J.getInterceptor$s(source), lineNum = 1, lineStart = 0, lastWa sCR = null, i = 0; i < offset; ++i) {
8070 $char = t1.codeUnitAt$1(source, i);
8071 if ($char === 10) {
8072 if (lineStart !== i || lastWasCR !== true)
8073 ++lineNum;
8074 lineStart = i + 1;
8075 lastWasCR = false;
8076 } else if ($char === 13) {
8077 ++lineNum;
8078 lineStart = i + 1;
8079 lastWasCR = true;
8080 }
8081 }
8082 report = lineNum > 1 ? report + (" (at line " + lineNum + ", character " + (offset - lineStart + 1) + ")\n") : report + (" (at character " + (offset + 1 ) + ")\n");
8083 lineEnd = source.length;
8084 for (i = offset; i < lineEnd; ++i) {
8085 $char = t1.codeUnitAt$1(source, i);
8086 if ($char === 10 || $char === 13) {
8087 lineEnd = i;
8088 break;
8089 }
8090 }
8091 if (lineEnd - lineStart > 78)
8092 if (offset - lineStart < 75) {
8093 end = lineStart + 75;
8094 start = lineStart;
8095 prefix = "";
8096 postfix = "...";
8097 } else {
8098 if (lineEnd - offset < 75) {
8099 start = lineEnd - 75;
8100 end = lineEnd;
8101 postfix = "";
8102 } else {
8103 start = offset - 36;
8104 end = offset + 36;
8105 postfix = "...";
8106 }
8107 prefix = "...";
8108 }
8109 else {
8110 end = lineEnd;
8111 start = lineStart;
8112 prefix = "";
8113 postfix = "";
8114 }
8115 slice = t1.substring$2(source, start, end);
8116 return report + prefix + slice + postfix + "\n" + C.JSString_methods.$mu l(" ", offset - start + prefix.length) + "^\n";
8117 }
8118 },
8119 Expando: {
8120 "^": "Object;name>",
8121 toString$0: function(_) {
8122 return "Expando:" + H.S(this.name);
8123 },
8124 $index: function(_, object) {
8125 var values = H.Primitives_getProperty(object, "expando$values");
8126 return values == null ? null : H.Primitives_getProperty(values, this._ge tKey$0());
8127 },
8128 $indexSet: function(_, object, value) {
8129 var values = H.Primitives_getProperty(object, "expando$values");
8130 if (values == null) {
8131 values = new P.Object();
8132 H.Primitives_setProperty(object, "expando$values", values);
8133 }
8134 H.Primitives_setProperty(values, this._getKey$0(), value);
8135 },
8136 _getKey$0: function() {
8137 var key, t1;
8138 key = H.Primitives_getProperty(this, "expando$key");
8139 if (key == null) {
8140 t1 = $.Expando__keyCount;
8141 $.Expando__keyCount = t1 + 1;
8142 key = "expando$key$" + t1;
8143 H.Primitives_setProperty(this, "expando$key", key);
8144 }
8145 return key;
8146 }
8147 },
8148 Function: {
8149 "^": "Object;"
8150 },
8151 $int: {
8152 "^": "num;"
8153 },
8154 "+int": 0,
8155 Iterable: {
8156 "^": "Object;",
8157 map$1: function(_, f) {
8158 return H.MappedIterable_MappedIterable(this, f, H.getRuntimeTypeArgument (this, "Iterable", 0), null);
8159 },
8160 where$1: ["super$Iterable$where", function(_, f) {
8161 return H.setRuntimeTypeInfo(new H.WhereIterable(this, f), [H.getRuntimeT ypeArgument(this, "Iterable", 0)]);
8162 }],
8163 contains$1: function(_, element) {
8164 var t1;
8165 for (t1 = this.get$iterator(this); t1.moveNext$0();)
8166 if (J.$eq$(t1.get$current(), element))
8167 return true;
8168 return false;
8169 },
8170 forEach$1: function(_, f) {
8171 var t1;
8172 for (t1 = this.get$iterator(this); t1.moveNext$0();)
8173 f.call$1(t1.get$current());
8174 },
8175 toList$1$growable: function(_, growable) {
8176 return P.List_List$from(this, growable, H.getRuntimeTypeArgument(this, " Iterable", 0));
8177 },
8178 toList$0: function($receiver) {
8179 return this.toList$1$growable($receiver, true);
8180 },
8181 get$length: function(_) {
8182 var it, count;
8183 it = this.get$iterator(this);
8184 for (count = 0; it.moveNext$0();)
8185 ++count;
8186 return count;
8187 },
8188 get$isEmpty: function(_) {
8189 return !this.get$iterator(this).moveNext$0();
8190 },
8191 get$isNotEmpty: function(_) {
8192 return this.get$isEmpty(this) !== true;
8193 },
8194 get$last: function(_) {
8195 var it, result;
8196 it = this.get$iterator(this);
8197 if (!it.moveNext$0())
8198 throw H.wrapException(H.IterableElementError_noElement());
8199 do
8200 result = it.get$current();
8201 while (it.moveNext$0());
8202 return result;
8203 },
8204 get$single: function(_) {
8205 var it, result;
8206 it = this.get$iterator(this);
8207 if (!it.moveNext$0())
8208 throw H.wrapException(H.IterableElementError_noElement());
8209 result = it.get$current();
8210 if (it.moveNext$0())
8211 throw H.wrapException(H.IterableElementError_tooMany());
8212 return result;
8213 },
8214 elementAt$1: function(_, index) {
8215 var t1, elementIndex, element;
8216 if (index < 0)
8217 H.throwExpression(P.RangeError$range(index, 0, null, "index", null));
8218 for (t1 = this.get$iterator(this), elementIndex = 0; t1.moveNext$0();) {
8219 element = t1.get$current();
8220 if (index === elementIndex)
8221 return element;
8222 ++elementIndex;
8223 }
8224 throw H.wrapException(P.IndexError$(index, this, "index", null, elementI ndex));
8225 },
8226 toString$0: function(_) {
8227 return P.IterableBase_iterableToShortString(this, "(", ")");
8228 }
8229 },
8230 Iterator: {
8231 "^": "Object;"
8232 },
8233 List: {
8234 "^": "Object;",
8235 $asList: null,
8236 $isEfficientLength: 1
8237 },
8238 "+List": 0,
8239 Map: {
8240 "^": "Object;"
8241 },
8242 Null: {
8243 "^": "Object;",
8244 toString$0: function(_) {
8245 return "null";
8246 }
8247 },
8248 "+Null": 0,
8249 num: {
8250 "^": "Object;"
8251 },
8252 "+num": 0,
8253 Object: {
8254 "^": ";",
8255 $eq: function(_, other) {
8256 return this === other;
8257 },
8258 get$hashCode: function(_) {
8259 return H.Primitives_objectHashCode(this);
8260 },
8261 toString$0: function(_) {
8262 return H.Primitives_objectToHumanReadableString(this);
8263 }
8264 },
8265 Match: {
8266 "^": "Object;"
8267 },
8268 StackTrace: {
8269 "^": "Object;"
8270 },
8271 String: {
8272 "^": "Object;",
8273 $isPattern: 1
8274 },
8275 "+String": 0,
8276 StringBuffer: {
8277 "^": "Object;_contents<",
8278 get$length: function(_) {
8279 return this._contents.length;
8280 },
8281 get$isEmpty: function(_) {
8282 return this._contents.length === 0;
8283 },
8284 get$isNotEmpty: function(_) {
8285 return this._contents.length !== 0;
8286 },
8287 toString$0: function(_) {
8288 var t1 = this._contents;
8289 return t1.charCodeAt(0) == 0 ? t1 : t1;
8290 },
8291 static: {StringBuffer__writeAll: function(string, objects, separator) {
8292 var iterator = J.get$iterator$ax(objects);
8293 if (!iterator.moveNext$0())
8294 return string;
8295 if (separator.length === 0) {
8296 do
8297 string += H.S(iterator.get$current());
8298 while (iterator.moveNext$0());
8299 } else {
8300 string += H.S(iterator.get$current());
8301 for (; iterator.moveNext$0();)
8302 string = string + separator + H.S(iterator.get$current());
8303 }
8304 return string;
8305 }}
8306 },
8307 Symbol: {
8308 "^": "Object;"
8309 },
8310 Uri: {
8311 "^": "Object;_host,_port,_path,scheme<,_userInfo,_query,_fragment,_pathSeg ments,_queryParameters",
8312 get$host: function(_) {
8313 var t1 = this._host;
8314 if (t1 == null)
8315 return "";
8316 if (J.getInterceptor$s(t1).startsWith$1(t1, "["))
8317 return C.JSString_methods.substring$2(t1, 1, t1.length - 1);
8318 return t1;
8319 },
8320 get$port: function(_) {
8321 var t1 = this._port;
8322 if (t1 == null)
8323 return P.Uri__defaultPort(this.scheme);
8324 return t1;
8325 },
8326 get$pathSegments: function() {
8327 var t1, pathToSplit;
8328 t1 = this._pathSegments;
8329 if (t1 == null) {
8330 pathToSplit = this._path;
8331 if (pathToSplit.length !== 0 && C.JSString_methods.codeUnitAt$1(pathTo Split, 0) === 47)
8332 pathToSplit = C.JSString_methods.substring$1(pathToSplit, 1);
8333 t1 = H.setRuntimeTypeInfo(new P.UnmodifiableListView(pathToSplit === " " ? C.List_empty0 : H.setRuntimeTypeInfo(new H.MappedListIterable(pathToSplit.sp lit("/"), P.core_Uri_decodeComponent$closure()), [null, null]).toList$1$growable (0, false)), [null]);
8334 this._pathSegments = t1;
8335 }
8336 return t1;
8337 },
8338 _mergePaths$2: function(base, reference) {
8339 var backCount, refStart, baseEnd, newEnd, delta, t1;
8340 for (backCount = 0, refStart = 0; C.JSString_methods.startsWith$2(refere nce, "../", refStart);) {
8341 refStart += 3;
8342 ++backCount;
8343 }
8344 baseEnd = C.JSString_methods.lastIndexOf$1(base, "/");
8345 while (true) {
8346 if (!(baseEnd > 0 && backCount > 0))
8347 break;
8348 newEnd = C.JSString_methods.lastIndexOf$2(base, "/", baseEnd - 1);
8349 if (newEnd < 0)
8350 break;
8351 delta = baseEnd - newEnd;
8352 t1 = delta !== 2;
8353 if (!t1 || delta === 3)
8354 if (C.JSString_methods.codeUnitAt$1(base, newEnd + 1) === 46)
8355 t1 = !t1 || C.JSString_methods.codeUnitAt$1(base, newEnd + 2) === 46;
8356 else
8357 t1 = false;
8358 else
8359 t1 = false;
8360 if (t1)
8361 break;
8362 --backCount;
8363 baseEnd = newEnd;
8364 }
8365 return C.JSString_methods.replaceRange$3(base, baseEnd + 1, null, C.JSSt ring_methods.substring$1(reference, refStart - 3 * backCount));
8366 },
8367 toFilePath$1$windows: function(windows) {
8368 var t1 = this.scheme;
8369 if (t1 !== "" && t1 !== "file")
8370 throw H.wrapException(new P.UnsupportedError("Cannot extract a file pa th from a " + t1 + " URI"));
8371 t1 = this._query;
8372 if ((t1 == null ? "" : t1) !== "")
8373 throw H.wrapException(new P.UnsupportedError("Cannot extract a file pa th from a URI with a query component"));
8374 t1 = this._fragment;
8375 if ((t1 == null ? "" : t1) !== "")
8376 throw H.wrapException(new P.UnsupportedError("Cannot extract a file pa th from a URI with a fragment component"));
8377 if (this.get$host(this) !== "")
8378 H.throwExpression(new P.UnsupportedError("Cannot extract a non-Windows file path from a file URI with an authority"));
8379 P.Uri__checkNonWindowsPathReservedCharacters(this.get$pathSegments(), fa lse);
8380 t1 = this.get$_isPathAbsolute() ? "/" : "";
8381 t1 = P.StringBuffer__writeAll(t1, this.get$pathSegments(), "/");
8382 t1 = t1.charCodeAt(0) == 0 ? t1 : t1;
8383 return t1;
8384 },
8385 toFilePath$0: function() {
8386 return this.toFilePath$1$windows(null);
8387 },
8388 get$_isPathAbsolute: function() {
8389 if (this._path.length === 0)
8390 return false;
8391 return C.JSString_methods.startsWith$1(this._path, "/");
8392 },
8393 toString$0: function(_) {
8394 var t1, t2, t3, t4;
8395 t1 = this.scheme;
8396 t2 = "" !== t1 ? t1 + ":" : "";
8397 t3 = this._host;
8398 t4 = t3 == null;
8399 if (!t4 || C.JSString_methods.startsWith$1(this._path, "//") || t1 === " file") {
8400 t1 = t2 + "//";
8401 t2 = this._userInfo;
8402 if (t2.length !== 0)
8403 t1 = t1 + t2 + "@";
8404 if (!t4)
8405 t1 += H.S(t3);
8406 t2 = this._port;
8407 if (t2 != null)
8408 t1 = t1 + ":" + H.S(t2);
8409 } else
8410 t1 = t2;
8411 t1 += this._path;
8412 t2 = this._query;
8413 if (t2 != null)
8414 t1 = t1 + "?" + H.S(t2);
8415 t2 = this._fragment;
8416 if (t2 != null)
8417 t1 = t1 + "#" + H.S(t2);
8418 return t1.charCodeAt(0) == 0 ? t1 : t1;
8419 },
8420 $eq: function(_, other) {
8421 var t1, t2, t3, t4;
8422 if (other == null)
8423 return false;
8424 t1 = J.getInterceptor(other);
8425 if (!t1.$isUri)
8426 return false;
8427 if (this.scheme === other.scheme)
8428 if (this._host != null === (other._host != null))
8429 if (this._userInfo === other._userInfo) {
8430 t2 = this.get$host(this);
8431 t3 = t1.get$host(other);
8432 if (t2 == null ? t3 == null : t2 === t3) {
8433 t2 = this.get$port(this);
8434 t1 = t1.get$port(other);
8435 if (t2 == null ? t1 == null : t2 === t1)
8436 if (this._path === other._path) {
8437 t1 = this._query;
8438 t2 = t1 == null;
8439 t3 = other._query;
8440 t4 = t3 == null;
8441 if (!t2 === !t4) {
8442 if (t2)
8443 t1 = "";
8444 if (t1 == null ? (t4 ? "" : t3) == null : t1 === (t4 ? "" : t3)) {
8445 t1 = this._fragment;
8446 t2 = t1 == null;
8447 t3 = other._fragment;
8448 t4 = t3 == null;
8449 if (!t2 === !t4) {
8450 if (t2)
8451 t1 = "";
8452 t1 = t1 == null ? (t4 ? "" : t3) == null : t1 === (t4 ? "" : t3);
8453 } else
8454 t1 = false;
8455 } else
8456 t1 = false;
8457 } else
8458 t1 = false;
8459 } else
8460 t1 = false;
8461 else
8462 t1 = false;
8463 } else
8464 t1 = false;
8465 } else
8466 t1 = false;
8467 else
8468 t1 = false;
8469 else
8470 t1 = false;
8471 return t1;
8472 },
8473 get$hashCode: function(_) {
8474 var t1, t2, t3, t4, t5;
8475 t1 = new P.Uri_hashCode_combine();
8476 t2 = this.get$host(this);
8477 t3 = this.get$port(this);
8478 t4 = this._query;
8479 if (t4 == null)
8480 t4 = "";
8481 t5 = this._fragment;
8482 return t1.call$2(this.scheme, t1.call$2(this._userInfo, t1.call$2(t2, t1 .call$2(t3, t1.call$2(this._path, t1.call$2(t4, t1.call$2(t5 == null ? "" : t5, 1)))))));
8483 },
8484 static: {Uri__defaultPort: function(scheme) {
8485 if (scheme === "http")
8486 return 80;
8487 if (scheme === "https")
8488 return 443;
8489 return 0;
8490 }, Uri_parse: function(uri, start, end) {
8491 var t1, pathStart, state, i, t2, $char, index, path, numberSignIndex, query, fragment, t3;
8492 t1 = {};
8493 t1._captured_end_0 = end;
8494 t1._captured_scheme_1 = "";
8495 t1._captured_userinfo_2 = "";
8496 t1._captured_host_3 = null;
8497 t1._captured_port_4 = null;
8498 t1._captured_end_0 = uri.length;
8499 t1._captured_index_5 = start;
8500 t1._captured_char_6 = -1;
8501 i = start;
8502 while (true) {
8503 t2 = t1._captured_end_0;
8504 if (typeof t2 !== "number")
8505 return H.iae(t2);
8506 if (!(i < t2)) {
8507 pathStart = start;
8508 state = 0;
8509 break;
8510 }
8511 $char = C.JSString_methods.codeUnitAt$1(uri, i);
8512 t1._captured_char_6 = $char;
8513 if ($char === 63 || $char === 35) {
8514 pathStart = start;
8515 state = 0;
8516 break;
8517 }
8518 if ($char === 47) {
8519 state = i === start ? 2 : 1;
8520 pathStart = start;
8521 break;
8522 }
8523 if ($char === 58) {
8524 if (i === start)
8525 P.Uri__fail(uri, start, "Invalid empty scheme");
8526 t1._captured_scheme_1 = P.Uri__makeScheme(uri, start, i);
8527 ++i;
8528 if (i === t1._captured_end_0) {
8529 t1._captured_char_6 = -1;
8530 state = 0;
8531 } else {
8532 $char = C.JSString_methods.codeUnitAt$1(uri, i);
8533 t1._captured_char_6 = $char;
8534 if ($char === 63 || $char === 35)
8535 state = 0;
8536 else
8537 state = $char === 47 ? 2 : 1;
8538 }
8539 pathStart = i;
8540 break;
8541 }
8542 ++i;
8543 t1._captured_char_6 = -1;
8544 }
8545 t1._captured_index_5 = i;
8546 if (state === 2) {
8547 index = i + 1;
8548 t1._captured_index_5 = index;
8549 if (index === t1._captured_end_0) {
8550 t1._captured_char_6 = -1;
8551 state = 0;
8552 } else {
8553 $char = C.JSString_methods.codeUnitAt$1(uri, index);
8554 t1._captured_char_6 = $char;
8555 if ($char === 47) {
8556 t2 = t1._captured_index_5;
8557 if (typeof t2 !== "number")
8558 return t2.$add();
8559 t1._captured_index_5 = t2 + 1;
8560 new P.Uri_parse_parseAuth(t1, uri, -1).call$0();
8561 pathStart = t1._captured_index_5;
8562 }
8563 t2 = t1._captured_char_6;
8564 state = t2 === 63 || t2 === 35 || t2 === -1 ? 0 : 1;
8565 }
8566 }
8567 if (state === 1)
8568 while (true) {
8569 t2 = t1._captured_index_5;
8570 if (typeof t2 !== "number")
8571 return t2.$add();
8572 index = t2 + 1;
8573 t1._captured_index_5 = index;
8574 t2 = t1._captured_end_0;
8575 if (typeof t2 !== "number")
8576 return H.iae(t2);
8577 if (!(index < t2))
8578 break;
8579 $char = C.JSString_methods.codeUnitAt$1(uri, index);
8580 t1._captured_char_6 = $char;
8581 if ($char === 63 || $char === 35)
8582 break;
8583 t1._captured_char_6 = -1;
8584 }
8585 t2 = t1._captured_host_3;
8586 path = P.Uri__makePath(uri, pathStart, t1._captured_index_5, null, t1. _captured_scheme_1, t2 != null);
8587 t2 = t1._captured_char_6;
8588 if (t2 === 63) {
8589 t2 = t1._captured_index_5;
8590 if (typeof t2 !== "number")
8591 return t2.$add();
8592 i = t2 + 1;
8593 while (true) {
8594 t2 = t1._captured_end_0;
8595 if (typeof t2 !== "number")
8596 return H.iae(t2);
8597 if (!(i < t2)) {
8598 numberSignIndex = -1;
8599 break;
8600 }
8601 if (C.JSString_methods.codeUnitAt$1(uri, i) === 35) {
8602 numberSignIndex = i;
8603 break;
8604 }
8605 ++i;
8606 }
8607 t2 = t1._captured_index_5;
8608 if (numberSignIndex < 0) {
8609 if (typeof t2 !== "number")
8610 return t2.$add();
8611 query = P.Uri__makeQuery(uri, t2 + 1, t1._captured_end_0, null);
8612 fragment = null;
8613 } else {
8614 if (typeof t2 !== "number")
8615 return t2.$add();
8616 query = P.Uri__makeQuery(uri, t2 + 1, numberSignIndex, null);
8617 fragment = P.Uri__makeFragment(uri, numberSignIndex + 1, t1._captu red_end_0);
8618 }
8619 } else {
8620 if (t2 === 35) {
8621 t2 = t1._captured_index_5;
8622 if (typeof t2 !== "number")
8623 return t2.$add();
8624 fragment = P.Uri__makeFragment(uri, t2 + 1, t1._captured_end_0);
8625 } else
8626 fragment = null;
8627 query = null;
8628 }
8629 t2 = t1._captured_scheme_1;
8630 t3 = t1._captured_userinfo_2;
8631 return new P.Uri(t1._captured_host_3, t1._captured_port_4, path, t2, t 3, query, fragment, null, null);
8632 }, Uri__fail: function(uri, index, message) {
8633 throw H.wrapException(new P.FormatException(message, uri, index));
8634 }, Uri_base: function() {
8635 var uri = H.Primitives_currentUri();
8636 if (uri != null)
8637 return P.Uri_parse(uri, 0, null);
8638 throw H.wrapException(new P.UnsupportedError("'Uri.base' is not suppor ted"));
8639 }, Uri__checkNonWindowsPathReservedCharacters: function(segments, argume ntError) {
8640 segments.forEach$1(segments, new P.Uri__checkNonWindowsPathReservedCha racters_closure(argumentError));
8641 }, Uri__makePort: function(port, scheme) {
8642 if (port != null && port === P.Uri__defaultPort(scheme))
8643 return;
8644 return port;
8645 }, Uri__makeHost: function(host, start, end, strictIPv6) {
8646 var t1, i;
8647 if (host == null)
8648 return;
8649 if (start == null ? end == null : start === end)
8650 return "";
8651 if (C.JSString_methods.codeUnitAt$1(host, start) === 91) {
8652 if (typeof end !== "number")
8653 return end.$sub();
8654 t1 = end - 1;
8655 if (C.JSString_methods.codeUnitAt$1(host, t1) !== 93)
8656 P.Uri__fail(host, start, "Missing end `]` to match `[` in host");
8657 if (typeof start !== "number")
8658 return start.$add();
8659 P.Uri_parseIPv6Address(host, start + 1, t1);
8660 return C.JSString_methods.substring$2(host, start, end).toLowerCase( );
8661 }
8662 if (!strictIPv6) {
8663 i = start;
8664 while (true) {
8665 if (typeof i !== "number")
8666 return i.$lt();
8667 if (typeof end !== "number")
8668 return H.iae(end);
8669 if (!(i < end))
8670 break;
8671 if (C.JSString_methods.codeUnitAt$1(host, i) === 58) {
8672 P.Uri_parseIPv6Address(host, start, end);
8673 return "[" + host + "]";
8674 }
8675 ++i;
8676 }
8677 }
8678 return P.Uri__normalizeRegName(host, start, end);
8679 }, Uri__normalizeRegName: function(host, start, end) {
8680 var index, sectionStart, buffer, isNormalized, $char, replacement, t1, slice, sourceLength, tail;
8681 index = start;
8682 sectionStart = index;
8683 buffer = null;
8684 isNormalized = true;
8685 while (true) {
8686 if (typeof index !== "number")
8687 return index.$lt();
8688 if (typeof end !== "number")
8689 return H.iae(end);
8690 if (!(index < end))
8691 break;
8692 c$0: {
8693 $char = C.JSString_methods.codeUnitAt$1(host, index);
8694 if ($char === 37) {
8695 replacement = P.Uri__normalizeEscape(host, index, true);
8696 t1 = replacement == null;
8697 if (t1 && isNormalized) {
8698 index += 3;
8699 break c$0;
8700 }
8701 if (buffer == null)
8702 buffer = new P.StringBuffer("");
8703 slice = C.JSString_methods.substring$2(host, sectionStart, index );
8704 if (!isNormalized)
8705 slice = slice.toLowerCase();
8706 buffer._contents = buffer._contents + slice;
8707 if (t1) {
8708 replacement = C.JSString_methods.substring$2(host, index, inde x + 3);
8709 sourceLength = 3;
8710 } else if (replacement === "%") {
8711 replacement = "%25";
8712 sourceLength = 1;
8713 } else
8714 sourceLength = 3;
8715 buffer._contents += replacement;
8716 index += sourceLength;
8717 sectionStart = index;
8718 isNormalized = true;
8719 } else {
8720 if ($char < 127) {
8721 t1 = $char >>> 4;
8722 if (t1 >= 8)
8723 return H.ioore(C.List_qNA, t1);
8724 t1 = (C.List_qNA[t1] & C.JSInt_methods._shlPositive$1(1, $char & 15)) !== 0;
8725 } else
8726 t1 = false;
8727 if (t1) {
8728 if (isNormalized && 65 <= $char && 90 >= $char) {
8729 if (buffer == null)
8730 buffer = new P.StringBuffer("");
8731 if (typeof sectionStart !== "number")
8732 return sectionStart.$lt();
8733 if (sectionStart < index) {
8734 t1 = C.JSString_methods.substring$2(host, sectionStart, in dex);
8735 buffer._contents = buffer._contents + t1;
8736 sectionStart = index;
8737 }
8738 isNormalized = false;
8739 }
8740 ++index;
8741 } else {
8742 if ($char <= 93) {
8743 t1 = $char >>> 4;
8744 if (t1 >= 8)
8745 return H.ioore(C.List_2Vk, t1);
8746 t1 = (C.List_2Vk[t1] & C.JSInt_methods._shlPositive$1(1, $ch ar & 15)) !== 0;
8747 } else
8748 t1 = false;
8749 if (t1)
8750 P.Uri__fail(host, index, "Invalid character");
8751 else {
8752 if (($char & 64512) === 55296 && index + 1 < end) {
8753 tail = C.JSString_methods.codeUnitAt$1(host, index + 1);
8754 if ((tail & 64512) === 56320) {
8755 $char = (65536 | ($char & 1023) << 10 | tail & 1023) >>> 0;
8756 sourceLength = 2;
8757 } else
8758 sourceLength = 1;
8759 } else
8760 sourceLength = 1;
8761 if (buffer == null)
8762 buffer = new P.StringBuffer("");
8763 slice = C.JSString_methods.substring$2(host, sectionStart, i ndex);
8764 if (!isNormalized)
8765 slice = slice.toLowerCase();
8766 buffer._contents = buffer._contents + slice;
8767 buffer._contents += P.Uri__escapeChar($char);
8768 index += sourceLength;
8769 sectionStart = index;
8770 }
8771 }
8772 }
8773 }
8774 }
8775 if (buffer == null)
8776 return C.JSString_methods.substring$2(host, start, end);
8777 if (typeof sectionStart !== "number")
8778 return sectionStart.$lt();
8779 if (sectionStart < end) {
8780 slice = C.JSString_methods.substring$2(host, sectionStart, end);
8781 buffer._contents += !isNormalized ? slice.toLowerCase() : slice;
8782 }
8783 t1 = buffer._contents;
8784 return t1.charCodeAt(0) == 0 ? t1 : t1;
8785 }, Uri__makeScheme: function(scheme, start, end) {
8786 var firstCodeUnit, t1, i, containsUpperCase, codeUnit;
8787 if (start === end)
8788 return "";
8789 firstCodeUnit = C.JSString_methods.codeUnitAt$1(scheme, start);
8790 if (!(firstCodeUnit >= 97 && firstCodeUnit <= 122))
8791 t1 = firstCodeUnit >= 65 && firstCodeUnit <= 90;
8792 else
8793 t1 = true;
8794 if (!t1)
8795 P.Uri__fail(scheme, start, "Scheme not starting with alphabetic char acter");
8796 for (i = start, containsUpperCase = false; i < end; ++i) {
8797 codeUnit = C.JSString_methods.codeUnitAt$1(scheme, i);
8798 if (codeUnit < 128) {
8799 t1 = codeUnit >>> 4;
8800 if (t1 >= 8)
8801 return H.ioore(C.List_JYB, t1);
8802 t1 = (C.List_JYB[t1] & C.JSInt_methods._shlPositive$1(1, codeUnit & 15)) !== 0;
8803 } else
8804 t1 = false;
8805 if (!t1)
8806 P.Uri__fail(scheme, i, "Illegal scheme character");
8807 if (65 <= codeUnit && codeUnit <= 90)
8808 containsUpperCase = true;
8809 }
8810 scheme = C.JSString_methods.substring$2(scheme, start, end);
8811 return containsUpperCase ? scheme.toLowerCase() : scheme;
8812 }, Uri__makeUserInfo: function(userInfo, start, end) {
8813 return P.Uri__normalize(userInfo, start, end, C.List_gRj);
8814 }, Uri__makePath: function(path, start, end, pathSegments, scheme, hasAu thority) {
8815 var isFile, ensureLeadingSlash, result;
8816 isFile = scheme === "file";
8817 ensureLeadingSlash = isFile || hasAuthority;
8818 result = P.Uri__normalize(path, start, end, C.List_qg4);
8819 if (result.length === 0) {
8820 if (isFile)
8821 return "/";
8822 } else if (ensureLeadingSlash && !C.JSString_methods.startsWith$1(resu lt, "/"))
8823 result = "/" + result;
8824 return P.Uri__normalizePath(result, scheme, hasAuthority);
8825 }, Uri__normalizePath: function(path, scheme, hasAuthority) {
8826 if (scheme.length === 0 && !hasAuthority && !C.JSString_methods.starts With$1(path, "/"))
8827 return P.Uri__normalizeRelativePath(path);
8828 return P.Uri__removeDotSegments(path);
8829 }, Uri__makeQuery: function(query, start, end, queryParameters) {
8830 var t1, t2, result;
8831 t1 = {};
8832 t2 = query == null;
8833 if (t2 && true)
8834 return;
8835 t2 = !t2;
8836 if (t2)
8837 ;
8838 if (t2)
8839 return P.Uri__normalize(query, start, end, C.List_CVk);
8840 result = new P.StringBuffer("");
8841 t1._captured_first_0 = true;
8842 C.JSNull_methods.forEach$1(queryParameters, new P.Uri__makeQuery_closu re(t1, result));
8843 t1 = result._contents;
8844 return t1.charCodeAt(0) == 0 ? t1 : t1;
8845 }, Uri__makeFragment: function(fragment, start, end) {
8846 if (fragment == null)
8847 return;
8848 return P.Uri__normalize(fragment, start, end, C.List_CVk);
8849 }, Uri__isHexDigit: function($char) {
8850 if (57 >= $char)
8851 return 48 <= $char;
8852 $char |= 32;
8853 return 97 <= $char && 102 >= $char;
8854 }, Uri__hexValue: function($char) {
8855 if (57 >= $char)
8856 return $char - 48;
8857 return ($char | 32) - 87;
8858 }, Uri__normalizeEscape: function(source, index, lowerCase) {
8859 var t1, firstDigit, secondDigit, value;
8860 t1 = index + 2;
8861 if (t1 >= source.length)
8862 return "%";
8863 firstDigit = C.JSString_methods.codeUnitAt$1(source, index + 1);
8864 secondDigit = C.JSString_methods.codeUnitAt$1(source, t1);
8865 if (!P.Uri__isHexDigit(firstDigit) || !P.Uri__isHexDigit(secondDigit))
8866 return "%";
8867 value = P.Uri__hexValue(firstDigit) * 16 + P.Uri__hexValue(secondDigit );
8868 if (value < 127) {
8869 t1 = C.JSInt_methods._shrOtherPositive$1(value, 4);
8870 if (t1 >= 8)
8871 return H.ioore(C.List_nxB, t1);
8872 t1 = (C.List_nxB[t1] & C.JSInt_methods._shlPositive$1(1, value & 15) ) !== 0;
8873 } else
8874 t1 = false;
8875 if (t1)
8876 return H.Primitives_stringFromCharCode(lowerCase && 65 <= value && 9 0 >= value ? (value | 32) >>> 0 : value);
8877 if (firstDigit >= 97 || secondDigit >= 97)
8878 return C.JSString_methods.substring$2(source, index, index + 3).toUp perCase();
8879 return;
8880 }, Uri__escapeChar: function($char) {
8881 var codeUnits, flag, encodedBytes, t1, index, $byte, t2, t3;
8882 if ($char < 128) {
8883 codeUnits = new Array(3);
8884 codeUnits.fixed$length = Array;
8885 codeUnits[0] = 37;
8886 codeUnits[1] = C.JSString_methods.codeUnitAt$1("0123456789ABCDEF", $ char >>> 4);
8887 codeUnits[2] = C.JSString_methods.codeUnitAt$1("0123456789ABCDEF", $ char & 15);
8888 } else {
8889 if ($char > 2047)
8890 if ($char > 65535) {
8891 flag = 240;
8892 encodedBytes = 4;
8893 } else {
8894 flag = 224;
8895 encodedBytes = 3;
8896 }
8897 else {
8898 flag = 192;
8899 encodedBytes = 2;
8900 }
8901 t1 = 3 * encodedBytes;
8902 codeUnits = new Array(t1);
8903 codeUnits.fixed$length = Array;
8904 for (index = 0; --encodedBytes, encodedBytes >= 0; flag = 128) {
8905 $byte = C.JSInt_methods._shrReceiverPositive$1($char, 6 * encodedB ytes) & 63 | flag;
8906 if (index >= t1)
8907 return H.ioore(codeUnits, index);
8908 codeUnits[index] = 37;
8909 t2 = index + 1;
8910 t3 = C.JSString_methods.codeUnitAt$1("0123456789ABCDEF", $byte >>> 4);
8911 if (t2 >= t1)
8912 return H.ioore(codeUnits, t2);
8913 codeUnits[t2] = t3;
8914 t3 = index + 2;
8915 t2 = C.JSString_methods.codeUnitAt$1("0123456789ABCDEF", $byte & 1 5);
8916 if (t3 >= t1)
8917 return H.ioore(codeUnits, t3);
8918 codeUnits[t3] = t2;
8919 index += 3;
8920 }
8921 }
8922 return P.String_String$fromCharCodes(codeUnits, 0, null);
8923 }, Uri__normalize: function(component, start, end, charTable) {
8924 var index, sectionStart, buffer, $char, t1, replacement, sourceLength, tail;
8925 index = start;
8926 sectionStart = index;
8927 buffer = null;
8928 while (true) {
8929 if (typeof index !== "number")
8930 return index.$lt();
8931 if (typeof end !== "number")
8932 return H.iae(end);
8933 if (!(index < end))
8934 break;
8935 c$0: {
8936 $char = C.JSString_methods.codeUnitAt$1(component, index);
8937 if ($char < 127) {
8938 t1 = $char >>> 4;
8939 if (t1 >= 8)
8940 return H.ioore(charTable, t1);
8941 t1 = (charTable[t1] & C.JSInt_methods._shlPositive$1(1, $char & 15)) !== 0;
8942 } else
8943 t1 = false;
8944 if (t1)
8945 ++index;
8946 else {
8947 if ($char === 37) {
8948 replacement = P.Uri__normalizeEscape(component, index, false);
8949 if (replacement == null) {
8950 index += 3;
8951 break c$0;
8952 }
8953 if ("%" === replacement) {
8954 replacement = "%25";
8955 sourceLength = 1;
8956 } else
8957 sourceLength = 3;
8958 } else {
8959 if ($char <= 93) {
8960 t1 = $char >>> 4;
8961 if (t1 >= 8)
8962 return H.ioore(C.List_2Vk, t1);
8963 t1 = (C.List_2Vk[t1] & C.JSInt_methods._shlPositive$1(1, $ch ar & 15)) !== 0;
8964 } else
8965 t1 = false;
8966 if (t1) {
8967 P.Uri__fail(component, index, "Invalid character");
8968 replacement = null;
8969 sourceLength = null;
8970 } else {
8971 if (($char & 64512) === 55296) {
8972 t1 = index + 1;
8973 if (t1 < end) {
8974 tail = C.JSString_methods.codeUnitAt$1(component, t1);
8975 if ((tail & 64512) === 56320) {
8976 $char = (65536 | ($char & 1023) << 10 | tail & 1023) > >> 0;
8977 sourceLength = 2;
8978 } else
8979 sourceLength = 1;
8980 } else
8981 sourceLength = 1;
8982 } else
8983 sourceLength = 1;
8984 replacement = P.Uri__escapeChar($char);
8985 }
8986 }
8987 if (buffer == null)
8988 buffer = new P.StringBuffer("");
8989 t1 = C.JSString_methods.substring$2(component, sectionStart, ind ex);
8990 buffer._contents = buffer._contents + t1;
8991 buffer._contents += H.S(replacement);
8992 if (typeof sourceLength !== "number")
8993 return H.iae(sourceLength);
8994 index += sourceLength;
8995 sectionStart = index;
8996 }
8997 }
8998 }
8999 if (buffer == null)
9000 return C.JSString_methods.substring$2(component, start, end);
9001 if (typeof sectionStart !== "number")
9002 return sectionStart.$lt();
9003 if (sectionStart < end)
9004 buffer._contents += C.JSString_methods.substring$2(component, sectio nStart, end);
9005 t1 = buffer._contents;
9006 return t1.charCodeAt(0) == 0 ? t1 : t1;
9007 }, Uri__mayContainDotSegments: function(path) {
9008 if (C.JSString_methods.startsWith$1(path, "."))
9009 return true;
9010 return C.JSString_methods.indexOf$1(path, "/.") !== -1;
9011 }, Uri__removeDotSegments: function(path) {
9012 var output, t1, t2, appendSlash, _i, segment, t3;
9013 if (!P.Uri__mayContainDotSegments(path))
9014 return path;
9015 output = [];
9016 for (t1 = path.split("/"), t2 = t1.length, appendSlash = false, _i = 0 ; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1 ), ++_i) {
9017 segment = t1[_i];
9018 if (J.$eq$(segment, "..")) {
9019 t3 = output.length;
9020 if (t3 !== 0) {
9021 if (0 >= t3)
9022 return H.ioore(output, -1);
9023 output.pop();
9024 if (output.length === 0)
9025 output.push("");
9026 }
9027 appendSlash = true;
9028 } else if ("." === segment)
9029 appendSlash = true;
9030 else {
9031 output.push(segment);
9032 appendSlash = false;
9033 }
9034 }
9035 if (appendSlash)
9036 output.push("");
9037 return C.JSArray_methods.join$1(output, "/");
9038 }, Uri__normalizeRelativePath: function(path) {
9039 var output, t1, t2, appendSlash, _i, segment;
9040 if (!P.Uri__mayContainDotSegments(path))
9041 return path;
9042 output = [];
9043 for (t1 = path.split("/"), t2 = t1.length, appendSlash = false, _i = 0 ; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1 ), ++_i) {
9044 segment = t1[_i];
9045 if (".." === segment)
9046 if (output.length !== 0 && !J.$eq$(C.JSArray_methods.get$last(outp ut), "..")) {
9047 if (0 >= output.length)
9048 return H.ioore(output, -1);
9049 output.pop();
9050 appendSlash = true;
9051 } else {
9052 output.push("..");
9053 appendSlash = false;
9054 }
9055 else if ("." === segment)
9056 appendSlash = true;
9057 else {
9058 output.push(segment);
9059 appendSlash = false;
9060 }
9061 }
9062 t1 = output.length;
9063 if (t1 !== 0)
9064 if (t1 === 1) {
9065 if (0 >= t1)
9066 return H.ioore(output, 0);
9067 t1 = J.get$isEmpty$asx(output[0]) === true;
9068 } else
9069 t1 = false;
9070 else
9071 t1 = true;
9072 if (t1)
9073 return "./";
9074 if (appendSlash || J.$eq$(C.JSArray_methods.get$last(output), ".."))
9075 output.push("");
9076 return C.JSArray_methods.join$1(output, "/");
9077 }, Uri_decodeComponent: [function(encodedComponent) {
9078 return P.Uri__uriDecode(encodedComponent, C.Utf8Codec_false, false);
9079 }, "call$1", "core_Uri_decodeComponent$closure", 2, 0, 9], Uri_parseIPv4 Address: function(host) {
9080 var t1, bytes;
9081 t1 = new P.Uri_parseIPv4Address_error();
9082 bytes = host.split(".");
9083 if (bytes.length !== 4)
9084 t1.call$1("IPv4 address should contain exactly 4 parts");
9085 return H.setRuntimeTypeInfo(new H.MappedListIterable(bytes, new P.Uri_ parseIPv4Address_closure(t1)), [null, null]).toList$0(0);
9086 }, Uri_parseIPv6Address: function(host, start, end) {
9087 var error, parseHex, parts, partStart, last, i, wildcardSeen, t1, atEn d, isLastWildcard, exception, t2, bytes, index, value, wildCardLength, j;
9088 if (end == null)
9089 end = J.get$length$asx(host);
9090 error = new P.Uri_parseIPv6Address_error(host);
9091 parseHex = new P.Uri_parseIPv6Address_parseHex(host, error);
9092 if (J.get$length$asx(host) < 2)
9093 error.call$1("address is too short");
9094 parts = [];
9095 partStart = start;
9096 i = start;
9097 wildcardSeen = false;
9098 while (true) {
9099 t1 = end;
9100 if (typeof i !== "number")
9101 return i.$lt();
9102 if (typeof t1 !== "number")
9103 return H.iae(t1);
9104 if (!(i < t1))
9105 break;
9106 if (J.codeUnitAt$1$s(host, i) === 58) {
9107 if (i === start) {
9108 ++i;
9109 if (J.codeUnitAt$1$s(host, i) !== 58)
9110 error.call$2("invalid start colon.", i);
9111 partStart = i;
9112 }
9113 if (i === partStart) {
9114 if (wildcardSeen)
9115 error.call$2("only one wildcard `::` is allowed", i);
9116 J.add$1$ax(parts, -1);
9117 wildcardSeen = true;
9118 } else
9119 J.add$1$ax(parts, parseHex.call$2(partStart, i));
9120 partStart = i + 1;
9121 }
9122 ++i;
9123 }
9124 if (J.get$length$asx(parts) === 0)
9125 error.call$1("too few parts");
9126 atEnd = J.$eq$(partStart, end);
9127 isLastWildcard = J.$eq$(J.get$last$ax(parts), -1);
9128 if (atEnd && !isLastWildcard)
9129 error.call$2("expected a part after last `:`", end);
9130 if (!atEnd)
9131 try {
9132 J.add$1$ax(parts, parseHex.call$2(partStart, end));
9133 } catch (exception) {
9134 H.unwrapException(exception);
9135 try {
9136 last = P.Uri_parseIPv4Address(J.substring$2$s(host, partStart, e nd));
9137 t1 = J.$index$asx(last, 0);
9138 if (typeof t1 !== "number")
9139 return t1.$shl();
9140 t2 = J.$index$asx(last, 1);
9141 if (typeof t2 !== "number")
9142 return H.iae(t2);
9143 J.add$1$ax(parts, (t1 << 8 | t2) >>> 0);
9144 t2 = J.$index$asx(last, 2);
9145 if (typeof t2 !== "number")
9146 return t2.$shl();
9147 t1 = J.$index$asx(last, 3);
9148 if (typeof t1 !== "number")
9149 return H.iae(t1);
9150 J.add$1$ax(parts, (t2 << 8 | t1) >>> 0);
9151 } catch (exception) {
9152 H.unwrapException(exception);
9153 error.call$2("invalid end of IPv6 address.", partStart);
9154 }
9155 }
9156 if (wildcardSeen) {
9157 if (J.get$length$asx(parts) > 7)
9158 error.call$1("an address with a wildcard must have less than 7 par ts");
9159 } else if (J.get$length$asx(parts) !== 8)
9160 error.call$1("an address without a wildcard must contain exactly 8 p arts");
9161 bytes = new Array(16);
9162 bytes.$builtinTypeInfo = [P.$int];
9163 i = 0;
9164 index = 0;
9165 while (true) {
9166 t1 = J.get$length$asx(parts);
9167 if (typeof t1 !== "number")
9168 return H.iae(t1);
9169 if (!(i < t1))
9170 break;
9171 value = J.$index$asx(parts, i);
9172 if (J.getInterceptor(value).$eq(value, -1)) {
9173 wildCardLength = 9 - J.get$length$asx(parts);
9174 for (j = 0; j < wildCardLength; ++j) {
9175 if (index < 0 || index >= 16)
9176 return H.ioore(bytes, index);
9177 bytes[index] = 0;
9178 t1 = index + 1;
9179 if (t1 >= 16)
9180 return H.ioore(bytes, t1);
9181 bytes[t1] = 0;
9182 index += 2;
9183 }
9184 } else {
9185 if (typeof value !== "number")
9186 return value.$shr();
9187 t1 = C.JSNumber_methods._shrOtherPositive$1(value, 8);
9188 if (index < 0 || index >= 16)
9189 return H.ioore(bytes, index);
9190 bytes[index] = t1;
9191 t1 = index + 1;
9192 if (t1 >= 16)
9193 return H.ioore(bytes, t1);
9194 bytes[t1] = value & 255;
9195 index += 2;
9196 }
9197 ++i;
9198 }
9199 return bytes;
9200 }, Uri__uriEncode: function(canonicalTable, text, encoding, spaceToPlus) {
9201 var t1, result, bytes, t2, i, $byte, t3;
9202 t1 = new P.Uri__uriEncode_byteToHex();
9203 result = new P.StringBuffer("");
9204 bytes = encoding.get$encoder().convert$1(text);
9205 for (t2 = bytes.length, i = 0; i < t2; ++i) {
9206 $byte = bytes[i];
9207 if ($byte < 128) {
9208 t3 = $byte >>> 4;
9209 if (t3 >= 8)
9210 return H.ioore(canonicalTable, t3);
9211 t3 = (canonicalTable[t3] & C.JSInt_methods._shlPositive$1(1, $byte & 15)) !== 0;
9212 } else
9213 t3 = false;
9214 if (t3)
9215 result._contents += H.Primitives_stringFromCharCode($byte);
9216 else if (spaceToPlus && $byte === 32)
9217 result._contents += H.Primitives_stringFromCharCode(43);
9218 else {
9219 result._contents += H.Primitives_stringFromCharCode(37);
9220 t1.call$2($byte, result);
9221 }
9222 }
9223 t1 = result._contents;
9224 return t1.charCodeAt(0) == 0 ? t1 : t1;
9225 }, Uri__hexCharPairToByte: function(s, pos) {
9226 var $byte, i, charCode;
9227 for ($byte = 0, i = 0; i < 2; ++i) {
9228 charCode = C.JSString_methods.codeUnitAt$1(s, pos + i);
9229 if (48 <= charCode && charCode <= 57)
9230 $byte = $byte * 16 + charCode - 48;
9231 else {
9232 charCode |= 32;
9233 if (97 <= charCode && charCode <= 102)
9234 $byte = $byte * 16 + charCode - 87;
9235 else
9236 throw H.wrapException(P.ArgumentError$("Invalid URL encoding"));
9237 }
9238 }
9239 return $byte;
9240 }, Uri__uriDecode: function(text, encoding, plusToSpace) {
9241 var t1, simple, i, t2, codeUnit, bytes;
9242 t1 = J.getInterceptor$asx(text);
9243 simple = true;
9244 i = 0;
9245 while (true) {
9246 t2 = t1.get$length(text);
9247 if (typeof t2 !== "number")
9248 return H.iae(t2);
9249 if (!(i < t2 && simple))
9250 break;
9251 codeUnit = t1.codeUnitAt$1(text, i);
9252 simple = codeUnit !== 37 && codeUnit !== 43;
9253 ++i;
9254 }
9255 if (simple)
9256 if (encoding === C.Utf8Codec_false || false)
9257 return text;
9258 else
9259 bytes = t1.get$codeUnits(text);
9260 else {
9261 bytes = [];
9262 i = 0;
9263 while (true) {
9264 t2 = t1.get$length(text);
9265 if (typeof t2 !== "number")
9266 return H.iae(t2);
9267 if (!(i < t2))
9268 break;
9269 codeUnit = t1.codeUnitAt$1(text, i);
9270 if (codeUnit > 127)
9271 throw H.wrapException(P.ArgumentError$("Illegal percent encoding in URI"));
9272 if (codeUnit === 37) {
9273 if (i + 3 > text.length)
9274 throw H.wrapException(P.ArgumentError$("Truncated URI"));
9275 bytes.push(P.Uri__hexCharPairToByte(text, i + 1));
9276 i += 2;
9277 } else if (plusToSpace && codeUnit === 43)
9278 bytes.push(32);
9279 else
9280 bytes.push(codeUnit);
9281 ++i;
9282 }
9283 }
9284 return new P.Utf8Decoder(encoding._allowMalformed).convert$1(bytes);
9285 }}
9286 },
9287 Uri_parse_parseAuth: {
9288 "^": "Closure:2;_core$_box_0,_captured_uri_1,_captured_EOI_2",
9289 call$0: function() {
9290 var t1, hostStart, t2, $char, lastColon, lastAt, t3, t4, char0, endBrack et, hostEnd, i, portNumber, digit;
9291 t1 = this._core$_box_0;
9292 hostStart = t1._captured_index_5;
9293 t2 = t1._captured_end_0;
9294 if (hostStart == null ? t2 == null : hostStart === t2) {
9295 t1._captured_char_6 = this._captured_EOI_2;
9296 return;
9297 }
9298 t2 = this._captured_uri_1;
9299 t1._captured_char_6 = C.JSString_methods.codeUnitAt$1(t2, hostStart);
9300 $char = this._captured_EOI_2;
9301 lastColon = -1;
9302 lastAt = -1;
9303 while (true) {
9304 t3 = t1._captured_index_5;
9305 t4 = t1._captured_end_0;
9306 if (typeof t3 !== "number")
9307 return t3.$lt();
9308 if (typeof t4 !== "number")
9309 return H.iae(t4);
9310 if (!(t3 < t4))
9311 break;
9312 char0 = C.JSString_methods.codeUnitAt$1(t2, t3);
9313 t1._captured_char_6 = char0;
9314 if (char0 === 47 || char0 === 63 || char0 === 35)
9315 break;
9316 if (char0 === 64) {
9317 lastAt = t1._captured_index_5;
9318 lastColon = -1;
9319 } else if (char0 === 58)
9320 lastColon = t1._captured_index_5;
9321 else if (char0 === 91) {
9322 t3 = t1._captured_index_5;
9323 if (typeof t3 !== "number")
9324 return t3.$add();
9325 endBracket = C.JSString_methods.indexOf$2(t2, "]", t3 + 1);
9326 if (endBracket === -1) {
9327 t1._captured_index_5 = t1._captured_end_0;
9328 t1._captured_char_6 = $char;
9329 lastColon = -1;
9330 break;
9331 } else
9332 t1._captured_index_5 = endBracket;
9333 lastColon = -1;
9334 }
9335 t3 = t1._captured_index_5;
9336 if (typeof t3 !== "number")
9337 return t3.$add();
9338 t1._captured_index_5 = t3 + 1;
9339 t1._captured_char_6 = $char;
9340 }
9341 hostEnd = t1._captured_index_5;
9342 if (typeof lastAt !== "number")
9343 return lastAt.$ge();
9344 if (lastAt >= 0) {
9345 t1._captured_userinfo_2 = P.Uri__makeUserInfo(t2, hostStart, lastAt);
9346 hostStart = lastAt + 1;
9347 }
9348 if (typeof lastColon !== "number")
9349 return lastColon.$ge();
9350 if (lastColon >= 0) {
9351 i = lastColon + 1;
9352 t3 = t1._captured_index_5;
9353 if (typeof t3 !== "number")
9354 return H.iae(t3);
9355 if (i < t3) {
9356 portNumber = 0;
9357 while (true) {
9358 t3 = t1._captured_index_5;
9359 if (typeof t3 !== "number")
9360 return H.iae(t3);
9361 if (!(i < t3))
9362 break;
9363 digit = C.JSString_methods.codeUnitAt$1(t2, i);
9364 if (48 > digit || 57 < digit)
9365 P.Uri__fail(t2, i, "Invalid port number");
9366 portNumber = portNumber * 10 + (digit - 48);
9367 ++i;
9368 }
9369 } else
9370 portNumber = null;
9371 t1._captured_port_4 = P.Uri__makePort(portNumber, t1._captured_scheme_ 1);
9372 hostEnd = lastColon;
9373 }
9374 t1._captured_host_3 = P.Uri__makeHost(t2, hostStart, hostEnd, true);
9375 t3 = t1._captured_index_5;
9376 t4 = t1._captured_end_0;
9377 if (typeof t3 !== "number")
9378 return t3.$lt();
9379 if (typeof t4 !== "number")
9380 return H.iae(t4);
9381 if (t3 < t4)
9382 t1._captured_char_6 = C.JSString_methods.codeUnitAt$1(t2, t3);
9383 }
9384 },
9385 Uri__checkNonWindowsPathReservedCharacters_closure: {
9386 "^": "Closure:0;_captured_argumentError_0",
9387 call$1: function(segment) {
9388 if (J.contains$1$asx(segment, "/") === true)
9389 if (this._captured_argumentError_0)
9390 throw H.wrapException(P.ArgumentError$("Illegal path character " + H .S(segment)));
9391 else
9392 throw H.wrapException(new P.UnsupportedError("Illegal path character " + H.S(segment)));
9393 }
9394 },
9395 Uri__makeQuery_closure: {
9396 "^": "Closure:3;_core$_box_0,_core$_captured_result_1",
9397 call$2: function(key, value) {
9398 var t1 = this._core$_box_0;
9399 if (!t1._captured_first_0)
9400 this._core$_captured_result_1._contents += "&";
9401 t1._captured_first_0 = false;
9402 t1 = this._core$_captured_result_1;
9403 t1._contents += P.Uri__uriEncode(C.List_nxB, key, C.Utf8Codec_false, tru e);
9404 if (!value.get$isEmpty(value)) {
9405 t1._contents += "=";
9406 t1._contents += P.Uri__uriEncode(C.List_nxB, value, C.Utf8Codec_false, true);
9407 }
9408 }
9409 },
9410 Uri_hashCode_combine: {
9411 "^": "Closure:22;",
9412 call$2: function(part, current) {
9413 return current * 31 + J.get$hashCode$(part) & 1073741823;
9414 }
9415 },
9416 Uri_parseIPv4Address_error: {
9417 "^": "Closure:23;",
9418 call$1: function(msg) {
9419 throw H.wrapException(new P.FormatException("Illegal IPv4 address, " + m sg, null, null));
9420 }
9421 },
9422 Uri_parseIPv4Address_closure: {
9423 "^": "Closure:0;_core$_captured_error_0",
9424 call$1: function(byteString) {
9425 var $byte, t1;
9426 $byte = H.Primitives_parseInt(byteString, null, null);
9427 t1 = J.getInterceptor$n($byte);
9428 if (t1.$lt($byte, 0) || t1.$gt($byte, 255))
9429 this._core$_captured_error_0.call$1("each part must be in the range of `0..255`");
9430 return $byte;
9431 }
9432 },
9433 Uri_parseIPv6Address_error: {
9434 "^": "Closure:24;_captured_host_0",
9435 call$2: function(msg, position) {
9436 throw H.wrapException(new P.FormatException("Illegal IPv6 address, " + m sg, this._captured_host_0, position));
9437 },
9438 call$1: function(msg) {
9439 return this.call$2(msg, null);
9440 }
9441 },
9442 Uri_parseIPv6Address_parseHex: {
9443 "^": "Closure:25;_captured_host_1,_captured_error_2",
9444 call$2: function(start, end) {
9445 var value, t1;
9446 if (typeof start !== "number")
9447 return H.iae(start);
9448 if (end - start > 4)
9449 this._captured_error_2.call$2("an IPv6 part can only contain a maximum of 4 hex digits", start);
9450 value = H.Primitives_parseInt(C.JSString_methods.substring$2(this._captu red_host_1, start, end), 16, null);
9451 t1 = J.getInterceptor$n(value);
9452 if (t1.$lt(value, 0) || t1.$gt(value, 65535))
9453 this._captured_error_2.call$2("each part must be in the range of `0x0. .0xFFFF`", start);
9454 return value;
9455 }
9456 },
9457 Uri__uriEncode_byteToHex: {
9458 "^": "Closure:3;",
9459 call$2: function($byte, buffer) {
9460 buffer._contents += H.Primitives_stringFromCharCode(C.JSString_methods.c odeUnitAt$1("0123456789ABCDEF", $byte >>> 4));
9461 buffer._contents += H.Primitives_stringFromCharCode(C.JSString_methods.c odeUnitAt$1("0123456789ABCDEF", $byte & 15));
9462 }
9463 }
9464 }], ["dart.dom.html", "dart:html",, W, {
9465 "^": "",
9466 AnchorElement_AnchorElement: function(href) {
9467 var e = document.createElement("a", null);
9468 return e;
9469 },
9470 Element_Element$html: function(html, treeSanitizer, validator) {
9471 var t1, fragment;
9472 t1 = document.body;
9473 fragment = (t1 && C.BodyElement_methods).createFragment$3$treeSanitizer$va lidator(t1, html, treeSanitizer, validator);
9474 fragment.toString;
9475 t1 = new W._ChildNodeListLazy(fragment);
9476 t1 = t1.where$1(t1, new W.Element_Element$html_closure());
9477 return t1.get$single(t1);
9478 },
9479 HttpRequest_getString: function(url, onProgress, withCredentials) {
9480 return W.HttpRequest_request(url, null, null, onProgress, null, null, null , withCredentials).then$1(new W.HttpRequest_getString_closure());
9481 },
9482 HttpRequest_request: function(url, method, mimeType, onProgress, requestHead ers, responseType, sendData, withCredentials) {
9483 var completer, xhr, t1;
9484 completer = H.setRuntimeTypeInfo(new P._AsyncCompleter(H.setRuntimeTypeInf o(new P._Future(0, $.Zone__current, null), [W.HttpRequest])), [W.HttpRequest]);
9485 xhr = new XMLHttpRequest();
9486 C.HttpRequest_methods.open$3$async(xhr, "GET", url, true);
9487 t1 = H.setRuntimeTypeInfo(new W._EventStream(xhr, "load", false), [null]);
9488 H.setRuntimeTypeInfo(new W._EventStreamSubscription(0, t1._target, t1._eve ntType, W._wrapZone(new W.HttpRequest_request_closure(completer, xhr)), t1._useC apture), [H.getTypeArgumentByIndex(t1, 0)])._tryResume$0();
9489 t1 = H.setRuntimeTypeInfo(new W._EventStream(xhr, "error", false), [null]) ;
9490 H.setRuntimeTypeInfo(new W._EventStreamSubscription(0, t1._target, t1._eve ntType, W._wrapZone(completer.get$completeError()), t1._useCapture), [H.getTypeA rgumentByIndex(t1, 0)])._tryResume$0();
9491 xhr.send();
9492 return completer.future;
9493 },
9494 _JenkinsSmiHash_combine: function(hash, value) {
9495 hash = 536870911 & hash + value;
9496 hash = 536870911 & hash + ((524287 & hash) << 10 >>> 0);
9497 return hash ^ hash >>> 6;
9498 },
9499 _JenkinsSmiHash_finish: function(hash) {
9500 hash = 536870911 & hash + ((67108863 & hash) << 3 >>> 0);
9501 hash ^= hash >>> 11;
9502 return 536870911 & hash + ((16383 & hash) << 15 >>> 0);
9503 },
9504 _convertNativeToDart_EventTarget: function(e) {
9505 var $window;
9506 if (e == null)
9507 return;
9508 if ("postMessage" in e) {
9509 $window = W._DOMWindowCrossFrame__createSafe(e);
9510 if (!!J.getInterceptor($window).$isEventTarget)
9511 return $window;
9512 return;
9513 } else
9514 return e;
9515 },
9516 _wrapZone: function(callback) {
9517 var t1 = $.Zone__current;
9518 if (t1 === C.C__RootZone)
9519 return callback;
9520 return t1.bindUnaryCallback$2$runGuarded(callback, true);
9521 },
9522 HtmlElement: {
9523 "^": "Element;",
9524 $isHtmlElement: 1,
9525 $isElement: 1,
9526 $isNode: 1,
9527 $isObject: 1,
9528 "%": "HTMLAppletElement|HTMLBRElement|HTMLCanvasElement|HTMLContentElement |HTMLDListElement|HTMLDataListElement|HTMLDetailsElement|HTMLDialogElement|HTMLD irectoryElement|HTMLFontElement|HTMLFrameElement|HTMLHRElement|HTMLHeadElement|H TMLHeadingElement|HTMLHtmlElement|HTMLLIElement|HTMLLabelElement|HTMLLegendEleme nt|HTMLMarqueeElement|HTMLMenuElement|HTMLMenuItemElement|HTMLMeterElement|HTMLM odElement|HTMLOListElement|HTMLOptGroupElement|HTMLOptionElement|HTMLParagraphEl ement|HTMLPictureElement|HTMLPreElement|HTMLProgressElement|HTMLQuoteElement|HTM LScriptElement|HTMLShadowElement|HTMLSourceElement|HTMLSpanElement|HTMLStyleElem ent|HTMLTableCaptionElement|HTMLTableCellElement|HTMLTableDataCellElement|HTMLTa bleElement|HTMLTableHeaderCellElement|HTMLTableRowElement|HTMLTableSectionElemen t|HTMLTitleElement|HTMLTrackElement|HTMLUListElement|HTMLUnknownElement;HTMLElem ent"
9529 },
9530 AnchorElement: {
9531 "^": "HtmlElement;target=,hostname=,href},port=,protocol=",
9532 toString$0: function(receiver) {
9533 return String(receiver);
9534 },
9535 $isInterceptor: 1,
9536 "%": "HTMLAnchorElement"
9537 },
9538 ApplicationCacheErrorEvent: {
9539 "^": "Event;message=",
9540 "%": "ApplicationCacheErrorEvent"
9541 },
9542 AreaElement: {
9543 "^": "HtmlElement;target=,hostname=,href},port=,protocol=",
9544 toString$0: function(receiver) {
9545 return String(receiver);
9546 },
9547 $isInterceptor: 1,
9548 "%": "HTMLAreaElement"
9549 },
9550 BaseElement: {
9551 "^": "HtmlElement;href},target=",
9552 "%": "HTMLBaseElement"
9553 },
9554 Blob: {
9555 "^": "Interceptor;",
9556 "%": ";Blob"
9557 },
9558 BodyElement: {
9559 "^": "HtmlElement;",
9560 $isBodyElement: 1,
9561 $isEventTarget: 1,
9562 $isInterceptor: 1,
9563 "%": "HTMLBodyElement"
9564 },
9565 ButtonElement: {
9566 "^": "HtmlElement;name=",
9567 "%": "HTMLButtonElement"
9568 },
9569 CharacterData: {
9570 "^": "Node;length=",
9571 $isInterceptor: 1,
9572 "%": "CDATASection|Comment|Text;CharacterData"
9573 },
9574 CssStyleDeclaration: {
9575 "^": "Interceptor_CssStyleDeclarationBase;length=",
9576 "%": "CSS2Properties|CSSStyleDeclaration|MSStyleCSSProperties"
9577 },
9578 Interceptor_CssStyleDeclarationBase: {
9579 "^": "Interceptor+CssStyleDeclarationBase;"
9580 },
9581 CssStyleDeclarationBase: {
9582 "^": "Object;"
9583 },
9584 DivElement: {
9585 "^": "HtmlElement;",
9586 "%": ";HTMLDivElement"
9587 },
9588 Document: {
9589 "^": "Node;",
9590 querySelector$1: function(receiver, selectors) {
9591 return receiver.querySelector(selectors);
9592 },
9593 get$onClick: function(receiver) {
9594 return H.setRuntimeTypeInfo(new W._EventStream(receiver, "click", false) , [null]);
9595 },
9596 "%": "Document|HTMLDocument|XMLDocument"
9597 },
9598 DocumentFragment: {
9599 "^": "Node;",
9600 querySelector$1: function(receiver, selectors) {
9601 return receiver.querySelector(selectors);
9602 },
9603 $isInterceptor: 1,
9604 "%": "DocumentFragment|ShadowRoot"
9605 },
9606 DomError: {
9607 "^": "Interceptor;message=,name=",
9608 "%": "DOMError|FileError"
9609 },
9610 DomException: {
9611 "^": "Interceptor;message=",
9612 get$name: function(receiver) {
9613 var errorName = receiver.name;
9614 if (P.Device_isWebKit() === true && errorName === "SECURITY_ERR")
9615 return "SecurityError";
9616 if (P.Device_isWebKit() === true && errorName === "SYNTAX_ERR")
9617 return "SyntaxError";
9618 return errorName;
9619 },
9620 toString$0: function(receiver) {
9621 return String(receiver);
9622 },
9623 "%": "DOMException"
9624 },
9625 DomRectReadOnly: {
9626 "^": "Interceptor;bottom=,height=,left=,right=,top=,width=",
9627 toString$0: function(receiver) {
9628 return "Rectangle (" + H.S(receiver.left) + ", " + H.S(receiver.top) + " ) " + H.S(this.get$width(receiver)) + " x " + H.S(this.get$height(receiver));
9629 },
9630 $eq: function(receiver, other) {
9631 var t1, t2, t3;
9632 if (other == null)
9633 return false;
9634 t1 = J.getInterceptor(other);
9635 if (!t1.$isRectangle)
9636 return false;
9637 t2 = receiver.left;
9638 t3 = t1.get$left(other);
9639 if (t2 == null ? t3 == null : t2 === t3) {
9640 t2 = receiver.top;
9641 t3 = t1.get$top(other);
9642 if (t2 == null ? t3 == null : t2 === t3) {
9643 t2 = this.get$width(receiver);
9644 t3 = t1.get$width(other);
9645 if (t2 == null ? t3 == null : t2 === t3) {
9646 t2 = this.get$height(receiver);
9647 t1 = t1.get$height(other);
9648 t1 = t2 == null ? t1 == null : t2 === t1;
9649 } else
9650 t1 = false;
9651 } else
9652 t1 = false;
9653 } else
9654 t1 = false;
9655 return t1;
9656 },
9657 get$hashCode: function(receiver) {
9658 var t1, t2, t3, t4;
9659 t1 = J.get$hashCode$(receiver.left);
9660 t2 = J.get$hashCode$(receiver.top);
9661 t3 = J.get$hashCode$(this.get$width(receiver));
9662 t4 = J.get$hashCode$(this.get$height(receiver));
9663 return W._JenkinsSmiHash_finish(W._JenkinsSmiHash_combine(W._JenkinsSmiH ash_combine(W._JenkinsSmiHash_combine(W._JenkinsSmiHash_combine(0, t1), t2), t3) , t4));
9664 },
9665 $isRectangle: 1,
9666 $asRectangle: Isolate.functionThatReturnsNull,
9667 "%": ";DOMRectReadOnly"
9668 },
9669 DomTokenList: {
9670 "^": "Interceptor;length=",
9671 add$1: function(receiver, tokens) {
9672 return receiver.add(tokens);
9673 },
9674 contains$1: function(receiver, token) {
9675 return receiver.contains(token);
9676 },
9677 "%": "DOMSettableTokenList|DOMTokenList"
9678 },
9679 Element: {
9680 "^": "Node;tagName=",
9681 get$attributes: function(receiver) {
9682 return new W._ElementAttributeMap(receiver);
9683 },
9684 get$classes: function(receiver) {
9685 return new W._ElementCssClassSet(receiver);
9686 },
9687 toString$0: function(receiver) {
9688 return receiver.localName;
9689 },
9690 createFragment$3$treeSanitizer$validator: function(receiver, html, treeSan itizer, validator) {
9691 var t1, t2, base, contextElement, fragment;
9692 if (treeSanitizer == null) {
9693 if (validator == null) {
9694 t1 = $.Element__defaultValidator;
9695 if (t1 == null) {
9696 t1 = H.setRuntimeTypeInfo([], [W.NodeValidator]);
9697 t2 = new W.NodeValidatorBuilder(t1);
9698 t1.push(W._Html5NodeValidator$(null));
9699 t1.push(W._TemplatingNodeValidator$());
9700 $.Element__defaultValidator = t2;
9701 validator = t2;
9702 } else
9703 validator = t1;
9704 }
9705 t1 = $.Element__defaultSanitizer;
9706 if (t1 == null) {
9707 t1 = new W._ValidatingTreeSanitizer(validator);
9708 $.Element__defaultSanitizer = t1;
9709 treeSanitizer = t1;
9710 } else {
9711 t1.validator = validator;
9712 treeSanitizer = t1;
9713 }
9714 } else if (validator != null)
9715 throw H.wrapException(P.ArgumentError$("validator can only be passed i f treeSanitizer is null"));
9716 if ($.Element__parseDocument == null) {
9717 t1 = document.implementation.createHTMLDocument("");
9718 $.Element__parseDocument = t1;
9719 $.Element__parseRange = t1.createRange();
9720 base = $.Element__parseDocument.createElement("base", null);
9721 J.set$href$x(base, document.baseURI);
9722 $.Element__parseDocument.head.appendChild(base);
9723 }
9724 t1 = $.Element__parseDocument;
9725 if (!!this.$isBodyElement)
9726 contextElement = t1.body;
9727 else {
9728 contextElement = t1.createElement(receiver.tagName, null);
9729 $.Element__parseDocument.body.appendChild(contextElement);
9730 }
9731 if ("createContextualFragment" in window.Range.prototype && !C.JSArray_m ethods.contains$1(C.List_ego, receiver.tagName)) {
9732 $.Element__parseRange.selectNodeContents(contextElement);
9733 fragment = $.Element__parseRange.createContextualFragment(html);
9734 } else {
9735 contextElement.innerHTML = html;
9736 fragment = $.Element__parseDocument.createDocumentFragment();
9737 for (; t1 = contextElement.firstChild, t1 != null;)
9738 fragment.appendChild(t1);
9739 }
9740 t1 = $.Element__parseDocument.body;
9741 if (contextElement == null ? t1 != null : contextElement !== t1)
9742 J.remove$0$ax(contextElement);
9743 treeSanitizer.sanitizeTree$1(fragment);
9744 document.adoptNode(fragment);
9745 return fragment;
9746 },
9747 querySelector$1: function(receiver, selectors) {
9748 return receiver.querySelector(selectors);
9749 },
9750 get$onClick: function(receiver) {
9751 return H.setRuntimeTypeInfo(new W._ElementEventStreamImpl(receiver, "cli ck", false), [null]);
9752 },
9753 $isElement: 1,
9754 $isNode: 1,
9755 $isObject: 1,
9756 $isInterceptor: 1,
9757 $isEventTarget: 1,
9758 "%": ";Element"
9759 },
9760 Element_Element$html_closure: {
9761 "^": "Closure:0;",
9762 call$1: function(e) {
9763 return !!J.getInterceptor(e).$isElement;
9764 }
9765 },
9766 EmbedElement: {
9767 "^": "HtmlElement;name=",
9768 "%": "HTMLEmbedElement"
9769 },
9770 ErrorEvent: {
9771 "^": "Event;error=,message=",
9772 "%": "ErrorEvent"
9773 },
9774 Event: {
9775 "^": "Interceptor;",
9776 get$target: function(receiver) {
9777 return W._convertNativeToDart_EventTarget(receiver.target);
9778 },
9779 "%": "AnimationPlayerEvent|AudioProcessingEvent|AutocompleteErrorEvent|Bef oreUnloadEvent|CloseEvent|CompositionEvent|CustomEvent|DeviceLightEvent|DeviceMo tionEvent|DeviceOrientationEvent|DragEvent|ExtendableEvent|FetchEvent|FocusEvent |FontFaceSetLoadEvent|GamepadEvent|HashChangeEvent|IDBVersionChangeEvent|Install Event|KeyboardEvent|MIDIConnectionEvent|MIDIMessageEvent|MSPointerEvent|MediaKey NeededEvent|MediaQueryListEvent|MediaStreamEvent|MediaStreamTrackEvent|MessageEv ent|MouseEvent|MutationEvent|OfflineAudioCompletionEvent|OverflowEvent|PageTrans itionEvent|PointerEvent|PopStateEvent|ProgressEvent|PushEvent|RTCDTMFToneChangeE vent|RTCDataChannelEvent|RTCIceCandidateEvent|RTCPeerConnectionIceEvent|RelatedE vent|ResourceProgressEvent|SVGZoomEvent|SecurityPolicyViolationEvent|SpeechRecog nitionEvent|StorageEvent|TextEvent|TouchEvent|TrackEvent|TransitionEvent|UIEvent |WebGLContextEvent|WebKitAnimationEvent|WebKitTransitionEvent|WheelEvent|XMLHttp RequestProgressEvent;ClipboardEvent|Event|InputEvent"
9780 },
9781 EventTarget: {
9782 "^": "Interceptor;",
9783 _addEventListener$3: function(receiver, type, listener, useCapture) {
9784 return receiver.addEventListener(type, H.convertDartClosureToJS(listener , 1), useCapture);
9785 },
9786 _removeEventListener$3: function(receiver, type, listener, useCapture) {
9787 return receiver.removeEventListener(type, H.convertDartClosureToJS(liste ner, 1), useCapture);
9788 },
9789 $isEventTarget: 1,
9790 "%": "MediaStream;EventTarget"
9791 },
9792 FieldSetElement: {
9793 "^": "HtmlElement;name=",
9794 "%": "HTMLFieldSetElement"
9795 },
9796 File: {
9797 "^": "Blob;name=",
9798 "%": "File"
9799 },
9800 FormElement: {
9801 "^": "HtmlElement;length=,name=,target=",
9802 "%": "HTMLFormElement"
9803 },
9804 HttpRequest: {
9805 "^": "HttpRequestEventTarget;responseText=",
9806 open$5$async$password$user: function(receiver, method, url, async, passwor d, user) {
9807 return receiver.open(method, url, async, user, password);
9808 },
9809 open$3$async: function($receiver, method, url, async) {
9810 return $receiver.open(method, url, async);
9811 },
9812 send$1: function(receiver, data) {
9813 return receiver.send(data);
9814 },
9815 $isHttpRequest: 1,
9816 $isObject: 1,
9817 "%": "XMLHttpRequest"
9818 },
9819 HttpRequest_getString_closure: {
9820 "^": "Closure:26;",
9821 call$1: function(xhr) {
9822 return J.get$responseText$x(xhr);
9823 }
9824 },
9825 HttpRequest_request_closure: {
9826 "^": "Closure:0;_captured_completer_1,_captured_xhr_2",
9827 call$1: function(e) {
9828 var t1, t2, accepted, unknownRedirect, t3;
9829 t1 = this._captured_xhr_2;
9830 t2 = t1.status;
9831 if (typeof t2 !== "number")
9832 return t2.$ge();
9833 accepted = t2 >= 200 && t2 < 300;
9834 unknownRedirect = t2 > 307 && t2 < 400;
9835 t2 = accepted || t2 === 0 || t2 === 304 || unknownRedirect;
9836 t3 = this._captured_completer_1;
9837 if (t2)
9838 t3.complete$1(0, t1);
9839 else
9840 t3.completeError$1(e);
9841 }
9842 },
9843 HttpRequestEventTarget: {
9844 "^": "EventTarget;",
9845 "%": ";XMLHttpRequestEventTarget"
9846 },
9847 IFrameElement: {
9848 "^": "HtmlElement;name=",
9849 "%": "HTMLIFrameElement"
9850 },
9851 ImageElement: {
9852 "^": "HtmlElement;",
9853 complete$1: function($receiver, arg0) {
9854 return $receiver.complete.call$1(arg0);
9855 },
9856 "%": "HTMLImageElement"
9857 },
9858 InputElement: {
9859 "^": "HtmlElement;name=",
9860 accept$1: function($receiver, arg0) {
9861 return $receiver.accept.call$1(arg0);
9862 },
9863 $isElement: 1,
9864 $isInterceptor: 1,
9865 $isEventTarget: 1,
9866 "%": "HTMLInputElement"
9867 },
9868 KeygenElement: {
9869 "^": "HtmlElement;name=",
9870 "%": "HTMLKeygenElement"
9871 },
9872 LinkElement: {
9873 "^": "HtmlElement;href}",
9874 "%": "HTMLLinkElement"
9875 },
9876 Location: {
9877 "^": "Interceptor;",
9878 toString$0: function(receiver) {
9879 return String(receiver);
9880 },
9881 "%": "Location"
9882 },
9883 MapElement: {
9884 "^": "HtmlElement;name=",
9885 "%": "HTMLMapElement"
9886 },
9887 MediaElement: {
9888 "^": "HtmlElement;error=",
9889 "%": "HTMLAudioElement|HTMLMediaElement|HTMLVideoElement"
9890 },
9891 MediaKeyEvent: {
9892 "^": "Event;message=",
9893 "%": "MediaKeyEvent"
9894 },
9895 MediaKeyMessageEvent: {
9896 "^": "Event;message=",
9897 "%": "MediaKeyMessageEvent"
9898 },
9899 MetaElement: {
9900 "^": "HtmlElement;name=",
9901 "%": "HTMLMetaElement"
9902 },
9903 MidiOutput: {
9904 "^": "MidiPort;",
9905 send$2: function(receiver, data, timestamp) {
9906 return receiver.send(data, timestamp);
9907 },
9908 send$1: function($receiver, data) {
9909 return $receiver.send(data);
9910 },
9911 "%": "MIDIOutput"
9912 },
9913 MidiPort: {
9914 "^": "EventTarget;name=",
9915 "%": "MIDIInput;MIDIPort"
9916 },
9917 Navigator: {
9918 "^": "Interceptor;",
9919 $isInterceptor: 1,
9920 "%": "Navigator"
9921 },
9922 NavigatorUserMediaError: {
9923 "^": "Interceptor;message=,name=",
9924 "%": "NavigatorUserMediaError"
9925 },
9926 _ChildNodeListLazy: {
9927 "^": "ListBase;_this",
9928 get$last: function(_) {
9929 var result = this._this.lastChild;
9930 if (result == null)
9931 throw H.wrapException(new P.StateError("No elements"));
9932 return result;
9933 },
9934 add$1: function(_, value) {
9935 this._this.appendChild(value);
9936 },
9937 $indexSet: function(_, index, value) {
9938 var t1, t2;
9939 t1 = this._this;
9940 t2 = t1.childNodes;
9941 if (index < 0 || index >= t2.length)
9942 return H.ioore(t2, index);
9943 t1.replaceChild(value, t2[index]);
9944 },
9945 get$iterator: function(_) {
9946 return C.NodeList_methods.get$iterator(this._this.childNodes);
9947 },
9948 get$length: function(_) {
9949 return this._this.childNodes.length;
9950 },
9951 set$length: function(_, value) {
9952 throw H.wrapException(new P.UnsupportedError("Cannot set length on immut able List."));
9953 },
9954 $index: function(_, index) {
9955 var t1 = this._this.childNodes;
9956 if (index >>> 0 !== index || index >= t1.length)
9957 return H.ioore(t1, index);
9958 return t1[index];
9959 },
9960 $asListBase: function() {
9961 return [W.Node];
9962 },
9963 $asObject_ListMixin: function() {
9964 return [W.Node];
9965 },
9966 $asList: function() {
9967 return [W.Node];
9968 }
9969 },
9970 Node: {
9971 "^": "EventTarget;",
9972 remove$0: function(receiver) {
9973 var t1 = receiver.parentNode;
9974 if (t1 != null)
9975 t1.removeChild(receiver);
9976 },
9977 toString$0: function(receiver) {
9978 var value = receiver.nodeValue;
9979 return value == null ? this.super$Interceptor$toString(receiver) : value ;
9980 },
9981 contains$1: function(receiver, other) {
9982 return receiver.contains(other);
9983 },
9984 $isNode: 1,
9985 $isObject: 1,
9986 "%": ";Node"
9987 },
9988 NodeList: {
9989 "^": "Interceptor_ListMixin_ImmutableListMixin;",
9990 get$length: function(receiver) {
9991 return receiver.length;
9992 },
9993 $index: function(receiver, index) {
9994 if (index >>> 0 !== index || index >= receiver.length)
9995 throw H.wrapException(P.IndexError$(index, receiver, null, null, null) );
9996 return receiver[index];
9997 },
9998 $indexSet: function(receiver, index, value) {
9999 throw H.wrapException(new P.UnsupportedError("Cannot assign element of i mmutable List."));
10000 },
10001 set$length: function(receiver, value) {
10002 throw H.wrapException(new P.UnsupportedError("Cannot resize immutable Li st."));
10003 },
10004 get$last: function(receiver) {
10005 var len = receiver.length;
10006 if (len > 0)
10007 return receiver[len - 1];
10008 throw H.wrapException(new P.StateError("No elements"));
10009 },
10010 elementAt$1: function(receiver, index) {
10011 if (index < 0 || index >= receiver.length)
10012 return H.ioore(receiver, index);
10013 return receiver[index];
10014 },
10015 $isList: 1,
10016 $asList: function() {
10017 return [W.Node];
10018 },
10019 $isEfficientLength: 1,
10020 $isJavaScriptIndexingBehavior: 1,
10021 $isJSIndexable: 1,
10022 "%": "NodeList|RadioNodeList"
10023 },
10024 Interceptor_ListMixin: {
10025 "^": "Interceptor+ListMixin;",
10026 $isList: 1,
10027 $asList: function() {
10028 return [W.Node];
10029 },
10030 $isEfficientLength: 1
10031 },
10032 Interceptor_ListMixin_ImmutableListMixin: {
10033 "^": "Interceptor_ListMixin+ImmutableListMixin;",
10034 $isList: 1,
10035 $asList: function() {
10036 return [W.Node];
10037 },
10038 $isEfficientLength: 1
10039 },
10040 ObjectElement: {
10041 "^": "HtmlElement;name=",
10042 "%": "HTMLObjectElement"
10043 },
10044 OutputElement: {
10045 "^": "HtmlElement;name=",
10046 "%": "HTMLOutputElement"
10047 },
10048 ParamElement: {
10049 "^": "HtmlElement;name=",
10050 "%": "HTMLParamElement"
10051 },
10052 PluginPlaceholderElement: {
10053 "^": "DivElement;message=",
10054 "%": "PluginPlaceholderElement"
10055 },
10056 PositionError: {
10057 "^": "Interceptor;message=",
10058 "%": "PositionError"
10059 },
10060 ProcessingInstruction: {
10061 "^": "CharacterData;target=",
10062 "%": "ProcessingInstruction"
10063 },
10064 SelectElement: {
10065 "^": "HtmlElement;length=,name=",
10066 "%": "HTMLSelectElement"
10067 },
10068 SpeechRecognitionError: {
10069 "^": "Event;error=,message=",
10070 "%": "SpeechRecognitionError"
10071 },
10072 SpeechSynthesisEvent: {
10073 "^": "Event;name=",
10074 "%": "SpeechSynthesisEvent"
10075 },
10076 TableColElement: {
10077 "^": "HtmlElement;span=",
10078 "%": "HTMLTableColElement"
10079 },
10080 TemplateElement: {
10081 "^": "HtmlElement;",
10082 $isTemplateElement: 1,
10083 "%": "HTMLTemplateElement"
10084 },
10085 TextAreaElement: {
10086 "^": "HtmlElement;name=",
10087 "%": "HTMLTextAreaElement"
10088 },
10089 Window: {
10090 "^": "EventTarget;name=",
10091 get$animationFrame: function(receiver) {
10092 var completer = H.setRuntimeTypeInfo(new P._SyncCompleter(H.setRuntimeTy peInfo(new P._Future(0, $.Zone__current, null), [P.num])), [P.num]);
10093 this._ensureRequestAnimationFrame$0(receiver);
10094 this._requestAnimationFrame$1(receiver, W._wrapZone(new W.Window_animati onFrame_closure(completer)));
10095 return completer.future;
10096 },
10097 _requestAnimationFrame$1: function(receiver, callback) {
10098 return receiver.requestAnimationFrame(H.convertDartClosureToJS(callback, 1));
10099 },
10100 _ensureRequestAnimationFrame$0: function(receiver) {
10101 if (!!(receiver.requestAnimationFrame && receiver.cancelAnimationFrame))
10102 return;
10103 (function($this) {
10104 var vendors = ['ms', 'moz', 'webkit', 'o'];
10105 for (var i = 0; i < vendors.length && !$this.requestAnimationFrame; ++ i) {
10106 $this.requestAnimationFrame = $this[vendors[i] + 'RequestAnimationFr ame'];
10107 $this.cancelAnimationFrame = $this[vendors[i] + 'CancelAnimationFram e'] || $this[vendors[i] + 'CancelRequestAnimationFrame'];
10108 }
10109 if ($this.requestAnimationFrame && $this.cancelAnimationFrame)
10110 return;
10111 $this.requestAnimationFrame = function(callback) {
10112 return window.setTimeout(function() {
10113 callback(Date.now());
10114 }, 16);
10115 };
10116 $this.cancelAnimationFrame = function(id) {
10117 clearTimeout(id);
10118 };
10119 })(receiver);
10120 },
10121 get$onClick: function(receiver) {
10122 return H.setRuntimeTypeInfo(new W._EventStream(receiver, "click", false) , [null]);
10123 },
10124 $isInterceptor: 1,
10125 $isEventTarget: 1,
10126 "%": "DOMWindow|Window"
10127 },
10128 Window_animationFrame_closure: {
10129 "^": "Closure:0;_captured_completer_0",
10130 call$1: function(time) {
10131 this._captured_completer_0.complete$1(0, time);
10132 }
10133 },
10134 _Attr: {
10135 "^": "Node;name=",
10136 "%": "Attr"
10137 },
10138 _ClientRect: {
10139 "^": "Interceptor;bottom=,height=,left=,right=,top=,width=",
10140 toString$0: function(receiver) {
10141 return "Rectangle (" + H.S(receiver.left) + ", " + H.S(receiver.top) + " ) " + H.S(receiver.width) + " x " + H.S(receiver.height);
10142 },
10143 $eq: function(receiver, other) {
10144 var t1, t2, t3;
10145 if (other == null)
10146 return false;
10147 t1 = J.getInterceptor(other);
10148 if (!t1.$isRectangle)
10149 return false;
10150 t2 = receiver.left;
10151 t3 = t1.get$left(other);
10152 if (t2 == null ? t3 == null : t2 === t3) {
10153 t2 = receiver.top;
10154 t3 = t1.get$top(other);
10155 if (t2 == null ? t3 == null : t2 === t3) {
10156 t2 = receiver.width;
10157 t3 = t1.get$width(other);
10158 if (t2 == null ? t3 == null : t2 === t3) {
10159 t2 = receiver.height;
10160 t1 = t1.get$height(other);
10161 t1 = t2 == null ? t1 == null : t2 === t1;
10162 } else
10163 t1 = false;
10164 } else
10165 t1 = false;
10166 } else
10167 t1 = false;
10168 return t1;
10169 },
10170 get$hashCode: function(receiver) {
10171 var t1, t2, t3, t4;
10172 t1 = J.get$hashCode$(receiver.left);
10173 t2 = J.get$hashCode$(receiver.top);
10174 t3 = J.get$hashCode$(receiver.width);
10175 t4 = J.get$hashCode$(receiver.height);
10176 return W._JenkinsSmiHash_finish(W._JenkinsSmiHash_combine(W._JenkinsSmiH ash_combine(W._JenkinsSmiHash_combine(W._JenkinsSmiHash_combine(0, t1), t2), t3) , t4));
10177 },
10178 $isRectangle: 1,
10179 $asRectangle: Isolate.functionThatReturnsNull,
10180 "%": "ClientRect"
10181 },
10182 _DocumentType: {
10183 "^": "Node;",
10184 $isInterceptor: 1,
10185 "%": "DocumentType"
10186 },
10187 _DomRect: {
10188 "^": "DomRectReadOnly;",
10189 get$height: function(receiver) {
10190 return receiver.height;
10191 },
10192 get$width: function(receiver) {
10193 return receiver.width;
10194 },
10195 "%": "DOMRect"
10196 },
10197 _HTMLFrameSetElement: {
10198 "^": "HtmlElement;",
10199 $isEventTarget: 1,
10200 $isInterceptor: 1,
10201 "%": "HTMLFrameSetElement"
10202 },
10203 _NamedNodeMap: {
10204 "^": "Interceptor_ListMixin_ImmutableListMixin0;",
10205 get$length: function(receiver) {
10206 return receiver.length;
10207 },
10208 $index: function(receiver, index) {
10209 if (index >>> 0 !== index || index >= receiver.length)
10210 throw H.wrapException(P.IndexError$(index, receiver, null, null, null) );
10211 return receiver[index];
10212 },
10213 $indexSet: function(receiver, index, value) {
10214 throw H.wrapException(new P.UnsupportedError("Cannot assign element of i mmutable List."));
10215 },
10216 set$length: function(receiver, value) {
10217 throw H.wrapException(new P.UnsupportedError("Cannot resize immutable Li st."));
10218 },
10219 get$last: function(receiver) {
10220 var len = receiver.length;
10221 if (len > 0)
10222 return receiver[len - 1];
10223 throw H.wrapException(new P.StateError("No elements"));
10224 },
10225 elementAt$1: function(receiver, index) {
10226 if (index < 0 || index >= receiver.length)
10227 return H.ioore(receiver, index);
10228 return receiver[index];
10229 },
10230 $isList: 1,
10231 $asList: function() {
10232 return [W.Node];
10233 },
10234 $isEfficientLength: 1,
10235 $isJavaScriptIndexingBehavior: 1,
10236 $isJSIndexable: 1,
10237 "%": "MozNamedAttrMap|NamedNodeMap"
10238 },
10239 Interceptor_ListMixin0: {
10240 "^": "Interceptor+ListMixin;",
10241 $isList: 1,
10242 $asList: function() {
10243 return [W.Node];
10244 },
10245 $isEfficientLength: 1
10246 },
10247 Interceptor_ListMixin_ImmutableListMixin0: {
10248 "^": "Interceptor_ListMixin0+ImmutableListMixin;",
10249 $isList: 1,
10250 $asList: function() {
10251 return [W.Node];
10252 },
10253 $isEfficientLength: 1
10254 },
10255 _AttributeMap: {
10256 "^": "Object;_element<",
10257 forEach$1: function(_, f) {
10258 var t1, t2, _i, key;
10259 for (t1 = this.get$keys(), t2 = t1.length, _i = 0; _i < t1.length; t1.le ngth === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
10260 key = t1[_i];
10261 f.call$2(key, this.$index(0, key));
10262 }
10263 },
10264 get$keys: function() {
10265 var attributes, keys, len, i;
10266 attributes = this._element.attributes;
10267 keys = H.setRuntimeTypeInfo([], [P.String]);
10268 for (len = attributes.length, i = 0; i < len; ++i) {
10269 if (i >= attributes.length)
10270 return H.ioore(attributes, i);
10271 if (this._matches$1(attributes[i])) {
10272 if (i >= attributes.length)
10273 return H.ioore(attributes, i);
10274 keys.push(J.get$name$x(attributes[i]));
10275 }
10276 }
10277 return keys;
10278 },
10279 get$isEmpty: function(_) {
10280 return this.get$length(this) === 0;
10281 },
10282 get$isNotEmpty: function(_) {
10283 return this.get$length(this) !== 0;
10284 }
10285 },
10286 _ElementAttributeMap: {
10287 "^": "_AttributeMap;_element",
10288 $index: function(_, key) {
10289 return this._element.getAttribute(key);
10290 },
10291 $indexSet: function(_, key, value) {
10292 this._element.setAttribute(key, value);
10293 },
10294 get$length: function(_) {
10295 return this.get$keys().length;
10296 },
10297 _matches$1: function(node) {
10298 return node.namespaceURI == null;
10299 }
10300 },
10301 _ElementCssClassSet: {
10302 "^": "CssClassSetImpl;_element<",
10303 readClasses$0: function() {
10304 var s, t1, t2, _i, trimmed;
10305 s = P.LinkedHashSet_LinkedHashSet(null, null, null, P.String);
10306 for (t1 = this._element.className.split(" "), t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), + +_i) {
10307 trimmed = J.trim$0$s(t1[_i]);
10308 if (trimmed.length !== 0)
10309 s.add$1(0, trimmed);
10310 }
10311 return s;
10312 },
10313 writeClasses$1: function(s) {
10314 this._element.className = s.join$1(0, " ");
10315 },
10316 get$length: function(_) {
10317 return this._element.classList.length;
10318 },
10319 get$isEmpty: function(_) {
10320 return this._element.classList.length === 0;
10321 },
10322 get$isNotEmpty: function(_) {
10323 return this._element.classList.length !== 0;
10324 },
10325 contains$1: function(_, value) {
10326 return typeof value === "string" && this._element.classList.contains(val ue);
10327 },
10328 add$1: function(_, value) {
10329 var list, t1;
10330 list = this._element.classList;
10331 t1 = list.contains(value);
10332 list.add(value);
10333 return !t1;
10334 },
10335 remove$1: function(_, value) {
10336 var list, removed, t1;
10337 list = this._element.classList;
10338 removed = list.contains(value);
10339 list.remove(value);
10340 t1 = removed;
10341 return t1;
10342 },
10343 toggle$2: function(_, value, shouldAdd) {
10344 return this._element.classList.toggle(value);
10345 },
10346 toggle$1: function($receiver, value) {
10347 return this.toggle$2($receiver, value, null);
10348 }
10349 },
10350 _EventStream: {
10351 "^": "Stream;_target,_eventType,_useCapture",
10352 listen$4$cancelOnError$onDone$onError: function(onData, cancelOnError, onD one, onError) {
10353 var t1 = new W._EventStreamSubscription(0, this._target, this._eventType , W._wrapZone(onData), this._useCapture);
10354 t1.$builtinTypeInfo = this.$builtinTypeInfo;
10355 t1._tryResume$0();
10356 return t1;
10357 },
10358 listen$3$onDone$onError: function(onData, onDone, onError) {
10359 return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, onError);
10360 }
10361 },
10362 _ElementEventStreamImpl: {
10363 "^": "_EventStream;_target,_eventType,_useCapture"
10364 },
10365 _EventStreamSubscription: {
10366 "^": "StreamSubscription;_pauseCount,_target,_eventType,_onData,_useCaptur e",
10367 cancel$0: function() {
10368 if (this._target == null)
10369 return;
10370 this._unlisten$0();
10371 this._target = null;
10372 this._onData = null;
10373 return;
10374 },
10375 pause$1: function(_, resumeSignal) {
10376 if (this._target == null)
10377 return;
10378 ++this._pauseCount;
10379 this._unlisten$0();
10380 },
10381 pause$0: function($receiver) {
10382 return this.pause$1($receiver, null);
10383 },
10384 resume$0: function() {
10385 if (this._target == null || this._pauseCount <= 0)
10386 return;
10387 --this._pauseCount;
10388 this._tryResume$0();
10389 },
10390 _tryResume$0: function() {
10391 var t1, t2, t3;
10392 t1 = this._onData;
10393 t2 = t1 != null;
10394 if (t2 && this._pauseCount <= 0) {
10395 t3 = this._target;
10396 t3.toString;
10397 if (t2)
10398 J._addEventListener$3$x(t3, this._eventType, t1, this._useCapture);
10399 }
10400 },
10401 _unlisten$0: function() {
10402 var t1, t2, t3;
10403 t1 = this._onData;
10404 t2 = t1 != null;
10405 if (t2) {
10406 t3 = this._target;
10407 t3.toString;
10408 if (t2)
10409 J._removeEventListener$3$x(t3, this._eventType, t1, this._useCapture );
10410 }
10411 }
10412 },
10413 _Html5NodeValidator: {
10414 "^": "Object;uriPolicy<",
10415 allowsElement$1: function(element) {
10416 return $.$get$_Html5NodeValidator__allowedElements().contains$1(0, J.get $tagName$x(element));
10417 },
10418 allowsAttribute$3: function(element, attributeName, value) {
10419 var tagName, t1, validator;
10420 tagName = J.get$tagName$x(element);
10421 t1 = $.$get$_Html5NodeValidator__attributeValidators();
10422 validator = t1.$index(0, H.S(tagName) + "::" + attributeName);
10423 if (validator == null)
10424 validator = t1.$index(0, "*::" + attributeName);
10425 if (validator == null)
10426 return false;
10427 return validator.call$4(element, attributeName, value, this);
10428 },
10429 _Html5NodeValidator$1$uriPolicy: function(uriPolicy) {
10430 var t1, _i;
10431 t1 = $.$get$_Html5NodeValidator__attributeValidators();
10432 if (t1.get$isEmpty(t1)) {
10433 for (_i = 0; _i < 261; ++_i)
10434 t1.$indexSet(0, C.List_1GN[_i], W.html__Html5NodeValidator__standard AttributeValidator$closure());
10435 for (_i = 0; _i < 12; ++_i)
10436 t1.$indexSet(0, C.List_yrN[_i], W.html__Html5NodeValidator__uriAttri buteValidator$closure());
10437 }
10438 },
10439 $isNodeValidator: 1,
10440 static: {_Html5NodeValidator$: function(uriPolicy) {
10441 var t1 = new W._Html5NodeValidator(new W._SameOriginUriPolicy(W.Anchor Element_AnchorElement(null), window.location));
10442 t1._Html5NodeValidator$1$uriPolicy(uriPolicy);
10443 return t1;
10444 }, _Html5NodeValidator__standardAttributeValidator: [function(element, a ttributeName, value, context) {
10445 return true;
10446 }, "call$4", "html__Html5NodeValidator__standardAttributeValidator$closu re", 8, 0, 10], _Html5NodeValidator__uriAttributeValidator: [function(element, a ttributeName, value, context) {
10447 return context.get$uriPolicy().allowsUri$1(value);
10448 }, "call$4", "html__Html5NodeValidator__uriAttributeValidator$closure", 8, 0, 10]}
10449 },
10450 ImmutableListMixin: {
10451 "^": "Object;",
10452 get$iterator: function(receiver) {
10453 return H.setRuntimeTypeInfo(new W.FixedSizeListIterator(receiver, this.g et$length(receiver), -1, null), [H.getRuntimeTypeArgument(receiver, "ImmutableLi stMixin", 0)]);
10454 },
10455 add$1: function(receiver, value) {
10456 throw H.wrapException(new P.UnsupportedError("Cannot add to immutable Li st."));
10457 },
10458 $isList: 1,
10459 $asList: null,
10460 $isEfficientLength: 1
10461 },
10462 NodeValidatorBuilder: {
10463 "^": "Object;_validators",
10464 add$1: function(_, validator) {
10465 this._validators.push(validator);
10466 },
10467 allowsElement$1: function(element) {
10468 return C.JSArray_methods.any$1(this._validators, new W.NodeValidatorBuil der_allowsElement_closure(element));
10469 },
10470 allowsAttribute$3: function(element, attributeName, value) {
10471 return C.JSArray_methods.any$1(this._validators, new W.NodeValidatorBuil der_allowsAttribute_closure(element, attributeName, value));
10472 }
10473 },
10474 NodeValidatorBuilder_allowsElement_closure: {
10475 "^": "Closure:0;_captured_element_0",
10476 call$1: function(v) {
10477 return v.allowsElement$1(this._captured_element_0);
10478 }
10479 },
10480 NodeValidatorBuilder_allowsAttribute_closure: {
10481 "^": "Closure:0;_captured_element_0,_captured_attributeName_1,_captured_va lue_2",
10482 call$1: function(v) {
10483 return v.allowsAttribute$3(this._captured_element_0, this._captured_attr ibuteName_1, this._captured_value_2);
10484 }
10485 },
10486 _SimpleNodeValidator: {
10487 "^": "Object;allowedElements,allowedAttributes,allowedUriAttributes,uriPol icy<",
10488 allowsElement$1: function(element) {
10489 return this.allowedElements.contains$1(0, J.get$tagName$x(element));
10490 },
10491 allowsAttribute$3: ["super$_SimpleNodeValidator$allowsAttribute", function (element, attributeName, value) {
10492 var tagName, t1;
10493 tagName = J.get$tagName$x(element);
10494 t1 = this.allowedUriAttributes;
10495 if (t1.contains$1(0, H.S(tagName) + "::" + attributeName))
10496 return this.uriPolicy.allowsUri$1(value);
10497 else if (t1.contains$1(0, "*::" + attributeName))
10498 return this.uriPolicy.allowsUri$1(value);
10499 else {
10500 t1 = this.allowedAttributes;
10501 if (t1.contains$1(0, H.S(tagName) + "::" + attributeName))
10502 return true;
10503 else if (t1.contains$1(0, "*::" + attributeName))
10504 return true;
10505 else if (t1.contains$1(0, H.S(tagName) + "::*"))
10506 return true;
10507 else if (t1.contains$1(0, "*::*"))
10508 return true;
10509 }
10510 return false;
10511 }],
10512 _SimpleNodeValidator$4$allowedAttributes$allowedElements$allowedUriAttribu tes: function(uriPolicy, allowedAttributes, allowedElements, allowedUriAttribute s) {
10513 var t1, legalAttributes, extraUriAttributes;
10514 this.allowedElements.addAll$1(0, allowedElements);
10515 if (allowedUriAttributes == null)
10516 allowedUriAttributes = C.List_empty;
10517 t1 = J.getInterceptor$ax(allowedAttributes);
10518 legalAttributes = t1.where$1(allowedAttributes, new W._SimpleNodeValidat or_closure());
10519 extraUriAttributes = t1.where$1(allowedAttributes, new W._SimpleNodeVali dator_closure0());
10520 this.allowedAttributes.addAll$1(0, legalAttributes);
10521 t1 = this.allowedUriAttributes;
10522 t1.addAll$1(0, allowedUriAttributes);
10523 t1.addAll$1(0, extraUriAttributes);
10524 },
10525 static: {_SimpleNodeValidator$: function(uriPolicy, allowedAttributes, all owedElements, allowedUriAttributes) {
10526 var t1 = new W._SimpleNodeValidator(P.LinkedHashSet_LinkedHashSet(null , null, null, P.String), P.LinkedHashSet_LinkedHashSet(null, null, null, P.Strin g), P.LinkedHashSet_LinkedHashSet(null, null, null, P.String), uriPolicy);
10527 t1._SimpleNodeValidator$4$allowedAttributes$allowedElements$allowedUri Attributes(uriPolicy, allowedAttributes, allowedElements, allowedUriAttributes);
10528 return t1;
10529 }}
10530 },
10531 _SimpleNodeValidator_closure: {
10532 "^": "Closure:0;",
10533 call$1: function(x) {
10534 return !C.JSArray_methods.contains$1(C.List_yrN, x);
10535 }
10536 },
10537 _SimpleNodeValidator_closure0: {
10538 "^": "Closure:0;",
10539 call$1: function(x) {
10540 return C.JSArray_methods.contains$1(C.List_yrN, x);
10541 }
10542 },
10543 _TemplatingNodeValidator: {
10544 "^": "_SimpleNodeValidator;_templateAttrs,allowedElements,allowedAttribute s,allowedUriAttributes,uriPolicy",
10545 allowsAttribute$3: function(element, attributeName, value) {
10546 if (this.super$_SimpleNodeValidator$allowsAttribute(element, attributeNa me, value))
10547 return true;
10548 if (attributeName === "template" && value === "")
10549 return true;
10550 if (J.get$attributes$x(element)._element.getAttribute("template") === "" )
10551 return this._templateAttrs.contains$1(0, attributeName);
10552 return false;
10553 },
10554 static: {_TemplatingNodeValidator$: function() {
10555 var t1, t2, t3, t4;
10556 t1 = H.setRuntimeTypeInfo(new H.MappedListIterable(C.List_wSV, new W._ TemplatingNodeValidator_closure()), [null, null]);
10557 t2 = P.LinkedHashSet_LinkedHashSet(null, null, null, P.String);
10558 t3 = P.LinkedHashSet_LinkedHashSet(null, null, null, P.String);
10559 t4 = P.LinkedHashSet_LinkedHashSet(null, null, null, P.String);
10560 t4 = new W._TemplatingNodeValidator(P.LinkedHashSet_LinkedHashSet$from (C.List_wSV, P.String), t2, t3, t4, null);
10561 t4._SimpleNodeValidator$4$allowedAttributes$allowedElements$allowedUri Attributes(null, t1, ["TEMPLATE"], null);
10562 return t4;
10563 }}
10564 },
10565 _TemplatingNodeValidator_closure: {
10566 "^": "Closure:0;",
10567 call$1: function(attr) {
10568 return "TEMPLATE::" + H.S(attr);
10569 }
10570 },
10571 FixedSizeListIterator: {
10572 "^": "Object;_array,_length,_position,_current",
10573 moveNext$0: function() {
10574 var nextPosition, t1;
10575 nextPosition = this._position + 1;
10576 t1 = this._length;
10577 if (nextPosition < t1) {
10578 this._current = J.$index$asx(this._array, nextPosition);
10579 this._position = nextPosition;
10580 return true;
10581 }
10582 this._current = null;
10583 this._position = t1;
10584 return false;
10585 },
10586 get$current: function() {
10587 return this._current;
10588 }
10589 },
10590 _DOMWindowCrossFrame: {
10591 "^": "Object;_window",
10592 $isEventTarget: 1,
10593 $isInterceptor: 1,
10594 static: {_DOMWindowCrossFrame__createSafe: function(w) {
10595 if (w === window)
10596 return w;
10597 else
10598 return new W._DOMWindowCrossFrame(w);
10599 }}
10600 },
10601 NodeValidator: {
10602 "^": "Object;"
10603 },
10604 _SameOriginUriPolicy: {
10605 "^": "Object;_hiddenAnchor,_loc",
10606 allowsUri$1: function(uri) {
10607 var t1, t2, t3, t4, t5;
10608 t1 = this._hiddenAnchor;
10609 t2 = J.getInterceptor$x(t1);
10610 t2.set$href(t1, uri);
10611 t3 = t2.get$hostname(t1);
10612 t4 = this._loc;
10613 t5 = t4.hostname;
10614 if (t3 == null ? t5 == null : t3 === t5) {
10615 t3 = t2.get$port(t1);
10616 t5 = t4.port;
10617 if (t3 == null ? t5 == null : t3 === t5) {
10618 t3 = t2.get$protocol(t1);
10619 t4 = t4.protocol;
10620 t4 = t3 == null ? t4 == null : t3 === t4;
10621 t3 = t4;
10622 } else
10623 t3 = false;
10624 } else
10625 t3 = false;
10626 if (!t3)
10627 if (t2.get$hostname(t1) === "")
10628 if (t2.get$port(t1) === "")
10629 t1 = t2.get$protocol(t1) === ":" || t2.get$protocol(t1) === "";
10630 else
10631 t1 = false;
10632 else
10633 t1 = false;
10634 else
10635 t1 = true;
10636 return t1;
10637 }
10638 },
10639 _ValidatingTreeSanitizer: {
10640 "^": "Object;validator",
10641 sanitizeTree$1: function(node) {
10642 new W._ValidatingTreeSanitizer_sanitizeTree_walk(this).call$2(node, null );
10643 },
10644 _removeNode$2: function(node, $parent) {
10645 if ($parent == null)
10646 J.remove$0$ax(node);
10647 else
10648 $parent.removeChild(node);
10649 },
10650 _sanitizeUntrustedElement$2: function(element, $parent) {
10651 var corrupted, attrs, isAttr, elementText, elementTagName, exception;
10652 corrupted = true;
10653 attrs = null;
10654 isAttr = null;
10655 try {
10656 attrs = J.get$attributes$x(element);
10657 isAttr = attrs.get$_element().getAttribute("is");
10658 corrupted = function(element) {
10659 if (!(element.attributes instanceof NamedNodeMap))
10660 return true;
10661 var childNodes = element.childNodes;
10662 if (element.lastChild && element.lastChild !== childNodes[childNodes .length - 1])
10663 return true;
10664 if (element.children)
10665 if (!(element.children instanceof HTMLCollection || element.childr en instanceof NodeList))
10666 return true;
10667 return false;
10668 }(element);
10669 } catch (exception) {
10670 H.unwrapException(exception);
10671 }
10672 elementText = "element unprintable";
10673 try {
10674 elementText = J.toString$0$(element);
10675 } catch (exception) {
10676 H.unwrapException(exception);
10677 }
10678 elementTagName = "element tag unavailable";
10679 try {
10680 elementTagName = J.get$tagName$x(element);
10681 } catch (exception) {
10682 H.unwrapException(exception);
10683 }
10684 this._sanitizeElement$7(element, $parent, corrupted, elementText, elemen tTagName, attrs, isAttr);
10685 },
10686 _sanitizeElement$7: function(element, $parent, corrupted, text, tag, attrs , isAttr) {
10687 var t1, keys, i, $name, t2;
10688 if (corrupted) {
10689 window;
10690 t1 = "Removing element due to corrupted attributes on <" + text + ">";
10691 if (typeof console != "undefined")
10692 console.warn(t1);
10693 this._removeNode$2(element, $parent);
10694 return;
10695 }
10696 if (!this.validator.allowsElement$1(element)) {
10697 window;
10698 t1 = "Removing disallowed element <" + H.S(tag) + ">";
10699 if (typeof console != "undefined")
10700 console.warn(t1);
10701 this._removeNode$2(element, $parent);
10702 return;
10703 }
10704 if (isAttr != null)
10705 if (!this.validator.allowsAttribute$3(element, "is", isAttr)) {
10706 window;
10707 t1 = "Removing disallowed type extension <" + H.S(tag) + " is=\"" + isAttr + "\">";
10708 if (typeof console != "undefined")
10709 console.warn(t1);
10710 this._removeNode$2(element, $parent);
10711 return;
10712 }
10713 t1 = attrs.get$keys();
10714 keys = H.setRuntimeTypeInfo(t1.slice(), [H.getTypeArgumentByIndex(t1, 0) ]);
10715 for (i = attrs.get$keys().length - 1, t1 = attrs._element; i >= 0; --i) {
10716 if (i >= keys.length)
10717 return H.ioore(keys, i);
10718 $name = keys[i];
10719 if (!this.validator.allowsAttribute$3(element, J.toLowerCase$0$s($name ), t1.getAttribute($name))) {
10720 window;
10721 t2 = "Removing disallowed attribute <" + H.S(tag) + " " + $name + "= \"" + H.S(t1.getAttribute($name)) + "\">";
10722 if (typeof console != "undefined")
10723 console.warn(t2);
10724 t1.getAttribute($name);
10725 t1.removeAttribute($name);
10726 }
10727 }
10728 if (!!J.getInterceptor(element).$isTemplateElement)
10729 this.sanitizeTree$1(element.content);
10730 }
10731 },
10732 _ValidatingTreeSanitizer_sanitizeTree_walk: {
10733 "^": "Closure:27;_html$_captured_this_0",
10734 call$2: function(node, $parent) {
10735 var t1, child, nextChild;
10736 t1 = this._html$_captured_this_0;
10737 switch (node.nodeType) {
10738 case 1:
10739 t1._sanitizeUntrustedElement$2(node, $parent);
10740 break;
10741 case 8:
10742 case 11:
10743 case 3:
10744 case 4:
10745 break;
10746 default:
10747 t1._removeNode$2(node, $parent);
10748 }
10749 child = node.lastChild;
10750 for (; child != null; child = nextChild) {
10751 nextChild = child.previousSibling;
10752 this.call$2(child, node);
10753 }
10754 }
10755 }
10756 }], ["dart.dom.indexed_db", "dart:indexed_db",, P, {
10757 "^": ""
10758 }], ["dart.dom.svg", "dart:svg",, P, {
10759 "^": "",
10760 AElement: {
10761 "^": "GraphicsElement;target=",
10762 $isInterceptor: 1,
10763 "%": "SVGAElement"
10764 },
10765 AltGlyphElement: {
10766 "^": "TextPositioningElement;",
10767 $isInterceptor: 1,
10768 "%": "SVGAltGlyphElement"
10769 },
10770 AnimationElement: {
10771 "^": "SvgElement;",
10772 $isInterceptor: 1,
10773 "%": "SVGAnimateElement|SVGAnimateMotionElement|SVGAnimateTransformElement |SVGAnimationElement|SVGSetElement"
10774 },
10775 FEBlendElement: {
10776 "^": "SvgElement;",
10777 $isInterceptor: 1,
10778 "%": "SVGFEBlendElement"
10779 },
10780 FEColorMatrixElement: {
10781 "^": "SvgElement;",
10782 $isInterceptor: 1,
10783 "%": "SVGFEColorMatrixElement"
10784 },
10785 FEComponentTransferElement: {
10786 "^": "SvgElement;",
10787 $isInterceptor: 1,
10788 "%": "SVGFEComponentTransferElement"
10789 },
10790 FECompositeElement: {
10791 "^": "SvgElement;",
10792 $isInterceptor: 1,
10793 "%": "SVGFECompositeElement"
10794 },
10795 FEConvolveMatrixElement: {
10796 "^": "SvgElement;",
10797 $isInterceptor: 1,
10798 "%": "SVGFEConvolveMatrixElement"
10799 },
10800 FEDiffuseLightingElement: {
10801 "^": "SvgElement;",
10802 $isInterceptor: 1,
10803 "%": "SVGFEDiffuseLightingElement"
10804 },
10805 FEDisplacementMapElement: {
10806 "^": "SvgElement;",
10807 $isInterceptor: 1,
10808 "%": "SVGFEDisplacementMapElement"
10809 },
10810 FEFloodElement: {
10811 "^": "SvgElement;",
10812 $isInterceptor: 1,
10813 "%": "SVGFEFloodElement"
10814 },
10815 FEGaussianBlurElement: {
10816 "^": "SvgElement;",
10817 $isInterceptor: 1,
10818 "%": "SVGFEGaussianBlurElement"
10819 },
10820 FEImageElement: {
10821 "^": "SvgElement;",
10822 $isInterceptor: 1,
10823 "%": "SVGFEImageElement"
10824 },
10825 FEMergeElement: {
10826 "^": "SvgElement;",
10827 $isInterceptor: 1,
10828 "%": "SVGFEMergeElement"
10829 },
10830 FEMorphologyElement: {
10831 "^": "SvgElement;",
10832 $isInterceptor: 1,
10833 "%": "SVGFEMorphologyElement"
10834 },
10835 FEOffsetElement: {
10836 "^": "SvgElement;",
10837 $isInterceptor: 1,
10838 "%": "SVGFEOffsetElement"
10839 },
10840 FESpecularLightingElement: {
10841 "^": "SvgElement;",
10842 $isInterceptor: 1,
10843 "%": "SVGFESpecularLightingElement"
10844 },
10845 FETileElement: {
10846 "^": "SvgElement;",
10847 $isInterceptor: 1,
10848 "%": "SVGFETileElement"
10849 },
10850 FETurbulenceElement: {
10851 "^": "SvgElement;",
10852 $isInterceptor: 1,
10853 "%": "SVGFETurbulenceElement"
10854 },
10855 FilterElement: {
10856 "^": "SvgElement;",
10857 $isInterceptor: 1,
10858 "%": "SVGFilterElement"
10859 },
10860 GraphicsElement: {
10861 "^": "SvgElement;",
10862 $isInterceptor: 1,
10863 "%": "SVGCircleElement|SVGClipPathElement|SVGDefsElement|SVGEllipseElement |SVGForeignObjectElement|SVGGElement|SVGGeometryElement|SVGLineElement|SVGPathEl ement|SVGPolygonElement|SVGPolylineElement|SVGRectElement|SVGSwitchElement;SVGGr aphicsElement"
10864 },
10865 ImageElement0: {
10866 "^": "GraphicsElement;",
10867 $isInterceptor: 1,
10868 "%": "SVGImageElement"
10869 },
10870 MarkerElement: {
10871 "^": "SvgElement;",
10872 $isInterceptor: 1,
10873 "%": "SVGMarkerElement"
10874 },
10875 MaskElement: {
10876 "^": "SvgElement;",
10877 $isInterceptor: 1,
10878 "%": "SVGMaskElement"
10879 },
10880 PatternElement: {
10881 "^": "SvgElement;",
10882 $isInterceptor: 1,
10883 "%": "SVGPatternElement"
10884 },
10885 ScriptElement0: {
10886 "^": "SvgElement;",
10887 $isInterceptor: 1,
10888 "%": "SVGScriptElement"
10889 },
10890 _AttributeClassSet: {
10891 "^": "CssClassSetImpl;_svg$_element",
10892 readClasses$0: function() {
10893 var classname, s, t1, t2, _i, trimmed;
10894 classname = this._svg$_element.getAttribute("class");
10895 s = P.LinkedHashSet_LinkedHashSet(null, null, null, P.String);
10896 if (classname == null)
10897 return s;
10898 for (t1 = classname.split(" "), t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
10899 trimmed = J.trim$0$s(t1[_i]);
10900 if (trimmed.length !== 0)
10901 s.add$1(0, trimmed);
10902 }
10903 return s;
10904 },
10905 writeClasses$1: function(s) {
10906 this._svg$_element.setAttribute("class", s.join$1(0, " "));
10907 }
10908 },
10909 SvgElement: {
10910 "^": "Element;",
10911 get$classes: function(receiver) {
10912 return new P._AttributeClassSet(receiver);
10913 },
10914 get$onClick: function(receiver) {
10915 return H.setRuntimeTypeInfo(new W._ElementEventStreamImpl(receiver, "cli ck", false), [null]);
10916 },
10917 $isEventTarget: 1,
10918 $isInterceptor: 1,
10919 "%": "SVGAltGlyphDefElement|SVGAltGlyphItemElement|SVGComponentTransferFun ctionElement|SVGDescElement|SVGDiscardElement|SVGFEDistantLightElement|SVGFEFunc AElement|SVGFEFuncBElement|SVGFEFuncGElement|SVGFEFuncRElement|SVGFEMergeNodeEle ment|SVGFEPointLightElement|SVGFESpotLightElement|SVGFontElement|SVGFontFaceElem ent|SVGFontFaceFormatElement|SVGFontFaceNameElement|SVGFontFaceSrcElement|SVGFon tFaceUriElement|SVGGlyphElement|SVGHKernElement|SVGMetadataElement|SVGMissingGly phElement|SVGStopElement|SVGStyleElement|SVGTitleElement|SVGVKernElement;SVGElem ent"
10920 },
10921 SvgSvgElement: {
10922 "^": "GraphicsElement;",
10923 $isInterceptor: 1,
10924 "%": "SVGSVGElement"
10925 },
10926 SymbolElement: {
10927 "^": "SvgElement;",
10928 $isInterceptor: 1,
10929 "%": "SVGSymbolElement"
10930 },
10931 TextContentElement: {
10932 "^": "GraphicsElement;",
10933 "%": ";SVGTextContentElement"
10934 },
10935 TextPathElement: {
10936 "^": "TextContentElement;",
10937 $isInterceptor: 1,
10938 "%": "SVGTextPathElement"
10939 },
10940 TextPositioningElement: {
10941 "^": "TextContentElement;",
10942 "%": "SVGTSpanElement|SVGTextElement;SVGTextPositioningElement"
10943 },
10944 UseElement: {
10945 "^": "GraphicsElement;",
10946 $isInterceptor: 1,
10947 "%": "SVGUseElement"
10948 },
10949 ViewElement: {
10950 "^": "SvgElement;",
10951 $isInterceptor: 1,
10952 "%": "SVGViewElement"
10953 },
10954 _GradientElement: {
10955 "^": "SvgElement;",
10956 $isInterceptor: 1,
10957 "%": "SVGGradientElement|SVGLinearGradientElement|SVGRadialGradientElement "
10958 },
10959 _SVGCursorElement: {
10960 "^": "SvgElement;",
10961 $isInterceptor: 1,
10962 "%": "SVGCursorElement"
10963 },
10964 _SVGFEDropShadowElement: {
10965 "^": "SvgElement;",
10966 $isInterceptor: 1,
10967 "%": "SVGFEDropShadowElement"
10968 },
10969 _SVGGlyphRefElement: {
10970 "^": "SvgElement;",
10971 $isInterceptor: 1,
10972 "%": "SVGGlyphRefElement"
10973 },
10974 _SVGMPathElement: {
10975 "^": "SvgElement;",
10976 $isInterceptor: 1,
10977 "%": "SVGMPathElement"
10978 }
10979 }], ["dart.dom.web_audio", "dart:web_audio",, P, {
10980 "^": ""
10981 }], ["dart.dom.web_gl", "dart:web_gl",, P, {
10982 "^": ""
10983 }], ["dart.dom.web_sql", "dart:web_sql",, P, {
10984 "^": "",
10985 SqlError: {
10986 "^": "Interceptor;message=",
10987 "%": "SQLError"
10988 }
10989 }], ["dart.isolate", "dart:isolate",, P, {
10990 "^": "",
10991 Capability: {
10992 "^": "Object;"
10993 }
10994 }], ["dart.math", "dart:math",, P, {
10995 "^": "",
10996 _JenkinsSmiHash_combine0: function(hash, value) {
10997 hash = 536870911 & hash + value;
10998 hash = 536870911 & hash + ((524287 & hash) << 10 >>> 0);
10999 return hash ^ hash >>> 6;
11000 },
11001 _JenkinsSmiHash_finish0: function(hash) {
11002 hash = 536870911 & hash + ((67108863 & hash) << 3 >>> 0);
11003 hash ^= hash >>> 11;
11004 return 536870911 & hash + ((16383 & hash) << 15 >>> 0);
11005 },
11006 min: function(a, b) {
11007 if (typeof a !== "number")
11008 throw H.wrapException(P.ArgumentError$(a));
11009 if (typeof b !== "number")
11010 throw H.wrapException(P.ArgumentError$(b));
11011 if (a > b)
11012 return b;
11013 if (a < b)
11014 return a;
11015 if (typeof b === "number") {
11016 if (typeof a === "number")
11017 if (a === 0)
11018 return (a + b) * a * b;
11019 if (a === 0 && C.JSDouble_methods.get$isNegative(b) || C.JSDouble_method s.get$isNaN(b))
11020 return b;
11021 return a;
11022 }
11023 return a;
11024 },
11025 max: function(a, b) {
11026 if (a > b)
11027 return a;
11028 if (a < b)
11029 return b;
11030 if (typeof b === "number") {
11031 if (typeof a === "number")
11032 if (a === 0)
11033 return a + b;
11034 if (isNaN(b))
11035 return b;
11036 return a;
11037 }
11038 if (b === 0 && C.JSNumber_methods.get$isNegative(a))
11039 return b;
11040 return a;
11041 }
11042 }], ["dart.typed_data.implementation", "dart:_native_typed_data",, H, {
11043 "^": "",
11044 _checkValidRange: function(start, end, $length) {
11045 var t1;
11046 if (!(start >>> 0 !== start))
11047 t1 = end >>> 0 !== end || start > end || end > $length;
11048 else
11049 t1 = true;
11050 if (t1)
11051 throw H.wrapException(H.diagnoseRangeError(start, end, $length));
11052 return end;
11053 },
11054 NativeByteBuffer: {
11055 "^": "Interceptor;",
11056 $isNativeByteBuffer: 1,
11057 "%": "ArrayBuffer"
11058 },
11059 NativeTypedData: {
11060 "^": "Interceptor;",
11061 $isNativeTypedData: 1,
11062 "%": "DataView;ArrayBufferView;NativeTypedArray|NativeTypedArray_ListMixin |NativeTypedArray_ListMixin_FixedLengthListMixin|NativeTypedArrayOfDouble|Native TypedArray_ListMixin0|NativeTypedArray_ListMixin_FixedLengthListMixin0|NativeTyp edArrayOfInt"
11063 },
11064 NativeTypedArray: {
11065 "^": "NativeTypedData;",
11066 get$length: function(receiver) {
11067 return receiver.length;
11068 },
11069 $isJavaScriptIndexingBehavior: 1,
11070 $isJSIndexable: 1
11071 },
11072 NativeTypedArrayOfDouble: {
11073 "^": "NativeTypedArray_ListMixin_FixedLengthListMixin;",
11074 $index: function(receiver, index) {
11075 if (index >>> 0 !== index || index >= receiver.length)
11076 H.throwExpression(H.diagnoseIndexError(receiver, index));
11077 return receiver[index];
11078 },
11079 $indexSet: function(receiver, index, value) {
11080 if (index >>> 0 !== index || index >= receiver.length)
11081 H.throwExpression(H.diagnoseIndexError(receiver, index));
11082 receiver[index] = value;
11083 }
11084 },
11085 NativeTypedArray_ListMixin: {
11086 "^": "NativeTypedArray+ListMixin;",
11087 $isList: 1,
11088 $asList: function() {
11089 return [P.$double];
11090 },
11091 $isEfficientLength: 1
11092 },
11093 NativeTypedArray_ListMixin_FixedLengthListMixin: {
11094 "^": "NativeTypedArray_ListMixin+FixedLengthListMixin;"
11095 },
11096 NativeTypedArrayOfInt: {
11097 "^": "NativeTypedArray_ListMixin_FixedLengthListMixin0;",
11098 $indexSet: function(receiver, index, value) {
11099 if (index >>> 0 !== index || index >= receiver.length)
11100 H.throwExpression(H.diagnoseIndexError(receiver, index));
11101 receiver[index] = value;
11102 },
11103 $isList: 1,
11104 $asList: function() {
11105 return [P.$int];
11106 },
11107 $isEfficientLength: 1
11108 },
11109 NativeTypedArray_ListMixin0: {
11110 "^": "NativeTypedArray+ListMixin;",
11111 $isList: 1,
11112 $asList: function() {
11113 return [P.$int];
11114 },
11115 $isEfficientLength: 1
11116 },
11117 NativeTypedArray_ListMixin_FixedLengthListMixin0: {
11118 "^": "NativeTypedArray_ListMixin0+FixedLengthListMixin;"
11119 },
11120 NativeFloat32List: {
11121 "^": "NativeTypedArrayOfDouble;",
11122 $isList: 1,
11123 $asList: function() {
11124 return [P.$double];
11125 },
11126 $isEfficientLength: 1,
11127 "%": "Float32Array"
11128 },
11129 NativeFloat64List: {
11130 "^": "NativeTypedArrayOfDouble;",
11131 $isList: 1,
11132 $asList: function() {
11133 return [P.$double];
11134 },
11135 $isEfficientLength: 1,
11136 "%": "Float64Array"
11137 },
11138 NativeInt16List: {
11139 "^": "NativeTypedArrayOfInt;",
11140 $index: function(receiver, index) {
11141 if (index >>> 0 !== index || index >= receiver.length)
11142 H.throwExpression(H.diagnoseIndexError(receiver, index));
11143 return receiver[index];
11144 },
11145 $isList: 1,
11146 $asList: function() {
11147 return [P.$int];
11148 },
11149 $isEfficientLength: 1,
11150 "%": "Int16Array"
11151 },
11152 NativeInt32List: {
11153 "^": "NativeTypedArrayOfInt;",
11154 $index: function(receiver, index) {
11155 if (index >>> 0 !== index || index >= receiver.length)
11156 H.throwExpression(H.diagnoseIndexError(receiver, index));
11157 return receiver[index];
11158 },
11159 $isList: 1,
11160 $asList: function() {
11161 return [P.$int];
11162 },
11163 $isEfficientLength: 1,
11164 "%": "Int32Array"
11165 },
11166 NativeInt8List: {
11167 "^": "NativeTypedArrayOfInt;",
11168 $index: function(receiver, index) {
11169 if (index >>> 0 !== index || index >= receiver.length)
11170 H.throwExpression(H.diagnoseIndexError(receiver, index));
11171 return receiver[index];
11172 },
11173 $isList: 1,
11174 $asList: function() {
11175 return [P.$int];
11176 },
11177 $isEfficientLength: 1,
11178 "%": "Int8Array"
11179 },
11180 NativeUint16List: {
11181 "^": "NativeTypedArrayOfInt;",
11182 $index: function(receiver, index) {
11183 if (index >>> 0 !== index || index >= receiver.length)
11184 H.throwExpression(H.diagnoseIndexError(receiver, index));
11185 return receiver[index];
11186 },
11187 $isList: 1,
11188 $asList: function() {
11189 return [P.$int];
11190 },
11191 $isEfficientLength: 1,
11192 "%": "Uint16Array"
11193 },
11194 NativeUint32List: {
11195 "^": "NativeTypedArrayOfInt;",
11196 $index: function(receiver, index) {
11197 if (index >>> 0 !== index || index >= receiver.length)
11198 H.throwExpression(H.diagnoseIndexError(receiver, index));
11199 return receiver[index];
11200 },
11201 $isList: 1,
11202 $asList: function() {
11203 return [P.$int];
11204 },
11205 $isEfficientLength: 1,
11206 "%": "Uint32Array"
11207 },
11208 NativeUint8ClampedList: {
11209 "^": "NativeTypedArrayOfInt;",
11210 get$length: function(receiver) {
11211 return receiver.length;
11212 },
11213 $index: function(receiver, index) {
11214 if (index >>> 0 !== index || index >= receiver.length)
11215 H.throwExpression(H.diagnoseIndexError(receiver, index));
11216 return receiver[index];
11217 },
11218 $isList: 1,
11219 $asList: function() {
11220 return [P.$int];
11221 },
11222 $isEfficientLength: 1,
11223 "%": "CanvasPixelArray|Uint8ClampedArray"
11224 },
11225 NativeUint8List: {
11226 "^": "NativeTypedArrayOfInt;",
11227 get$length: function(receiver) {
11228 return receiver.length;
11229 },
11230 $index: function(receiver, index) {
11231 if (index >>> 0 !== index || index >= receiver.length)
11232 H.throwExpression(H.diagnoseIndexError(receiver, index));
11233 return receiver[index];
11234 },
11235 $isList: 1,
11236 $asList: function() {
11237 return [P.$int];
11238 },
11239 $isEfficientLength: 1,
11240 "%": ";Uint8Array"
11241 }
11242 }], ["dart2js._js_primitives", "dart:_js_primitives",, H, {
11243 "^": "",
11244 printString: function(string) {
11245 if (typeof dartPrint == "function") {
11246 dartPrint(string);
11247 return;
11248 }
11249 if (typeof console == "object" && typeof console.log != "undefined") {
11250 console.log(string);
11251 return;
11252 }
11253 if (typeof window == "object")
11254 return;
11255 if (typeof print == "function") {
11256 print(string);
11257 return;
11258 }
11259 throw "Unable to print message: " + String(string);
11260 }
11261 }], ["dev_compiler.messages", "messages_widget.dart",, K, {
11262 "^": "",
11263 main: [function() {
11264 var $async$goto = 0, $async$completer = new P.Completer_Completer$sync(), $async$handler = 1, $async$currentError, $async$temp1, $async$temp2;
11265 var $async$main = P._wrapJsFunctionForAsync(function($async$errorCode, $as ync$result) {
11266 if ($async$errorCode === 1) {
11267 $async$currentError = $async$result;
11268 $async$goto = $async$handler;
11269 }
11270 while (true)
11271 switch ($async$goto) {
11272 case 0:
11273 // Function start
11274 $async$temp1 = C;
11275 $async$temp1 = $async$temp1.Window_methods;
11276 $async$goto = 2;
11277 return P._asyncHelper($async$temp1.get$animationFrame(window), $as ync$main, $async$completer);
11278 case 2:
11279 // returning from await.
11280 $async$temp1 = K;
11281 $async$temp1 = $async$temp1;
11282 $async$temp2 = W;
11283 $async$goto = 3;
11284 return P._asyncHelper($async$temp2.HttpRequest_getString("messages .json", null, null), $async$main, $async$completer);
11285 case 3:
11286 // returning from await.
11287 $async$temp1.displayMessages($async$result);
11288 // implicit return
11289 return P._asyncHelper(null, 0, $async$completer, null);
11290 case 1:
11291 // rethrow
11292 return P._asyncHelper($async$currentError, 1, $async$completer);
11293 }
11294 });
11295 return P._asyncHelper(null, $async$main, $async$completer, null);
11296 }, "call$0", "messages__main$closure", 0, 0, 1],
11297 displayMessages: function(data) {
11298 var summary, t1, menuWrapper, contentWrapper, wrapperDiv;
11299 summary = X.GlobalSummary_parse(C.JsonCodec_null_null.decode$1(data));
11300 t1 = P.LinkedHashMap__makeEmpty();
11301 new K._Visitor(t1).visitGlobal$1(summary);
11302 if (t1.get$isEmpty(t1))
11303 return;
11304 menuWrapper = document.createElement("div", null);
11305 J.get$classes$x(menuWrapper).add$1(0, "menu");
11306 contentWrapper = document.createElement("div", null);
11307 J.get$classes$x(contentWrapper).add$1(0, "content");
11308 wrapperDiv = document.createElement("div", null);
11309 J.get$classes$x(wrapperDiv).add$1(0, "dev-compiler-messages");
11310 wrapperDiv.appendChild(menuWrapper);
11311 wrapperDiv.appendChild(contentWrapper);
11312 t1.forEach$1(0, new K.displayMessages_closure(menuWrapper, contentWrapper, new K._Selection(null), new K._Selection(null)));
11313 document.body.appendChild(wrapperDiv);
11314 },
11315 _hyperlinkUrls: function(text) {
11316 return J.replaceAllMapped$2$s(text, $.$get$_urlRegex(), new K._hyperlinkUr ls_closure());
11317 },
11318 displayMessages_closure: {
11319 "^": "Closure:3;_captured_menuWrapper_0,_captured_contentWrapper_1,_captur ed_selectedMenu_2,_captured_selectedContent_3",
11320 call$2: function(level, messages) {
11321 var contentItem, t1, menuItem, t2, m, t3, t4, val, message, span, t5, so urce, t6, t7, logElement, messageElement;
11322 contentItem = document.createElement("div", null);
11323 J.get$classes$x(contentItem).add$1(0, level);
11324 t1 = J.getInterceptor$asx(messages);
11325 menuItem = W.Element_Element$html("<div class=\"" + H.S(level) + "\">" + H.S(level) + " <span class=\"num\">(" + H.S(t1.get$length(messages)) + ")</span ></div>", null, null);
11326 this._captured_menuWrapper_0.appendChild(menuItem);
11327 this._captured_contentWrapper_1.appendChild(contentItem);
11328 t2 = J.get$onClick$x(menuItem);
11329 H.setRuntimeTypeInfo(new W._EventStreamSubscription(0, t2._target, t2._e ventType, W._wrapZone(new K.displayMessages__closure(this._captured_selectedMenu _2, this._captured_selectedContent_3, contentItem, menuItem)), t2._useCapture), [H.getTypeArgumentByIndex(t2, 0)])._tryResume$0();
11330 for (t1 = t1.get$iterator(messages); t1.moveNext$0();) {
11331 m = t1.get$current();
11332 t2 = J.getInterceptor$x(m);
11333 t3 = t2.get$message(m);
11334 t4 = $.$get$_escaper();
11335 t4.toString;
11336 val = t4._convert$3(t3, 0, J.get$length$asx(t3));
11337 message = K._hyperlinkUrls(val == null ? t3 : val);
11338 span = t2.get$span(m);
11339 t2 = "<div class=\"message\"><div class=\"text " + H.S(level) + "\">" + message + "</div>";
11340 if (span != null) {
11341 t3 = J.getInterceptor$x(span);
11342 t5 = t3.get$start(span);
11343 source = t5.sourceUrl;
11344 t2 += "<div class=\"location\"> <span class=\"location\">" + (H.S(s ource == null ? "unknown source" : source) + ":" + H.S(J.$add$ns(t5.line, 1)) + ":" + H.S(J.$add$ns(t5.column, 1))) + "</span></div> <span class=\"text\">";
11345 if (!!t3.$isSourceSpanWithContext) {
11346 t3 = span.context;
11347 t5 = span.start.column;
11348 t6 = J.getInterceptor$s(t3).substring$2(t3, 0, t5);
11349 val = t4._convert$3(t6, 0, t6.length);
11350 t2 = t2 + H.S(val == null ? t6 : val) + ("<span class=\"" + H.S(le vel) + "\">");
11351 t6 = span.text;
11352 t7 = J.getInterceptor$asx(t6);
11353 val = t4._convert$3(t6, 0, t7.get$length(t6));
11354 t2 = t2 + H.S(val == null ? t6 : val) + "</span>";
11355 t6 = C.JSString_methods.substring$1(t3, J.$add$ns(t5, t7.get$lengt h(t6)));
11356 val = t4._convert$3(t6, 0, t6.length);
11357 t2 += H.S(val == null ? t6 : val);
11358 } else {
11359 t3 = span.text;
11360 val = t4._convert$3(t3, 0, J.get$length$asx(t3));
11361 t2 += H.S(val == null ? t3 : val);
11362 }
11363 t2 += "</span></div></div>";
11364 }
11365 t2 += "</div>";
11366 t2 = t2.charCodeAt(0) == 0 ? t2 : t2;
11367 t3 = [];
11368 t3.$builtinTypeInfo = [W.NodeValidator];
11369 t3.push(W._Html5NodeValidator$(null));
11370 t3.push(W._TemplatingNodeValidator$());
11371 t3.push(W._SimpleNodeValidator$(new K._OpenUriPolicy(), C.List_h4r, C. List_A_FORM, C.List_BSc));
11372 logElement = W.Element_Element$html(t2, null, new W.NodeValidatorBuild er(t3));
11373 contentItem.appendChild(logElement);
11374 messageElement = J.querySelector$1$x(logElement, "div.text");
11375 t2 = J.get$onClick$x(messageElement);
11376 t3 = t2._eventType;
11377 t4 = t2._useCapture;
11378 t5 = new W._EventStreamSubscription(0, t2._target, t3, W._wrapZone(new K.displayMessages__closure0(messageElement)), t4);
11379 t5.$builtinTypeInfo = [H.getTypeArgumentByIndex(t2, 0)];
11380 t2 = t5._onData;
11381 t6 = t2 != null;
11382 if (t6 && t5._pauseCount <= 0) {
11383 t5 = t5._target;
11384 t5.toString;
11385 if (t6)
11386 J._addEventListener$3$x(t5, t3, t2, t4);
11387 }
11388 }
11389 }
11390 },
11391 displayMessages__closure: {
11392 "^": "Closure:0;_captured_selectedMenu_4,_captured_selectedContent_5,_capt ured_contentItem_6,_captured_menuItem_7",
11393 call$1: function(_) {
11394 this._captured_selectedMenu_4.select$1(0, this._captured_menuItem_7);
11395 this._captured_selectedContent_5.select$1(0, this._captured_contentItem_ 6);
11396 }
11397 },
11398 displayMessages__closure0: {
11399 "^": "Closure:0;_captured_messageElement_8",
11400 call$1: function(e) {
11401 var t1 = this._captured_messageElement_8;
11402 if (J.$eq$(J.get$target$x(e), t1))
11403 J.get$classes$x(t1).toggle$1(0, "expanded");
11404 }
11405 },
11406 _Selection: {
11407 "^": "Object;_selected",
11408 select$1: function(_, newItem) {
11409 var t1 = this._selected;
11410 if (t1 == null ? newItem == null : t1 === newItem)
11411 this._selected = null;
11412 else {
11413 if (t1 != null)
11414 J.get$classes$x(t1).remove$1(0, "active");
11415 this._selected = newItem;
11416 }
11417 J.get$classes$x(newItem).toggle$1(0, "active");
11418 }
11419 },
11420 _hyperlinkUrls_closure: {
11421 "^": "Closure:0;",
11422 call$1: function(m) {
11423 return "<a href=\"" + H.S(m.group$1(0)) + "\" target=\"blank\">" + H.S(m .group$1(0)) + "</a>";
11424 }
11425 },
11426 _OpenUriPolicy: {
11427 "^": "Object;",
11428 allowsUri$1: function(uri) {
11429 return true;
11430 }
11431 },
11432 _Visitor: {
11433 "^": "RecursiveSummaryVisitor;messagesByLevel",
11434 visitMessage$1: function(message) {
11435 var level, t1;
11436 level = J.toLowerCase$0$s(message.level);
11437 t1 = this.messagesByLevel;
11438 t1.putIfAbsent$2(level, new K._Visitor_visitMessage_closure());
11439 J.add$1$ax(t1.$index(0, level), message);
11440 }
11441 },
11442 _Visitor_visitMessage_closure: {
11443 "^": "Closure:1;",
11444 call$0: function() {
11445 return [];
11446 }
11447 }
11448 }, 1], ["dev_compiler.src.summary", "package:dev_compiler/src/summary.dart",, X, {
11449 "^": "",
11450 Summary: {
11451 "^": "Object;"
11452 },
11453 GlobalSummary: {
11454 "^": "Object;system,packages,loose",
11455 accept$1: function(_, visitor) {
11456 return visitor.visitGlobal$1(this);
11457 },
11458 static: {GlobalSummary_parse: function(json) {
11459 var res, t1;
11460 res = new X.GlobalSummary(P.LinkedHashMap_LinkedHashMap$_empty(P.Strin g, X.LibrarySummary), P.LinkedHashMap_LinkedHashMap$_empty(P.String, X.PackageSu mmary), P.LinkedHashMap_LinkedHashMap$_empty(P.String, X.IndividualSummary));
11461 t1 = J.getInterceptor$asx(json);
11462 J.map$1$ax(t1.$index(json, "system"), X.summary_LibrarySummary_parse$c losure()).forEach$1(0, new X.GlobalSummary_parse_closure(res));
11463 J.map$1$ax(t1.$index(json, "packages"), X.summary_PackageSummary_parse $closure()).forEach$1(0, new X.GlobalSummary_parse_closure0(res));
11464 J.forEach$1$ax(t1.$index(json, "loose"), new X.GlobalSummary_parse_clo sure1(res));
11465 return res;
11466 }}
11467 },
11468 GlobalSummary_parse_closure: {
11469 "^": "Closure:0;_captured_res_0",
11470 call$1: function(l) {
11471 this._captured_res_0.system.$indexSet(0, J.get$name$x(l), l);
11472 }
11473 },
11474 GlobalSummary_parse_closure0: {
11475 "^": "Closure:0;_captured_res_1",
11476 call$1: function(p) {
11477 this._captured_res_1.packages.$indexSet(0, J.get$name$x(p), p);
11478 }
11479 },
11480 GlobalSummary_parse_closure1: {
11481 "^": "Closure:0;_captured_res_2",
11482 call$1: function(e) {
11483 var t1, summary, t2, t3;
11484 t1 = J.getInterceptor$asx(e);
11485 if (J.$eq$(t1.$index(e, 0), "LibrarySummary"))
11486 summary = X.LibrarySummary_parse(t1.$index(e, 1));
11487 else {
11488 t1 = t1.$index(e, 1);
11489 t2 = J.getInterceptor$asx(t1);
11490 t3 = t2.$index(t1, "name");
11491 t1 = P.List_List$from(J.map$1$ax(t2.$index(t1, "messages"), X.summary_ MessageSummary_parse$closure()), true, X.MessageSummary);
11492 summary = new X.HtmlSummary(t3, t1);
11493 }
11494 this._captured_res_2.loose.$indexSet(0, summary.get$name(summary), summa ry);
11495 }
11496 },
11497 PackageSummary: {
11498 "^": "Object;name>,libraries",
11499 accept$1: function(_, visitor) {
11500 return visitor.visitPackage$1(this);
11501 },
11502 static: {PackageSummary_parse: [function(json) {
11503 var t1, res;
11504 t1 = J.getInterceptor$asx(json);
11505 res = new X.PackageSummary(t1.$index(json, "package_name"), P.LinkedHa shMap_LinkedHashMap$_empty(P.String, X.LibrarySummary));
11506 J.map$1$ax(t1.$index(json, "libraries"), X.summary_LibrarySummary_pars e$closure()).forEach$1(0, new X.PackageSummary_parse_closure(res));
11507 return res;
11508 }, "call$1", "summary_PackageSummary_parse$closure", 2, 0, 29]}
11509 },
11510 PackageSummary_parse_closure: {
11511 "^": "Closure:0;_captured_res_0",
11512 call$1: function(l) {
11513 this._captured_res_0.libraries.$indexSet(0, J.get$name$x(l), l);
11514 }
11515 },
11516 IndividualSummary: {
11517 "^": "Summary;"
11518 },
11519 LibrarySummary: {
11520 "^": "Object;name>,messages,_uris,_lines",
11521 accept$1: function(_, visitor) {
11522 return visitor.visitLibrary$1(this);
11523 },
11524 static: {LibrarySummary_parse: [function(json) {
11525 var t1, t2, t3, t4;
11526 t1 = J.getInterceptor$asx(json);
11527 t2 = t1.$index(json, "library_name");
11528 t3 = P.List_List$from(J.map$1$ax(t1.$index(json, "messages"), X.summar y_MessageSummary_parse$closure()), true, X.MessageSummary);
11529 t1 = t1.$index(json, "lines");
11530 t4 = P.HashSet_HashSet(null, null, null, P.Uri);
11531 return new X.LibrarySummary(t2, t3, t4, t1 != null ? t1 : 0);
11532 }, "call$1", "summary_LibrarySummary_parse$closure", 2, 0, 30]}
11533 },
11534 HtmlSummary: {
11535 "^": "Object;name>,messages",
11536 accept$1: function(_, visitor) {
11537 return visitor.visitHtml$1(this);
11538 }
11539 },
11540 MessageSummary: {
11541 "^": "Object;kind,level,span>,message>",
11542 accept$1: function(_, visitor) {
11543 return visitor.visitMessage$1(this);
11544 },
11545 static: {MessageSummary_parse: [function(json) {
11546 var t1, t2, t3, t4, start, end, context, span;
11547 t1 = J.getInterceptor$asx(json);
11548 t2 = J.$index$asx(t1.$index(json, "start"), 0);
11549 t3 = t1.$index(json, "url");
11550 t4 = J.$index$asx(t1.$index(json, "start"), 1);
11551 start = O.SourceLocation$(t2, J.$index$asx(t1.$index(json, "start"), 2 ), t4, t3);
11552 t3 = J.$index$asx(t1.$index(json, "end"), 0);
11553 t4 = t1.$index(json, "url");
11554 t2 = J.$index$asx(t1.$index(json, "end"), 1);
11555 end = O.SourceLocation$(t3, J.$index$asx(t1.$index(json, "end"), 2), t 2, t4);
11556 context = t1.$index(json, "context");
11557 if (context != null) {
11558 t2 = t1.$index(json, "text");
11559 span = new E.SourceSpanWithContext(context, start, end, t2);
11560 span.SourceSpanBase$3(start, end, t2);
11561 if (J.contains$1$asx(context, t2) !== true)
11562 H.throwExpression(P.ArgumentError$("The context line \"" + H.S(con text) + "\" must contain \"" + H.S(t2) + "\"."));
11563 t3 = start.column;
11564 if (D.findLineStart(context, t2, t3) == null)
11565 H.throwExpression(P.ArgumentError$("The span text \"" + H.S(t2) + "\" must start at column " + H.S(J.$add$ns(t3, 1)) + " in a line within \"" + H. S(context) + "\"."));
11566 } else
11567 span = T.SourceSpanBase$(start, end, t1.$index(json, "text"));
11568 return new X.MessageSummary(t1.$index(json, "kind"), t1.$index(json, " level"), span, t1.$index(json, "message"));
11569 }, "call$1", "summary_MessageSummary_parse$closure", 2, 0, 31]}
11570 },
11571 RecursiveSummaryVisitor: {
11572 "^": "Object;",
11573 visitGlobal$1: function(global) {
11574 var t1;
11575 for (t1 = global.system, t1 = t1.get$values(t1), t1 = t1.get$iterator(t1 ); t1.moveNext$0();)
11576 J.accept$1$x(t1.get$current(), this);
11577 for (t1 = global.packages, t1 = t1.get$values(t1), t1 = t1.get$iterator( t1); t1.moveNext$0();)
11578 J.accept$1$x(t1.get$current(), this);
11579 for (t1 = global.loose, t1 = t1.get$values(t1), t1 = t1.get$iterator(t1) ; t1.moveNext$0();)
11580 J.accept$1$x(t1.get$current(), this);
11581 },
11582 visitPackage$1: function($package) {
11583 var t1;
11584 for (t1 = $package.libraries, t1 = t1.get$values(t1), t1 = t1.get$iterat or(t1); t1.moveNext$0();)
11585 J.accept$1$x(t1.get$current(), this);
11586 },
11587 visitLibrary$1: function(lib) {
11588 var t1, t2, _i;
11589 for (t1 = lib.messages, t2 = t1.length, _i = 0; _i < t1.length; t1.lengt h === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
11590 J.accept$1$x(t1[_i], this);
11591 },
11592 visitHtml$1: function(html) {
11593 var t1, t2, _i;
11594 for (t1 = html.messages, t2 = t1.length, _i = 0; _i < t1.length; t1.leng th === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
11595 J.accept$1$x(t1[_i], this);
11596 },
11597 visitMessage$1: function(message) {
11598 }
11599 }
11600 }], ["html_common", "dart:html_common",, P, {
11601 "^": "",
11602 Device_isOpera: function() {
11603 var t1 = $.Device__isOpera;
11604 if (t1 == null) {
11605 t1 = J.contains$2$asx(window.navigator.userAgent, "Opera", 0);
11606 $.Device__isOpera = t1;
11607 }
11608 return t1;
11609 },
11610 Device_isWebKit: function() {
11611 var t1 = $.Device__isWebKit;
11612 if (t1 == null) {
11613 t1 = P.Device_isOpera() !== true && J.contains$2$asx(window.navigator.us erAgent, "WebKit", 0);
11614 $.Device__isWebKit = t1;
11615 }
11616 return t1;
11617 },
11618 CssClassSetImpl: {
11619 "^": "Object;",
11620 _validateToken$1: function(value) {
11621 if ($.$get$CssClassSetImpl__validTokenRE()._nativeRegExp.test(H.checkStr ing(value)))
11622 return value;
11623 throw H.wrapException(P.ArgumentError$value(value, "value", "Not a valid class token"));
11624 },
11625 toString$0: function(_) {
11626 return this.readClasses$0().join$1(0, " ");
11627 },
11628 toggle$2: function(_, value, shouldAdd) {
11629 var s, result;
11630 this._validateToken$1(value);
11631 s = this.readClasses$0();
11632 if (!s.contains$1(0, value)) {
11633 s.add$1(0, value);
11634 result = true;
11635 } else {
11636 s.remove$1(0, value);
11637 result = false;
11638 }
11639 this.writeClasses$1(s);
11640 return result;
11641 },
11642 toggle$1: function($receiver, value) {
11643 return this.toggle$2($receiver, value, null);
11644 },
11645 get$iterator: function(_) {
11646 var t1 = this.readClasses$0();
11647 t1 = H.setRuntimeTypeInfo(new P.LinkedHashSetIterator(t1, t1._collection $_modifications, null, null), [null]);
11648 t1._cell = t1._set._collection$_first;
11649 return t1;
11650 },
11651 forEach$1: function(_, f) {
11652 this.readClasses$0().forEach$1(0, f);
11653 },
11654 map$1: function(_, f) {
11655 var t1 = this.readClasses$0();
11656 return H.setRuntimeTypeInfo(new H.EfficientLengthMappedIterable(t1, f), [H.getTypeArgumentByIndex(t1, 0), null]);
11657 },
11658 get$isEmpty: function(_) {
11659 return this.readClasses$0()._collection$_length === 0;
11660 },
11661 get$isNotEmpty: function(_) {
11662 return this.readClasses$0()._collection$_length !== 0;
11663 },
11664 get$length: function(_) {
11665 return this.readClasses$0()._collection$_length;
11666 },
11667 contains$1: function(_, value) {
11668 if (typeof value !== "string")
11669 return false;
11670 this._validateToken$1(value);
11671 return this.readClasses$0().contains$1(0, value);
11672 },
11673 lookup$1: function(value) {
11674 return this.contains$1(0, value) ? value : null;
11675 },
11676 add$1: function(_, value) {
11677 this._validateToken$1(value);
11678 return this.modify$1(new P.CssClassSetImpl_add_closure(value));
11679 },
11680 remove$1: function(_, value) {
11681 var s, result;
11682 this._validateToken$1(value);
11683 s = this.readClasses$0();
11684 result = s.remove$1(0, value);
11685 this.writeClasses$1(s);
11686 return result;
11687 },
11688 get$last: function(_) {
11689 var t1 = this.readClasses$0();
11690 return t1.get$last(t1);
11691 },
11692 modify$1: function(f) {
11693 var s, ret;
11694 s = this.readClasses$0();
11695 ret = f.call$1(s);
11696 this.writeClasses$1(s);
11697 return ret;
11698 },
11699 $isEfficientLength: 1
11700 },
11701 CssClassSetImpl_add_closure: {
11702 "^": "Closure:0;_captured_value_0",
11703 call$1: function(s) {
11704 return s.add$1(0, this._captured_value_0);
11705 }
11706 }
11707 }], ["path", "package:path/path.dart",, B, {
11708 "^": "",
11709 current: function() {
11710 var uri, t1, t2, targetScheme, targetUserInfo, targetHost, targetPort, tar getPath, targetQuery, mergedPath, fragment, path;
11711 uri = P.Uri_base();
11712 t1 = $.$get$Style_platform();
11713 t2 = $.$get$Style_url();
11714 if (t1 == null ? t2 == null : t1 === t2) {
11715 t1 = P.Uri_parse(".", 0, null);
11716 targetScheme = t1.scheme;
11717 if (targetScheme.length !== 0) {
11718 if (t1._host != null) {
11719 targetUserInfo = t1._userInfo;
11720 targetHost = t1.get$host(t1);
11721 targetPort = t1._port != null ? t1.get$port(t1) : null;
11722 } else {
11723 targetUserInfo = "";
11724 targetHost = null;
11725 targetPort = null;
11726 }
11727 targetPath = P.Uri__removeDotSegments(t1._path);
11728 targetQuery = t1._query;
11729 if (targetQuery != null)
11730 ;
11731 else
11732 targetQuery = null;
11733 } else {
11734 targetScheme = uri.scheme;
11735 if (t1._host != null) {
11736 targetUserInfo = t1._userInfo;
11737 targetHost = t1.get$host(t1);
11738 targetPort = P.Uri__makePort(t1._port != null ? t1.get$port(t1) : nu ll, targetScheme);
11739 targetPath = P.Uri__removeDotSegments(t1._path);
11740 targetQuery = t1._query;
11741 if (targetQuery != null)
11742 ;
11743 else
11744 targetQuery = null;
11745 } else {
11746 targetUserInfo = uri._userInfo;
11747 targetHost = uri._host;
11748 targetPort = uri._port;
11749 targetPath = t1._path;
11750 if (targetPath === "") {
11751 targetPath = uri._path;
11752 targetQuery = t1._query;
11753 if (targetQuery != null)
11754 ;
11755 else
11756 targetQuery = uri._query;
11757 } else {
11758 if (C.JSString_methods.startsWith$1(targetPath, "/"))
11759 targetPath = P.Uri__removeDotSegments(targetPath);
11760 else {
11761 t2 = uri._path;
11762 if (t2.length === 0)
11763 targetPath = targetScheme.length === 0 && targetHost == null ? targetPath : P.Uri__removeDotSegments("/" + targetPath);
11764 else {
11765 mergedPath = uri._mergePaths$2(t2, targetPath);
11766 targetPath = targetScheme.length !== 0 || targetHost != null | | C.JSString_methods.startsWith$1(t2, "/") ? P.Uri__removeDotSegments(mergedPath ) : P.Uri__normalizeRelativePath(mergedPath);
11767 }
11768 }
11769 targetQuery = t1._query;
11770 if (targetQuery != null)
11771 ;
11772 else
11773 targetQuery = null;
11774 }
11775 }
11776 }
11777 fragment = t1._fragment;
11778 if (fragment != null)
11779 ;
11780 else
11781 fragment = null;
11782 return new P.Uri(targetHost, targetPort, targetPath, targetScheme, targe tUserInfo, targetQuery, fragment, null, null).toString$0(0);
11783 } else {
11784 path = uri.toFilePath$0();
11785 return C.JSString_methods.substring$2(path, 0, path.length - 1);
11786 }
11787 }
11788 }], ["path.context", "package:path/src/context.dart",, F, {
11789 "^": "",
11790 _validateArgList: function(method, args) {
11791 var i, numArgs, numArgs0, message, t1, t2;
11792 for (i = 1; i < 8; ++i) {
11793 if (args[i] == null || args[i - 1] != null)
11794 continue;
11795 for (numArgs = 8; numArgs >= 1; numArgs = numArgs0) {
11796 numArgs0 = numArgs - 1;
11797 if (args[numArgs0] != null)
11798 break;
11799 }
11800 message = new P.StringBuffer("");
11801 t1 = method + "(";
11802 message._contents = t1;
11803 t2 = new H.SubListIterable(args, 0, numArgs);
11804 t2.$builtinTypeInfo = [H.getTypeArgumentByIndex(args, 0)];
11805 if (numArgs < 0)
11806 H.throwExpression(P.RangeError$range(numArgs, 0, null, "end", null));
11807 if (0 > numArgs)
11808 H.throwExpression(P.RangeError$range(0, 0, numArgs, "start", null));
11809 t2 = new H.MappedListIterable(t2, new F._validateArgList_closure());
11810 t2.$builtinTypeInfo = [null, null];
11811 t1 += t2.join$1(0, ", ");
11812 message._contents = t1;
11813 message._contents = t1 + ("): part " + (i - 1) + " was null, but part " + i + " was not.");
11814 throw H.wrapException(P.ArgumentError$(message.toString$0(0)));
11815 }
11816 },
11817 Context: {
11818 "^": "Object;style,_context$_current",
11819 join$8: function(_, part1, part2, part3, part4, part5, part6, part7, part8 ) {
11820 var parts = H.setRuntimeTypeInfo([part1, part2, part3, part4, part5, par t6, part7, part8], [P.String]);
11821 F._validateArgList("join", parts);
11822 return this.joinAll$1(H.setRuntimeTypeInfo(new H.WhereIterable(parts, ne w F.Context_join_closure()), [H.getTypeArgumentByIndex(parts, 0)]));
11823 },
11824 joinAll$1: function(parts) {
11825 var buffer, t1, t2, t3, needsSeparator, isAbsoluteAndNotRootRelative, pa rt, parsed, t4, t5;
11826 buffer = new P.StringBuffer("");
11827 for (t1 = H.setRuntimeTypeInfo(new H.WhereIterable(parts, new F.Context_ joinAll_closure()), [H.getRuntimeTypeArgument(parts, "Iterable", 0)]), t1 = H.se tRuntimeTypeInfo(new H.WhereIterator(J.get$iterator$ax(t1._iterable), t1._f), [H .getTypeArgumentByIndex(t1, 0)]), t2 = this.style, t3 = t1._iterator, needsSepar ator = false, isAbsoluteAndNotRootRelative = false; t1.moveNext$0();) {
11828 part = t3.get$current();
11829 if (t2.isRootRelative$1(part) && isAbsoluteAndNotRootRelative) {
11830 parsed = Q.ParsedPath_ParsedPath$parse(part, t2);
11831 t4 = buffer._contents;
11832 t4 = t4.charCodeAt(0) == 0 ? t4 : t4;
11833 t4 = C.JSString_methods.substring$2(t4, 0, t2.rootLength$1(t4));
11834 parsed.root = t4;
11835 if (t2.needsSeparator$1(t4)) {
11836 t4 = parsed.separators;
11837 t5 = t2.get$separator();
11838 if (0 >= t4.length)
11839 return H.ioore(t4, 0);
11840 t4[0] = t5;
11841 }
11842 buffer._contents = "";
11843 buffer._contents += parsed.toString$0(0);
11844 } else if (t2.rootLength$1(part) > 0) {
11845 isAbsoluteAndNotRootRelative = !t2.isRootRelative$1(part);
11846 buffer._contents = "";
11847 buffer._contents += H.S(part);
11848 } else {
11849 t4 = J.getInterceptor$asx(part);
11850 if (J.$gt$n(t4.get$length(part), 0) && t2.containsSeparator$1(t4.$in dex(part, 0)) === true)
11851 ;
11852 else if (needsSeparator)
11853 buffer._contents += t2.get$separator();
11854 buffer._contents += H.S(part);
11855 }
11856 needsSeparator = t2.needsSeparator$1(part);
11857 }
11858 t1 = buffer._contents;
11859 return t1.charCodeAt(0) == 0 ? t1 : t1;
11860 },
11861 split$1: function(_, path) {
11862 var parsed, t1, t2;
11863 parsed = Q.ParsedPath_ParsedPath$parse(path, this.style);
11864 t1 = parsed.parts;
11865 t1 = H.setRuntimeTypeInfo(new H.WhereIterable(t1, new F.Context_split_cl osure()), [H.getTypeArgumentByIndex(t1, 0)]);
11866 t1 = P.List_List$from(t1, true, H.getRuntimeTypeArgument(t1, "Iterable", 0));
11867 parsed.parts = t1;
11868 t2 = parsed.root;
11869 if (t2 != null)
11870 C.JSArray_methods.insert$2(t1, 0, t2);
11871 return parsed.parts;
11872 },
11873 normalize$1: function(path) {
11874 var parsed = Q.ParsedPath_ParsedPath$parse(path, this.style);
11875 parsed.normalize$0();
11876 return parsed.toString$0(0);
11877 },
11878 relative$2$from: function(path, from) {
11879 var t1, t2, fromParsed, pathParsed, t3;
11880 from = this._context$_current;
11881 from = from != null ? from : B.current();
11882 t1 = this.style;
11883 if (t1.rootLength$1(from) <= 0 && t1.rootLength$1(path) > 0)
11884 return this.normalize$1(path);
11885 if (t1.rootLength$1(path) <= 0 || t1.isRootRelative$1(path)) {
11886 t2 = this._context$_current;
11887 path = this.join$8(0, t2 != null ? t2 : B.current(), path, null, null, null, null, null, null);
11888 }
11889 if (t1.rootLength$1(path) <= 0 && t1.rootLength$1(from) > 0)
11890 throw H.wrapException(new E.PathException("Unable to find a path to \" " + path + "\" from \"" + H.S(from) + "\"."));
11891 fromParsed = Q.ParsedPath_ParsedPath$parse(from, t1);
11892 fromParsed.normalize$0();
11893 pathParsed = Q.ParsedPath_ParsedPath$parse(path, t1);
11894 pathParsed.normalize$0();
11895 t2 = fromParsed.parts;
11896 if (t2.length > 0 && J.$eq$(t2[0], "."))
11897 return pathParsed.toString$0(0);
11898 if (!J.$eq$(fromParsed.root, pathParsed.root)) {
11899 t2 = fromParsed.root;
11900 if (!(t2 == null || pathParsed.root == null)) {
11901 t2 = J.toLowerCase$0$s(t2);
11902 H.checkString("\\");
11903 t2 = H.stringReplaceAllUnchecked(t2, "/", "\\");
11904 t3 = J.toLowerCase$0$s(pathParsed.root);
11905 H.checkString("\\");
11906 t3 = t2 !== H.stringReplaceAllUnchecked(t3, "/", "\\");
11907 t2 = t3;
11908 } else
11909 t2 = true;
11910 } else
11911 t2 = false;
11912 if (t2)
11913 return pathParsed.toString$0(0);
11914 while (true) {
11915 t2 = fromParsed.parts;
11916 if (t2.length > 0) {
11917 t3 = pathParsed.parts;
11918 t2 = t3.length > 0 && J.$eq$(t2[0], t3[0]);
11919 } else
11920 t2 = false;
11921 if (!t2)
11922 break;
11923 C.JSArray_methods.removeAt$1(fromParsed.parts, 0);
11924 C.JSArray_methods.removeAt$1(fromParsed.separators, 1);
11925 C.JSArray_methods.removeAt$1(pathParsed.parts, 0);
11926 C.JSArray_methods.removeAt$1(pathParsed.separators, 1);
11927 }
11928 t2 = fromParsed.parts;
11929 if (t2.length > 0 && J.$eq$(t2[0], ".."))
11930 throw H.wrapException(new E.PathException("Unable to find a path to \" " + path + "\" from \"" + H.S(from) + "\"."));
11931 C.JSArray_methods.insertAll$2(pathParsed.parts, 0, P.List_List$filled(fr omParsed.parts.length, "..", null));
11932 t2 = pathParsed.separators;
11933 if (0 >= t2.length)
11934 return H.ioore(t2, 0);
11935 t2[0] = "";
11936 C.JSArray_methods.insertAll$2(t2, 1, P.List_List$filled(fromParsed.parts .length, t1.get$separator(), null));
11937 t1 = pathParsed.parts;
11938 t2 = t1.length;
11939 if (t2 === 0)
11940 return ".";
11941 if (t2 > 1 && J.$eq$(C.JSArray_methods.get$last(t1), ".")) {
11942 C.JSArray_methods.removeLast$0(pathParsed.parts);
11943 t1 = pathParsed.separators;
11944 C.JSArray_methods.removeLast$0(t1);
11945 C.JSArray_methods.removeLast$0(t1);
11946 C.JSArray_methods.add$1(t1, "");
11947 }
11948 pathParsed.root = "";
11949 pathParsed.removeTrailingSeparators$0();
11950 return pathParsed.toString$0(0);
11951 },
11952 relative$1: function(path) {
11953 return this.relative$2$from(path, null);
11954 },
11955 prettyUri$1: function(uri) {
11956 var t1, t2, path, rel;
11957 if (typeof uri === "string")
11958 uri = P.Uri_parse(uri, 0, null);
11959 if (uri.get$scheme() === "file") {
11960 t1 = this.style;
11961 t2 = $.$get$Style_url();
11962 t2 = t1 == null ? t2 == null : t1 === t2;
11963 t1 = t2;
11964 } else
11965 t1 = false;
11966 if (t1)
11967 return uri.toString$0(0);
11968 t1 = uri.scheme;
11969 if (t1 !== "file")
11970 if (t1 !== "") {
11971 t1 = this.style;
11972 t2 = $.$get$Style_url();
11973 t2 = t1 == null ? t2 != null : t1 !== t2;
11974 t1 = t2;
11975 } else
11976 t1 = false;
11977 else
11978 t1 = false;
11979 if (t1)
11980 return uri.toString$0(0);
11981 path = this.normalize$1(this.style.pathFromUri$1(uri));
11982 rel = this.relative$1(path);
11983 return this.split$1(0, rel).length > this.split$1(0, path).length ? path : rel;
11984 }
11985 },
11986 Context_join_closure: {
11987 "^": "Closure:0;",
11988 call$1: function(part) {
11989 return part != null;
11990 }
11991 },
11992 Context_joinAll_closure: {
11993 "^": "Closure:0;",
11994 call$1: function(part) {
11995 return !J.$eq$(part, "");
11996 }
11997 },
11998 Context_split_closure: {
11999 "^": "Closure:0;",
12000 call$1: function(part) {
12001 return J.get$isEmpty$asx(part) !== true;
12002 }
12003 },
12004 _validateArgList_closure: {
12005 "^": "Closure:0;",
12006 call$1: function(arg) {
12007 return arg == null ? "null" : "\"" + H.S(arg) + "\"";
12008 }
12009 }
12010 }], ["path.internal_style", "package:path/src/internal_style.dart",, E, {
12011 "^": "",
12012 InternalStyle: {
12013 "^": "Style;",
12014 getRoot$1: function(path) {
12015 var $length = this.rootLength$1(path);
12016 if ($length > 0)
12017 return J.substring$2$s(path, 0, $length);
12018 return this.isRootRelative$1(path) ? J.$index$asx(path, 0) : null;
12019 }
12020 }
12021 }], ["path.parsed_path", "package:path/src/parsed_path.dart",, Q, {
12022 "^": "",
12023 ParsedPath: {
12024 "^": "Object;style,root,isRootRelative,parts,separators",
12025 removeTrailingSeparators$0: function() {
12026 var t1, t2;
12027 while (true) {
12028 t1 = this.parts;
12029 if (!(t1.length !== 0 && J.$eq$(C.JSArray_methods.get$last(t1), "")))
12030 break;
12031 C.JSArray_methods.removeLast$0(this.parts);
12032 C.JSArray_methods.removeLast$0(this.separators);
12033 }
12034 t1 = this.separators;
12035 t2 = t1.length;
12036 if (t2 > 0)
12037 t1[t2 - 1] = "";
12038 },
12039 normalize$0: function() {
12040 var newParts, t1, t2, leadingDoubles, _i, part, t3, newSeparators;
12041 newParts = H.setRuntimeTypeInfo([], [P.String]);
12042 for (t1 = this.parts, t2 = t1.length, leadingDoubles = 0, _i = 0; _i < t 1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) {
12043 part = t1[_i];
12044 t3 = J.getInterceptor(part);
12045 if (t3.$eq(part, ".") || t3.$eq(part, ""))
12046 ;
12047 else if (t3.$eq(part, ".."))
12048 if (newParts.length > 0)
12049 newParts.pop();
12050 else
12051 ++leadingDoubles;
12052 else
12053 newParts.push(part);
12054 }
12055 if (this.root == null)
12056 C.JSArray_methods.insertAll$2(newParts, 0, P.List_List$filled(leadingD oubles, "..", null));
12057 if (newParts.length === 0 && this.root == null)
12058 newParts.push(".");
12059 newSeparators = P.List_List$generate(newParts.length, new Q.ParsedPath_n ormalize_closure(this), true, P.String);
12060 t1 = this.root;
12061 C.JSArray_methods.insert$2(newSeparators, 0, t1 != null && newParts.leng th > 0 && this.style.needsSeparator$1(t1) ? this.style.get$separator() : "");
12062 this.parts = newParts;
12063 this.separators = newSeparators;
12064 t1 = this.root;
12065 if (t1 != null && this.style === $.$get$Style_windows())
12066 this.root = J.replaceAll$2$s(t1, "/", "\\");
12067 this.removeTrailingSeparators$0();
12068 },
12069 toString$0: function(_) {
12070 var builder, t1, i;
12071 builder = new P.StringBuffer("");
12072 t1 = this.root;
12073 if (t1 != null)
12074 builder._contents = H.S(t1);
12075 for (i = 0; i < this.parts.length; ++i) {
12076 t1 = this.separators;
12077 if (i >= t1.length)
12078 return H.ioore(t1, i);
12079 builder._contents += H.S(t1[i]);
12080 t1 = this.parts;
12081 if (i >= t1.length)
12082 return H.ioore(t1, i);
12083 builder._contents += H.S(t1[i]);
12084 }
12085 t1 = builder._contents += H.S(C.JSArray_methods.get$last(this.separators ));
12086 return t1.charCodeAt(0) == 0 ? t1 : t1;
12087 },
12088 static: {ParsedPath_ParsedPath$parse: function(path, style) {
12089 var root, isRootRelative, parts, separators, t1, start, i, t2;
12090 root = style.getRoot$1(path);
12091 isRootRelative = style.isRootRelative$1(path);
12092 if (root != null)
12093 path = J.substring$1$s(path, J.get$length$asx(root));
12094 parts = H.setRuntimeTypeInfo([], [P.String]);
12095 separators = H.setRuntimeTypeInfo([], [P.String]);
12096 t1 = J.getInterceptor$asx(path);
12097 if (t1.get$isNotEmpty(path) && style.isSeparator$1(t1.codeUnitAt$1(pat h, 0))) {
12098 separators.push(t1.$index(path, 0));
12099 start = 1;
12100 } else {
12101 separators.push("");
12102 start = 0;
12103 }
12104 i = start;
12105 while (true) {
12106 t2 = t1.get$length(path);
12107 if (typeof t2 !== "number")
12108 return H.iae(t2);
12109 if (!(i < t2))
12110 break;
12111 if (style.isSeparator$1(t1.codeUnitAt$1(path, i))) {
12112 parts.push(C.JSString_methods.substring$2(path, start, i));
12113 if (i >= path.length)
12114 return H.ioore(path, i);
12115 separators.push(path[i]);
12116 start = i + 1;
12117 }
12118 ++i;
12119 }
12120 t2 = t1.get$length(path);
12121 if (typeof t2 !== "number")
12122 return H.iae(t2);
12123 if (start < t2) {
12124 parts.push(t1.substring$1(path, start));
12125 separators.push("");
12126 }
12127 return new Q.ParsedPath(style, root, isRootRelative, parts, separators );
12128 }}
12129 },
12130 ParsedPath_normalize_closure: {
12131 "^": "Closure:0;_parsed_path$_captured_this_0",
12132 call$1: function(_) {
12133 return this._parsed_path$_captured_this_0.style.get$separator();
12134 }
12135 }
12136 }], ["path.path_exception", "package:path/src/path_exception.dart",, E, {
12137 "^": "",
12138 PathException: {
12139 "^": "Object;message>",
12140 toString$0: function(_) {
12141 return "PathException: " + this.message;
12142 }
12143 }
12144 }], ["path.style", "package:path/src/style.dart",, S, {
12145 "^": "",
12146 Style__getPlatformStyle: function() {
12147 var scheme, userInfo, host, query, fragment, port, isFile, t1, path;
12148 if (P.Uri_base().scheme !== "file")
12149 return $.$get$Style_url();
12150 if (!C.JSString_methods.endsWith$1(P.Uri_base()._path, "/"))
12151 return $.$get$Style_url();
12152 scheme = P.Uri__makeScheme("", 0, 0);
12153 userInfo = P.Uri__makeUserInfo("", 0, 0);
12154 host = P.Uri__makeHost(null, 0, 0, false);
12155 query = P.Uri__makeQuery(null, 0, 0, null);
12156 fragment = P.Uri__makeFragment(null, 0, 0);
12157 port = P.Uri__makePort(null, scheme);
12158 isFile = scheme === "file";
12159 if (host == null)
12160 t1 = userInfo.length !== 0 || port != null || isFile;
12161 else
12162 t1 = false;
12163 if (t1)
12164 host = "";
12165 t1 = host == null;
12166 path = P.Uri__makePath("a/b", 0, 3, null, scheme, !t1);
12167 if (new P.Uri(host, port, scheme.length === 0 && t1 && !C.JSString_methods .startsWith$1(path, "/") ? P.Uri__normalizeRelativePath(path) : P.Uri__removeDot Segments(path), scheme, userInfo, query, fragment, null, null).toFilePath$0() == = "a\\b")
12168 return $.$get$Style_windows();
12169 return $.$get$Style_posix();
12170 },
12171 Style: {
12172 "^": "Object;",
12173 toString$0: function(_) {
12174 return this.get$name(this);
12175 }
12176 }
12177 }], ["path.style.posix", "package:path/src/style/posix.dart",, Z, {
12178 "^": "",
12179 PosixStyle: {
12180 "^": "InternalStyle;name>,separator<,separators,separatorPattern,needsSepa ratorPattern,rootPattern,relativeRootPattern",
12181 containsSeparator$1: function(path) {
12182 return J.contains$1$asx(path, "/");
12183 },
12184 isSeparator$1: function(codeUnit) {
12185 return codeUnit === 47;
12186 },
12187 needsSeparator$1: function(path) {
12188 var t1 = J.getInterceptor$asx(path);
12189 return t1.get$isNotEmpty(path) && t1.codeUnitAt$1(path, J.$sub$n(t1.get$ length(path), 1)) !== 47;
12190 },
12191 rootLength$1: function(path) {
12192 var t1 = J.getInterceptor$asx(path);
12193 if (t1.get$isNotEmpty(path) && t1.codeUnitAt$1(path, 0) === 47)
12194 return 1;
12195 return 0;
12196 },
12197 isRootRelative$1: function(path) {
12198 return false;
12199 },
12200 pathFromUri$1: function(uri) {
12201 var t1 = uri.scheme;
12202 if (t1 === "" || t1 === "file")
12203 return P.Uri__uriDecode(uri._path, C.Utf8Codec_false, false);
12204 throw H.wrapException(P.ArgumentError$("Uri " + uri.toString$0(0) + " mu st have scheme 'file:'."));
12205 }
12206 }
12207 }], ["path.style.url", "package:path/src/style/url.dart",, E, {
12208 "^": "",
12209 UrlStyle: {
12210 "^": "InternalStyle;name>,separator<,separators,separatorPattern,needsSepa ratorPattern,rootPattern,relativeRootPattern",
12211 containsSeparator$1: function(path) {
12212 return J.contains$1$asx(path, "/");
12213 },
12214 isSeparator$1: function(codeUnit) {
12215 return codeUnit === 47;
12216 },
12217 needsSeparator$1: function(path) {
12218 var t1 = J.getInterceptor$asx(path);
12219 if (t1.get$isEmpty(path) === true)
12220 return false;
12221 if (t1.codeUnitAt$1(path, J.$sub$n(t1.get$length(path), 1)) !== 47)
12222 return true;
12223 return C.JSString_methods.endsWith$1(path, "://") && this.rootLength$1(p ath) === path.length;
12224 },
12225 rootLength$1: function(path) {
12226 var t1, index;
12227 t1 = J.getInterceptor$asx(path);
12228 if (t1.get$isEmpty(path) === true)
12229 return 0;
12230 if (t1.codeUnitAt$1(path, 0) === 47)
12231 return 1;
12232 index = C.JSString_methods.indexOf$1(path, "/");
12233 if (index > 0 && C.JSString_methods.startsWith$2(path, "://", index - 1) ) {
12234 index = C.JSString_methods.indexOf$2(path, "/", index + 2);
12235 if (index > 0)
12236 return index;
12237 return path.length;
12238 }
12239 return 0;
12240 },
12241 isRootRelative$1: function(path) {
12242 var t1 = J.getInterceptor$asx(path);
12243 return t1.get$isNotEmpty(path) && t1.codeUnitAt$1(path, 0) === 47;
12244 },
12245 pathFromUri$1: function(uri) {
12246 return uri.toString$0(0);
12247 }
12248 }
12249 }], ["path.style.windows", "package:path/src/style/windows.dart",, T, {
12250 "^": "",
12251 WindowsStyle: {
12252 "^": "InternalStyle;name>,separator<,separators,separatorPattern,needsSepa ratorPattern,rootPattern,relativeRootPattern",
12253 containsSeparator$1: function(path) {
12254 return J.contains$1$asx(path, "/");
12255 },
12256 isSeparator$1: function(codeUnit) {
12257 return codeUnit === 47 || codeUnit === 92;
12258 },
12259 needsSeparator$1: function(path) {
12260 var t1 = J.getInterceptor$asx(path);
12261 if (t1.get$isEmpty(path) === true)
12262 return false;
12263 t1 = t1.codeUnitAt$1(path, J.$sub$n(t1.get$length(path), 1));
12264 return !(t1 === 47 || t1 === 92);
12265 },
12266 rootLength$1: function(path) {
12267 var t1, index;
12268 t1 = J.getInterceptor$asx(path);
12269 if (t1.get$isEmpty(path) === true)
12270 return 0;
12271 if (t1.codeUnitAt$1(path, 0) === 47)
12272 return 1;
12273 if (C.JSString_methods.codeUnitAt$1(path, 0) === 92) {
12274 t1 = path.length;
12275 if (t1 < 2 || C.JSString_methods.codeUnitAt$1(path, 1) !== 92)
12276 return 1;
12277 index = C.JSString_methods.indexOf$2(path, "\\", 2);
12278 if (index > 0) {
12279 index = C.JSString_methods.indexOf$2(path, "\\", index + 1);
12280 if (index > 0)
12281 return index;
12282 }
12283 return t1;
12284 }
12285 if (path.length < 3)
12286 return 0;
12287 t1 = C.JSString_methods.codeUnitAt$1(path, 0);
12288 if (!(t1 >= 65 && t1 <= 90))
12289 t1 = t1 >= 97 && t1 <= 122;
12290 else
12291 t1 = true;
12292 if (!t1)
12293 return 0;
12294 if (C.JSString_methods.codeUnitAt$1(path, 1) !== 58)
12295 return 0;
12296 t1 = C.JSString_methods.codeUnitAt$1(path, 2);
12297 if (!(t1 === 47 || t1 === 92))
12298 return 0;
12299 return 3;
12300 },
12301 isRootRelative$1: function(path) {
12302 return this.rootLength$1(path) === 1;
12303 },
12304 pathFromUri$1: function(uri) {
12305 var t1, path;
12306 t1 = uri.scheme;
12307 if (t1 !== "" && t1 !== "file")
12308 throw H.wrapException(P.ArgumentError$("Uri " + uri.toString$0(0) + " must have scheme 'file:'."));
12309 path = uri._path;
12310 if (uri.get$host(uri) === "") {
12311 if (C.JSString_methods.startsWith$1(path, "/")) {
12312 H.checkString("");
12313 H.checkInt(0);
12314 P.RangeError_checkValueInInterval(0, 0, path.length, "startIndex", n ull);
12315 path = H.stringReplaceFirstUnchecked(path, "/", "", 0);
12316 }
12317 } else
12318 path = "\\\\" + H.S(uri.get$host(uri)) + path;
12319 H.checkString("\\");
12320 return P.Uri__uriDecode(H.stringReplaceAllUnchecked(path, "/", "\\"), C. Utf8Codec_false, false);
12321 }
12322 }
12323 }], ["source_span.location", "package:source_span/src/location.dart",, O, {
12324 "^": "",
12325 SourceLocation: {
12326 "^": "Object;sourceUrl,offset,line,column",
12327 get$toolString: function() {
12328 var source = this.sourceUrl;
12329 return H.S(source == null ? "unknown source" : source) + ":" + H.S(J.$ad d$ns(this.line, 1)) + ":" + H.S(J.$add$ns(this.column, 1));
12330 },
12331 distance$1: function(other) {
12332 var t1, t2;
12333 t1 = this.sourceUrl;
12334 t2 = other.sourceUrl;
12335 if (!J.$eq$(t1, t2))
12336 throw H.wrapException(P.ArgumentError$("Source URLs \"" + H.S(t1) + "\ " and \"" + H.S(t2) + "\" don't match."));
12337 return J.abs$0$n(J.$sub$n(this.offset, other.offset));
12338 },
12339 $eq: function(_, other) {
12340 if (other == null)
12341 return false;
12342 return other instanceof O.SourceLocation && J.$eq$(this.sourceUrl, other .sourceUrl) && J.$eq$(this.offset, other.offset);
12343 },
12344 get$hashCode: function(_) {
12345 return J.$add$ns(J.get$hashCode$(this.sourceUrl), this.offset);
12346 },
12347 toString$0: function(_) {
12348 return "<" + H.S(new H.TypeImpl(H.getRuntimeTypeString(this), null)) + " : " + H.S(this.offset) + " " + this.get$toolString() + ">";
12349 },
12350 SourceLocation$4$column$line$sourceUrl: function(offset, column, line, sou rceUrl) {
12351 if (J.$lt$n(offset, 0))
12352 throw H.wrapException(P.RangeError$("Offset may not be negative, was " + H.S(offset) + "."));
12353 else if (line != null && J.$lt$n(line, 0))
12354 throw H.wrapException(P.RangeError$("Line may not be negative, was " + H.S(line) + "."));
12355 else if (column != null && J.$lt$n(column, 0))
12356 throw H.wrapException(P.RangeError$("Column may not be negative, was " + H.S(column) + "."));
12357 },
12358 static: {SourceLocation$: function(offset, column, line, sourceUrl) {
12359 var t1, t2;
12360 t1 = typeof sourceUrl === "string" ? P.Uri_parse(sourceUrl, 0, null) : sourceUrl;
12361 t2 = line == null ? 0 : line;
12362 t1 = new O.SourceLocation(t1, offset, t2, column == null ? offset : co lumn);
12363 t1.SourceLocation$4$column$line$sourceUrl(offset, column, line, source Url);
12364 return t1;
12365 }}
12366 }
12367 }], ["source_span.span", "package:source_span/src/span.dart",, T, {
12368 "^": "",
12369 SourceSpan: {
12370 "^": "Object;"
12371 },
12372 SourceSpanBase: {
12373 "^": "SourceSpanMixin;start>,end<,text",
12374 SourceSpanBase$3: function(start, end, text) {
12375 var t1, t2, t3, t4;
12376 t1 = this.end;
12377 t2 = t1.sourceUrl;
12378 t3 = this.start;
12379 t4 = t3.sourceUrl;
12380 if (!J.$eq$(t2, t4))
12381 throw H.wrapException(P.ArgumentError$("Source URLs \"" + H.S(t4) + "\ " and \"" + H.S(t2) + "\" don't match."));
12382 else if (J.$lt$n(t1.offset, t3.offset))
12383 throw H.wrapException(P.ArgumentError$("End " + t1.toString$0(0) + " m ust come after start " + t3.toString$0(0) + "."));
12384 else {
12385 t2 = this.text;
12386 if (!J.$eq$(J.get$length$asx(t2), t3.distance$1(t1)))
12387 throw H.wrapException(P.ArgumentError$("Text \"" + H.S(t2) + "\" mus t be " + H.S(t3.distance$1(t1)) + " characters long."));
12388 }
12389 },
12390 static: {SourceSpanBase$: function(start, end, text) {
12391 var t1 = new T.SourceSpanBase(start, end, text);
12392 t1.SourceSpanBase$3(start, end, text);
12393 return t1;
12394 }}
12395 }
12396 }], ["source_span.span_mixin", "package:source_span/src/span_mixin.dart",, Y, {
12397 "^": "",
12398 SourceSpanMixin: {
12399 "^": "Object;",
12400 get$length: function(_) {
12401 return J.$sub$n(this.get$end().offset, this.start.offset);
12402 },
12403 message$2$color: [function(_, message, color) {
12404 var t1, column, t2, t3, context, lineStart, t4, endIndex, textLine, toCo lumn;
12405 t1 = this.start;
12406 column = t1.column;
12407 t2 = "line " + H.S(J.$add$ns(this.get$start(this).line, 1)) + ", column " + H.S(J.$add$ns(column, 1));
12408 t3 = t1.sourceUrl;
12409 if (t3 != null)
12410 t2 += " of " + $.$get$context().prettyUri$1(t3);
12411 t2 += ": " + H.S(message);
12412 t3 = this.end.offset;
12413 t1 = t1.offset;
12414 if (J.$eq$(J.$sub$n(t3, t1), 0) && !this.$isSourceSpanWithContext)
12415 return t2.charCodeAt(0) == 0 ? t2 : t2;
12416 t2 += "\n";
12417 if (!!this.$isSourceSpanWithContext) {
12418 context = this.context;
12419 lineStart = D.findLineStart(context, this.text, column);
12420 if (lineStart != null && lineStart > 0) {
12421 t2 += J.substring$2$s(context, 0, lineStart);
12422 context = C.JSString_methods.substring$1(context, lineStart);
12423 }
12424 t4 = J.getInterceptor$asx(context);
12425 endIndex = t4.indexOf$1(context, "\n");
12426 textLine = endIndex === -1 ? context : t4.substring$2(context, 0, endI ndex + 1);
12427 column = P.min(column, J.get$length$asx(textLine) - 1);
12428 } else {
12429 textLine = C.JSArray_methods.get$first(J.split$1$s(this.text, "\n"));
12430 column = 0;
12431 }
12432 if (typeof t3 !== "number")
12433 return H.iae(t3);
12434 if (typeof t1 !== "number")
12435 return H.iae(t1);
12436 t4 = J.getInterceptor$asx(textLine);
12437 toColumn = P.min(column + t3 - t1, t4.get$length(textLine));
12438 t1 = t2 + H.S(textLine);
12439 if (!t4.endsWith$1(textLine, "\n"))
12440 t1 += "\n";
12441 t1 += C.JSString_methods.$mul(" ", column);
12442 t1 += C.JSString_methods.$mul("^", P.max(toColumn - column, 1));
12443 return t1.charCodeAt(0) == 0 ? t1 : t1;
12444 }, function($receiver, message) {
12445 return this.message$2$color($receiver, message, null);
12446 }, "message$1", "call$2$color", "call$1", "get$message", 2, 3, 28, 0],
12447 $eq: function(_, other) {
12448 var t1;
12449 if (other == null)
12450 return false;
12451 t1 = J.getInterceptor(other);
12452 return !!t1.$isSourceSpan && this.get$start(this).$eq(0, t1.get$start(ot her)) && this.end.$eq(0, other.get$end());
12453 },
12454 get$hashCode: function(_) {
12455 var t1, t2;
12456 t1 = this.get$start(this);
12457 t1 = J.$add$ns(J.get$hashCode$(t1.sourceUrl), t1.offset);
12458 t2 = this.end;
12459 t2 = J.$add$ns(J.get$hashCode$(t2.sourceUrl), t2.offset);
12460 if (typeof t2 !== "number")
12461 return H.iae(t2);
12462 return J.$add$ns(t1, 31 * t2);
12463 },
12464 toString$0: function(_) {
12465 var t1, t2, t3;
12466 t1 = "<" + H.S(new H.TypeImpl(H.getRuntimeTypeString(this), null)) + ": from ";
12467 t2 = this.get$start(this);
12468 t3 = this.end;
12469 return t1 + ("<" + H.S(new H.TypeImpl(H.getRuntimeTypeString(t2), null)) + ": " + H.S(t2.offset) + " " + t2.get$toolString() + ">") + " to " + ("<" + H. S(new H.TypeImpl(H.getRuntimeTypeString(t3), null)) + ": " + H.S(t3.offset) + " " + t3.get$toolString() + ">") + " \"" + H.S(this.text) + "\">";
12470 },
12471 $isSourceSpan: 1
12472 }
12473 }], ["source_span.span_with_context", "package:source_span/src/span_with_conte xt.dart",, E, {
12474 "^": "",
12475 SourceSpanWithContext: {
12476 "^": "SourceSpanBase;context,start,end,text"
12477 }
12478 }], ["source_span.utils", "package:source_span/src/utils.dart",, D, {
12479 "^": "",
12480 findLineStart: function(context, text, column) {
12481 var isEmpty, t1, index, t2, lineStart, textColumn, t3;
12482 isEmpty = J.$eq$(text, "");
12483 t1 = J.getInterceptor$asx(context);
12484 index = t1.indexOf$1(context, text);
12485 for (t2 = J.getInterceptor(column); index !== -1;) {
12486 lineStart = t1.lastIndexOf$2(context, "\n", index) + 1;
12487 textColumn = index - lineStart;
12488 if (!t2.$eq(column, textColumn))
12489 t3 = isEmpty && t2.$eq(column, textColumn + 1);
12490 else
12491 t3 = true;
12492 if (t3)
12493 return lineStart;
12494 index = t1.indexOf$2(context, text, index + 1);
12495 }
12496 return;
12497 }
12498 }]];
12499 setupProgram(dart, 0);
12500 // getInterceptor methods
12501 J.getInterceptor = function(receiver) {
12502 if (typeof receiver == "number") {
12503 if (Math.floor(receiver) == receiver)
12504 return J.JSInt.prototype;
12505 return J.JSDouble.prototype;
12506 }
12507 if (typeof receiver == "string")
12508 return J.JSString.prototype;
12509 if (receiver == null)
12510 return J.JSNull.prototype;
12511 if (typeof receiver == "boolean")
12512 return J.JSBool.prototype;
12513 if (receiver.constructor == Array)
12514 return J.JSArray.prototype;
12515 if (typeof receiver != "object")
12516 return receiver;
12517 if (receiver instanceof P.Object)
12518 return receiver;
12519 return J.getNativeInterceptor(receiver);
12520 };
12521 J.getInterceptor$asx = function(receiver) {
12522 if (typeof receiver == "string")
12523 return J.JSString.prototype;
12524 if (receiver == null)
12525 return receiver;
12526 if (receiver.constructor == Array)
12527 return J.JSArray.prototype;
12528 if (typeof receiver != "object")
12529 return receiver;
12530 if (receiver instanceof P.Object)
12531 return receiver;
12532 return J.getNativeInterceptor(receiver);
12533 };
12534 J.getInterceptor$ax = function(receiver) {
12535 if (receiver == null)
12536 return receiver;
12537 if (receiver.constructor == Array)
12538 return J.JSArray.prototype;
12539 if (typeof receiver != "object")
12540 return receiver;
12541 if (receiver instanceof P.Object)
12542 return receiver;
12543 return J.getNativeInterceptor(receiver);
12544 };
12545 J.getInterceptor$n = function(receiver) {
12546 if (typeof receiver == "number")
12547 return J.JSNumber.prototype;
12548 if (receiver == null)
12549 return receiver;
12550 if (!(receiver instanceof P.Object))
12551 return J.UnknownJavaScriptObject.prototype;
12552 return receiver;
12553 };
12554 J.getInterceptor$ns = function(receiver) {
12555 if (typeof receiver == "number")
12556 return J.JSNumber.prototype;
12557 if (typeof receiver == "string")
12558 return J.JSString.prototype;
12559 if (receiver == null)
12560 return receiver;
12561 if (!(receiver instanceof P.Object))
12562 return J.UnknownJavaScriptObject.prototype;
12563 return receiver;
12564 };
12565 J.getInterceptor$s = function(receiver) {
12566 if (typeof receiver == "string")
12567 return J.JSString.prototype;
12568 if (receiver == null)
12569 return receiver;
12570 if (!(receiver instanceof P.Object))
12571 return J.UnknownJavaScriptObject.prototype;
12572 return receiver;
12573 };
12574 J.getInterceptor$x = function(receiver) {
12575 if (receiver == null)
12576 return receiver;
12577 if (typeof receiver != "object")
12578 return receiver;
12579 if (receiver instanceof P.Object)
12580 return receiver;
12581 return J.getNativeInterceptor(receiver);
12582 };
12583 J.set$href$x = function(receiver, value) {
12584 return J.getInterceptor$x(receiver).set$href(receiver, value);
12585 };
12586 J.get$attributes$x = function(receiver) {
12587 return J.getInterceptor$x(receiver).get$attributes(receiver);
12588 };
12589 J.get$classes$x = function(receiver) {
12590 return J.getInterceptor$x(receiver).get$classes(receiver);
12591 };
12592 J.get$error$x = function(receiver) {
12593 return J.getInterceptor$x(receiver).get$error(receiver);
12594 };
12595 J.get$isEmpty$asx = function(receiver) {
12596 return J.getInterceptor$asx(receiver).get$isEmpty(receiver);
12597 };
12598 J.get$iterator$ax = function(receiver) {
12599 return J.getInterceptor$ax(receiver).get$iterator(receiver);
12600 };
12601 J.get$last$ax = function(receiver) {
12602 return J.getInterceptor$ax(receiver).get$last(receiver);
12603 };
12604 J.get$length$asx = function(receiver) {
12605 return J.getInterceptor$asx(receiver).get$length(receiver);
12606 };
12607 J.get$name$x = function(receiver) {
12608 return J.getInterceptor$x(receiver).get$name(receiver);
12609 };
12610 J.get$onClick$x = function(receiver) {
12611 return J.getInterceptor$x(receiver).get$onClick(receiver);
12612 };
12613 J.get$responseText$x = function(receiver) {
12614 return J.getInterceptor$x(receiver).get$responseText(receiver);
12615 };
12616 J.get$tagName$x = function(receiver) {
12617 return J.getInterceptor$x(receiver).get$tagName(receiver);
12618 };
12619 J.get$target$x = function(receiver) {
12620 return J.getInterceptor$x(receiver).get$target(receiver);
12621 };
12622 J.$add$ns = function(receiver, a0) {
12623 if (typeof receiver == "number" && typeof a0 == "number")
12624 return receiver + a0;
12625 return J.getInterceptor$ns(receiver).$add(receiver, a0);
12626 };
12627 J.$gt$n = function(receiver, a0) {
12628 if (typeof receiver == "number" && typeof a0 == "number")
12629 return receiver > a0;
12630 return J.getInterceptor$n(receiver).$gt(receiver, a0);
12631 };
12632 J.$index$asx = function(receiver, a0) {
12633 if (receiver.constructor == Array || typeof receiver == "string" || H.isJsIn dexable(receiver, receiver[init.dispatchPropertyName]))
12634 if (a0 >>> 0 === a0 && a0 < receiver.length)
12635 return receiver[a0];
12636 return J.getInterceptor$asx(receiver).$index(receiver, a0);
12637 };
12638 J.$lt$n = function(receiver, a0) {
12639 if (typeof receiver == "number" && typeof a0 == "number")
12640 return receiver < a0;
12641 return J.getInterceptor$n(receiver).$lt(receiver, a0);
12642 };
12643 J.$sub$n = function(receiver, a0) {
12644 if (typeof receiver == "number" && typeof a0 == "number")
12645 return receiver - a0;
12646 return J.getInterceptor$n(receiver).$sub(receiver, a0);
12647 };
12648 J._addEventListener$3$x = function(receiver, a0, a1, a2) {
12649 return J.getInterceptor$x(receiver)._addEventListener$3(receiver, a0, a1, a2 );
12650 };
12651 J._removeEventListener$3$x = function(receiver, a0, a1, a2) {
12652 return J.getInterceptor$x(receiver)._removeEventListener$3(receiver, a0, a1, a2);
12653 };
12654 J.abs$0$n = function(receiver) {
12655 return J.getInterceptor$n(receiver).abs$0(receiver);
12656 };
12657 J.accept$1$x = function(receiver, a0) {
12658 return J.getInterceptor$x(receiver).accept$1(receiver, a0);
12659 };
12660 J.add$1$ax = function(receiver, a0) {
12661 return J.getInterceptor$ax(receiver).add$1(receiver, a0);
12662 };
12663 J.codeUnitAt$1$s = function(receiver, a0) {
12664 return J.getInterceptor$s(receiver).codeUnitAt$1(receiver, a0);
12665 };
12666 J.complete$1$x = function(receiver, a0) {
12667 return J.getInterceptor$x(receiver).complete$1(receiver, a0);
12668 };
12669 J.contains$1$asx = function(receiver, a0) {
12670 return J.getInterceptor$asx(receiver).contains$1(receiver, a0);
12671 };
12672 J.contains$2$asx = function(receiver, a0, a1) {
12673 return J.getInterceptor$asx(receiver).contains$2(receiver, a0, a1);
12674 };
12675 J.elementAt$1$ax = function(receiver, a0) {
12676 return J.getInterceptor$ax(receiver).elementAt$1(receiver, a0);
12677 };
12678 J.forEach$1$ax = function(receiver, a0) {
12679 return J.getInterceptor$ax(receiver).forEach$1(receiver, a0);
12680 };
12681 J.map$1$ax = function(receiver, a0) {
12682 return J.getInterceptor$ax(receiver).map$1(receiver, a0);
12683 };
12684 J.querySelector$1$x = function(receiver, a0) {
12685 return J.getInterceptor$x(receiver).querySelector$1(receiver, a0);
12686 };
12687 J.remove$0$ax = function(receiver) {
12688 return J.getInterceptor$ax(receiver).remove$0(receiver);
12689 };
12690 J.replaceAll$2$s = function(receiver, a0, a1) {
12691 return J.getInterceptor$s(receiver).replaceAll$2(receiver, a0, a1);
12692 };
12693 J.replaceAllMapped$2$s = function(receiver, a0, a1) {
12694 return J.getInterceptor$s(receiver).replaceAllMapped$2(receiver, a0, a1);
12695 };
12696 J.send$1$x = function(receiver, a0) {
12697 return J.getInterceptor$x(receiver).send$1(receiver, a0);
12698 };
12699 J.split$1$s = function(receiver, a0) {
12700 return J.getInterceptor$s(receiver).split$1(receiver, a0);
12701 };
12702 J.substring$1$s = function(receiver, a0) {
12703 return J.getInterceptor$s(receiver).substring$1(receiver, a0);
12704 };
12705 J.substring$2$s = function(receiver, a0, a1) {
12706 return J.getInterceptor$s(receiver).substring$2(receiver, a0, a1);
12707 };
12708 J.toLowerCase$0$s = function(receiver) {
12709 return J.getInterceptor$s(receiver).toLowerCase$0(receiver);
12710 };
12711 J.toRadixString$1$n = function(receiver, a0) {
12712 return J.getInterceptor$n(receiver).toRadixString$1(receiver, a0);
12713 };
12714 J.trim$0$s = function(receiver) {
12715 return J.getInterceptor$s(receiver).trim$0(receiver);
12716 };
12717 J.get$hashCode$ = function(receiver) {
12718 return J.getInterceptor(receiver).get$hashCode(receiver);
12719 };
12720 J.$eq$ = function(receiver, a0) {
12721 if (receiver == null)
12722 return a0 == null;
12723 if (typeof receiver != "object")
12724 return a0 != null && receiver === a0;
12725 return J.getInterceptor(receiver).$eq(receiver, a0);
12726 };
12727 J.toString$0$ = function(receiver) {
12728 return J.getInterceptor(receiver).toString$0(receiver);
12729 };
12730 Isolate.makeConstantList = function(list) {
12731 list.immutable$list = Array;
12732 list.fixed$length = Array;
12733 return list;
12734 };
12735 var $ = Isolate.$isolateProperties;
12736 C.BodyElement_methods = W.BodyElement.prototype;
12737 C.HttpRequest_methods = W.HttpRequest.prototype;
12738 C.JSArray_methods = J.JSArray.prototype;
12739 C.JSDouble_methods = J.JSDouble.prototype;
12740 C.JSInt_methods = J.JSInt.prototype;
12741 C.JSNull_methods = J.JSNull.prototype;
12742 C.JSNumber_methods = J.JSNumber.prototype;
12743 C.JSString_methods = J.JSString.prototype;
12744 C.NodeList_methods = W.NodeList.prototype;
12745 C.PlainJavaScriptObject_methods = J.PlainJavaScriptObject.prototype;
12746 C.UnknownJavaScriptObject_methods = J.UnknownJavaScriptObject.prototype;
12747 C.Window_methods = W.Window.prototype;
12748 C.C_DynamicRuntimeType = new H.DynamicRuntimeType();
12749 C.C_OutOfMemoryError = new P.OutOfMemoryError();
12750 C.C_Utf8Encoder = new P.Utf8Encoder();
12751 C.C__DelayedDone = new P._DelayedDone();
12752 C.C__RootZone = new P._RootZone();
12753 C.Duration_0 = new P.Duration(0);
12754 C.HtmlEscapeMode_p2v = new P.HtmlEscapeMode("unknown", true, true, true, true) ;
12755 C.JS_CONST_0 = function(hooks) {
12756 if (typeof dartExperimentalFixupGetTag != "function") return hooks;
12757 hooks.getTag = dartExperimentalFixupGetTag(hooks.getTag);
12758 };
12759 C.JS_CONST_4hp = function(hooks) {
12760 var userAgent = typeof navigator == "object" ? navigator.userAgent : "";
12761 if (userAgent.indexOf("Firefox") == -1) return hooks;
12762 var getTag = hooks.getTag;
12763 var quickMap = {
12764 "BeforeUnloadEvent": "Event",
12765 "DataTransfer": "Clipboard",
12766 "GeoGeolocation": "Geolocation",
12767 "Location": "!Location",
12768 "WorkerMessageEvent": "MessageEvent",
12769 "XMLDocument": "!Document"};
12770 function getTagFirefox(o) {
12771 var tag = getTag(o);
12772 return quickMap[tag] || tag;
12773 }
12774 hooks.getTag = getTagFirefox;
12775 };
12776 C.JS_CONST_8ZY = function getTagFallback(o) {
12777 var constructor = o.constructor;
12778 if (typeof constructor == "function") {
12779 var name = constructor.name;
12780 if (typeof name == "string" &&
12781 name.length > 2 &&
12782 name !== "Object" &&
12783 name !== "Function.prototype") {
12784 return name;
12785 }
12786 }
12787 var s = Object.prototype.toString.call(o);
12788 return s.substring(8, s.length - 1);
12789 };
12790 C.JS_CONST_Fs4 = function(hooks) { return hooks; }
12791 ;
12792 C.JS_CONST_QJm = function(getTagFallback) {
12793 return function(hooks) {
12794 if (typeof navigator != "object") return hooks;
12795 var ua = navigator.userAgent;
12796 if (ua.indexOf("DumpRenderTree") >= 0) return hooks;
12797 if (ua.indexOf("Chrome") >= 0) {
12798 function confirm(p) {
12799 return typeof window == "object" && window[p] && window[p].name == p;
12800 }
12801 if (confirm("Window") && confirm("HTMLElement")) return hooks;
12802 }
12803 hooks.getTag = getTagFallback;
12804 };
12805 };
12806 C.JS_CONST_gkc = function() {
12807 function typeNameInChrome(o) {
12808 var constructor = o.constructor;
12809 if (constructor) {
12810 var name = constructor.name;
12811 if (name) return name;
12812 }
12813 var s = Object.prototype.toString.call(o);
12814 return s.substring(8, s.length - 1);
12815 }
12816 function getUnknownTag(object, tag) {
12817 if (/^HTML[A-Z].*Element$/.test(tag)) {
12818 var name = Object.prototype.toString.call(object);
12819 if (name == "[object Object]") return null;
12820 return "HTMLElement";
12821 }
12822 }
12823 function getUnknownTagGenericBrowser(object, tag) {
12824 if (self.HTMLElement && object instanceof HTMLElement) return "HTMLElement";
12825 return getUnknownTag(object, tag);
12826 }
12827 function prototypeForTag(tag) {
12828 if (typeof window == "undefined") return null;
12829 if (typeof window[tag] == "undefined") return null;
12830 var constructor = window[tag];
12831 if (typeof constructor != "function") return null;
12832 return constructor.prototype;
12833 }
12834 function discriminator(tag) { return null; }
12835 var isBrowser = typeof navigator == "object";
12836 return {
12837 getTag: typeNameInChrome,
12838 getUnknownTag: isBrowser ? getUnknownTagGenericBrowser : getUnknownTag,
12839 prototypeForTag: prototypeForTag,
12840 discriminator: discriminator };
12841 };
12842 C.JS_CONST_gkc0 = function(hooks) {
12843 var userAgent = typeof navigator == "object" ? navigator.userAgent : "";
12844 if (userAgent.indexOf("Trident/") == -1) return hooks;
12845 var getTag = hooks.getTag;
12846 var quickMap = {
12847 "BeforeUnloadEvent": "Event",
12848 "DataTransfer": "Clipboard",
12849 "HTMLDDElement": "HTMLElement",
12850 "HTMLDTElement": "HTMLElement",
12851 "HTMLPhraseElement": "HTMLElement",
12852 "Position": "Geoposition"
12853 };
12854 function getTagIE(o) {
12855 var tag = getTag(o);
12856 var newTag = quickMap[tag];
12857 if (newTag) return newTag;
12858 if (tag == "Object") {
12859 if (window.DataView && (o instanceof window.DataView)) return "DataView";
12860 }
12861 return tag;
12862 }
12863 function prototypeForTagIE(tag) {
12864 var constructor = window[tag];
12865 if (constructor == null) return null;
12866 return constructor.prototype;
12867 }
12868 hooks.getTag = getTagIE;
12869 hooks.prototypeForTag = prototypeForTagIE;
12870 };
12871 C.JS_CONST_rr7 = function(hooks) {
12872 var getTag = hooks.getTag;
12873 var prototypeForTag = hooks.prototypeForTag;
12874 function getTagFixed(o) {
12875 var tag = getTag(o);
12876 if (tag == "Document") {
12877 if (!!o.xmlVersion) return "!Document";
12878 return "!HTMLDocument";
12879 }
12880 return tag;
12881 }
12882 function prototypeForTagFixed(tag) {
12883 if (tag == "Document") return null;
12884 return prototypeForTag(tag);
12885 }
12886 hooks.getTag = getTagFixed;
12887 hooks.prototypeForTag = prototypeForTagFixed;
12888 };
12889 C.JsonCodec_null_null = new P.JsonCodec(null, null);
12890 C.JsonDecoder_null = new P.JsonDecoder(null);
12891 C.List_127_2047_65535_1114111 = H.setRuntimeTypeInfo(Isolate.makeConstantList( [127, 2047, 65535, 1114111]), [P.$int]);
12892 C.List_1GN = H.setRuntimeTypeInfo(Isolate.makeConstantList(["*::class", "*::di r", "*::draggable", "*::hidden", "*::id", "*::inert", "*::itemprop", "*::itemref ", "*::itemscope", "*::lang", "*::spellcheck", "*::title", "*::translate", "A::a ccesskey", "A::coords", "A::hreflang", "A::name", "A::shape", "A::tabindex", "A: :target", "A::type", "AREA::accesskey", "AREA::alt", "AREA::coords", "AREA::nohr ef", "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::al ign", "COL::align", "COL::char", "COL::charoff", "COL::span", "COL::valign", "CO L::width", "COLGROUP::align", "COLGROUP::char", "COLGROUP::charoff", "COLGROUP:: span", "COLGROUP::valign", "COLGROUP::width", "COMMAND::checked", "COMMAND::comm and", "COMMAND::disabled", "COMMAND::label", "COMMAND::radiogroup", "COMMAND::ty pe", "DATA::value", "DEL::datetime", "DETAILS::open", "DIR::compact", "DIV::alig n", "DL::compact", "FIELDSET::disabled", "FONT::color", "FONT::face", "FONT::siz e", "FORM::accept", "FORM::autocomplete", "FORM::enctype", "FORM::method", "FORM ::name", "FORM::novalidate", "FORM::target", "FRAME::name", "H1::align", "H2::al ign", "H3::align", "H4::align", "H5::align", "H6::align", "HR::align", "HR::nosh ade", "HR::size", "HR::width", "HTML::version", "IFRAME::align", "IFRAME::frameb order", "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::checked", "INPUT::disabled", "INPUT::inputmode", "INPUT::ismap", "INPU T::list", "INPUT::max", "INPUT::maxlength", "INPUT::min", "INPUT::multiple", "IN PUT::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::ty pe", "LI::value", "LINK::sizes", "MAP::name", "MENU::compact", "MENU::label", "M ENU::type", "METER::high", "METER::low", "METER::max", "METER::min", "METER::val ue", "OBJECT::typemustmatch", "OL::compact", "OL::reversed", "OL::start", "OL::t ype", "OPTGROUP::disabled", "OPTGROUP::label", "OPTION::disabled", "OPTION::labe l", "OPTION::selected", "OPTION::value", "OUTPUT::for", "OUTPUT::name", "P::alig n", "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", "T ABLE::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", "TE XTAREA::readonly", "TEXTAREA::required", "TEXTAREA::rows", "TEXTAREA::tabindex", "TEXTAREA::wrap", "TFOOT::align", "TFOOT::char", "TFOOT::charoff", "TFOOT::vali gn", "TH::abbr", "TH::align", "TH::axis", "TH::bgcolor", "TH::char", "TH::charof f", "TH::colspan", "TH::headers", "TH::height", "TH::nowrap", "TH::rowspan", "TH ::scope", "TH::valign", "TH::width", "THEAD::align", "THEAD::char", "THEAD::char off", "THEAD::valign", "TR::align", "TR::bgcolor", "TR::char", "TR::charoff", "T R::valign", "TRACK::default", "TRACK::kind", "TRACK::label", "TRACK::srclang", " UL::compact", "UL::type", "VIDEO::controls", "VIDEO::height", "VIDEO::loop", "VI DEO::mediagroup", "VIDEO::muted", "VIDEO::preload", "VIDEO::width"]), [P.String] );
12893 C.List_2Vk = Isolate.makeConstantList([0, 0, 32776, 33792, 1, 10240, 0, 0]);
12894 C.List_A_FORM = Isolate.makeConstantList(["A", "FORM"]);
12895 C.List_BSc = Isolate.makeConstantList(["A::href", "FORM::action"]);
12896 C.List_CVk = Isolate.makeConstantList([0, 0, 65490, 45055, 65535, 34815, 65534 , 18431]);
12897 C.List_JYB = Isolate.makeConstantList([0, 0, 26624, 1023, 65534, 2047, 65534, 2047]);
12898 C.List_WnV = Isolate.makeConstantList(["/", "\\"]);
12899 C.List_cSk = Isolate.makeConstantList(["/"]);
12900 C.List_ego = Isolate.makeConstantList(["HEAD", "AREA", "BASE", "BASEFONT", "BR ", "COL", "COLGROUP", "EMBED", "FRAME", "FRAMESET", "HR", "IMAGE", "IMG", "INPUT ", "ISINDEX", "LINK", "META", "PARAM", "SOURCE", "STYLE", "TITLE", "WBR"]);
12901 C.List_empty0 = H.setRuntimeTypeInfo(Isolate.makeConstantList([]), [P.String]) ;
12902 C.List_empty = Isolate.makeConstantList([]);
12903 C.List_gRj = Isolate.makeConstantList([0, 0, 32722, 12287, 65534, 34815, 65534 , 18431]);
12904 C.List_h4r = Isolate.makeConstantList(["A::accesskey", "A::coords", "A::hrefla ng", "A::name", "A::shape", "A::tabindex", "A::target", "A::type", "FORM::accept ", "FORM::autocomplete", "FORM::enctype", "FORM::method", "FORM::name", "FORM::n ovalidate", "FORM::target"]);
12905 C.List_nxB = Isolate.makeConstantList([0, 0, 24576, 1023, 65534, 34815, 65534, 18431]);
12906 C.List_qNA = Isolate.makeConstantList([0, 0, 32754, 11263, 65534, 34815, 65534 , 18431]);
12907 C.List_qg40 = Isolate.makeConstantList([0, 0, 32722, 12287, 65535, 34815, 6553 4, 18431]);
12908 C.List_qg4 = Isolate.makeConstantList([0, 0, 65490, 12287, 65535, 34815, 65534 , 18431]);
12909 C.List_wSV = H.setRuntimeTypeInfo(Isolate.makeConstantList(["bind", "if", "ref ", "repeat", "syntax"]), [P.String]);
12910 C.List_yrN = H.setRuntimeTypeInfo(Isolate.makeConstantList(["A::href", "AREA:: href", "BLOCKQUOTE::cite", "BODY::background", "COMMAND::icon", "DEL::cite", "FO RM::action", "IMG::src", "INPUT::src", "INS::cite", "Q::cite", "VIDEO::poster"]) , [P.String]);
12911 C.Utf8Codec_false = new P.Utf8Codec(false);
12912 $.Primitives_mirrorFunctionCacheName = "$cachedFunction";
12913 $.Primitives_mirrorInvokeCacheName = "$cachedInvocation";
12914 $.Closure_functionCounter = 0;
12915 $.BoundClosure_selfFieldNameCache = null;
12916 $.BoundClosure_receiverFieldNameCache = null;
12917 $.getTagFunction = null;
12918 $.alternateTagFunction = null;
12919 $.prototypeForTagFunction = null;
12920 $.dispatchRecordsForInstanceTags = null;
12921 $.interceptorsForUncacheableTags = null;
12922 $.initNativeDispatchFlag = null;
12923 $._nextCallback = null;
12924 $._lastCallback = null;
12925 $._lastPriorityCallback = null;
12926 $._isInCallbackLoop = false;
12927 $.Zone__current = C.C__RootZone;
12928 $.Expando__keyCount = 0;
12929 $.Element__parseDocument = null;
12930 $.Element__parseRange = null;
12931 $.Element__defaultValidator = null;
12932 $.Element__defaultSanitizer = null;
12933 $.Device__isOpera = null;
12934 $.Device__isWebKit = null;
12935 $ = null;
12936 init.isHunkLoaded = function(hunkHash) {
12937 return !!$dart_deferred_initializers$[hunkHash];
12938 };
12939 init.deferredInitialized = new Object(null);
12940 init.isHunkInitialized = function(hunkHash) {
12941 return init.deferredInitialized[hunkHash];
12942 };
12943 init.initializeLoadedHunk = function(hunkHash) {
12944 $dart_deferred_initializers$[hunkHash]($globals$, $);
12945 init.deferredInitialized[hunkHash] = true;
12946 };
12947 init.deferredLibraryUris = {};
12948 init.deferredLibraryHashes = {};
12949 // Empty type-to-interceptor map.
12950 (function(lazies) {
12951 for (var i = 0; i < lazies.length;) {
12952 var fieldName = lazies[i++];
12953 var getterName = lazies[i++];
12954 var staticName = lazies[i++];
12955 var lazyValue = lazies[i++];
12956 Isolate.$lazy(fieldName, getterName, lazyValue, staticName);
12957 }
12958 })(["IsolateNatives_thisScript", "$get$IsolateNatives_thisScript", "thisScript ", function() {
12959 return H.IsolateNatives_computeThisScript();
12960 }, "IsolateNatives_workerIds", "$get$IsolateNatives_workerIds", "workerIds", f unction() {
12961 return H.setRuntimeTypeInfo(new P.Expando(null), [P.$int]);
12962 }, "TypeErrorDecoder_noSuchMethodPattern", "$get$TypeErrorDecoder_noSuchMethod Pattern", "noSuchMethodPattern", function() {
12963 return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallError On({toString: function() {
12964 return "$receiver$";
12965 }}));
12966 }, "TypeErrorDecoder_notClosurePattern", "$get$TypeErrorDecoder_notClosurePatt ern", "notClosurePattern", function() {
12967 return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallError On({$method$: null, toString: function() {
12968 return "$receiver$";
12969 }}));
12970 }, "TypeErrorDecoder_nullCallPattern", "$get$TypeErrorDecoder_nullCallPattern" , "nullCallPattern", function() {
12971 return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallError On(null));
12972 }, "TypeErrorDecoder_nullLiteralCallPattern", "$get$TypeErrorDecoder_nullLiter alCallPattern", "nullLiteralCallPattern", function() {
12973 return H.TypeErrorDecoder_extractPattern(function() {
12974 var $argumentsExpr$ = '$arguments$';
12975 try {
12976 null.$method$($argumentsExpr$);
12977 } catch (e) {
12978 return e.message;
12979 }
12980 }());
12981 }, "TypeErrorDecoder_undefinedCallPattern", "$get$TypeErrorDecoder_undefinedCa llPattern", "undefinedCallPattern", function() {
12982 return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallError On(void 0));
12983 }, "TypeErrorDecoder_undefinedLiteralCallPattern", "$get$TypeErrorDecoder_unde finedLiteralCallPattern", "undefinedLiteralCallPattern", function() {
12984 return H.TypeErrorDecoder_extractPattern(function() {
12985 var $argumentsExpr$ = '$arguments$';
12986 try {
12987 (void 0).$method$($argumentsExpr$);
12988 } catch (e) {
12989 return e.message;
12990 }
12991 }());
12992 }, "TypeErrorDecoder_nullPropertyPattern", "$get$TypeErrorDecoder_nullProperty Pattern", "nullPropertyPattern", function() {
12993 return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokePropertyE rrorOn(null));
12994 }, "TypeErrorDecoder_nullLiteralPropertyPattern", "$get$TypeErrorDecoder_nullL iteralPropertyPattern", "nullLiteralPropertyPattern", function() {
12995 return H.TypeErrorDecoder_extractPattern(function() {
12996 try {
12997 null.$method$;
12998 } catch (e) {
12999 return e.message;
13000 }
13001 }());
13002 }, "TypeErrorDecoder_undefinedPropertyPattern", "$get$TypeErrorDecoder_undefin edPropertyPattern", "undefinedPropertyPattern", function() {
13003 return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokePropertyE rrorOn(void 0));
13004 }, "TypeErrorDecoder_undefinedLiteralPropertyPattern", "$get$TypeErrorDecoder_ undefinedLiteralPropertyPattern", "undefinedLiteralPropertyPattern", function() {
13005 return H.TypeErrorDecoder_extractPattern(function() {
13006 try {
13007 (void 0).$method$;
13008 } catch (e) {
13009 return e.message;
13010 }
13011 }());
13012 }, "_AsyncRun_scheduleImmediateClosure", "$get$_AsyncRun_scheduleImmediateClos ure", "scheduleImmediateClosure", function() {
13013 return P._AsyncRun__initializeScheduleImmediate();
13014 }, "_toStringVisiting", "$get$_toStringVisiting", "_toStringVisiting", functio n() {
13015 return [];
13016 }, "_Html5NodeValidator__allowedElements", "$get$_Html5NodeValidator__allowedE lements", "_allowedElements", function() {
13017 return P.LinkedHashSet_LinkedHashSet$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", "STRON G", "SUB", "SUMMARY", "SUP", "TABLE", "TBODY", "TD", "TEXTAREA", "TFOOT", "TH", "THEAD", "TIME", "TR", "TRACK", "TT", "U", "UL", "VAR", "VIDEO", "WBR"], null);
13018 }, "_Html5NodeValidator__attributeValidators", "$get$_Html5NodeValidator__attr ibuteValidators", "_attributeValidators", function() {
13019 return P.LinkedHashMap__makeEmpty();
13020 }, "_urlRegex", "$get$_urlRegex", "_urlRegex", function() {
13021 return P.RegExp_RegExp("http://[^ ]*", true, false);
13022 }, "_escaper", "$get$_escaper", "_escaper", function() {
13023 return new P.HtmlEscape(C.HtmlEscapeMode_p2v);
13024 }, "CssClassSetImpl__validTokenRE", "$get$CssClassSetImpl__validTokenRE", "_va lidTokenRE", function() {
13025 return P.RegExp_RegExp("^\\S+$", true, false);
13026 }, "context", "$get$context", "context", function() {
13027 return new F.Context($.$get$Style_platform(), null);
13028 }, "Style_posix", "$get$Style_posix", "posix", function() {
13029 return new Z.PosixStyle("posix", "/", C.List_cSk, P.RegExp_RegExp("/", true, false), P.RegExp_RegExp("[^/]$", true, false), P.RegExp_RegExp("^/", true, fals e), null);
13030 }, "Style_windows", "$get$Style_windows", "windows", function() {
13031 return new T.WindowsStyle("windows", "\\", C.List_WnV, P.RegExp_RegExp("[/\\ \\]", true, false), P.RegExp_RegExp("[^/\\\\]$", true, false), P.RegExp_RegExp(" ^(\\\\\\\\[^\\\\]+\\\\[^\\\\/]+|[a-zA-Z]:[/\\\\])", true, false), P.RegExp_RegEx p("^[/\\\\](?![/\\\\])", true, false));
13032 }, "Style_url", "$get$Style_url", "url", function() {
13033 return new E.UrlStyle("url", "/", C.List_cSk, P.RegExp_RegExp("/", true, fal se), P.RegExp_RegExp("(^[a-zA-Z][-+.a-zA-Z\\d]*://|[^/])$", true, false), P.RegE xp_RegExp("[a-zA-Z][-+.a-zA-Z\\d]*://[^/]*", true, false), P.RegExp_RegExp("^/", true, false));
13034 }, "Style_platform", "$get$Style_platform", "platform", function() {
13035 return S.Style__getPlatformStyle();
13036 }]);
13037 Isolate = Isolate.$finishIsolateConstructor(Isolate);
13038 $ = new Isolate();
13039 init.metadata = [null];
13040 init.types = [{func: 1, args: [,]}, {func: 1}, {func: 1, void: true}, {func: 1 , args: [,,]}, {func: 1, void: true, args: [{func: 1, void: true}]}, {func: 1, a rgs: [, P.StackTrace]}, {func: 1, void: true, args: [P.Object], opt: [P.StackTra ce]}, {func: 1, args: [,], opt: [,]}, {func: 1, ret: P.String, args: [P.$int]}, {func: 1, ret: P.String, args: [P.String]}, {func: 1, ret: P.bool, args: [W.Elem ent, P.String, P.String, W._Html5NodeValidator]}, {func: 1, args: [, P.String]}, {func: 1, args: [P.String]}, {func: 1, args: [{func: 1, void: true}]}, {func: 1 , args: [P.$int,,]}, {func: 1, void: true, args: [,], opt: [P.StackTrace]}, {fun c: 1, ret: P.bool}, {func: 1, args: [P.bool]}, {func: 1, void: true, args: [, P. StackTrace]}, {func: 1, ret: P.$int, args: [, P.$int]}, {func: 1, void: true, ar gs: [P.$int, P.$int]}, {func: 1, args: [P.Symbol,,]}, {func: 1, ret: P.$int, arg s: [,,]}, {func: 1, void: true, args: [P.String]}, {func: 1, void: true, args: [ P.String], opt: [,]}, {func: 1, ret: P.$int, args: [P.$int, P.$int]}, {func: 1, args: [W.HttpRequest]}, {func: 1, void: true, args: [W.Node, W.Node]}, {func: 1, ret: P.String, args: [P.String], named: {color: null}}, {func: 1, ret: X.Packag eSummary, args: [P.Map]}, {func: 1, ret: X.LibrarySummary, args: [P.Map]}, {func : 1, ret: X.MessageSummary, args: [P.Map]}];
13041 function convertToFastObject(properties) {
13042 function MyClass() {
13043 }
13044 MyClass.prototype = properties;
13045 new MyClass();
13046 return properties;
13047 }
13048 function convertToSlowObject(properties) {
13049 properties.__MAGIC_SLOW_PROPERTY = 1;
13050 delete properties.__MAGIC_SLOW_PROPERTY;
13051 return properties;
13052 }
13053 A = convertToFastObject(A);
13054 B = convertToFastObject(B);
13055 C = convertToFastObject(C);
13056 D = convertToFastObject(D);
13057 E = convertToFastObject(E);
13058 F = convertToFastObject(F);
13059 G = convertToFastObject(G);
13060 H = convertToFastObject(H);
13061 J = convertToFastObject(J);
13062 K = convertToFastObject(K);
13063 L = convertToFastObject(L);
13064 M = convertToFastObject(M);
13065 N = convertToFastObject(N);
13066 O = convertToFastObject(O);
13067 P = convertToFastObject(P);
13068 Q = convertToFastObject(Q);
13069 R = convertToFastObject(R);
13070 S = convertToFastObject(S);
13071 T = convertToFastObject(T);
13072 U = convertToFastObject(U);
13073 V = convertToFastObject(V);
13074 W = convertToFastObject(W);
13075 X = convertToFastObject(X);
13076 Y = convertToFastObject(Y);
13077 Z = convertToFastObject(Z);
13078 function init() {
13079 Isolate.$isolateProperties = Object.create(null);
13080 init.allClasses = map();
13081 init.getTypeFromName = function(name) {
13082 return init.allClasses[name];
13083 };
13084 init.interceptorsByTag = map();
13085 init.leafTags = map();
13086 init.finishedClasses = map();
13087 Isolate.$lazy = function(fieldName, getterName, lazyValue, staticName, proto type) {
13088 if (!init.lazies)
13089 init.lazies = Object.create(null);
13090 init.lazies[fieldName] = getterName;
13091 prototype = prototype || Isolate.$isolateProperties;
13092 var sentinelUndefined = {};
13093 var sentinelInProgress = {};
13094 prototype[fieldName] = sentinelUndefined;
13095 prototype[getterName] = function() {
13096 var result = this[fieldName];
13097 try {
13098 if (result === sentinelUndefined) {
13099 this[fieldName] = sentinelInProgress;
13100 try {
13101 result = this[fieldName] = lazyValue();
13102 } finally {
13103 if (result === sentinelUndefined)
13104 this[fieldName] = null;
13105 }
13106 } else
13107 if (result === sentinelInProgress)
13108 H.throwCyclicInit(staticName || fieldName);
13109 return result;
13110 } finally {
13111 this[getterName] = function() {
13112 return this[fieldName];
13113 };
13114 }
13115 };
13116 };
13117 Isolate.$finishIsolateConstructor = function(oldIsolate) {
13118 var isolateProperties = oldIsolate.$isolateProperties;
13119 function Isolate() {
13120 var staticNames = Object.keys(isolateProperties);
13121 for (var i = 0; i < staticNames.length; i++) {
13122 var staticName = staticNames[i];
13123 this[staticName] = isolateProperties[staticName];
13124 }
13125 var lazies = init.lazies;
13126 var lazyInitializers = lazies ? Object.keys(lazies) : [];
13127 for (var i = 0; i < lazyInitializers.length; i++)
13128 this[lazies[lazyInitializers[i]]] = null;
13129 function ForceEfficientMap() {
13130 }
13131 ForceEfficientMap.prototype = this;
13132 new ForceEfficientMap();
13133 for (var i = 0; i < lazyInitializers.length; i++) {
13134 var lazyInitName = lazies[lazyInitializers[i]];
13135 this[lazyInitName] = isolateProperties[lazyInitName];
13136 }
13137 }
13138 Isolate.prototype = oldIsolate.prototype;
13139 Isolate.prototype.constructor = Isolate;
13140 Isolate.$isolateProperties = isolateProperties;
13141 Isolate.makeConstantList = oldIsolate.makeConstantList;
13142 Isolate.functionThatReturnsNull = oldIsolate.functionThatReturnsNull;
13143 return Isolate;
13144 };
13145 }
13146 !function() {
13147 var intern = function(s) {
13148 var o = {};
13149 o[s] = 1;
13150 return Object.keys(convertToFastObject(o))[0];
13151 };
13152 init.getIsolateTag = function(name) {
13153 return intern("___dart_" + name + init.isolateTag);
13154 };
13155 var tableProperty = "___dart_isolate_tags_";
13156 var usedProperties = Object[tableProperty] || (Object[tableProperty] = Objec t.create(null));
13157 var rootProperty = "_ZxYxX";
13158 for (var i = 0;; i++) {
13159 var property = intern(rootProperty + "_" + i + "_");
13160 if (!(property in usedProperties)) {
13161 usedProperties[property] = 1;
13162 init.isolateTag = property;
13163 break;
13164 }
13165 }
13166 init.dispatchPropertyName = init.getIsolateTag("dispatch_record");
13167 }();
13168 // BEGIN invoke [main].
13169 (function(callback) {
13170 if (typeof document === "undefined") {
13171 callback(null);
13172 return;
13173 }
13174 if (typeof document.currentScript != 'undefined') {
13175 callback(document.currentScript);
13176 return;
13177 }
13178 var scripts = document.scripts;
13179 function onLoad(event) {
13180 for (var i = 0; i < scripts.length; ++i)
13181 scripts[i].removeEventListener("load", onLoad, false);
13182 callback(event.target);
13183 }
13184 for (var i = 0; i < scripts.length; ++i)
13185 scripts[i].addEventListener("load", onLoad, false);
13186 })(function(currentScript) {
13187 init.currentScript = currentScript;
13188 if (typeof dartMainRunner === "function")
13189 dartMainRunner(function(a) {
13190 H.startRootIsolate(K.messages__main$closure(), a);
13191 }, []);
13192 else
13193 (function(a) {
13194 H.startRootIsolate(K.messages__main$closure(), a);
13195 })([]);
13196 });
13197 // END invoke [main].
13198 })();
13199
13200 //# sourceMappingURL=messages_widget.js.map
OLDNEW
« no previous file with comments | « lib/runtime/messages_widget.dart ('k') | lib/runtime/messages_widget.js.map » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698