blob: 2a1abd7601616de7b140053af0ed2bf261e09466 [file] [log] [blame] [edit]
dart_library.library('angular2/angular2',null,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx});dart_library.library('angular2/annotations',null,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx});dart_library.library('angular2/change_detection',null,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx});dart_library.library('angular2/core',null,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx});dart_library.library('angular2/di',null,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx});dart_library.library('angular2/directives',null,["dart_runtime/dart",'angular2/src/directives/ng_if','angular2/src/directives/ng_non_bindable','angular2/src/directives/ng_switch','dart/core'],['angular2/src/directives/ng_for'],function(exports,dart,ng_if,ng_non_bindable,ng_switch,core,ng_for){'use strict';let dartx=dart.dartx;dart.defineLazyProperties(exports,{get coreDirectives(){return dart.const(dart.list([ng_for.NgFor,ng_if.NgIf,ng_non_bindable.NgNonBindable,ng_switch.NgSwitch,ng_switch.NgSwitchWhen,ng_switch.NgSwitchDefault],core.Type))},set coreDirectives(_){}})});dart_library.library('angular2/forms',null,["dart_runtime/dart",'angular2/src/forms/form_builder','dart/core'],[],function(exports,dart,form_builder,core){'use strict';let dartx=dart.dartx;let formInjectables=dart.const(dart.list([form_builder.FormBuilder],core.Type));exports.formInjectables=formInjectables});dart_library.library('angular2/http',null,["dart_runtime/dart",'angular2/src/di/binding','angular2/src/http/interfaces','angular2/src/http/backends/xhr_backend','angular2/src/http/backends/browser_xhr','angular2/src/http/base_request_options','angular2/src/http/base_response_options','angular2/src/http/http'],[],function(exports,dart,binding,interfaces,xhr_backend,browser_xhr,base_request_options,base_response_options,http){'use strict';let dartx=dart.dartx;dart.defineLazyProperties(exports,{get httpInjectables(){return[binding.bind(interfaces.ConnectionBackend).toClass(xhr_backend.XHRBackend),browser_xhr.BrowserXhr,binding.bind(base_request_options.RequestOptions).toClass(base_request_options.BaseRequestOptions),binding.bind(base_response_options.ResponseOptions).toClass(base_response_options.BaseResponseOptions),http.Http]},set httpInjectables(_){}})});dart_library.library('angular2/render',null,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx});dart_library.library('angular2/src/change_detection/abstract_change_detector',null,["dart_runtime/dart",'dart/core','angular2/src/change_detection/change_detector_ref','angular2/src/facade/collection','angular2/src/change_detection/constants','angular2/src/facade/lang','angular2/src/change_detection/exceptions','angular2/src/change_detection/interfaces','angular2/src/change_detection/parser/locals','angular2/src/change_detection/proto_record'],[],function(exports,dart,core,change_detector_ref,collection,constants,lang,exceptions,interfaces,locals,proto_record){'use strict';let dartx=dart.dartx;let _detectChanges=Symbol('_detectChanges');let _detectChangesInLightDomChildren=Symbol('_detectChangesInLightDomChildren');let _detectChangesInShadowDomChildren=Symbol('_detectChangesInShadowDomChildren');class AbstractChangeDetector extends core.Object{AbstractChangeDetector(id){this.lightDomChildren=[];this.shadowDomChildren=[];this.id=id;this.parent=null;this.mode=null;this.ref=null;this.ref=new change_detector_ref.ChangeDetectorRef(this)}addChild(cd){this.lightDomChildren[dartx.add](cd);cd.parent=this}removeChild(cd){collection.ListWrapper.remove(this.lightDomChildren,cd)}addShadowDomChild(cd){this.shadowDomChildren[dartx.add](cd);cd.parent=this}removeShadowDomChild(cd){collection.ListWrapper.remove(this.shadowDomChildren,cd)}remove(){this.parent.removeChild(this)}detectChanges(){this[_detectChanges](false)}checkNoChanges(){this[_detectChanges](true)}[_detectChanges](throwOnChange){if(dart.notNull(core.identical(this.mode,constants.DETACHED))||dart.notNull(core.identical(this.mode,constants.CHECKED)))return;this.detectChangesInRecords(throwOnChange);this[_detectChangesInLightDomChildren](throwOnChange);if(dart.notNull(core.identical(throwOnChange,false)))this.callOnAllChangesDone();this[_detectChangesInShadowDomChildren](throwOnChange);if(dart.notNull(core.identical(this.mode,constants.CHECK_ONCE)))this.mode=constants.CHECKED;}detectChangesInRecords(throwOnChange){}hydrate(context,locals,directives){}dehydrate(){}callOnAllChangesDone(){}[_detectChangesInLightDomChildren](throwOnChange){let c=this.lightDomChildren;for(let i=0;dart.notNull(i)<dart.notNull(c[dartx.length]);i=dart.notNull(i)+1){dart.dsend(c[dartx.get](i),_detectChanges,throwOnChange)}}[_detectChangesInShadowDomChildren](throwOnChange){let c=this.shadowDomChildren;for(let i=0;dart.notNull(i)<dart.notNull(c[dartx.length]);i=dart.notNull(i)+1){dart.dsend(c[dartx.get](i),_detectChanges,throwOnChange)}}markAsCheckOnce(){this.mode=constants.CHECK_ONCE}markPathToRootAsCheckOnce(){let c=this;while(dart.notNull(lang.isPresent(c))&&c.mode!=constants.DETACHED){if(dart.notNull(core.identical(c.mode,constants.CHECKED)))c.mode=constants.CHECK_ONCE;c=c.parent}}throwError(proto,exception,stack){dart.throw(new exceptions.ChangeDetectionError(proto,exception,stack))}};AbstractChangeDetector[dart.implements]=()=>[interfaces.ChangeDetector];dart.setSignature(AbstractChangeDetector,{constructors:()=>({AbstractChangeDetector:[AbstractChangeDetector,[core.String]]}),methods:()=>({[_detectChangesInShadowDomChildren]:[dart.void,[core.bool]],[_detectChangesInLightDomChildren]:[dart.void,[core.bool]],[_detectChanges]:[dart.void,[core.bool]],addChild:[dart.void,[interfaces.ChangeDetector]],addShadowDomChild:[dart.void,[interfaces.ChangeDetector]],callOnAllChangesDone:[dart.void,[]],checkNoChanges:[dart.void,[]],dehydrate:[dart.void,[]],detectChanges:[dart.void,[]],detectChangesInRecords:[dart.void,[core.bool]],hydrate:[dart.void,[dart.dynamic,locals.Locals,dart.dynamic]],markAsCheckOnce:[dart.void,[]],markPathToRootAsCheckOnce:[dart.void,[]],remove:[dart.void,[]],removeChild:[dart.void,[interfaces.ChangeDetector]],removeShadowDomChild:[dart.void,[interfaces.ChangeDetector]],throwError:[dart.void,[proto_record.ProtoRecord,dart.dynamic,dart.dynamic]]})});exports.AbstractChangeDetector=AbstractChangeDetector});dart_library.library('angular2/src/change_detection/binding_record',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/change_detection/parser/ast','angular2/src/reflection/types','angular2/src/change_detection/directive_record'],[],function(exports,dart,core,lang,ast,types,directive_record){'use strict';let dartx=dart.dartx;let DIRECTIVE="directive";let DIRECTIVE_LIFECYCLE="directiveLifecycle";let ELEMENT_PROPERTY="elementProperty";let ELEMENT_ATTRIBUTE="elementAttribute";let ELEMENT_CLASS="elementClass";let ELEMENT_STYLE="elementStyle";let TEXT_NODE="textNode";class BindingRecord extends core.Object{BindingRecord(mode,implicitReceiver,ast,elementIndex,propertyName,propertyUnit,setter,lifecycleEvent,directiveRecord){this.mode=mode;this.implicitReceiver=implicitReceiver;this.ast=ast;this.elementIndex=elementIndex;this.propertyName=propertyName;this.propertyUnit=propertyUnit;this.setter=setter;this.lifecycleEvent=lifecycleEvent;this.directiveRecord=directiveRecord}callOnChange(){return dart.notNull(lang.isPresent(this.directiveRecord))&&dart.notNull(this.directiveRecord.callOnChange)}isOnPushChangeDetection(){return dart.notNull(lang.isPresent(this.directiveRecord))&&dart.notNull(this.directiveRecord.isOnPushChangeDetection())}isDirective(){return core.identical(this.mode,DIRECTIVE)}isDirectiveLifecycle(){return core.identical(this.mode,DIRECTIVE_LIFECYCLE)}isElementProperty(){return core.identical(this.mode,ELEMENT_PROPERTY)}isElementAttribute(){return core.identical(this.mode,ELEMENT_ATTRIBUTE)}isElementClass(){return core.identical(this.mode,ELEMENT_CLASS)}isElementStyle(){return core.identical(this.mode,ELEMENT_STYLE)}isTextNode(){return core.identical(this.mode,TEXT_NODE)}static createForDirective(ast,propertyName,setter,directiveRecord){return new BindingRecord(DIRECTIVE,0,ast,0,propertyName,null,setter,null,directiveRecord)}static createDirectiveOnCheck(directiveRecord){return new BindingRecord(DIRECTIVE_LIFECYCLE,0,null,0,null,null,null,"onCheck",directiveRecord)}static createDirectiveOnInit(directiveRecord){return new BindingRecord(DIRECTIVE_LIFECYCLE,0,null,0,null,null,null,"onInit",directiveRecord)}static createDirectiveOnChange(directiveRecord){return new BindingRecord(DIRECTIVE_LIFECYCLE,0,null,0,null,null,null,"onChange",directiveRecord)}static createForElementProperty(ast,elementIndex,propertyName){return new BindingRecord(ELEMENT_PROPERTY,0,ast,elementIndex,propertyName,null,null,null,null)}static createForElementAttribute(ast,elementIndex,attributeName){return new BindingRecord(ELEMENT_ATTRIBUTE,0,ast,elementIndex,attributeName,null,null,null,null)}static createForElementClass(ast,elementIndex,className){return new BindingRecord(ELEMENT_CLASS,0,ast,elementIndex,className,null,null,null,null)}static createForElementStyle(ast,elementIndex,styleName,unit){return new BindingRecord(ELEMENT_STYLE,0,ast,elementIndex,styleName,unit,null,null,null)}static createForHostProperty(directiveIndex,ast,propertyName){return new BindingRecord(ELEMENT_PROPERTY,directiveIndex,ast,directiveIndex.elementIndex,propertyName,null,null,null,null)}static createForHostAttribute(directiveIndex,ast,attributeName){return new BindingRecord(ELEMENT_ATTRIBUTE,directiveIndex,ast,directiveIndex.elementIndex,attributeName,null,null,null,null)}static createForHostClass(directiveIndex,ast,className){return new BindingRecord(ELEMENT_CLASS,directiveIndex,ast,directiveIndex.elementIndex,className,null,null,null,null)}static createForHostStyle(directiveIndex,ast,styleName,unit){return new BindingRecord(ELEMENT_STYLE,directiveIndex,ast,directiveIndex.elementIndex,styleName,unit,null,null,null)}static createForTextNode(ast,elementIndex){return new BindingRecord(TEXT_NODE,0,ast,elementIndex,null,null,null,null,null)}};dart.setSignature(BindingRecord,{constructors:()=>({BindingRecord:[BindingRecord,[core.String,dart.dynamic,ast.AST,core.num,core.String,core.String,types.SetterFn,core.String,directive_record.DirectiveRecord]]}),methods:()=>({callOnChange:[core.bool,[]],isDirective:[core.bool,[]],isDirectiveLifecycle:[core.bool,[]],isElementAttribute:[core.bool,[]],isElementClass:[core.bool,[]],isElementProperty:[core.bool,[]],isElementStyle:[core.bool,[]],isOnPushChangeDetection:[core.bool,[]],isTextNode:[core.bool,[]]}),names:['createForDirective','createDirectiveOnCheck','createDirectiveOnInit','createDirectiveOnChange','createForElementProperty','createForElementAttribute','createForElementClass','createForElementStyle','createForHostProperty','createForHostAttribute','createForHostClass','createForHostStyle','createForTextNode'],statics:()=>({createDirectiveOnChange:[BindingRecord,[directive_record.DirectiveRecord]],createDirectiveOnCheck:[BindingRecord,[directive_record.DirectiveRecord]],createDirectiveOnInit:[BindingRecord,[directive_record.DirectiveRecord]],createForDirective:[BindingRecord,[ast.AST,core.String,types.SetterFn,directive_record.DirectiveRecord]],createForElementAttribute:[BindingRecord,[ast.AST,core.num,core.String]],createForElementClass:[BindingRecord,[ast.AST,core.num,core.String]],createForElementProperty:[BindingRecord,[ast.AST,core.num,core.String]],createForElementStyle:[BindingRecord,[ast.AST,core.num,core.String,core.String]],createForHostAttribute:[BindingRecord,[directive_record.DirectiveIndex,ast.AST,core.String]],createForHostClass:[BindingRecord,[directive_record.DirectiveIndex,ast.AST,core.String]],createForHostProperty:[BindingRecord,[directive_record.DirectiveIndex,ast.AST,core.String]],createForHostStyle:[BindingRecord,[directive_record.DirectiveIndex,ast.AST,core.String,core.String]],createForTextNode:[BindingRecord,[ast.AST,core.num]]})});exports.DIRECTIVE=DIRECTIVE;exports.DIRECTIVE_LIFECYCLE=DIRECTIVE_LIFECYCLE;exports.ELEMENT_PROPERTY=ELEMENT_PROPERTY;exports.ELEMENT_ATTRIBUTE=ELEMENT_ATTRIBUTE;exports.ELEMENT_CLASS=ELEMENT_CLASS;exports.ELEMENT_STYLE=ELEMENT_STYLE;exports.TEXT_NODE=TEXT_NODE;exports.BindingRecord=BindingRecord});dart_library.library('angular2/src/change_detection/change_detection',null,["dart_runtime/dart",'angular2/src/change_detection/pipes/keyvalue_changes','angular2/src/change_detection/pipes/null_pipe','angular2/src/change_detection/pipes/pipe','angular2/src/change_detection/pipes/iterable_changes','angular2/src/change_detection/pipes/observable_pipe','angular2/src/change_detection/pipes/promise_pipe','angular2/src/change_detection/pipes/uppercase_pipe','angular2/src/change_detection/pipes/lowercase_pipe','angular2/src/change_detection/pipes/json_pipe','angular2/src/change_detection/pipes/limit_to_pipe','angular2/src/di/opaque_token','angular2/src/change_detection/interfaces','angular2/src/facade/lang','angular2/src/facade/collection','dart/core','angular2/src/change_detection/pipes/pipe_registry','angular2/src/di/annotations_impl','angular2/src/change_detection/proto_change_detector','angular2/src/change_detection/jit_proto_change_detector'],['angular2/src/change_detection/pregen_proto_change_detector'],function(exports,dart,keyvalue_changes,null_pipe,pipe,iterable_changes,observable_pipe,promise_pipe,uppercase_pipe,lowercase_pipe,json_pipe,limit_to_pipe,opaque_token,interfaces,lang,collection,core,pipe_registry,annotations_impl,proto_change_detector,jit_proto_change_detector,pregen_proto_change_detector){'use strict';let dartx=dart.dartx;let keyValDiff=dart.const(dart.list([dart.const(new keyvalue_changes.KeyValueChangesFactory()),dart.const(new null_pipe.NullPipeFactory())],pipe.PipeFactory));let iterableDiff=dart.const(dart.list([dart.const(new iterable_changes.IterableChangesFactory()),dart.const(new null_pipe.NullPipeFactory())],pipe.PipeFactory));let async=dart.const(dart.list([dart.const(new observable_pipe.ObservablePipeFactory()),dart.const(new promise_pipe.PromisePipeFactory()),dart.const(new null_pipe.NullPipeFactory())],pipe.PipeFactory));let uppercase=dart.const(dart.list([dart.const(new uppercase_pipe.UpperCaseFactory()),dart.const(new null_pipe.NullPipeFactory())],pipe.PipeFactory));let lowercase=dart.const(dart.list([dart.const(new lowercase_pipe.LowerCaseFactory()),dart.const(new null_pipe.NullPipeFactory())],pipe.PipeFactory));let json=dart.const(dart.list([dart.const(new json_pipe.JsonPipe()),dart.const(new null_pipe.NullPipeFactory())],pipe.PipeFactory));let limitTo=dart.const(dart.list([dart.const(new limit_to_pipe.LimitToPipeFactory()),dart.const(new null_pipe.NullPipeFactory())],pipe.PipeFactory));let defaultPipes=dart.const(dart.map({async:async,iterableDiff:iterableDiff,json:json,keyValDiff:keyValDiff,limitTo:limitTo,lowercase:lowercase,uppercase:uppercase}));let PROTO_CHANGE_DETECTOR_KEY=dart.const(new opaque_token.OpaqueToken("ProtoChangeDetectors"));dart.defineLazyProperties(exports,{get preGeneratedProtoDetectors(){return dart.map()},set preGeneratedProtoDetectors(_){}});let _dynamicChangeDetection=Symbol('_dynamicChangeDetection');let _protoChangeDetectorFactories=Symbol('_protoChangeDetectorFactories');class PreGeneratedChangeDetection extends interfaces.ChangeDetection{PreGeneratedChangeDetection(registry,protoChangeDetectorsForTest){if(protoChangeDetectorsForTest===void 0)protoChangeDetectorsForTest=null;this.registry=registry;this[_dynamicChangeDetection]=null;this[_protoChangeDetectorFactories]=null;super.ChangeDetection();;this[_dynamicChangeDetection]=new DynamicChangeDetection(this.registry);this[_protoChangeDetectorFactories]=dart.notNull(lang.isPresent(protoChangeDetectorsForTest))?protoChangeDetectorsForTest:exports.preGeneratedProtoDetectors}static isSupported(){return pregen_proto_change_detector.PregenProtoChangeDetector.isSupported()}createProtoChangeDetector(definition){let id=definition.id;if(dart.notNull(collection.StringMapWrapper.contains(this[_protoChangeDetectorFactories],id))){return dart.as(dart.dcall(collection.StringMapWrapper.get(this[_protoChangeDetectorFactories],id),this.registry,definition),interfaces.ProtoChangeDetector)}return this[_dynamicChangeDetection].createProtoChangeDetector(definition)}};dart.setSignature(PreGeneratedChangeDetection,{constructors:()=>({PreGeneratedChangeDetection:[PreGeneratedChangeDetection,[pipe_registry.PipeRegistry],[[core.Map$(core.String,core.Function),dart.const(new annotations_impl.Inject(PROTO_CHANGE_DETECTOR_KEY)),dart.const(new annotations_impl.Optional())]]]}),names:['isSupported'],statics:()=>({isSupported:[core.bool,[]]})});PreGeneratedChangeDetection[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];class DynamicChangeDetection extends interfaces.ChangeDetection{DynamicChangeDetection(registry){this.registry=registry;super.ChangeDetection();}createProtoChangeDetector(definition){return new proto_change_detector.DynamicProtoChangeDetector(this.registry,definition)}};dart.setSignature(DynamicChangeDetection,{constructors:()=>({DynamicChangeDetection:[DynamicChangeDetection,[pipe_registry.PipeRegistry]]})});DynamicChangeDetection[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];class JitChangeDetection extends interfaces.ChangeDetection{JitChangeDetection(registry){this.registry=registry;super.ChangeDetection()}static isSupported(){return jit_proto_change_detector.JitProtoChangeDetector.isSupported()}createProtoChangeDetector(definition){return new jit_proto_change_detector.JitProtoChangeDetector(this.registry,definition)}};dart.setSignature(JitChangeDetection,{constructors:()=>({JitChangeDetection:[JitChangeDetection,[pipe_registry.PipeRegistry]]}),names:['isSupported'],statics:()=>({isSupported:[core.bool,[]]})});JitChangeDetection[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];let defaultPipeRegistry=dart.const(new pipe_registry.PipeRegistry(defaultPipes));exports.keyValDiff=keyValDiff;exports.iterableDiff=iterableDiff;exports.async=async;exports.uppercase=uppercase;exports.lowercase=lowercase;exports.json=json;exports.limitTo=limitTo;exports.defaultPipes=defaultPipes;exports.PROTO_CHANGE_DETECTOR_KEY=PROTO_CHANGE_DETECTOR_KEY;exports.PreGeneratedChangeDetection=PreGeneratedChangeDetection;exports.DynamicChangeDetection=DynamicChangeDetection;exports.JitChangeDetection=JitChangeDetection;exports.defaultPipeRegistry=defaultPipeRegistry});dart_library.library('angular2/src/change_detection/change_detection_util',null,["dart_runtime/dart",'dart/core','angular2/src/facade/collection','angular2/src/facade/lang','angular2/src/change_detection/pipes/pipe','angular2/src/change_detection/exceptions','angular2/src/change_detection/constants','angular2/src/change_detection/proto_record'],[],function(exports,dart,core,collection,lang,pipe,exceptions,constants,proto_record){'use strict';let dartx=dart.dartx;dart.defineLazyProperties(exports,{get uninitialized(){return new core.Object()},set uninitialized(_){}});class SimpleChange extends core.Object{SimpleChange(previousValue,currentValue){this.previousValue=previousValue;this.currentValue=currentValue}};dart.setSignature(SimpleChange,{constructors:()=>({SimpleChange:[SimpleChange,[dart.dynamic,dart.dynamic]]})});exports._simpleChangesIndex=0;dart.defineLazyProperties(exports,{get _simpleChanges(){return[new SimpleChange(null,null),new SimpleChange(null,null),new SimpleChange(null,null),new SimpleChange(null,null),new SimpleChange(null,null),new SimpleChange(null,null),new SimpleChange(null,null),new SimpleChange(null,null),new SimpleChange(null,null),new SimpleChange(null,null),new SimpleChange(null,null),new SimpleChange(null,null),new SimpleChange(null,null),new SimpleChange(null,null),new SimpleChange(null,null),new SimpleChange(null,null),new SimpleChange(null,null),new SimpleChange(null,null),new SimpleChange(null,null),new SimpleChange(null,null)]},set _simpleChanges(_){}});function _simpleChange(previousValue,currentValue){let index=(()=>{let x=exports._simpleChangesIndex;exports._simpleChangesIndex=dart.notNull(x)+1;return x})()%20;let s=exports._simpleChanges[dartx.get](index);dart.dput(s,'previousValue',previousValue);dart.dput(s,'currentValue',currentValue);return dart.as(s,SimpleChange)}dart.fn(_simpleChange,SimpleChange,[dart.dynamic,dart.dynamic]);class ChangeDetectionUtil extends core.Object{static uninitialized(){return ChangeDetectionUtil.uninitialized}static arrayFn0(){return[]}static arrayFn1(a1){return[a1]}static arrayFn2(a1,a2){return[a1,a2]}static arrayFn3(a1,a2,a3){return[a1,a2,a3]}static arrayFn4(a1,a2,a3,a4){return[a1,a2,a3,a4]}static arrayFn5(a1,a2,a3,a4,a5){return[a1,a2,a3,a4,a5]}static arrayFn6(a1,a2,a3,a4,a5,a6){return[a1,a2,a3,a4,a5,a6]}static arrayFn7(a1,a2,a3,a4,a5,a6,a7){return[a1,a2,a3,a4,a5,a6,a7]}static arrayFn8(a1,a2,a3,a4,a5,a6,a7,a8){return[a1,a2,a3,a4,a5,a6,a7,a8]}static arrayFn9(a1,a2,a3,a4,a5,a6,a7,a8,a9){return[a1,a2,a3,a4,a5,a6,a7,a8,a9]}static operation_negate(value){return!dart.notNull(dart.as(value,core.bool))}static operation_add(left,right){return dart.dsend(left,'+',right)}static operation_subtract(left,right){return dart.dsend(left,'-',right)}static operation_multiply(left,right){return dart.dsend(left,'*',right)}static operation_divide(left,right){return dart.dsend(left,'/',right)}static operation_remainder(left,right){return dart.dsend(left,'%',right)}static operation_equals(left,right){return dart.equals(left,right)}static operation_not_equals(left,right){return!dart.equals(left,right)}static operation_identical(left,right){return core.identical(left,right)}static operation_not_identical(left,right){return!dart.notNull(core.identical(left,right))}static operation_less_then(left,right){return dart.dsend(left,'<',right)}static operation_greater_then(left,right){return dart.dsend(left,'>',right)}static operation_less_or_equals_then(left,right){return dart.dsend(left,'<=',right)}static operation_greater_or_equals_then(left,right){return dart.dsend(left,'>=',right)}static operation_logical_and(left,right){return dart.notNull(dart.as(left,core.bool))&&dart.notNull(dart.as(right,core.bool))}static operation_logical_or(left,right){return dart.notNull(dart.as(left,core.bool))||dart.notNull(dart.as(right,core.bool))}static cond(cond,trueVal,falseVal){return dart.notNull(dart.as(cond,core.bool))?trueVal:falseVal}static mapFn(keys){function buildMap(values){let res=collection.StringMapWrapper.create();for(let i=0;dart.notNull(i)<dart.notNull(keys[dartx.length]);i=dart.notNull(i)+1){collection.StringMapWrapper.set(res,keys[dartx.get](i),dart.dindex(values,i))}return res}dart.fn(buildMap,core.Map,[dart.dynamic]);switch(keys[dartx.length]){case 0:{return dart.fn(()=>[],core.List,[])}case 1:{return dart.fn(a1=>buildMap([a1]),core.Map,[dart.dynamic])}case 2:{return dart.fn((a1,a2)=>buildMap([a1,a2]),core.Map,[dart.dynamic,dart.dynamic])}case 3:{return dart.fn((a1,a2,a3)=>buildMap([a1,a2,a3]),core.Map,[dart.dynamic,dart.dynamic,dart.dynamic])}case 4:{return dart.fn((a1,a2,a3,a4)=>buildMap([a1,a2,a3,a4]),core.Map,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic])}case 5:{return dart.fn((a1,a2,a3,a4,a5)=>buildMap([a1,a2,a3,a4,a5]),core.Map,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic])}case 6:{return dart.fn((a1,a2,a3,a4,a5,a6)=>buildMap([a1,a2,a3,a4,a5,a6]),core.Map,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic])}case 7:{return dart.fn((a1,a2,a3,a4,a5,a6,a7)=>buildMap([a1,a2,a3,a4,a5,a6,a7]),core.Map,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic])}case 8:{return dart.fn((a1,a2,a3,a4,a5,a6,a7,a8)=>buildMap([a1,a2,a3,a4,a5,a6,a7,a8]),core.Map,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic])}case 9:{return dart.fn((a1,a2,a3,a4,a5,a6,a7,a8,a9)=>buildMap([a1,a2,a3,a4,a5,a6,a7,a8,a9]),core.Map,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic])}default:{dart.throw(new lang.BaseException('Does not support literal maps with more than 9 elements'))}}}static keyedAccess(obj,args){return dart.dindex(obj,dart.dindex(args,0))}static unwrapValue(value){if(dart.is(value,pipe.WrappedValue)){return dart.dload(value,'wrapped')}else{return value}}static throwOnChange(proto,change){dart.throw(new exceptions.ExpressionChangedAfterItHasBeenChecked(proto,change))}static throwDehydrated(){dart.throw(new exceptions.DehydratedException())}static changeDetectionMode(strategy){return strategy==constants.ON_PUSH?constants.CHECK_ONCE:constants.CHECK_ALWAYS}static simpleChange(previousValue,currentValue){return _simpleChange(previousValue,currentValue)}static addChange(changes,propertyName,change){if(dart.notNull(lang.isBlank(changes))){changes=dart.map()}dart.dsetindex(changes,propertyName,change);return dart.as(changes,core.Map)}static isValueBlank(value){return lang.isBlank(value)}};dart.setSignature(ChangeDetectionUtil,{names:['uninitialized','arrayFn0','arrayFn1','arrayFn2','arrayFn3','arrayFn4','arrayFn5','arrayFn6','arrayFn7','arrayFn8','arrayFn9','operation_negate','operation_add','operation_subtract','operation_multiply','operation_divide','operation_remainder','operation_equals','operation_not_equals','operation_identical','operation_not_identical','operation_less_then','operation_greater_then','operation_less_or_equals_then','operation_greater_or_equals_then','operation_logical_and','operation_logical_or','cond','mapFn','keyedAccess','unwrapValue','throwOnChange','throwDehydrated','changeDetectionMode','simpleChange','addChange','isValueBlank'],statics:()=>({addChange:[core.Map,[dart.dynamic,core.String,dart.dynamic]],arrayFn0:[core.List,[]],arrayFn1:[core.List,[dart.dynamic]],arrayFn2:[core.List,[dart.dynamic,dart.dynamic]],arrayFn3:[core.List,[dart.dynamic,dart.dynamic,dart.dynamic]],arrayFn4:[core.List,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]],arrayFn5:[core.List,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]],arrayFn6:[core.List,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]],arrayFn7:[core.List,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]],arrayFn8:[core.List,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]],arrayFn9:[core.List,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]],changeDetectionMode:[core.String,[core.String]],cond:[dart.dynamic,[dart.dynamic,dart.dynamic,dart.dynamic]],isValueBlank:[core.bool,[dart.dynamic]],keyedAccess:[dart.dynamic,[dart.dynamic,dart.dynamic]],mapFn:[dart.dynamic,[core.List]],operation_add:[dart.dynamic,[dart.dynamic,dart.dynamic]],operation_divide:[dart.dynamic,[dart.dynamic,dart.dynamic]],operation_equals:[dart.dynamic,[dart.dynamic,dart.dynamic]],operation_greater_or_equals_then:[dart.dynamic,[dart.dynamic,dart.dynamic]],operation_greater_then:[dart.dynamic,[dart.dynamic,dart.dynamic]],operation_identical:[dart.dynamic,[dart.dynamic,dart.dynamic]],operation_less_or_equals_then:[dart.dynamic,[dart.dynamic,dart.dynamic]],operation_less_then:[dart.dynamic,[dart.dynamic,dart.dynamic]],operation_logical_and:[dart.dynamic,[dart.dynamic,dart.dynamic]],operation_logical_or:[dart.dynamic,[dart.dynamic,dart.dynamic]],operation_multiply:[dart.dynamic,[dart.dynamic,dart.dynamic]],operation_negate:[dart.dynamic,[dart.dynamic]],operation_not_equals:[dart.dynamic,[dart.dynamic,dart.dynamic]],operation_not_identical:[dart.dynamic,[dart.dynamic,dart.dynamic]],operation_remainder:[dart.dynamic,[dart.dynamic,dart.dynamic]],operation_subtract:[dart.dynamic,[dart.dynamic,dart.dynamic]],simpleChange:[SimpleChange,[dart.dynamic,dart.dynamic]],throwDehydrated:[dart.dynamic,[]],throwOnChange:[dart.dynamic,[proto_record.ProtoRecord,dart.dynamic]],uninitialized:[core.Object,[]],unwrapValue:[dart.dynamic,[dart.dynamic]]})});exports.SimpleChange=SimpleChange;exports.ChangeDetectionUtil=ChangeDetectionUtil});dart_library.library('angular2/src/change_detection/change_detector_ref',null,["dart_runtime/dart",'dart/core','angular2/src/change_detection/constants','angular2/src/change_detection/interfaces'],[],function(exports,dart,core,constants,interfaces){'use strict';let dartx=dart.dartx;let _cd=Symbol('_cd');class ChangeDetectorRef extends core.Object{ChangeDetectorRef(cd){this[_cd]=cd}requestCheck(){this[_cd].markPathToRootAsCheckOnce()}detach(){this[_cd].mode=constants.DETACHED}reattach(){this[_cd].mode=constants.CHECK_ALWAYS;this.requestCheck()}};dart.setSignature(ChangeDetectorRef,{constructors:()=>({ChangeDetectorRef:[ChangeDetectorRef,[interfaces.ChangeDetector]]}),methods:()=>({detach:[dart.void,[]],reattach:[dart.void,[]],requestCheck:[dart.void,[]]})});exports.ChangeDetectorRef=ChangeDetectorRef});dart_library.library('angular2/src/change_detection/coalesce',null,["dart_runtime/dart",'angular2/src/change_detection/proto_record','dart/core','angular2/src/facade/lang','angular2/src/facade/collection'],[],function(exports,dart,proto_record,core,lang,collection){'use strict';let dartx=dart.dartx;function coalesce(records){let res=dart.list([],proto_record.ProtoRecord);let indexMap=core.Map$(core.num,core.num).new();for(let i=0;dart.notNull(i)<dart.notNull(records[dartx.length]);i=dart.notNull(i)+1){let r=records[dartx.get](i);let record=_replaceIndices(r,dart.notNull(res[dartx.length])+1,indexMap);let matchingRecord=_findMatching(dart.as(record,proto_record.ProtoRecord),res);if(dart.notNull(lang.isPresent(matchingRecord))&&dart.notNull(dart.as(dart.dload(record,'lastInBinding'),core.bool))){res[dartx.add](_selfRecord(dart.as(record,proto_record.ProtoRecord),dart.as(dart.dload(matchingRecord,'selfIndex'),core.num),dart.notNull(res[dartx.length])+1));indexMap.set(r.selfIndex,dart.as(dart.dload(matchingRecord,'selfIndex'),core.num))}else if(dart.notNull(lang.isPresent(matchingRecord))&& !dart.notNull(dart.as(dart.dload(record,'lastInBinding'),core.bool))){indexMap.set(r.selfIndex,dart.as(dart.dload(matchingRecord,'selfIndex'),core.num))}else{res[dartx.add](dart.as(record,proto_record.ProtoRecord));indexMap.set(r.selfIndex,dart.as(dart.dload(record,'selfIndex'),core.num))}}return res}dart.fn(coalesce,core.List$(proto_record.ProtoRecord),[core.List$(proto_record.ProtoRecord)]);function _selfRecord(r,contextIndex,selfIndex){return new proto_record.ProtoRecord(proto_record.RecordType.SELF,"self",null,[],r.fixedArgs,contextIndex,r.directiveIndex,selfIndex,r.bindingRecord,r.expressionAsString,r.lastInBinding,r.lastInDirective)}dart.fn(_selfRecord,proto_record.ProtoRecord,[proto_record.ProtoRecord,core.num,core.num]);function _findMatching(r,rs){return collection.ListWrapper.find(rs,dart.fn(rr=> !dart.notNull(core.identical(dart.dload(rr,'mode'),proto_record.RecordType.DIRECTIVE_LIFECYCLE))&&dart.notNull(_sameDirIndex(dart.as(rr,proto_record.ProtoRecord),r))&&dart.notNull(core.identical(dart.dload(rr,'mode'),r.mode))&&dart.notNull(core.identical(dart.dload(rr,'funcOrValue'),r.funcOrValue))&&dart.notNull(core.identical(dart.dload(rr,'contextIndex'),r.contextIndex))&&dart.notNull(core.identical(dart.dload(rr,'name'),r.name))&&dart.notNull(collection.ListWrapper.equals(dart.as(dart.dload(rr,'args'),core.List),r.args)),core.bool,[dart.dynamic]))}dart.fn(_findMatching,dart.dynamic,[proto_record.ProtoRecord,core.List$(proto_record.ProtoRecord)]);function _sameDirIndex(a,b){let di1=dart.notNull(lang.isBlank(a.directiveIndex))?null:a.directiveIndex.directiveIndex;let ei1=dart.notNull(lang.isBlank(a.directiveIndex))?null:a.directiveIndex.elementIndex;let di2=dart.notNull(lang.isBlank(b.directiveIndex))?null:b.directiveIndex.directiveIndex;let ei2=dart.notNull(lang.isBlank(b.directiveIndex))?null:b.directiveIndex.elementIndex;return dart.notNull(core.identical(di1,di2))&&dart.notNull(core.identical(ei1,ei2))}dart.fn(_sameDirIndex,core.bool,[proto_record.ProtoRecord,proto_record.ProtoRecord]);function _replaceIndices(r,selfIndex,indexMap){let args=collection.ListWrapper.map(r.args,dart.fn(a=>_map(indexMap,dart.as(a,core.num))));let contextIndex=_map(indexMap,r.contextIndex);return new proto_record.ProtoRecord(r.mode,r.name,r.funcOrValue,args,r.fixedArgs,dart.as(contextIndex,core.num),r.directiveIndex,selfIndex,r.bindingRecord,r.expressionAsString,r.lastInBinding,r.lastInDirective)}dart.fn(_replaceIndices,dart.dynamic,[proto_record.ProtoRecord,core.num,core.Map]);function _map(indexMap,value){let r=indexMap.get(value);return dart.notNull(lang.isPresent(r))?r:value}dart.fn(_map,dart.dynamic,[core.Map,core.num]);exports.coalesce=coalesce});dart_library.library('angular2/src/change_detection/constants',null,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx;let CHECK_ONCE="CHECK_ONCE";let CHECKED="CHECKED";let CHECK_ALWAYS="ALWAYS_CHECK";let DETACHED="DETACHED";let ON_PUSH="ON_PUSH";let DEFAULT="DEFAULT";exports.CHECK_ONCE=CHECK_ONCE;exports.CHECKED=CHECKED;exports.CHECK_ALWAYS=CHECK_ALWAYS;exports.DETACHED=DETACHED;exports.ON_PUSH=ON_PUSH;exports.DEFAULT=DEFAULT});dart_library.library('angular2/src/change_detection/directive_record',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/change_detection/constants'],[],function(exports,dart,core,lang,constants){'use strict';let dartx=dart.dartx;class DirectiveIndex extends core.Object{DirectiveIndex(elementIndex,directiveIndex){this.elementIndex=elementIndex;this.directiveIndex=directiveIndex}get name(){return `${this.elementIndex }_${this.directiveIndex }`}};dart.setSignature(DirectiveIndex,{constructors:()=>({DirectiveIndex:[DirectiveIndex,[core.num,core.num]]})});class DirectiveRecord extends core.Object{DirectiveRecord(opts){let directiveIndex=opts&&'directiveIndex'in opts?opts.directiveIndex:null;let callOnAllChangesDone=opts&&'callOnAllChangesDone'in opts?opts.callOnAllChangesDone:null;let callOnChange=opts&&'callOnChange'in opts?opts.callOnChange:null;let callOnCheck=opts&&'callOnCheck'in opts?opts.callOnCheck:null;let callOnInit=opts&&'callOnInit'in opts?opts.callOnInit:null;let changeDetection=opts&&'changeDetection'in opts?opts.changeDetection:null;this.directiveIndex=null;this.callOnAllChangesDone=null;this.callOnChange=null;this.callOnCheck=null;this.callOnInit=null;this.changeDetection=null;this.directiveIndex=dart.as(directiveIndex,DirectiveIndex);this.callOnAllChangesDone=lang.normalizeBool(dart.as(callOnAllChangesDone,core.bool));this.callOnChange=lang.normalizeBool(dart.as(callOnChange,core.bool));this.callOnCheck=lang.normalizeBool(dart.as(callOnCheck,core.bool));this.callOnInit=lang.normalizeBool(dart.as(callOnInit,core.bool));this.changeDetection=dart.as(changeDetection,core.String)}isOnPushChangeDetection(){return lang.StringWrapper.equals(this.changeDetection,constants.ON_PUSH)}};dart.setSignature(DirectiveRecord,{constructors:()=>({DirectiveRecord:[DirectiveRecord,[],{callOnAllChangesDone:dart.dynamic,callOnChange:dart.dynamic,callOnCheck:dart.dynamic,callOnInit:dart.dynamic,changeDetection:dart.dynamic,directiveIndex:dart.dynamic}]}),methods:()=>({isOnPushChangeDetection:[core.bool,[]]})});exports.DirectiveIndex=DirectiveIndex;exports.DirectiveRecord=DirectiveRecord});dart_library.library('angular2/src/change_detection/dynamic_change_detector',null,["dart_runtime/dart",'angular2/src/change_detection/abstract_change_detector','angular2/src/facade/collection','angular2/src/change_detection/change_detection_util','angular2/src/facade/lang','dart/core','angular2/src/change_detection/proto_record','angular2/src/change_detection/binding_record','angular2/src/change_detection/pipes/pipe_registry'],[],function(exports,dart,abstract_change_detector,collection,change_detection_util,lang,core,proto_record,binding_record,pipe_registry){'use strict';let dartx=dart.dartx;let _destroyPipes=Symbol('_destroyPipes');let _getDirectiveFor=Symbol('_getDirectiveFor');let _check=Symbol('_check');let _updateDirectiveOrElement=Symbol('_updateDirectiveOrElement');let _addChange=Symbol('_addChange');let _getDetectorFor=Symbol('_getDetectorFor');let _pipeCheck=Symbol('_pipeCheck');let _referenceCheck=Symbol('_referenceCheck');let _pureFuncAndArgsDidNotChange=Symbol('_pureFuncAndArgsDidNotChange');let _setChanged=Symbol('_setChanged');let _readSelf=Symbol('_readSelf');let _calculateCurrValue=Symbol('_calculateCurrValue');let _writeSelf=Symbol('_writeSelf');let _readContext=Symbol('_readContext');let _readArgs=Symbol('_readArgs');let _pipeFor=Symbol('_pipeFor');let _readPipe=Symbol('_readPipe');let _writePipe=Symbol('_writePipe');let _argsChanged=Symbol('_argsChanged');class DynamicChangeDetector extends abstract_change_detector.AbstractChangeDetector{DynamicChangeDetector(id,changeControlStrategy,dispatcher,pipeRegistry,protos,directiveRecords){this.changeControlStrategy=changeControlStrategy;this.dispatcher=dispatcher;this.pipeRegistry=pipeRegistry;this.protos=protos;this.directiveRecords=directiveRecords;this.locals=null;this.values=null;this.changes=null;this.pipes=null;this.prevContexts=null;this.directives=null;this.alreadyChecked=false;super.AbstractChangeDetector(id);;this.values=collection.ListWrapper.createFixedSize(dart.notNull(this.protos[dartx.length])+1);this.pipes=collection.ListWrapper.createFixedSize(dart.notNull(this.protos[dartx.length])+1);this.prevContexts=collection.ListWrapper.createFixedSize(dart.notNull(this.protos[dartx.length])+1);this.changes=collection.ListWrapper.createFixedSize(dart.notNull(this.protos[dartx.length])+1);this.values[dartx.set](0,null);collection.ListWrapper.fill(this.values,change_detection_util.uninitialized,1);collection.ListWrapper.fill(this.pipes,null);collection.ListWrapper.fill(this.prevContexts,change_detection_util.uninitialized);collection.ListWrapper.fill(this.changes,false)}hydrate(context,locals,directives){this.mode=change_detection_util.ChangeDetectionUtil.changeDetectionMode(this.changeControlStrategy);this.values[dartx.set](0,context);this.locals=locals;this.directives=directives;this.alreadyChecked=false}dehydrate(){this[_destroyPipes]();this.values[dartx.set](0,null);collection.ListWrapper.fill(this.values,change_detection_util.uninitialized,1);collection.ListWrapper.fill(this.changes,false);collection.ListWrapper.fill(this.pipes,null);collection.ListWrapper.fill(this.prevContexts,change_detection_util.uninitialized);this.locals=null}[_destroyPipes](){for(let i=0;dart.notNull(i)<dart.notNull(this.pipes[dartx.length]);i=dart.notNull(i)+1){if(dart.notNull(lang.isPresent(this.pipes[dartx.get](i)))){dart.dsend(this.pipes[dartx.get](i),'onDestroy')}}}hydrated(){return!dart.notNull(core.identical(this.values[dartx.get](0),null))}detectChangesInRecords(throwOnChange){if(!dart.notNull(this.hydrated())){change_detection_util.ChangeDetectionUtil.throwDehydrated()}let protos=this.protos;let changes=null;let isChanged=false;for(let i=0;dart.notNull(i)<dart.notNull(protos[dartx.length]);i=dart.notNull(i)+1){let proto=protos[dartx.get](i);let bindingRecord=proto.bindingRecord;let directiveRecord=bindingRecord.directiveRecord;if(dart.notNull(proto.isLifeCycleRecord())){if(dart.notNull(core.identical(proto.name,"onCheck"))&& !dart.notNull(throwOnChange)){dart.dsend(this[_getDirectiveFor](directiveRecord.directiveIndex),'onCheck')}else if(dart.notNull(core.identical(proto.name,"onInit"))&& !dart.notNull(throwOnChange)&& !dart.notNull(this.alreadyChecked)){dart.dsend(this[_getDirectiveFor](directiveRecord.directiveIndex),'onInit')}else if(dart.notNull(core.identical(proto.name,"onChange"))&&dart.notNull(lang.isPresent(changes))&& !dart.notNull(throwOnChange)){dart.dsend(this[_getDirectiveFor](directiveRecord.directiveIndex),'onChange',changes)}}else{let change=this[_check](proto,throwOnChange);if(dart.notNull(lang.isPresent(change))){this[_updateDirectiveOrElement](change,bindingRecord);isChanged=true;changes=this[_addChange](bindingRecord,change,changes)}}if(dart.notNull(proto.lastInDirective)){changes=null;if(dart.notNull(isChanged)&&dart.notNull(bindingRecord.isOnPushChangeDetection())){dart.dsend(this[_getDetectorFor](directiveRecord.directiveIndex),'markAsCheckOnce')}isChanged=false}}this.alreadyChecked=true}callOnAllChangesDone(){dart.dsend(this.dispatcher,'notifyOnAllChangesDone');let dirs=this.directiveRecords;for(let i=dart.notNull(dirs[dartx.length])-1;dart.notNull(i)>=0;i=dart.notNull(i)-1){let dir=dirs[dartx.get](i);if(dart.notNull(dart.as(dart.dload(dir,'callOnAllChangesDone'),core.bool))){dart.dsend(this[_getDirectiveFor](dart.dload(dir,'directiveIndex')),'onAllChangesDone')}}}[_updateDirectiveOrElement](change,bindingRecord){if(dart.notNull(lang.isBlank(dart.dload(bindingRecord,'directiveRecord')))){dart.dsend(this.dispatcher,'notifyOnBinding',bindingRecord,dart.dload(change,'currentValue'))}else{let directiveIndex=dart.dload(dart.dload(bindingRecord,'directiveRecord'),'directiveIndex');dart.dsend(bindingRecord,'setter',this[_getDirectiveFor](directiveIndex),dart.dload(change,'currentValue'))}}[_addChange](bindingRecord,change,changes){if(dart.notNull(bindingRecord.callOnChange())){return change_detection_util.ChangeDetectionUtil.addChange(changes,bindingRecord.propertyName,change)}else{return changes}}[_getDirectiveFor](directiveIndex){return dart.dsend(this.directives,'getDirectiveFor',directiveIndex)}[_getDetectorFor](directiveIndex){return dart.dsend(this.directives,'getDetectorFor',directiveIndex)}[_check](proto,throwOnChange){try{if(dart.notNull(proto.isPipeRecord())){return dart.as(this[_pipeCheck](proto,throwOnChange),change_detection_util.SimpleChange)}else{return dart.as(this[_referenceCheck](proto,throwOnChange),change_detection_util.SimpleChange)}}catch(e){let e_stack=dart.stackTrace(e);this.throwError(proto,e,e_stack)}}[_referenceCheck](proto,throwOnChange){if(dart.notNull(this[_pureFuncAndArgsDidNotChange](proto))){this[_setChanged](proto,false);return null}let prevValue=this[_readSelf](proto);let currValue=this[_calculateCurrValue](proto);if(!dart.notNull(isSame(prevValue,currValue))){if(dart.notNull(proto.lastInBinding)){let change=change_detection_util.ChangeDetectionUtil.simpleChange(prevValue,currValue);if(dart.notNull(throwOnChange))change_detection_util.ChangeDetectionUtil.throwOnChange(proto,change);this[_writeSelf](proto,currValue);this[_setChanged](proto,true);return change}else{this[_writeSelf](proto,currValue);this[_setChanged](proto,true);return null}}else{this[_setChanged](proto,false);return null}}[_calculateCurrValue](proto){switch(proto.mode){case proto_record.RecordType.SELF:{return this[_readContext](proto)}case proto_record.RecordType.CONST:{return proto.funcOrValue}case proto_record.RecordType.PROPERTY:{let context=this[_readContext](proto);return dart.dcall(proto.funcOrValue,context)}case proto_record.RecordType.SAFE_PROPERTY:{let context=this[_readContext](proto);return dart.notNull(lang.isBlank(context))?null:dart.dcall(proto.funcOrValue,context)}case proto_record.RecordType.LOCAL:{return this.locals.get(proto.name)}case proto_record.RecordType.INVOKE_METHOD:{let context=this[_readContext](proto);let args=this[_readArgs](proto);return dart.dcall(proto.funcOrValue,context,args)}case proto_record.RecordType.SAFE_INVOKE_METHOD:{let context=this[_readContext](proto);if(dart.notNull(lang.isBlank(context))){return null}let args=this[_readArgs](proto);return dart.dcall(proto.funcOrValue,context,args)}case proto_record.RecordType.KEYED_ACCESS:{let arg=dart.dindex(this[_readArgs](proto),0);return dart.dindex(this[_readContext](proto),arg)}case proto_record.RecordType.INVOKE_CLOSURE:{return lang.FunctionWrapper.apply(dart.as(this[_readContext](proto),core.Function),this[_readArgs](proto))}case proto_record.RecordType.INTERPOLATE:case proto_record.RecordType.PRIMITIVE_OP:{return lang.FunctionWrapper.apply(dart.as(proto.funcOrValue,core.Function),this[_readArgs](proto))}default:{dart.throw(new lang.BaseException(`Unknown operation ${proto.mode }`))}}}[_pipeCheck](proto,throwOnChange){let context=this[_readContext](proto);let args=this[_readArgs](proto);let pipe=this[_pipeFor](proto,context);let prevValue=this[_readSelf](proto);let currValue=dart.dsend(pipe,'transform',context,args);if(!dart.notNull(isSame(prevValue,currValue))){currValue=change_detection_util.ChangeDetectionUtil.unwrapValue(currValue);if(dart.notNull(proto.lastInBinding)){let change=change_detection_util.ChangeDetectionUtil.simpleChange(prevValue,currValue);if(dart.notNull(throwOnChange))change_detection_util.ChangeDetectionUtil.throwOnChange(proto,change);this[_writeSelf](proto,currValue);this[_setChanged](proto,true);return change}else{this[_writeSelf](proto,currValue);this[_setChanged](proto,true);return null}}else{this[_setChanged](proto,false);return null}}[_pipeFor](proto,context){let storedPipe=this[_readPipe](proto);if(dart.notNull(lang.isPresent(storedPipe))&&dart.notNull(dart.as(dart.dsend(storedPipe,'supports',context),core.bool))){return storedPipe}if(dart.notNull(lang.isPresent(storedPipe))){dart.dsend(storedPipe,'onDestroy')}let pipe=this.pipeRegistry.get(proto.name,context,this.ref);this[_writePipe](proto,pipe);return pipe}[_readContext](proto){if(proto.contextIndex==-1){return this[_getDirectiveFor](proto.directiveIndex)}else{return this.values[dartx.get](proto.contextIndex)}return this.values[dartx.get](proto.contextIndex)}[_readSelf](proto){return this.values[dartx.get](proto.selfIndex)}[_writeSelf](proto,value){this.values[dartx.set](proto.selfIndex,value)}[_readPipe](proto){return this.pipes[dartx.get](proto.selfIndex)}[_writePipe](proto,value){this.pipes[dartx.set](proto.selfIndex,value)}[_setChanged](proto,value){this.changes[dartx.set](proto.selfIndex,value)}[_pureFuncAndArgsDidNotChange](proto){return dart.notNull(proto.isPureFunction())&& !dart.notNull(this[_argsChanged](proto))}[_argsChanged](proto){let args=proto.args;for(let i=0;dart.notNull(i)<dart.notNull(args[dartx.length]);i=dart.notNull(i)+1){if(dart.notNull(dart.as(this.changes[dartx.get](dart.as(args[dartx.get](i),core.int)),core.bool))){return true}}return false}[_readArgs](proto){let res=collection.ListWrapper.createFixedSize(proto.args[dartx.length]);let args=proto.args;for(let i=0;dart.notNull(i)<dart.notNull(args[dartx.length]);i=dart.notNull(i)+1){res[dartx.set](i,this.values[dartx.get](dart.as(args[dartx.get](i),core.int)))}return res}};dart.setSignature(DynamicChangeDetector,{constructors:()=>({DynamicChangeDetector:[DynamicChangeDetector,[core.String,core.String,dart.dynamic,pipe_registry.PipeRegistry,core.List$(proto_record.ProtoRecord),core.List]]}),methods:()=>({[_readArgs]:[dart.dynamic,[proto_record.ProtoRecord]],[_writeSelf]:[dart.dynamic,[proto_record.ProtoRecord,dart.dynamic]],[_readSelf]:[dart.dynamic,[proto_record.ProtoRecord]],[_readContext]:[dart.dynamic,[proto_record.ProtoRecord]],[_readPipe]:[dart.dynamic,[proto_record.ProtoRecord]],[_argsChanged]:[core.bool,[proto_record.ProtoRecord]],[_calculateCurrValue]:[dart.dynamic,[proto_record.ProtoRecord]],[_referenceCheck]:[dart.dynamic,[proto_record.ProtoRecord,core.bool]],[_check]:[change_detection_util.SimpleChange,[proto_record.ProtoRecord,core.bool]],[_getDetectorFor]:[dart.dynamic,[dart.dynamic]],[_writePipe]:[dart.dynamic,[proto_record.ProtoRecord,dart.dynamic]],[_getDirectiveFor]:[dart.dynamic,[dart.dynamic]],[_setChanged]:[dart.dynamic,[proto_record.ProtoRecord,core.bool]],[_addChange]:[dart.dynamic,[binding_record.BindingRecord,dart.dynamic,dart.dynamic]],[_pureFuncAndArgsDidNotChange]:[core.bool,[proto_record.ProtoRecord]],[_updateDirectiveOrElement]:[dart.dynamic,[dart.dynamic,dart.dynamic]],[_pipeFor]:[dart.dynamic,[proto_record.ProtoRecord,dart.dynamic]],[_destroyPipes]:[dart.dynamic,[]],[_pipeCheck]:[dart.dynamic,[proto_record.ProtoRecord,core.bool]],hydrated:[core.bool,[]]})});function isSame(a,b){if(dart.notNull(core.identical(a,b)))return true;if(typeof a=='string'&&typeof b=='string'&&dart.equals(a,b))return true;if(!dart.notNull(core.identical(a,a))&& !dart.notNull(core.identical(b,b)))return true;return false}dart.fn(isSame,core.bool,[dart.dynamic,dart.dynamic]);exports.DynamicChangeDetector=DynamicChangeDetector;exports.isSame=isSame});dart_library.library('angular2/src/change_detection/exceptions',null,["dart_runtime/dart",'angular2/src/facade/lang','angular2/src/change_detection/proto_record'],[],function(exports,dart,lang,proto_record){'use strict';let dartx=dart.dartx;class ExpressionChangedAfterItHasBeenChecked extends lang.BaseException{ExpressionChangedAfterItHasBeenChecked(proto,change){super.BaseException(`Expression '${proto.expressionAsString }' has changed after it was checked. `+`Previous value: '${dart.dload(change,'previousValue')}'. Current value: '${dart.dload(change,'currentValue')}'`);}};dart.setSignature(ExpressionChangedAfterItHasBeenChecked,{constructors:()=>({ExpressionChangedAfterItHasBeenChecked:[ExpressionChangedAfterItHasBeenChecked,[proto_record.ProtoRecord,dart.dynamic]]})});class ChangeDetectionError extends lang.BaseException{ChangeDetectionError(proto,originalException,originalStack){this.location=null;super.BaseException(`${originalException } in [${proto.expressionAsString }]`,originalException,originalStack);;this.location=proto.expressionAsString}};dart.setSignature(ChangeDetectionError,{constructors:()=>({ChangeDetectionError:[ChangeDetectionError,[proto_record.ProtoRecord,dart.dynamic,dart.dynamic]]})});class DehydratedException extends lang.BaseException{DehydratedException(){super.BaseException("Attempt to detect changes on a dehydrated detector.");}};dart.setSignature(DehydratedException,{constructors:()=>({DehydratedException:[DehydratedException,[]]})});exports.ExpressionChangedAfterItHasBeenChecked=ExpressionChangedAfterItHasBeenChecked;exports.ChangeDetectionError=ChangeDetectionError;exports.DehydratedException=DehydratedException});dart_library.library('angular2/src/change_detection/interfaces',null,["dart_runtime/dart",'dart/core','angular2/src/change_detection/binding_record','angular2/src/change_detection/directive_record'],[],function(exports,dart,core,binding_record,directive_record){'use strict';let dartx=dart.dartx;class ChangeDetection extends core.Object{createProtoChangeDetector(definition){return null}ChangeDetection(){}};dart.setSignature(ChangeDetection,{constructors:()=>({ChangeDetection:[ChangeDetection,[]]}),methods:()=>({createProtoChangeDetector:[ProtoChangeDetector,[ChangeDetectorDefinition]]})});class ChangeDispatcher extends core.Object{};class ChangeDetector extends core.Object{ChangeDetector(){this.parent=null;this.mode=null}};class ProtoChangeDetector extends core.Object{};class ChangeDetectorDefinition extends core.Object{ChangeDetectorDefinition(id,strategy,variableNames,bindingRecords,directiveRecords){this.id=id;this.strategy=strategy;this.variableNames=variableNames;this.bindingRecords=bindingRecords;this.directiveRecords=directiveRecords}};dart.setSignature(ChangeDetectorDefinition,{constructors:()=>({ChangeDetectorDefinition:[ChangeDetectorDefinition,[core.String,core.String,core.List$(core.String),core.List$(binding_record.BindingRecord),core.List$(directive_record.DirectiveRecord)]]})});exports.ChangeDetection=ChangeDetection;exports.ChangeDispatcher=ChangeDispatcher;exports.ChangeDetector=ChangeDetector;exports.ProtoChangeDetector=ProtoChangeDetector;exports.ChangeDetectorDefinition=ChangeDetectorDefinition});dart_library.library('angular2/src/change_detection/jit_proto_change_detector',null,["dart_runtime/dart",'dart/core','angular2/src/change_detection/interfaces'],[],function(exports,dart,core,interfaces){'use strict';let dartx=dart.dartx;class JitProtoChangeDetector extends core.Object{JitProtoChangeDetector(registry,definition){}static isSupported(){return false}instantiate(dispatcher){dart.throw("Jit Change Detection not supported in Dart")}};JitProtoChangeDetector[dart.implements]=()=>[interfaces.ProtoChangeDetector];dart.setSignature(JitProtoChangeDetector,{constructors:()=>({JitProtoChangeDetector:[JitProtoChangeDetector,[dart.dynamic,dart.dynamic]]}),methods:()=>({instantiate:[interfaces.ChangeDetector,[dart.dynamic]]}),names:['isSupported'],statics:()=>({isSupported:[core.bool,[]]})});exports.JitProtoChangeDetector=JitProtoChangeDetector});dart_library.library('angular2/src/change_detection/parser/ast',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/change_detection/parser/locals','angular2/src/facade/collection'],[],function(exports,dart,core,lang,locals$,collection){'use strict';let dartx=dart.dartx;class AST extends core.Object{eval(context,locals){dart.throw(new lang.BaseException("Not supported"))}get isAssignable(){return false}assign(context,locals,value){dart.throw(new lang.BaseException("Not supported"))}visit(visitor){return null}toString(){return "AST"}};dart.setSignature(AST,{methods:()=>({assign:[dart.dynamic,[dart.dynamic,locals$.Locals,dart.dynamic]],eval:[dart.dynamic,[dart.dynamic,locals$.Locals]],visit:[dart.dynamic,[AstVisitor]]})});class EmptyExpr extends AST{eval(context,locals){return null}visit(visitor){}};class ImplicitReceiver extends AST{eval(context,locals){return context}visit(visitor){return visitor.visitImplicitReceiver(this)}};class Chain extends AST{Chain(expressions){this.expressions=expressions;}eval(context,locals){let result=null;for(let i=0;dart.notNull(i)<dart.notNull(this.expressions[dartx.length]);i=dart.notNull(i)+1){let last=dart.dsend(this.expressions[dartx.get](i),'eval',context,locals);if(dart.notNull(lang.isPresent(last)))result=last;}return result}visit(visitor){return visitor.visitChain(this)}};dart.setSignature(Chain,{constructors:()=>({Chain:[Chain,[core.List]]})});class Conditional extends AST{Conditional(condition,trueExp,falseExp){this.condition=condition;this.trueExp=trueExp;this.falseExp=falseExp;}eval(context,locals){if(dart.notNull(dart.as(this.condition.eval(context,locals),core.bool))){return this.trueExp.eval(context,locals)}else{return this.falseExp.eval(context,locals)}}visit(visitor){return visitor.visitConditional(this)}};dart.setSignature(Conditional,{constructors:()=>({Conditional:[Conditional,[AST,AST,AST]]})});class If extends AST{If(condition,trueExp,falseExp){if(falseExp===void 0)falseExp=null;this.condition=condition;this.trueExp=trueExp;this.falseExp=falseExp;}eval(context,locals){if(dart.notNull(dart.as(this.condition.eval(context,dart.as(locals,locals$.Locals)),core.bool))){this.trueExp.eval(context,dart.as(locals,locals$.Locals))}else if(dart.notNull(lang.isPresent(this.falseExp))){this.falseExp.eval(context,dart.as(locals,locals$.Locals))}}visit(visitor){return visitor.visitIf(this)}};dart.setSignature(If,{constructors:()=>({If:[If,[AST,AST],[AST]]}),methods:()=>({eval:[dart.dynamic,[dart.dynamic,dart.dynamic]]})});class AccessMember extends AST{AccessMember(receiver,name,getter,setter){this.receiver=receiver;this.name=name;this.getter=getter;this.setter=setter;}eval(context,locals){if(dart.is(this.receiver,ImplicitReceiver)&&dart.notNull(lang.isPresent(locals))&&dart.notNull(locals.contains(this.name))){return locals.get(this.name)}else{let evaluatedReceiver=this.receiver.eval(context,locals);return dart.dcall(this.getter,evaluatedReceiver)}}get isAssignable(){return true}assign(context,locals,value){let evaluatedContext=this.receiver.eval(context,locals);if(dart.is(this.receiver,ImplicitReceiver)&&dart.notNull(lang.isPresent(locals))&&dart.notNull(locals.contains(this.name))){dart.throw(new lang.BaseException(`Cannot reassign a variable binding ${this.name }`))}else{return dart.dcall(this.setter,evaluatedContext,value)}}visit(visitor){return visitor.visitAccessMember(this)}};dart.setSignature(AccessMember,{constructors:()=>({AccessMember:[AccessMember,[AST,core.String,core.Function,core.Function]]})});class SafeAccessMember extends AST{SafeAccessMember(receiver,name,getter,setter){this.receiver=receiver;this.name=name;this.getter=getter;this.setter=setter;}eval(context,locals){let evaluatedReceiver=this.receiver.eval(context,locals);return dart.notNull(lang.isBlank(evaluatedReceiver))?null:dart.dcall(this.getter,evaluatedReceiver)}visit(visitor){return visitor.visitSafeAccessMember(this)}};dart.setSignature(SafeAccessMember,{constructors:()=>({SafeAccessMember:[SafeAccessMember,[AST,core.String,core.Function,core.Function]]})});class KeyedAccess extends AST{KeyedAccess(obj,key){this.obj=obj;this.key=key;}eval(context,locals){let obj=this.obj.eval(context,locals);let key=this.key.eval(context,locals);return dart.dindex(obj,key)}get isAssignable(){return true}assign(context,locals,value){let obj=this.obj.eval(context,locals);let key=this.key.eval(context,locals);dart.dsetindex(obj,key,value);return value}visit(visitor){return visitor.visitKeyedAccess(this)}};dart.setSignature(KeyedAccess,{constructors:()=>({KeyedAccess:[KeyedAccess,[AST,AST]]})});class BindingPipe extends AST{BindingPipe(exp,name,args){this.exp=exp;this.name=name;this.args=args;}visit(visitor){return visitor.visitPipe(this)}};dart.setSignature(BindingPipe,{constructors:()=>({BindingPipe:[BindingPipe,[AST,core.String,core.List]]})});class LiteralPrimitive extends AST{LiteralPrimitive(value){this.value=value;}eval(context,locals){return this.value}visit(visitor){return visitor.visitLiteralPrimitive(this)}};dart.setSignature(LiteralPrimitive,{constructors:()=>({LiteralPrimitive:[LiteralPrimitive,[dart.dynamic]]})});class LiteralArray extends AST{LiteralArray(expressions){this.expressions=expressions;}eval(context,locals){return collection.ListWrapper.map(this.expressions,dart.fn(e=>dart.dsend(e,'eval',context,locals)))}visit(visitor){return visitor.visitLiteralArray(this)}};dart.setSignature(LiteralArray,{constructors:()=>({LiteralArray:[LiteralArray,[core.List]]})});class LiteralMap extends AST{LiteralMap(keys,values){this.keys=keys;this.values=values;}eval(context,locals){let res=collection.StringMapWrapper.create();for(let i=0;dart.notNull(i)<dart.notNull(this.keys[dartx.length]);i=dart.notNull(i)+1){collection.StringMapWrapper.set(res,this.keys[dartx.get](i),dart.dsend(this.values[dartx.get](i),'eval',context,locals))}return res}visit(visitor){return visitor.visitLiteralMap(this)}};dart.setSignature(LiteralMap,{constructors:()=>({LiteralMap:[LiteralMap,[core.List,core.List]]})});class Interpolation extends AST{Interpolation(strings,expressions){this.strings=strings;this.expressions=expressions;}eval(context,locals){dart.throw(new lang.BaseException("evaluating an Interpolation is not supported"))}visit(visitor){visitor.visitInterpolation(this)}};dart.setSignature(Interpolation,{constructors:()=>({Interpolation:[Interpolation,[core.List,core.List]]}),methods:()=>({eval:[dart.dynamic,[dart.dynamic,dart.dynamic]]})});class Binary extends AST{Binary(operation,left,right){this.operation=operation;this.left=left;this.right=right;}eval(context,locals){let left=this.left.eval(context,locals);switch(this.operation){case "&&":{return dart.notNull(dart.as(left,core.bool))&&dart.notNull(dart.as(this.right.eval(context,locals),core.bool))}case "||":{return dart.notNull(dart.as(left,core.bool))||dart.notNull(dart.as(this.right.eval(context,locals),core.bool))}}let right=this.right.eval(context,locals);switch(this.operation){case "+":{return dart.dsend(left,'+',right)}case "-":{return dart.dsend(left,'-',right)}case "*":{return dart.dsend(left,'*',right)}case "/":{return dart.dsend(left,'/',right)}case "%":{return dart.dsend(left,'%',right)}case "==":{return dart.equals(left,right)}case "!=":{return!dart.equals(left,right)}case "===":{return core.identical(left,right)}case "!==":{return!dart.notNull(core.identical(left,right))}case "<":{return dart.dsend(left,'<',right)}case ">":{return dart.dsend(left,'>',right)}case "<=":{return dart.dsend(left,'<=',right)}case ">=":{return dart.dsend(left,'>=',right)}case "^":{return dart.dsend(left,'^',right)}case "&":{return dart.dsend(left,'&',right)}}dart.throw("Internal error [$operation] not handled")}visit(visitor){return visitor.visitBinary(this)}};dart.setSignature(Binary,{constructors:()=>({Binary:[Binary,[core.String,AST,AST]]})});class PrefixNot extends AST{PrefixNot(expression){this.expression=expression;}eval(context,locals){return!dart.notNull(dart.as(this.expression.eval(context,locals),core.bool))}visit(visitor){return visitor.visitPrefixNot(this)}};dart.setSignature(PrefixNot,{constructors:()=>({PrefixNot:[PrefixNot,[AST]]})});class Assignment extends AST{Assignment(target,value){this.target=target;this.value=value;}eval(context,locals){return this.target.assign(context,locals,this.value.eval(context,locals))}visit(visitor){return visitor.visitAssignment(this)}};dart.setSignature(Assignment,{constructors:()=>({Assignment:[Assignment,[AST,AST]]})});class MethodCall extends AST{MethodCall(receiver,name,fn,args){this.receiver=receiver;this.name=name;this.fn=fn;this.args=args;}eval(context,locals){let evaluatedArgs=evalList(context,locals,this.args);if(dart.is(this.receiver,ImplicitReceiver)&&dart.notNull(lang.isPresent(locals))&&dart.notNull(locals.contains(this.name))){let fn=locals.get(this.name);return lang.FunctionWrapper.apply(dart.as(fn,core.Function),evaluatedArgs)}else{let evaluatedReceiver=this.receiver.eval(context,locals);return dart.dcall(this.fn,evaluatedReceiver,evaluatedArgs)}}visit(visitor){return visitor.visitMethodCall(this)}};dart.setSignature(MethodCall,{constructors:()=>({MethodCall:[MethodCall,[AST,core.String,core.Function,core.List]]})});class SafeMethodCall extends AST{SafeMethodCall(receiver,name,fn,args){this.receiver=receiver;this.name=name;this.fn=fn;this.args=args;}eval(context,locals){let evaluatedReceiver=this.receiver.eval(context,locals);if(dart.notNull(lang.isBlank(evaluatedReceiver)))return null;let evaluatedArgs=evalList(context,locals,this.args);return dart.dcall(this.fn,evaluatedReceiver,evaluatedArgs)}visit(visitor){return visitor.visitSafeMethodCall(this)}};dart.setSignature(SafeMethodCall,{constructors:()=>({SafeMethodCall:[SafeMethodCall,[AST,core.String,core.Function,core.List]]})});class FunctionCall extends AST{FunctionCall(target,args){this.target=target;this.args=args;}eval(context,locals){let obj=this.target.eval(context,locals);if(!dart.is(obj,core.Function)){dart.throw(new lang.BaseException(`${obj } is not a function`))}return lang.FunctionWrapper.apply(dart.as(obj,core.Function),evalList(context,locals,this.args))}visit(visitor){return visitor.visitFunctionCall(this)}};dart.setSignature(FunctionCall,{constructors:()=>({FunctionCall:[FunctionCall,[AST,core.List]]})});class ASTWithSource extends AST{ASTWithSource(ast,source,location){this.ast=ast;this.source=source;this.location=location;}eval(context,locals){return this.ast.eval(context,locals)}get isAssignable(){return this.ast.isAssignable}assign(context,locals,value){return this.ast.assign(context,locals,value)}visit(visitor){return this.ast.visit(visitor)}toString(){return `${this.source } in ${this.location }`}};dart.setSignature(ASTWithSource,{constructors:()=>({ASTWithSource:[ASTWithSource,[AST,core.String,core.String]]})});class TemplateBinding extends core.Object{TemplateBinding(key,keyIsVar,name,expression){this.key=key;this.keyIsVar=keyIsVar;this.name=name;this.expression=expression}};dart.setSignature(TemplateBinding,{constructors:()=>({TemplateBinding:[TemplateBinding,[core.String,core.bool,core.String,ASTWithSource]]})});class AstVisitor extends core.Object{};class AstTransformer extends core.Object{visitImplicitReceiver(ast){return ast}visitInterpolation(ast){return new Interpolation(ast.strings,this.visitAll(ast.expressions))}visitLiteralPrimitive(ast){return new LiteralPrimitive(ast.value)}visitAccessMember(ast){return new AccessMember(dart.as(ast.receiver.visit(this),AST),ast.name,ast.getter,ast.setter)}visitSafeAccessMember(ast){return new SafeAccessMember(dart.as(ast.receiver.visit(this),AST),ast.name,ast.getter,ast.setter)}visitMethodCall(ast){return new MethodCall(dart.as(ast.receiver.visit(this),AST),ast.name,ast.fn,this.visitAll(ast.args))}visitSafeMethodCall(ast){return new SafeMethodCall(dart.as(ast.receiver.visit(this),AST),ast.name,ast.fn,this.visitAll(ast.args))}visitFunctionCall(ast){return new FunctionCall(dart.as(ast.target.visit(this),AST),this.visitAll(ast.args))}visitLiteralArray(ast){return new LiteralArray(this.visitAll(ast.expressions))}visitLiteralMap(ast){return new LiteralMap(ast.keys,this.visitAll(ast.values))}visitBinary(ast){return new Binary(ast.operation,dart.as(ast.left.visit(this),AST),dart.as(ast.right.visit(this),AST))}visitPrefixNot(ast){return new PrefixNot(dart.as(ast.expression.visit(this),AST))}visitConditional(ast){return new Conditional(dart.as(ast.condition.visit(this),AST),dart.as(ast.trueExp.visit(this),AST),dart.as(ast.falseExp.visit(this),AST))}visitPipe(ast){return new BindingPipe(dart.as(ast.exp.visit(this),AST),ast.name,this.visitAll(ast.args))}visitKeyedAccess(ast){return new KeyedAccess(dart.as(ast.obj.visit(this),AST),dart.as(ast.key.visit(this),AST))}visitAll(asts){let res=collection.ListWrapper.createFixedSize(asts[dartx.length]);for(let i=0;dart.notNull(i)<dart.notNull(asts[dartx.length]);i=dart.notNull(i)+1){res[dartx.set](i,dart.dsend(asts[dartx.get](i),'visit',this))}return res}visitChain(ast){return new Chain(this.visitAll(ast.expressions))}visitAssignment(ast){return new Assignment(dart.as(ast.target.visit(this),AST),dart.as(ast.value.visit(this),AST))}visitIf(ast){let falseExp=dart.notNull(lang.isPresent(ast.falseExp))?ast.falseExp.visit(this):null;return new If(dart.as(ast.condition.visit(this),AST),dart.as(ast.trueExp.visit(this),AST),dart.as(falseExp,AST))}};AstTransformer[dart.implements]=()=>[AstVisitor];dart.setSignature(AstTransformer,{methods:()=>({visitAccessMember:[AccessMember,[AccessMember]],visitAll:[core.List,[core.List]],visitAssignment:[Assignment,[Assignment]],visitBinary:[Binary,[Binary]],visitChain:[Chain,[Chain]],visitConditional:[Conditional,[Conditional]],visitFunctionCall:[FunctionCall,[FunctionCall]],visitIf:[If,[If]],visitImplicitReceiver:[ImplicitReceiver,[ImplicitReceiver]],visitInterpolation:[Interpolation,[Interpolation]],visitKeyedAccess:[KeyedAccess,[KeyedAccess]],visitLiteralArray:[LiteralArray,[LiteralArray]],visitLiteralMap:[LiteralMap,[LiteralMap]],visitLiteralPrimitive:[LiteralPrimitive,[LiteralPrimitive]],visitMethodCall:[MethodCall,[MethodCall]],visitPipe:[BindingPipe,[BindingPipe]],visitPrefixNot:[PrefixNot,[PrefixNot]],visitSafeAccessMember:[SafeAccessMember,[SafeAccessMember]],visitSafeMethodCall:[SafeMethodCall,[SafeMethodCall]]})});dart.defineLazyProperties(exports,{get _evalListCache(){return[[],[0],[0,0],[0,0,0],[0,0,0,0],[0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0]]},set _evalListCache(_){}});function evalList(context,locals,exps){let length=exps[dartx.length];if(dart.notNull(length)>10){dart.throw(new lang.BaseException("Cannot have more than 10 argument"))}let result=exports._evalListCache[dartx.get](length);for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){dart.dsetindex(result,i,dart.dsend(exps[dartx.get](i),'eval',context,locals))}return dart.as(result,core.List)}dart.fn(evalList,core.List,[dart.dynamic,locals$.Locals,core.List]);exports.AST=AST;exports.EmptyExpr=EmptyExpr;exports.ImplicitReceiver=ImplicitReceiver;exports.Chain=Chain;exports.Conditional=Conditional;exports.If=If;exports.AccessMember=AccessMember;exports.SafeAccessMember=SafeAccessMember;exports.KeyedAccess=KeyedAccess;exports.BindingPipe=BindingPipe;exports.LiteralPrimitive=LiteralPrimitive;exports.LiteralArray=LiteralArray;exports.LiteralMap=LiteralMap;exports.Interpolation=Interpolation;exports.Binary=Binary;exports.PrefixNot=PrefixNot;exports.Assignment=Assignment;exports.MethodCall=MethodCall;exports.SafeMethodCall=SafeMethodCall;exports.FunctionCall=FunctionCall;exports.ASTWithSource=ASTWithSource;exports.TemplateBinding=TemplateBinding;exports.AstVisitor=AstVisitor;exports.AstTransformer=AstTransformer;exports.evalList=evalList});dart_library.library('angular2/src/change_detection/parser/lexer',null,["dart_runtime/dart",'dart/core','angular2/src/di/annotations_impl','angular2/src/facade/lang','angular2/src/facade/collection'],[],function(exports,dart,core,annotations_impl,lang,collection){'use strict';let dartx=dart.dartx;class TokenType extends core.Object{TokenType(index){this.index=index}toString(){return{0:"TokenType.CHARACTER",1:"TokenType.IDENTIFIER",2:"TokenType.KEYWORD",3:"TokenType.STRING",4:"TokenType.OPERATOR",5:"TokenType.NUMBER"}[this.index]}};TokenType.CHARACTER=dart.const(new TokenType(0));TokenType.IDENTIFIER=dart.const(new TokenType(1));TokenType.KEYWORD=dart.const(new TokenType(2));TokenType.STRING=dart.const(new TokenType(3));TokenType.OPERATOR=dart.const(new TokenType(4));TokenType.NUMBER=dart.const(new TokenType(5));TokenType.values=dart.const(dart.list([TokenType.CHARACTER,TokenType.IDENTIFIER,TokenType.KEYWORD,TokenType.STRING,TokenType.OPERATOR,TokenType.NUMBER],TokenType));class Lexer extends core.Object{tokenize(text){let scanner=new _Scanner(text);let tokens=[];let token=scanner.scanToken();while(token!=null){tokens[dartx.add](token);token=scanner.scanToken()}return tokens}};dart.setSignature(Lexer,{methods:()=>({tokenize:[core.List,[core.String]]})});Lexer[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];class Token extends core.Object{Token(index,type,numValue,strValue){this.index=index;this.type=type;this.numValue=numValue;this.strValue=strValue}isCharacter(code){return dart.equals(this.type,TokenType.CHARACTER)&&this.numValue==code}isNumber(){return dart.equals(this.type,TokenType.NUMBER)}isString(){return dart.equals(this.type,TokenType.STRING)}isOperator(operater){return dart.equals(this.type,TokenType.OPERATOR)&&this.strValue==operater}isIdentifier(){return dart.equals(this.type,TokenType.IDENTIFIER)}isKeyword(){return dart.equals(this.type,TokenType.KEYWORD)}isKeywordVar(){return dart.equals(this.type,TokenType.KEYWORD)&&this.strValue=="var"}isKeywordNull(){return dart.equals(this.type,TokenType.KEYWORD)&&this.strValue=="null"}isKeywordUndefined(){return dart.equals(this.type,TokenType.KEYWORD)&&this.strValue=="undefined"}isKeywordTrue(){return dart.equals(this.type,TokenType.KEYWORD)&&this.strValue=="true"}isKeywordIf(){return dart.equals(this.type,TokenType.KEYWORD)&&this.strValue=="if"}isKeywordElse(){return dart.equals(this.type,TokenType.KEYWORD)&&this.strValue=="else"}isKeywordFalse(){return dart.equals(this.type,TokenType.KEYWORD)&&this.strValue=="false"}toNumber(){return dart.equals(this.type,TokenType.NUMBER)?this.numValue:-1}toString(){switch(this.type){case TokenType.CHARACTER:case TokenType.STRING:case TokenType.IDENTIFIER:case TokenType.KEYWORD:{return this.strValue}case TokenType.NUMBER:{return dart.toString(this.numValue)}default:{return null}}}};dart.setSignature(Token,{constructors:()=>({Token:[Token,[core.num,TokenType,core.num,core.String]]}),methods:()=>({isCharacter:[core.bool,[core.num]],isIdentifier:[core.bool,[]],isKeyword:[core.bool,[]],isKeywordElse:[core.bool,[]],isKeywordFalse:[core.bool,[]],isKeywordIf:[core.bool,[]],isKeywordNull:[core.bool,[]],isKeywordTrue:[core.bool,[]],isKeywordUndefined:[core.bool,[]],isKeywordVar:[core.bool,[]],isNumber:[core.bool,[]],isOperator:[core.bool,[core.String]],isString:[core.bool,[]],toNumber:[core.num,[]]})});function newCharacterToken(index,code){return new Token(index,TokenType.CHARACTER,code,lang.StringWrapper.fromCharCode(code))}dart.fn(newCharacterToken,Token,[core.num,core.num]);function newIdentifierToken(index,text){return new Token(index,TokenType.IDENTIFIER,0,text)}dart.fn(newIdentifierToken,Token,[core.num,core.String]);function newKeywordToken(index,text){return new Token(index,TokenType.KEYWORD,0,text)}dart.fn(newKeywordToken,Token,[core.num,core.String]);function newOperatorToken(index,text){return new Token(index,TokenType.OPERATOR,0,text)}dart.fn(newOperatorToken,Token,[core.num,core.String]);function newStringToken(index,text){return new Token(index,TokenType.STRING,0,text)}dart.fn(newStringToken,Token,[core.num,core.String]);function newNumberToken(index,n){return new Token(index,TokenType.NUMBER,n,"")}dart.fn(newNumberToken,Token,[core.num,core.num]);let $EOF=0;let $TAB=9;let $LF=10;let $VTAB=11;let $FF=12;let $CR=13;let $SPACE=32;let $BANG=33;let $DQ=34;let $HASH=35;let $$=36;let $PERCENT=37;let $AMPERSAND=38;let $SQ=39;let $LPAREN=40;let $RPAREN=41;let $STAR=42;let $PLUS=43;let $COMMA=44;let $MINUS=45;let $PERIOD=46;let $SLASH=47;let $COLON=58;let $SEMICOLON=59;let $LT=60;let $EQ=61;let $GT=62;let $QUESTION=63;let $0=48;let $9=57;let $A=65;let $E=69;let $Z=90;let $LBRACKET=91;let $BACKSLASH=92;let $RBRACKET=93;let $CARET=94;let $_=95;let $a=97;let $e=101;let $f=102;let $n=110;let $r=114;let $t=116;let $u=117;let $v=118;let $z=122;let $LBRACE=123;let $BAR=124;let $RBRACE=125;let $NBSP=160;dart.defineLazyProperties(exports,{get EOF(){return new Token(-1,TokenType.CHARACTER,0,"")},set EOF(_){}});class ScannerError extends lang.BaseException{ScannerError(message){this.message=message;super.BaseException();}toString(){return this.message}};dart.virtualField(ScannerError,'message');dart.setSignature(ScannerError,{constructors:()=>({ScannerError:[ScannerError,[core.String]]})});class _Scanner extends core.Object{_Scanner(input){this.input=input;this.length=null;this.peek=0;this.index=-1;this.length=this.input[dartx.length];this.advance()}advance(){this.peek=(this.index=dart.notNull(this.index)+1)>=dart.notNull(this.length)?$EOF:lang.StringWrapper.charCodeAt(this.input,this.index)}scanToken(){let input=this.input,length=this.length,peek=this.peek,index=this.index;while(dart.notNull(peek)<=dart.notNull($SPACE)){if((index=dart.notNull(index)+1)>=dart.notNull(length)){peek=$EOF;break}else{peek=lang.StringWrapper.charCodeAt(input,index)}}this.peek=peek;this.index=index;if(dart.notNull(index)>=dart.notNull(length)){return null}if(dart.notNull(isIdentifierStart(peek)))return this.scanIdentifier();if(dart.notNull(isDigit(peek)))return this.scanNumber(index);let start=index;switch(peek){case $PERIOD:{this.advance();return dart.notNull(isDigit(this.peek))?this.scanNumber(start):newCharacterToken(start,$PERIOD)}case $LPAREN:case $RPAREN:case $LBRACE:case $RBRACE:case $LBRACKET:case $RBRACKET:case $COMMA:case $COLON:case $SEMICOLON:{return this.scanCharacter(start,peek)}case $SQ:case $DQ:{return this.scanString()}case $HASH:case $PLUS:case $MINUS:case $STAR:case $SLASH:case $PERCENT:case $CARET:{return this.scanOperator(start,lang.StringWrapper.fromCharCode(peek))}case $QUESTION:{return this.scanComplexOperator(start,"?",$PERIOD,".")}case $LT:case $GT:{return this.scanComplexOperator(start,lang.StringWrapper.fromCharCode(peek),$EQ,"=")}case $BANG:case $EQ:{return this.scanComplexOperator(start,lang.StringWrapper.fromCharCode(peek),$EQ,"=",$EQ,"=")}case $AMPERSAND:{return this.scanComplexOperator(start,"&",$AMPERSAND,"&")}case $BAR:{return this.scanComplexOperator(start,"|",$BAR,"|")}case $NBSP:{while(dart.notNull(isWhitespace(this.peek)))this.advance();return this.scanToken()}}this.error(`Unexpected character [${lang.StringWrapper.fromCharCode(peek)}]`,0);return null}scanCharacter(start,code){dart.assert(this.peek==code);this.advance();return newCharacterToken(start,code)}scanOperator(start,str){dart.assert(this.peek==lang.StringWrapper.charCodeAt(str,0));dart.assert(collection.SetWrapper.has(exports.OPERATORS,str));this.advance();return newOperatorToken(start,str)}scanComplexOperator(start,one,twoCode,two,threeCode,three){if(threeCode===void 0)threeCode=null;if(three===void 0)three=null;dart.assert(this.peek==lang.StringWrapper.charCodeAt(one,0));this.advance();let str=one;if(this.peek==twoCode){this.advance();str=dart.notNull(str)+dart.notNull(two)}if(dart.notNull(lang.isPresent(threeCode))&&this.peek==threeCode){this.advance();str=dart.notNull(str)+dart.notNull(three)}dart.assert(collection.SetWrapper.has(exports.OPERATORS,str));return newOperatorToken(start,str)}scanIdentifier(){dart.assert(isIdentifierStart(this.peek));let start=this.index;this.advance();while(dart.notNull(isIdentifierPart(this.peek)))this.advance();let str=this.input[dartx.substring](start,this.index);if(dart.notNull(collection.SetWrapper.has(exports.KEYWORDS,str))){return newKeywordToken(start,str)}else{return newIdentifierToken(start,str)}}scanNumber(start){dart.assert(isDigit(this.peek));let simple=core.identical(this.index,start);this.advance();while(true){if(dart.notNull(isDigit(this.peek))){}else if(this.peek==$PERIOD){simple=false}else if(dart.notNull(isExponentStart(this.peek))){this.advance();if(dart.notNull(isExponentSign(this.peek)))this.advance();if(!dart.notNull(isDigit(this.peek)))this.error("Invalid exponent",-1);simple=false}else{break}this.advance()}let str=this.input[dartx.substring](start,this.index);let value=dart.notNull(simple)?lang.NumberWrapper.parseIntAutoRadix(str):lang.NumberWrapper.parseFloat(str);return newNumberToken(start,value)}scanString(){dart.assert(this.peek==$SQ||this.peek==$DQ);let start=this.index;let quote=this.peek;this.advance();let buffer=null;let marker=this.index;let input=this.input;while(this.peek!=quote){if(this.peek==$BACKSLASH){if(buffer==null)buffer=new lang.StringJoiner();buffer.add(input[dartx.substring](marker,this.index));this.advance();let unescapedCode=null;if(this.peek==$u){let hex=input[dartx.substring](dart.notNull(this.index)+1,dart.notNull(this.index)+5);try{unescapedCode=lang.NumberWrapper.parseInt(hex,16)}catch(e){let e_stack=dart.stackTrace(e);this.error(`Invalid unicode escape [\\u${hex }]`,0)}for(let i=0;dart.notNull(i)<5;i=dart.notNull(i)+1){this.advance()}}else{unescapedCode=unescape(this.peek);this.advance()}buffer.add(lang.StringWrapper.fromCharCode(unescapedCode));marker=this.index}else if(this.peek==$EOF){this.error("Unterminated quote",0)}else{this.advance()}}let last=input[dartx.substring](marker,this.index);this.advance();let unescaped=last;if(buffer!=null){buffer.add(last);unescaped=dart.toString(buffer)}return newStringToken(start,unescaped)}error(message,offset){let position=dart.notNull(this.index)+dart.notNull(offset);dart.throw(new ScannerError(`Lexer Error: ${message } at column ${position } in expression [${this.input }]`))}};dart.setSignature(_Scanner,{constructors:()=>({_Scanner:[_Scanner,[core.String]]}),methods:()=>({advance:[dart.dynamic,[]],error:[dart.dynamic,[core.String,core.num]],scanCharacter:[Token,[core.num,core.num]],scanComplexOperator:[Token,[core.num,core.String,core.num,core.String],[core.num,core.String]],scanIdentifier:[Token,[]],scanNumber:[Token,[core.num]],scanOperator:[Token,[core.num,core.String]],scanString:[Token,[]],scanToken:[Token,[]]})});function isWhitespace(code){return dart.notNull(code)>=dart.notNull($TAB)&&dart.notNull(code)<=dart.notNull($SPACE)||code==$NBSP}dart.fn(isWhitespace,core.bool,[core.num]);function isIdentifierStart(code){return dart.notNull($a)<=dart.notNull(code)&&dart.notNull(code)<=dart.notNull($z)||dart.notNull($A)<=dart.notNull(code)&&dart.notNull(code)<=dart.notNull($Z)||code==$_||code==$$}dart.fn(isIdentifierStart,core.bool,[core.num]);function isIdentifierPart(code){return dart.notNull($a)<=dart.notNull(code)&&dart.notNull(code)<=dart.notNull($z)||dart.notNull($A)<=dart.notNull(code)&&dart.notNull(code)<=dart.notNull($Z)||dart.notNull($0)<=dart.notNull(code)&&dart.notNull(code)<=dart.notNull($9)||code==$_||code==$$}dart.fn(isIdentifierPart,core.bool,[core.num]);function isDigit(code){return dart.notNull($0)<=dart.notNull(code)&&dart.notNull(code)<=dart.notNull($9)}dart.fn(isDigit,core.bool,[core.num]);function isExponentStart(code){return code==$e||code==$E}dart.fn(isExponentStart,core.bool,[core.num]);function isExponentSign(code){return code==$MINUS||code==$PLUS}dart.fn(isExponentSign,core.bool,[core.num]);function unescape(code){switch(code){case $n:{return $LF}case $f:{return $FF}case $r:{return $CR}case $t:{return $TAB}case $v:{return $VTAB}default:{return code}}}dart.fn(unescape,core.num,[core.num]);dart.defineLazyProperties(exports,{get KEYWORDS(){return collection.SetWrapper.createFromList(["var","null","undefined","true","false","if","else"])},get OPERATORS(){return collection.SetWrapper.createFromList(["+","-","*","/","%","^","=","==","!=","===","!==","<",">","<=",">=","&&","||","&","|","!","?","#","?."])},set KEYWORDS(_){},set OPERATORS(_){}});exports.TokenType=TokenType;exports.Lexer=Lexer;exports.Token=Token;exports.newCharacterToken=newCharacterToken;exports.newIdentifierToken=newIdentifierToken;exports.newKeywordToken=newKeywordToken;exports.newOperatorToken=newOperatorToken;exports.newStringToken=newStringToken;exports.newNumberToken=newNumberToken;exports.$EOF=$EOF;exports.$TAB=$TAB;exports.$LF=$LF;exports.$VTAB=$VTAB;exports.$FF=$FF;exports.$CR=$CR;exports.$SPACE=$SPACE;exports.$BANG=$BANG;exports.$DQ=$DQ;exports.$HASH=$HASH;exports.$$=$$;exports.$PERCENT=$PERCENT;exports.$AMPERSAND=$AMPERSAND;exports.$SQ=$SQ;exports.$LPAREN=$LPAREN;exports.$RPAREN=$RPAREN;exports.$STAR=$STAR;exports.$PLUS=$PLUS;exports.$COMMA=$COMMA;exports.$MINUS=$MINUS;exports.$PERIOD=$PERIOD;exports.$SLASH=$SLASH;exports.$COLON=$COLON;exports.$SEMICOLON=$SEMICOLON;exports.$LT=$LT;exports.$EQ=$EQ;exports.$GT=$GT;exports.$QUESTION=$QUESTION;exports.$0=$0;exports.$9=$9;exports.$A=$A;exports.$E=$E;exports.$Z=$Z;exports.$LBRACKET=$LBRACKET;exports.$BACKSLASH=$BACKSLASH;exports.$RBRACKET=$RBRACKET;exports.$CARET=$CARET;exports.$_=$_;exports.$a=$a;exports.$e=$e;exports.$f=$f;exports.$n=$n;exports.$r=$r;exports.$t=$t;exports.$u=$u;exports.$v=$v;exports.$z=$z;exports.$LBRACE=$LBRACE;exports.$BAR=$BAR;exports.$RBRACE=$RBRACE;exports.$NBSP=$NBSP;exports.ScannerError=ScannerError;exports.isWhitespace=isWhitespace;exports.isIdentifierStart=isIdentifierStart;exports.isIdentifierPart=isIdentifierPart;exports.isDigit=isDigit;exports.isExponentStart=isExponentStart;exports.isExponentSign=isExponentSign;exports.unescape=unescape});dart_library.library('angular2/src/change_detection/parser/locals',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/facade/collection'],[],function(exports,dart,core,lang,collection){'use strict';let dartx=dart.dartx;class Locals extends core.Object{Locals(parent,current){this.parent=parent;this.current=current}contains(name){if(dart.notNull(this.current.containsKey(name))){return true}if(dart.notNull(lang.isPresent(this.parent))){return this.parent.contains(name)}return false}get(name){if(dart.notNull(this.current.containsKey(name))){return this.current.get(name)}if(dart.notNull(lang.isPresent(this.parent))){return this.parent.get(name)}dart.throw(new lang.BaseException(`Cannot find '${name }'`))}set(name,value){if(dart.notNull(this.current.containsKey(name))){this.current.set(name,value)}else{dart.throw(new lang.BaseException(`Setting of new keys post-construction is not supported. Key: ${name }.`))}}clearValues(){collection.MapWrapper.clearValues(this.current)}};dart.setSignature(Locals,{constructors:()=>({Locals:[Locals,[Locals,core.Map]]}),methods:()=>({clearValues:[dart.void,[]],contains:[core.bool,[core.String]],get:[dart.dynamic,[core.String]],set:[dart.void,[core.String,dart.dynamic]]})});exports.Locals=Locals});dart_library.library('angular2/src/change_detection/parser/parser',null,["dart_runtime/dart",'angular2/src/change_detection/parser/ast','angular2/src/facade/lang','dart/core','angular2/src/reflection/reflection','angular2/src/change_detection/parser/lexer','angular2/src/reflection/reflector','angular2/src/di/annotations_impl','angular2/src/facade/collection'],[],function(exports,dart,ast$,lang,core,reflection,lexer,reflector,annotations_impl,collection){'use strict';let dartx=dart.dartx;dart.defineLazyProperties(exports,{get INTERPOLATION_REGEXP(){return lang.RegExpWrapper.create("\\{\\{(.*?)\\}\\}")},get _implicitReceiver(){return new ast$.ImplicitReceiver()},set INTERPOLATION_REGEXP(_){},set _implicitReceiver(_){}});let _lexer=Symbol('_lexer');let _reflector=Symbol('_reflector');class Parser extends core.Object{Parser(lexer,providedReflector){if(providedReflector===void 0)providedReflector=null;this[_lexer]=lexer;this[_reflector]=null;this[_reflector]=dart.notNull(lang.isPresent(providedReflector))?providedReflector:reflection.reflector}parseAction(input,location){let tokens=this[_lexer].tokenize(input);let ast=new _ParseAST(input,location,tokens,this[_reflector],true).parseChain();return new ast$.ASTWithSource(ast,input,dart.as(location,core.String))}parseBinding(input,location){let tokens=this[_lexer].tokenize(input);let ast=new _ParseAST(input,location,tokens,this[_reflector],false).parseChain();return new ast$.ASTWithSource(ast,input,dart.as(location,core.String))}parseSimpleBinding(input,location){let tokens=this[_lexer].tokenize(input);let ast=new _ParseAST(input,location,tokens,this[_reflector],false).parseSimpleBinding();return new ast$.ASTWithSource(ast,input,location)}parseTemplateBindings(input,location){let tokens=this[_lexer].tokenize(input);return dart.as(new _ParseAST(input,location,tokens,this[_reflector],false).parseTemplateBindings(),core.List$(ast$.TemplateBinding))}parseInterpolation(input,location){let parts=lang.StringWrapper.split(input,exports.INTERPOLATION_REGEXP);if(dart.notNull(parts[dartx.length])<=1){return null}let strings=[];let expressions=[];for(let i=0;dart.notNull(i)<dart.notNull(parts[dartx.length]);i=dart.notNull(i)+1){let part=parts[dartx.get](i);if(dart.notNull(core.identical(dart.notNull(i)%2,0))){strings[dartx.add](part)}else{let tokens=this[_lexer].tokenize(part);let ast=new _ParseAST(input,location,tokens,this[_reflector],false).parseChain();expressions[dartx.add](ast)}}return new ast$.ASTWithSource(new ast$.Interpolation(strings,expressions),input,dart.as(location,core.String))}wrapLiteralPrimitive(input,location){return new ast$.ASTWithSource(new ast$.LiteralPrimitive(input),input,dart.as(location,core.String))}};dart.setSignature(Parser,{constructors:()=>({Parser:[Parser,[lexer.Lexer],[reflector.Reflector]]}),methods:()=>({parseAction:[ast$.ASTWithSource,[core.String,dart.dynamic]],parseBinding:[ast$.ASTWithSource,[core.String,dart.dynamic]],parseInterpolation:[ast$.ASTWithSource,[core.String,dart.dynamic]],parseSimpleBinding:[ast$.ASTWithSource,[core.String,core.String]],parseTemplateBindings:[core.List$(ast$.TemplateBinding),[core.String,dart.dynamic]],wrapLiteralPrimitive:[ast$.ASTWithSource,[core.String,dart.dynamic]]})});Parser[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];class _ParseAST extends core.Object{_ParseAST(input,location,tokens,reflector,parseAction){this.input=input;this.location=location;this.tokens=tokens;this.reflector=reflector;this.parseAction=parseAction;this.index=0}peek(offset){let i=dart.notNull(this.index)+dart.notNull(offset);return dart.notNull(i)<dart.notNull(this.tokens[dartx.length])?dart.as(this.tokens[dartx.get](i),lexer.Token):lexer.EOF}get next(){return this.peek(0)}get inputIndex(){return dart.notNull(this.index)<dart.notNull(this.tokens[dartx.length])?this.next.index:this.input[dartx.length]}advance(){this.index=dart.notNull(this.index)+1}optionalCharacter(code){if(dart.notNull(this.next.isCharacter(code))){this.advance();return true}else{return false}}optionalKeywordVar(){if(dart.notNull(this.peekKeywordVar())){this.advance();return true}else{return false}}peekKeywordVar(){return dart.notNull(this.next.isKeywordVar())||dart.notNull(this.next.isOperator("#"))}expectCharacter(code){if(dart.notNull(this.optionalCharacter(code)))return;this.error(`Missing expected ${lang.StringWrapper.fromCharCode(code)}`)}optionalOperator(op){if(dart.notNull(this.next.isOperator(op))){this.advance();return true}else{return false}}expectOperator(operator){if(dart.notNull(this.optionalOperator(operator)))return;this.error(`Missing expected operator ${operator }`)}expectIdentifierOrKeyword(){let n=this.next;if(!dart.notNull(n.isIdentifier())&& !dart.notNull(n.isKeyword())){this.error(`Unexpected token ${n }, expected identifier or keyword`)}this.advance();return dart.toString(n)}expectIdentifierOrKeywordOrString(){let n=this.next;if(!dart.notNull(n.isIdentifier())&& !dart.notNull(n.isKeyword())&& !dart.notNull(n.isString())){this.error(`Unexpected token ${n }, expected identifier, keyword, or string`)}this.advance();return dart.toString(n)}parseChain(){let exprs=[];while(dart.notNull(this.index)<dart.notNull(this.tokens[dartx.length])){let expr=this.parsePipe();exprs[dartx.add](expr);if(dart.notNull(this.optionalCharacter(lexer.$SEMICOLON))){if(!dart.notNull(this.parseAction)){this.error("Binding expression cannot contain chained expression")}while(dart.notNull(this.optionalCharacter(lexer.$SEMICOLON))){}}else if(dart.notNull(this.index)<dart.notNull(this.tokens[dartx.length])){this.error(`Unexpected token '${this.next }'`)}}if(exprs[dartx.length]==0)return new ast$.EmptyExpr();if(exprs[dartx.length]==1)return dart.as(exprs[dartx.get](0),ast$.AST);return new ast$.Chain(exprs)}parseSimpleBinding(){let ast=this.parseChain();if(!dart.notNull(SimpleExpressionChecker.check(ast))){this.error('Simple binding expression can only contain field access and constants\'')}return ast}parsePipe(){let result=this.parseExpression();if(dart.notNull(this.optionalOperator("|"))){if(dart.notNull(this.parseAction)){this.error("Cannot have a pipe in an action expression")}do{let name=this.expectIdentifierOrKeyword();let args=[];while(dart.notNull(this.optionalCharacter(lexer.$COLON))){args[dartx.add](this.parsePipe())}result=new ast$.BindingPipe(result,name,args)}while(dart.notNull(this.optionalOperator("|")))}return result}parseExpression(){let start=this.inputIndex;let result=this.parseConditional();while(dart.notNull(this.next.isOperator("="))){if(!dart.notNull(result.isAssignable)){let end=this.inputIndex;let expression=this.input[dartx.substring](start,end);this.error(`Expression ${expression } is not assignable`)}if(!dart.notNull(this.parseAction)){this.error("Binding expression cannot contain assignments")}this.expectOperator("=");result=new ast$.Assignment(result,this.parseConditional())}return result}parseConditional(){let start=this.inputIndex;let result=this.parseLogicalOr();if(dart.notNull(this.optionalOperator("?"))){let yes=this.parsePipe();if(!dart.notNull(this.optionalCharacter(lexer.$COLON))){let end=this.inputIndex;let expression=this.input[dartx.substring](start,end);this.error(`Conditional expression ${expression } requires all 3 expressions`)}let no=this.parsePipe();return new ast$.Conditional(result,yes,no)}else{return result}}parseLogicalOr(){let result=this.parseLogicalAnd();while(dart.notNull(this.optionalOperator("||"))){result=new ast$.Binary("||",result,this.parseLogicalAnd())}return result}parseLogicalAnd(){let result=this.parseEquality();while(dart.notNull(this.optionalOperator("&&"))){result=new ast$.Binary("&&",result,this.parseEquality())}return result}parseEquality(){let result=this.parseRelational();while(true){if(dart.notNull(this.optionalOperator("=="))){result=new ast$.Binary("==",result,this.parseRelational())}else if(dart.notNull(this.optionalOperator("==="))){result=new ast$.Binary("===",result,this.parseRelational())}else if(dart.notNull(this.optionalOperator("!="))){result=new ast$.Binary("!=",result,this.parseRelational())}else if(dart.notNull(this.optionalOperator("!=="))){result=new ast$.Binary("!==",result,this.parseRelational())}else{return result}}}parseRelational(){let result=this.parseAdditive();while(true){if(dart.notNull(this.optionalOperator("<"))){result=new ast$.Binary("<",result,this.parseAdditive())}else if(dart.notNull(this.optionalOperator(">"))){result=new ast$.Binary(">",result,this.parseAdditive())}else if(dart.notNull(this.optionalOperator("<="))){result=new ast$.Binary("<=",result,this.parseAdditive())}else if(dart.notNull(this.optionalOperator(">="))){result=new ast$.Binary(">=",result,this.parseAdditive())}else{return result}}}parseAdditive(){let result=this.parseMultiplicative();while(true){if(dart.notNull(this.optionalOperator("+"))){result=new ast$.Binary("+",result,this.parseMultiplicative())}else if(dart.notNull(this.optionalOperator("-"))){result=new ast$.Binary("-",result,this.parseMultiplicative())}else{return result}}}parseMultiplicative(){let result=this.parsePrefix();while(true){if(dart.notNull(this.optionalOperator("*"))){result=new ast$.Binary("*",result,this.parsePrefix())}else if(dart.notNull(this.optionalOperator("%"))){result=new ast$.Binary("%",result,this.parsePrefix())}else if(dart.notNull(this.optionalOperator("/"))){result=new ast$.Binary("/",result,this.parsePrefix())}else{return result}}}parsePrefix(){if(dart.notNull(this.optionalOperator("+"))){return this.parsePrefix()}else if(dart.notNull(this.optionalOperator("-"))){return new ast$.Binary("-",new ast$.LiteralPrimitive(0),this.parsePrefix())}else if(dart.notNull(this.optionalOperator("!"))){return new ast$.PrefixNot(this.parsePrefix())}else{return this.parseCallChain()}}parseCallChain(){let result=this.parsePrimary();while(true){if(dart.notNull(this.optionalCharacter(lexer.$PERIOD))){result=this.parseAccessMemberOrMethodCall(result,false)}else if(dart.notNull(this.optionalOperator("?."))){result=this.parseAccessMemberOrMethodCall(result,true)}else if(dart.notNull(this.optionalCharacter(lexer.$LBRACKET))){let key=this.parsePipe();this.expectCharacter(lexer.$RBRACKET);result=new ast$.KeyedAccess(result,key)}else if(dart.notNull(this.optionalCharacter(lexer.$LPAREN))){let args=this.parseCallArguments();this.expectCharacter(lexer.$RPAREN);result=new ast$.FunctionCall(result,args)}else{return result}}}parsePrimary(){if(dart.notNull(this.optionalCharacter(lexer.$LPAREN))){let result=this.parsePipe();this.expectCharacter(lexer.$RPAREN);return result}else if(dart.notNull(this.next.isKeywordNull())||dart.notNull(this.next.isKeywordUndefined())){this.advance();return new ast$.LiteralPrimitive(null)}else if(dart.notNull(this.next.isKeywordTrue())){this.advance();return new ast$.LiteralPrimitive(true)}else if(dart.notNull(this.next.isKeywordFalse())){this.advance();return new ast$.LiteralPrimitive(false)}else if(dart.notNull(this.parseAction)&&dart.notNull(this.next.isKeywordIf())){this.advance();this.expectCharacter(lexer.$LPAREN);let condition=this.parseExpression();this.expectCharacter(lexer.$RPAREN);let ifExp=this.parseExpressionOrBlock();let elseExp=null;if(dart.notNull(this.next.isKeywordElse())){this.advance();elseExp=this.parseExpressionOrBlock()}return new ast$.If(condition,ifExp,dart.as(elseExp,ast$.AST))}else if(dart.notNull(this.optionalCharacter(lexer.$LBRACKET))){let elements=this.parseExpressionList(lexer.$RBRACKET);this.expectCharacter(lexer.$RBRACKET);return new ast$.LiteralArray(elements)}else if(dart.notNull(this.next.isCharacter(lexer.$LBRACE))){return this.parseLiteralMap()}else if(dart.notNull(this.next.isIdentifier())){return this.parseAccessMemberOrMethodCall(exports._implicitReceiver,false)}else if(dart.notNull(this.next.isNumber())){let value=this.next.toNumber();this.advance();return new ast$.LiteralPrimitive(value)}else if(dart.notNull(this.next.isString())){let literalValue=dart.toString(this.next);this.advance();return new ast$.LiteralPrimitive(literalValue)}else if(dart.notNull(this.index)>=dart.notNull(this.tokens[dartx.length])){this.error(`Unexpected end of expression: ${this.input }`)}else{this.error(`Unexpected token ${this.next }`)}dart.throw(new lang.BaseException("Fell through all cases in parsePrimary"))}parseExpressionList(terminator){let result=[];if(!dart.notNull(this.next.isCharacter(terminator))){do{result[dartx.add](this.parsePipe())}while(dart.notNull(this.optionalCharacter(lexer.$COMMA)))}return result}parseLiteralMap(){let keys=[];let values=[];this.expectCharacter(lexer.$LBRACE);if(!dart.notNull(this.optionalCharacter(lexer.$RBRACE))){do{let key=this.expectIdentifierOrKeywordOrString();keys[dartx.add](key);this.expectCharacter(lexer.$COLON);values[dartx.add](this.parsePipe())}while(dart.notNull(this.optionalCharacter(lexer.$COMMA)));this.expectCharacter(lexer.$RBRACE)}return new ast$.LiteralMap(keys,values)}parseAccessMemberOrMethodCall(receiver,isSafe){if(isSafe===void 0)isSafe=false;let id=this.expectIdentifierOrKeyword();if(dart.notNull(this.optionalCharacter(lexer.$LPAREN))){let args=this.parseCallArguments();this.expectCharacter(lexer.$RPAREN);let fn=this.reflector.method(id);return dart.notNull(isSafe)?new ast$.SafeMethodCall(dart.as(receiver,ast$.AST),id,fn,args):new ast$.MethodCall(dart.as(receiver,ast$.AST),id,fn,args)}else{let getter=this.reflector.getter(id);let setter=this.reflector.setter(id);return dart.notNull(isSafe)?new ast$.SafeAccessMember(dart.as(receiver,ast$.AST),id,getter,setter):new ast$.AccessMember(dart.as(receiver,ast$.AST),id,getter,setter)}}parseCallArguments(){if(dart.notNull(this.next.isCharacter(lexer.$RPAREN)))return dart.list([],ast$.BindingPipe);let positionals=[];do{positionals[dartx.add](this.parsePipe())}while(dart.notNull(this.optionalCharacter(lexer.$COMMA)));return dart.as(positionals,core.List$(ast$.BindingPipe))}parseExpressionOrBlock(){if(dart.notNull(this.optionalCharacter(lexer.$LBRACE))){let block=this.parseBlockContent();this.expectCharacter(lexer.$RBRACE);return block}return this.parseExpression()}parseBlockContent(){if(!dart.notNull(this.parseAction)){this.error("Binding expression cannot contain chained expression")}let exprs=[];while(dart.notNull(this.index)<dart.notNull(this.tokens[dartx.length])&& !dart.notNull(this.next.isCharacter(lexer.$RBRACE))){let expr=this.parseExpression();exprs[dartx.add](expr);if(dart.notNull(this.optionalCharacter(lexer.$SEMICOLON))){while(dart.notNull(this.optionalCharacter(lexer.$SEMICOLON))){}}}if(exprs[dartx.length]==0)return new ast$.EmptyExpr();if(exprs[dartx.length]==1)return dart.as(exprs[dartx.get](0),ast$.AST);return new ast$.Chain(exprs)}expectTemplateBindingKey(){let result="";let operatorFound=false;do{result=dart.notNull(result)+dart.notNull(this.expectIdentifierOrKeywordOrString());operatorFound=this.optionalOperator("-");if(dart.notNull(operatorFound)){result=dart.notNull(result)+"-"}}while(dart.notNull(operatorFound));return dart.toString(result)}parseTemplateBindings(){let bindings=[];let prefix=null;while(dart.notNull(this.index)<dart.notNull(this.tokens[dartx.length])){let keyIsVar=this.optionalKeywordVar();let key=this.expectTemplateBindingKey();if(!dart.notNull(keyIsVar)){if(prefix==null){prefix=key}else{key=dart.as(dart.dsend(dart.dsend(prefix,'+',"-"),'+',key),core.String)}}this.optionalCharacter(lexer.$COLON);let name=null;let expression=null;if(dart.notNull(keyIsVar)){if(dart.notNull(this.optionalOperator("="))){name=this.expectTemplateBindingKey()}else{name="$implicit"}}else if(!dart.notNull(core.identical(this.next,lexer.EOF))&& !dart.notNull(this.peekKeywordVar())){let start=this.inputIndex;let ast=this.parsePipe();let source=this.input[dartx.substring](start,this.inputIndex);expression=new ast$.ASTWithSource(ast,source,dart.as(this.location,core.String))}bindings[dartx.add](new ast$.TemplateBinding(key,keyIsVar,dart.as(name,core.String),dart.as(expression,ast$.ASTWithSource)));if(!dart.notNull(this.optionalCharacter(lexer.$SEMICOLON))){this.optionalCharacter(lexer.$COMMA)}}return bindings}error(message,index){if(index===void 0)index=null;if(dart.notNull(lang.isBlank(index)))index=this.index;let location=dart.notNull(index)<dart.notNull(this.tokens[dartx.length])?`at column ${dart.dsend(dart.dload(this.tokens[dartx.get](index),'index'),'+',1)} in`:'at the end of the expression';dart.throw(new lang.BaseException(`Parser Error: ${message } ${location } [${this.input }] in ${this.location }`))}};dart.setSignature(_ParseAST,{constructors:()=>({_ParseAST:[_ParseAST,[core.String,dart.dynamic,core.List,reflector.Reflector,core.bool]]}),methods:()=>({advance:[dart.dynamic,[]],error:[dart.dynamic,[core.String],[core.int]],expectCharacter:[dart.dynamic,[core.int]],expectIdentifierOrKeyword:[core.String,[]],expectIdentifierOrKeywordOrString:[core.String,[]],expectOperator:[dart.dynamic,[core.String]],expectTemplateBindingKey:[core.String,[]],optionalCharacter:[core.bool,[core.int]],optionalKeywordVar:[core.bool,[]],optionalOperator:[core.bool,[core.String]],parseAccessMemberOrMethodCall:[ast$.AST,[dart.dynamic],[core.bool]],parseAdditive:[ast$.AST,[]],parseBlockContent:[ast$.AST,[]],parseCallArguments:[core.List$(ast$.BindingPipe),[]],parseCallChain:[ast$.AST,[]],parseChain:[ast$.AST,[]],parseConditional:[ast$.AST,[]],parseEquality:[ast$.AST,[]],parseExpression:[ast$.AST,[]],parseExpressionList:[core.List,[core.int]],parseExpressionOrBlock:[ast$.AST,[]],parseLiteralMap:[ast$.LiteralMap,[]],parseLogicalAnd:[ast$.AST,[]],parseLogicalOr:[ast$.AST,[]],parseMultiplicative:[ast$.AST,[]],parsePipe:[ast$.AST,[]],parsePrefix:[ast$.AST,[]],parsePrimary:[ast$.AST,[]],parseRelational:[ast$.AST,[]],parseSimpleBinding:[ast$.AST,[]],parseTemplateBindings:[core.List,[]],peek:[lexer.Token,[core.int]],peekKeywordVar:[core.bool,[]]})});class SimpleExpressionChecker extends core.Object{SimpleExpressionChecker(){this.simple=true}static check(ast){let s=new SimpleExpressionChecker();ast.visit(s);return s.simple}visitImplicitReceiver(ast){}visitInterpolation(ast){this.simple=false}visitLiteralPrimitive(ast){}visitAccessMember(ast){}visitSafeAccessMember(ast){this.simple=false}visitMethodCall(ast){this.simple=false}visitSafeMethodCall(ast){this.simple=false}visitFunctionCall(ast){this.simple=false}visitLiteralArray(ast){this.visitAll(ast.expressions)}visitLiteralMap(ast){this.visitAll(ast.values)}visitBinary(ast){this.simple=false}visitPrefixNot(ast){this.simple=false}visitConditional(ast){this.simple=false}visitPipe(ast){this.simple=false}visitKeyedAccess(ast){this.simple=false}visitAll(asts){let res=collection.ListWrapper.createFixedSize(asts[dartx.length]);for(let i=0;dart.notNull(i)<dart.notNull(asts[dartx.length]);i=dart.notNull(i)+1){res[dartx.set](i,dart.dsend(asts[dartx.get](i),'visit',this))}return res}visitChain(ast){this.simple=false}visitAssignment(ast){this.simple=false}visitIf(ast){this.simple=false}};SimpleExpressionChecker[dart.implements]=()=>[ast$.AstVisitor];dart.setSignature(SimpleExpressionChecker,{methods:()=>({visitAccessMember:[dart.dynamic,[ast$.AccessMember]],visitAll:[core.List,[core.List]],visitAssignment:[dart.dynamic,[ast$.Assignment]],visitBinary:[dart.dynamic,[ast$.Binary]],visitChain:[dart.dynamic,[ast$.Chain]],visitConditional:[dart.dynamic,[ast$.Conditional]],visitFunctionCall:[dart.dynamic,[ast$.FunctionCall]],visitIf:[dart.dynamic,[ast$.If]],visitImplicitReceiver:[dart.dynamic,[ast$.ImplicitReceiver]],visitInterpolation:[dart.dynamic,[ast$.Interpolation]],visitKeyedAccess:[dart.dynamic,[ast$.KeyedAccess]],visitLiteralArray:[dart.dynamic,[ast$.LiteralArray]],visitLiteralMap:[dart.dynamic,[ast$.LiteralMap]],visitLiteralPrimitive:[dart.dynamic,[ast$.LiteralPrimitive]],visitMethodCall:[dart.dynamic,[ast$.MethodCall]],visitPipe:[dart.dynamic,[ast$.BindingPipe]],visitPrefixNot:[dart.dynamic,[ast$.PrefixNot]],visitSafeAccessMember:[dart.dynamic,[ast$.SafeAccessMember]],visitSafeMethodCall:[dart.dynamic,[ast$.SafeMethodCall]]}),names:['check'],statics:()=>({check:[core.bool,[ast$.AST]]})});exports.Parser=Parser;exports.SimpleExpressionChecker=SimpleExpressionChecker});dart_library.library('angular2/src/change_detection/pipes/iterable_changes',null,["dart_runtime/dart",'dart/core','angular2/src/change_detection/pipes/pipe','angular2/src/change_detection/change_detector_ref','angular2/src/facade/collection','angular2/src/facade/lang'],[],function(exports,dart,core,pipe,change_detector_ref,collection$,lang){'use strict';let dartx=dart.dartx;class IterableChangesFactory extends core.Object{supports(obj){return IterableChanges.supportsObj(obj)}create(cdRef){return new IterableChanges()}IterableChangesFactory(){}};IterableChangesFactory[dart.implements]=()=>[pipe.PipeFactory];dart.setSignature(IterableChangesFactory,{constructors:()=>({IterableChangesFactory:[IterableChangesFactory,[]]}),methods:()=>({create:[pipe.Pipe,[change_detector_ref.ChangeDetectorRef]],supports:[core.bool,[dart.dynamic]]})});let _collection=Symbol('_collection');let _length=Symbol('_length');let _linkedRecords=Symbol('_linkedRecords');let _unlinkedRecords=Symbol('_unlinkedRecords');let _previousItHead=Symbol('_previousItHead');let _itHead=Symbol('_itHead');let _itTail=Symbol('_itTail');let _additionsHead=Symbol('_additionsHead');let _additionsTail=Symbol('_additionsTail');let _movesHead=Symbol('_movesHead');let _movesTail=Symbol('_movesTail');let _removalsHead=Symbol('_removalsHead');let _removalsTail=Symbol('_removalsTail');let _next=Symbol('_next');let _nextPrevious=Symbol('_nextPrevious');let _nextAdded=Symbol('_nextAdded');let _nextMoved=Symbol('_nextMoved');let _nextRemoved=Symbol('_nextRemoved');let _reset=Symbol('_reset');let _mismatch=Symbol('_mismatch');let _verifyReinsertion=Symbol('_verifyReinsertion');let _truncate=Symbol('_truncate');let _prev=Symbol('_prev');let _remove=Symbol('_remove');let _moveAfter=Symbol('_moveAfter');let _reinsertAfter=Symbol('_reinsertAfter');let _addAfter=Symbol('_addAfter');let _addToMoves=Symbol('_addToMoves');let _addToRemovals=Symbol('_addToRemovals');let _unlink=Symbol('_unlink');let _prevRemoved=Symbol('_prevRemoved');let _insertAfter=Symbol('_insertAfter');class IterableChanges extends pipe.BasePipe{IterableChanges(){this[_collection]=null;this[_length]=null;this[_linkedRecords]=null;this[_unlinkedRecords]=null;this[_previousItHead]=null;this[_itHead]=null;this[_itTail]=null;this[_additionsHead]=null;this[_additionsTail]=null;this[_movesHead]=null;this[_movesTail]=null;this[_removalsHead]=null;this[_removalsTail]=null;super.BasePipe();}static supportsObj(obj){return collection$.isListLikeIterable(obj)}supports(obj){return IterableChanges.supportsObj(obj)}get collection(){return this[_collection]}get length(){return this[_length]}forEachItem(fn){let record=null;for(record=this[_itHead];!dart.notNull(core.identical(record,null));record=record[_next]){dart.dcall(fn,record)}}forEachPreviousItem(fn){let record=null;for(record=this[_previousItHead];!dart.notNull(core.identical(record,null));record=record[_nextPrevious]){dart.dcall(fn,record)}}forEachAddedItem(fn){let record=null;for(record=this[_additionsHead];!dart.notNull(core.identical(record,null));record=record[_nextAdded]){dart.dcall(fn,record)}}forEachMovedItem(fn){let record=null;for(record=this[_movesHead];!dart.notNull(core.identical(record,null));record=record[_nextMoved]){dart.dcall(fn,record)}}forEachRemovedItem(fn){let record=null;for(record=this[_removalsHead];!dart.notNull(core.identical(record,null));record=record[_nextRemoved]){dart.dcall(fn,record)}}transform(collection,args){if(args===void 0)args=null;if(dart.notNull(this.check(collection))){return pipe.WrappedValue.wrap(this)}else{return null}}check(collection){this[_reset]();let record=this[_itHead];let mayBeDirty=false;let index=null;let item=null;if(dart.notNull(lang.isArray(collection))){let list=collection;this[_length]=dart.as(dart.dload(collection,'length'),core.int);for(index=0;dart.notNull(index)<dart.notNull(this[_length]);index=dart.notNull(index)+1){item=dart.dindex(list,index);if(dart.notNull(core.identical(record,null))|| !dart.notNull(lang.looseIdentical(record.item,item))){record=this[_mismatch](record,item,index);mayBeDirty=true}else if(dart.notNull(mayBeDirty)){record=this[_verifyReinsertion](record,item,index)}record=record[_next]}}else{index=0;collection$.iterateListLike(collection,dart.fn(item=>{if(dart.notNull(core.identical(record,null))|| !dart.notNull(lang.looseIdentical(record.item,item))){record=this[_mismatch](record,item,index);mayBeDirty=true}else if(dart.notNull(mayBeDirty)){record=this[_verifyReinsertion](record,item,index)}record=record[_next];index=dart.notNull(index)+1}));this[_length]=index}this[_truncate](record);this[_collection]=collection;return this.isDirty}get isDirty(){return!dart.notNull(core.identical(this[_additionsHead],null))|| !dart.notNull(core.identical(this[_movesHead],null))|| !dart.notNull(core.identical(this[_removalsHead],null))}[_reset](){if(dart.notNull(this.isDirty)){let record=null;let nextRecord=null;for(record=this[_previousItHead]=this[_itHead];!dart.notNull(core.identical(record,null));record=record[_next]){record[_nextPrevious]=record[_next]}for(record=this[_additionsHead];!dart.notNull(core.identical(record,null));record=record[_nextAdded]){record.previousIndex=record.currentIndex}this[_additionsHead]=this[_additionsTail]=null;for(record=this[_movesHead];!dart.notNull(core.identical(record,null));record=nextRecord){record.previousIndex=record.currentIndex;nextRecord=record[_nextMoved]}this[_movesHead]=this[_movesTail]=null;this[_removalsHead]=this[_removalsTail]=null}}[_mismatch](record,item,index){let previousRecord=null;if(dart.notNull(core.identical(record,null))){previousRecord=this[_itTail]}else{previousRecord=record[_prev];this[_remove](record)}record=dart.notNull(core.identical(this[_linkedRecords],null))?null:this[_linkedRecords].get(item,index);if(!dart.notNull(core.identical(record,null))){this[_moveAfter](record,previousRecord,index)}else{record=dart.notNull(core.identical(this[_unlinkedRecords],null))?null:this[_unlinkedRecords].get(item);if(!dart.notNull(core.identical(record,null))){this[_reinsertAfter](record,previousRecord,index)}else{record=this[_addAfter](new CollectionChangeRecord(item),previousRecord,index)}}return record}[_verifyReinsertion](record,item,index){let reinsertRecord=dart.notNull(core.identical(this[_unlinkedRecords],null))?null:this[_unlinkedRecords].get(item);if(!dart.notNull(core.identical(reinsertRecord,null))){record=this[_reinsertAfter](reinsertRecord,record[_prev],index)}else if(record.currentIndex!=index){record.currentIndex=index;this[_addToMoves](record,index)}return record}[_truncate](record){while(!dart.notNull(core.identical(record,null))){let nextRecord=record[_next];this[_addToRemovals](this[_unlink](record));record=nextRecord}if(!dart.notNull(core.identical(this[_unlinkedRecords],null))){this[_unlinkedRecords].clear()}if(!dart.notNull(core.identical(this[_additionsTail],null))){this[_additionsTail][_nextAdded]=null}if(!dart.notNull(core.identical(this[_movesTail],null))){this[_movesTail][_nextMoved]=null}if(!dart.notNull(core.identical(this[_itTail],null))){this[_itTail][_next]=null}if(!dart.notNull(core.identical(this[_removalsTail],null))){this[_removalsTail][_nextRemoved]=null}}[_reinsertAfter](record,prevRecord,index){if(!dart.notNull(core.identical(this[_unlinkedRecords],null))){this[_unlinkedRecords].remove(record)}let prev=record[_prevRemoved];let next=record[_nextRemoved];if(dart.notNull(core.identical(prev,null))){this[_removalsHead]=next}else{prev[_nextRemoved]=next}if(dart.notNull(core.identical(next,null))){this[_removalsTail]=prev}else{next[_prevRemoved]=prev}this[_insertAfter](record,prevRecord,index);this[_addToMoves](record,index);return record}[_moveAfter](record,prevRecord,index){this[_unlink](record);this[_insertAfter](record,prevRecord,index);this[_addToMoves](record,index);return record}[_addAfter](record,prevRecord,index){this[_insertAfter](record,prevRecord,index);if(dart.notNull(core.identical(this[_additionsTail],null))){this[_additionsTail]=this[_additionsHead]=record}else{this[_additionsTail]=this[_additionsTail][_nextAdded]=record}return record}[_insertAfter](record,prevRecord,index){let next=dart.notNull(core.identical(prevRecord,null))?this[_itHead]:prevRecord[_next];record[_next]=next;record[_prev]=prevRecord;if(dart.notNull(core.identical(next,null))){this[_itTail]=record}else{next[_prev]=record}if(dart.notNull(core.identical(prevRecord,null))){this[_itHead]=record}else{prevRecord[_next]=record}if(dart.notNull(core.identical(this[_linkedRecords],null))){this[_linkedRecords]=new _DuplicateMap()}this[_linkedRecords].put(record);record.currentIndex=index;return record}[_remove](record){return this[_addToRemovals](this[_unlink](record))}[_unlink](record){if(!dart.notNull(core.identical(this[_linkedRecords],null))){this[_linkedRecords].remove(record)}let prev=record[_prev];let next=record[_next];if(dart.notNull(core.identical(prev,null))){this[_itHead]=next}else{prev[_next]=next}if(dart.notNull(core.identical(next,null))){this[_itTail]=prev}else{next[_prev]=prev}return record}[_addToMoves](record,toIndex){if(dart.notNull(core.identical(record.previousIndex,toIndex))){return record}if(dart.notNull(core.identical(this[_movesTail],null))){this[_movesTail]=this[_movesHead]=record}else{this[_movesTail]=this[_movesTail][_nextMoved]=record}return record}[_addToRemovals](record){if(dart.notNull(core.identical(this[_unlinkedRecords],null))){this[_unlinkedRecords]=new _DuplicateMap()}this[_unlinkedRecords].put(record);record.currentIndex=null;record[_nextRemoved]=null;if(dart.notNull(core.identical(this[_removalsTail],null))){this[_removalsTail]=this[_removalsHead]=record;record[_prevRemoved]=null}else{record[_prevRemoved]=this[_removalsTail];this[_removalsTail]=this[_removalsTail][_nextRemoved]=record}return record}toString(){let record=null;let list=[];for(record=this[_itHead];!dart.notNull(core.identical(record,null));record=record[_next]){list[dartx.add](record)}let previous=[];for(record=this[_previousItHead];!dart.notNull(core.identical(record,null));record=record[_nextPrevious]){previous[dartx.add](record)}let additions=[];for(record=this[_additionsHead];!dart.notNull(core.identical(record,null));record=record[_nextAdded]){additions[dartx.add](record)}let moves=[];for(record=this[_movesHead];!dart.notNull(core.identical(record,null));record=record[_nextMoved]){moves[dartx.add](record)}let removals=[];for(record=this[_removalsHead];!dart.notNull(core.identical(record,null));record=record[_nextRemoved]){removals[dartx.add](record)}return "collection: "+dart.notNull(list[dartx.join](", "))+"\nprevious: "+dart.notNull(previous[dartx.join](", "))+"\nadditions: "+dart.notNull(additions[dartx.join](", "))+"\nmoves: "+dart.notNull(moves[dartx.join](", "))+"\nremovals: "+dart.notNull(removals[dartx.join](", "))+"\n"}};dart.setSignature(IterableChanges,{constructors:()=>({IterableChanges:[IterableChanges,[]]}),methods:()=>({[_addToRemovals]:[CollectionChangeRecord,[CollectionChangeRecord]],[_remove]:[CollectionChangeRecord,[CollectionChangeRecord]],[_insertAfter]:[CollectionChangeRecord,[CollectionChangeRecord,CollectionChangeRecord,core.int]],[_addAfter]:[CollectionChangeRecord,[CollectionChangeRecord,CollectionChangeRecord,core.int]],[_unlink]:[CollectionChangeRecord,[CollectionChangeRecord]],[_reinsertAfter]:[CollectionChangeRecord,[CollectionChangeRecord,CollectionChangeRecord,core.int]],[_truncate]:[dart.dynamic,[CollectionChangeRecord]],[_addToMoves]:[CollectionChangeRecord,[CollectionChangeRecord,core.int]],[_mismatch]:[CollectionChangeRecord,[CollectionChangeRecord,dart.dynamic,core.int]],[_reset]:[dart.dynamic,[]],[_moveAfter]:[CollectionChangeRecord,[CollectionChangeRecord,CollectionChangeRecord,core.int]],[_verifyReinsertion]:[CollectionChangeRecord,[CollectionChangeRecord,dart.dynamic,core.int]],check:[core.bool,[dart.dynamic]],forEachAddedItem:[dart.dynamic,[core.Function]],forEachItem:[dart.dynamic,[core.Function]],forEachMovedItem:[dart.dynamic,[core.Function]],forEachPreviousItem:[dart.dynamic,[core.Function]],forEachRemovedItem:[dart.dynamic,[core.Function]],transform:[dart.dynamic,[dart.dynamic],[core.List]]}),names:['supportsObj'],statics:()=>({supportsObj:[core.bool,[dart.dynamic]]})});let _prevDup=Symbol('_prevDup');let _nextDup=Symbol('_nextDup');class CollectionChangeRecord extends core.Object{CollectionChangeRecord(item){this.item=item;this.currentIndex=null;this.previousIndex=null;this[_nextPrevious]=null;this[_prev]=null;this[_next]=null;this[_prevDup]=null;this[_nextDup]=null;this[_prevRemoved]=null;this[_nextRemoved]=null;this[_nextAdded]=null;this[_nextMoved]=null}toString(){return dart.notNull(core.identical(this.previousIndex,this.currentIndex))?lang.stringify(this.item):dart.notNull(lang.stringify(this.item))+"["+dart.notNull(lang.stringify(this.previousIndex))+"->"+dart.notNull(lang.stringify(this.currentIndex))+"]"}};dart.setSignature(CollectionChangeRecord,{constructors:()=>({CollectionChangeRecord:[CollectionChangeRecord,[dart.dynamic]]})});let _head=Symbol('_head');let _tail=Symbol('_tail');class _DuplicateItemRecordList extends core.Object{_DuplicateItemRecordList(){this[_head]=null;this[_tail]=null}add(record){if(dart.notNull(core.identical(this[_head],null))){this[_head]=this[_tail]=record;record[_nextDup]=null;record[_prevDup]=null}else{this[_tail][_nextDup]=record;record[_prevDup]=this[_tail];record[_nextDup]=null;this[_tail]=record}}get(item,afterIndex){let record=null;for(record=this[_head];!dart.notNull(core.identical(record,null));record=record[_nextDup]){if((dart.notNull(core.identical(afterIndex,null))||dart.notNull(afterIndex)<dart.notNull(record.currentIndex))&&dart.notNull(lang.looseIdentical(record.item,item))){return record}}return null}remove(record){let prev=record[_prevDup];let next=record[_nextDup];if(dart.notNull(core.identical(prev,null))){this[_head]=next}else{prev[_nextDup]=next}if(dart.notNull(core.identical(next,null))){this[_tail]=prev}else{next[_prevDup]=prev}return core.identical(this[_head],null)}};dart.setSignature(_DuplicateItemRecordList,{methods:()=>({add:[dart.void,[CollectionChangeRecord]],get:[CollectionChangeRecord,[dart.dynamic,core.int]],remove:[core.bool,[CollectionChangeRecord]]})});class _DuplicateMap extends core.Object{_DuplicateMap(){this.map=core.Map$(dart.dynamic,_DuplicateItemRecordList).new()}put(record){let key=lang.getMapKey(record.item);let duplicates=this.map.get(key);if(!dart.notNull(lang.isPresent(duplicates))){duplicates=new _DuplicateItemRecordList();this.map.set(key,duplicates)}duplicates.add(record)}get(value,afterIndex){if(afterIndex===void 0)afterIndex=null;let key=lang.getMapKey(value);let recordList=this.map.get(key);return dart.notNull(lang.isBlank(recordList))?null:recordList.get(value,dart.as(afterIndex,core.int))}remove(record){let key=lang.getMapKey(record.item);let recordList=this.map.get(key);if(dart.notNull(recordList.remove(record))){collection$.MapWrapper.delete(this.map,key)}return record}get isEmpty(){return core.identical(collection$.MapWrapper.size(this.map),0)}clear(){this.map.clear()}toString(){return "_DuplicateMap("+dart.notNull(lang.stringify(this.map))+")"}};dart.setSignature(_DuplicateMap,{methods:()=>({clear:[dart.dynamic,[]],get:[CollectionChangeRecord,[dart.dynamic],[dart.dynamic]],put:[dart.dynamic,[CollectionChangeRecord]],remove:[CollectionChangeRecord,[CollectionChangeRecord]]})});exports.IterableChangesFactory=IterableChangesFactory;exports.IterableChanges=IterableChanges;exports.CollectionChangeRecord=CollectionChangeRecord});dart_library.library('angular2/src/change_detection/pipes/json_pipe',null,["dart_runtime/dart",'angular2/src/change_detection/pipes/pipe','angular2/src/facade/lang','dart/core','angular2/src/change_detection/change_detector_ref'],[],function(exports,dart,pipe,lang,core,change_detector_ref){'use strict';let dartx=dart.dartx;class JsonPipe extends pipe.BasePipe{transform(value,args){if(args===void 0)args=null;return lang.Json.stringify(value)}create(cdRef){return this}JsonPipe(){super.BasePipe()}};JsonPipe[dart.implements]=()=>[pipe.PipeFactory];dart.setSignature(JsonPipe,{constructors:()=>({JsonPipe:[JsonPipe,[]]}),methods:()=>({create:[pipe.Pipe,[change_detector_ref.ChangeDetectorRef]],transform:[core.String,[dart.dynamic],[core.List]]})});exports.JsonPipe=JsonPipe});dart_library.library('angular2/src/change_detection/pipes/keyvalue_changes',null,["dart_runtime/dart",'dart/core','angular2/src/change_detection/pipes/pipe','angular2/src/change_detection/change_detector_ref','angular2/src/facade/lang','angular2/src/facade/collection'],[],function(exports,dart,core,pipe,change_detector_ref,lang,collection){'use strict';let dartx=dart.dartx;class KeyValueChangesFactory extends core.Object{supports(obj){return KeyValueChanges.supportsObj(obj)}create(cdRef){return new KeyValueChanges()}KeyValueChangesFactory(){}};KeyValueChangesFactory[dart.implements]=()=>[pipe.PipeFactory];dart.setSignature(KeyValueChangesFactory,{constructors:()=>({KeyValueChangesFactory:[KeyValueChangesFactory,[]]}),methods:()=>({create:[pipe.Pipe,[change_detector_ref.ChangeDetectorRef]],supports:[core.bool,[dart.dynamic]]})});let _records=Symbol('_records');let _mapHead=Symbol('_mapHead');let _previousMapHead=Symbol('_previousMapHead');let _changesHead=Symbol('_changesHead');let _changesTail=Symbol('_changesTail');let _additionsHead=Symbol('_additionsHead');let _additionsTail=Symbol('_additionsTail');let _removalsHead=Symbol('_removalsHead');let _removalsTail=Symbol('_removalsTail');let _next=Symbol('_next');let _nextPrevious=Symbol('_nextPrevious');let _nextChanged=Symbol('_nextChanged');let _nextAdded=Symbol('_nextAdded');let _nextRemoved=Symbol('_nextRemoved');let _reset=Symbol('_reset');let _forEach=Symbol('_forEach');let _addToChanges=Symbol('_addToChanges');let _removeFromSeq=Symbol('_removeFromSeq');let _addToRemovals=Symbol('_addToRemovals');let _addToAdditions=Symbol('_addToAdditions');let _isInRemovals=Symbol('_isInRemovals');let _removeFromRemovals=Symbol('_removeFromRemovals');let _truncate=Symbol('_truncate');let _prevRemoved=Symbol('_prevRemoved');class KeyValueChanges extends pipe.BasePipe{KeyValueChanges(){this[_records]=core.Map.new();this[_mapHead]=null;this[_previousMapHead]=null;this[_changesHead]=null;this[_changesTail]=null;this[_additionsHead]=null;this[_additionsTail]=null;this[_removalsHead]=null;this[_removalsTail]=null;super.BasePipe()}static supportsObj(obj){return dart.is(obj,core.Map)||dart.notNull(lang.isJsObject(obj))}supports(obj){return KeyValueChanges.supportsObj(obj)}transform(map,args){if(args===void 0)args=null;if(dart.notNull(this.check(map))){return pipe.WrappedValue.wrap(this)}else{return null}}get isDirty(){return!dart.notNull(core.identical(this[_additionsHead],null))|| !dart.notNull(core.identical(this[_changesHead],null))|| !dart.notNull(core.identical(this[_removalsHead],null))}forEachItem(fn){let record=null;for(record=this[_mapHead];!dart.notNull(core.identical(record,null));record=record[_next]){dart.dcall(fn,record)}}forEachPreviousItem(fn){let record=null;for(record=this[_previousMapHead];!dart.notNull(core.identical(record,null));record=record[_nextPrevious]){dart.dcall(fn,record)}}forEachChangedItem(fn){let record=null;for(record=this[_changesHead];!dart.notNull(core.identical(record,null));record=record[_nextChanged]){dart.dcall(fn,record)}}forEachAddedItem(fn){let record=null;for(record=this[_additionsHead];!dart.notNull(core.identical(record,null));record=record[_nextAdded]){dart.dcall(fn,record)}}forEachRemovedItem(fn){let record=null;for(record=this[_removalsHead];!dart.notNull(core.identical(record,null));record=record[_nextRemoved]){dart.dcall(fn,record)}}check(map){this[_reset]();let records=this[_records];let oldSeqRecord=this[_mapHead];let lastOldSeqRecord=null;let lastNewSeqRecord=null;let seqChanged=false;this[_forEach](map,dart.fn((value,key)=>{let newSeqRecord=null;if(!dart.notNull(core.identical(oldSeqRecord,null))&&dart.notNull(core.identical(key,oldSeqRecord.key))){newSeqRecord=oldSeqRecord;if(!dart.notNull(lang.looseIdentical(value,oldSeqRecord.currentValue))){oldSeqRecord.previousValue=oldSeqRecord.currentValue;oldSeqRecord.currentValue=value;this[_addToChanges](oldSeqRecord)}}else{seqChanged=true;if(!dart.notNull(core.identical(oldSeqRecord,null))){oldSeqRecord[_next]=null;this[_removeFromSeq](lastOldSeqRecord,oldSeqRecord);this[_addToRemovals](oldSeqRecord)}if(dart.notNull(records.containsKey(key))){newSeqRecord=records.get(key)}else{newSeqRecord=new KVChangeRecord(key);records.set(key,newSeqRecord);dart.dput(newSeqRecord,'currentValue',value);this[_addToAdditions](dart.as(newSeqRecord,KVChangeRecord))}}if(dart.notNull(seqChanged)){if(dart.notNull(dart.as(this[_isInRemovals](dart.as(newSeqRecord,KVChangeRecord)),core.bool))){this[_removeFromRemovals](dart.as(newSeqRecord,KVChangeRecord))}if(lastNewSeqRecord==null){this[_mapHead]=dart.as(newSeqRecord,KVChangeRecord)}else{lastNewSeqRecord[_next]=dart.as(newSeqRecord,KVChangeRecord)}}lastOldSeqRecord=oldSeqRecord;lastNewSeqRecord=dart.as(newSeqRecord,KVChangeRecord);oldSeqRecord=dart.notNull(core.identical(oldSeqRecord,null))?null:oldSeqRecord[_next]}));this[_truncate](lastOldSeqRecord,oldSeqRecord);return this.isDirty}[_reset](){if(dart.notNull(this.isDirty)){let record=null;for(record=this[_previousMapHead]=this[_mapHead];!dart.notNull(core.identical(record,null));record=record[_next]){record[_nextPrevious]=record[_next]}for(record=this[_changesHead];!dart.notNull(core.identical(record,null));record=record[_nextChanged]){record.previousValue=record.currentValue}for(record=this[_additionsHead];record!=null;record=record[_nextAdded]){record.previousValue=record.currentValue}this[_changesHead]=this[_changesTail]=null;this[_additionsHead]=this[_additionsTail]=null;this[_removalsHead]=this[_removalsTail]=null}}[_truncate](lastRecord,record){while(!dart.notNull(core.identical(record,null))){if(dart.notNull(core.identical(lastRecord,null))){this[_mapHead]=null}else{lastRecord[_next]=null}let nextRecord=record[_next];this[_addToRemovals](record);lastRecord=record;record=nextRecord}for(let rec=this[_removalsHead];!dart.notNull(core.identical(rec,null));rec=rec[_nextRemoved]){rec.previousValue=rec.currentValue;rec.currentValue=null;collection.MapWrapper.delete(this[_records],rec.key)}}[_isInRemovals](record){return dart.notNull(core.identical(record,this[_removalsHead]))|| !dart.notNull(core.identical(record[_nextRemoved],null))|| !dart.notNull(core.identical(record[_prevRemoved],null))}[_addToRemovals](record){if(dart.notNull(core.identical(this[_removalsHead],null))){this[_removalsHead]=this[_removalsTail]=record}else{this[_removalsTail][_nextRemoved]=record;record[_prevRemoved]=this[_removalsTail];this[_removalsTail]=record}}[_removeFromSeq](prev,record){let next=record[_next];if(dart.notNull(core.identical(prev,null))){this[_mapHead]=next}else{prev[_next]=next}}[_removeFromRemovals](record){let prev=record[_prevRemoved];let next=record[_nextRemoved];if(dart.notNull(core.identical(prev,null))){this[_removalsHead]=next}else{prev[_nextRemoved]=next}if(dart.notNull(core.identical(next,null))){this[_removalsTail]=prev}else{next[_prevRemoved]=prev}record[_prevRemoved]=record[_nextRemoved]=null}[_addToAdditions](record){if(dart.notNull(core.identical(this[_additionsHead],null))){this[_additionsHead]=this[_additionsTail]=record}else{this[_additionsTail][_nextAdded]=record;this[_additionsTail]=record}}[_addToChanges](record){if(dart.notNull(core.identical(this[_changesHead],null))){this[_changesHead]=this[_changesTail]=record}else{this[_changesTail][_nextChanged]=record;this[_changesTail]=record}}toString(){let items=[];let previous=[];let changes=[];let additions=[];let removals=[];let record=null;for(record=this[_mapHead];!dart.notNull(core.identical(record,null));record=record[_next]){items[dartx.add](lang.stringify(record))}for(record=this[_previousMapHead];!dart.notNull(core.identical(record,null));record=record[_nextPrevious]){previous[dartx.add](lang.stringify(record))}for(record=this[_changesHead];!dart.notNull(core.identical(record,null));record=record[_nextChanged]){changes[dartx.add](lang.stringify(record))}for(record=this[_additionsHead];!dart.notNull(core.identical(record,null));record=record[_nextAdded]){additions[dartx.add](lang.stringify(record))}for(record=this[_removalsHead];!dart.notNull(core.identical(record,null));record=record[_nextRemoved]){removals[dartx.add](lang.stringify(record))}return "map: "+dart.notNull(items[dartx.join](", "))+"\nprevious: "+dart.notNull(previous[dartx.join](", "))+"\nadditions: "+dart.notNull(additions[dartx.join](", "))+"\nchanges: "+dart.notNull(changes[dartx.join](", "))+"\nremovals: "+dart.notNull(removals[dartx.join](", "))+"\n"}[_forEach](obj,fn){if(dart.is(obj,core.Map)){collection.MapWrapper.forEach(dart.as(obj,core.Map),dart.as(fn,__CastType0))}else{collection.StringMapWrapper.forEach(dart.as(obj,core.Map),dart.as(fn,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])))}}};dart.setSignature(KeyValueChanges,{methods:()=>({[_forEach]:[dart.dynamic,[dart.dynamic,core.Function]],[_addToAdditions]:[dart.dynamic,[KVChangeRecord]],[_removeFromRemovals]:[dart.dynamic,[KVChangeRecord]],[_removeFromSeq]:[dart.dynamic,[KVChangeRecord,KVChangeRecord]],[_addToRemovals]:[dart.dynamic,[KVChangeRecord]],[_isInRemovals]:[dart.dynamic,[KVChangeRecord]],[_truncate]:[dart.dynamic,[KVChangeRecord,KVChangeRecord]],[_addToChanges]:[dart.dynamic,[KVChangeRecord]],[_reset]:[dart.dynamic,[]],check:[core.bool,[dart.dynamic]],forEachAddedItem:[dart.dynamic,[core.Function]],forEachChangedItem:[dart.dynamic,[core.Function]],forEachItem:[dart.dynamic,[core.Function]],forEachPreviousItem:[dart.dynamic,[core.Function]],forEachRemovedItem:[dart.dynamic,[core.Function]],transform:[dart.dynamic,[dart.dynamic],[core.List]]}),names:['supportsObj'],statics:()=>({supportsObj:[core.bool,[dart.dynamic]]})});class KVChangeRecord extends core.Object{KVChangeRecord(key){this.key=key;this.previousValue=null;this.currentValue=null;this[_nextPrevious]=null;this[_next]=null;this[_nextAdded]=null;this[_nextRemoved]=null;this[_prevRemoved]=null;this[_nextChanged]=null}toString(){return dart.notNull(lang.looseIdentical(this.previousValue,this.currentValue))?lang.stringify(this.key):dart.notNull(lang.stringify(this.key))+"["+dart.notNull(lang.stringify(this.previousValue))+"->"+dart.notNull(lang.stringify(this.currentValue))+"]"}};dart.setSignature(KVChangeRecord,{constructors:()=>({KVChangeRecord:[KVChangeRecord,[dart.dynamic]]})});let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]));exports.KeyValueChangesFactory=KeyValueChangesFactory;exports.KeyValueChanges=KeyValueChanges;exports.KVChangeRecord=KVChangeRecord});dart_library.library('angular2/src/change_detection/pipes/limit_to_pipe',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/facade/math','angular2/src/facade/collection','angular2/src/change_detection/pipes/pipe','angular2/src/change_detection/change_detector_ref'],[],function(exports,dart,core,lang,math,collection,pipe,change_detector_ref){'use strict';let dartx=dart.dartx;class LimitToPipe extends core.Object{static supportsObj(obj){return dart.notNull(lang.isString(obj))||dart.notNull(lang.isArray(obj))}supports(obj){return LimitToPipe.supportsObj(obj)}transform(value,args){if(args===void 0)args=null;if(dart.notNull(lang.isBlank(args))||args[dartx.length]==0){dart.throw(new lang.BaseException("limitTo pipe requires one argument"))}let limit=dart.as(args[dartx.get](0),core.int);let left=0,right=math.Math.min(limit,dart.as(dart.dload(value,'length'),core.num));if(dart.notNull(limit)<0){left=math.Math.max(0,dart.as(dart.dsend(dart.dload(value,'length'),'+',limit),core.num));right=dart.as(dart.dload(value,'length'),core.num)}if(dart.notNull(lang.isString(value))){return lang.StringWrapper.substring(dart.as(value,core.String),left,right)}return collection.ListWrapper.slice(dart.as(value,core.List),left,right)}onDestroy(){}};LimitToPipe[dart.implements]=()=>[pipe.Pipe];dart.setSignature(LimitToPipe,{methods:()=>({onDestroy:[dart.void,[]],supports:[core.bool,[dart.dynamic]],transform:[dart.dynamic,[dart.dynamic],[core.List]]}),names:['supportsObj'],statics:()=>({supportsObj:[core.bool,[dart.dynamic]]})});class LimitToPipeFactory extends core.Object{supports(obj){return LimitToPipe.supportsObj(obj)}create(cdRef){return new LimitToPipe()}LimitToPipeFactory(){}};LimitToPipeFactory[dart.implements]=()=>[pipe.PipeFactory];dart.setSignature(LimitToPipeFactory,{constructors:()=>({LimitToPipeFactory:[LimitToPipeFactory,[]]}),methods:()=>({create:[pipe.Pipe,[change_detector_ref.ChangeDetectorRef]],supports:[core.bool,[dart.dynamic]]})});exports.LimitToPipe=LimitToPipe;exports.LimitToPipeFactory=LimitToPipeFactory});dart_library.library('angular2/src/change_detection/pipes/lowercase_pipe',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/change_detection/pipes/pipe','angular2/src/change_detection/change_detector_ref'],[],function(exports,dart,core,lang,pipe,change_detector_ref){'use strict';let dartx=dart.dartx;let _latestValue=Symbol('_latestValue');class LowerCasePipe extends core.Object{LowerCasePipe(){this[_latestValue]=null}supports(str){return lang.isString(str)}onDestroy(){this[_latestValue]=null}transform(value,args){if(args===void 0)args=null;if(!dart.notNull(core.identical(this[_latestValue],value))){this[_latestValue]=value;return lang.StringWrapper.toLowerCase(value)}else{return this[_latestValue]}}};LowerCasePipe[dart.implements]=()=>[pipe.Pipe];dart.setSignature(LowerCasePipe,{methods:()=>({onDestroy:[dart.void,[]],supports:[core.bool,[dart.dynamic]],transform:[core.String,[core.String],[core.List]]})});class LowerCaseFactory extends core.Object{supports(str){return lang.isString(str)}create(cdRef){return new LowerCasePipe()}LowerCaseFactory(){}};LowerCaseFactory[dart.implements]=()=>[pipe.PipeFactory];dart.setSignature(LowerCaseFactory,{constructors:()=>({LowerCaseFactory:[LowerCaseFactory,[]]}),methods:()=>({create:[pipe.Pipe,[change_detector_ref.ChangeDetectorRef]],supports:[core.bool,[dart.dynamic]]})});exports.LowerCasePipe=LowerCasePipe;exports.LowerCaseFactory=LowerCaseFactory});dart_library.library('angular2/src/change_detection/pipes/null_pipe',null,["dart_runtime/dart",'dart/core','angular2/src/change_detection/pipes/pipe','angular2/src/change_detection/change_detector_ref','angular2/src/facade/lang'],[],function(exports,dart,core,pipe,change_detector_ref,lang){'use strict';let dartx=dart.dartx;class NullPipeFactory extends core.Object{supports(obj){return NullPipe.supportsObj(obj)}create(cdRef){return new NullPipe()}NullPipeFactory(){}};NullPipeFactory[dart.implements]=()=>[pipe.PipeFactory];dart.setSignature(NullPipeFactory,{constructors:()=>({NullPipeFactory:[NullPipeFactory,[]]}),methods:()=>({create:[pipe.Pipe,[change_detector_ref.ChangeDetectorRef]],supports:[core.bool,[dart.dynamic]]})});class NullPipe extends pipe.BasePipe{NullPipe(){this.called=false;super.BasePipe()}static supportsObj(obj){return lang.isBlank(obj)}supports(obj){return NullPipe.supportsObj(obj)}transform(value,args){if(args===void 0)args=null;if(!dart.notNull(this.called)){this.called=true;return pipe.WrappedValue.wrap(null)}else{return null}}};dart.setSignature(NullPipe,{methods:()=>({transform:[pipe.WrappedValue,[dart.dynamic],[core.List]]}),names:['supportsObj'],statics:()=>({supportsObj:[core.bool,[dart.dynamic]]})});exports.NullPipeFactory=NullPipeFactory;exports.NullPipe=NullPipe});dart_library.library('angular2/src/change_detection/pipes/observable_pipe',null,["dart_runtime/dart",'dart/core','angular2/src/facade/async','angular2/src/facade/lang','angular2/src/change_detection/pipes/pipe','dart/async','angular2/src/change_detection/change_detector_ref'],[],function(exports,dart,core,async,lang,pipe,async$,change_detector_ref){'use strict';let dartx=dart.dartx;let _ref=Symbol('_ref');let _latestValue=Symbol('_latestValue');let _latestReturnedValue=Symbol('_latestReturnedValue');let _subscription=Symbol('_subscription');let _observable=Symbol('_observable');let _dispose=Symbol('_dispose');let _subscribe=Symbol('_subscribe');let _updateLatestValue=Symbol('_updateLatestValue');class ObservablePipe extends core.Object{ObservablePipe(ref){this[_ref]=ref;this[_latestValue]=null;this[_latestReturnedValue]=null;this[_subscription]=null;this[_observable]=null}supports(obs){return async.ObservableWrapper.isObservable(obs)}onDestroy(){if(dart.notNull(lang.isPresent(this[_subscription]))){this[_dispose]()}}transform(obs,args){if(args===void 0)args=null;if(dart.notNull(lang.isBlank(this[_subscription]))){this[_subscribe](obs);return null}if(!dart.notNull(core.identical(obs,this[_observable]))){this[_dispose]();return this.transform(obs)}if(dart.notNull(core.identical(this[_latestValue],this[_latestReturnedValue]))){return this[_latestReturnedValue]}else{this[_latestReturnedValue]=this[_latestValue];return pipe.WrappedValue.wrap(this[_latestValue])}}[_subscribe](obs){this[_observable]=obs;this[_subscription]=async.ObservableWrapper.subscribe(obs,dart.fn(value=>{this[_updateLatestValue](value)}),dart.fn(e=>{dart.throw(e)}))}[_dispose](){async.ObservableWrapper.dispose(dart.as(this[_subscription],async$.StreamSubscription));this[_latestValue]=null;this[_latestReturnedValue]=null;this[_subscription]=null;this[_observable]=null}[_updateLatestValue](value){this[_latestValue]=value;this[_ref].requestCheck()}};ObservablePipe[dart.implements]=()=>[pipe.Pipe];dart.setSignature(ObservablePipe,{constructors:()=>({ObservablePipe:[ObservablePipe,[change_detector_ref.ChangeDetectorRef]]}),methods:()=>({[_updateLatestValue]:[dart.dynamic,[core.Object]],[_dispose]:[dart.void,[]],[_subscribe]:[dart.void,[async$.Stream]],onDestroy:[dart.void,[]],supports:[core.bool,[dart.dynamic]],transform:[dart.dynamic,[async$.Stream],[core.List]]})});class ObservablePipeFactory extends core.Object{supports(obs){return async.ObservableWrapper.isObservable(obs)}create(cdRef){return new ObservablePipe(cdRef)}ObservablePipeFactory(){}};ObservablePipeFactory[dart.implements]=()=>[pipe.PipeFactory];dart.setSignature(ObservablePipeFactory,{constructors:()=>({ObservablePipeFactory:[ObservablePipeFactory,[]]}),methods:()=>({create:[pipe.Pipe,[change_detector_ref.ChangeDetectorRef]],supports:[core.bool,[dart.dynamic]]})});exports.ObservablePipe=ObservablePipe;exports.ObservablePipeFactory=ObservablePipeFactory});dart_library.library('angular2/src/change_detection/pipes/pipe',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang'],[],function(exports,dart,core,lang){'use strict';let dartx=dart.dartx;class WrappedValue extends core.Object{WrappedValue(wrapped){this.wrapped=wrapped}static wrap(value){let w=exports._wrappedValues[dartx.get]((()=>{let x=exports._wrappedIndex;exports._wrappedIndex=dart.notNull(x)+1;return x})()%5);dart.dput(w,'wrapped',value);return dart.as(w,WrappedValue)}};dart.setSignature(WrappedValue,{constructors:()=>({WrappedValue:[WrappedValue,[dart.dynamic]]}),names:['wrap'],statics:()=>({wrap:[WrappedValue,[dart.dynamic]]})});exports._wrappedIndex=0;dart.defineLazyProperties(exports,{get _wrappedValues(){return[new WrappedValue(null),new WrappedValue(null),new WrappedValue(null),new WrappedValue(null),new WrappedValue(null)]},set _wrappedValues(_){}});class Pipe extends core.Object{};class BasePipe extends core.Object{supports(obj){return true}onDestroy(){}transform(value,args){return _abstract()}BasePipe(){}};BasePipe[dart.implements]=()=>[Pipe];dart.setSignature(BasePipe,{constructors:()=>({BasePipe:[BasePipe,[]]}),methods:()=>({onDestroy:[dart.void,[]],supports:[core.bool,[dart.dynamic]],transform:[dart.dynamic,[dart.dynamic,core.List]]})});class PipeFactory extends core.Object{};function _abstract(){dart.throw(new lang.BaseException("This method is abstract"))}dart.fn(_abstract);exports.WrappedValue=WrappedValue;exports.Pipe=Pipe;exports.BasePipe=BasePipe;exports.PipeFactory=PipeFactory});dart_library.library('angular2/src/change_detection/pipes/pipe_registry',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/change_detection/pipes/pipe','angular2/src/facade/collection','angular2/src/change_detection/change_detector_ref','angular2/src/di/annotations_impl'],[],function(exports,dart,core,lang,pipe,collection,change_detector_ref,annotations_impl){'use strict';let dartx=dart.dartx;let _getListOfFactories=Symbol('_getListOfFactories');let _getMatchingFactory=Symbol('_getMatchingFactory');class PipeRegistry extends core.Object{PipeRegistry(config){this.config=config}get(type,obj,cdRef,existingPipe){if(cdRef===void 0)cdRef=null;if(existingPipe===void 0)existingPipe=null;if(dart.notNull(lang.isPresent(existingPipe))&&dart.notNull(existingPipe.supports(obj)))return existingPipe;if(dart.notNull(lang.isPresent(existingPipe)))existingPipe.onDestroy();let factories=this[_getListOfFactories](type,obj);let factory=this[_getMatchingFactory](factories,type,obj);return factory.create(cdRef)}[_getListOfFactories](type,obj){let listOfFactories=dart.dindex(this.config,type);if(dart.notNull(lang.isBlank(listOfFactories))){dart.throw(new lang.BaseException(`Cannot find '${type }' pipe supporting object '${obj }'`))}return dart.as(listOfFactories,core.List$(pipe.PipeFactory))}[_getMatchingFactory](listOfFactories,type,obj){let matchingFactory=collection.ListWrapper.find(listOfFactories,dart.fn(pipeFactory=>dart.as(dart.dsend(pipeFactory,'supports',obj),core.bool),core.bool,[dart.dynamic]));if(dart.notNull(lang.isBlank(matchingFactory))){dart.throw(new lang.BaseException(`Cannot find '${type }' pipe supporting object '${obj }'`))}return dart.as(matchingFactory,pipe.PipeFactory)}};dart.setSignature(PipeRegistry,{constructors:()=>({PipeRegistry:[PipeRegistry,[dart.dynamic]]}),methods:()=>({[_getMatchingFactory]:[pipe.PipeFactory,[core.List$(pipe.PipeFactory),core.String,dart.dynamic]],[_getListOfFactories]:[core.List$(pipe.PipeFactory),[core.String,dart.dynamic]],get:[pipe.Pipe,[core.String,dart.dynamic],[change_detector_ref.ChangeDetectorRef,pipe.Pipe]]})});PipeRegistry[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.PipeRegistry=PipeRegistry});dart_library.library('angular2/src/change_detection/pipes/promise_pipe',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/change_detection/pipes/pipe','dart/async','angular2/src/change_detection/change_detector_ref'],[],function(exports,dart,core,lang,pipe,async,change_detector_ref){'use strict';let dartx=dart.dartx;let _ref=Symbol('_ref');let _latestValue=Symbol('_latestValue');let _latestReturnedValue=Symbol('_latestReturnedValue');let _sourcePromise=Symbol('_sourcePromise');let _updateLatestValue=Symbol('_updateLatestValue');class PromisePipe extends core.Object{PromisePipe(ref){this[_ref]=ref;this[_latestValue]=null;this[_latestReturnedValue]=null;this[_sourcePromise]=null}supports(promise){return lang.isPromise(promise)}onDestroy(){if(dart.notNull(lang.isPresent(this[_sourcePromise]))){this[_latestValue]=null;this[_latestReturnedValue]=null;this[_sourcePromise]=null}}transform(promise,args){if(args===void 0)args=null;if(dart.notNull(lang.isBlank(this[_sourcePromise]))){this[_sourcePromise]=promise;promise.then(dart.fn(val=>{if(dart.notNull(core.identical(this[_sourcePromise],promise))){this[_updateLatestValue](val)}}));return null}if(!dart.notNull(core.identical(promise,this[_sourcePromise]))){this[_sourcePromise]=null;return this.transform(promise)}if(dart.notNull(core.identical(this[_latestValue],this[_latestReturnedValue]))){return this[_latestReturnedValue]}else{this[_latestReturnedValue]=this[_latestValue];return pipe.WrappedValue.wrap(this[_latestValue])}}[_updateLatestValue](value){this[_latestValue]=value;this[_ref].requestCheck()}};PromisePipe[dart.implements]=()=>[pipe.Pipe];dart.setSignature(PromisePipe,{constructors:()=>({PromisePipe:[PromisePipe,[change_detector_ref.ChangeDetectorRef]]}),methods:()=>({[_updateLatestValue]:[dart.dynamic,[core.Object]],onDestroy:[dart.void,[]],supports:[core.bool,[dart.dynamic]],transform:[dart.dynamic,[async.Future],[core.List]]})});class PromisePipeFactory extends core.Object{supports(promise){return lang.isPromise(promise)}create(cdRef){return new PromisePipe(cdRef)}PromisePipeFactory(){}};PromisePipeFactory[dart.implements]=()=>[pipe.PipeFactory];dart.setSignature(PromisePipeFactory,{constructors:()=>({PromisePipeFactory:[PromisePipeFactory,[]]}),methods:()=>({create:[pipe.Pipe,[change_detector_ref.ChangeDetectorRef]],supports:[core.bool,[dart.dynamic]]})});exports.PromisePipe=PromisePipe;exports.PromisePipeFactory=PromisePipeFactory});dart_library.library('angular2/src/change_detection/pipes/uppercase_pipe',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/change_detection/pipes/pipe','angular2/src/change_detection/change_detector_ref'],[],function(exports,dart,core,lang,pipe,change_detector_ref){'use strict';let dartx=dart.dartx;let _latestValue=Symbol('_latestValue');class UpperCasePipe extends core.Object{UpperCasePipe(){this[_latestValue]=null}supports(str){return lang.isString(str)}onDestroy(){this[_latestValue]=null}transform(value,args){if(args===void 0)args=null;if(!dart.notNull(core.identical(this[_latestValue],value))){this[_latestValue]=value;return lang.StringWrapper.toUpperCase(value)}else{return this[_latestValue]}}};UpperCasePipe[dart.implements]=()=>[pipe.Pipe];dart.setSignature(UpperCasePipe,{methods:()=>({onDestroy:[dart.void,[]],supports:[core.bool,[dart.dynamic]],transform:[core.String,[core.String],[core.List]]})});class UpperCaseFactory extends core.Object{supports(str){return lang.isString(str)}create(cdRef){return new UpperCasePipe()}UpperCaseFactory(){}};UpperCaseFactory[dart.implements]=()=>[pipe.PipeFactory];dart.setSignature(UpperCaseFactory,{constructors:()=>({UpperCaseFactory:[UpperCaseFactory,[]]}),methods:()=>({create:[pipe.Pipe,[change_detector_ref.ChangeDetectorRef]],supports:[core.bool,[dart.dynamic]]})});exports.UpperCasePipe=UpperCasePipe;exports.UpperCaseFactory=UpperCaseFactory});dart_library.library('angular2/src/change_detection/pregen_proto_change_detector',null,["dart_runtime/dart",'angular2/src/change_detection/interfaces','angular2/src/change_detection/pipes/pipe_registry','dart/core','angular2/src/change_detection/proto_record','angular2/src/change_detection/directive_record','angular2/src/change_detection/proto_change_detector','angular2/src/change_detection/binding_record','angular2/src/change_detection/coalesce'],[],function(exports,dart,interfaces,pipe_registry,core,proto_record,directive_record,proto_change_detector,binding_record,coalesce){'use strict';let dartx=dart.dartx;let PregenProtoChangeDetectorFactory=dart.typedef('PregenProtoChangeDetectorFactory',()=>dart.functionType(interfaces.ProtoChangeDetector,[pipe_registry.PipeRegistry,interfaces.ChangeDetectorDefinition]));let InstantiateMethod=dart.typedef('InstantiateMethod',()=>dart.functionType(interfaces.ChangeDetector,[dart.dynamic,pipe_registry.PipeRegistry,core.List$(proto_record.ProtoRecord),core.List$(directive_record.DirectiveRecord)]));let _instantiateMethod=Symbol('_instantiateMethod');let _pipeRegistry=Symbol('_pipeRegistry');let _protoRecords=Symbol('_protoRecords');let _directiveRecords=Symbol('_directiveRecords');class PregenProtoChangeDetector extends interfaces.ProtoChangeDetector{_(id,instantiateMethod,pipeRegistry,protoRecords,directiveRecords){this.id=id;this[_instantiateMethod]=instantiateMethod;this[_pipeRegistry]=pipeRegistry;this[_protoRecords]=protoRecords;this[_directiveRecords]=directiveRecords}static isSupported(){return true}static new(instantiateMethod,registry,def){let recordBuilder=new proto_change_detector.ProtoRecordBuilder();def.bindingRecords[dartx.forEach](dart.fn(b=>{recordBuilder.add(dart.as(b,binding_record.BindingRecord),def.variableNames)}));let protoRecords=coalesce.coalesce(recordBuilder.records);return new PregenProtoChangeDetector._(def.id,instantiateMethod,registry,protoRecords,def.directiveRecords)}instantiate(dispatcher){return dart.dcall(this[_instantiateMethod],dispatcher,this[_pipeRegistry],this[_protoRecords],this[_directiveRecords])}};dart.defineNamedConstructor(PregenProtoChangeDetector,'_');dart.setSignature(PregenProtoChangeDetector,{constructors:()=>({_:[PregenProtoChangeDetector,[core.String,InstantiateMethod,pipe_registry.PipeRegistry,core.List$(proto_record.ProtoRecord),core.List$(directive_record.DirectiveRecord)]],new:[PregenProtoChangeDetector,[InstantiateMethod,pipe_registry.PipeRegistry,interfaces.ChangeDetectorDefinition]]}),methods:()=>({instantiate:[interfaces.ChangeDetector,[dart.dynamic]]}),names:['isSupported'],statics:()=>({isSupported:[core.bool,[]]})});exports.PregenProtoChangeDetectorFactory=PregenProtoChangeDetectorFactory;exports.InstantiateMethod=InstantiateMethod;exports.PregenProtoChangeDetector=PregenProtoChangeDetector});dart_library.library('angular2/src/change_detection/proto_change_detector',null,["dart_runtime/dart",'dart/core','angular2/src/change_detection/proto_record','angular2/src/change_detection/dynamic_change_detector','angular2/src/facade/collection','angular2/src/change_detection/binding_record','angular2/src/change_detection/coalesce','angular2/src/change_detection/interfaces','angular2/src/change_detection/pipes/pipe_registry','angular2/src/facade/lang','angular2/src/change_detection/parser/ast','angular2/src/change_detection/change_detection_util','angular2/src/change_detection/directive_record'],[],function(exports,dart,core,proto_record,dynamic_change_detector,collection,binding_record,coalesce,interfaces,pipe_registry,lang,ast$,change_detection_util,directive_record){'use strict';let dartx=dart.dartx;let _pipeRegistry=Symbol('_pipeRegistry');let _records=Symbol('_records');let _createRecords=Symbol('_createRecords');class DynamicProtoChangeDetector extends core.Object{DynamicProtoChangeDetector(pipeRegistry,definition){this[_pipeRegistry]=pipeRegistry;this.definition=definition;this[_records]=null;this[_records]=dart.as(this[_createRecords](this.definition),core.List$(proto_record.ProtoRecord))}instantiate(dispatcher){return new dynamic_change_detector.DynamicChangeDetector(this.definition.id,this.definition.strategy,dispatcher,this[_pipeRegistry],this[_records],this.definition.directiveRecords)}[_createRecords](definition){let recordBuilder=new ProtoRecordBuilder();collection.ListWrapper.forEach(definition.bindingRecords,dart.fn(b=>{recordBuilder.add(dart.as(b,binding_record.BindingRecord),definition.variableNames)}));return coalesce.coalesce(recordBuilder.records)}};DynamicProtoChangeDetector[dart.implements]=()=>[interfaces.ProtoChangeDetector];dart.setSignature(DynamicProtoChangeDetector,{constructors:()=>({DynamicProtoChangeDetector:[DynamicProtoChangeDetector,[pipe_registry.PipeRegistry,interfaces.ChangeDetectorDefinition]]}),methods:()=>({[_createRecords]:[dart.dynamic,[interfaces.ChangeDetectorDefinition]],instantiate:[interfaces.ChangeDetector,[dart.dynamic]]})});let _appendRecords=Symbol('_appendRecords');class ProtoRecordBuilder extends core.Object{ProtoRecordBuilder(){this.records=null;this.records=dart.list([],proto_record.ProtoRecord)}add(b,variableNames){if(variableNames===void 0)variableNames=null;let oldLast=collection.ListWrapper.last(this.records);if(dart.notNull(lang.isPresent(oldLast))&&dart.equals(dart.dload(dart.dload(oldLast,'bindingRecord'),'directiveRecord'),b.directiveRecord)){dart.dput(oldLast,'lastInDirective',false)}this[_appendRecords](b,variableNames);let newLast=collection.ListWrapper.last(this.records);if(dart.notNull(lang.isPresent(newLast))&& !dart.notNull(core.identical(newLast,oldLast))){dart.dput(newLast,'lastInBinding',true);dart.dput(newLast,'lastInDirective',true)}}[_appendRecords](b,variableNames){if(dart.notNull(b.isDirectiveLifecycle())){this.records[dartx.add](new proto_record.ProtoRecord(proto_record.RecordType.DIRECTIVE_LIFECYCLE,b.lifecycleEvent,null,[],[],-1,null,dart.notNull(this.records[dartx.length])+1,b,null,false,false))}else{_ConvertAstIntoProtoRecords.append(this.records,b,variableNames)}}};dart.setSignature(ProtoRecordBuilder,{constructors:()=>({ProtoRecordBuilder:[ProtoRecordBuilder,[]]}),methods:()=>({[_appendRecords]:[dart.dynamic,[binding_record.BindingRecord,core.List$(core.String)]],add:[dart.dynamic,[binding_record.BindingRecord],[core.List$(core.String)]]})});let _bindingRecord=Symbol('_bindingRecord');let _expressionAsString=Symbol('_expressionAsString');let _variableNames=Symbol('_variableNames');let _visitAll=Symbol('_visitAll');let _addRecord=Symbol('_addRecord');class _ConvertAstIntoProtoRecords extends core.Object{_ConvertAstIntoProtoRecords(records,bindingRecord,expressionAsString,variableNames){this[_records]=records;this[_bindingRecord]=bindingRecord;this[_expressionAsString]=expressionAsString;this[_variableNames]=variableNames}static append(records,b,variableNames){let c=new _ConvertAstIntoProtoRecords(records,b,dart.toString(b.ast),variableNames);b.ast.visit(c)}visitImplicitReceiver(ast){return this[_bindingRecord].implicitReceiver}visitInterpolation(ast){let args=this[_visitAll](ast.expressions);return dart.as(this[_addRecord](proto_record.RecordType.INTERPOLATE,"interpolate",_interpolationFn(ast.strings),args,ast.strings,0),core.num)}visitLiteralPrimitive(ast){return dart.as(this[_addRecord](proto_record.RecordType.CONST,"literal",ast.value,[],null,0),core.num)}visitAccessMember(ast){let receiver=ast.receiver.visit(this);if(dart.notNull(lang.isPresent(this[_variableNames]))&&dart.notNull(collection.ListWrapper.contains(this[_variableNames],ast.name))&&dart.is(ast.receiver,ast$.ImplicitReceiver)){return dart.as(this[_addRecord](proto_record.RecordType.LOCAL,ast.name,ast.name,[],null,receiver),core.num)}else{return dart.as(this[_addRecord](proto_record.RecordType.PROPERTY,ast.name,ast.getter,[],null,receiver),core.num)}}visitSafeAccessMember(ast){let receiver=ast.receiver.visit(this);return dart.as(this[_addRecord](proto_record.RecordType.SAFE_PROPERTY,ast.name,ast.getter,[],null,receiver),core.num)}visitMethodCall(ast){let receiver=ast.receiver.visit(this);let args=this[_visitAll](ast.args);if(dart.notNull(lang.isPresent(this[_variableNames]))&&dart.notNull(collection.ListWrapper.contains(this[_variableNames],ast.name))){let target=this[_addRecord](proto_record.RecordType.LOCAL,ast.name,ast.name,[],null,receiver);return dart.as(this[_addRecord](proto_record.RecordType.INVOKE_CLOSURE,"closure",null,args,null,target),core.num)}else{return dart.as(this[_addRecord](proto_record.RecordType.INVOKE_METHOD,ast.name,ast.fn,args,null,receiver),core.num)}}visitSafeMethodCall(ast){let receiver=ast.receiver.visit(this);let args=this[_visitAll](ast.args);return dart.as(this[_addRecord](proto_record.RecordType.SAFE_INVOKE_METHOD,ast.name,ast.fn,args,null,receiver),core.num)}visitFunctionCall(ast){let target=ast.target.visit(this);let args=this[_visitAll](ast.args);return dart.as(this[_addRecord](proto_record.RecordType.INVOKE_CLOSURE,"closure",null,args,null,target),core.num)}visitLiteralArray(ast){let primitiveName=`arrayFn${ast.expressions[dartx.length]}`;return dart.as(this[_addRecord](proto_record.RecordType.PRIMITIVE_OP,primitiveName,_arrayFn(ast.expressions[dartx.length]),this[_visitAll](ast.expressions),null,0),core.num)}visitLiteralMap(ast){return dart.as(this[_addRecord](proto_record.RecordType.PRIMITIVE_OP,_mapPrimitiveName(ast.keys),change_detection_util.ChangeDetectionUtil.mapFn(ast.keys),this[_visitAll](ast.values),null,0),core.num)}visitBinary(ast){let left=ast.left.visit(this);let right=ast.right.visit(this);return dart.as(this[_addRecord](proto_record.RecordType.PRIMITIVE_OP,_operationToPrimitiveName(ast.operation),_operationToFunction(ast.operation),[left,right],null,0),core.num)}visitPrefixNot(ast){let exp=ast.expression.visit(this);return dart.as(this[_addRecord](proto_record.RecordType.PRIMITIVE_OP,"operation_negate",change_detection_util.ChangeDetectionUtil.operation_negate,[exp],null,0),core.num)}visitConditional(ast){let c=ast.condition.visit(this);let t=ast.trueExp.visit(this);let f=ast.falseExp.visit(this);return dart.as(this[_addRecord](proto_record.RecordType.PRIMITIVE_OP,"cond",change_detection_util.ChangeDetectionUtil.cond,[c,t,f],null,0),core.num)}visitPipe(ast){let value=ast.exp.visit(this);let args=this[_visitAll](ast.args);return dart.as(this[_addRecord](proto_record.RecordType.PIPE,ast.name,ast.name,args,null,value),core.num)}visitKeyedAccess(ast){let obj=ast.obj.visit(this);let key=ast.key.visit(this);return dart.as(this[_addRecord](proto_record.RecordType.KEYED_ACCESS,"keyedAccess",change_detection_util.ChangeDetectionUtil.keyedAccess,[key],null,obj),core.num)}visitAssignment(ast){dart.throw(new lang.BaseException("Not supported"))}visitChain(ast){dart.throw(new lang.BaseException("Not supported"))}visitIf(ast){dart.throw(new lang.BaseException("Not supported"))}[_visitAll](asts){let res=collection.ListWrapper.createFixedSize(asts[dartx.length]);for(let i=0;dart.notNull(i)<dart.notNull(asts[dartx.length]);i=dart.notNull(i)+1){res[dartx.set](i,dart.dsend(asts[dartx.get](i),'visit',this))}return res}[_addRecord](type,name,funcOrValue,args,fixedArgs,context){let selfIndex=dart.notNull(this[_records][dartx.length])+1;if(dart.is(context,directive_record.DirectiveIndex)){this[_records][dartx.add](new proto_record.ProtoRecord(dart.as(type,proto_record.RecordType),dart.as(name,core.String),funcOrValue,dart.as(args,core.List),dart.as(fixedArgs,core.List),-1,dart.as(context,directive_record.DirectiveIndex),selfIndex,this[_bindingRecord],this[_expressionAsString],false,false))}else{this[_records][dartx.add](new proto_record.ProtoRecord(dart.as(type,proto_record.RecordType),dart.as(name,core.String),funcOrValue,dart.as(args,core.List),dart.as(fixedArgs,core.List),dart.as(context,core.num),null,selfIndex,this[_bindingRecord],this[_expressionAsString],false,false))}return selfIndex}};_ConvertAstIntoProtoRecords[dart.implements]=()=>[ast$.AstVisitor];dart.setSignature(_ConvertAstIntoProtoRecords,{constructors:()=>({_ConvertAstIntoProtoRecords:[_ConvertAstIntoProtoRecords,[core.List$(proto_record.ProtoRecord),binding_record.BindingRecord,core.String,core.List]]}),methods:()=>({[_addRecord]:[dart.dynamic,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]],[_visitAll]:[dart.dynamic,[core.List]],visitAccessMember:[core.num,[ast$.AccessMember]],visitAssignment:[dart.dynamic,[ast$.Assignment]],visitBinary:[core.num,[ast$.Binary]],visitChain:[dart.dynamic,[ast$.Chain]],visitConditional:[core.num,[ast$.Conditional]],visitFunctionCall:[core.num,[ast$.FunctionCall]],visitIf:[dart.dynamic,[ast$.If]],visitImplicitReceiver:[dart.dynamic,[ast$.ImplicitReceiver]],visitInterpolation:[core.num,[ast$.Interpolation]],visitKeyedAccess:[core.num,[ast$.KeyedAccess]],visitLiteralArray:[core.num,[ast$.LiteralArray]],visitLiteralMap:[core.num,[ast$.LiteralMap]],visitLiteralPrimitive:[core.num,[ast$.LiteralPrimitive]],visitMethodCall:[core.num,[ast$.MethodCall]],visitPipe:[core.num,[ast$.BindingPipe]],visitPrefixNot:[core.num,[ast$.PrefixNot]],visitSafeAccessMember:[core.num,[ast$.SafeAccessMember]],visitSafeMethodCall:[core.num,[ast$.SafeMethodCall]]}),names:['append'],statics:()=>({append:[dart.dynamic,[core.List$(proto_record.ProtoRecord),binding_record.BindingRecord,core.List]]})});function _arrayFn(length){switch(length){case 0:{return change_detection_util.ChangeDetectionUtil.arrayFn0}case 1:{return change_detection_util.ChangeDetectionUtil.arrayFn1}case 2:{return change_detection_util.ChangeDetectionUtil.arrayFn2}case 3:{return change_detection_util.ChangeDetectionUtil.arrayFn3}case 4:{return change_detection_util.ChangeDetectionUtil.arrayFn4}case 5:{return change_detection_util.ChangeDetectionUtil.arrayFn5}case 6:{return change_detection_util.ChangeDetectionUtil.arrayFn6}case 7:{return change_detection_util.ChangeDetectionUtil.arrayFn7}case 8:{return change_detection_util.ChangeDetectionUtil.arrayFn8}case 9:{return change_detection_util.ChangeDetectionUtil.arrayFn9}default:{dart.throw(new lang.BaseException('Does not support literal maps with more than 9 elements'))}}}dart.fn(_arrayFn,core.Function,[core.num]);function _mapPrimitiveName(keys){let stringifiedKeys=collection.ListWrapper.join(collection.ListWrapper.map(keys,dart.fn(k=>dart.notNull(lang.isString(k))?`"${k }"`:`${k }`,core.String,[dart.dynamic])),", ");return `mapFn([${stringifiedKeys }])`}dart.fn(_mapPrimitiveName,dart.dynamic,[core.List]);function _operationToPrimitiveName(operation){switch(operation){case "+":{return "operation_add"}case "-":{return "operation_subtract"}case "*":{return "operation_multiply"}case "/":{return "operation_divide"}case "%":{return "operation_remainder"}case "==":{return "operation_equals"}case "!=":{return "operation_not_equals"}case "===":{return "operation_identical"}case "!==":{return "operation_not_identical"}case "<":{return "operation_less_then"}case ">":{return "operation_greater_then"}case "<=":{return "operation_less_or_equals_then"}case ">=":{return "operation_greater_or_equals_then"}case "&&":{return "operation_logical_and"}case "||":{return "operation_logical_or"}default:{dart.throw(new lang.BaseException(`Unsupported operation ${operation }`))}}}dart.fn(_operationToPrimitiveName,core.String,[core.String]);function _operationToFunction(operation){switch(operation){case "+":{return change_detection_util.ChangeDetectionUtil.operation_add}case "-":{return change_detection_util.ChangeDetectionUtil.operation_subtract}case "*":{return change_detection_util.ChangeDetectionUtil.operation_multiply}case "/":{return change_detection_util.ChangeDetectionUtil.operation_divide}case "%":{return change_detection_util.ChangeDetectionUtil.operation_remainder}case "==":{return change_detection_util.ChangeDetectionUtil.operation_equals}case "!=":{return change_detection_util.ChangeDetectionUtil.operation_not_equals}case "===":{return change_detection_util.ChangeDetectionUtil.operation_identical}case "!==":{return change_detection_util.ChangeDetectionUtil.operation_not_identical}case "<":{return change_detection_util.ChangeDetectionUtil.operation_less_then}case ">":{return change_detection_util.ChangeDetectionUtil.operation_greater_then}case "<=":{return change_detection_util.ChangeDetectionUtil.operation_less_or_equals_then}case ">=":{return change_detection_util.ChangeDetectionUtil.operation_greater_or_equals_then}case "&&":{return change_detection_util.ChangeDetectionUtil.operation_logical_and}case "||":{return change_detection_util.ChangeDetectionUtil.operation_logical_or}default:{dart.throw(new lang.BaseException(`Unsupported operation ${operation }`))}}}dart.fn(_operationToFunction,core.Function,[core.String]);function s(v){return dart.notNull(lang.isPresent(v))?`${v }`:""}dart.fn(s,core.String,[dart.dynamic]);function _interpolationFn(strings){let length=strings[dartx.length];let c0=dart.notNull(length)>0?strings[dartx.get](0):null;let c1=dart.notNull(length)>1?strings[dartx.get](1):null;let c2=dart.notNull(length)>2?strings[dartx.get](2):null;let c3=dart.notNull(length)>3?strings[dartx.get](3):null;let c4=dart.notNull(length)>4?strings[dartx.get](4):null;let c5=dart.notNull(length)>5?strings[dartx.get](5):null;let c6=dart.notNull(length)>6?strings[dartx.get](6):null;let c7=dart.notNull(length)>7?strings[dartx.get](7):null;let c8=dart.notNull(length)>8?strings[dartx.get](8):null;let c9=dart.notNull(length)>9?strings[dartx.get](9):null;switch(dart.notNull(length)-1){case 1:{return dart.fn(a1=>dart.dsend(dart.dsend(c0,'+',s(a1)),'+',c1))}case 2:{return dart.fn((a1,a2)=>dart.dsend(dart.dsend(dart.dsend(dart.dsend(c0,'+',s(a1)),'+',c1),'+',s(a2)),'+',c2))}case 3:{return dart.fn((a1,a2,a3)=>dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(c0,'+',s(a1)),'+',c1),'+',s(a2)),'+',c2),'+',s(a3)),'+',c3))}case 4:{return dart.fn((a1,a2,a3,a4)=>dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(c0,'+',s(a1)),'+',c1),'+',s(a2)),'+',c2),'+',s(a3)),'+',c3),'+',s(a4)),'+',c4))}case 5:{return dart.fn((a1,a2,a3,a4,a5)=>dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(c0,'+',s(a1)),'+',c1),'+',s(a2)),'+',c2),'+',s(a3)),'+',c3),'+',s(a4)),'+',c4),'+',s(a5)),'+',c5))}case 6:{return dart.fn((a1,a2,a3,a4,a5,a6)=>dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(c0,'+',s(a1)),'+',c1),'+',s(a2)),'+',c2),'+',s(a3)),'+',c3),'+',s(a4)),'+',c4),'+',s(a5)),'+',c5),'+',s(a6)),'+',c6))}case 7:{return dart.fn((a1,a2,a3,a4,a5,a6,a7)=>dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(c0,'+',s(a1)),'+',c1),'+',s(a2)),'+',c2),'+',s(a3)),'+',c3),'+',s(a4)),'+',c4),'+',s(a5)),'+',c5),'+',s(a6)),'+',c6),'+',s(a7)),'+',c7))}case 8:{return dart.fn((a1,a2,a3,a4,a5,a6,a7,a8)=>dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(c0,'+',s(a1)),'+',c1),'+',s(a2)),'+',c2),'+',s(a3)),'+',c3),'+',s(a4)),'+',c4),'+',s(a5)),'+',c5),'+',s(a6)),'+',c6),'+',s(a7)),'+',c7),'+',s(a8)),'+',c8))}case 9:{return dart.fn((a1,a2,a3,a4,a5,a6,a7,a8,a9)=>dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(dart.dsend(c0,'+',s(a1)),'+',c1),'+',s(a2)),'+',c2),'+',s(a3)),'+',c3),'+',s(a4)),'+',c4),'+',s(a5)),'+',c5),'+',s(a6)),'+',c6),'+',s(a7)),'+',c7),'+',s(a8)),'+',c8),'+',s(a9)),'+',c9))}default:{dart.throw(new lang.BaseException('Does not support more than 9 expressions'))}}}dart.fn(_interpolationFn,dart.dynamic,[core.List]);exports.DynamicProtoChangeDetector=DynamicProtoChangeDetector;exports.ProtoRecordBuilder=ProtoRecordBuilder;exports.s=s});dart_library.library('angular2/src/change_detection/proto_record',null,["dart_runtime/dart",'dart/core','angular2/src/change_detection/directive_record','angular2/src/change_detection/binding_record'],[],function(exports,dart,core,directive_record,binding_record){'use strict';let dartx=dart.dartx;class RecordType extends core.Object{RecordType(index){this.index=index}toString(){return{0:"RecordType.SELF",1:"RecordType.CONST",2:"RecordType.PRIMITIVE_OP",3:"RecordType.PROPERTY",4:"RecordType.LOCAL",5:"RecordType.INVOKE_METHOD",6:"RecordType.INVOKE_CLOSURE",7:"RecordType.KEYED_ACCESS",8:"RecordType.PIPE",9:"RecordType.INTERPOLATE",10:"RecordType.SAFE_PROPERTY",11:"RecordType.SAFE_INVOKE_METHOD",12:"RecordType.DIRECTIVE_LIFECYCLE"}[this.index]}};RecordType.SELF=dart.const(new RecordType(0));RecordType.CONST=dart.const(new RecordType(1));RecordType.PRIMITIVE_OP=dart.const(new RecordType(2));RecordType.PROPERTY=dart.const(new RecordType(3));RecordType.LOCAL=dart.const(new RecordType(4));RecordType.INVOKE_METHOD=dart.const(new RecordType(5));RecordType.INVOKE_CLOSURE=dart.const(new RecordType(6));RecordType.KEYED_ACCESS=dart.const(new RecordType(7));RecordType.PIPE=dart.const(new RecordType(8));RecordType.INTERPOLATE=dart.const(new RecordType(9));RecordType.SAFE_PROPERTY=dart.const(new RecordType(10));RecordType.SAFE_INVOKE_METHOD=dart.const(new RecordType(11));RecordType.DIRECTIVE_LIFECYCLE=dart.const(new RecordType(12));RecordType.values=dart.const(dart.list([RecordType.SELF,RecordType.CONST,RecordType.PRIMITIVE_OP,RecordType.PROPERTY,RecordType.LOCAL,RecordType.INVOKE_METHOD,RecordType.INVOKE_CLOSURE,RecordType.KEYED_ACCESS,RecordType.PIPE,RecordType.INTERPOLATE,RecordType.SAFE_PROPERTY,RecordType.SAFE_INVOKE_METHOD,RecordType.DIRECTIVE_LIFECYCLE],RecordType));class ProtoRecord extends core.Object{ProtoRecord(mode,name,funcOrValue,args,fixedArgs,contextIndex,directiveIndex,selfIndex,bindingRecord,expressionAsString,lastInBinding,lastInDirective){this.mode=mode;this.name=name;this.funcOrValue=funcOrValue;this.args=args;this.fixedArgs=fixedArgs;this.contextIndex=contextIndex;this.directiveIndex=directiveIndex;this.selfIndex=selfIndex;this.bindingRecord=bindingRecord;this.expressionAsString=expressionAsString;this.lastInBinding=lastInBinding;this.lastInDirective=lastInDirective}isPureFunction(){return dart.notNull(core.identical(this.mode,RecordType.INTERPOLATE))||dart.notNull(core.identical(this.mode,RecordType.PRIMITIVE_OP))}isPipeRecord(){return core.identical(this.mode,RecordType.PIPE)}isLifeCycleRecord(){return core.identical(this.mode,RecordType.DIRECTIVE_LIFECYCLE)}};dart.setSignature(ProtoRecord,{constructors:()=>({ProtoRecord:[ProtoRecord,[RecordType,core.String,dart.dynamic,core.List,core.List,core.num,directive_record.DirectiveIndex,core.num,binding_record.BindingRecord,core.String,core.bool,core.bool]]}),methods:()=>({isLifeCycleRecord:[core.bool,[]],isPipeRecord:[core.bool,[]],isPureFunction:[core.bool,[]]})});exports.RecordType=RecordType;exports.ProtoRecord=ProtoRecord});dart_library.library('angular2/src/core/annotations/annotations',null,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx});dart_library.library('angular2/src/core/annotations/decorators',null,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx});dart_library.library('angular2/src/core/annotations/di',null,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx});dart_library.library('angular2/src/core/annotations/view',null,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx});dart_library.library('angular2/src/core/annotations_impl/annotations',null,["dart_runtime/dart",'angular2/src/di/annotations_impl','dart/core','angular2/src/change_detection/constants'],[],function(exports,dart,annotations_impl,core,constants){'use strict';let dartx=dart.dartx;class LifecycleEvent extends core.Object{LifecycleEvent(name){this.name=name}};dart.setSignature(LifecycleEvent,{constructors:()=>({LifecycleEvent:[LifecycleEvent,[core.String]]})});class Directive extends annotations_impl.Injectable{Directive(opts){let selector=opts&&'selector'in opts?opts.selector:null;let properties=opts&&'properties'in opts?opts.properties:null;let events=opts&&'events'in opts?opts.events:null;let host=opts&&'host'in opts?opts.host:null;let lifecycle=opts&&'lifecycle'in opts?opts.lifecycle:null;let hostInjector=opts&&'hostInjector'in opts?opts.hostInjector:null;let exportAs=opts&&'exportAs'in opts?opts.exportAs:null;let compileChildren=opts&&'compileChildren'in opts?opts.compileChildren:true;this.selector=dart.as(selector,core.String);this.properties=dart.as(properties,core.List$(core.String));this.events=dart.as(events,core.List$(core.String));this.host=dart.as(host,core.Map$(core.String,core.String));this.exportAs=dart.as(exportAs,core.String);this.lifecycle=dart.as(lifecycle,core.List$(LifecycleEvent));this.compileChildren=dart.as(compileChildren,core.bool);this.hostInjector=dart.as(hostInjector,core.List);super.Injectable(annotations_impl.self)}};dart.setSignature(Directive,{constructors:()=>({Directive:[Directive,[],{compileChildren:dart.dynamic,events:dart.dynamic,exportAs:dart.dynamic,host:dart.dynamic,hostInjector:dart.dynamic,lifecycle:dart.dynamic,properties:dart.dynamic,selector:dart.dynamic}]})});class Component extends Directive{Component(opts){let selector=opts&&'selector'in opts?opts.selector:null;let properties=opts&&'properties'in opts?opts.properties:null;let events=opts&&'events'in opts?opts.events:null;let host=opts&&'host'in opts?opts.host:null;let exportAs=opts&&'exportAs'in opts?opts.exportAs:null;let lifecycle=opts&&'lifecycle'in opts?opts.lifecycle:null;let hostInjector=opts&&'hostInjector'in opts?opts.hostInjector:null;let viewInjector=opts&&'viewInjector'in opts?opts.viewInjector:null;let changeDetection=opts&&'changeDetection'in opts?opts.changeDetection:constants.DEFAULT;let compileChildren=opts&&'compileChildren'in opts?opts.compileChildren:true;this.changeDetection=dart.as(changeDetection,core.String);this.viewInjector=dart.as(viewInjector,core.List);super.Directive({compileChildren:compileChildren,events:events,exportAs:exportAs,host:host,hostInjector:hostInjector,lifecycle:lifecycle,properties:properties,selector:selector})}};dart.setSignature(Component,{constructors:()=>({Component:[Component,[],{changeDetection:dart.dynamic,compileChildren:dart.dynamic,events:dart.dynamic,exportAs:dart.dynamic,host:dart.dynamic,hostInjector:dart.dynamic,lifecycle:dart.dynamic,properties:dart.dynamic,selector:dart.dynamic,viewInjector:dart.dynamic}]})});let onDestroy=dart.const(new LifecycleEvent("onDestroy"));let onChange=dart.const(new LifecycleEvent("onChange"));let onCheck=dart.const(new LifecycleEvent("onCheck"));let onInit=dart.const(new LifecycleEvent("onInit"));let onAllChangesDone=dart.const(new LifecycleEvent("onAllChangesDone"));exports.LifecycleEvent=LifecycleEvent;exports.Directive=Directive;exports.Component=Component;exports.onDestroy=onDestroy;exports.onChange=onChange;exports.onCheck=onCheck;exports.onInit=onInit;exports.onAllChangesDone=onAllChangesDone});dart_library.library('angular2/src/core/annotations_impl/di',null,["dart_runtime/dart",'angular2/src/di/annotations_impl','angular2/src/facade/lang','dart/core','angular2/src/di/forward_ref'],[],function(exports,dart,annotations_impl,lang,core,forward_ref){'use strict';let dartx=dart.dartx;class Attribute extends annotations_impl.DependencyAnnotation{Attribute(attributeName){this.attributeName=attributeName;super.DependencyAnnotation()}get token(){return this}toString(){return `@Attribute(${lang.stringify(this.attributeName)})`}};dart.setSignature(Attribute,{constructors:()=>({Attribute:[Attribute,[core.String]]})});let _selector=Symbol('_selector');class Query extends annotations_impl.DependencyAnnotation{Query(selector,opts){let descendants=opts&&'descendants'in opts?opts.descendants:false;this[_selector]=selector;this.descendants=dart.as(descendants,core.bool);super.DependencyAnnotation()}get selector(){return forward_ref.resolveForwardRef(this[_selector])}get isVarBindingQuery(){return lang.isString(this.selector)}get varBindings(){return lang.StringWrapper.split(dart.as(this.selector,core.String),core.RegExp.new(","))}toString(){return `@Query(${lang.stringify(this.selector)})`}};dart.setSignature(Query,{constructors:()=>({Query:[Query,[dart.dynamic],{descendants:dart.dynamic}]})});exports.Attribute=Attribute;exports.Query=Query});dart_library.library('angular2/src/core/annotations_impl/view',null,["dart_runtime/dart",'dart/core'],[],function(exports,dart,core){'use strict';let dartx=dart.dartx;class View extends core.Object{View(opts){let templateUrl=opts&&'templateUrl'in opts?opts.templateUrl:null;let template=opts&&'template'in opts?opts.template:null;let directives=opts&&'directives'in opts?opts.directives:null;let renderer=opts&&'renderer'in opts?opts.renderer:null;let styles=opts&&'styles'in opts?opts.styles:null;let styleUrls=opts&&'styleUrls'in opts?opts.styleUrls:null;this.templateUrl=dart.as(templateUrl,core.String);this.template=dart.as(template,core.String);this.styleUrls=dart.as(styleUrls,core.List$(core.String));this.styles=dart.as(styles,core.List$(core.String));this.directives=dart.as(directives,core.List);this.renderer=dart.as(renderer,core.String)}};dart.setSignature(View,{constructors:()=>({View:[View,[],{directives:dart.dynamic,renderer:dart.dynamic,styles:dart.dynamic,styleUrls:dart.dynamic,template:dart.dynamic,templateUrl:dart.dynamic}]})});exports.View=View});dart_library.library('angular2/src/core/application',null,["dart_runtime/dart",'angular2/src/di/binding','angular2/src/reflection/reflector','angular2/src/reflection/reflection','angular2/src/core/testability/testability','angular2/src/change_detection/change_detection','angular2/src/render/dom/dom_renderer','angular2/src/dom/dom_adapter','angular2/src/core/application_tokens','angular2/src/core/compiler/dynamic_component_loader','angular2/src/di/injector','dart/async','angular2/src/core/life_cycle/life_cycle','angular2/src/core/exception_handler','angular2/src/facade/lang','angular2/src/render/dom/events/event_manager','angular2/src/render/dom/events/hammer_gestures','angular2/src/render/dom/events/key_events','dart/core','angular2/src/core/zone/ng_zone','angular2/src/render/dom/shadow_dom/shadow_dom_strategy','angular2/src/render/dom/shadow_dom/emulated_unscoped_shadow_dom_strategy','angular2/src/render/dom/compiler/compiler','angular2/src/render/api','angular2/src/core/compiler/proto_view_factory','angular2/src/core/compiler/view_pool','angular2/src/core/compiler/view_manager','angular2/src/core/compiler/view_manager_utils','angular2/src/core/compiler/view_listener','angular2/src/core/compiler/compiler','angular2/src/core/compiler/view_resolver','angular2/src/change_detection/pipes/pipe_registry','angular2/src/change_detection/interfaces','angular2/src/render/dom/compiler/view_loader','angular2/src/core/compiler/directive_resolver','angular2/src/change_detection/parser/parser','angular2/src/change_detection/parser/lexer','angular2/src/render/xhr','angular2/src/render/xhr_impl','angular2/src/core/compiler/component_url_mapper','angular2/src/services/url_resolver','angular2/src/render/dom/compiler/style_url_resolver','angular2/src/render/dom/compiler/style_inliner','angular2/src/services/app_root_url','angular2/src/facade/collection','angular2/src/dom/browser_adapter','angular2/src/facade/async','angular2/src/core/compiler/view_ref'],[],function(exports,dart,binding,reflector,reflection,testability,change_detection,dom_renderer,dom_adapter,application_tokens,dynamic_component_loader,injector,async,life_cycle,exception_handler,lang,event_manager,hammer_gestures,key_events,core,ng_zone,shadow_dom_strategy,emulated_unscoped_shadow_dom_strategy,compiler,api,proto_view_factory,view_pool,view_manager,view_manager_utils,view_listener,compiler$,view_resolver,pipe_registry,interfaces,view_loader,directive_resolver,parser,lexer,xhr,xhr_impl,component_url_mapper,url_resolver,style_url_resolver,style_inliner,app_root_url,collection,browser_adapter,async$,view_ref){'use strict';let dartx=dart.dartx;exports._rootInjector=null;dart.defineLazyProperties(exports,{get _rootBindings(){return[binding.bind(reflector.Reflector).toValue(reflection.reflector),testability.TestabilityRegistry]},set _rootBindings(_){}});function _injectorBindings(appComponentType){let bestChangeDetection=change_detection.DynamicChangeDetection;if(dart.notNull(change_detection.PreGeneratedChangeDetection.isSupported())){bestChangeDetection=change_detection.PreGeneratedChangeDetection}else if(dart.notNull(change_detection.JitChangeDetection.isSupported())){bestChangeDetection=change_detection.JitChangeDetection}return[binding.bind(dom_renderer.DOCUMENT_TOKEN).toValue(dom_adapter.DOM.defaultDoc()),binding.bind(application_tokens.appComponentTypeToken).toValue(appComponentType),binding.bind(application_tokens.appComponentRefPromiseToken).toFactory(dart.fn((dynamicComponentLoader,injector,testability,registry)=>{return dart.dsend(dart.dsend(dynamicComponentLoader,'loadAsRoot',appComponentType,null,injector),'then',dart.fn(componentRef=>{dart.dsend(registry,'registerApplication',dart.dload(dart.dload(componentRef,'location'),'nativeElement'),testability);return componentRef}))}),[dynamic_component_loader.DynamicComponentLoader,injector.Injector,testability.Testability,testability.TestabilityRegistry]),binding.bind(appComponentType).toFactory(dart.fn(p=>p.then(dart.fn(ref=>dart.dload(ref,'instance'))),async.Future,[async.Future]),[application_tokens.appComponentRefPromiseToken]),binding.bind(life_cycle.LifeCycle).toFactory(dart.fn(exceptionHandler=>new life_cycle.LifeCycle(dart.as(exceptionHandler,exception_handler.ExceptionHandler),null,lang.assertionsEnabled()),life_cycle.LifeCycle,[dart.dynamic]),[exception_handler.ExceptionHandler]),binding.bind(event_manager.EventManager).toFactory(dart.fn(ngZone=>{let plugins=[new hammer_gestures.HammerGesturesPlugin(),new key_events.KeyEventsPlugin(),new event_manager.DomEventsPlugin()];return new event_manager.EventManager(dart.as(plugins,core.List$(event_manager.EventManagerPlugin)),dart.as(ngZone,ng_zone.NgZone))}),[ng_zone.NgZone]),binding.bind(shadow_dom_strategy.ShadowDomStrategy).toFactory(dart.fn(doc=>new emulated_unscoped_shadow_dom_strategy.EmulatedUnscopedShadowDomStrategy(dart.dload(doc,'head')),emulated_unscoped_shadow_dom_strategy.EmulatedUnscopedShadowDomStrategy,[dart.dynamic]),[dom_renderer.DOCUMENT_TOKEN]),dom_renderer.DomRenderer,compiler.DefaultDomCompiler,binding.bind(api.Renderer).toAlias(dom_renderer.DomRenderer),binding.bind(api.RenderCompiler).toAlias(compiler.DefaultDomCompiler),proto_view_factory.ProtoViewFactory,view_pool.AppViewPool,binding.bind(view_pool.APP_VIEW_POOL_CAPACITY).toValue(10000),view_manager.AppViewManager,view_manager_utils.AppViewManagerUtils,view_listener.AppViewListener,compiler$.Compiler,compiler$.CompilerCache,view_resolver.ViewResolver,binding.bind(pipe_registry.PipeRegistry).toValue(change_detection.defaultPipeRegistry),binding.bind(interfaces.ChangeDetection).toClass(bestChangeDetection),view_loader.ViewLoader,directive_resolver.DirectiveResolver,parser.Parser,lexer.Lexer,exception_handler.ExceptionHandler,binding.bind(xhr.XHR).toValue(new xhr_impl.XHRImpl()),component_url_mapper.ComponentUrlMapper,url_resolver.UrlResolver,style_url_resolver.StyleUrlResolver,style_inliner.StyleInliner,dynamic_component_loader.DynamicComponentLoader,testability.Testability,app_root_url.AppRootUrl]}dart.fn(_injectorBindings,core.List,[dart.dynamic]);function _createNgZone(givenReporter){let defaultErrorReporter=dart.fn((exception,stackTrace)=>{let longStackTrace=collection.ListWrapper.join(dart.as(stackTrace,core.List),"\n\n-----async gap-----\n");dom_adapter.DOM.logError(`${exception }\n\n${longStackTrace }`);dart.throw(exception)});let reporter=dart.notNull(lang.isPresent(givenReporter))?givenReporter:defaultErrorReporter;let zone=new ng_zone.NgZone({enableLongStackTrace:lang.assertionsEnabled()});zone.initCallbacks({onErrorHandler:reporter});return zone}dart.fn(_createNgZone,ng_zone.NgZone,[core.Function]);function bootstrap(appComponentType,componentInjectableBindings,errorReporter){if(componentInjectableBindings===void 0)componentInjectableBindings=null;if(errorReporter===void 0)errorReporter=null;browser_adapter.BrowserDomAdapter.makeCurrent();let bootstrapProcess=async$.PromiseWrapper.completer();let zone=_createNgZone(errorReporter);zone.run(dart.fn(()=>{let appInjector=_createAppInjector(appComponentType,componentInjectableBindings,zone);let compRefToken=async$.PromiseWrapper.wrap(dart.fn(()=>appInjector.get(application_tokens.appComponentRefPromiseToken)));let tick=dart.fn(componentRef=>{let appChangeDetector=view_ref.internalView(dart.as(dart.dload(componentRef,'hostView'),view_ref.ViewRef)).changeDetector;let lc=appInjector.get(life_cycle.LifeCycle);dart.dsend(lc,'registerWith',zone,appChangeDetector);dart.dsend(lc,'tick');bootstrapProcess.resolve(new ApplicationRef(dart.as(componentRef,dynamic_component_loader.ComponentRef),appComponentType,appInjector))});async$.PromiseWrapper.then(compRefToken,tick,dart.fn((err,stackTrace)=>{bootstrapProcess.reject(err,stackTrace)}))}));return dart.as(bootstrapProcess.promise,async.Future$(ApplicationRef))}dart.fn(bootstrap,()=>dart.definiteFunctionType(async.Future$(ApplicationRef),[core.Type],[core.List,core.Function]));let _hostComponent=Symbol('_hostComponent');let _injector=Symbol('_injector');let _hostComponentType=Symbol('_hostComponentType');class ApplicationRef extends core.Object{ApplicationRef(hostComponent,hostComponentType,injector){this[_hostComponent]=null;this[_injector]=null;this[_hostComponentType]=null;this[_hostComponent]=hostComponent;this[_injector]=injector;this[_hostComponentType]=hostComponentType}get hostComponentType(){return this[_hostComponentType]}get hostComponent(){return this[_hostComponent].instance}dispose(){dart.dcall(this[_hostComponent].dispose)}get injector(){return this[_injector]}};dart.setSignature(ApplicationRef,{constructors:()=>({ApplicationRef:[ApplicationRef,[dynamic_component_loader.ComponentRef,core.Type,injector.Injector]]}),methods:()=>({dispose:[dart.void,[]]})});function _createAppInjector(appComponentType,bindings,zone){if(dart.notNull(lang.isBlank(exports._rootInjector)))exports._rootInjector=injector.Injector.resolveAndCreate(exports._rootBindings);let mergedBindings=dart.notNull(lang.isPresent(bindings))?collection.ListWrapper.concat(_injectorBindings(appComponentType),bindings):_injectorBindings(appComponentType);mergedBindings[dartx.add](binding.bind(ng_zone.NgZone).toValue(zone));return exports._rootInjector.resolveAndCreateChild(mergedBindings)}dart.fn(_createAppInjector,injector.Injector,[core.Type,core.List,ng_zone.NgZone]);exports.bootstrap=bootstrap;exports.ApplicationRef=ApplicationRef});dart_library.library('angular2/src/core/application_tokens',null,["dart_runtime/dart",'angular2/src/di/opaque_token'],[],function(exports,dart,opaque_token){'use strict';let dartx=dart.dartx;let appComponentRefPromiseToken=dart.const(new opaque_token.OpaqueToken("Promise<ComponentRef>"));let appComponentTypeToken=dart.const(new opaque_token.OpaqueToken("RootComponent"));exports.appComponentRefPromiseToken=appComponentRefPromiseToken;exports.appComponentTypeToken=appComponentTypeToken});dart_library.library('angular2/src/core/compiler/base_query_list',null,["dart_runtime/dart",'dart/core','dart/collection'],[],function(exports,dart,core,collection){'use strict';let dartx=dart.dartx;let _results=Symbol('_results');let _callbacks=Symbol('_callbacks');let _dirty=Symbol('_dirty');let BaseQueryList$=dart.generic(function(T){class BaseQueryList extends dart.mixin(core.Object,collection.IterableMixin$(T)){BaseQueryList(){this[_results]=dart.list([],T);this[_callbacks]=[];this[_dirty]=false}get iterator(){return this[_results][dartx.iterator]}reset(newList){this[_results]=dart.as(newList,core.List$(T));this[_dirty]=true}add(obj){this[_results][dartx.add](dart.as(obj,T));this[_dirty]=true}fireCallbacks(){if(dart.notNull(this[_dirty])){this[_callbacks][dartx.forEach](dart.fn(c=>dart.dcall(c)));this[_dirty]=false}}onChange(callback){this[_callbacks][dartx.add](callback)}removeCallback(callback){this[_callbacks][dartx.remove](callback)}get length(){return this[_results][dartx.length]}get first(){return this[_results][dartx.first]}get last(){return this[_results][dartx.last]}}dart.setSignature(BaseQueryList,{methods:()=>({add:[dart.dynamic,[dart.dynamic]],fireCallbacks:[dart.dynamic,[]],onChange:[dart.dynamic,[dart.dynamic]],removeCallback:[dart.dynamic,[dart.dynamic]],reset:[dart.dynamic,[dart.dynamic]]})});dart.defineExtensionMembers(BaseQueryList,['iterator','length','first','last']);return BaseQueryList});let BaseQueryList=BaseQueryList$();exports.BaseQueryList$=BaseQueryList$;exports.BaseQueryList=BaseQueryList});dart_library.library('angular2/src/core/compiler/compiler',null,["dart_runtime/dart",'dart/core','angular2/src/core/compiler/view','angular2/src/facade/lang','angular2/src/di/annotations_impl','dart/async','angular2/src/core/compiler/element_injector','angular2/src/di/binding','angular2/src/facade/async','angular2/src/core/compiler/view_ref','angular2/src/facade/collection','angular2/src/render/api','angular2/src/core/compiler/element_binder','angular2/src/di/forward_ref','angular2/src/core/annotations_impl/view','angular2/src/core/compiler/directive_resolver','angular2/src/core/compiler/view_resolver','angular2/src/core/compiler/component_url_mapper','angular2/src/services/url_resolver','angular2/src/core/compiler/proto_view_factory','angular2/src/services/app_root_url'],[],function(exports,dart,core,view$,lang,annotations_impl,async,element_injector,binding,async$,view_ref,collection,api,element_binder,forward_ref,view,directive_resolver,view_resolver,component_url_mapper,url_resolver,proto_view_factory,app_root_url){'use strict';let dartx=dart.dartx;let _cache=Symbol('_cache');let _hostCache=Symbol('_hostCache');class CompilerCache extends core.Object{CompilerCache(){this[_cache]=core.Map$(core.Type,view$.AppProtoView).new();this[_hostCache]=core.Map$(core.Type,view$.AppProtoView).new()}set(component,protoView){this[_cache].set(component,protoView)}get(component){let result=this[_cache].get(component);return dart.as(lang.normalizeBlank(result),view$.AppProtoView)}setHost(component,protoView){this[_hostCache].set(component,protoView)}getHost(component){let result=this[_hostCache].get(component);return dart.as(lang.normalizeBlank(result),view$.AppProtoView)}clear(){this[_cache].clear();this[_hostCache].clear()}};dart.setSignature(CompilerCache,{methods:()=>({clear:[dart.void,[]],get:[view$.AppProtoView,[core.Type]],getHost:[view$.AppProtoView,[core.Type]],set:[dart.void,[core.Type,view$.AppProtoView]],setHost:[dart.void,[core.Type,view$.AppProtoView]]})});CompilerCache[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];let _reader=Symbol('_reader');let _compilerCache=Symbol('_compilerCache');let _compiling=Symbol('_compiling');let _viewResolver=Symbol('_viewResolver');let _componentUrlMapper=Symbol('_componentUrlMapper');let _urlResolver=Symbol('_urlResolver');let _appUrl=Symbol('_appUrl');let _render=Symbol('_render');let _protoViewFactory=Symbol('_protoViewFactory');let _bindDirective=Symbol('_bindDirective');let _compileNestedProtoViews=Symbol('_compileNestedProtoViews');let _compile=Symbol('_compile');let _flattenDirectives=Symbol('_flattenDirectives');let _removeDuplicatedDirectives=Symbol('_removeDuplicatedDirectives');let _buildRenderTemplate=Symbol('_buildRenderTemplate');let _collectComponentElementBinders=Symbol('_collectComponentElementBinders');let _flattenList=Symbol('_flattenList');class Compiler extends core.Object{Compiler(reader,cache,viewResolver,componentUrlMapper,urlResolver,render,protoViewFactory,appUrl){this[_reader]=null;this[_compilerCache]=null;this[_compiling]=null;this[_viewResolver]=null;this[_componentUrlMapper]=null;this[_urlResolver]=null;this[_appUrl]=null;this[_render]=null;this[_protoViewFactory]=null;this[_reader]=reader;this[_compilerCache]=cache;this[_compiling]=core.Map$(core.Type,async.Future$(view$.AppProtoView)).new();this[_viewResolver]=viewResolver;this[_componentUrlMapper]=componentUrlMapper;this[_urlResolver]=urlResolver;this[_appUrl]=dart.as(appUrl.value,core.String);this[_render]=render;this[_protoViewFactory]=protoViewFactory}[_bindDirective](directiveTypeOrBinding){if(dart.is(directiveTypeOrBinding,element_injector.DirectiveBinding)){return dart.as(directiveTypeOrBinding,element_injector.DirectiveBinding)}else if(dart.is(directiveTypeOrBinding,binding.Binding)){let annotation=this[_reader].resolve(dart.as(dart.dload(directiveTypeOrBinding,'token'),core.Type));return element_injector.DirectiveBinding.createFromBinding(dart.as(directiveTypeOrBinding,binding.Binding),annotation)}else{let annotation=this[_reader].resolve(dart.as(directiveTypeOrBinding,core.Type));return element_injector.DirectiveBinding.createFromType(dart.as(directiveTypeOrBinding,core.Type),annotation)}}compileInHost(componentTypeOrBinding){let componentType=dart.notNull(lang.isType(componentTypeOrBinding))?componentTypeOrBinding:dart.as(componentTypeOrBinding,binding.Binding).token;let hostAppProtoView=this[_compilerCache].getHost(dart.as(componentType,core.Type));let hostPvPromise=null;if(dart.notNull(lang.isPresent(hostAppProtoView))){hostPvPromise=async$.PromiseWrapper.resolve(hostAppProtoView)}else{let componentBinding=this[_bindDirective](componentTypeOrBinding);Compiler._assertTypeIsComponent(componentBinding);let directiveMetadata=componentBinding.metadata;hostPvPromise=this[_render].compileHost(directiveMetadata).then(dart.fn(hostRenderPv=>{return this[_compileNestedProtoViews](componentBinding,hostRenderPv,[componentBinding])}))}return dart.as(dart.dsend(hostPvPromise,'then',dart.fn(hostAppProtoView=>{return new view_ref.ProtoViewRef(dart.as(hostAppProtoView,view$.AppProtoView))})),async.Future$(view_ref.ProtoViewRef))}[_compile](componentBinding){let component=dart.as(componentBinding.key.token,core.Type);let protoView=this[_compilerCache].get(component);if(dart.notNull(lang.isPresent(protoView))){return protoView}let pvPromise=this[_compiling].get(component);if(dart.notNull(lang.isPresent(pvPromise))){return pvPromise}let view=this[_viewResolver].resolve(component);let directives=this[_flattenDirectives](view);for(let i=0;dart.notNull(i)<dart.notNull(directives[dartx.length]);i=dart.notNull(i)+1){if(!dart.notNull(Compiler._isValidDirective(directives[dartx.get](i)))){dart.throw(new lang.BaseException(`Unexpected directive value '${lang.stringify(directives[dartx.get](i))}' on the View of component '${lang.stringify(component)}'`))}}let boundDirectives=this[_removeDuplicatedDirectives](dart.as(collection.ListWrapper.map(directives,dart.fn(directive=>this[_bindDirective](directive),element_injector.DirectiveBinding,[dart.dynamic])),core.List$(element_injector.DirectiveBinding)));let renderTemplate=this[_buildRenderTemplate](component,view,boundDirectives);pvPromise=dart.as(this[_render].compile(renderTemplate).then(dart.fn(renderPv=>{return this[_compileNestedProtoViews](componentBinding,renderPv,boundDirectives)})),async.Future$(view$.AppProtoView));this[_compiling].set(component,pvPromise);return pvPromise}[_removeDuplicatedDirectives](directives){let directivesMap=core.Map$(core.num,element_injector.DirectiveBinding).new();directives[dartx.forEach](dart.fn(dirBinding=>{directivesMap.set(dart.as(dart.dload(dart.dload(dirBinding,'key'),'id'),core.num),dart.as(dirBinding,element_injector.DirectiveBinding))}));return dart.as(collection.MapWrapper.values(directivesMap),core.List$(element_injector.DirectiveBinding))}[_compileNestedProtoViews](componentBinding,renderPv,directives){let protoViews=this[_protoViewFactory].createAppProtoViews(dart.as(componentBinding,element_injector.DirectiveBinding),dart.as(renderPv,api.ProtoViewDto),dart.as(directives,core.List$(element_injector.DirectiveBinding)));let protoView=protoViews[dartx.get](0);if(dart.notNull(lang.isPresent(componentBinding))){let component=dart.dload(dart.dload(componentBinding,'key'),'token');if(dart.notNull(core.identical(dart.dload(renderPv,'type'),api.ViewType.COMPONENT))){this[_compilerCache].set(dart.as(component,core.Type),protoView);collection.MapWrapper.delete(this[_compiling],component)}else{this[_compilerCache].setHost(dart.as(component,core.Type),protoView)}}let nestedPVPromises=[];collection.ListWrapper.forEach(this[_collectComponentElementBinders](protoViews),dart.fn(elementBinder=>{let nestedComponent=dart.dload(elementBinder,'componentDirective');let elementBinderDone=dart.fn(nestedPv=>{dart.dput(elementBinder,'nestedProtoView',nestedPv)},dart.dynamic,[view$.AppProtoView]);let nestedCall=this[_compile](dart.as(nestedComponent,element_injector.DirectiveBinding));if(dart.notNull(lang.isPromise(nestedCall))){nestedPVPromises[dartx.add](dart.as(nestedCall,async.Future$(view$.AppProtoView)).then(elementBinderDone))}else{elementBinderDone(dart.as(nestedCall,view$.AppProtoView))}}));if(dart.notNull(nestedPVPromises[dartx.length])>0){return async$.PromiseWrapper.all(nestedPVPromises).then(dart.fn(_=>protoView,view$.AppProtoView,[dart.dynamic]))}else{return protoView}}[_collectComponentElementBinders](protoViews){let componentElementBinders=[];collection.ListWrapper.forEach(protoViews,dart.fn(protoView=>{collection.ListWrapper.forEach(dart.as(dart.dload(protoView,'elementBinders'),core.Iterable),dart.fn(elementBinder=>{if(dart.notNull(lang.isPresent(dart.dload(elementBinder,'componentDirective')))){componentElementBinders[dartx.add](elementBinder)}}))}));return dart.as(componentElementBinders,core.List$(element_binder.ElementBinder))}[_buildRenderTemplate](component,view,directives){let componentUrl=this[_urlResolver].resolve(this[_appUrl],this[_componentUrlMapper].getUrl(dart.as(component,core.Type)));let templateAbsUrl=null;let styleAbsUrls=null;if(dart.notNull(lang.isPresent(dart.dload(view,'templateUrl')))){templateAbsUrl=this[_urlResolver].resolve(componentUrl,dart.as(dart.dload(view,'templateUrl'),core.String))}else if(dart.notNull(lang.isPresent(dart.dload(view,'template')))){templateAbsUrl=componentUrl}if(dart.notNull(lang.isPresent(dart.dload(view,'styleUrls')))){styleAbsUrls=collection.ListWrapper.map(dart.dload(view,'styleUrls'),dart.fn(url=>this[_urlResolver].resolve(componentUrl,dart.as(url,core.String)),core.String,[dart.dynamic]))}return new api.ViewDefinition({componentId:lang.stringify(component),directives:collection.ListWrapper.map(directives,dart.fn(directiveBinding=>dart.dload(directiveBinding,'metadata'))),styleAbsUrls:styleAbsUrls,styles:dart.dload(view,'styles'),template:dart.dload(view,'template'),templateAbsUrl:templateAbsUrl})}[_flattenDirectives](template){if(dart.notNull(lang.isBlank(template.directives)))return dart.list([],core.Type);let directives=[];this[_flattenList](template.directives,directives);return dart.as(directives,core.List$(core.Type))}[_flattenList](tree,out){for(let i=0;dart.notNull(i)<dart.notNull(tree[dartx.length]);i=dart.notNull(i)+1){let item=forward_ref.resolveForwardRef(tree[dartx.get](i));if(dart.notNull(lang.isArray(item))){this[_flattenList](dart.as(item,core.List),out)}else{out[dartx.add](item)}}}static _isValidDirective(value){return dart.notNull(lang.isPresent(value))&&(dart.is(value,core.Type)||dart.is(value,binding.Binding))}static _assertTypeIsComponent(directiveBinding){if(!dart.notNull(core.identical(directiveBinding.metadata.type,api.DirectiveMetadata.COMPONENT_TYPE))){dart.throw(new lang.BaseException(`Could not load '${lang.stringify(directiveBinding.key.token)}' because it is not a component.`))}}};dart.setSignature(Compiler,{constructors:()=>({Compiler:[Compiler,[directive_resolver.DirectiveResolver,CompilerCache,view_resolver.ViewResolver,component_url_mapper.ComponentUrlMapper,url_resolver.UrlResolver,api.RenderCompiler,proto_view_factory.ProtoViewFactory,app_root_url.AppRootUrl]]}),methods:()=>({[_flattenList]:[dart.void,[core.List,core.List]],[_flattenDirectives]:[core.List$(core.Type),[view.View]],[_buildRenderTemplate]:[api.ViewDefinition,[dart.dynamic,dart.dynamic,dart.dynamic]],[_collectComponentElementBinders]:[core.List$(element_binder.ElementBinder),[core.List$(view$.AppProtoView)]],[_compileNestedProtoViews]:[dart.dynamic,[dart.dynamic,dart.dynamic,dart.dynamic]],[_removeDuplicatedDirectives]:[core.List$(element_injector.DirectiveBinding),[core.List$(element_injector.DirectiveBinding)]],[_compile]:[dart.dynamic,[element_injector.DirectiveBinding]],[_bindDirective]:[element_injector.DirectiveBinding,[dart.dynamic]],compileInHost:[async.Future$(view_ref.ProtoViewRef),[dart.dynamic]]}),names:['_isValidDirective','_assertTypeIsComponent'],statics:()=>({_assertTypeIsComponent:[dart.void,[element_injector.DirectiveBinding]],_isValidDirective:[core.bool,[dart.dynamic]]})});Compiler[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.CompilerCache=CompilerCache;exports.Compiler=Compiler});dart_library.library('angular2/src/core/compiler/component_url_mapper',null,["dart_runtime/dart",'dart/core','angular2/src/di/annotations_impl','angular2/src/facade/lang'],[],function(exports,dart,core,annotations_impl,lang){'use strict';let dartx=dart.dartx;class ComponentUrlMapper extends core.Object{getUrl(component){return "./"}};dart.setSignature(ComponentUrlMapper,{methods:()=>({getUrl:[core.String,[core.Type]]})});ComponentUrlMapper[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];let _componentUrls=Symbol('_componentUrls');class RuntimeComponentUrlMapper extends ComponentUrlMapper{RuntimeComponentUrlMapper(){this[_componentUrls]=null;;this[_componentUrls]=core.Map$(core.Type,core.String).new()}setComponentUrl(component,url){this[_componentUrls].set(component,url)}getUrl(component){let url=this[_componentUrls].get(component);if(dart.notNull(lang.isPresent(url)))return url;return super.getUrl(component)}};dart.setSignature(RuntimeComponentUrlMapper,{constructors:()=>({RuntimeComponentUrlMapper:[RuntimeComponentUrlMapper,[]]}),methods:()=>({setComponentUrl:[dart.dynamic,[core.Type,core.String]]})});exports.ComponentUrlMapper=ComponentUrlMapper;exports.RuntimeComponentUrlMapper=RuntimeComponentUrlMapper});dart_library.library('angular2/src/core/compiler/directive_lifecycle_reflector',null,["dart_runtime/dart",'dart/core','angular2/src/reflection/reflection','angular2/src/core/annotations_impl/annotations','angular2/src/core/compiler/interfaces'],[],function(exports,dart,core,reflection,annotations,interfaces$){'use strict';let dartx=dart.dartx;function hasLifecycleHook(e,type,annotation){if(annotation.lifecycle!=null){return annotation.lifecycle[dartx.contains](e)}else{if(!dart.is(type,core.Type))return false;let interfaces=reflection.reflector.interfaces(type);let interface$=null;if(dart.equals(e,annotations.onChange)){interface$=interfaces$.OnChange}else if(dart.equals(e,annotations.onDestroy)){interface$=interfaces$.OnDestroy}else if(dart.equals(e,annotations.onAllChangesDone)){interface$=interfaces$.OnAllChangesDone}else if(dart.equals(e,annotations.onCheck)){interface$=interfaces$.OnCheck}else if(dart.equals(e,annotations.onInit)){interface$=interfaces$.OnInit}return interfaces[dartx.contains](interface$)}}dart.fn(hasLifecycleHook,core.bool,[annotations.LifecycleEvent,dart.dynamic,annotations.Directive]);exports.hasLifecycleHook=hasLifecycleHook});dart_library.library('angular2/src/core/compiler/directive_resolver',null,["dart_runtime/dart",'dart/core','angular2/src/reflection/reflection','angular2/src/di/forward_ref','angular2/src/facade/lang','angular2/src/core/annotations_impl/annotations','angular2/src/di/annotations_impl'],[],function(exports,dart,core,reflection,forward_ref,lang,annotations$,annotations_impl){'use strict';let dartx=dart.dartx;class DirectiveResolver extends core.Object{resolve(type){let annotations=reflection.reflector.annotations(forward_ref.resolveForwardRef(type));if(dart.notNull(lang.isPresent(annotations))){for(let i=0;dart.notNull(i)<dart.notNull(annotations[dartx.length]);i=dart.notNull(i)+1){let annotation=annotations[dartx.get](i);if(dart.is(annotation,annotations$.Directive)){return dart.as(annotation,annotations$.Directive)}}}dart.throw(new lang.BaseException(`No Directive annotation found on ${lang.stringify(type)}`))}};dart.setSignature(DirectiveResolver,{methods:()=>({resolve:[annotations$.Directive,[core.Type]]})});DirectiveResolver[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.DirectiveResolver=DirectiveResolver});dart_library.library('angular2/src/core/compiler/dynamic_component_loader',null,["dart_runtime/dart",'dart/core','angular2/src/core/compiler/element_ref','angular2/src/core/compiler/view_ref','dart/async','angular2/src/di/injector','angular2/src/di/binding','angular2/src/core/compiler/compiler','angular2/src/core/compiler/view_manager','angular2/src/di/annotations_impl'],[],function(exports,dart,core,element_ref,view_ref,async,injector,binding,compiler,view_manager,annotations_impl){'use strict';let dartx=dart.dartx;class ComponentRef extends core.Object{ComponentRef(location,instance,dispose){this.location=location;this.instance=instance;this.dispose=dispose}get hostView(){return this.location.parentView}};dart.setSignature(ComponentRef,{constructors:()=>({ComponentRef:[ComponentRef,[element_ref.ElementRef,dart.dynamic,core.Function]]})});let _compiler=Symbol('_compiler');let _viewManager=Symbol('_viewManager');class DynamicComponentLoader extends core.Object{DynamicComponentLoader(compiler,viewManager){this[_compiler]=compiler;this[_viewManager]=viewManager}loadAsRoot(typeOrBinding,overrideSelector,injector){return dart.as(this[_compiler].compileInHost(typeOrBinding).then(dart.fn(hostProtoViewRef=>{let hostViewRef=this[_viewManager].createRootHostView(dart.as(hostProtoViewRef,view_ref.ProtoViewRef),overrideSelector,injector);let newLocation=this[_viewManager].getHostElement(hostViewRef);let component=this[_viewManager].getComponent(newLocation);let dispose=dart.fn(()=>{this[_viewManager].destroyRootHostView(hostViewRef)});return new ComponentRef(newLocation,component,dispose)})),async.Future$(ComponentRef))}loadIntoLocation(typeOrBinding,hostLocation,anchorName,bindings){if(bindings===void 0)bindings=null;return this.loadNextToLocation(typeOrBinding,this[_viewManager].getNamedElementInComponentView(hostLocation,anchorName),bindings)}loadNextToLocation(typeOrBinding,location,bindings){if(bindings===void 0)bindings=null;return dart.as(this[_compiler].compileInHost(typeOrBinding).then(dart.fn(hostProtoViewRef=>{let viewContainer=this[_viewManager].getViewContainer(location);let hostViewRef=viewContainer.create(dart.as(hostProtoViewRef,view_ref.ProtoViewRef),viewContainer.length,null,bindings);let newLocation=this[_viewManager].getHostElement(hostViewRef);let component=this[_viewManager].getComponent(newLocation);let dispose=dart.fn(()=>{let index=viewContainer.indexOf(hostViewRef);if(!dart.notNull(core.identical(index,-1))){viewContainer.remove(index)}});return new ComponentRef(newLocation,component,dispose)})),async.Future$(ComponentRef))}};dart.setSignature(DynamicComponentLoader,{constructors:()=>({DynamicComponentLoader:[DynamicComponentLoader,[compiler.Compiler,view_manager.AppViewManager]]}),methods:()=>({loadAsRoot:[async.Future$(ComponentRef),[dart.dynamic,core.String,injector.Injector]],loadIntoLocation:[async.Future$(ComponentRef),[dart.dynamic,element_ref.ElementRef,core.String],[core.List$(binding.ResolvedBinding)]],loadNextToLocation:[async.Future$(ComponentRef),[dart.dynamic,element_ref.ElementRef],[core.List$(binding.ResolvedBinding)]]})});DynamicComponentLoader[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.ComponentRef=ComponentRef;exports.DynamicComponentLoader=DynamicComponentLoader});dart_library.library('angular2/src/core/compiler/element_binder',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang'],['angular2/src/core/compiler/element_injector'],function(exports,dart,core,lang,element_injector){'use strict';let dartx=dart.dartx;class ElementBinder extends core.Object{ElementBinder(index,parent,distanceToParent,protoElementInjector,componentDirective){this.index=index;this.parent=parent;this.distanceToParent=distanceToParent;this.protoElementInjector=protoElementInjector;this.componentDirective=componentDirective;this.nestedProtoView=null;this.hostListeners=null;if(dart.notNull(lang.isBlank(this.index))){dart.throw(new lang.BaseException("null index not allowed."))}}hasStaticComponent(){return dart.notNull(lang.isPresent(this.componentDirective))&&dart.notNull(lang.isPresent(this.nestedProtoView))}hasEmbeddedProtoView(){return!dart.notNull(lang.isPresent(this.componentDirective))&&dart.notNull(lang.isPresent(this.nestedProtoView))}};dart.setSignature(ElementBinder,{constructors:()=>({ElementBinder:[ElementBinder,[core.int,ElementBinder,core.int,element_injector.ProtoElementInjector,element_injector.DirectiveBinding]]}),methods:()=>({hasEmbeddedProtoView:[core.bool,[]],hasStaticComponent:[core.bool,[]]})});exports.ElementBinder=ElementBinder});dart_library.library('angular2/src/core/compiler/element_injector',null,["dart_runtime/dart",'dart/core','angular2/src/di/key','angular2/src/change_detection/change_detector_ref','angular2/src/facade/lang','angular2/src/di/binding','angular2/src/di/annotations_impl','angular2/src/facade/collection','angular2/src/core/annotations_impl/di','angular2/src/core/annotations_impl/annotations','angular2/src/di/injector','angular2/src/render/api','angular2/src/core/compiler/directive_lifecycle_reflector','angular2/src/facade/async','dart/async','angular2/src/reflection/reflection','angular2/src/di/exceptions','angular2/src/core/compiler/query_list'],['angular2/src/core/compiler/view_manager','angular2/src/core/compiler/view_ref','angular2/src/core/compiler/view_container_ref','angular2/src/core/compiler/element_ref','angular2/src/core/compiler/view'],function(exports,dart,core,key,change_detector_ref,lang,binding$,annotations_impl,collection,di,annotations,injector$,api,directive_lifecycle_reflector,async,async$,reflection,exceptions,query_list,view_manager,view_ref,view_container_ref,element_ref,view){'use strict';let dartx=dart.dartx;exports._staticKeys=null;class StaticKeys extends core.Object{StaticKeys(){this.viewManagerId=null;this.protoViewId=null;this.viewContainerId=null;this.changeDetectorRefId=null;this.elementRefId=null;this.viewManagerId=key.Key.get(view_manager.AppViewManager).id;this.protoViewId=key.Key.get(view_ref.ProtoViewRef).id;this.viewContainerId=key.Key.get(view_container_ref.ViewContainerRef).id;this.changeDetectorRefId=key.Key.get(change_detector_ref.ChangeDetectorRef).id;this.elementRefId=key.Key.get(element_ref.ElementRef).id}static instance(){if(dart.notNull(lang.isBlank(exports._staticKeys)))exports._staticKeys=new StaticKeys();return dart.as(exports._staticKeys,StaticKeys)}};dart.setSignature(StaticKeys,{constructors:()=>({StaticKeys:[StaticKeys,[]]}),names:['instance'],statics:()=>({instance:[StaticKeys,[]]})});let _parent=Symbol('_parent');let _head=Symbol('_head');let _tail=Symbol('_tail');let _next=Symbol('_next');let _findPrev=Symbol('_findPrev');let TreeNode$=dart.generic(function(T){class TreeNode extends core.Object{TreeNode(parent){this[_parent]=null;this[_head]=null;this[_tail]=null;this[_next]=null;if(dart.notNull(lang.isPresent(parent)))parent.addChild(this);}addChild(child){dart.as(child,T);if(dart.notNull(lang.isPresent(this[_tail]))){this[_tail][_next]=child;this[_tail]=child}else{this[_tail]=this[_head]=child}child[_next]=null;child[_parent]=this}addChildAfter(child,prevSibling){dart.as(child,T);dart.as(prevSibling,T);if(dart.notNull(lang.isBlank(prevSibling))){let prevHead=this[_head];this[_head]=child;child[_next]=prevHead;if(dart.notNull(lang.isBlank(this[_tail])))this[_tail]=child;}else if(dart.notNull(lang.isBlank(prevSibling[_next]))){this.addChild(child);return}else{child[_next]=prevSibling[_next];prevSibling[_next]=child}child[_parent]=this}remove(){if(dart.notNull(lang.isBlank(this.parent)))return;let nextSibling=this[_next];let prevSibling=this[_findPrev]();if(dart.notNull(lang.isBlank(prevSibling))){dart.dput(this.parent,_head,this[_next])}else{dart.dput(prevSibling,_next,this[_next])}if(dart.notNull(lang.isBlank(nextSibling))){this[_parent][_tail]=prevSibling}this[_parent]=null;this[_next]=null}[_findPrev](){let node=dart.dload(this.parent,_head);if(dart.equals(node,this))return null;while(!dart.notNull(core.identical(dart.dload(node,_next),this)))node=dart.dload(node,_next);return node}get parent(){return this[_parent]}get children(){let res=[];let child=this[_head];while(child!=null){res[dartx.add](child);child=dart.as(child[_next],T)}return dart.as(res,core.List$(T))}}dart.setSignature(TreeNode,{constructors:()=>({TreeNode:[TreeNode$(T),[T]]}),methods:()=>({[_findPrev]:[dart.dynamic,[]],addChild:[dart.void,[T]],addChildAfter:[dart.void,[T,T]],remove:[dart.void,[]]})});return TreeNode});let TreeNode=TreeNode$();let _verify=Symbol('_verify');class DirectiveDependency extends binding$.Dependency{DirectiveDependency(key,optional,visibility,properties,attributeName,queryDecorator){this.attributeName=attributeName;this.queryDecorator=queryDecorator;super.Dependency(key,optional,dart.as(visibility,annotations_impl.Visibility),properties);;this[_verify]()}[_verify](){let count=0;if(dart.notNull(lang.isPresent(this.queryDecorator))){count=dart.notNull(count)+1}if(dart.notNull(lang.isPresent(this.attributeName))){count=dart.notNull(count)+1}if(dart.notNull(count)>1)dart.throw(new lang.BaseException("A directive injectable can contain only one of the following @Attribute or @Query."));}static createFrom(d){return new DirectiveDependency(d.key,d.optional,d.visibility,d.properties,DirectiveDependency._attributeName(d.properties),DirectiveDependency._query(d.properties))}static _attributeName(properties){let p=dart.as(collection.ListWrapper.find(dart.as(properties,core.List),dart.fn(p=>dart.is(p,di.Attribute),core.bool,[dart.dynamic])),di.Attribute);return dart.notNull(lang.isPresent(p))?p.attributeName:null}static _query(properties){return dart.as(collection.ListWrapper.find(dart.as(properties,core.List),dart.fn(p=>dart.is(p,di.Query),core.bool,[dart.dynamic])),di.Query)}};dart.setSignature(DirectiveDependency,{constructors:()=>({DirectiveDependency:[DirectiveDependency,[key.Key,core.bool,dart.dynamic,core.List,core.String,di.Query]]}),methods:()=>({[_verify]:[dart.void,[]]}),names:['createFrom','_attributeName','_query'],statics:()=>({_attributeName:[core.String,[dart.dynamic]],_query:[di.Query,[dart.dynamic]],createFrom:[binding$.Dependency,[binding$.Dependency]]})});class DirectiveBinding extends binding$.ResolvedBinding{DirectiveBinding(key,factory,dependencies,resolvedHostInjectables,resolvedViewInjectables,metadata){this.resolvedHostInjectables=resolvedHostInjectables;this.resolvedViewInjectables=resolvedViewInjectables;this.metadata=metadata;super.ResolvedBinding(key,factory,dependencies);}get callOnDestroy(){return this.metadata.callOnDestroy}get callOnChange(){return this.metadata.callOnChange}get callOnAllChangesDone(){return this.metadata.callOnAllChangesDone}get displayName(){return this.key.displayName}get eventEmitters(){return dart.notNull(lang.isPresent(this.metadata))&&dart.notNull(lang.isPresent(this.metadata.events))?this.metadata.events:dart.list([],core.String)}get hostActions(){return dart.notNull(lang.isPresent(this.metadata))&&dart.notNull(lang.isPresent(this.metadata.hostActions))?this.metadata.hostActions:core.Map$(core.String,core.String).new()}get changeDetection(){return this.metadata.changeDetection}static createFromBinding(binding,ann){if(dart.notNull(lang.isBlank(ann))){ann=new annotations.Directive()}let rb=binding.resolve();let deps=collection.ListWrapper.map(rb.dependencies,DirectiveDependency.createFrom);let resolvedHostInjectables=dart.notNull(lang.isPresent(ann.hostInjector))?injector$.resolveBindings(ann.hostInjector):[];let resolvedViewInjectables=dart.is(ann,annotations.Component)&&dart.notNull(lang.isPresent(ann.viewInjector))?injector$.resolveBindings(ann.viewInjector):[];let metadata=api.DirectiveMetadata.create({callOnAllChangesDone:directive_lifecycle_reflector.hasLifecycleHook(annotations.onAllChangesDone,rb.key.token,ann),callOnChange:directive_lifecycle_reflector.hasLifecycleHook(annotations.onChange,rb.key.token,ann),callOnCheck:directive_lifecycle_reflector.hasLifecycleHook(annotations.onCheck,rb.key.token,ann),callOnDestroy:directive_lifecycle_reflector.hasLifecycleHook(annotations.onDestroy,rb.key.token,ann),callOnInit:directive_lifecycle_reflector.hasLifecycleHook(annotations.onInit,rb.key.token,ann),changeDetection:dart.is(ann,annotations.Component)?ann.changeDetection:null,compileChildren:ann.compileChildren,events:ann.events,exportAs:ann.exportAs,host:dart.notNull(lang.isPresent(ann.host))?collection.MapWrapper.createFromStringMap(ann.host):null,id:lang.stringify(rb.key.token),properties:ann.properties,readAttributes:DirectiveBinding._readAttributes(deps),selector:ann.selector,type:dart.is(ann,annotations.Component)?api.DirectiveMetadata.COMPONENT_TYPE:api.DirectiveMetadata.DIRECTIVE_TYPE});return new DirectiveBinding(rb.key,rb.factory,dart.as(deps,core.List$(binding$.Dependency)),dart.as(resolvedHostInjectables,core.List$(binding$.ResolvedBinding)),dart.as(resolvedViewInjectables,core.List$(binding$.ResolvedBinding)),metadata)}static _readAttributes(deps){let readAttributes=[];collection.ListWrapper.forEach(dart.as(deps,core.Iterable),dart.fn(dep=>{if(dart.notNull(lang.isPresent(dart.dload(dep,'attributeName')))){readAttributes[dartx.add](dart.dload(dep,'attributeName'))}}));return readAttributes}static createFromType(type,annotation){let binding=new binding$.Binding(type,{toClass:type});return DirectiveBinding.createFromBinding(binding,annotation)}};dart.setSignature(DirectiveBinding,{constructors:()=>({DirectiveBinding:[DirectiveBinding,[key.Key,core.Function,core.List$(binding$.Dependency),core.List$(binding$.ResolvedBinding),core.List$(binding$.ResolvedBinding),api.DirectiveMetadata]]}),names:['createFromBinding','_readAttributes','createFromType'],statics:()=>({_readAttributes:[dart.dynamic,[dart.dynamic]],createFromBinding:[DirectiveBinding,[binding$.Binding,annotations.Directive]],createFromType:[DirectiveBinding,[core.Type,annotations.Directive]]})});class PreBuiltObjects extends core.Object{PreBuiltObjects(viewManager,view,protoView){this.viewManager=viewManager;this.view=view;this.protoView=protoView}};dart.setSignature(PreBuiltObjects,{constructors:()=>({PreBuiltObjects:[PreBuiltObjects,[view_manager.AppViewManager,view.AppView,view.AppProtoView]]})});class EventEmitterAccessor extends core.Object{EventEmitterAccessor(eventName,getter){this.eventName=eventName;this.getter=getter}subscribe(view,boundElementIndex,directive){let eventEmitter=dart.dcall(this.getter,directive);return async.ObservableWrapper.subscribe(dart.as(eventEmitter,async$.Stream),dart.fn(eventObj=>view.triggerEventHandlers(this.eventName,eventObj,boundElementIndex),dart.void,[dart.dynamic]))}};dart.setSignature(EventEmitterAccessor,{constructors:()=>({EventEmitterAccessor:[EventEmitterAccessor,[core.String,core.Function]]}),methods:()=>({subscribe:[core.Object,[view.AppView,core.num,core.Object]]})});class HostActionAccessor extends core.Object{HostActionAccessor(methodName,getter){this.methodName=methodName;this.getter=getter}subscribe(view,boundElementIndex,directive){let eventEmitter=dart.dcall(this.getter,directive);return async.ObservableWrapper.subscribe(dart.as(eventEmitter,async$.Stream),dart.fn(actionArgs=>view.invokeElementMethod(boundElementIndex,this.methodName,dart.as(actionArgs,core.List))))}};dart.setSignature(HostActionAccessor,{constructors:()=>({HostActionAccessor:[HostActionAccessor,[core.String,core.Function]]}),methods:()=>({subscribe:[core.Object,[view.AppView,core.num,core.Object]]})});function _createEventEmitterAccessors(bwv){let binding=bwv.binding;if(!dart.is(binding,DirectiveBinding))return dart.list([],EventEmitterAccessor);let db=dart.as(binding,DirectiveBinding);return dart.as(collection.ListWrapper.map(db.eventEmitters,dart.fn(eventConfig=>{let fieldName=null;let eventName=null;let colonIdx=dart.dsend(eventConfig,'indexOf',":");if(dart.notNull(dart.as(dart.dsend(colonIdx,'>',-1),core.bool))){fieldName=lang.StringWrapper.substring(dart.as(eventConfig,core.String),0,dart.as(colonIdx,core.int))[dartx.trim]();eventName=lang.StringWrapper.substring(dart.as(eventConfig,core.String),dart.as(dart.dsend(colonIdx,'+',1),core.int))[dartx.trim]()}else{fieldName=eventName=eventConfig}return new EventEmitterAccessor(dart.as(eventName,core.String),reflection.reflector.getter(dart.as(fieldName,core.String)))})),core.List$(EventEmitterAccessor))}dart.fn(_createEventEmitterAccessors,core.List$(EventEmitterAccessor),[injector$.BindingWithVisibility]);function _createHostActionAccessors(bwv){let binding=bwv.binding;if(!dart.is(binding,DirectiveBinding))return dart.list([],HostActionAccessor);let res=[];let db=dart.as(binding,DirectiveBinding);collection.MapWrapper.forEach(db.hostActions,dart.fn((actionExpression,actionName)=>{res[dartx.add](new HostActionAccessor(dart.as(actionExpression,core.String),reflection.reflector.getter(dart.as(actionName,core.String))))}));return dart.as(res,core.List$(HostActionAccessor))}dart.fn(_createHostActionAccessors,core.List$(HostActionAccessor),[injector$.BindingWithVisibility]);let _firstBindingIsComponent=Symbol('_firstBindingIsComponent');class ProtoElementInjector extends core.Object{static create(parent,index,bindings,firstBindingIsComponent,distanceToParent,directiveVariableBindings){let bd=[];ProtoElementInjector._createDirectiveBindingWithVisibility(bindings,dart.as(bd,core.List$(injector$.BindingWithVisibility)),firstBindingIsComponent);if(dart.notNull(firstBindingIsComponent)){ProtoElementInjector._createViewInjectorBindingWithVisibility(bindings,dart.as(bd,core.List$(injector$.BindingWithVisibility)))}ProtoElementInjector._createHostInjectorBindingWithVisibility(bindings,dart.as(bd,core.List$(injector$.BindingWithVisibility)),firstBindingIsComponent);return new ProtoElementInjector(parent,index,dart.as(bd,core.List$(injector$.BindingWithVisibility)),distanceToParent,firstBindingIsComponent,directiveVariableBindings)}static _createDirectiveBindingWithVisibility(dirBindings,bd,firstBindingIsComponent){collection.ListWrapper.forEach(dirBindings,dart.fn(dirBinding=>{bd[dartx.add](dart.as(ProtoElementInjector._createBindingWithVisibility(firstBindingIsComponent,dirBinding,dirBindings,dirBinding),injector$.BindingWithVisibility))}))}static _createHostInjectorBindingWithVisibility(dirBindings,bd,firstBindingIsComponent){collection.ListWrapper.forEach(dirBindings,dart.fn(dirBinding=>{collection.ListWrapper.forEach(dart.as(dart.dload(dirBinding,'resolvedHostInjectables'),core.Iterable),dart.fn(b=>{bd[dartx.add](dart.as(ProtoElementInjector._createBindingWithVisibility(firstBindingIsComponent,dirBinding,dirBindings,b),injector$.BindingWithVisibility))}))}))}static _createBindingWithVisibility(firstBindingIsComponent,dirBinding,dirBindings,binding){let isComponent=dart.notNull(dart.as(firstBindingIsComponent,core.bool))&&dart.notNull(core.identical(dart.dindex(dirBindings,0),dirBinding));return new injector$.BindingWithVisibility(dart.as(binding,binding$.ResolvedBinding),dart.notNull(isComponent)?injector$.PUBLIC_AND_PRIVATE:injector$.PUBLIC)}static _createViewInjectorBindingWithVisibility(bindings,bd){let db=dart.as(bindings[dartx.get](0),DirectiveBinding);collection.ListWrapper.forEach(db.resolvedViewInjectables,dart.fn(b=>bd[dartx.add](new injector$.BindingWithVisibility(dart.as(b,binding$.ResolvedBinding),injector$.PRIVATE)),dart.void,[dart.dynamic]))}ProtoElementInjector(parent,index,bwv,distanceToParent,firstBindingIsComponent,directiveVariableBindings){this.parent=parent;this.index=index;this.distanceToParent=distanceToParent;this[_firstBindingIsComponent]=firstBindingIsComponent;this.directiveVariableBindings=directiveVariableBindings;this.view=null;this.attributes=null;this.eventEmitterAccessors=null;this.hostActionAccessors=null;this.protoInjector=null;let length=bwv[dartx.length];this.protoInjector=new injector$.ProtoInjector(bwv,this.distanceToParent);this.eventEmitterAccessors=dart.as(collection.ListWrapper.createFixedSize(length),core.List$(core.List$(EventEmitterAccessor)));this.hostActionAccessors=dart.as(collection.ListWrapper.createFixedSize(length),core.List$(core.List$(HostActionAccessor)));for(let i=0;dart.notNull(i)<dart.notNull(length);i=dart.notNull(i)+1){this.eventEmitterAccessors[dartx.set](i,_createEventEmitterAccessors(bwv[dartx.get](i)));this.hostActionAccessors[dartx.set](i,_createHostActionAccessors(bwv[dartx.get](i)))}}instantiate(parent){return new ElementInjector(this,parent)}directParent(){return dart.notNull(this.distanceToParent)<2?this.parent:null}get hasBindings(){return dart.notNull(this.eventEmitterAccessors[dartx.length])>0}getBindingAtIndex(index){return this.protoInjector.getBindingAtIndex(index)}};dart.setSignature(ProtoElementInjector,{constructors:()=>({ProtoElementInjector:[ProtoElementInjector,[ProtoElementInjector,core.int,core.List$(injector$.BindingWithVisibility),core.num,core.bool,core.Map$(core.String,core.num)]]}),methods:()=>({directParent:[ProtoElementInjector,[]],getBindingAtIndex:[dart.dynamic,[core.num]],instantiate:[ElementInjector,[ElementInjector]]}),names:['create','_createDirectiveBindingWithVisibility','_createHostInjectorBindingWithVisibility','_createBindingWithVisibility','_createViewInjectorBindingWithVisibility'],statics:()=>({_createBindingWithVisibility:[dart.dynamic,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]],_createDirectiveBindingWithVisibility:[dart.dynamic,[core.List$(binding$.ResolvedBinding),core.List$(injector$.BindingWithVisibility),core.bool]],_createHostInjectorBindingWithVisibility:[dart.dynamic,[core.List$(binding$.ResolvedBinding),core.List$(injector$.BindingWithVisibility),core.bool]],_createViewInjectorBindingWithVisibility:[dart.dynamic,[core.List$(binding$.ResolvedBinding),core.List$(injector$.BindingWithVisibility)]],create:[ProtoElementInjector,[ProtoElementInjector,core.num,core.List$(binding$.ResolvedBinding),core.bool,core.num,core.Map$(core.String,core.num)]]})});let _proto=Symbol('_proto');let _host=Symbol('_host');let _preBuiltObjects=Symbol('_preBuiltObjects');let _query0=Symbol('_query0');let _query1=Symbol('_query1');let _query2=Symbol('_query2');let _injector=Symbol('_injector');let _strategy=Symbol('_strategy');let _buildQueries=Symbol('_buildQueries');let _addParentQueries=Symbol('_addParentQueries');let _hydrateInjector=Symbol('_hydrateInjector');let _addDirectivesToQueries=Symbol('_addDirectivesToQueries');let _addVarBindingsToQueries=Symbol('_addVarBindingsToQueries');let _reattachInjector=Symbol('_reattachInjector');let _getParentInjector=Symbol('_getParentInjector');let _buildAttribute=Symbol('_buildAttribute');let _findQuery=Symbol('_findQuery');let _buildQueriesForDeps=Symbol('_buildQueriesForDeps');let _createQueryRef=Symbol('_createQueryRef');let _addVarBindingsToQuery=Symbol('_addVarBindingsToQuery');let _addDirectivesToQuery=Symbol('_addDirectivesToQuery');let _hasQuery=Symbol('_hasQuery');let _addQueryToTree=Symbol('_addQueryToTree');let _pruneQueryFromTree=Symbol('_pruneQueryFromTree');let _removeQueryRef=Symbol('_removeQueryRef');let _addQueryToTreeSelfAndRecurse=Symbol('_addQueryToTreeSelfAndRecurse');let _assignQueryRef=Symbol('_assignQueryRef');class ElementInjector extends TreeNode{ElementInjector(proto,parent){this[_proto]=proto;this[_host]=null;this[_preBuiltObjects]=null;this[_query0]=null;this[_query1]=null;this[_query2]=null;this.hydrated=null;this[_injector]=null;this[_strategy]=null;super.TreeNode(parent);;this[_injector]=new injector$.Injector(this[_proto].protoInjector,null,this);let injectorStrategy=dart.as(this[_injector].internalStrategy,dart.dynamic);this[_strategy]=dart.is(injectorStrategy,injector$.InjectorInlineStrategy)?new ElementInjectorInlineStrategy(dart.as(injectorStrategy,injector$.InjectorInlineStrategy),this):new ElementInjectorDynamicStrategy(dart.as(injectorStrategy,injector$.InjectorDynamicStrategy),this);this.hydrated=false;this[_buildQueries]();this[_addParentQueries]()}dehydrate(){this.hydrated=false;this[_host]=null;this[_preBuiltObjects]=null;this[_strategy].callOnDestroy();dart.dsend(this[_injector].internalStrategy,'dehydrate')}onAllChangesDone(){if(dart.notNull(lang.isPresent(this[_query0]))&&dart.notNull(core.identical(this[_query0].originator,this))){this[_query0].list.fireCallbacks()}if(dart.notNull(lang.isPresent(this[_query1]))&&dart.notNull(core.identical(this[_query1].originator,this))){this[_query1].list.fireCallbacks()}if(dart.notNull(lang.isPresent(this[_query2]))&&dart.notNull(core.identical(this[_query2].originator,this))){this[_query2].list.fireCallbacks()}}hydrate(imperativelyCreatedInjector,host,preBuiltObjects){this[_host]=host;this[_preBuiltObjects]=preBuiltObjects;this[_hydrateInjector](imperativelyCreatedInjector,host);this[_addDirectivesToQueries]();this[_addVarBindingsToQueries]();this.hydrated=true}[_hydrateInjector](imperativelyCreatedInjector,host){if(dart.notNull(lang.isPresent(this[_parent]))){this[_reattachInjector](this[_injector],dart.as(dart.dload(this[_parent],_injector),injector$.Injector),false)}else{if(dart.notNull(lang.isPresent(imperativelyCreatedInjector))&&dart.notNull(lang.isPresent(host))){this[_reattachInjector](imperativelyCreatedInjector,host[_injector],true)}let parent=this[_getParentInjector](imperativelyCreatedInjector,host);this[_reattachInjector](this[_injector],parent,true)}}[_getParentInjector](injector,host){if(dart.notNull(lang.isPresent(injector))){return injector}else if(dart.notNull(lang.isPresent(host))){return host[_injector]}else{return null}}[_reattachInjector](injector,parentInjector,isBoundary){dart.dsend(injector.internalStrategy,'attach',parentInjector,isBoundary);dart.dsend(injector.internalStrategy,'hydrate')}hasVariableBinding(name){let vb=this[_proto].directiveVariableBindings;return dart.notNull(lang.isPresent(vb))&&dart.notNull(vb.containsKey(name))}getVariableBinding(name){let index=this[_proto].directiveVariableBindings.get(name);return dart.notNull(lang.isPresent(index))?this.getDirectiveAtIndex(dart.as(index,core.num)):this.getElementRef()}get(token){return this[_injector].get(token)}hasDirective(type){return lang.isPresent(this[_injector].getOptional(type))}getEventEmitterAccessors(){return this[_proto].eventEmitterAccessors}getHostActionAccessors(){return this[_proto].hostActionAccessors}getDirectiveVariableBindings(){return this[_proto].directiveVariableBindings}getComponent(){return this[_strategy].getComponent()}getElementRef(){return dart.as(dart.dindex(dart.dload(dart.dload(this[_preBuiltObjects],'view'),'elementRefs'),this[_proto].index),element_ref.ElementRef)}getViewContainerRef(){return new view_container_ref.ViewContainerRef(dart.as(dart.dload(this[_preBuiltObjects],'viewManager'),view_manager.AppViewManager),this.getElementRef())}directParent(){return dart.notNull(this[_proto].distanceToParent)<2?dart.as(this.parent,ElementInjector):null}isComponentKey(key){return this[_strategy].isComponentKey(key)}getDependency(injector,binding,dep){let key=dep.key;if(!dart.is(dep,DirectiveDependency))return injector$.undefinedValue;let dirDep=dart.as(dep,DirectiveDependency);let staticKeys=StaticKeys.instance();if(dart.notNull(core.identical(key.id,staticKeys.viewManagerId)))return dart.dload(this[_preBuiltObjects],'viewManager');if(dart.notNull(lang.isPresent(dirDep.attributeName)))return this[_buildAttribute](dirDep);if(dart.notNull(lang.isPresent(dirDep.queryDecorator)))return this[_findQuery](dirDep.queryDecorator).list;if(dart.notNull(core.identical(dirDep.key.id,StaticKeys.instance().changeDetectorRefId))){let componentView=dart.dindex(dart.dload(dart.dload(this[_preBuiltObjects],'view'),'componentChildViews'),this[_proto].index);return dart.dload(dart.dload(componentView,'changeDetector'),'ref')}if(dart.notNull(core.identical(dirDep.key.id,StaticKeys.instance().elementRefId))){return this.getElementRef()}if(dart.notNull(core.identical(dirDep.key.id,StaticKeys.instance().viewContainerId))){return this.getViewContainerRef()}if(dart.notNull(core.identical(dirDep.key.id,StaticKeys.instance().protoViewId))){if(dart.notNull(lang.isBlank(dart.dload(this[_preBuiltObjects],'protoView')))){if(dart.notNull(dirDep.optional)){return null}dart.throw(new exceptions.NoBindingError(dirDep.key))}return new view_ref.ProtoViewRef(dart.as(dart.dload(this[_preBuiltObjects],'protoView'),view.AppProtoView))}return injector$.undefinedValue}[_buildAttribute](dep){let attributes=this[_proto].attributes;if(dart.notNull(lang.isPresent(attributes))&&dart.notNull(attributes.containsKey(dep.attributeName))){return attributes.get(dep.attributeName)}else{return null}}[_buildQueriesForDeps](deps){for(let i=0;dart.notNull(i)<dart.notNull(deps[dartx.length]);i=dart.notNull(i)+1){let dep=deps[dartx.get](i);if(dart.notNull(lang.isPresent(dep.queryDecorator))){this[_createQueryRef](dep.queryDecorator)}}}[_addVarBindingsToQueries](){this[_addVarBindingsToQuery](this[_query0]);this[_addVarBindingsToQuery](this[_query1]);this[_addVarBindingsToQuery](this[_query2])}[_addDirectivesToQueries](){this[_addDirectivesToQuery](this[_query0]);this[_addDirectivesToQuery](this[_query1]);this[_addDirectivesToQuery](this[_query2])}[_addVarBindingsToQuery](queryRef){if(dart.notNull(lang.isBlank(queryRef))|| !dart.notNull(queryRef.query.isVarBindingQuery))return;let vb=queryRef.query.varBindings;for(let i=0;dart.notNull(i)<dart.notNull(vb[dartx.length]);i=dart.notNull(i)+1){if(dart.notNull(this.hasVariableBinding(vb[dartx.get](i)))){queryRef.list.add(this.getVariableBinding(vb[dartx.get](i)))}}}[_addDirectivesToQuery](queryRef){if(dart.notNull(lang.isBlank(queryRef))||dart.notNull(queryRef.query.isVarBindingQuery))return;let matched=[];this.addDirectivesMatchingQuery(queryRef.query,matched);matched[dartx.forEach](dart.fn(s=>queryRef.list.add(s)))}[_createQueryRef](query){let queryList=new query_list.QueryList();if(dart.notNull(lang.isBlank(this[_query0]))){this[_query0]=new QueryRef(query,queryList,this)}else if(dart.notNull(lang.isBlank(this[_query1]))){this[_query1]=new QueryRef(query,queryList,this)}else if(dart.notNull(lang.isBlank(this[_query2]))){this[_query2]=new QueryRef(query,queryList,this)}else{dart.throw(new QueryError())}}addDirectivesMatchingQuery(query,list){this[_strategy].addDirectivesMatchingQuery(query,list)}[_buildQueries](){if(dart.notNull(lang.isPresent(this[_proto]))){this[_strategy].buildQueries()}}[_findQuery](query){if(dart.notNull(lang.isPresent(this[_query0]))&&dart.notNull(core.identical(this[_query0].query,query))){return this[_query0]}if(dart.notNull(lang.isPresent(this[_query1]))&&dart.notNull(core.identical(this[_query1].query,query))){return this[_query1]}if(dart.notNull(lang.isPresent(this[_query2]))&&dart.notNull(core.identical(this[_query2].query,query))){return this[_query2]}dart.throw(new lang.BaseException(`Cannot find query for directive ${query }.`))}[_hasQuery](query){return dart.equals(this[_query0],query)||dart.equals(this[_query1],query)||dart.equals(this[_query2],query)}link(parent){parent.addChild(this);this[_addParentQueries]()}linkAfter(parent,prevSibling){parent.addChildAfter(this,prevSibling);this[_addParentQueries]()}[_addParentQueries](){if(dart.notNull(lang.isBlank(this.parent)))return;if(dart.notNull(lang.isPresent(dart.dload(this.parent,_query0)))){this[_addQueryToTree](dart.as(dart.dload(this.parent,_query0),QueryRef));if(dart.notNull(this.hydrated))dart.dsend(dart.dload(this.parent,_query0),'update');}if(dart.notNull(lang.isPresent(dart.dload(this.parent,_query1)))){this[_addQueryToTree](dart.as(dart.dload(this.parent,_query1),QueryRef));if(dart.notNull(this.hydrated))dart.dsend(dart.dload(this.parent,_query1),'update');}if(dart.notNull(lang.isPresent(dart.dload(this.parent,_query2)))){this[_addQueryToTree](dart.as(dart.dload(this.parent,_query2),QueryRef));if(dart.notNull(this.hydrated))dart.dsend(dart.dload(this.parent,_query2),'update');}}unlink(){let queriesToUpdate=[];if(dart.notNull(lang.isPresent(dart.dload(this.parent,_query0)))){this[_pruneQueryFromTree](dart.as(dart.dload(this.parent,_query0),QueryRef));queriesToUpdate[dartx.add](dart.dload(this.parent,_query0))}if(dart.notNull(lang.isPresent(dart.dload(this.parent,_query1)))){this[_pruneQueryFromTree](dart.as(dart.dload(this.parent,_query1),QueryRef));queriesToUpdate[dartx.add](dart.dload(this.parent,_query1))}if(dart.notNull(lang.isPresent(dart.dload(this.parent,_query2)))){this[_pruneQueryFromTree](dart.as(dart.dload(this.parent,_query2),QueryRef));queriesToUpdate[dartx.add](dart.dload(this.parent,_query2))}this.remove();collection.ListWrapper.forEach(queriesToUpdate,dart.fn(q=>dart.dsend(q,'update')))}[_pruneQueryFromTree](query){this[_removeQueryRef](query);let child=this[_head];while(dart.notNull(lang.isPresent(child))){dart.dsend(child,_pruneQueryFromTree,query);child=dart.dload(child,_next)}}[_addQueryToTree](queryRef){if(queryRef.query.descendants==false){if(dart.equals(this,queryRef.originator)){this[_addQueryToTreeSelfAndRecurse](queryRef)}else if(dart.equals(this.parent,queryRef.originator)){this[_assignQueryRef](queryRef)}}else{this[_addQueryToTreeSelfAndRecurse](queryRef)}}[_addQueryToTreeSelfAndRecurse](queryRef){this[_assignQueryRef](queryRef);let child=this[_head];while(dart.notNull(lang.isPresent(child))){dart.dsend(child,_addQueryToTree,queryRef);child=dart.dload(child,_next)}}[_assignQueryRef](query){if(dart.notNull(lang.isBlank(this[_query0]))){this[_query0]=query;return}else if(dart.notNull(lang.isBlank(this[_query1]))){this[_query1]=query;return}else if(dart.notNull(lang.isBlank(this[_query2]))){this[_query2]=query;return}dart.throw(new QueryError())}[_removeQueryRef](query){if(dart.equals(this[_query0],query))this[_query0]=null;if(dart.equals(this[_query1],query))this[_query1]=null;if(dart.equals(this[_query2],query))this[_query2]=null;}getDirectiveAtIndex(index){return this[_injector].getAt(index)}hasInstances(){return dart.notNull(this[_proto].hasBindings)&&dart.notNull(this.hydrated)}getHost(){return this[_host]}getBoundElementIndex(){return this[_proto].index}};ElementInjector[dart.implements]=()=>[injector$.DependencyProvider];dart.setSignature(ElementInjector,{constructors:()=>({ElementInjector:[ElementInjector,[ProtoElementInjector,ElementInjector]]}),methods:()=>({[_addVarBindingsToQueries]:[dart.void,[]],[_addQueryToTree]:[dart.void,[QueryRef]],[_pruneQueryFromTree]:[dart.void,[QueryRef]],[_reattachInjector]:[dart.dynamic,[injector$.Injector,injector$.Injector,core.bool]],[_addQueryToTreeSelfAndRecurse]:[dart.void,[QueryRef]],[_hydrateInjector]:[dart.void,[injector$.Injector,ElementInjector]],[_buildQueriesForDeps]:[dart.void,[core.List$(DirectiveDependency)]],[_hasQuery]:[core.bool,[QueryRef]],[_findQuery]:[QueryRef,[dart.dynamic]],[_buildQueries]:[dart.void,[]],[_assignQueryRef]:[dart.void,[QueryRef]],[_addVarBindingsToQuery]:[dart.void,[QueryRef]],[_removeQueryRef]:[dart.void,[QueryRef]],[_createQueryRef]:[dart.void,[di.Query]],[_getParentInjector]:[injector$.Injector,[injector$.Injector,ElementInjector]],[_addDirectivesToQuery]:[dart.void,[QueryRef]],[_addParentQueries]:[dart.void,[]],[_addDirectivesToQueries]:[dart.void,[]],[_buildAttribute]:[core.String,[DirectiveDependency]],addDirectivesMatchingQuery:[dart.void,[di.Query,core.List]],dehydrate:[dart.void,[]],directParent:[ElementInjector,[]],get:[dart.dynamic,[dart.dynamic]],getBoundElementIndex:[core.num,[]],getComponent:[dart.dynamic,[]],getDependency:[dart.dynamic,[injector$.Injector,binding$.ResolvedBinding,binding$.Dependency]],getDirectiveAtIndex:[dart.dynamic,[core.num]],getDirectiveVariableBindings:[core.Map$(core.String,core.num),[]],getElementRef:[element_ref.ElementRef,[]],getEventEmitterAccessors:[core.List$(core.List$(EventEmitterAccessor)),[]],getHost:[ElementInjector,[]],getHostActionAccessors:[core.List$(core.List$(HostActionAccessor)),[]],getVariableBinding:[dart.dynamic,[core.String]],getViewContainerRef:[view_container_ref.ViewContainerRef,[]],hasDirective:[core.bool,[core.Type]],hasInstances:[core.bool,[]],hasVariableBinding:[core.bool,[core.String]],hydrate:[dart.void,[injector$.Injector,ElementInjector,PreBuiltObjects]],isComponentKey:[core.bool,[key.Key]],link:[dart.void,[ElementInjector]],linkAfter:[dart.void,[ElementInjector,ElementInjector]],onAllChangesDone:[dart.void,[]],unlink:[dart.void,[]]})});class _ElementInjectorStrategy extends core.Object{};let _ei=Symbol('_ei');class ElementInjectorInlineStrategy extends core.Object{ElementInjectorInlineStrategy(injectorStrategy,ei){this.injectorStrategy=injectorStrategy;this[_ei]=ei}callOnDestroy(){let i=this.injectorStrategy;let p=i.protoStrategy;if(dart.is(p.binding0,DirectiveBinding)&&dart.notNull(dart.as(p.binding0,DirectiveBinding).callOnDestroy)){dart.dsend(i.obj0,'onDestroy')}if(dart.is(p.binding1,DirectiveBinding)&&dart.notNull(dart.as(p.binding1,DirectiveBinding).callOnDestroy)){dart.dsend(i.obj1,'onDestroy')}if(dart.is(p.binding2,DirectiveBinding)&&dart.notNull(dart.as(p.binding2,DirectiveBinding).callOnDestroy)){dart.dsend(i.obj2,'onDestroy')}if(dart.is(p.binding3,DirectiveBinding)&&dart.notNull(dart.as(p.binding3,DirectiveBinding).callOnDestroy)){dart.dsend(i.obj3,'onDestroy')}if(dart.is(p.binding4,DirectiveBinding)&&dart.notNull(dart.as(p.binding4,DirectiveBinding).callOnDestroy)){dart.dsend(i.obj4,'onDestroy')}if(dart.is(p.binding5,DirectiveBinding)&&dart.notNull(dart.as(p.binding5,DirectiveBinding).callOnDestroy)){dart.dsend(i.obj5,'onDestroy')}if(dart.is(p.binding6,DirectiveBinding)&&dart.notNull(dart.as(p.binding6,DirectiveBinding).callOnDestroy)){dart.dsend(i.obj6,'onDestroy')}if(dart.is(p.binding7,DirectiveBinding)&&dart.notNull(dart.as(p.binding7,DirectiveBinding).callOnDestroy)){dart.dsend(i.obj7,'onDestroy')}if(dart.is(p.binding8,DirectiveBinding)&&dart.notNull(dart.as(p.binding8,DirectiveBinding).callOnDestroy)){dart.dsend(i.obj8,'onDestroy')}if(dart.is(p.binding9,DirectiveBinding)&&dart.notNull(dart.as(p.binding9,DirectiveBinding).callOnDestroy)){dart.dsend(i.obj9,'onDestroy')}}getComponent(){return this.injectorStrategy.obj0}isComponentKey(key){return dart.notNull(this[_ei][_proto][_firstBindingIsComponent])&&dart.notNull(lang.isPresent(key))&&dart.notNull(core.identical(key.id,this.injectorStrategy.protoStrategy.keyId0))}buildQueries(){let p=this.injectorStrategy.protoStrategy;if(dart.is(p.binding0,DirectiveBinding)){this[_ei][_buildQueriesForDeps](dart.as(p.binding0.dependencies,core.List$(DirectiveDependency)))}if(dart.is(p.binding1,DirectiveBinding)){this[_ei][_buildQueriesForDeps](dart.as(p.binding1.dependencies,core.List$(DirectiveDependency)))}if(dart.is(p.binding2,DirectiveBinding)){this[_ei][_buildQueriesForDeps](dart.as(p.binding2.dependencies,core.List$(DirectiveDependency)))}if(dart.is(p.binding3,DirectiveBinding)){this[_ei][_buildQueriesForDeps](dart.as(p.binding3.dependencies,core.List$(DirectiveDependency)))}if(dart.is(p.binding4,DirectiveBinding)){this[_ei][_buildQueriesForDeps](dart.as(p.binding4.dependencies,core.List$(DirectiveDependency)))}if(dart.is(p.binding5,DirectiveBinding)){this[_ei][_buildQueriesForDeps](dart.as(p.binding5.dependencies,core.List$(DirectiveDependency)))}if(dart.is(p.binding6,DirectiveBinding)){this[_ei][_buildQueriesForDeps](dart.as(p.binding6.dependencies,core.List$(DirectiveDependency)))}if(dart.is(p.binding7,DirectiveBinding)){this[_ei][_buildQueriesForDeps](dart.as(p.binding7.dependencies,core.List$(DirectiveDependency)))}if(dart.is(p.binding8,DirectiveBinding)){this[_ei][_buildQueriesForDeps](dart.as(p.binding8.dependencies,core.List$(DirectiveDependency)))}if(dart.is(p.binding9,DirectiveBinding)){this[_ei][_buildQueriesForDeps](dart.as(p.binding9.dependencies,core.List$(DirectiveDependency)))}}addDirectivesMatchingQuery(query,list){let i=this.injectorStrategy;let p=i.protoStrategy;if(dart.notNull(lang.isPresent(p.binding0))&&dart.notNull(core.identical(p.binding0.key.token,query.selector)))list[dartx.add](i.obj0);if(dart.notNull(lang.isPresent(p.binding1))&&dart.notNull(core.identical(p.binding1.key.token,query.selector)))list[dartx.add](i.obj1);if(dart.notNull(lang.isPresent(p.binding2))&&dart.notNull(core.identical(p.binding2.key.token,query.selector)))list[dartx.add](i.obj2);if(dart.notNull(lang.isPresent(p.binding3))&&dart.notNull(core.identical(p.binding3.key.token,query.selector)))list[dartx.add](i.obj3);if(dart.notNull(lang.isPresent(p.binding4))&&dart.notNull(core.identical(p.binding4.key.token,query.selector)))list[dartx.add](i.obj4);if(dart.notNull(lang.isPresent(p.binding5))&&dart.notNull(core.identical(p.binding5.key.token,query.selector)))list[dartx.add](i.obj5);if(dart.notNull(lang.isPresent(p.binding6))&&dart.notNull(core.identical(p.binding6.key.token,query.selector)))list[dartx.add](i.obj6);if(dart.notNull(lang.isPresent(p.binding7))&&dart.notNull(core.identical(p.binding7.key.token,query.selector)))list[dartx.add](i.obj7);if(dart.notNull(lang.isPresent(p.binding8))&&dart.notNull(core.identical(p.binding8.key.token,query.selector)))list[dartx.add](i.obj8);if(dart.notNull(lang.isPresent(p.binding9))&&dart.notNull(core.identical(p.binding9.key.token,query.selector)))list[dartx.add](i.obj9);}getComponentBinding(){let p=this.injectorStrategy.protoStrategy;return dart.as(p.binding0,DirectiveBinding)}};ElementInjectorInlineStrategy[dart.implements]=()=>[_ElementInjectorStrategy];dart.setSignature(ElementInjectorInlineStrategy,{constructors:()=>({ElementInjectorInlineStrategy:[ElementInjectorInlineStrategy,[injector$.InjectorInlineStrategy,ElementInjector]]}),methods:()=>({addDirectivesMatchingQuery:[dart.void,[di.Query,core.List]],buildQueries:[dart.void,[]],callOnDestroy:[dart.void,[]],getComponent:[dart.dynamic,[]],getComponentBinding:[DirectiveBinding,[]],isComponentKey:[core.bool,[key.Key]]})});class ElementInjectorDynamicStrategy extends core.Object{ElementInjectorDynamicStrategy(injectorStrategy,ei){this.injectorStrategy=injectorStrategy;this[_ei]=ei}callOnDestroy(){let ist=this.injectorStrategy;let p=ist.protoStrategy;for(let i=0;dart.notNull(i)<dart.notNull(p.bindings[dartx.length]);i=dart.notNull(i)+1){if(dart.is(p.bindings[dartx.get](i),DirectiveBinding)&&dart.notNull(dart.as(p.bindings[dartx.get](i),DirectiveBinding).callOnDestroy)){dart.dsend(ist.objs[dartx.get](i),'onDestroy')}}}getComponent(){return this.injectorStrategy.objs[dartx.get](0)}isComponentKey(key){let p=this.injectorStrategy.protoStrategy;return dart.notNull(this[_ei][_proto][_firstBindingIsComponent])&&dart.notNull(lang.isPresent(key))&&dart.notNull(core.identical(key.id,p.keyIds[dartx.get](0)))}buildQueries(){let p=this.injectorStrategy.protoStrategy;for(let i=0;dart.notNull(i)<dart.notNull(p.bindings[dartx.length]);i=dart.notNull(i)+1){if(dart.is(p.bindings[dartx.get](i),DirectiveBinding)){this[_ei][_buildQueriesForDeps](dart.as(p.bindings[dartx.get](i).dependencies,core.List$(DirectiveDependency)))}}}addDirectivesMatchingQuery(query,list){let ist=this.injectorStrategy;let p=ist.protoStrategy;for(let i=0;dart.notNull(i)<dart.notNull(p.bindings[dartx.length]);i=dart.notNull(i)+1){if(dart.notNull(core.identical(p.bindings[dartx.get](i).key.token,query.selector)))list[dartx.add](ist.objs[dartx.get](i));}}getComponentBinding(){let p=this.injectorStrategy.protoStrategy;return dart.as(p.bindings[dartx.get](0),DirectiveBinding)}};ElementInjectorDynamicStrategy[dart.implements]=()=>[_ElementInjectorStrategy];dart.setSignature(ElementInjectorDynamicStrategy,{constructors:()=>({ElementInjectorDynamicStrategy:[ElementInjectorDynamicStrategy,[injector$.InjectorDynamicStrategy,ElementInjector]]}),methods:()=>({addDirectivesMatchingQuery:[dart.void,[di.Query,core.List]],buildQueries:[dart.void,[]],callOnDestroy:[dart.void,[]],getComponent:[dart.dynamic,[]],getComponentBinding:[DirectiveBinding,[]],isComponentKey:[core.bool,[key.Key]]})});class QueryError extends lang.BaseException{QueryError(){this.message=null;super.BaseException();;this.message="Only 3 queries can be concurrently active in a template."}toString(){return this.message}};dart.virtualField(QueryError,'message');dart.setSignature(QueryError,{constructors:()=>({QueryError:[QueryError,[]]})});let _aggregateVariableBindings=Symbol('_aggregateVariableBindings');let _aggregateDirective=Symbol('_aggregateDirective');class QueryRef extends core.Object{QueryRef(query,list,originator){this.query=query;this.list=list;this.originator=originator}update(){let aggregator=[];this.visit(this.originator,aggregator);this.list.reset(aggregator)}visit(inj,aggregator){if(dart.notNull(lang.isBlank(inj))|| !dart.notNull(inj[_hasQuery](this)))return;if(dart.notNull(this.query.isVarBindingQuery)){this[_aggregateVariableBindings](inj,aggregator)}else{this[_aggregateDirective](inj,aggregator)}let child=inj[_head];while(dart.notNull(lang.isPresent(child))){this.visit(dart.as(child,ElementInjector),aggregator);child=dart.dload(child,_next)}}[_aggregateVariableBindings](inj,aggregator){let vb=this.query.varBindings;for(let i=0;dart.notNull(i)<dart.notNull(vb[dartx.length]);i=dart.notNull(i)+1){if(dart.notNull(inj.hasVariableBinding(vb[dartx.get](i)))){aggregator[dartx.add](inj.getVariableBinding(vb[dartx.get](i)))}}}[_aggregateDirective](inj,aggregator){inj.addDirectivesMatchingQuery(this.query,aggregator)}};dart.setSignature(QueryRef,{constructors:()=>({QueryRef:[QueryRef,[di.Query,query_list.QueryList,ElementInjector]]}),methods:()=>({[_aggregateDirective]:[dart.void,[ElementInjector,core.List]],[_aggregateVariableBindings]:[dart.void,[ElementInjector,core.List]],update:[dart.void,[]],visit:[dart.void,[ElementInjector,core.List]]})});exports.StaticKeys=StaticKeys;exports.TreeNode$=TreeNode$;exports.TreeNode=TreeNode;exports.DirectiveDependency=DirectiveDependency;exports.DirectiveBinding=DirectiveBinding;exports.PreBuiltObjects=PreBuiltObjects;exports.EventEmitterAccessor=EventEmitterAccessor;exports.HostActionAccessor=HostActionAccessor;exports.ProtoElementInjector=ProtoElementInjector;exports.ElementInjector=ElementInjector;exports.ElementInjectorInlineStrategy=ElementInjectorInlineStrategy;exports.ElementInjectorDynamicStrategy=ElementInjectorDynamicStrategy;exports.QueryError=QueryError;exports.QueryRef=QueryRef});dart_library.library('angular2/src/core/compiler/element_ref',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/render/api'],['angular2/src/core/compiler/view_ref'],function(exports,dart,core,lang,api,view_ref){'use strict';let dartx=dart.dartx;let _renderer=Symbol('_renderer');class ElementRef extends core.Object{ElementRef(parentView,boundElementIndex,renderer){this[_renderer]=renderer;this.parentView=null;this.boundElementIndex=null;this.parentView=parentView;this.boundElementIndex=boundElementIndex}get renderView(){return this.parentView.render}set renderView(viewRef){dart.throw(new lang.BaseException("Abstract setter"))}get nativeElement(){return this[_renderer].getNativeElementSync(this)}};ElementRef[dart.implements]=()=>[api.RenderElementRef];dart.setSignature(ElementRef,{constructors:()=>({ElementRef:[ElementRef,[view_ref.ViewRef,core.num,api.Renderer]]})});exports.ElementRef=ElementRef});dart_library.library('angular2/src/core/compiler/interfaces',null,["dart_runtime/dart",'angular2/src/facade/lang','dart/core'],[],function(exports,dart,lang,core){'use strict';let dartx=dart.dartx;dart.defineLazyProperties(exports,{get ___ignore_me(){return lang.global},set ___ignore_me(_){}});class OnChange extends core.Object{};class OnDestroy extends core.Object{};class OnCheck extends core.Object{};class OnInit extends core.Object{};class OnAllChangesDone extends core.Object{};exports.OnChange=OnChange;exports.OnDestroy=OnDestroy;exports.OnCheck=OnCheck;exports.OnInit=OnInit;exports.OnAllChangesDone=OnAllChangesDone});dart_library.library('angular2/src/core/compiler/proto_view_factory',null,["dart_runtime/dart",'dart/core','angular2/src/change_detection/directive_record','angular2/src/change_detection/binding_record','angular2/src/facade/lang','angular2/src/facade/collection','angular2/src/change_detection/parser/ast','angular2/src/render/api','angular2/src/reflection/reflection','angular2/src/change_detection/interfaces','angular2/src/core/compiler/view','angular2/src/core/compiler/element_injector','angular2/src/di/annotations_impl','angular2/src/change_detection/constants','angular2/src/di/binding','angular2/src/core/compiler/element_binder'],[],function(exports,dart,core,directive_record,binding_record,lang,collection,ast,api,reflection,interfaces,view,element_injector,annotations_impl,constants,binding,element_binder){'use strict';let dartx=dart.dartx;let _directiveRecordsMap=Symbol('_directiveRecordsMap');let _textNodeIndex=Symbol('_textNodeIndex');let _createTextNodeRecords=Symbol('_createTextNodeRecords');let _createElementPropertyRecords=Symbol('_createElementPropertyRecords');let _createDirectiveRecords=Symbol('_createDirectiveRecords');let _getDirectiveRecord=Symbol('_getDirectiveRecord');class BindingRecordsCreator extends core.Object{BindingRecordsCreator(){this[_directiveRecordsMap]=core.Map$(core.num,directive_record.DirectiveRecord).new();this[_textNodeIndex]=0}getBindingRecords(elementBinders,allDirectiveMetadatas){let bindings=[];for(let boundElementIndex=0;dart.notNull(boundElementIndex)<dart.notNull(elementBinders[dartx.length]);boundElementIndex=dart.notNull(boundElementIndex)+1){let renderElementBinder=elementBinders[dartx.get](boundElementIndex);this[_createTextNodeRecords](dart.as(bindings,core.List$(binding_record.BindingRecord)),renderElementBinder);this[_createElementPropertyRecords](dart.as(bindings,core.List$(binding_record.BindingRecord)),boundElementIndex,renderElementBinder);this[_createDirectiveRecords](dart.as(bindings,core.List$(binding_record.BindingRecord)),boundElementIndex,renderElementBinder.directives,allDirectiveMetadatas)}return dart.as(bindings,core.List$(binding_record.BindingRecord))}getDirectiveRecords(elementBinders,allDirectiveMetadatas){let directiveRecords=[];for(let elementIndex=0;dart.notNull(elementIndex)<dart.notNull(elementBinders[dartx.length]);elementIndex=dart.notNull(elementIndex)+1){let dirs=elementBinders[dartx.get](elementIndex).directives;for(let dirIndex=0;dart.notNull(dirIndex)<dart.notNull(dirs[dartx.length]);dirIndex=dart.notNull(dirIndex)+1){directiveRecords[dartx.add](this[_getDirectiveRecord](elementIndex,dirIndex,allDirectiveMetadatas[dartx.get](dirs[dartx.get](dirIndex).directiveIndex)))}}return dart.as(directiveRecords,core.List$(directive_record.DirectiveRecord))}[_createTextNodeRecords](bindings,renderElementBinder){if(dart.notNull(lang.isBlank(renderElementBinder.textBindings)))return;collection.ListWrapper.forEach(renderElementBinder.textBindings,dart.fn(b=>{bindings[dartx.add](binding_record.BindingRecord.createForTextNode(dart.as(b,ast.AST),(()=>{let x=this[_textNodeIndex];this[_textNodeIndex]=dart.notNull(x)+1;return x})()))}))}[_createElementPropertyRecords](bindings,boundElementIndex,renderElementBinder){collection.ListWrapper.forEach(renderElementBinder.propertyBindings,dart.fn(binding=>{if(dart.notNull(core.identical(dart.dload(binding,'type'),api.PropertyBindingType.PROPERTY))){bindings[dartx.add](binding_record.BindingRecord.createForElementProperty(dart.as(dart.dload(binding,'astWithSource'),ast.AST),boundElementIndex,dart.as(dart.dload(binding,'property'),core.String)))}else if(dart.notNull(core.identical(dart.dload(binding,'type'),api.PropertyBindingType.ATTRIBUTE))){bindings[dartx.add](binding_record.BindingRecord.createForElementAttribute(dart.as(dart.dload(binding,'astWithSource'),ast.AST),boundElementIndex,dart.as(dart.dload(binding,'property'),core.String)))}else if(dart.notNull(core.identical(dart.dload(binding,'type'),api.PropertyBindingType.CLASS))){bindings[dartx.add](binding_record.BindingRecord.createForElementClass(dart.as(dart.dload(binding,'astWithSource'),ast.AST),boundElementIndex,dart.as(dart.dload(binding,'property'),core.String)))}else if(dart.notNull(core.identical(dart.dload(binding,'type'),api.PropertyBindingType.STYLE))){bindings[dartx.add](binding_record.BindingRecord.createForElementStyle(dart.as(dart.dload(binding,'astWithSource'),ast.AST),boundElementIndex,dart.as(dart.dload(binding,'property'),core.String),dart.as(dart.dload(binding,'unit'),core.String)))}}))}[_createDirectiveRecords](bindings,boundElementIndex,directiveBinders,allDirectiveMetadatas){for(let i=0;dart.notNull(i)<dart.notNull(directiveBinders[dartx.length]);i=dart.notNull(i)+1){let directiveBinder=directiveBinders[dartx.get](i);let directiveMetadata=allDirectiveMetadatas[dartx.get](directiveBinder.directiveIndex);let directiveRecord=this[_getDirectiveRecord](boundElementIndex,i,directiveMetadata);collection.MapWrapper.forEach(directiveBinder.propertyBindings,dart.fn((astWithSource,propertyName)=>{let setter=reflection.reflector.setter(dart.as(propertyName,core.String));bindings[dartx.add](binding_record.BindingRecord.createForDirective(dart.as(astWithSource,ast.AST),dart.as(propertyName,core.String),setter,directiveRecord))}));if(dart.notNull(directiveRecord.callOnChange)){bindings[dartx.add](binding_record.BindingRecord.createDirectiveOnChange(directiveRecord))}if(dart.notNull(directiveRecord.callOnInit)){bindings[dartx.add](binding_record.BindingRecord.createDirectiveOnInit(directiveRecord))}if(dart.notNull(directiveRecord.callOnCheck)){bindings[dartx.add](binding_record.BindingRecord.createDirectiveOnCheck(directiveRecord))}}for(let i=0;dart.notNull(i)<dart.notNull(directiveBinders[dartx.length]);i=dart.notNull(i)+1){let directiveBinder=directiveBinders[dartx.get](i);collection.ListWrapper.forEach(directiveBinder.hostPropertyBindings,dart.fn(binding=>{let dirIndex=new directive_record.DirectiveIndex(boundElementIndex,i);if(dart.notNull(core.identical(dart.dload(binding,'type'),api.PropertyBindingType.PROPERTY))){bindings[dartx.add](binding_record.BindingRecord.createForHostProperty(dirIndex,dart.as(dart.dload(binding,'astWithSource'),ast.AST),dart.as(dart.dload(binding,'property'),core.String)))}else if(dart.notNull(core.identical(dart.dload(binding,'type'),api.PropertyBindingType.ATTRIBUTE))){bindings[dartx.add](binding_record.BindingRecord.createForHostAttribute(dirIndex,dart.as(dart.dload(binding,'astWithSource'),ast.AST),dart.as(dart.dload(binding,'property'),core.String)))}else if(dart.notNull(core.identical(dart.dload(binding,'type'),api.PropertyBindingType.CLASS))){bindings[dartx.add](binding_record.BindingRecord.createForHostClass(dirIndex,dart.as(dart.dload(binding,'astWithSource'),ast.AST),dart.as(dart.dload(binding,'property'),core.String)))}else if(dart.notNull(core.identical(dart.dload(binding,'type'),api.PropertyBindingType.STYLE))){bindings[dartx.add](binding_record.BindingRecord.createForHostStyle(dirIndex,dart.as(dart.dload(binding,'astWithSource'),ast.AST),dart.as(dart.dload(binding,'property'),core.String),dart.as(dart.dload(binding,'unit'),core.String)))}}))}}[_getDirectiveRecord](boundElementIndex,directiveIndex,directiveMetadata){let id=dart.notNull(boundElementIndex)*100+dart.notNull(directiveIndex);if(!dart.notNull(this[_directiveRecordsMap].containsKey(id))){this[_directiveRecordsMap].set(id,new directive_record.DirectiveRecord({callOnAllChangesDone:directiveMetadata.callOnAllChangesDone,callOnChange:directiveMetadata.callOnChange,callOnCheck:directiveMetadata.callOnCheck,callOnInit:directiveMetadata.callOnInit,changeDetection:directiveMetadata.changeDetection,directiveIndex:new directive_record.DirectiveIndex(boundElementIndex,directiveIndex)}))}return this[_directiveRecordsMap].get(id)}};dart.setSignature(BindingRecordsCreator,{methods:()=>({[_getDirectiveRecord]:[directive_record.DirectiveRecord,[core.num,core.num,api.DirectiveMetadata]],[_createDirectiveRecords]:[dart.dynamic,[core.List$(binding_record.BindingRecord),core.num,core.List$(api.DirectiveBinder),core.List$(api.DirectiveMetadata)]],[_createElementPropertyRecords]:[dart.dynamic,[core.List$(binding_record.BindingRecord),core.num,api.ElementBinder]],[_createTextNodeRecords]:[dart.dynamic,[core.List$(binding_record.BindingRecord),api.ElementBinder]],getBindingRecords:[core.List$(binding_record.BindingRecord),[core.List$(api.ElementBinder),core.List$(api.DirectiveMetadata)]],getDirectiveRecords:[core.List$(directive_record.DirectiveRecord),[core.List$(api.ElementBinder),core.List$(api.DirectiveMetadata)]]})});let _changeDetection=Symbol('_changeDetection');class ProtoViewFactory extends core.Object{ProtoViewFactory(changeDetection){this[_changeDetection]=changeDetection}createAppProtoViews(hostComponentBinding,rootRenderProtoView,allDirectives){let allRenderDirectiveMetadata=collection.ListWrapper.map(allDirectives,dart.fn(directiveBinding=>dart.dload(directiveBinding,'metadata')));let nestedPvsWithIndex=_collectNestedProtoViews(rootRenderProtoView);let nestedPvVariableBindings=_collectNestedProtoViewsVariableBindings(nestedPvsWithIndex);let nestedPvVariableNames=_collectNestedProtoViewsVariableNames(nestedPvsWithIndex);let changeDetectorDefs=_getChangeDetectorDefinitions(hostComponentBinding.metadata,nestedPvsWithIndex,nestedPvVariableNames,dart.as(allRenderDirectiveMetadata,core.List$(api.DirectiveMetadata)));let protoChangeDetectors=collection.ListWrapper.map(changeDetectorDefs,dart.fn(changeDetectorDef=>this[_changeDetection].createProtoChangeDetector(dart.as(changeDetectorDef,interfaces.ChangeDetectorDefinition)),interfaces.ProtoChangeDetector,[dart.dynamic]));let appProtoViews=collection.ListWrapper.createFixedSize(nestedPvsWithIndex[dartx.length]);collection.ListWrapper.forEach(nestedPvsWithIndex,dart.fn(pvWithIndex=>{let appProtoView=_createAppProtoView(dart.as(dart.dload(pvWithIndex,'renderProtoView'),api.ProtoViewDto),dart.as(protoChangeDetectors[dartx.get](dart.as(dart.dload(pvWithIndex,'index'),core.int)),interfaces.ProtoChangeDetector),nestedPvVariableBindings[dartx.get](dart.as(dart.dload(pvWithIndex,'index'),core.int)),allDirectives);if(dart.notNull(lang.isPresent(dart.dload(pvWithIndex,'parentIndex')))){let parentView=appProtoViews[dartx.get](dart.as(dart.dload(pvWithIndex,'parentIndex'),core.int));dart.dput(dart.dindex(dart.dload(parentView,'elementBinders'),dart.dload(pvWithIndex,'boundElementIndex')),'nestedProtoView',appProtoView)}appProtoViews[dartx.set](dart.as(dart.dload(pvWithIndex,'index'),core.int),appProtoView)}));return dart.as(appProtoViews,core.List$(view.AppProtoView))}};dart.setSignature(ProtoViewFactory,{constructors:()=>({ProtoViewFactory:[ProtoViewFactory,[interfaces.ChangeDetection]]}),methods:()=>({createAppProtoViews:[core.List$(view.AppProtoView),[element_injector.DirectiveBinding,api.ProtoViewDto,core.List$(element_injector.DirectiveBinding)]]})});ProtoViewFactory[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];function getChangeDetectorDefinitions(hostComponentMetadata,rootRenderProtoView,allRenderDirectiveMetadata){let nestedPvsWithIndex=_collectNestedProtoViews(rootRenderProtoView);let nestedPvVariableNames=_collectNestedProtoViewsVariableNames(nestedPvsWithIndex);return _getChangeDetectorDefinitions(hostComponentMetadata,nestedPvsWithIndex,nestedPvVariableNames,allRenderDirectiveMetadata)}dart.fn(getChangeDetectorDefinitions,core.List$(interfaces.ChangeDetectorDefinition),[api.DirectiveMetadata,api.ProtoViewDto,core.List$(api.DirectiveMetadata)]);function _collectNestedProtoViews(renderProtoView,parentIndex,boundElementIndex,result){if(parentIndex===void 0)parentIndex=null;if(boundElementIndex===void 0)boundElementIndex=null;if(result===void 0)result=null;if(dart.notNull(lang.isBlank(result))){result=dart.list([],RenderProtoViewWithIndex)}result[dartx.add](new RenderProtoViewWithIndex(renderProtoView,result[dartx.length],parentIndex,dart.as(boundElementIndex,core.num)));let currentIndex=dart.notNull(result[dartx.length])-1;let childBoundElementIndex=0;collection.ListWrapper.forEach(renderProtoView.elementBinders,dart.fn(elementBinder=>{if(dart.notNull(lang.isPresent(dart.dload(elementBinder,'nestedProtoView')))){_collectNestedProtoViews(dart.as(dart.dload(elementBinder,'nestedProtoView'),api.ProtoViewDto),currentIndex,childBoundElementIndex,result)}childBoundElementIndex=dart.notNull(childBoundElementIndex)+1}));return result}dart.fn(_collectNestedProtoViews,()=>dart.definiteFunctionType(core.List$(RenderProtoViewWithIndex),[api.ProtoViewDto],[core.num,dart.dynamic,core.List$(RenderProtoViewWithIndex)]));function _getChangeDetectorDefinitions(hostComponentMetadata,nestedPvsWithIndex,nestedPvVariableNames,allRenderDirectiveMetadata){return dart.as(collection.ListWrapper.map(nestedPvsWithIndex,dart.fn(pvWithIndex=>{let elementBinders=dart.dload(dart.dload(pvWithIndex,'renderProtoView'),'elementBinders');let bindingRecordsCreator=new BindingRecordsCreator();let bindingRecords=bindingRecordsCreator.getBindingRecords(dart.as(elementBinders,core.List$(api.ElementBinder)),allRenderDirectiveMetadata);let directiveRecords=bindingRecordsCreator.getDirectiveRecords(dart.as(elementBinders,core.List$(api.ElementBinder)),allRenderDirectiveMetadata);let strategyName=constants.DEFAULT;let typeString=null;if(dart.notNull(core.identical(dart.dload(dart.dload(pvWithIndex,'renderProtoView'),'type'),api.ViewType.COMPONENT))){strategyName=hostComponentMetadata.changeDetection;typeString="comp"}else if(dart.notNull(core.identical(dart.dload(dart.dload(pvWithIndex,'renderProtoView'),'type'),api.ViewType.HOST))){typeString="host"}else{typeString="embedded"}let id=`${hostComponentMetadata.id }_${typeString }_${dart.dload(pvWithIndex,'index')}`;let variableNames=nestedPvVariableNames[dartx.get](dart.as(dart.dload(pvWithIndex,'index'),core.int));return new interfaces.ChangeDetectorDefinition(id,strategyName,variableNames,bindingRecords,directiveRecords)})),core.List$(interfaces.ChangeDetectorDefinition))}dart.fn(_getChangeDetectorDefinitions,()=>dart.definiteFunctionType(core.List$(interfaces.ChangeDetectorDefinition),[api.DirectiveMetadata,core.List$(RenderProtoViewWithIndex),core.List$(core.List$(core.String)),core.List$(api.DirectiveMetadata)]));function _createAppProtoView(renderProtoView,protoChangeDetector,variableBindings,allDirectives){let elementBinders=renderProtoView.elementBinders;let protoView=new view.AppProtoView(renderProtoView.render,protoChangeDetector,variableBindings,createVariableLocations(elementBinders));_createElementBinders(protoView,elementBinders,allDirectives);_bindDirectiveEvents(protoView,elementBinders);return protoView}dart.fn(_createAppProtoView,view.AppProtoView,[api.ProtoViewDto,interfaces.ProtoChangeDetector,core.Map$(core.String,core.String),core.List$(element_injector.DirectiveBinding)]);function _collectNestedProtoViewsVariableBindings(nestedPvsWithIndex){return dart.as(collection.ListWrapper.map(nestedPvsWithIndex,dart.fn(pvWithIndex=>{return _createVariableBindings(dart.dload(pvWithIndex,'renderProtoView'))})),core.List$(core.Map$(core.String,core.String)))}dart.fn(_collectNestedProtoViewsVariableBindings,()=>dart.definiteFunctionType(core.List$(core.Map$(core.String,core.String)),[core.List$(RenderProtoViewWithIndex)]));function _createVariableBindings(renderProtoView){let variableBindings=core.Map.new();collection.MapWrapper.forEach(dart.as(dart.dload(renderProtoView,'variableBindings'),core.Map),dart.fn((mappedName,varName)=>{variableBindings.set(varName,mappedName)}));return dart.as(variableBindings,core.Map$(core.String,core.String))}dart.fn(_createVariableBindings,core.Map$(core.String,core.String),[dart.dynamic]);function _collectNestedProtoViewsVariableNames(nestedPvsWithIndex){let nestedPvVariableNames=collection.ListWrapper.createFixedSize(nestedPvsWithIndex[dartx.length]);collection.ListWrapper.forEach(nestedPvsWithIndex,dart.fn(pvWithIndex=>{let parentVariableNames=dart.notNull(lang.isPresent(dart.dload(pvWithIndex,'parentIndex')))?nestedPvVariableNames[dartx.get](dart.as(dart.dload(pvWithIndex,'parentIndex'),core.int)):null;nestedPvVariableNames[dartx.set](dart.as(dart.dload(pvWithIndex,'index'),core.int),_createVariableNames(dart.as(parentVariableNames,core.List$(core.String)),dart.dload(pvWithIndex,'renderProtoView')))}));return dart.as(nestedPvVariableNames,core.List$(core.List$(core.String)))}dart.fn(_collectNestedProtoViewsVariableNames,()=>dart.definiteFunctionType(core.List$(core.List$(core.String)),[core.List$(RenderProtoViewWithIndex)]));function _createVariableNames(parentVariableNames,renderProtoView){let res=dart.as(dart.notNull(lang.isBlank(parentVariableNames))?dart.as([],core.List$(core.String)):collection.ListWrapper.clone(parentVariableNames),core.List$(core.String));collection.MapWrapper.forEach(dart.as(dart.dload(renderProtoView,'variableBindings'),core.Map),dart.fn((mappedName,varName)=>{res[dartx.add](dart.as(mappedName,core.String))}));collection.ListWrapper.forEach(dart.as(dart.dload(renderProtoView,'elementBinders'),core.Iterable),dart.fn(binder=>{collection.MapWrapper.forEach(dart.as(dart.dload(binder,'variableBindings'),core.Map),dart.fn((mappedName,varName)=>{res[dartx.add](mappedName)},dart.dynamic,[core.String,core.String]))}));return res}dart.fn(_createVariableNames,core.List$(core.String),[core.List$(core.String),dart.dynamic]);function createVariableLocations(elementBinders){let variableLocations=core.Map.new();for(let i=0;dart.notNull(i)<dart.notNull(elementBinders[dartx.length]);i=dart.notNull(i)+1){let binder=elementBinders[dartx.get](i);collection.MapWrapper.forEach(binder.variableBindings,dart.fn((mappedName,varName)=>{variableLocations.set(mappedName,i)}))}return dart.as(variableLocations,core.Map$(core.String,core.num))}dart.fn(createVariableLocations,core.Map$(core.String,core.num),[core.List$(api.ElementBinder)]);function _createElementBinders(protoView,elementBinders,allDirectiveBindings){for(let i=0;dart.notNull(i)<dart.notNull(dart.as(dart.dload(elementBinders,'length'),core.num));i=dart.notNull(i)+1){let renderElementBinder=dart.dindex(elementBinders,i);let dirs=dart.dload(dart.dindex(elementBinders,i),'directives');let parentPeiWithDistance=_findParentProtoElementInjectorWithDistance(i,dart.dload(protoView,'elementBinders'),elementBinders);let directiveBindings=collection.ListWrapper.map(dirs,dart.fn(dir=>dart.dindex(allDirectiveBindings,dart.dload(dir,'directiveIndex'))));let componentDirectiveBinding=null;if(dart.notNull(directiveBindings[dartx.length])>0){if(dart.notNull(core.identical(dart.dload(dart.dload(directiveBindings[dartx.get](0),'metadata'),'type'),api.DirectiveMetadata.COMPONENT_TYPE))){componentDirectiveBinding=directiveBindings[dartx.get](0)}}let protoElementInjector=_createProtoElementInjector(i,parentPeiWithDistance,renderElementBinder,componentDirectiveBinding,directiveBindings);_createElementBinder(dart.as(protoView,view.AppProtoView),i,renderElementBinder,protoElementInjector,componentDirectiveBinding,directiveBindings)}}dart.fn(_createElementBinders);function _findParentProtoElementInjectorWithDistance(binderIndex,elementBinders,renderElementBinders){let distance=0;do{let renderElementBinder=dart.dindex(renderElementBinders,binderIndex);binderIndex=dart.dload(renderElementBinder,'parentIndex');if(!dart.notNull(core.identical(binderIndex,-1))){distance=dart.notNull(distance)+dart.notNull(dart.as(dart.dload(renderElementBinder,'distanceToParent'),core.int));let elementBinder=dart.dindex(elementBinders,binderIndex);if(dart.notNull(lang.isPresent(dart.dload(elementBinder,'protoElementInjector')))){return new ParentProtoElementInjectorWithDistance(dart.as(dart.dload(elementBinder,'protoElementInjector'),element_injector.ProtoElementInjector),distance)}}}while(!dart.notNull(core.identical(binderIndex,-1)));return new ParentProtoElementInjectorWithDistance(null,0)}dart.fn(_findParentProtoElementInjectorWithDistance,()=>dart.definiteFunctionType(ParentProtoElementInjectorWithDistance,[dart.dynamic,dart.dynamic,dart.dynamic]));function _createProtoElementInjector(binderIndex,parentPeiWithDistance,renderElementBinder,componentDirectiveBinding,directiveBindings){let protoElementInjector=null;let hasVariables=dart.notNull(collection.MapWrapper.size(dart.as(dart.dload(renderElementBinder,'variableBindings'),core.Map)))>0;if(dart.notNull(dart.as(dart.dsend(dart.dload(directiveBindings,'length'),'>',0),core.bool))||dart.notNull(hasVariables)){let directiveVariableBindings=createDirectiveVariableBindings(dart.as(renderElementBinder,api.ElementBinder),dart.as(directiveBindings,core.List$(element_injector.DirectiveBinding)));protoElementInjector=element_injector.ProtoElementInjector.create(dart.as(dart.dload(parentPeiWithDistance,'protoElementInjector'),element_injector.ProtoElementInjector),dart.as(binderIndex,core.num),dart.as(directiveBindings,core.List$(binding.ResolvedBinding)),lang.isPresent(componentDirectiveBinding),dart.as(dart.dload(parentPeiWithDistance,'distance'),core.num),directiveVariableBindings);dart.dput(protoElementInjector,'attributes',dart.dload(renderElementBinder,'readAttributes'))}return protoElementInjector}dart.fn(_createProtoElementInjector);function _createElementBinder(protoView,boundElementIndex,renderElementBinder,protoElementInjector,componentDirectiveBinding,directiveBindings){let parent=null;if(!dart.notNull(core.identical(dart.dload(renderElementBinder,'parentIndex'),-1))){parent=protoView.elementBinders[dartx.get](dart.as(dart.dload(renderElementBinder,'parentIndex'),core.int))}let elBinder=protoView.bindElement(dart.as(parent,element_binder.ElementBinder),dart.as(dart.dload(renderElementBinder,'distanceToParent'),core.int),dart.as(protoElementInjector,element_injector.ProtoElementInjector),dart.as(componentDirectiveBinding,element_injector.DirectiveBinding));protoView.bindEvent(dart.as(dart.dload(renderElementBinder,'eventBindings'),core.List$(api.EventBinding)),dart.as(boundElementIndex,core.num),-1);collection.MapWrapper.forEach(dart.as(dart.dload(renderElementBinder,'variableBindings'),core.Map),dart.fn((mappedName,varName)=>{protoView.protoLocals.set(dart.as(mappedName,core.String),null)}));return elBinder}dart.fn(_createElementBinder,element_binder.ElementBinder,[view.AppProtoView,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]);function createDirectiveVariableBindings(renderElementBinder,directiveBindings){let directiveVariableBindings=core.Map.new();collection.MapWrapper.forEach(renderElementBinder.variableBindings,dart.fn((templateName,exportAs)=>{let dirIndex=_findDirectiveIndexByExportAs(renderElementBinder,directiveBindings,exportAs);directiveVariableBindings.set(templateName,dirIndex)}));return dart.as(directiveVariableBindings,core.Map$(core.String,core.num))}dart.fn(createDirectiveVariableBindings,core.Map$(core.String,core.num),[api.ElementBinder,core.List$(element_injector.DirectiveBinding)]);function _findDirectiveIndexByExportAs(renderElementBinder,directiveBindings,exportAs){let matchedDirectiveIndex=null;let matchedDirective=null;for(let i=0;dart.notNull(i)<dart.notNull(dart.as(dart.dload(directiveBindings,'length'),core.num));i=dart.notNull(i)+1){let directive=dart.dindex(directiveBindings,i);if(dart.equals(_directiveExportAs(directive),exportAs)){if(dart.notNull(lang.isPresent(matchedDirective))){dart.throw(new lang.BaseException(`More than one directive have exportAs = '${exportAs }'. Directives: [${dart.dload(matchedDirective,'displayName')}, ${dart.dload(directive,'displayName')}]`))}matchedDirectiveIndex=i;matchedDirective=directive}}if(dart.notNull(lang.isBlank(matchedDirective))&& !dart.notNull(core.identical(exportAs,"$implicit"))){dart.throw(new lang.BaseException(`Cannot find directive with exportAs = '${exportAs }'`))}return matchedDirectiveIndex}dart.fn(_findDirectiveIndexByExportAs);function _directiveExportAs(directive){let directiveExportAs=dart.dload(dart.dload(directive,'metadata'),'exportAs');if(dart.notNull(lang.isBlank(directiveExportAs))&&dart.notNull(core.identical(dart.dload(dart.dload(directive,'metadata'),'type'),api.DirectiveMetadata.COMPONENT_TYPE))){return "$implicit"}else{return dart.as(directiveExportAs,core.String)}}dart.fn(_directiveExportAs,core.String,[dart.dynamic]);function _bindDirectiveEvents(protoView,elementBinders){for(let boundElementIndex=0;dart.notNull(boundElementIndex)<dart.notNull(elementBinders[dartx.length]);boundElementIndex=dart.notNull(boundElementIndex)+1){let dirs=elementBinders[dartx.get](boundElementIndex).directives;for(let i=0;dart.notNull(i)<dart.notNull(dirs[dartx.length]);i=dart.notNull(i)+1){let directiveBinder=dirs[dartx.get](i);dart.dsend(protoView,'bindEvent',directiveBinder.eventBindings,boundElementIndex,i)}}}dart.fn(_bindDirectiveEvents,dart.dynamic,[dart.dynamic,core.List$(api.ElementBinder)]);class RenderProtoViewWithIndex extends core.Object{RenderProtoViewWithIndex(renderProtoView,index,parentIndex,boundElementIndex){this.renderProtoView=renderProtoView;this.index=index;this.parentIndex=parentIndex;this.boundElementIndex=boundElementIndex}};dart.setSignature(RenderProtoViewWithIndex,{constructors:()=>({RenderProtoViewWithIndex:[RenderProtoViewWithIndex,[api.ProtoViewDto,core.num,core.num,core.num]]})});class ParentProtoElementInjectorWithDistance extends core.Object{ParentProtoElementInjectorWithDistance(protoElementInjector,distance){this.protoElementInjector=protoElementInjector;this.distance=distance}};dart.setSignature(ParentProtoElementInjectorWithDistance,{constructors:()=>({ParentProtoElementInjectorWithDistance:[ParentProtoElementInjectorWithDistance,[element_injector.ProtoElementInjector,core.num]]})});exports.BindingRecordsCreator=BindingRecordsCreator;exports.ProtoViewFactory=ProtoViewFactory;exports.getChangeDetectorDefinitions=getChangeDetectorDefinitions;exports.createVariableLocations=createVariableLocations;exports.createDirectiveVariableBindings=createDirectiveVariableBindings;exports.RenderProtoViewWithIndex=RenderProtoViewWithIndex;exports.ParentProtoElementInjectorWithDistance=ParentProtoElementInjectorWithDistance});dart_library.library('angular2/src/core/compiler/query_list',null,["dart_runtime/dart",'angular2/src/core/compiler/base_query_list'],[],function(exports,dart,base_query_list){'use strict';let dartx=dart.dartx;let QueryList$=dart.generic(function(T){class QueryList extends base_query_list.BaseQueryList$(T){QueryList(){super.BaseQueryList()}onChange(callback){super.onChange(callback)}removeCallback(callback){super.removeCallback(callback)}}return QueryList});let QueryList=QueryList$();exports.QueryList$=QueryList$;exports.QueryList=QueryList});dart_library.library('angular2/src/core/compiler/view',null,["dart_runtime/dart",'dart/core','angular2/src/facade/collection','angular2/src/change_detection/parser/locals','angular2/src/facade/lang','angular2/src/change_detection/interfaces','angular2/src/render/api','angular2/src/change_detection/binding_record','angular2/src/change_detection/directive_record','angular2/src/change_detection/parser/ast'],['angular2/src/core/compiler/element_ref','angular2/src/core/compiler/view_ref','angular2/src/core/compiler/element_injector','angular2/src/core/compiler/element_binder'],function(exports,dart,core,collection,locals$,lang,interfaces,api,binding_record,directive_record,ast,element_ref,view_ref,element_injector,element_binder){'use strict';let dartx=dart.dartx;class AppViewContainer extends core.Object{AppViewContainer(){this.views=dart.list([],AppView)}};class AppView extends core.Object{AppView(renderer,proto,protoLocals){this.renderer=renderer;this.proto=proto;this.render=null;this.rootElementInjectors=null;this.elementInjectors=null;this.changeDetector=null;this.componentChildViews=null;this.viewContainers=null;this.preBuiltObjects=null;this.elementRefs=null;this.ref=null;this.context=null;this.locals=null;this.viewContainers=dart.as(collection.ListWrapper.createFixedSize(this.proto.elementBinders[dartx.length]),core.List$(AppViewContainer));this.elementRefs=dart.as(collection.ListWrapper.createFixedSize(this.proto.elementBinders[dartx.length]),core.List$(element_ref.ElementRef));this.ref=new view_ref.ViewRef(this);for(let i=0;dart.notNull(i)<dart.notNull(this.elementRefs[dartx.length]);i=dart.notNull(i)+1){this.elementRefs[dartx.set](i,new element_ref.ElementRef(this.ref,i,this.renderer))}this.locals=new locals$.Locals(null,collection.MapWrapper.clone(protoLocals))}init(changeDetector,elementInjectors,rootElementInjectors,preBuiltObjects,componentChildViews){this.changeDetector=changeDetector;this.elementInjectors=elementInjectors;this.rootElementInjectors=rootElementInjectors;this.preBuiltObjects=preBuiltObjects;this.componentChildViews=componentChildViews}setLocal(contextName,value){if(!dart.notNull(this.hydrated()))dart.throw(new lang.BaseException("Cannot set locals on dehydrated view."));if(!dart.notNull(this.proto.variableBindings.containsKey(contextName))){return}let templateName=this.proto.variableBindings.get(contextName);this.locals.set(templateName,value)}hydrated(){return lang.isPresent(this.context)}triggerEventHandlers(eventName,eventObj,binderIndex){let locals=core.Map.new();locals.set("$event",eventObj);this.dispatchEvent(binderIndex,eventName,dart.as(locals,core.Map$(core.String,dart.dynamic)))}notifyOnBinding(b,currentValue){if(dart.notNull(b.isElementProperty())){this.renderer.setElementProperty(this.elementRefs[dartx.get](b.elementIndex),b.propertyName,currentValue)}else if(dart.notNull(b.isElementAttribute())){this.renderer.setElementAttribute(this.elementRefs[dartx.get](b.elementIndex),b.propertyName,dart.as(currentValue,core.String))}else if(dart.notNull(b.isElementClass())){this.renderer.setElementClass(this.elementRefs[dartx.get](b.elementIndex),b.propertyName,dart.as(currentValue,core.bool))}else if(dart.notNull(b.isElementStyle())){let unit=dart.notNull(lang.isPresent(b.propertyUnit))?b.propertyUnit:"";this.renderer.setElementStyle(this.elementRefs[dartx.get](b.elementIndex),b.propertyName,`${currentValue }${unit }`)}else if(dart.notNull(b.isTextNode())){this.renderer.setText(this.render,b.elementIndex,dart.as(currentValue,core.String))}else{dart.throw(new lang.BaseException("Unsupported directive record"))}}notifyOnAllChangesDone(){let ei=this.elementInjectors;for(let i=dart.notNull(ei[dartx.length])-1;dart.notNull(i)>=0;i=dart.notNull(i)-1){if(dart.notNull(lang.isPresent(ei[dartx.get](i))))ei[dartx.get](i).onAllChangesDone();}}getDirectiveFor(directive){let elementInjector=this.elementInjectors[dartx.get](directive.elementIndex);return elementInjector.getDirectiveAtIndex(directive.directiveIndex)}getDetectorFor(directive){let childView=this.componentChildViews[dartx.get](directive.elementIndex);return dart.notNull(lang.isPresent(childView))?childView.changeDetector:null}invokeElementMethod(elementIndex,methodName,args){this.renderer.invokeElementMethod(this.elementRefs[dartx.get](elementIndex),methodName,args)}dispatchEvent(elementIndex,eventName,locals){let allowDefaultBehavior=true;if(dart.notNull(this.hydrated())){let elBinder=this.proto.elementBinders[dartx.get](elementIndex);if(dart.notNull(lang.isBlank(elBinder.hostListeners)))return allowDefaultBehavior;let eventMap=elBinder.hostListeners.get(eventName);if(dart.notNull(lang.isBlank(eventMap)))return allowDefaultBehavior;collection.MapWrapper.forEach(eventMap,dart.fn((expr,directiveIndex)=>{let context=null;if(dart.notNull(core.identical(directiveIndex,-1))){context=this.context}else{context=this.elementInjectors[dartx.get](elementIndex).getDirectiveAtIndex(dart.as(directiveIndex,core.num))}let result=dart.dsend(expr,'eval',context,new locals$.Locals(this.locals,locals));if(dart.notNull(lang.isPresent(result))){allowDefaultBehavior=dart.notNull(allowDefaultBehavior)&&dart.equals(result,true)}}))}return allowDefaultBehavior}};AppView[dart.implements]=()=>[interfaces.ChangeDispatcher,api.EventDispatcher];dart.setSignature(AppView,{constructors:()=>({AppView:[AppView,[api.Renderer,AppProtoView,core.Map$(core.String,dart.dynamic)]]}),methods:()=>({dispatchEvent:[core.bool,[core.num,core.String,core.Map$(core.String,dart.dynamic)]],getDetectorFor:[dart.dynamic,[directive_record.DirectiveIndex]],getDirectiveFor:[dart.dynamic,[directive_record.DirectiveIndex]],hydrated:[core.bool,[]],init:[dart.dynamic,[interfaces.ChangeDetector,core.List$(element_injector.ElementInjector),core.List$(element_injector.ElementInjector),core.List$(element_injector.PreBuiltObjects),core.List$(AppView)]],invokeElementMethod:[dart.dynamic,[core.num,core.String,core.List]],notifyOnAllChangesDone:[dart.void,[]],notifyOnBinding:[dart.void,[binding_record.BindingRecord,dart.dynamic]],setLocal:[dart.void,[core.String,dart.dynamic]],triggerEventHandlers:[dart.void,[core.String,dart.dynamic,core.int]]})});class AppProtoView extends core.Object{AppProtoView(render,protoChangeDetector,variableBindings,variableLocations){this.elementBinders=dart.list([],element_binder.ElementBinder);this.protoLocals=core.Map$(core.String,dart.dynamic).new();this.render=render;this.protoChangeDetector=protoChangeDetector;this.variableBindings=variableBindings;this.variableLocations=variableLocations;if(dart.notNull(lang.isPresent(this.variableBindings))){collection.MapWrapper.forEach(this.variableBindings,dart.fn((templateName,_)=>{this.protoLocals.set(dart.as(templateName,core.String),null)}))}}bindElement(parent,distanceToParent,protoElementInjector,componentDirective){if(componentDirective===void 0)componentDirective=null;let elBinder=new element_binder.ElementBinder(this.elementBinders[dartx.length],parent,distanceToParent,protoElementInjector,componentDirective);this.elementBinders[dartx.add](elBinder);return elBinder}bindEvent(eventBindings,boundElementIndex,directiveIndex){if(directiveIndex===void 0)directiveIndex=-1;let elBinder=this.elementBinders[dartx.get](boundElementIndex);let events=elBinder.hostListeners;if(dart.notNull(lang.isBlank(events))){events=dart.as(collection.StringMapWrapper.create(),core.Map$(core.String,core.Map$(core.num,ast.AST)));elBinder.hostListeners=events}for(let i=0;dart.notNull(i)<dart.notNull(eventBindings[dartx.length]);i=dart.notNull(i)+1){let eventBinding=eventBindings[dartx.get](i);let eventName=eventBinding.fullName;let event=collection.StringMapWrapper.get(events,eventName);if(dart.notNull(lang.isBlank(event))){event=core.Map.new();collection.StringMapWrapper.set(events,eventName,event)}dart.dsetindex(event,directiveIndex,eventBinding.source)}}};dart.setSignature(AppProtoView,{constructors:()=>({AppProtoView:[AppProtoView,[api.RenderProtoViewRef,interfaces.ProtoChangeDetector,core.Map$(core.String,core.String),core.Map$(core.String,core.num)]]}),methods:()=>({bindElement:[element_binder.ElementBinder,[element_binder.ElementBinder,core.int,element_injector.ProtoElementInjector],[element_injector.DirectiveBinding]],bindEvent:[dart.void,[core.List$(api.EventBinding),core.num],[core.int]]})});exports.AppViewContainer=AppViewContainer;exports.AppView=AppView;exports.AppProtoView=AppProtoView});dart_library.library('angular2/src/core/compiler/view_container_ref',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/facade/collection','angular2/src/core/compiler/element_ref','angular2/src/di/binding'],['angular2/src/core/compiler/view_ref','angular2/src/core/compiler/view','angular2/src/core/compiler/view_manager'],function(exports,dart,core,lang,collection,element_ref,binding,view_ref,view,view_manager){'use strict';let dartx=dart.dartx;let _getViews=Symbol('_getViews');class ViewContainerRef extends core.Object{ViewContainerRef(viewManager,element){this.viewManager=viewManager;this.element=element}[_getViews](){let vc=view_ref.internalView(this.element.parentView).viewContainers[dartx.get](this.element.boundElementIndex);return dart.notNull(lang.isPresent(vc))?vc.views:dart.list([],view.AppView)}clear(){for(let i=dart.notNull(this.length)-1;dart.notNull(i)>=0;i=dart.notNull(i)-1){this.remove(i)}}get(index){return this[_getViews]()[dartx.get](index).ref}get length(){return this[_getViews]()[dartx.length]}create(protoViewRef,atIndex,context,bindings){if(protoViewRef===void 0)protoViewRef=null;if(atIndex===void 0)atIndex=-1;if(context===void 0)context=null;if(bindings===void 0)bindings=null;if(atIndex==-1)atIndex=this.length;return this.viewManager.createViewInContainer(this.element,atIndex,protoViewRef,context,bindings)}insert(viewRef,atIndex){if(atIndex===void 0)atIndex=-1;if(atIndex==-1)atIndex=this.length;return this.viewManager.attachViewInContainer(this.element,atIndex,viewRef)}indexOf(viewRef){return collection.ListWrapper.indexOf(this[_getViews](),view_ref.internalView(viewRef))}remove(atIndex){if(atIndex===void 0)atIndex=-1;if(atIndex==-1)atIndex=dart.notNull(this.length)-1;this.viewManager.destroyViewInContainer(this.element,atIndex)}detach(atIndex){if(atIndex===void 0)atIndex=-1;if(atIndex==-1)atIndex=dart.notNull(this.length)-1;return this.viewManager.detachViewInContainer(this.element,atIndex)}};dart.setSignature(ViewContainerRef,{constructors:()=>({ViewContainerRef:[ViewContainerRef,[view_manager.AppViewManager,element_ref.ElementRef]]}),methods:()=>({[_getViews]:[core.List$(view.AppView),[]],clear:[dart.void,[]],create:[view_ref.ViewRef,[],[view_ref.ProtoViewRef,core.num,element_ref.ElementRef,core.List$(binding.ResolvedBinding)]],detach:[view_ref.ViewRef,[],[core.num]],get:[view_ref.ViewRef,[core.num]],indexOf:[core.num,[view_ref.ViewRef]],insert:[view_ref.ViewRef,[view_ref.ViewRef],[core.num]],remove:[dart.void,[],[core.num]]})});exports.ViewContainerRef=ViewContainerRef});dart_library.library('angular2/src/core/compiler/view_listener',null,["dart_runtime/dart",'dart/core','angular2/src/di/annotations_impl'],['angular2/src/core/compiler/view'],function(exports,dart,core,annotations_impl,view){'use strict';let dartx=dart.dartx;class AppViewListener extends core.Object{viewCreated(view){}viewDestroyed(view){}};dart.setSignature(AppViewListener,{methods:()=>({viewCreated:[dart.dynamic,[view.AppView]],viewDestroyed:[dart.dynamic,[view.AppView]]})});AppViewListener[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.AppViewListener=AppViewListener});dart_library.library('angular2/src/core/compiler/view_manager',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/render/api','angular2/src/di/injector','angular2/src/di/binding','angular2/src/di/annotations_impl'],['angular2/src/core/compiler/view_ref','angular2/src/core/compiler/view','angular2/src/core/compiler/element_ref','angular2/src/core/compiler/view_container_ref','angular2/src/core/compiler/view_pool','angular2/src/core/compiler/view_listener','angular2/src/core/compiler/view_manager_utils'],function(exports,dart,core,lang,api,injector,binding,annotations_impl,view_ref,view$,element_ref,view_container_ref,view_pool,view_listener,view_manager_utils){'use strict';let dartx=dart.dartx;let _viewPool=Symbol('_viewPool');let _viewListener=Symbol('_viewListener');let _utils=Symbol('_utils');let _renderer=Symbol('_renderer');let _createViewRecurse=Symbol('_createViewRecurse');let _viewHydrateRecurse=Symbol('_viewHydrateRecurse');let _viewDehydrateRecurse=Symbol('_viewDehydrateRecurse');let _createPooledView=Symbol('_createPooledView');let _destroyViewInContainer=Symbol('_destroyViewInContainer');let _destroyPooledView=Symbol('_destroyPooledView');let _destroyComponentView=Symbol('_destroyComponentView');class AppViewManager extends core.Object{AppViewManager(viewPool,viewListener,utils,renderer){this[_viewPool]=viewPool;this[_viewListener]=viewListener;this[_utils]=utils;this[_renderer]=renderer}getComponentView(hostLocation){let hostView=view_ref.internalView(hostLocation.parentView);let boundElementIndex=hostLocation.boundElementIndex;return hostView.componentChildViews[dartx.get](boundElementIndex).ref}getViewContainer(location){let hostView=view_ref.internalView(location.parentView);return hostView.elementInjectors[dartx.get](location.boundElementIndex).getViewContainerRef()}getHostElement(hostViewRef){return view_ref.internalView(hostViewRef).elementRefs[dartx.get](0)}getNamedElementInComponentView(hostLocation,variableName){let hostView=view_ref.internalView(hostLocation.parentView);let boundElementIndex=hostLocation.boundElementIndex;let componentView=hostView.componentChildViews[dartx.get](boundElementIndex);if(dart.notNull(lang.isBlank(componentView))){dart.throw(new lang.BaseException(`There is no component directive at element ${boundElementIndex }`))}let elementIndex=componentView.proto.variableLocations.get(variableName);if(dart.notNull(lang.isBlank(elementIndex))){dart.throw(new lang.BaseException(`Could not find variable ${variableName }`))}return componentView.elementRefs[dartx.get](elementIndex)}getComponent(hostLocation){let hostView=view_ref.internalView(hostLocation.parentView);let boundElementIndex=hostLocation.boundElementIndex;return this[_utils].getComponentInstance(hostView,boundElementIndex)}createRootHostView(hostProtoViewRef,overrideSelector,injector){let hostProtoView=view_ref.internalProtoView(hostProtoViewRef);let hostElementSelector=overrideSelector;if(dart.notNull(lang.isBlank(hostElementSelector))){hostElementSelector=hostProtoView.elementBinders[dartx.get](0).componentDirective.metadata.selector}let renderView=this[_renderer].createRootHostView(hostProtoView.render,hostElementSelector);let hostView=this[_utils].createView(hostProtoView,renderView,this,this[_renderer]);this[_renderer].setEventDispatcher(hostView.render,hostView);this[_createViewRecurse](hostView);this[_viewListener].viewCreated(hostView);this[_utils].hydrateRootHostView(hostView,injector);this[_viewHydrateRecurse](hostView);return hostView.ref}destroyRootHostView(hostViewRef){let hostView=view_ref.internalView(hostViewRef);this[_viewDehydrateRecurse](hostView,true);this[_renderer].destroyView(hostView.render);this[_viewListener].viewDestroyed(hostView)}createViewInContainer(viewContainerLocation,atIndex,protoViewRef,context,bindings){if(context===void 0)context=null;if(bindings===void 0)bindings=null;let protoView=view_ref.internalProtoView(protoViewRef);let parentView=view_ref.internalView(viewContainerLocation.parentView);let boundElementIndex=viewContainerLocation.boundElementIndex;let contextView=null;let contextBoundElementIndex=null;if(dart.notNull(lang.isPresent(context))){contextView=view_ref.internalView(context.parentView);contextBoundElementIndex=context.boundElementIndex}let view=this[_createPooledView](protoView);this[_renderer].attachViewInContainer(viewContainerLocation,atIndex,view.render);this[_utils].attachViewInContainer(parentView,boundElementIndex,dart.as(contextView,view$.AppView),dart.as(contextBoundElementIndex,core.num),atIndex,view);this[_utils].hydrateViewInContainer(parentView,boundElementIndex,dart.as(contextView,view$.AppView),dart.as(contextBoundElementIndex,core.num),atIndex,bindings);this[_viewHydrateRecurse](view);return view.ref}destroyViewInContainer(viewContainerLocation,atIndex){let parentView=view_ref.internalView(viewContainerLocation.parentView);let boundElementIndex=viewContainerLocation.boundElementIndex;this[_destroyViewInContainer](parentView,boundElementIndex,atIndex)}attachViewInContainer(viewContainerLocation,atIndex,viewRef){let view=view_ref.internalView(viewRef);let parentView=view_ref.internalView(viewContainerLocation.parentView);let boundElementIndex=viewContainerLocation.boundElementIndex;this[_utils].attachViewInContainer(parentView,boundElementIndex,null,null,atIndex,view);this[_renderer].attachViewInContainer(viewContainerLocation,atIndex,view.render);return viewRef}detachViewInContainer(viewContainerLocation,atIndex){let parentView=view_ref.internalView(viewContainerLocation.parentView);let boundElementIndex=viewContainerLocation.boundElementIndex;let viewContainer=parentView.viewContainers[dartx.get](boundElementIndex);let view=viewContainer.views[dartx.get](atIndex);this[_utils].detachViewInContainer(parentView,boundElementIndex,atIndex);this[_renderer].detachViewInContainer(viewContainerLocation,atIndex,view.render);return view.ref}[_createPooledView](protoView){let view=this[_viewPool].getView(protoView);if(dart.notNull(lang.isBlank(view))){view=this[_utils].createView(protoView,this[_renderer].createView(protoView.render),this,this[_renderer]);this[_renderer].setEventDispatcher(view.render,view);this[_createViewRecurse](view);this[_viewListener].viewCreated(view)}return view}[_createViewRecurse](view){let binders=view.proto.elementBinders;for(let binderIdx=0;dart.notNull(binderIdx)<dart.notNull(binders[dartx.length]);binderIdx=dart.notNull(binderIdx)+1){let binder=binders[dartx.get](binderIdx);if(dart.notNull(binder.hasStaticComponent())){let childView=this[_createPooledView](binder.nestedProtoView);this[_renderer].attachComponentView(view.elementRefs[dartx.get](binderIdx),childView.render);this[_utils].attachComponentView(view,binderIdx,childView)}}}[_destroyPooledView](view){let wasReturned=this[_viewPool].returnView(view);if(!dart.notNull(wasReturned)){this[_renderer].destroyView(view.render);this[_viewListener].viewDestroyed(view)}}[_destroyViewInContainer](parentView,boundElementIndex,atIndex){let viewContainer=dart.dindex(dart.dload(parentView,'viewContainers'),boundElementIndex);let view=dart.dindex(dart.dload(viewContainer,'views'),atIndex);this[_viewDehydrateRecurse](dart.as(view,view$.AppView),false);this[_utils].detachViewInContainer(dart.as(parentView,view$.AppView),dart.as(boundElementIndex,core.num),atIndex);this[_renderer].detachViewInContainer(dart.as(dart.dindex(dart.dload(parentView,'elementRefs'),boundElementIndex),api.RenderElementRef),atIndex,dart.as(dart.dload(view,'render'),api.RenderViewRef));this[_destroyPooledView](dart.as(view,view$.AppView))}[_destroyComponentView](hostView,boundElementIndex,componentView){this[_viewDehydrateRecurse](dart.as(componentView,view$.AppView),false);this[_renderer].detachComponentView(dart.as(dart.dindex(dart.dload(hostView,'elementRefs'),boundElementIndex),api.RenderElementRef),dart.as(dart.dload(componentView,'render'),api.RenderViewRef));this[_utils].detachComponentView(dart.as(hostView,view$.AppView),dart.as(boundElementIndex,core.num));this[_destroyPooledView](dart.as(componentView,view$.AppView))}[_viewHydrateRecurse](view){this[_renderer].hydrateView(view.render);let binders=view.proto.elementBinders;for(let i=0;dart.notNull(i)<dart.notNull(binders[dartx.length]);i=dart.notNull(i)+1){if(dart.notNull(binders[dartx.get](i).hasStaticComponent())){this[_utils].hydrateComponentView(view,i);this[_viewHydrateRecurse](view.componentChildViews[dartx.get](i))}}}[_viewDehydrateRecurse](view,forceDestroyComponents){this[_utils].dehydrateView(view);this[_renderer].dehydrateView(view.render);let binders=view.proto.elementBinders;for(let i=0;dart.notNull(i)<dart.notNull(binders[dartx.length]);i=dart.notNull(i)+1){let componentView=view.componentChildViews[dartx.get](i);if(dart.notNull(lang.isPresent(componentView))){if(dart.notNull(dart.as(forceDestroyComponents,core.bool))){this[_destroyComponentView](view,i,componentView)}else{this[_viewDehydrateRecurse](componentView,false)}}let vc=view.viewContainers[dartx.get](i);if(dart.notNull(lang.isPresent(vc))){for(let j=dart.notNull(vc.views[dartx.length])-1;dart.notNull(j)>=0;j=dart.notNull(j)-1){this[_destroyViewInContainer](view,i,j)}}}}};dart.setSignature(AppViewManager,{constructors:()=>({AppViewManager:[AppViewManager,[view_pool.AppViewPool,view_listener.AppViewListener,view_manager_utils.AppViewManagerUtils,api.Renderer]]}),methods:()=>({[_viewDehydrateRecurse]:[dart.dynamic,[view$.AppView,dart.dynamic]],[_destroyViewInContainer]:[dart.dynamic,[dart.dynamic,dart.dynamic,core.num]],[_destroyPooledView]:[dart.dynamic,[view$.AppView]],[_createViewRecurse]:[dart.dynamic,[view$.AppView]],[_destroyComponentView]:[dart.dynamic,[dart.dynamic,dart.dynamic,dart.dynamic]],[_viewHydrateRecurse]:[dart.dynamic,[view$.AppView]],[_createPooledView]:[view$.AppView,[view$.AppProtoView]],attachViewInContainer:[view_ref.ViewRef,[element_ref.ElementRef,core.num,view_ref.ViewRef]],createRootHostView:[view_ref.ViewRef,[view_ref.ProtoViewRef,core.String,injector.Injector]],createViewInContainer:[view_ref.ViewRef,[element_ref.ElementRef,core.num,view_ref.ProtoViewRef],[element_ref.ElementRef,core.List$(binding.ResolvedBinding)]],destroyRootHostView:[dart.dynamic,[view_ref.ViewRef]],destroyViewInContainer:[dart.dynamic,[element_ref.ElementRef,core.num]],detachViewInContainer:[view_ref.ViewRef,[element_ref.ElementRef,core.num]],getComponent:[dart.dynamic,[element_ref.ElementRef]],getComponentView:[view_ref.ViewRef,[element_ref.ElementRef]],getHostElement:[element_ref.ElementRef,[view_ref.ViewRef]],getNamedElementInComponentView:[element_ref.ElementRef,[element_ref.ElementRef,core.String]],getViewContainer:[view_container_ref.ViewContainerRef,[element_ref.ElementRef]]})});AppViewManager[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.AppViewManager=AppViewManager});dart_library.library('angular2/src/core/compiler/view_manager_utils',null,["dart_runtime/dart",'dart/core','angular2/src/facade/collection','angular2/src/facade/lang','angular2/src/di/injector','angular2/src/render/api','angular2/src/di/binding','angular2/src/change_detection/parser/locals','angular2/src/di/annotations_impl'],['angular2/src/core/compiler/view','angular2/src/core/compiler/element_injector','angular2/src/core/compiler/view_manager'],function(exports,dart,core,collection,lang,injector$,api,binding,locals,annotations_impl,view$,element_injector,view_manager){'use strict';let dartx=dart.dartx;let _hydrateView=Symbol('_hydrateView');let _getOrCreateViewContainer=Symbol('_getOrCreateViewContainer');let _populateViewLocals=Symbol('_populateViewLocals');let _setUpEventEmitters=Symbol('_setUpEventEmitters');let _setUpHostActions=Symbol('_setUpHostActions');class AppViewManagerUtils extends core.Object{AppViewManagerUtils(){}getComponentInstance(parentView,boundElementIndex){let eli=parentView.elementInjectors[dartx.get](boundElementIndex);return eli.getComponent()}createView(protoView,renderView,viewManager,renderer){let view=new view$.AppView(renderer,protoView,protoView.protoLocals);view.render=renderView;let changeDetector=protoView.protoChangeDetector.instantiate(view);let binders=protoView.elementBinders;let elementInjectors=collection.ListWrapper.createFixedSize(binders[dartx.length]);let rootElementInjectors=[];let preBuiltObjects=collection.ListWrapper.createFixedSize(binders[dartx.length]);let componentChildViews=collection.ListWrapper.createFixedSize(binders[dartx.length]);for(let binderIdx=0;dart.notNull(binderIdx)<dart.notNull(binders[dartx.length]);binderIdx=dart.notNull(binderIdx)+1){let binder=binders[dartx.get](binderIdx);let elementInjector=null;let protoElementInjector=binder.protoElementInjector;if(dart.notNull(lang.isPresent(protoElementInjector))){if(dart.notNull(lang.isPresent(protoElementInjector.parent))){let parentElementInjector=elementInjectors[dartx.get](protoElementInjector.parent.index);elementInjector=protoElementInjector.instantiate(dart.as(parentElementInjector,element_injector.ElementInjector))}else{elementInjector=protoElementInjector.instantiate(null);rootElementInjectors[dartx.add](elementInjector)}}elementInjectors[dartx.set](binderIdx,elementInjector);if(dart.notNull(lang.isPresent(elementInjector))){let embeddedProtoView=dart.notNull(binder.hasEmbeddedProtoView())?binder.nestedProtoView:null;preBuiltObjects[dartx.set](binderIdx,new element_injector.PreBuiltObjects(viewManager,view,embeddedProtoView))}}view.init(changeDetector,dart.as(elementInjectors,core.List$(element_injector.ElementInjector)),dart.as(rootElementInjectors,core.List$(element_injector.ElementInjector)),dart.as(preBuiltObjects,core.List$(element_injector.PreBuiltObjects)),dart.as(componentChildViews,core.List$(view$.AppView)));return view}attachComponentView(hostView,boundElementIndex,componentView){let childChangeDetector=componentView.changeDetector;hostView.changeDetector.addShadowDomChild(childChangeDetector);hostView.componentChildViews[dartx.set](boundElementIndex,componentView)}detachComponentView(hostView,boundElementIndex){let componentView=hostView.componentChildViews[dartx.get](boundElementIndex);hostView.changeDetector.removeShadowDomChild(componentView.changeDetector);hostView.componentChildViews[dartx.set](boundElementIndex,null)}hydrateComponentView(hostView,boundElementIndex){let elementInjector=hostView.elementInjectors[dartx.get](boundElementIndex);let componentView=hostView.componentChildViews[dartx.get](boundElementIndex);let component=this.getComponentInstance(hostView,boundElementIndex);this[_hydrateView](componentView,null,elementInjector,component,null)}hydrateRootHostView(hostView,injector){this[_hydrateView](hostView,injector,null,new core.Object(),null)}attachViewInContainer(parentView,boundElementIndex,contextView,contextBoundElementIndex,atIndex,view){if(dart.notNull(lang.isBlank(contextView))){contextView=parentView;contextBoundElementIndex=boundElementIndex}parentView.changeDetector.addChild(view.changeDetector);let viewContainer=this[_getOrCreateViewContainer](parentView,boundElementIndex);collection.ListWrapper.insert(dart.as(dart.dload(viewContainer,'views'),core.List),atIndex,view);let sibling=null;if(atIndex==0){sibling=null}else{sibling=collection.ListWrapper.last(dart.as(dart.dload(dart.dindex(dart.dload(viewContainer,'views'),dart.notNull(atIndex)-1),'rootElementInjectors'),core.List))}let elementInjector=contextView.elementInjectors[dartx.get](contextBoundElementIndex);for(let i=dart.notNull(view.rootElementInjectors[dartx.length])-1;dart.notNull(i)>=0;i=dart.notNull(i)-1){if(dart.notNull(lang.isPresent(elementInjector.parent))){view.rootElementInjectors[dartx.get](i).linkAfter(dart.as(elementInjector.parent,element_injector.ElementInjector),dart.as(sibling,element_injector.ElementInjector))}else{contextView.rootElementInjectors[dartx.add](view.rootElementInjectors[dartx.get](i))}}}detachViewInContainer(parentView,boundElementIndex,atIndex){let viewContainer=parentView.viewContainers[dartx.get](boundElementIndex);let view=viewContainer.views[dartx.get](atIndex);view.changeDetector.remove();collection.ListWrapper.removeAt(viewContainer.views,atIndex);for(let i=0;dart.notNull(i)<dart.notNull(view.rootElementInjectors[dartx.length]);i=dart.notNull(i)+1){let inj=view.rootElementInjectors[dartx.get](i);if(dart.notNull(lang.isPresent(inj.parent))){inj.unlink()}else{let removeIdx=collection.ListWrapper.indexOf(parentView.rootElementInjectors,inj);collection.ListWrapper.removeAt(parentView.rootElementInjectors,removeIdx)}}}hydrateViewInContainer(parentView,boundElementIndex,contextView,contextBoundElementIndex,atIndex,bindings){if(dart.notNull(lang.isBlank(contextView))){contextView=parentView;contextBoundElementIndex=boundElementIndex}let viewContainer=parentView.viewContainers[dartx.get](boundElementIndex);let view=viewContainer.views[dartx.get](atIndex);let elementInjector=contextView.elementInjectors[dartx.get](contextBoundElementIndex);let injector=dart.notNull(lang.isPresent(bindings))?injector$.Injector.fromResolvedBindings(bindings):null;this[_hydrateView](view,injector,elementInjector.getHost(),contextView.context,contextView.locals)}[_hydrateView](view,injector,hostElementInjector,context,parentLocals){view.context=context;view.locals.parent=parentLocals;let binders=view.proto.elementBinders;for(let i=0;dart.notNull(i)<dart.notNull(binders[dartx.length]);i=dart.notNull(i)+1){let elementInjector=view.elementInjectors[dartx.get](i);if(dart.notNull(lang.isPresent(elementInjector))){elementInjector.hydrate(injector,hostElementInjector,view.preBuiltObjects[dartx.get](i));this[_populateViewLocals](view,elementInjector);this[_setUpEventEmitters](view,elementInjector,i);this[_setUpHostActions](view,elementInjector,i)}}view.changeDetector.hydrate(view.context,view.locals,view)}[_populateViewLocals](view,elementInjector){if(dart.notNull(lang.isPresent(elementInjector.getDirectiveVariableBindings()))){collection.MapWrapper.forEach(elementInjector.getDirectiveVariableBindings(),dart.fn((directiveIndex,name)=>{if(dart.notNull(lang.isBlank(directiveIndex))){view.locals.set(dart.as(name,core.String),elementInjector.getElementRef().nativeElement)}else{view.locals.set(dart.as(name,core.String),elementInjector.getDirectiveAtIndex(dart.as(directiveIndex,core.num)))}}))}}[_getOrCreateViewContainer](parentView,boundElementIndex){let viewContainer=parentView.viewContainers[dartx.get](boundElementIndex);if(dart.notNull(lang.isBlank(viewContainer))){viewContainer=new view$.AppViewContainer();parentView.viewContainers[dartx.set](boundElementIndex,viewContainer)}return viewContainer}[_setUpEventEmitters](view,elementInjector,boundElementIndex){let emitters=elementInjector.getEventEmitterAccessors();for(let directiveIndex=0;dart.notNull(directiveIndex)<dart.notNull(emitters[dartx.length]);directiveIndex=dart.notNull(directiveIndex)+1){let directiveEmitters=emitters[dartx.get](directiveIndex);let directive=elementInjector.getDirectiveAtIndex(directiveIndex);for(let eventIndex=0;dart.notNull(eventIndex)<dart.notNull(directiveEmitters[dartx.length]);eventIndex=dart.notNull(eventIndex)+1){let eventEmitterAccessor=directiveEmitters[dartx.get](eventIndex);eventEmitterAccessor.subscribe(view,boundElementIndex,directive)}}}[_setUpHostActions](view,elementInjector,boundElementIndex){let hostActions=elementInjector.getHostActionAccessors();for(let directiveIndex=0;dart.notNull(directiveIndex)<dart.notNull(hostActions[dartx.length]);directiveIndex=dart.notNull(directiveIndex)+1){let directiveHostActions=hostActions[dartx.get](directiveIndex);let directive=elementInjector.getDirectiveAtIndex(directiveIndex);for(let index=0;dart.notNull(index)<dart.notNull(directiveHostActions[dartx.length]);index=dart.notNull(index)+1){let hostActionAccessor=directiveHostActions[dartx.get](index);hostActionAccessor.subscribe(view,boundElementIndex,directive)}}}dehydrateView(view){let binders=view.proto.elementBinders;for(let i=0;dart.notNull(i)<dart.notNull(binders[dartx.length]);i=dart.notNull(i)+1){let elementInjector=view.elementInjectors[dartx.get](i);if(dart.notNull(lang.isPresent(elementInjector))){elementInjector.dehydrate()}}if(dart.notNull(lang.isPresent(view.locals))){view.locals.clearValues()}view.context=null;view.changeDetector.dehydrate()}};dart.setSignature(AppViewManagerUtils,{constructors:()=>({AppViewManagerUtils:[AppViewManagerUtils,[]]}),methods:()=>({[_setUpEventEmitters]:[dart.dynamic,[view$.AppView,element_injector.ElementInjector,core.num]],[_getOrCreateViewContainer]:[dart.dynamic,[view$.AppView,core.num]],[_populateViewLocals]:[dart.void,[view$.AppView,element_injector.ElementInjector]],[_hydrateView]:[dart.dynamic,[view$.AppView,injector$.Injector,element_injector.ElementInjector,core.Object,locals.Locals]],[_setUpHostActions]:[dart.dynamic,[view$.AppView,element_injector.ElementInjector,core.num]],attachComponentView:[dart.dynamic,[view$.AppView,core.num,view$.AppView]],attachViewInContainer:[dart.dynamic,[view$.AppView,core.num,view$.AppView,core.num,core.num,view$.AppView]],createView:[view$.AppView,[view$.AppProtoView,api.RenderViewRef,view_manager.AppViewManager,api.Renderer]],dehydrateView:[dart.dynamic,[view$.AppView]],detachComponentView:[dart.dynamic,[view$.AppView,core.num]],detachViewInContainer:[dart.dynamic,[view$.AppView,core.num,core.num]],getComponentInstance:[dart.dynamic,[view$.AppView,core.num]],hydrateComponentView:[dart.dynamic,[view$.AppView,core.num]],hydrateRootHostView:[dart.dynamic,[view$.AppView,injector$.Injector]],hydrateViewInContainer:[dart.dynamic,[view$.AppView,core.num,view$.AppView,core.num,core.num,core.List$(binding.ResolvedBinding)]]})});AppViewManagerUtils[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.AppViewManagerUtils=AppViewManagerUtils});dart_library.library('angular2/src/core/compiler/view_pool',null,["dart_runtime/dart",'angular2/src/di/opaque_token','dart/core','angular2/src/facade/lang','angular2/src/facade/collection','angular2/src/di/annotations_impl'],['angular2/src/core/compiler/view'],function(exports,dart,opaque_token,core,lang,collection,annotations_impl,view$){'use strict';let dartx=dart.dartx;let APP_VIEW_POOL_CAPACITY=dart.const(new opaque_token.OpaqueToken("AppViewPool.viewPoolCapacity"));let _pooledViewsPerProtoView=Symbol('_pooledViewsPerProtoView');let _poolCapacityPerProtoView=Symbol('_poolCapacityPerProtoView');class AppViewPool extends core.Object{AppViewPool(poolCapacityPerProtoView){this[_pooledViewsPerProtoView]=core.Map$(view$.AppProtoView,core.List$(view$.AppView)).new();this[_poolCapacityPerProtoView]=null;this[_poolCapacityPerProtoView]=dart.as(poolCapacityPerProtoView,core.num)}getView(protoView){let pooledViews=this[_pooledViewsPerProtoView].get(protoView);if(dart.notNull(lang.isPresent(pooledViews))&&dart.notNull(pooledViews[dartx.length])>0){return dart.as(collection.ListWrapper.removeLast(pooledViews),view$.AppView)}return null}returnView(view){let protoView=view.proto;let pooledViews=this[_pooledViewsPerProtoView].get(protoView);if(dart.notNull(lang.isBlank(pooledViews))){pooledViews=dart.list([],view$.AppView);this[_pooledViewsPerProtoView].set(protoView,pooledViews)}let haveRemainingCapacity=dart.notNull(pooledViews[dartx.length])<dart.notNull(this[_poolCapacityPerProtoView]);if(dart.notNull(haveRemainingCapacity)){pooledViews[dartx.add](view)}return haveRemainingCapacity}};dart.setSignature(AppViewPool,{constructors:()=>({AppViewPool:[AppViewPool,[[dart.dynamic,dart.const(new annotations_impl.Inject(APP_VIEW_POOL_CAPACITY))]]]}),methods:()=>({getView:[view$.AppView,[view$.AppProtoView]],returnView:[core.bool,[view$.AppView]]})});AppViewPool[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.APP_VIEW_POOL_CAPACITY=APP_VIEW_POOL_CAPACITY;exports.AppViewPool=AppViewPool});dart_library.library('angular2/src/core/compiler/view_ref',null,["dart_runtime/dart",'angular2/src/facade/lang','dart/core'],['angular2/src/core/compiler/view'],function(exports,dart,lang,core,view){'use strict';let dartx=dart.dartx;let _view=Symbol('_view');function internalView(viewRef){return viewRef[_view]}dart.fn(internalView,()=>dart.definiteFunctionType(view.AppView,[ViewRef]));let _protoView=Symbol('_protoView');function internalProtoView(protoViewRef){return dart.notNull(lang.isPresent(protoViewRef))?protoViewRef[_protoView]:null}dart.fn(internalProtoView,()=>dart.definiteFunctionType(view.AppProtoView,[ProtoViewRef]));class ViewRef extends core.Object{ViewRef(view){this[_view]=view}get render(){return this[_view].render}setLocal(contextName,value){this[_view].setLocal(contextName,value)}};dart.setSignature(ViewRef,{constructors:()=>({ViewRef:[ViewRef,[view.AppView]]}),methods:()=>({setLocal:[dart.void,[core.String,dart.dynamic]]})});class ProtoViewRef extends core.Object{ProtoViewRef(protoView){this[_protoView]=protoView}};dart.setSignature(ProtoViewRef,{constructors:()=>({ProtoViewRef:[ProtoViewRef,[view.AppProtoView]]})});exports.internalView=internalView;exports.internalProtoView=internalProtoView;exports.ViewRef=ViewRef;exports.ProtoViewRef=ProtoViewRef});dart_library.library('angular2/src/core/compiler/view_resolver',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/core/annotations_impl/view','angular2/src/reflection/reflection','angular2/src/di/annotations_impl'],[],function(exports,dart,core,lang,view$,reflection,annotations_impl){'use strict';let dartx=dart.dartx;let _cache=Symbol('_cache');let _resolve=Symbol('_resolve');class ViewResolver extends core.Object{ViewResolver(){this[_cache]=core.Map$(core.Type,dart.dynamic).new()}resolve(component){let view=this[_cache].get(component);if(dart.notNull(lang.isBlank(view))){view=this[_resolve](component);this[_cache].set(component,view)}return dart.as(view,view$.View)}[_resolve](component){let annotations=reflection.reflector.annotations(component);for(let i=0;dart.notNull(i)<dart.notNull(annotations[dartx.length]);i=dart.notNull(i)+1){let annotation=annotations[dartx.get](i);if(dart.is(annotation,view$.View)){return dart.as(annotation,view$.View)}}dart.throw(new lang.BaseException(`No View annotation found on component ${lang.stringify(component)}`))}};dart.setSignature(ViewResolver,{methods:()=>({[_resolve]:[view$.View,[core.Type]],resolve:[view$.View,[core.Type]]})});ViewResolver[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.ViewResolver=ViewResolver});dart_library.library('angular2/src/core/exception_handler',null,["dart_runtime/dart",'dart/core','angular2/src/facade/collection','angular2/src/facade/lang','angular2/src/dom/dom_adapter','angular2/src/di/annotations_impl'],[],function(exports,dart,core,collection,lang,dom_adapter,annotations_impl){'use strict';let dartx=dart.dartx;class ExceptionHandler extends core.Object{call(error,stackTrace,reason){if(stackTrace===void 0)stackTrace=null;if(reason===void 0)reason=null;let longStackTrace=dart.notNull(collection.isListLikeIterable(stackTrace))?collection.ListWrapper.join(dart.as(stackTrace,core.List),"\n\n"):stackTrace;let reasonStr=dart.notNull(lang.isPresent(reason))?`${reason }`:"";dom_adapter.DOM.logError(`${error }${reasonStr }\nSTACKTRACE:\n${longStackTrace }`)}};dart.setSignature(ExceptionHandler,{methods:()=>({call:[dart.dynamic,[dart.dynamic],[dart.dynamic,dart.dynamic]]})});ExceptionHandler[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.ExceptionHandler=ExceptionHandler});dart_library.library('angular2/src/core/life_cycle/life_cycle',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/core/zone/ng_zone','angular2/src/change_detection/interfaces','angular2/src/core/exception_handler','angular2/src/di/annotations_impl'],[],function(exports,dart,core,lang,ng_zone,interfaces,exception_handler,annotations_impl){'use strict';let dartx=dart.dartx;let _errorHandler=Symbol('_errorHandler');let _changeDetector=Symbol('_changeDetector');let _enforceNoNewChanges=Symbol('_enforceNoNewChanges');let _runningTick=Symbol('_runningTick');class LifeCycle extends core.Object{LifeCycle(exceptionHandler,changeDetector,enforceNoNewChanges){if(changeDetector===void 0)changeDetector=null;if(enforceNoNewChanges===void 0)enforceNoNewChanges=false;this[_errorHandler]=null;this[_changeDetector]=null;this[_enforceNoNewChanges]=null;this[_runningTick]=false;this[_errorHandler]=dart.fn((exception,stackTrace)=>{exceptionHandler.call(exception,stackTrace);dart.throw(exception)});this[_changeDetector]=changeDetector;this[_enforceNoNewChanges]=enforceNoNewChanges}registerWith(zone,changeDetector){if(changeDetector===void 0)changeDetector=null;if(dart.notNull(lang.isPresent(changeDetector))){this[_changeDetector]=changeDetector}zone.initCallbacks({onErrorHandler:dart.as(this[_errorHandler],core.Function),onTurnDone:dart.fn(()=>this.tick())})}tick(){if(dart.notNull(this[_runningTick])){dart.throw(new lang.BaseException("LifeCycle.tick is called recursively"))}try{this[_runningTick]=true;this[_changeDetector].detectChanges();if(dart.notNull(this[_enforceNoNewChanges])){this[_changeDetector].checkNoChanges()}}finally{this[_runningTick]=false}}};dart.setSignature(LifeCycle,{constructors:()=>({LifeCycle:[LifeCycle,[exception_handler.ExceptionHandler],[interfaces.ChangeDetector,core.bool]]}),methods:()=>({registerWith:[dart.dynamic,[ng_zone.NgZone],[interfaces.ChangeDetector]],tick:[dart.dynamic,[]]})});LifeCycle[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.LifeCycle=LifeCycle});dart_library.library('angular2/src/core/testability/get_testability',null,["dart_runtime/dart",'dart/core','dom_experimental/dom'],['angular2/src/core/testability/testability'],function(exports,dart,core,dom,testability){'use strict';let dartx=dart.dartx;let _testability=Symbol('_testability');class PublicTestability extends core.Object{PublicTestability(testability){this[_testability]=null;this[_testability]=testability}whenStable(callback){return this[_testability].whenStable(callback)}findBindings(elem,binding,exactMatch){return this[_testability].findBindings(elem,binding,exactMatch)}};dart.setSignature(PublicTestability,{constructors:()=>({PublicTestability:[PublicTestability,[testability.Testability]]}),methods:()=>({findBindings:[dart.dynamic,[dom.Element,core.String,core.bool]],whenStable:[dart.dynamic,[core.Function]]})});class GetTestability extends core.Object{static addToWindow(registry){dart.dput(dart.as(dom.window,dart.dynamic),'getAngularTestability',dart.fn(elem=>{let testability=registry.findTestabilityInTree(elem);if(testability==null){dart.throw('Could not find testability for element.')}return new PublicTestability(testability)},dart.dynamic,[PublicTestability]))}};dart.setSignature(GetTestability,{names:['addToWindow'],statics:()=>({addToWindow:[dart.dynamic,[testability.TestabilityRegistry]]})});exports.PublicTestability=PublicTestability;exports.GetTestability=GetTestability});dart_library.library('angular2/src/core/testability/testability',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/facade/collection','angular2/src/di/annotations_impl','angular2/src/dom/dom_adapter'],['angular2/src/core/testability/get_testability'],function(exports,dart,core,lang,collection,annotations_impl,dom_adapter,get_testability){'use strict';let dartx=dart.dartx;let _pendingCount=Symbol('_pendingCount');let _callbacks=Symbol('_callbacks');let _runCallbacks=Symbol('_runCallbacks');class Testability extends core.Object{Testability(){this[_pendingCount]=null;this[_callbacks]=null;this[_pendingCount]=0;this[_callbacks]=dart.list([],core.Function)}increaseCount(delta){if(delta===void 0)delta=1;this[_pendingCount]=dart.notNull(this[_pendingCount])+dart.notNull(delta);if(dart.notNull(this[_pendingCount])<0){dart.throw(new lang.BaseException("pending async requests below zero"))}else if(this[_pendingCount]==0){this[_runCallbacks]()}return this[_pendingCount]}[_runCallbacks](){while(!dart.notNull(core.identical(this[_callbacks][dartx.length],0))){dart.dcall(collection.ListWrapper.removeLast(this[_callbacks]))}}whenStable(callback){this[_callbacks][dartx.add](callback);if(dart.notNull(core.identical(this[_pendingCount],0))){this[_runCallbacks]()}}getPendingCount(){return this[_pendingCount]}findBindings(using,binding,exactMatch){return[]}};dart.setSignature(Testability,{constructors:()=>({Testability:[Testability,[]]}),methods:()=>({[_runCallbacks]:[dart.dynamic,[]],findBindings:[core.List,[dart.dynamic,core.String,core.bool]],getPendingCount:[core.num,[]],increaseCount:[core.num,[],[core.num]],whenStable:[dart.dynamic,[core.Function]]})});Testability[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];let _applications=Symbol('_applications');class TestabilityRegistry extends core.Object{TestabilityRegistry(){this[_applications]=null;this[_applications]=core.Map$(dart.dynamic,Testability).new();get_testability.GetTestability.addToWindow(this)}registerApplication(token,testability){this[_applications].set(token,testability)}findTestabilityInTree(elem){if(elem==null){return null}if(dart.notNull(this[_applications].containsKey(elem))){return this[_applications].get(elem)}if(dart.notNull(dom_adapter.DOM.isShadowRoot(elem))){return this.findTestabilityInTree(dom_adapter.DOM.getHost(elem))}return this.findTestabilityInTree(dom_adapter.DOM.parentElement(elem))}};dart.setSignature(TestabilityRegistry,{constructors:()=>({TestabilityRegistry:[TestabilityRegistry,[]]}),methods:()=>({findTestabilityInTree:[Testability,[dart.dynamic]],registerApplication:[dart.dynamic,[dart.dynamic,Testability]]})});TestabilityRegistry[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.Testability=Testability;exports.TestabilityRegistry=TestabilityRegistry});dart_library.library('angular2/src/core/zone/ng_zone',null,["dart_runtime/dart",'dart/core','dart/async','stack_trace/src/chain'],[],function(exports,dart,core,async,chain){'use strict';let dartx=dart.dartx;let _onTurnStart=Symbol('_onTurnStart');let _onTurnDone=Symbol('_onTurnDone');let _onErrorHandler=Symbol('_onErrorHandler');let _mountZone=Symbol('_mountZone');let _innerZone=Symbol('_innerZone');let _pendingMicrotasks=Symbol('_pendingMicrotasks');let _hasExecutedCodeInInnerZone=Symbol('_hasExecutedCodeInInnerZone');let _nestedRun=Symbol('_nestedRun');let _inVmTurnDone=Symbol('_inVmTurnDone');let _createInnerZone=Symbol('_createInnerZone');let _onErrorWithLongStackTrace=Symbol('_onErrorWithLongStackTrace');let _onErrorWithoutLongStackTrace=Symbol('_onErrorWithoutLongStackTrace');let _maybeStartVmTurn=Symbol('_maybeStartVmTurn');let _run=Symbol('_run');let _runUnary=Symbol('_runUnary');let _runBinary=Symbol('_runBinary');let _scheduleMicrotask=Symbol('_scheduleMicrotask');class NgZone extends core.Object{NgZone(opts){let enableLongStackTrace=opts&&'enableLongStackTrace'in opts?opts.enableLongStackTrace:null;this[_onTurnStart]=null;this[_onTurnDone]=null;this[_onErrorHandler]=null;this[_mountZone]=null;this[_innerZone]=null;this[_pendingMicrotasks]=0;this[_hasExecutedCodeInInnerZone]=false;this[_nestedRun]=0;this[_inVmTurnDone]=false;this[_mountZone]=async.Zone.current;if(dart.notNull(enableLongStackTrace)){this[_innerZone]=dart.as(chain.Chain.capture(dart.fn(()=>this[_createInnerZone](async.Zone.current),async.Zone,[]),{onError:dart.bind(this,_onErrorWithLongStackTrace)}),async.Zone)}else{this[_innerZone]=this[_createInnerZone](async.Zone.current,{handleUncaughtError:dart.fn((self,parent,zone,error,trace)=>this[_onErrorWithoutLongStackTrace](error,trace),dart.void,[async.Zone,async.ZoneDelegate,async.Zone,dart.dynamic,core.StackTrace])})}}initCallbacks(opts){let onTurnStart=opts&&'onTurnStart'in opts?opts.onTurnStart:null;let onTurnDone=opts&&'onTurnDone'in opts?opts.onTurnDone:null;let onErrorHandler=opts&&'onErrorHandler'in opts?opts.onErrorHandler:null;this[_onTurnStart]=onTurnStart;this[_onTurnDone]=onTurnDone;this[_onErrorHandler]=onErrorHandler}run(fn){return this[_innerZone].runGuarded(fn)}runOutsideAngular(fn){return this[_mountZone].run(fn)}[_maybeStartVmTurn](parent){if(!dart.notNull(this[_hasExecutedCodeInInnerZone])){this[_hasExecutedCodeInInnerZone]=true;if(this[_onTurnStart]!=null){parent.run(this[_innerZone],dart.as(this[_onTurnStart],__CastType0))}}}[_run](self,parent,zone,fn){try{this[_nestedRun]=dart.notNull(this[_nestedRun])+1;this[_maybeStartVmTurn](parent);return parent.run(zone,fn)}finally{this[_nestedRun]=dart.notNull(this[_nestedRun])-1;if(this[_pendingMicrotasks]==0&&this[_nestedRun]==0&& !dart.notNull(this[_inVmTurnDone])){if(this[_onTurnDone]!=null&&dart.notNull(this[_hasExecutedCodeInInnerZone])){try{this[_inVmTurnDone]=true;parent.run(this[_innerZone],dart.as(this[_onTurnDone],dart.functionType(dart.dynamic,[])))}finally{this[_inVmTurnDone]=false;this[_hasExecutedCodeInInnerZone]=false}}}}}[_runUnary](self,parent,zone,fn,arg){return this[_run](self,parent,zone,dart.fn(()=>dart.dcall(fn,arg)))}[_runBinary](self,parent,zone,fn,arg1,arg2){return this[_run](self,parent,zone,dart.fn(()=>dart.dcall(fn,arg1,arg2)))}[_scheduleMicrotask](self,parent,zone,fn){this[_pendingMicrotasks]=dart.notNull(this[_pendingMicrotasks])+1;let microtask=dart.fn(()=>{try{dart.dcall(fn)}finally{this[_pendingMicrotasks]=dart.notNull(this[_pendingMicrotasks])-1}});parent.scheduleMicrotask(zone,microtask)}[_onErrorWithLongStackTrace](error,chain){if(this[_onErrorHandler]!=null){let traces=chain.terse.traces[dartx.map](dart.fn(t=>dart.toString(t),core.String,[dart.dynamic]))[dartx.toList]();dart.dcall(this[_onErrorHandler],error,traces)}else{dart.throw(error)}}[_onErrorWithoutLongStackTrace](error,trace){if(this[_onErrorHandler]!=null){dart.dcall(this[_onErrorHandler],error,[dart.toString(trace)])}else{dart.throw(error)}}[_createInnerZone](zone,opts){let handleUncaughtError=opts&&'handleUncaughtError'in opts?opts.handleUncaughtError:null;return zone.fork({specification:async.ZoneSpecification.new({handleUncaughtError:dart.as(handleUncaughtError,__CastType6),run:dart.bind(this,_run),runBinary:dart.bind(this,_runBinary),runUnary:dart.bind(this,_runUnary),scheduleMicrotask:dart.as(dart.bind(this,_scheduleMicrotask),__CastType1)}),zoneValues:dart.map({_innerZone:true})})}};dart.setSignature(NgZone,{constructors:()=>({NgZone:[NgZone,[],{enableLongStackTrace:core.bool}]}),methods:()=>({[_createInnerZone]:[async.Zone,[async.Zone],{handleUncaughtError:dart.dynamic}],[_onErrorWithLongStackTrace]:[dart.void,[dart.dynamic,chain.Chain]],[_scheduleMicrotask]:[dart.void,[async.Zone,async.ZoneDelegate,async.Zone,dart.dynamic]],[_runBinary]:[dart.dynamic,[async.Zone,async.ZoneDelegate,async.Zone,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]),dart.dynamic,dart.dynamic]],[_onErrorWithoutLongStackTrace]:[dart.void,[dart.dynamic,core.StackTrace]],[_run]:[dart.dynamic,[async.Zone,async.ZoneDelegate,async.Zone,dart.functionType(dart.dynamic,[])]],[_maybeStartVmTurn]:[dart.void,[async.ZoneDelegate]],[_runUnary]:[dart.dynamic,[async.Zone,async.ZoneDelegate,async.Zone,dart.functionType(dart.dynamic,[dart.dynamic]),dart.dynamic]],initCallbacks:[dart.void,[],{onErrorHandler:core.Function,onTurnDone:core.Function,onTurnStart:core.Function}],run:[dart.dynamic,[dart.functionType(dart.dynamic,[])]],runOutsideAngular:[dart.dynamic,[dart.functionType(dart.dynamic,[])]]})});let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(dart.dynamic,[]));let __CastType1=dart.typedef('__CastType1',()=>dart.functionType(dart.void,[async.Zone,async.ZoneDelegate,async.Zone,dart.functionType(dart.dynamic,[])]));let __CastType6=dart.typedef('__CastType6',()=>dart.functionType(dart.dynamic,[async.Zone,async.ZoneDelegate,async.Zone,dart.dynamic,core.StackTrace]));exports.NgZone=NgZone});dart_library.library('angular2/src/di/annotations',null,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx});dart_library.library('angular2/src/di/annotations_impl',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang'],[],function(exports,dart,core,lang){'use strict';let dartx=dart.dartx;class Inject extends core.Object{Inject(token){this.token=token}toString(){return `@Inject(${lang.stringify(this.token)})`}};dart.setSignature(Inject,{constructors:()=>({Inject:[Inject,[dart.dynamic]]})});class Optional extends core.Object{toString(){return '@Optional()'}Optional(){}};dart.setSignature(Optional,{constructors:()=>({Optional:[Optional,[]]})});class DependencyAnnotation extends core.Object{get token(){return null}DependencyAnnotation(){}};dart.setSignature(DependencyAnnotation,{constructors:()=>({DependencyAnnotation:[DependencyAnnotation,[]]})});let _includeSelf=Symbol('_includeSelf');class Visibility extends core.Object{Visibility(depth,crossBoundaries,includeSelf){this.depth=depth;this.crossBoundaries=crossBoundaries;this[_includeSelf]=includeSelf}get includeSelf(){return dart.notNull(lang.isBlank(this[_includeSelf]))?false:this[_includeSelf]}toString(){return `@Visibility(depth: ${this.depth }, crossBoundaries: ${this.crossBoundaries }, includeSelf: ${this.includeSelf }})`}};dart.setSignature(Visibility,{constructors:()=>({Visibility:[Visibility,[core.num,core.bool,core.bool]]})});class Unbounded extends Visibility{Unbounded(opts){let self=opts&&'self'in opts?opts.self:null;super.Visibility(999999,true,dart.as(self,core.bool))}toString(){return `@Unbounded(self: ${this.includeSelf }})`}};dart.setSignature(Unbounded,{constructors:()=>({Unbounded:[Unbounded,[],{self:dart.dynamic}]})});let unbounded=dart.const(new Unbounded({self:true}));class Injectable extends core.Object{Injectable(visibility){if(visibility===void 0)visibility=unbounded;this.visibility=visibility}};dart.setSignature(Injectable,{constructors:()=>({Injectable:[Injectable,[],[Visibility]]})});class Self extends Visibility{Self(){super.Visibility(0,false,true)}toString(){return '@Self()'}};dart.setSignature(Self,{constructors:()=>({Self:[Self,[]]})});let self=dart.const(new Self());class Parent extends Visibility{Parent(opts){let self=opts&&'self'in opts?opts.self:null;super.Visibility(1,false,dart.as(self,core.bool))}toString(){return `@Parent(self: ${this.includeSelf }})`}};dart.setSignature(Parent,{constructors:()=>({Parent:[Parent,[],{self:dart.dynamic}]})});class Ancestor extends Visibility{Ancestor(opts){let self=opts&&'self'in opts?opts.self:null;super.Visibility(999999,false,dart.as(self,core.bool))}toString(){return `@Ancestor(self: ${this.includeSelf }})`}};dart.setSignature(Ancestor,{constructors:()=>({Ancestor:[Ancestor,[],{self:dart.dynamic}]})});exports.Inject=Inject;exports.Optional=Optional;exports.DependencyAnnotation=DependencyAnnotation;exports.Visibility=Visibility;exports.Unbounded=Unbounded;exports.unbounded=unbounded;exports.Injectable=Injectable;exports.Self=Self;exports.self=self;exports.Parent=Parent;exports.Ancestor=Ancestor});dart_library.library('angular2/src/di/binding',null,["dart_runtime/dart",'dart/core','angular2/src/di/annotations_impl','angular2/src/di/key','angular2/src/facade/lang','angular2/src/di/forward_ref','angular2/src/reflection/reflection','angular2/src/facade/collection','angular2/src/di/exceptions'],[],function(exports,dart,core,annotations_impl,key,lang,forward_ref,reflection,collection,exceptions){'use strict';let dartx=dart.dartx;class Dependency extends core.Object{Dependency(key,optional,visibility,properties){this.key=key;this.optional=optional;this.visibility=visibility;this.properties=properties}static fromKey(key){return new Dependency(key,false,dart.as(_defaulVisiblity(key.token),annotations_impl.Visibility),[])}};dart.setSignature(Dependency,{constructors:()=>({Dependency:[Dependency,[key.Key,core.bool,annotations_impl.Visibility,core.List]]}),names:['fromKey'],statics:()=>({fromKey:[Dependency,[key.Key]]})});let _EMPTY_LIST=dart.const([]);class Binding extends core.Object{Binding(token,opts){let toClass=opts&&'toClass'in opts?opts.toClass:null;let toValue=opts&&'toValue'in opts?opts.toValue:null;let toAlias=opts&&'toAlias'in opts?opts.toAlias:null;let toFactory=opts&&'toFactory'in opts?opts.toFactory:null;let deps=opts&&'deps'in opts?opts.deps:null;this.token=token;this.toClass=dart.as(toClass,core.Type);this.toValue=toValue;this.toAlias=toAlias;this.toFactory=dart.as(toFactory,core.Function);this.dependencies=dart.as(deps,core.List)}resolve(){let factoryFn=null;let resolvedDeps=null;if(dart.notNull(lang.isPresent(this.toClass))){let toClass=forward_ref.resolveForwardRef(this.toClass);factoryFn=reflection.reflector.factory(dart.as(toClass,core.Type));resolvedDeps=_dependenciesFor(toClass)}else if(dart.notNull(lang.isPresent(this.toAlias))){factoryFn=dart.fn(aliasInstance=>aliasInstance);resolvedDeps=[Dependency.fromKey(key.Key.get(this.toAlias))]}else if(dart.notNull(lang.isPresent(this.toFactory))){factoryFn=this.toFactory;resolvedDeps=_constructDependencies(this.toFactory,this.dependencies)}else{factoryFn=dart.fn(()=>this.toValue);resolvedDeps=_EMPTY_LIST}return new ResolvedBinding(key.Key.get(this.token),factoryFn,dart.as(resolvedDeps,core.List$(Dependency)))}};dart.setSignature(Binding,{constructors:()=>({Binding:[Binding,[dart.dynamic],{deps:dart.dynamic,toAlias:dart.dynamic,toClass:dart.dynamic,toFactory:dart.dynamic,toValue:dart.dynamic}]}),methods:()=>({resolve:[ResolvedBinding,[]]})});class ResolvedBinding extends core.Object{ResolvedBinding(key,factory,dependencies){this.key=key;this.factory=factory;this.dependencies=dependencies}};dart.setSignature(ResolvedBinding,{constructors:()=>({ResolvedBinding:[ResolvedBinding,[key.Key,core.Function,core.List$(Dependency)]]})});function bind(token){return new BindingBuilder(token)}dart.fn(bind,()=>dart.definiteFunctionType(BindingBuilder,[dart.dynamic]));class BindingBuilder extends core.Object{BindingBuilder(token){this.token=token}toClass(type){return new Binding(this.token,{toClass:type})}toValue(value){return new Binding(this.token,{toValue:value})}toAlias(aliasToken){if(dart.notNull(lang.isBlank(aliasToken))){dart.throw(new lang.BaseException(`Can not alias ${lang.stringify(this.token)} to a blank value!`))}return new Binding(this.token,{toAlias:aliasToken})}toFactory(factoryFunction,dependencies){if(dependencies===void 0)dependencies=null;return new Binding(this.token,{deps:dependencies,toFactory:factoryFunction})}};dart.setSignature(BindingBuilder,{constructors:()=>({BindingBuilder:[BindingBuilder,[dart.dynamic]]}),methods:()=>({toAlias:[Binding,[dart.dynamic]],toClass:[Binding,[core.Type]],toFactory:[Binding,[core.Function],[core.List]],toValue:[Binding,[dart.dynamic]]})});function _constructDependencies(factoryFunction,dependencies){if(dart.notNull(lang.isBlank(dependencies))){return _dependenciesFor(factoryFunction)}else{let params=dart.as(collection.ListWrapper.map(dependencies,dart.fn(t=>[t],core.List,[dart.dynamic])),core.List$(core.List));return dart.as(collection.ListWrapper.map(dependencies,dart.fn(t=>_extractToken(factoryFunction,t,params),Dependency,[dart.dynamic])),core.List$(Dependency))}}dart.fn(_constructDependencies,core.List$(Dependency),[core.Function,core.List]);function _dependenciesFor(typeOrFunc){let params=reflection.reflector.parameters(typeOrFunc);if(dart.notNull(lang.isBlank(params)))return dart.list([],Dependency);if(dart.notNull(collection.ListWrapper.any(params,dart.fn(p=>lang.isBlank(p),core.bool,[dart.dynamic])))){dart.throw(new exceptions.NoAnnotationError(typeOrFunc,dart.as(params,core.List$(core.List))))}return dart.as(collection.ListWrapper.map(params,dart.fn(p=>_extractToken(typeOrFunc,p,dart.as(params,core.List$(core.List))),Dependency,[core.List])),core.List$(Dependency))}dart.fn(_dependenciesFor,core.List$(Dependency),[dart.dynamic]);function _extractToken(typeOrFunc,annotations,params){let depProps=[];let token=null;let optional=false;if(!dart.notNull(lang.isArray(annotations))){return _createDependency(annotations,optional,_defaulVisiblity(annotations),depProps)}let visibility=null;let defaultVisibility=annotations_impl.unbounded;for(let i=0;dart.notNull(i)<dart.notNull(dart.as(dart.dload(annotations,'length'),core.num));i=dart.notNull(i)+1){let paramAnnotation=dart.dindex(annotations,i);if(dart.is(paramAnnotation,core.Type)){token=paramAnnotation;defaultVisibility=dart.as(_defaulVisiblity(token),annotations_impl.Unbounded)}else if(dart.is(paramAnnotation,annotations_impl.Inject)){token=dart.dload(paramAnnotation,'token')}else if(dart.is(paramAnnotation,annotations_impl.Optional)){optional=true}else if(dart.is(paramAnnotation,annotations_impl.Visibility)){visibility=paramAnnotation}else if(dart.is(paramAnnotation,annotations_impl.DependencyAnnotation)){if(dart.notNull(lang.isPresent(dart.dload(paramAnnotation,'token')))){token=dart.dload(paramAnnotation,'token')}depProps[dartx.add](paramAnnotation)}}if(dart.notNull(lang.isBlank(visibility))){visibility=defaultVisibility}token=forward_ref.resolveForwardRef(token);if(dart.notNull(lang.isPresent(token))){return _createDependency(token,optional,visibility,depProps)}else{dart.throw(new exceptions.NoAnnotationError(typeOrFunc,params))}}dart.fn(_extractToken,Dependency,[dart.dynamic,dart.dynamic,core.List$(core.List)]);function _defaulVisiblity(typeOrFunc){try{if(!dart.is(typeOrFunc,core.Type))return annotations_impl.unbounded;let f=collection.ListWrapper.filter(reflection.reflector.annotations(typeOrFunc),dart.fn(s=>dart.is(s,annotations_impl.Injectable),core.bool,[dart.dynamic]));return dart.notNull(core.identical(f[dartx.length],0))?annotations_impl.unbounded:dart.dload(f[dartx.get](0),'visibility')}catch(e){let e_stack=dart.stackTrace(e);return annotations_impl.unbounded}}dart.fn(_defaulVisiblity);function _createDependency(token,optional,visibility,depProps){return new Dependency(key.Key.get(token),dart.as(optional,core.bool),dart.as(visibility,annotations_impl.Visibility),dart.as(depProps,core.List))}dart.fn(_createDependency,Dependency,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]);exports.Dependency=Dependency;exports.Binding=Binding;exports.ResolvedBinding=ResolvedBinding;exports.bind=bind;exports.BindingBuilder=BindingBuilder});dart_library.library('angular2/src/di/decorators',null,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx});dart_library.library('angular2/src/di/exceptions',null,["dart_runtime/dart",'angular2/src/facade/collection','dart/core','angular2/src/facade/lang'],[],function(exports,dart,collection,core,lang){'use strict';let dartx=dart.dartx;function findFirstClosedCycle(keys){let res=[];for(let i=0;dart.notNull(i)<dart.notNull(keys[dartx.length]);i=dart.notNull(i)+1){if(dart.notNull(collection.ListWrapper.contains(res,keys[dartx.get](i)))){res[dartx.add](keys[dartx.get](i));return res}else{res[dartx.add](keys[dartx.get](i))}}return res}dart.fn(findFirstClosedCycle,core.List,[core.List]);function constructResolvingPath(keys){if(dart.notNull(keys[dartx.length])>1){let reversed=findFirstClosedCycle(collection.ListWrapper.reversed(keys));let tokenStrs=collection.ListWrapper.map(reversed,dart.fn(k=>lang.stringify(dart.dload(k,'token')),core.String,[dart.dynamic]));return " ("+dart.notNull(tokenStrs[dartx.join](" -> "))+")"}else{return ""}}dart.fn(constructResolvingPath,core.String,[core.List]);class AbstractBindingError extends lang.BaseException{AbstractBindingError(key,constructResolvingMessage,originalException,originalStack){if(originalException===void 0)originalException=null;if(originalStack===void 0)originalStack=null;this.name=null;this.message=null;this.keys=null;this.constructResolvingMessage=null;super.BaseException(null,originalException,originalStack);;this.keys=[key];this.constructResolvingMessage=constructResolvingMessage;this.message=dart.as(dart.dcall(this.constructResolvingMessage,this.keys),core.String)}addKey(key){this.keys[dartx.add](key);this.message=dart.as(dart.dcall(this.constructResolvingMessage,this.keys),core.String)}toString(){return this.message}};dart.virtualField(AbstractBindingError,'message');dart.setSignature(AbstractBindingError,{constructors:()=>({AbstractBindingError:[AbstractBindingError,[dart.dynamic,core.Function],[dart.dynamic,dart.dynamic]]}),methods:()=>({addKey:[dart.void,[dart.dynamic]]})});class NoBindingError extends AbstractBindingError{NoBindingError(key){super.AbstractBindingError(key,dart.fn(keys=>{let first=lang.stringify(dart.dload(collection.ListWrapper.first(keys),'token'));return `No provider for ${first }!${constructResolvingPath(keys)}`},dart.dynamic,[core.List]));}};dart.setSignature(NoBindingError,{constructors:()=>({NoBindingError:[NoBindingError,[dart.dynamic]]})});class AsyncBindingError extends AbstractBindingError{AsyncBindingError(key){super.AbstractBindingError(key,dart.fn(keys=>{let first=lang.stringify(dart.dload(collection.ListWrapper.first(keys),'token'));return `Cannot instantiate ${first } synchronously. It is provided as a promise!${constructResolvingPath(keys)}`},dart.dynamic,[core.List]));}};dart.setSignature(AsyncBindingError,{constructors:()=>({AsyncBindingError:[AsyncBindingError,[dart.dynamic]]})});class CyclicDependencyError extends AbstractBindingError{CyclicDependencyError(key){super.AbstractBindingError(key,dart.fn(keys=>{return `Cannot instantiate cyclic dependency!${constructResolvingPath(keys)}`},dart.dynamic,[core.List]));}};dart.setSignature(CyclicDependencyError,{constructors:()=>({CyclicDependencyError:[CyclicDependencyError,[dart.dynamic]]})});class InstantiationError extends AbstractBindingError{InstantiationError(originalException,originalStack,key){this.causeKey=null;super.AbstractBindingError(key,dart.fn(keys=>{let first=lang.stringify(dart.dload(collection.ListWrapper.first(keys),'token'));return `Error during instantiation of ${first }!${constructResolvingPath(keys)}.`+` ORIGINAL ERROR: ${originalException }`+`\n ORIGINAL STACK: ${originalStack }`},dart.dynamic,[core.List]),originalException,originalStack);;this.causeKey=key}};dart.setSignature(InstantiationError,{constructors:()=>({InstantiationError:[InstantiationError,[dart.dynamic,dart.dynamic,dart.dynamic]]})});class InvalidBindingError extends lang.BaseException{InvalidBindingError(binding){this.message=null;super.BaseException();;this.message="Invalid binding - only instances of Binding and Type are allowed, got: "+dart.notNull(dart.toString(binding))}toString(){return this.message}};dart.virtualField(InvalidBindingError,'message');dart.setSignature(InvalidBindingError,{constructors:()=>({InvalidBindingError:[InvalidBindingError,[dart.dynamic]]})});class NoAnnotationError extends lang.BaseException{NoAnnotationError(typeOrFunc,params){this.name=null;this.message=null;super.BaseException();;let signature=[];for(let i=0,ii=params[dartx.length];dart.notNull(i)<dart.notNull(ii);i=dart.notNull(i)+1){let parameter=params[dartx.get](i);if(dart.notNull(lang.isBlank(parameter))||parameter[dartx.length]==0){signature[dartx.add]("?")}else{signature[dartx.add](collection.ListWrapper.map(parameter,lang.stringify)[dartx.join](" "))}}this.message="Cannot resolve all parameters for "+dart.notNull(lang.stringify(typeOrFunc))+"("+dart.notNull(signature[dartx.join](", "))+"). Make sure they all have valid type or annotations."}toString(){return this.message}};dart.virtualField(NoAnnotationError,'message');dart.setSignature(NoAnnotationError,{constructors:()=>({NoAnnotationError:[NoAnnotationError,[dart.dynamic,core.List$(core.List)]]})});class OutOfBoundsError extends lang.BaseException{OutOfBoundsError(index){this.message=null;super.BaseException();;this.message=`Index ${index } is out-of-bounds.`}toString(){return this.message}};dart.virtualField(OutOfBoundsError,'message');dart.setSignature(OutOfBoundsError,{constructors:()=>({OutOfBoundsError:[OutOfBoundsError,[dart.dynamic]]})});exports.findFirstClosedCycle=findFirstClosedCycle;exports.constructResolvingPath=constructResolvingPath;exports.AbstractBindingError=AbstractBindingError;exports.NoBindingError=NoBindingError;exports.AsyncBindingError=AsyncBindingError;exports.CyclicDependencyError=CyclicDependencyError;exports.InstantiationError=InstantiationError;exports.InvalidBindingError=InvalidBindingError;exports.NoAnnotationError=NoAnnotationError;exports.OutOfBoundsError=OutOfBoundsError});dart_library.library('angular2/src/di/forward_ref',null,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx;let ForwardRefFn=dart.typedef('ForwardRefFn',()=>dart.functionType(dart.dynamic,[]));function forwardRef(forwardRefFn){return forwardRefFn()}dart.fn(forwardRef,dart.dynamic,[ForwardRefFn]);function resolveForwardRef(type){return type}dart.fn(resolveForwardRef);exports.ForwardRefFn=ForwardRefFn;exports.forwardRef=forwardRef;exports.resolveForwardRef=resolveForwardRef});dart_library.library('angular2/src/di/injector',null,["dart_runtime/dart",'dart/core','angular2/src/di/exceptions','angular2/src/facade/collection','angular2/src/di/binding','angular2/src/facade/lang','angular2/src/di/key','angular2/src/di/annotations_impl','angular2/src/di/forward_ref'],[],function(exports,dart,core,exceptions,collection,binding,lang,key,annotations_impl,forward_ref){'use strict';let dartx=dart.dartx;let _constructing=dart.const(new core.Object());let _notFound=dart.const(new core.Object());let _MAX_CONSTRUCTION_COUNTER=10;let undefinedValue=dart.const(new core.Object());let PUBLIC=1;let PRIVATE=2;let PUBLIC_AND_PRIVATE=3;class ProtoInjectorStrategy extends core.Object{};class ProtoInjectorInlineStrategy extends core.Object{ProtoInjectorInlineStrategy(protoEI,bwv){this.binding0=null;this.binding1=null;this.binding2=null;this.binding3=null;this.binding4=null;this.binding5=null;this.binding6=null;this.binding7=null;this.binding8=null;this.binding9=null;this.keyId0=null;this.keyId1=null;this.keyId2=null;this.keyId3=null;this.keyId4=null;this.keyId5=null;this.keyId6=null;this.keyId7=null;this.keyId8=null;this.keyId9=null;this.visibility0=null;this.visibility1=null;this.visibility2=null;this.visibility3=null;this.visibility4=null;this.visibility5=null;this.visibility6=null;this.visibility7=null;this.visibility8=null;this.visibility9=null;let length=bwv[dartx.length];if(dart.notNull(length)>0){this.binding0=bwv[dartx.get](0).binding;this.keyId0=bwv[dartx.get](0).getKeyId();this.visibility0=bwv[dartx.get](0).visibility}if(dart.notNull(length)>1){this.binding1=bwv[dartx.get](1).binding;this.keyId1=bwv[dartx.get](1).getKeyId();this.visibility1=bwv[dartx.get](1).visibility}if(dart.notNull(length)>2){this.binding2=bwv[dartx.get](2).binding;this.keyId2=bwv[dartx.get](2).getKeyId();this.visibility2=bwv[dartx.get](2).visibility}if(dart.notNull(length)>3){this.binding3=bwv[dartx.get](3).binding;this.keyId3=bwv[dartx.get](3).getKeyId();this.visibility3=bwv[dartx.get](3).visibility}if(dart.notNull(length)>4){this.binding4=bwv[dartx.get](4).binding;this.keyId4=bwv[dartx.get](4).getKeyId();this.visibility4=bwv[dartx.get](4).visibility}if(dart.notNull(length)>5){this.binding5=bwv[dartx.get](5).binding;this.keyId5=bwv[dartx.get](5).getKeyId();this.visibility5=bwv[dartx.get](5).visibility}if(dart.notNull(length)>6){this.binding6=bwv[dartx.get](6).binding;this.keyId6=bwv[dartx.get](6).getKeyId();this.visibility6=bwv[dartx.get](6).visibility}if(dart.notNull(length)>7){this.binding7=bwv[dartx.get](7).binding;this.keyId7=bwv[dartx.get](7).getKeyId();this.visibility7=bwv[dartx.get](7).visibility}if(dart.notNull(length)>8){this.binding8=bwv[dartx.get](8).binding;this.keyId8=bwv[dartx.get](8).getKeyId();this.visibility8=bwv[dartx.get](8).visibility}if(dart.notNull(length)>9){this.binding9=bwv[dartx.get](9).binding;this.keyId9=bwv[dartx.get](9).getKeyId();this.visibility9=bwv[dartx.get](9).visibility}}getBindingAtIndex(index){if(index==0)return this.binding0;if(index==1)return this.binding1;if(index==2)return this.binding2;if(index==3)return this.binding3;if(index==4)return this.binding4;if(index==5)return this.binding5;if(index==6)return this.binding6;if(index==7)return this.binding7;if(index==8)return this.binding8;if(index==9)return this.binding9;dart.throw(new exceptions.OutOfBoundsError(index))}createInjectorStrategy(injector){return new InjectorInlineStrategy(injector,this)}};ProtoInjectorInlineStrategy[dart.implements]=()=>[ProtoInjectorStrategy];dart.setSignature(ProtoInjectorInlineStrategy,{constructors:()=>({ProtoInjectorInlineStrategy:[ProtoInjectorInlineStrategy,[ProtoInjector,core.List$(BindingWithVisibility)]]}),methods:()=>({createInjectorStrategy:[InjectorStrategy,[Injector]],getBindingAtIndex:[dart.dynamic,[core.num]]})});class ProtoInjectorDynamicStrategy extends core.Object{ProtoInjectorDynamicStrategy(protoInj,bwv){this.bindings=null;this.keyIds=null;this.visibilities=null;let len=bwv[dartx.length];this.bindings=dart.as(collection.ListWrapper.createFixedSize(len),core.List$(binding.ResolvedBinding));this.keyIds=dart.as(collection.ListWrapper.createFixedSize(len),core.List$(core.num));this.visibilities=dart.as(collection.ListWrapper.createFixedSize(len),core.List$(core.num));for(let i=0;dart.notNull(i)<dart.notNull(len);i=dart.notNull(i)+1){this.bindings[dartx.set](i,bwv[dartx.get](i).binding);this.keyIds[dartx.set](i,bwv[dartx.get](i).getKeyId());this.visibilities[dartx.set](i,bwv[dartx.get](i).visibility)}}getBindingAtIndex(index){if(dart.notNull(index)<0||dart.notNull(index)>=dart.notNull(this.bindings[dartx.length])){dart.throw(new exceptions.OutOfBoundsError(index))}return this.bindings[dartx.get](index)}createInjectorStrategy(ei){return new InjectorDynamicStrategy(this,ei)}};ProtoInjectorDynamicStrategy[dart.implements]=()=>[ProtoInjectorStrategy];dart.setSignature(ProtoInjectorDynamicStrategy,{constructors:()=>({ProtoInjectorDynamicStrategy:[ProtoInjectorDynamicStrategy,[ProtoInjector,core.List$(BindingWithVisibility)]]}),methods:()=>({createInjectorStrategy:[InjectorStrategy,[Injector]],getBindingAtIndex:[dart.dynamic,[core.num]]})});let _strategy=Symbol('_strategy');class ProtoInjector extends core.Object{ProtoInjector(bwv,distanceToParent){this.distanceToParent=distanceToParent;this[_strategy]=null;this[_strategy]=dart.notNull(bwv[dartx.length])>dart.notNull(_MAX_CONSTRUCTION_COUNTER)?new ProtoInjectorDynamicStrategy(this,bwv):new ProtoInjectorInlineStrategy(this,bwv)}getBindingAtIndex(index){return this[_strategy].getBindingAtIndex(index)}};dart.setSignature(ProtoInjector,{constructors:()=>({ProtoInjector:[ProtoInjector,[core.List$(BindingWithVisibility),core.num]]}),methods:()=>({getBindingAtIndex:[dart.dynamic,[core.num]]})});class InjectorStrategy extends core.Object{};let _constructionCounter=Symbol('_constructionCounter');let _new=Symbol('_new');let _parent=Symbol('_parent');let _isBoundary=Symbol('_isBoundary');class InjectorInlineStrategy extends core.Object{InjectorInlineStrategy(injector,protoStrategy){this.injector=injector;this.protoStrategy=protoStrategy;this.obj0=undefinedValue;this.obj1=undefinedValue;this.obj2=undefinedValue;this.obj3=undefinedValue;this.obj4=undefinedValue;this.obj5=undefinedValue;this.obj6=undefinedValue;this.obj7=undefinedValue;this.obj8=undefinedValue;this.obj9=undefinedValue}hydrate(){let p=this.protoStrategy;let inj=this.injector;inj[_constructionCounter]=0;if(dart.notNull(lang.isPresent(p.keyId0))&&dart.notNull(core.identical(this.obj0,undefinedValue)))this.obj0=inj[_new](p.binding0,p.visibility0);if(dart.notNull(lang.isPresent(p.keyId1))&&dart.notNull(core.identical(this.obj1,undefinedValue)))this.obj1=inj[_new](p.binding1,p.visibility1);if(dart.notNull(lang.isPresent(p.keyId2))&&dart.notNull(core.identical(this.obj2,undefinedValue)))this.obj2=inj[_new](p.binding2,p.visibility2);if(dart.notNull(lang.isPresent(p.keyId3))&&dart.notNull(core.identical(this.obj3,undefinedValue)))this.obj3=inj[_new](p.binding3,p.visibility3);if(dart.notNull(lang.isPresent(p.keyId4))&&dart.notNull(core.identical(this.obj4,undefinedValue)))this.obj4=inj[_new](p.binding4,p.visibility4);if(dart.notNull(lang.isPresent(p.keyId5))&&dart.notNull(core.identical(this.obj5,undefinedValue)))this.obj5=inj[_new](p.binding5,p.visibility5);if(dart.notNull(lang.isPresent(p.keyId6))&&dart.notNull(core.identical(this.obj6,undefinedValue)))this.obj6=inj[_new](p.binding6,p.visibility6);if(dart.notNull(lang.isPresent(p.keyId7))&&dart.notNull(core.identical(this.obj7,undefinedValue)))this.obj7=inj[_new](p.binding7,p.visibility7);if(dart.notNull(lang.isPresent(p.keyId8))&&dart.notNull(core.identical(this.obj8,undefinedValue)))this.obj8=inj[_new](p.binding8,p.visibility8);if(dart.notNull(lang.isPresent(p.keyId9))&&dart.notNull(core.identical(this.obj9,undefinedValue)))this.obj9=inj[_new](p.binding9,p.visibility9);}attach(parent,isBoundary){let inj=this.injector;inj[_parent]=parent;inj[_isBoundary]=isBoundary}dehydrate(){this.obj0=undefinedValue;this.obj1=undefinedValue;this.obj2=undefinedValue;this.obj3=undefinedValue;this.obj4=undefinedValue;this.obj5=undefinedValue;this.obj6=undefinedValue;this.obj7=undefinedValue;this.obj8=undefinedValue;this.obj9=undefinedValue}getObjByKeyId(keyId,visibility){let p=this.protoStrategy;let inj=this.injector;if(dart.notNull(core.identical(p.keyId0,keyId))&&dart.notNull(dart.as(dart.dsend(dart.notNull(p.visibility0)&dart.notNull(visibility),'>',0),core.bool))){if(dart.notNull(core.identical(this.obj0,undefinedValue))){this.obj0=inj[_new](p.binding0,p.visibility0)}return this.obj0}if(dart.notNull(core.identical(p.keyId1,keyId))&&dart.notNull(dart.as(dart.dsend(dart.notNull(p.visibility1)&dart.notNull(visibility),'>',0),core.bool))){if(dart.notNull(core.identical(this.obj1,undefinedValue))){this.obj1=inj[_new](p.binding1,p.visibility1)}return this.obj1}if(dart.notNull(core.identical(p.keyId2,keyId))&&dart.notNull(dart.as(dart.dsend(dart.notNull(p.visibility2)&dart.notNull(visibility),'>',0),core.bool))){if(dart.notNull(core.identical(this.obj2,undefinedValue))){this.obj2=inj[_new](p.binding2,p.visibility2)}return this.obj2}if(dart.notNull(core.identical(p.keyId3,keyId))&&dart.notNull(dart.as(dart.dsend(dart.notNull(p.visibility3)&dart.notNull(visibility),'>',0),core.bool))){if(dart.notNull(core.identical(this.obj3,undefinedValue))){this.obj3=inj[_new](p.binding3,p.visibility3)}return this.obj3}if(dart.notNull(core.identical(p.keyId4,keyId))&&dart.notNull(dart.as(dart.dsend(dart.notNull(p.visibility4)&dart.notNull(visibility),'>',0),core.bool))){if(dart.notNull(core.identical(this.obj4,undefinedValue))){this.obj4=inj[_new](p.binding4,p.visibility4)}return this.obj4}if(dart.notNull(core.identical(p.keyId5,keyId))&&dart.notNull(dart.as(dart.dsend(dart.notNull(p.visibility5)&dart.notNull(visibility),'>',0),core.bool))){if(dart.notNull(core.identical(this.obj5,undefinedValue))){this.obj5=inj[_new](p.binding5,p.visibility5)}return this.obj5}if(dart.notNull(core.identical(p.keyId6,keyId))&&dart.notNull(dart.as(dart.dsend(dart.notNull(p.visibility6)&dart.notNull(visibility),'>',0),core.bool))){if(dart.notNull(core.identical(this.obj6,undefinedValue))){this.obj6=inj[_new](p.binding6,p.visibility6)}return this.obj6}if(dart.notNull(core.identical(p.keyId7,keyId))&&dart.notNull(dart.as(dart.dsend(dart.notNull(p.visibility7)&dart.notNull(visibility),'>',0),core.bool))){if(dart.notNull(core.identical(this.obj7,undefinedValue))){this.obj7=inj[_new](p.binding7,p.visibility7)}return this.obj7}if(dart.notNull(core.identical(p.keyId8,keyId))&&dart.notNull(dart.as(dart.dsend(dart.notNull(p.visibility8)&dart.notNull(visibility),'>',0),core.bool))){if(dart.notNull(core.identical(this.obj8,undefinedValue))){this.obj8=inj[_new](p.binding8,p.visibility8)}return this.obj8}if(dart.notNull(core.identical(p.keyId9,keyId))&&dart.notNull(dart.as(dart.dsend(dart.notNull(p.visibility9)&dart.notNull(visibility),'>',0),core.bool))){if(dart.notNull(core.identical(this.obj9,undefinedValue))){this.obj9=inj[_new](p.binding9,p.visibility9)}return this.obj9}return undefinedValue}getObjAtIndex(index){if(index==0)return this.obj0;if(index==1)return this.obj1;if(index==2)return this.obj2;if(index==3)return this.obj3;if(index==4)return this.obj4;if(index==5)return this.obj5;if(index==6)return this.obj6;if(index==7)return this.obj7;if(index==8)return this.obj8;if(index==9)return this.obj9;dart.throw(new exceptions.OutOfBoundsError(index))}getMaxNumberOfObjects(){return _MAX_CONSTRUCTION_COUNTER}};InjectorInlineStrategy[dart.implements]=()=>[InjectorStrategy];dart.setSignature(InjectorInlineStrategy,{constructors:()=>({InjectorInlineStrategy:[InjectorInlineStrategy,[Injector,ProtoInjectorInlineStrategy]]}),methods:()=>({attach:[dart.void,[Injector,core.bool]],dehydrate:[dart.void,[]],getMaxNumberOfObjects:[core.num,[]],getObjAtIndex:[dart.dynamic,[core.num]],getObjByKeyId:[dart.dynamic,[core.num,core.num]],hydrate:[dart.void,[]]})});class InjectorDynamicStrategy extends core.Object{InjectorDynamicStrategy(protoStrategy,injector){this.protoStrategy=protoStrategy;this.injector=injector;this.objs=null;this.objs=collection.ListWrapper.createFixedSize(this.protoStrategy.bindings[dartx.length]);collection.ListWrapper.fill(this.objs,undefinedValue)}hydrate(){let p=this.protoStrategy;for(let i=0;dart.notNull(i)<dart.notNull(p.keyIds[dartx.length]);i=dart.notNull(i)+1){if(dart.notNull(lang.isPresent(p.keyIds[dartx.get](i)))&&dart.notNull(core.identical(this.objs[dartx.get](i),undefinedValue))){this.objs[dartx.set](i,this.injector[_new](p.bindings[dartx.get](i),p.visibilities[dartx.get](i)))}}}attach(parent,isBoundary){let inj=this.injector;inj[_parent]=parent;inj[_isBoundary]=isBoundary}dehydrate(){collection.ListWrapper.fill(this.objs,undefinedValue)}getObjByKeyId(keyId,visibility){let p=this.protoStrategy;for(let i=0;dart.notNull(i)<dart.notNull(p.keyIds[dartx.length]);i=dart.notNull(i)+1){if(dart.notNull(core.identical(p.keyIds[dartx.get](i),keyId))&&dart.notNull(dart.as(dart.dsend(dart.notNull(p.visibilities[dartx.get](i))&dart.notNull(visibility),'>',0),core.bool))){if(dart.notNull(core.identical(this.objs[dartx.get](i),undefinedValue))){this.objs[dartx.set](i,this.injector[_new](p.bindings[dartx.get](i),p.visibilities[dartx.get](i)))}return this.objs[dartx.get](i)}}return undefinedValue}getObjAtIndex(index){if(dart.notNull(index)<0||dart.notNull(index)>=dart.notNull(this.objs[dartx.length])){dart.throw(new exceptions.OutOfBoundsError(index))}return this.objs[dartx.get](index)}getMaxNumberOfObjects(){return this.objs[dartx.length]}};InjectorDynamicStrategy[dart.implements]=()=>[InjectorStrategy];dart.setSignature(InjectorDynamicStrategy,{constructors:()=>({InjectorDynamicStrategy:[InjectorDynamicStrategy,[ProtoInjectorDynamicStrategy,Injector]]}),methods:()=>({attach:[dart.void,[Injector,core.bool]],dehydrate:[dart.void,[]],getMaxNumberOfObjects:[core.num,[]],getObjAtIndex:[dart.dynamic,[core.num]],getObjByKeyId:[dart.dynamic,[core.num,core.num]],hydrate:[dart.void,[]]})});class BindingWithVisibility extends core.Object{BindingWithVisibility(binding,visibility){this.binding=binding;this.visibility=visibility}getKeyId(){return this.binding.key.id}};dart.setSignature(BindingWithVisibility,{constructors:()=>({BindingWithVisibility:[BindingWithVisibility,[binding.ResolvedBinding,core.num]]}),methods:()=>({getKeyId:[core.num,[]]})});class DependencyProvider extends core.Object{};let _proto=Symbol('_proto');let _depProvider=Symbol('_depProvider');let _getByKey=Symbol('_getByKey');let _getByDependency=Symbol('_getByDependency');class Injector extends core.Object{static resolve(bindings){let resolvedBindings=resolveBindings(bindings);let flatten=_flattenBindings(resolvedBindings,core.Map$(core.num,binding.ResolvedBinding).new());return _createListOfBindings(flatten)}static resolveAndCreate(bindings,depProvider){if(depProvider===void 0)depProvider=null;let resolvedBindings=Injector.resolve(bindings);return Injector.fromResolvedBindings(resolvedBindings,depProvider)}static fromResolvedBindings(bindings,depProvider){if(depProvider===void 0)depProvider=null;let bd=bindings[dartx.map](dart.fn(b=>new BindingWithVisibility(dart.as(b,binding.ResolvedBinding),PUBLIC),BindingWithVisibility,[dart.dynamic]))[dartx.toList]();let proto=new ProtoInjector(dart.as(bd,core.List$(BindingWithVisibility)),0);let inj=new Injector(proto,null,depProvider);return inj}Injector(proto,parent,depProvider){if(parent===void 0)parent=null;if(depProvider===void 0)depProvider=null;this[_proto]=proto;this[_parent]=parent;this[_depProvider]=depProvider;this[_strategy]=null;this[_isBoundary]=false;this[_constructionCounter]=0;this[_strategy]=this[_proto][_strategy].createInjectorStrategy(this)}get(token){return this[_getByKey](key.Key.get(token),annotations_impl.unbounded,false,PUBLIC_AND_PRIVATE)}getOptional(token){return this[_getByKey](key.Key.get(token),annotations_impl.unbounded,true,PUBLIC_AND_PRIVATE)}getAt(index){return this[_strategy].getObjAtIndex(index)}get parent(){return this[_parent]}get internalStrategy(){return this[_strategy]}resolveAndCreateChild(bindings,depProvider){if(depProvider===void 0)depProvider=null;let resovledBindings=Injector.resolve(bindings);return this.createChildFromResolved(resovledBindings,depProvider)}createChildFromResolved(bindings,depProvider){if(depProvider===void 0)depProvider=null;let bd=bindings[dartx.map](dart.fn(b=>new BindingWithVisibility(dart.as(b,binding.ResolvedBinding),PUBLIC),BindingWithVisibility,[dart.dynamic]))[dartx.toList]();let proto=new ProtoInjector(dart.as(bd,core.List$(BindingWithVisibility)),1);let inj=new Injector(proto,null,depProvider);inj[_parent]=this;return inj}[_new](binding,visibility){if((()=>{let x=this[_constructionCounter];this[_constructionCounter]=dart.notNull(x)+1;return x})()>dart.notNull(this[_strategy].getMaxNumberOfObjects())){dart.throw(new exceptions.CyclicDependencyError(binding.key))}let factory=binding.factory;let deps=binding.dependencies;let length=deps[dartx.length];let d0=null,d1=null,d2=null,d3=null,d4=null,d5=null,d6=null,d7=null,d8=null,d9=null,d10=null,d11=null,d12=null,d13=null,d14=null,d15=null,d16=null,d17=null,d18=null,d19=null;try{d0=dart.notNull(length)>0?this[_getByDependency](binding,deps[dartx.get](0),visibility):null;d1=dart.notNull(length)>1?this[_getByDependency](binding,deps[dartx.get](1),visibility):null;d2=dart.notNull(length)>2?this[_getByDependency](binding,deps[dartx.get](2),visibility):null;d3=dart.notNull(length)>3?this[_getByDependency](binding,deps[dartx.get](3),visibility):null;d4=dart.notNull(length)>4?this[_getByDependency](binding,deps[dartx.get](4),visibility):null;d5=dart.notNull(length)>5?this[_getByDependency](binding,deps[dartx.get](5),visibility):null;d6=dart.notNull(length)>6?this[_getByDependency](binding,deps[dartx.get](6),visibility):null;d7=dart.notNull(length)>7?this[_getByDependency](binding,deps[dartx.get](7),visibility):null;d8=dart.notNull(length)>8?this[_getByDependency](binding,deps[dartx.get](8),visibility):null;d9=dart.notNull(length)>9?this[_getByDependency](binding,deps[dartx.get](9),visibility):null;d10=dart.notNull(length)>10?this[_getByDependency](binding,deps[dartx.get](10),visibility):null;d11=dart.notNull(length)>11?this[_getByDependency](binding,deps[dartx.get](11),visibility):null;d12=dart.notNull(length)>12?this[_getByDependency](binding,deps[dartx.get](12),visibility):null;d13=dart.notNull(length)>13?this[_getByDependency](binding,deps[dartx.get](13),visibility):null;d14=dart.notNull(length)>14?this[_getByDependency](binding,deps[dartx.get](14),visibility):null;d15=dart.notNull(length)>15?this[_getByDependency](binding,deps[dartx.get](15),visibility):null;d16=dart.notNull(length)>16?this[_getByDependency](binding,deps[dartx.get](16),visibility):null;d17=dart.notNull(length)>17?this[_getByDependency](binding,deps[dartx.get](17),visibility):null;d18=dart.notNull(length)>18?this[_getByDependency](binding,deps[dartx.get](18),visibility):null;d19=dart.notNull(length)>19?this[_getByDependency](binding,deps[dartx.get](19),visibility):null}catch(e){let e_stack=dart.stackTrace(e);if(dart.is(e,exceptions.AbstractBindingError))dart.dsend(e,'addKey',binding.key);throw e}let obj=null;try{switch(length){case 0:{obj=dart.dcall(factory);break}case 1:{obj=dart.dcall(factory,d0);break}case 2:{obj=dart.dcall(factory,d0,d1);break}case 3:{obj=dart.dcall(factory,d0,d1,d2);break}case 4:{obj=dart.dcall(factory,d0,d1,d2,d3);break}case 5:{obj=dart.dcall(factory,d0,d1,d2,d3,d4);break}case 6:{obj=dart.dcall(factory,d0,d1,d2,d3,d4,d5);break}case 7:{obj=dart.dcall(factory,d0,d1,d2,d3,d4,d5,d6);break}case 8:{obj=dart.dcall(factory,d0,d1,d2,d3,d4,d5,d6,d7);break}case 9:{obj=dart.dcall(factory,d0,d1,d2,d3,d4,d5,d6,d7,d8);break}case 10:{obj=dart.dcall(factory,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9);break}case 11:{obj=dart.dcall(factory,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10);break}case 12:{obj=dart.dcall(factory,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11);break}case 13:{obj=dart.dcall(factory,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12);break}case 14:{obj=dart.dcall(factory,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13);break}case 15:{obj=dart.dcall(factory,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14);break}case 16:{obj=dart.dcall(factory,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15);break}case 17:{obj=dart.dcall(factory,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16);break}case 18:{obj=dart.dcall(factory,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17);break}case 19:{obj=dart.dcall(factory,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17,d18);break}case 20:{obj=dart.dcall(factory,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17,d18,d19);break}}}catch(e){let e_stack=dart.stackTrace(e);dart.throw(new exceptions.InstantiationError(e,e_stack,binding.key))}return obj}[_getByDependency](binding,dep,bindingVisibility){let special=dart.notNull(lang.isPresent(this[_depProvider]))?this[_depProvider].getDependency(this,binding,dep):undefinedValue;if(!dart.notNull(core.identical(special,undefinedValue))){return special}else{return this[_getByKey](dep.key,dep.visibility,dep.optional,bindingVisibility)}}[_getByKey](key,depVisibility,optional,bindingVisibility){if(dart.notNull(core.identical(key.token,Injector))){return this}let inj=this;let lastInjector=false;let depth=depVisibility.depth;if(!dart.notNull(depVisibility.includeSelf)){depth=dart.notNull(depth)-dart.notNull(inj[_proto].distanceToParent);if(dart.notNull(inj[_isBoundary])){if(dart.notNull(depVisibility.crossBoundaries)){bindingVisibility=PUBLIC_AND_PRIVATE}else{bindingVisibility=PRIVATE;lastInjector=true}}inj=inj[_parent]}while(inj!=null&&dart.notNull(depth)>=0){let obj=inj[_strategy].getObjByKeyId(key.id,bindingVisibility);if(!dart.notNull(core.identical(obj,undefinedValue)))return obj;depth=dart.notNull(depth)-dart.notNull(inj[_proto].distanceToParent);if(dart.notNull(lastInjector))break;if(dart.notNull(inj[_isBoundary])){if(dart.notNull(depVisibility.crossBoundaries)){bindingVisibility=PUBLIC_AND_PRIVATE}else{bindingVisibility=PRIVATE;lastInjector=true}}inj=inj[_parent]}if(dart.notNull(optional)){return null}else{dart.throw(new exceptions.NoBindingError(key))}}};dart.setSignature(Injector,{constructors:()=>({Injector:[Injector,[ProtoInjector],[Injector,DependencyProvider]]}),methods:()=>({[_getByKey]:[dart.dynamic,[key.Key,annotations_impl.Visibility,core.bool,core.num]],[_getByDependency]:[dart.dynamic,[binding.ResolvedBinding,binding.Dependency,core.num]],[_new]:[dart.dynamic,[binding.ResolvedBinding,core.num]],createChildFromResolved:[Injector,[core.List$(binding.ResolvedBinding)],[DependencyProvider]],get:[dart.dynamic,[dart.dynamic]],getAt:[dart.dynamic,[core.num]],getOptional:[dart.dynamic,[dart.dynamic]],resolveAndCreateChild:[Injector,[core.List],[DependencyProvider]]}),names:['resolve','resolveAndCreate','fromResolvedBindings'],statics:()=>({fromResolvedBindings:[Injector,[core.List$(binding.ResolvedBinding)],[DependencyProvider]],resolve:[core.List$(binding.ResolvedBinding),[core.List]],resolveAndCreate:[Injector,[core.List],[DependencyProvider]]})});function resolveBindings(bindings){let resolvedList=collection.ListWrapper.createFixedSize(bindings[dartx.length]);for(let i=0;dart.notNull(i)<dart.notNull(bindings[dartx.length]);i=dart.notNull(i)+1){let unresolved=forward_ref.resolveForwardRef(bindings[dartx.get](i));let resolved=null;if(dart.is(unresolved,binding.ResolvedBinding)){resolved=unresolved}else if(dart.is(unresolved,core.Type)){resolved=binding.bind(unresolved).toClass(dart.as(unresolved,core.Type)).resolve()}else if(dart.is(unresolved,binding.Binding)){resolved=dart.dsend(unresolved,'resolve')}else if(dart.is(unresolved,core.List)){resolved=resolveBindings(dart.as(unresolved,core.List))}else if(dart.is(unresolved,binding.BindingBuilder)){dart.throw(new exceptions.InvalidBindingError(dart.dload(unresolved,'token')))}else{dart.throw(new exceptions.InvalidBindingError(unresolved))}resolvedList[dartx.set](i,resolved)}return dart.as(resolvedList,core.List$(binding.ResolvedBinding))}dart.fn(resolveBindings,core.List$(binding.ResolvedBinding),[core.List]);function _createListOfBindings(flattenedBindings){return dart.as(collection.MapWrapper.values(flattenedBindings),core.List$(binding.ResolvedBinding))}dart.fn(_createListOfBindings,core.List$(binding.ResolvedBinding),[core.Map$(core.num,binding.ResolvedBinding)]);function _flattenBindings(bindings,res){collection.ListWrapper.forEach(bindings,dart.fn(b=>{if(dart.is(b,binding.ResolvedBinding)){res.set(dart.as(dart.dload(dart.dload(b,'key'),'id'),core.num),dart.as(b,binding.ResolvedBinding))}else if(dart.is(b,core.List)){_flattenBindings(dart.as(b,core.List),res)}}));return res}dart.fn(_flattenBindings,core.Map$(core.num,binding.ResolvedBinding),[core.List,core.Map$(core.num,binding.ResolvedBinding)]);exports.undefinedValue=undefinedValue;exports.PUBLIC=PUBLIC;exports.PRIVATE=PRIVATE;exports.PUBLIC_AND_PRIVATE=PUBLIC_AND_PRIVATE;exports.ProtoInjectorStrategy=ProtoInjectorStrategy;exports.ProtoInjectorInlineStrategy=ProtoInjectorInlineStrategy;exports.ProtoInjectorDynamicStrategy=ProtoInjectorDynamicStrategy;exports.ProtoInjector=ProtoInjector;exports.InjectorStrategy=InjectorStrategy;exports.InjectorInlineStrategy=InjectorInlineStrategy;exports.InjectorDynamicStrategy=InjectorDynamicStrategy;exports.BindingWithVisibility=BindingWithVisibility;exports.DependencyProvider=DependencyProvider;exports.Injector=Injector;exports.resolveBindings=resolveBindings});dart_library.library('angular2/src/di/key',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/di/forward_ref','angular2/src/di/type_literal','angular2/src/facade/collection'],[],function(exports,dart,core,lang,forward_ref,type_literal,collection){'use strict';let dartx=dart.dartx;class Key extends core.Object{Key(token,id){this.token=token;this.id=id;if(dart.notNull(lang.isBlank(this.token))){dart.throw(new lang.BaseException("Token must be defined!"))}}get displayName(){return lang.stringify(this.token)}static get(token){return exports._globalKeyRegistry.get(forward_ref.resolveForwardRef(token))}static get numberOfKeys(){return exports._globalKeyRegistry.numberOfKeys}};dart.setSignature(Key,{constructors:()=>({Key:[Key,[core.Object,core.num]]}),names:['get'],statics:()=>({get:[Key,[dart.dynamic]]})});let _allKeys=Symbol('_allKeys');class KeyRegistry extends core.Object{KeyRegistry(){this[_allKeys]=core.Map$(core.Object,Key).new()}get(token){if(dart.is(token,Key))return token;let theToken=token;if(dart.is(token,type_literal.TypeLiteral)){theToken=token.type}token=theToken;if(dart.notNull(this[_allKeys].containsKey(token))){return this[_allKeys].get(token)}let newKey=new Key(token,Key.numberOfKeys);this[_allKeys].set(token,newKey);return newKey}get numberOfKeys(){return collection.MapWrapper.size(this[_allKeys])}};dart.setSignature(KeyRegistry,{methods:()=>({get:[Key,[core.Object]]})});dart.defineLazyProperties(exports,{get _globalKeyRegistry(){return new KeyRegistry()},set _globalKeyRegistry(_){}});exports.Key=Key;exports.KeyRegistry=KeyRegistry});dart_library.library('angular2/src/di/opaque_token',null,["dart_runtime/dart",'dart/core'],[],function(exports,dart,core){'use strict';let dartx=dart.dartx;let _desc=Symbol('_desc');class OpaqueToken extends core.Object{OpaqueToken(desc){this[_desc]="Token("+dart.notNull(desc)+")"}toString(){return this[_desc]}};dart.setSignature(OpaqueToken,{constructors:()=>({OpaqueToken:[OpaqueToken,[core.String]]})});exports.OpaqueToken=OpaqueToken});dart_library.library('angular2/src/di/type_literal',null,["dart_runtime/dart",'dart/core'],[],function(exports,dart,core){'use strict';let dartx=dart.dartx;let TypeLiteral$=dart.generic(function(T){class TypeLiteral extends core.Object{TypeLiteral(){}get type(){return T}}dart.setSignature(TypeLiteral,{constructors:()=>({TypeLiteral:[TypeLiteral$(T),[]]})});return TypeLiteral});let TypeLiteral=TypeLiteral$();exports.TypeLiteral$=TypeLiteral$;exports.TypeLiteral=TypeLiteral});dart_library.library('angular2/src/directives/class',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/facade/collection','angular2/src/change_detection/pipes/iterable_changes','angular2/src/change_detection/pipes/keyvalue_changes','angular2/src/change_detection/pipes/pipe_registry','angular2/src/core/compiler/element_ref','angular2/src/render/api','angular2/src/core/annotations_impl/annotations'],[],function(exports,dart,core,lang,collection,iterable_changes,keyvalue_changes,pipe_registry,element_ref,api,annotations){'use strict';let dartx=dart.dartx;let _pipeRegistry=Symbol('_pipeRegistry');let _ngEl=Symbol('_ngEl');let _renderer=Symbol('_renderer');let _pipe=Symbol('_pipe');let _rawClass=Symbol('_rawClass');let _cleanupClasses=Symbol('_cleanupClasses');let _applyArrayChanges=Symbol('_applyArrayChanges');let _applyObjectChanges=Symbol('_applyObjectChanges');let _toggleClass=Symbol('_toggleClass');class CSSClass extends core.Object{CSSClass(pipeRegistry,ngEl,renderer){this[_pipeRegistry]=pipeRegistry;this[_ngEl]=ngEl;this[_renderer]=renderer;this[_pipe]=null;this[_rawClass]=null}set rawClass(v){this[_cleanupClasses](this[_rawClass]);if(dart.notNull(lang.isString(v))){v=dart.dsend(v,'split'," ")}this[_rawClass]=v;this[_pipe]=this[_pipeRegistry].get(dart.notNull(collection.isListLikeIterable(v))?"iterableDiff":"keyValDiff",v)}onCheck(){let diff=this[_pipe].transform(this[_rawClass],null);if(dart.notNull(lang.isPresent(diff))&&dart.notNull(lang.isPresent(dart.dload(diff,'wrapped')))){if(dart.is(dart.dload(diff,'wrapped'),iterable_changes.IterableChanges)){this[_applyArrayChanges](dart.as(dart.dload(diff,'wrapped'),iterable_changes.IterableChanges))}else{this[_applyObjectChanges](dart.as(dart.dload(diff,'wrapped'),keyvalue_changes.KeyValueChanges))}}}[_cleanupClasses](rawClassVal){if(dart.notNull(lang.isPresent(rawClassVal))){if(dart.notNull(collection.isListLikeIterable(rawClassVal))){collection.ListWrapper.forEach(dart.as(rawClassVal,core.Iterable),dart.fn(className=>{this[_toggleClass](dart.as(className,core.String),false)}))}else{collection.StringMapWrapper.forEach(dart.as(rawClassVal,core.Map),dart.fn((expVal,className)=>{if(dart.notNull(dart.as(expVal,core.bool)))this[_toggleClass](dart.as(className,core.String),false);}))}}}[_applyObjectChanges](diff){diff.forEachAddedItem(dart.fn(record=>{this[_toggleClass](dart.as(dart.dload(record,'key'),core.String),dart.dload(record,'currentValue'))}));diff.forEachChangedItem(dart.fn(record=>{this[_toggleClass](dart.as(dart.dload(record,'key'),core.String),dart.dload(record,'currentValue'))}));diff.forEachRemovedItem(dart.fn(record=>{if(dart.notNull(dart.as(dart.dload(record,'previousValue'),core.bool))){this[_toggleClass](dart.as(dart.dload(record,'key'),core.String),false)}}))}[_applyArrayChanges](diff){diff.forEachAddedItem(dart.fn(record=>{this[_toggleClass](dart.as(dart.dload(record,'item'),core.String),true)}));diff.forEachRemovedItem(dart.fn(record=>{this[_toggleClass](dart.as(dart.dload(record,'item'),core.String),false)}))}[_toggleClass](className,enabled){this[_renderer].setElementClass(this[_ngEl],className,dart.as(enabled,core.bool))}};dart.setSignature(CSSClass,{constructors:()=>({CSSClass:[CSSClass,[pipe_registry.PipeRegistry,element_ref.ElementRef,api.Renderer]]}),methods:()=>({[_toggleClass]:[dart.void,[core.String,dart.dynamic]],[_applyArrayChanges]:[dart.void,[iterable_changes.IterableChanges]],[_applyObjectChanges]:[dart.void,[keyvalue_changes.KeyValueChanges]],[_cleanupClasses]:[dart.void,[dart.dynamic]],onCheck:[dart.void,[]]})});CSSClass[dart.metadata]=()=>[dart.const(new annotations.Directive({lifecycle:dart.const([annotations.onCheck]),properties:dart.const(["rawClass: class"]),selector:"[class]"}))];exports.CSSClass=CSSClass});dart_library.library('angular2/src/directives/ng_for',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/core/compiler/view_container_ref','angular2/src/core/compiler/view_ref','angular2/src/change_detection/pipes/pipe_registry','angular2/src/core/annotations_impl/annotations'],[],function(exports,dart,core,lang,view_container_ref,view_ref,pipe_registry,annotations){'use strict';let dartx=dart.dartx;let _ngForOf=Symbol('_ngForOf');let _pipe=Symbol('_pipe');let _applyChanges=Symbol('_applyChanges');let _perViewChange=Symbol('_perViewChange');class NgFor extends core.Object{NgFor(viewContainer,protoViewRef,pipes){this.viewContainer=viewContainer;this.protoViewRef=protoViewRef;this.pipes=pipes;this[_ngForOf]=null;this[_pipe]=null}set ngForOf(value){this[_ngForOf]=value;this[_pipe]=this.pipes.get("iterableDiff",value,null,this[_pipe])}onCheck(){let diff=this[_pipe].transform(this[_ngForOf],null);if(dart.notNull(lang.isPresent(diff)))this[_applyChanges](dart.dload(diff,'wrapped'));}[_applyChanges](changes){if(dart.notNull(lang.isBlank(changes))){this.viewContainer.clear();return}let recordViewTuples=[];dart.dsend(changes,'forEachRemovedItem',dart.fn(removedRecord=>recordViewTuples[dartx.add](new RecordViewTuple(removedRecord,null)),dart.void,[dart.dynamic]));dart.dsend(changes,'forEachMovedItem',dart.fn(movedRecord=>recordViewTuples[dartx.add](new RecordViewTuple(movedRecord,null)),dart.void,[dart.dynamic]));let insertTuples=NgFor.bulkRemove(dart.as(recordViewTuples,core.List$(RecordViewTuple)),this.viewContainer);dart.dsend(changes,'forEachAddedItem',dart.fn(addedRecord=>insertTuples[dartx.add](new RecordViewTuple(addedRecord,null)),dart.void,[dart.dynamic]));NgFor.bulkInsert(insertTuples,this.viewContainer,this.protoViewRef);for(let i=0;dart.notNull(i)<dart.notNull(insertTuples[dartx.length]);i=dart.notNull(i)+1){this[_perViewChange](insertTuples[dartx.get](i).view,insertTuples[dartx.get](i).record)}}[_perViewChange](view,record){dart.dsend(view,'setLocal',"$implicit",dart.dload(record,'item'));dart.dsend(view,'setLocal',"index",dart.dload(record,'currentIndex'))}static bulkRemove(tuples,viewContainer){tuples[dartx.sort](dart.fn((a,b)=>dart.as(dart.dsend(dart.dload(dart.dload(a,'record'),'previousIndex'),'-',dart.dload(dart.dload(b,'record'),'previousIndex')),core.int),core.int,[dart.dynamic,dart.dynamic]));let movedTuples=[];for(let i=dart.notNull(tuples[dartx.length])-1;dart.notNull(i)>=0;i=dart.notNull(i)-1){let tuple=tuples[dartx.get](i);if(dart.notNull(lang.isPresent(dart.dload(tuple.record,'currentIndex')))){tuple.view=viewContainer.detach(dart.as(dart.dload(tuple.record,'previousIndex'),core.num));movedTuples[dartx.add](tuple)}else{viewContainer.remove(dart.as(dart.dload(tuple.record,'previousIndex'),core.num))}}return dart.as(movedTuples,core.List$(RecordViewTuple))}static bulkInsert(tuples,viewContainer,protoViewRef){tuples[dartx.sort](dart.fn((a,b)=>dart.as(dart.dsend(dart.dload(dart.dload(a,'record'),'currentIndex'),'-',dart.dload(dart.dload(b,'record'),'currentIndex')),core.int),core.int,[dart.dynamic,dart.dynamic]));for(let i=0;dart.notNull(i)<dart.notNull(tuples[dartx.length]);i=dart.notNull(i)+1){let tuple=tuples[dartx.get](i);if(dart.notNull(lang.isPresent(tuple.view))){viewContainer.insert(tuple.view,dart.as(dart.dload(tuple.record,'currentIndex'),core.num))}else{tuple.view=viewContainer.create(protoViewRef,dart.as(dart.dload(tuple.record,'currentIndex'),core.num))}}return tuples}};dart.setSignature(NgFor,{constructors:()=>({NgFor:[NgFor,[view_container_ref.ViewContainerRef,view_ref.ProtoViewRef,pipe_registry.PipeRegistry]]}),methods:()=>({[_perViewChange]:[dart.dynamic,[dart.dynamic,dart.dynamic]],[_applyChanges]:[dart.dynamic,[dart.dynamic]],onCheck:[dart.dynamic,[]]}),names:['bulkRemove','bulkInsert'],statics:()=>({bulkInsert:[core.List$(RecordViewTuple),[core.List$(RecordViewTuple),view_container_ref.ViewContainerRef,view_ref.ProtoViewRef]],bulkRemove:[core.List$(RecordViewTuple),[core.List$(RecordViewTuple),view_container_ref.ViewContainerRef]]})});NgFor[dart.metadata]=()=>[dart.const(new annotations.Directive({lifecycle:dart.const([annotations.onCheck]),properties:dart.const(["ngForOf"]),selector:"[ng-for][ng-for-of]"}))];class RecordViewTuple extends core.Object{RecordViewTuple(record,view){this.view=null;this.record=null;this.record=record;this.view=dart.as(view,view_ref.ViewRef)}};dart.setSignature(RecordViewTuple,{constructors:()=>({RecordViewTuple:[RecordViewTuple,[dart.dynamic,dart.dynamic]]})});exports.NgFor=NgFor;exports.RecordViewTuple=RecordViewTuple});dart_library.library('angular2/src/directives/ng_if',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/core/compiler/view_container_ref','angular2/src/core/compiler/view_ref','angular2/src/core/annotations_impl/annotations'],[],function(exports,dart,core,lang,view_container_ref,view_ref,annotations){'use strict';let dartx=dart.dartx;class NgIf extends core.Object{NgIf(viewContainer,protoViewRef){this.viewContainer=null;this.protoViewRef=null;this.prevCondition=null;this.viewContainer=viewContainer;this.prevCondition=null;this.protoViewRef=protoViewRef}set ngIf(newCondition){if(dart.notNull(dart.as(newCondition,core.bool))&&(dart.notNull(lang.isBlank(this.prevCondition))|| !dart.notNull(this.prevCondition))){this.prevCondition=true;this.viewContainer.create(this.protoViewRef)}else if(!dart.notNull(dart.as(newCondition,core.bool))&&(dart.notNull(lang.isBlank(this.prevCondition))||dart.notNull(this.prevCondition))){this.prevCondition=false;this.viewContainer.clear()}}};dart.setSignature(NgIf,{constructors:()=>({NgIf:[NgIf,[view_container_ref.ViewContainerRef,view_ref.ProtoViewRef]]})});NgIf[dart.metadata]=()=>[dart.const(new annotations.Directive({properties:dart.const(["ngIf"]),selector:"[ng-if]"}))];exports.NgIf=NgIf});dart_library.library('angular2/src/directives/ng_non_bindable',null,["dart_runtime/dart",'dart/core','angular2/src/core/annotations_impl/annotations'],[],function(exports,dart,core,annotations){'use strict';let dartx=dart.dartx;class NgNonBindable extends core.Object{};NgNonBindable[dart.metadata]=()=>[dart.const(new annotations.Directive({compileChildren:false,selector:"[ng-non-bindable]"}))];exports.NgNonBindable=NgNonBindable});dart_library.library('angular2/src/directives/ng_style',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/change_detection/pipes/keyvalue_changes','angular2/src/change_detection/pipes/pipe_registry','angular2/src/core/compiler/element_ref','angular2/src/render/api','angular2/src/core/annotations_impl/annotations'],[],function(exports,dart,core,lang,keyvalue_changes,pipe_registry,element_ref,api,annotations){'use strict';let dartx=dart.dartx;let _pipeRegistry=Symbol('_pipeRegistry');let _ngEl=Symbol('_ngEl');let _renderer=Symbol('_renderer');let _pipe=Symbol('_pipe');let _rawStyle=Symbol('_rawStyle');let _applyChanges=Symbol('_applyChanges');let _setStyle=Symbol('_setStyle');class NgStyle extends core.Object{NgStyle(pipeRegistry,ngEl,renderer){this[_pipeRegistry]=pipeRegistry;this[_ngEl]=ngEl;this[_renderer]=renderer;this[_pipe]=null;this[_rawStyle]=null}set rawStyle(v){this[_rawStyle]=v;this[_pipe]=this[_pipeRegistry].get("keyValDiff",this[_rawStyle])}onCheck(){let diff=this[_pipe].transform(this[_rawStyle],null);if(dart.notNull(lang.isPresent(diff))&&dart.notNull(lang.isPresent(dart.dload(diff,'wrapped')))){this[_applyChanges](dart.as(dart.dload(diff,'wrapped'),keyvalue_changes.KeyValueChanges))}}[_applyChanges](diff){diff.forEachAddedItem(dart.fn(record=>{this[_setStyle](dart.as(dart.dload(record,'key'),core.String),dart.as(dart.dload(record,'currentValue'),core.String))}));diff.forEachChangedItem(dart.fn(record=>{this[_setStyle](dart.as(dart.dload(record,'key'),core.String),dart.as(dart.dload(record,'currentValue'),core.String))}));diff.forEachRemovedItem(dart.fn(record=>{this[_setStyle](dart.as(dart.dload(record,'key'),core.String),null)}))}[_setStyle](name,val){this[_renderer].setElementStyle(this[_ngEl],name,val)}};dart.setSignature(NgStyle,{constructors:()=>({NgStyle:[NgStyle,[pipe_registry.PipeRegistry,element_ref.ElementRef,api.Renderer]]}),methods:()=>({[_setStyle]:[dart.void,[core.String,core.String]],[_applyChanges]:[dart.void,[keyvalue_changes.KeyValueChanges]],onCheck:[dart.dynamic,[]]})});NgStyle[dart.metadata]=()=>[dart.const(new annotations.Directive({lifecycle:dart.const([annotations.onCheck]),properties:dart.const(["rawStyle: ng-style"]),selector:"[ng-style]"}))];exports.NgStyle=NgStyle});dart_library.library('angular2/src/directives/ng_switch',null,["dart_runtime/dart",'dart/core','angular2/src/core/compiler/view_container_ref','angular2/src/core/compiler/view_ref','angular2/src/facade/lang','angular2/src/facade/collection','angular2/src/core/annotations_impl/annotations','angular2/src/di/annotations_impl'],[],function(exports,dart,core,view_container_ref,view_ref,lang,collection,annotations,annotations_impl){'use strict';let dartx=dart.dartx;let _viewContainerRef=Symbol('_viewContainerRef');let _protoViewRef=Symbol('_protoViewRef');class SwitchView extends core.Object{SwitchView(viewContainerRef,protoViewRef){this[_viewContainerRef]=null;this[_protoViewRef]=null;this[_protoViewRef]=protoViewRef;this[_viewContainerRef]=viewContainerRef}create(){this[_viewContainerRef].create(this[_protoViewRef])}destroy(){this[_viewContainerRef].clear()}};dart.setSignature(SwitchView,{constructors:()=>({SwitchView:[SwitchView,[view_container_ref.ViewContainerRef,view_ref.ProtoViewRef]]}),methods:()=>({create:[dart.dynamic,[]],destroy:[dart.dynamic,[]]})});let _switchValue=Symbol('_switchValue');let _useDefault=Symbol('_useDefault');let _valueViews=Symbol('_valueViews');let _activeViews=Symbol('_activeViews');let _emptyAllActiveViews=Symbol('_emptyAllActiveViews');let _activateViews=Symbol('_activateViews');let _onWhenValueChanged=Symbol('_onWhenValueChanged');let _deregisterView=Symbol('_deregisterView');let _registerView=Symbol('_registerView');class NgSwitch extends core.Object{NgSwitch(){this[_switchValue]=null;this[_useDefault]=null;this[_valueViews]=null;this[_activeViews]=null;this[_valueViews]=core.Map$(dart.dynamic,core.List$(SwitchView)).new();this[_activeViews]=dart.list([],SwitchView);this[_useDefault]=false}set ngSwitch(value){this[_emptyAllActiveViews]();this[_useDefault]=false;let views=this[_valueViews].get(value);if(dart.notNull(lang.isBlank(views))){this[_useDefault]=true;views=dart.as(lang.normalizeBlank(this[_valueViews].get(exports._whenDefault)),core.List$(SwitchView))}this[_activateViews](views);this[_switchValue]=value}[_onWhenValueChanged](oldWhen,newWhen,view){this[_deregisterView](oldWhen,view);this[_registerView](newWhen,view);if(dart.notNull(core.identical(oldWhen,this[_switchValue]))){view.destroy();collection.ListWrapper.remove(this[_activeViews],view)}else if(dart.notNull(core.identical(newWhen,this[_switchValue]))){if(dart.notNull(this[_useDefault])){this[_useDefault]=false;this[_emptyAllActiveViews]()}view.create();this[_activeViews][dartx.add](view)}if(dart.notNull(core.identical(this[_activeViews][dartx.length],0))&& !dart.notNull(this[_useDefault])){this[_useDefault]=true;this[_activateViews](this[_valueViews].get(exports._whenDefault))}}[_emptyAllActiveViews](){let activeContainers=this[_activeViews];for(let i=0;dart.notNull(i)<dart.notNull(activeContainers[dartx.length]);i=dart.notNull(i)+1){activeContainers[dartx.get](i).destroy()}this[_activeViews]=dart.list([],SwitchView)}[_activateViews](views){if(dart.notNull(lang.isPresent(views))){for(let i=0;dart.notNull(i)<dart.notNull(views[dartx.length]);i=dart.notNull(i)+1){views[dartx.get](i).create()}this[_activeViews]=views}}[_registerView](value,view){let views=this[_valueViews].get(value);if(dart.notNull(lang.isBlank(views))){views=dart.list([],SwitchView);this[_valueViews].set(value,views)}views[dartx.add](view)}[_deregisterView](value,view){if(dart.equals(value,exports._whenDefault))return;let views=this[_valueViews].get(value);if(views[dartx.length]==1){collection.MapWrapper.delete(this[_valueViews],value)}else{collection.ListWrapper.remove(views,view)}}};dart.setSignature(NgSwitch,{constructors:()=>({NgSwitch:[NgSwitch,[]]}),methods:()=>({[_deregisterView]:[dart.void,[dart.dynamic,SwitchView]],[_registerView]:[dart.void,[dart.dynamic,SwitchView]],[_activateViews]:[dart.void,[core.List$(SwitchView)]],[_emptyAllActiveViews]:[dart.void,[]],[_onWhenValueChanged]:[dart.void,[dart.dynamic,dart.dynamic,SwitchView]]})});NgSwitch[dart.metadata]=()=>[dart.const(new annotations.Directive({properties:dart.const(["ngSwitch"]),selector:"[ng-switch]"}))];let _value=Symbol('_value');let _switch=Symbol('_switch');let _view=Symbol('_view');class NgSwitchWhen extends core.Object{NgSwitchWhen(viewContainer,protoViewRef,sswitch){this[_value]=null;this[_switch]=null;this[_view]=null;this[_value]=exports._whenDefault;this[_switch]=sswitch;this[_view]=new SwitchView(viewContainer,protoViewRef)}onDestroy(){this[_switch]}set ngSwitchWhen(value){this[_switch][_onWhenValueChanged](this[_value],value,this[_view]);this[_value]=value}};dart.setSignature(NgSwitchWhen,{constructors:()=>({NgSwitchWhen:[NgSwitchWhen,[view_container_ref.ViewContainerRef,view_ref.ProtoViewRef,[NgSwitch,dart.const(new annotations_impl.Parent())]]]}),methods:()=>({onDestroy:[dart.dynamic,[]]})});NgSwitchWhen[dart.metadata]=()=>[dart.const(new annotations.Directive({properties:dart.const(["ngSwitchWhen"]),selector:"[ng-switch-when]"}))];class NgSwitchDefault extends core.Object{NgSwitchDefault(viewContainer,protoViewRef,sswitch){sswitch[_registerView](exports._whenDefault,new SwitchView(viewContainer,protoViewRef))}};dart.setSignature(NgSwitchDefault,{constructors:()=>({NgSwitchDefault:[NgSwitchDefault,[view_container_ref.ViewContainerRef,view_ref.ProtoViewRef,[NgSwitch,dart.const(new annotations_impl.Parent())]]]})});NgSwitchDefault[dart.metadata]=()=>[dart.const(new annotations.Directive({selector:"[ng-switch-default]"}))];dart.defineLazyProperties(exports,{get _whenDefault(){return new core.Object()},set _whenDefault(_){}});exports.SwitchView=SwitchView;exports.NgSwitch=NgSwitch;exports.NgSwitchWhen=NgSwitchWhen;exports.NgSwitchDefault=NgSwitchDefault});dart_library.library('angular2/src/dom/browser_adapter',null,["dart_runtime/dart",'angular2/src/dom/generic_browser_adapter','dart/js','angular2/src/dom/dom_adapter','dart/core','dom_experimental/dom'],[],function(exports,dart,generic_browser_adapter,js,dom_adapter,core,dom){'use strict';let dartx=dart.dartx;exports._keyCodeToKeyMap=dart.const(dart.map([8,'Backspace',9,'Tab',12,'Clear',13,'Enter',16,'Shift',17,'Control',18,'Alt',19,'Pause',20,'CapsLock',27,'Escape',32,' ',33,'PageUp',34,'PageDown',35,'End',36,'Home',37,'ArrowLeft',38,'ArrowUp',39,'ArrowRight',40,'ArrowDown',45,'Insert',46,'Delete',65,'a',66,'b',67,'c',68,'d',69,'e',70,'f',71,'g',72,'h',73,'i',74,'j',75,'k',76,'l',77,'m',78,'n',79,'o',80,'p',81,'q',82,'r',83,'s',84,'t',85,'u',86,'v',87,'w',88,'x',89,'y',90,'z',91,'OS',93,'ContextMenu',96,'0',97,'1',98,'2',99,'3',100,'4',101,'5',102,'6',103,'7',104,'8',105,'9',106,'*',107,'+',109,'-',110,'.',111,'/',112,'F1',113,'F2',114,'F3',115,'F4',116,'F5',117,'F6',118,'F7',119,'F8',120,'F9',121,'F10',122,'F11',123,'F12',144,'NumLock',145,'ScrollLock']));let _setProperty=Symbol('_setProperty');let _getProperty=Symbol('_getProperty');let _hasProperty=Symbol('_hasProperty');let _toNodeList=Symbol('_toNodeList');let _toElementList=Symbol('_toElementList');class BrowserDomAdapter extends generic_browser_adapter.GenericBrowserDomAdapter{BrowserDomAdapter(){this[_setProperty]=null;this[_getProperty]=null;this[_hasProperty]=null;this[_setProperty]=dart.as(js.context.callMethod('eval',['(function(el, prop, value) { el[prop] = value; })']),js.JsFunction);this[_getProperty]=dart.as(js.context.callMethod('eval',['(function(el, prop) { return el[prop]; })']),js.JsFunction);this[_hasProperty]=dart.as(js.context.callMethod('eval',['(function(el, prop) { return prop in el; })']),js.JsFunction)}static makeCurrent(){dom_adapter.setRootDomAdapter(new BrowserDomAdapter())}hasProperty(element,name){return dart.as(this[_hasProperty].apply([element,name]),core.bool)}setProperty(element,name,value){return this[_setProperty].apply([element,name,value])}getProperty(element,name){return this[_getProperty].apply([element,name])}invoke(element,methodName,args){return dart.dsend(this.getProperty(element,methodName),'apply',args,{thisArg:element})}logError(error){dom.window.console.error(error)}get attrToPropMap(){return dart.const(dart.map({innerHtml:'innerHTML',readonly:'readOnly',tabindex:'tabIndex'}))}query(selector){return dom.document.querySelector(selector)}querySelector(el,selector){return dart.as(dart.dsend(el,'querySelector',selector),dom.Element)}[_toNodeList](raw){let ret=core.List$(dom.Node).new(raw.length);for(let i=0,len=raw.length;dart.notNull(i)<dart.notNull(len);i=dart.notNull(i)+1){ret[dartx.set](i,raw[i])}return ret}[_toElementList](raw){let ret=core.List$(dom.Element).new(raw.length);for(let i=0,len=raw.length;dart.notNull(i)<dart.notNull(len);i=dart.notNull(i)+1){ret[dartx.set](i,dart.as(raw[i],dom.Element))}return ret}querySelectorAll(el,selector){return this[_toElementList](dart.as(dart.dsend(el,'querySelectorAll',selector),dom.NodeList))}on(element,event,callback){element.addEventListener(event,dart.as(callback,dom.EventListener))}onAndCancel(element,event,callback){element.addEventListener(event,dart.as(callback,dom.EventListener),false);return dart.fn(()=>element.removeEventListener(event,dart.as(callback,dom.EventListener),false),dart.void,[])}dispatchEvent(el,evt){el.dispatchEvent(evt)}createMouseEvent(eventType){return dart.as((()=>{let _=dom.document.createEvent("MouseEvent");_.initEvent(eventType,true,true);return _})(),dom.MouseEvent)}createEvent(eventType){return dom.document.createEvent(eventType)}preventDefault(evt){evt.preventDefault()}getInnerHTML(el){return el.innerHTML}getOuterHTML(el){return el.outerHTML}setInnerHTML(el,value){el.innerHTML=value}nodeName(el){return el.nodeName}nodeValue(el){return el.nodeValue}type(el){return dart.as(dart.dload(el,'type'),core.String)}content(el){return el.content}firstChild(el){return dart.as(dart.dload(el,'firstChild'),dom.Node)}nextSibling(el){return el.nextSibling}parentElement(el){return el.parentElement}childNodes(el){return this[_toNodeList](el.childNodes)}childNodesAsList(el){let childNodes=el.childNodes;let len=childNodes.length;let res=core.List$(dom.Node).new(len);for(let i=0;dart.notNull(i)<dart.notNull(len);i=dart.notNull(i)+1){res[dartx.set](i,childNodes[i])}return res}clearNodes(el){el.innerHTML=''}appendChild(el,node){el.appendChild(node)}removeChild(el,node){el.removeChild(node)}replaceChild(el,newNode,oldNode){el.replaceChild(newNode,oldNode)}remove(el){let parent=el.parentNode;parent.removeChild(el);return el}insertBefore(el,node){el.parentNode.insertBefore(dart.as(node,dom.Node),el)}insertAllBefore(el,nodes){for(let n of nodes){el.parentNode.insertBefore(n,el)}}insertAfter(el,node){el.parentNode.insertBefore(node,el.nextSibling)}getText(el){return el.textContent}setText(el,value){el.textContent=value}getValue(el){return dart.as(dart.dload(el,'value'),core.String)}setValue(el,value){dart.dput(el,'value',value)}getChecked(el){return el.checked}setChecked(el,isChecked){el.checked=isChecked}createTemplate(html){return dart.as((()=>{let _=dom.document.createElement('template');_.innerHTML=html;return _})(),dom.HTMLTemplateElement)}createElement(tagName,doc){if(doc===void 0)doc=null;if(doc==null)doc=dart.as(dom.document,dom.HTMLDocument);return doc.createElement(tagName)}createTextNode(text,doc){if(doc===void 0)doc=null;if(doc==null){doc=dart.as(dom.document,dom.HTMLDocument)}return dom.document.createTextNode(text)}createScriptTag(attrName,attrValue,doc){if(doc===void 0)doc=null;if(doc==null)doc=dart.as(dom.document,dom.HTMLDocument);let el=doc.createElement('SCRIPT');el.setAttribute(attrName,attrValue);return el}createStyleElement(css,doc){if(doc===void 0)doc=null;if(doc==null)doc=dart.as(dom.document,dom.HTMLDocument);let el=doc.createElement('STYLE');el.text=css;return dart.as(el,dom.HTMLStyleElement)}createShadowRoot(el){return el.createShadowRoot()}getShadowRoot(el){return el.shadowRoot}getHost(el){return dart.as(dart.dload(dart.as(el,dart.dynamic),'host'),dom.Element)}clone(node){return node.cloneNode(true)}getElementsByClassName(element,name){return element.getElementsByClassName(name)}getElementsByTagName(element,name){return element.querySelectorAll(name)}classList(element){let classes=element.classList;let len=classes.length;let ret=core.List$(core.String).new(len);for(let i=0;dart.notNull(i)<dart.notNull(len);i=dart.notNull(i)+1){ret[dartx.set](i,classes[i])}return ret}addClass(element,classname){element.classList.add(classname)}removeClass(element,classname){element.classList.remove(classname)}hasClass(element,classname){return element.classList.contains(classname)}setStyle(element,stylename,stylevalue){element.style.setProperty(stylename,stylevalue)}removeStyle(element,stylename){element.style.removeProperty(stylename)}getStyle(element,stylename){return element.style.getPropertyValue(stylename)}tagName(element){return element.tagName}attributeMap(element){let res=dart.map();let elAttrs=element.attributes;for(let i=0;dart.notNull(i)<dart.notNull(elAttrs.length);i=dart.notNull(i)+1){let attrib=elAttrs[i];res.set(attrib.name,attrib.value)}return res}hasAttribute(element,attribute){return element.hasAttribute(attribute)}getAttribute(element,attribute){return element.getAttribute(attribute)}setAttribute(element,name,value){element.setAttribute(name,value)}removeAttribute(element,name){element.removeAttribute(name)}templateAwareRoot(el){return dart.is(el,dom.HTMLTemplateElement)?el.content:el}createHTMLDocument(){return dart.as(dom.document.implementation.createHTMLDocument('fakeTitle'),dom.HTMLDocument)}defaultDoc(){return dart.as(dom.document,dom.HTMLDocument)}getBoundingClientRect(el){return dart.dsend(el,'getBoundingClientRect')}getTitle(){return dom.document.title}setTitle(newTitle){dom.document.title=newTitle}elementMatches(n,selector){return dart.is(n,dom.HTMLElement)&&dart.notNull(dart.as(dart.dsend(n,'matches',selector),core.bool))}isTemplateElement(el){return dart.is(el,dom.HTMLTemplateElement)}isTextNode(node){return node.nodeType==dom.Node.TEXT_NODE}isCommentNode(node){return node.nodeType==dom.Node.COMMENT_NODE}isElementNode(node){return node.nodeType==dom.Node.ELEMENT_NODE}hasShadowRoot(node){return dart.is(node,dom.HTMLElement)&&node.shadowRoot!=null}isShadowRoot(node){return dart.is(node,dom.ShadowRoot)}importIntoDoc(node){let result=dom.document.importNode(node,true);if(dart.is(result,dom.Element)&&dart.notNull(this.isTemplateElement(result))){let content=dart.as(result,dom.HTMLTemplateElement).content;if(content.childNodes.length==0&&dart.notNull(content.childNodes.length)>0){let childNodes=content.childNodes;for(let i=0;dart.notNull(i)<dart.notNull(childNodes.length);i=dart.notNull(i)+1){content.appendChild(this.importIntoDoc(childNodes[i]))}}}return result}isPageRule(rule){return rule.type==dom.CSSRule.PAGE_RULE}isStyleRule(rule){return rule.type==dom.CSSRule.STYLE_RULE}isMediaRule(rule){return rule.type==dom.CSSRule.MEDIA_RULE}isKeyframesRule(rule){return rule.type==dom.CSSRule.KEYFRAMES_RULE}getHref(element){return element.href}getEventKey(event){let keyCode=event.keyCode;return dart.notNull(exports._keyCodeToKeyMap.containsKey(keyCode))?dart.as(exports._keyCodeToKeyMap.get(keyCode),core.String):'Unidentified'}getGlobalEventTarget(target){if(target=="window"){return dom.window}else if(target=="document"){return dom.document}else if(target=="body"){return dom.document.body}}getHistory(){return dom.window.history}getLocation(){return dom.window.location}getBaseHref(){let uri=dart.dload(dart.as(dom.document,dart.dynamic),'baseURI');let baseUri=core.Uri.parse(dart.as(uri,core.String));return baseUri.path}getUserAgent(){return dom.window.navigator.userAgent}setData(element,name,value){dart.dsetindex(dart.dload(dart.as(element,dart.dynamic),'dataset'),name,value)}getData(element,name){return dart.as(dart.dindex(dart.dload(dart.as(element,dart.dynamic),'dataset'),name),core.String)}setGlobalVar(name,value){js.context.set(name,value)}};dart.setSignature(BrowserDomAdapter,{constructors:()=>({BrowserDomAdapter:[BrowserDomAdapter,[]]}),methods:()=>({[_toNodeList]:[core.List$(dom.Node),[dom.NodeList]],[_toElementList]:[core.List$(dom.Element),[dom.NodeList]],addClass:[dart.void,[dom.HTMLElement,core.String]],appendChild:[dart.void,[dom.Node,dom.Node]],attributeMap:[core.Map$(core.String,core.String),[dom.Element]],childNodes:[core.List$(dom.Node),[dom.Node]],childNodesAsList:[core.List,[dom.Node]],classList:[core.List$(core.String),[dom.HTMLElement]],clearNodes:[dart.void,[dom.HTMLElement]],clone:[dart.dynamic,[dom.Node]],content:[dom.Node,[dom.HTMLTemplateElement]],createElement:[dom.Element,[core.String],[dom.HTMLDocument]],createEvent:[dom.Event,[core.String]],createHTMLDocument:[dom.HTMLDocument,[]],createMouseEvent:[dom.MouseEvent,[core.String]],createScriptTag:[dart.dynamic,[core.String,core.String],[dom.HTMLDocument]],createShadowRoot:[dom.ShadowRoot,[dom.HTMLElement]],createStyleElement:[dom.HTMLStyleElement,[core.String],[dom.HTMLDocument]],createTemplate:[dom.HTMLTemplateElement,[core.String]],createTextNode:[dom.Text,[core.String],[dom.HTMLDocument]],defaultDoc:[dom.HTMLDocument,[]],dispatchEvent:[dart.void,[dom.EventTarget,dom.Event]],firstChild:[dom.Node,[dart.dynamic]],getAttribute:[core.String,[dom.Element,core.String]],getChecked:[core.bool,[dom.HTMLInputElement]],getData:[core.String,[dom.Element,core.String]],getElementsByClassName:[dom.NodeList,[dom.HTMLElement,core.String]],getElementsByTagName:[dom.NodeList,[dom.Element,core.String]],getEventKey:[core.String,[dom.KeyboardEvent]],getHost:[dom.Element,[dom.Element]],getHref:[core.String,[dom.HTMLAnchorElement]],getInnerHTML:[core.String,[dom.HTMLElement]],getOuterHTML:[core.String,[dom.HTMLElement]],getProperty:[dart.dynamic,[dom.Element,core.String]],getShadowRoot:[dom.ShadowRoot,[dom.HTMLElement]],getStyle:[core.String,[dom.HTMLElement,core.String]],getText:[core.String,[dom.Node]],hasAttribute:[core.bool,[dom.Element,core.String]],hasClass:[core.bool,[dom.HTMLElement,core.String]],hasProperty:[core.bool,[dom.Element,core.String]],hasShadowRoot:[core.bool,[dom.Node]],importIntoDoc:[dom.Node,[dom.Node]],insertAfter:[dart.void,[dom.Node,dom.Node]],insertAllBefore:[dart.void,[dom.Node,core.Iterable$(dom.Node)]],insertBefore:[dart.void,[dom.Node,dart.dynamic]],invoke:[dart.dynamic,[dom.Element,core.String,core.List]],isCommentNode:[core.bool,[dom.Node]],isElementNode:[core.bool,[dom.Node]],isKeyframesRule:[core.bool,[dom.CSSRule]],isMediaRule:[core.bool,[dom.CSSRule]],isPageRule:[core.bool,[dom.CSSRule]],isShadowRoot:[core.bool,[dom.Node]],isStyleRule:[core.bool,[dom.CSSRule]],isTemplateElement:[core.bool,[dom.Element]],isTextNode:[core.bool,[dom.Node]],nextSibling:[dom.Node,[dom.Node]],nodeName:[core.String,[dom.Node]],nodeValue:[core.String,[dom.Node]],on:[dart.void,[dom.EventTarget,core.String,dart.functionType(dart.dynamic,[dart.dynamic])]],onAndCancel:[core.Function,[dom.EventTarget,core.String,dart.functionType(dart.dynamic,[dart.dynamic])]],parentElement:[dom.HTMLElement,[dom.HTMLElement]],preventDefault:[dart.void,[dom.Event]],query:[dom.Element,[core.String]],querySelector:[dom.Element,[dart.dynamic,core.String]],querySelectorAll:[core.List$(dom.Element),[dart.dynamic,core.String]],remove:[dom.Element,[dom.Element]],removeAttribute:[dart.void,[dom.Element,core.String]],removeChild:[dart.void,[dom.Element,dom.Node]],removeClass:[dart.void,[dom.HTMLElement,core.String]],removeStyle:[dart.void,[dom.HTMLElement,core.String]],replaceChild:[dart.void,[dom.Node,dom.Node,dom.Node]],setAttribute:[dart.void,[dom.Element,core.String,core.String]],setChecked:[dart.void,[dom.HTMLInputElement,core.bool]],setData:[dart.void,[dom.Element,core.String,core.String]],setInnerHTML:[dart.void,[dom.HTMLElement,core.String]],setProperty:[dart.void,[dom.Element,core.String,core.Object]],setStyle:[dart.void,[dom.HTMLElement,core.String,core.String]],setText:[dart.void,[dom.Node,core.String]],setTitle:[dart.void,[core.String]],setValue:[dart.void,[dart.dynamic,core.String]],tagName:[core.String,[dom.Element]],templateAwareRoot:[dom.Node,[dom.Element]]}),names:['makeCurrent'],statics:()=>({makeCurrent:[dart.void,[]]})});exports.BrowserDomAdapter=BrowserDomAdapter});dart_library.library('angular2/src/dom/dom_adapter',null,["dart_runtime/dart",'angular2/src/facade/lang','dart/core'],[],function(exports,dart,lang,core){'use strict';let dartx=dart.dartx;exports.DOM=null;function setRootDomAdapter(adapter){if(dart.notNull(lang.isBlank(exports.DOM))){exports.DOM=adapter}}dart.fn(setRootDomAdapter,()=>dart.definiteFunctionType(dart.dynamic,[DomAdapter]));function _abstract(){return new lang.BaseException("This method is abstract")}dart.fn(_abstract);class DomAdapter extends core.Object{hasProperty(element,name){dart.throw(_abstract())}setProperty(el,name,value){dart.throw(_abstract())}getProperty(el,name){dart.throw(_abstract())}invoke(el,methodName,args){dart.throw(_abstract())}logError(error){dart.throw(_abstract())}get attrToPropMap(){dart.throw(_abstract())}parse(templateHtml){dart.throw(_abstract())}query(selector){dart.throw(_abstract())}querySelector(el,selector){dart.throw(_abstract())}querySelectorAll(el,selector){dart.throw(_abstract())}on(el,evt,listener){dart.throw(_abstract())}onAndCancel(el,evt,listener){dart.throw(_abstract())}dispatchEvent(el,evt){dart.throw(_abstract())}createMouseEvent(eventType){dart.throw(_abstract())}createEvent(eventType){dart.throw(_abstract())}preventDefault(evt){dart.throw(_abstract())}getInnerHTML(el){dart.throw(_abstract())}getOuterHTML(el){dart.throw(_abstract())}nodeName(node){dart.throw(_abstract())}nodeValue(node){dart.throw(_abstract())}type(node){dart.throw(_abstract())}content(node){dart.throw(_abstract())}firstChild(el){dart.throw(_abstract())}nextSibling(el){dart.throw(_abstract())}parentElement(el){dart.throw(_abstract())}childNodes(el){dart.throw(_abstract())}childNodesAsList(el){dart.throw(_abstract())}clearNodes(el){dart.throw(_abstract())}appendChild(el,node){dart.throw(_abstract())}removeChild(el,node){dart.throw(_abstract())}replaceChild(el,newNode,oldNode){dart.throw(_abstract())}remove(el){dart.throw(_abstract())}insertBefore(el,node){dart.throw(_abstract())}insertAllBefore(el,nodes){dart.throw(_abstract())}insertAfter(el,node){dart.throw(_abstract())}setInnerHTML(el,value){dart.throw(_abstract())}getText(el){dart.throw(_abstract())}setText(el,value){dart.throw(_abstract())}getValue(el){dart.throw(_abstract())}setValue(el,value){dart.throw(_abstract())}getChecked(el){dart.throw(_abstract())}setChecked(el,value){dart.throw(_abstract())}createTemplate(html){dart.throw(_abstract())}createElement(tagName,doc){if(doc===void 0)doc=null;dart.throw(_abstract())}createTextNode(text,doc){if(doc===void 0)doc=null;dart.throw(_abstract())}createScriptTag(attrName,attrValue,doc){if(doc===void 0)doc=null;dart.throw(_abstract())}createStyleElement(css,doc){if(doc===void 0)doc=null;dart.throw(_abstract())}createShadowRoot(el){dart.throw(_abstract())}getShadowRoot(el){dart.throw(_abstract())}getHost(el){dart.throw(_abstract())}getDistributedNodes(el){dart.throw(_abstract())}clone(node){dart.throw(_abstract())}getElementsByClassName(element,name){dart.throw(_abstract())}getElementsByTagName(element,name){dart.throw(_abstract())}classList(element){dart.throw(_abstract())}addClass(element,classname){dart.throw(_abstract())}removeClass(element,classname){dart.throw(_abstract())}hasClass(element,classname){dart.throw(_abstract())}setStyle(element,stylename,stylevalue){dart.throw(_abstract())}removeStyle(element,stylename){dart.throw(_abstract())}getStyle(element,stylename){dart.throw(_abstract())}tagName(element){dart.throw(_abstract())}attributeMap(element){dart.throw(_abstract())}hasAttribute(element,attribute){dart.throw(_abstract())}getAttribute(element,attribute){dart.throw(_abstract())}setAttribute(element,name,value){dart.throw(_abstract())}removeAttribute(element,attribute){dart.throw(_abstract())}templateAwareRoot(el){dart.throw(_abstract())}createHtmlDocument(){dart.throw(_abstract())}defaultDoc(){dart.throw(_abstract())}getBoundingClientRect(el){dart.throw(_abstract())}getTitle(){dart.throw(_abstract())}setTitle(newTitle){dart.throw(_abstract())}elementMatches(n,selector){dart.throw(_abstract())}isTemplateElement(el){dart.throw(_abstract())}isTextNode(node){dart.throw(_abstract())}isCommentNode(node){dart.throw(_abstract())}isElementNode(node){dart.throw(_abstract())}hasShadowRoot(node){dart.throw(_abstract())}isShadowRoot(node){dart.throw(_abstract())}importIntoDoc(node){dart.throw(_abstract())}isPageRule(rule){dart.throw(_abstract())}isStyleRule(rule){dart.throw(_abstract())}isMediaRule(rule){dart.throw(_abstract())}isKeyframesRule(rule){dart.throw(_abstract())}getHref(element){dart.throw(_abstract())}getEventKey(event){dart.throw(_abstract())}resolveAndSetHref(element,baseUrl,href){dart.throw(_abstract())}cssToRules(css){dart.throw(_abstract())}supportsDOMEvents(){dart.throw(_abstract())}supportsNativeShadowDOM(){dart.throw(_abstract())}getGlobalEventTarget(target){dart.throw(_abstract())}getHistory(){dart.throw(_abstract())}getLocation(){dart.throw(_abstract())}getBaseHref(){dart.throw(_abstract())}getUserAgent(){dart.throw(_abstract())}setData(element,name,value){dart.throw(_abstract())}getData(element,name){dart.throw(_abstract())}setGlobalVar(name,value){dart.throw(_abstract())}};dart.setSignature(DomAdapter,{methods:()=>({addClass:[dart.dynamic,[dart.dynamic,core.String]],appendChild:[dart.dynamic,[dart.dynamic,dart.dynamic]],attributeMap:[core.Map$(core.String,core.String),[dart.dynamic]],childNodes:[core.List,[dart.dynamic]],childNodesAsList:[core.List,[dart.dynamic]],classList:[core.List,[dart.dynamic]],clearNodes:[dart.dynamic,[dart.dynamic]],clone:[dart.dynamic,[dart.dynamic]],content:[dart.dynamic,[dart.dynamic]],createElement:[dart.dynamic,[dart.dynamic],[dart.dynamic]],createEvent:[dart.dynamic,[core.String]],createHtmlDocument:[dart.dynamic,[]],createMouseEvent:[dart.dynamic,[core.String]],createScriptTag:[dart.dynamic,[core.String,core.String],[dart.dynamic]],createShadowRoot:[dart.dynamic,[dart.dynamic]],createStyleElement:[dart.dynamic,[core.String],[dart.dynamic]],createTemplate:[dart.dynamic,[dart.dynamic]],createTextNode:[dart.dynamic,[core.String],[dart.dynamic]],cssToRules:[core.List,[core.String]],defaultDoc:[dart.dynamic,[]],dispatchEvent:[dart.dynamic,[dart.dynamic,dart.dynamic]],elementMatches:[core.bool,[dart.dynamic,core.String]],firstChild:[dart.dynamic,[dart.dynamic]],getAttribute:[core.String,[dart.dynamic,core.String]],getBaseHref:[core.String,[]],getBoundingClientRect:[dart.dynamic,[dart.dynamic]],getChecked:[core.bool,[dart.dynamic]],getData:[core.String,[dart.dynamic,core.String]],getDistributedNodes:[core.List,[dart.dynamic]],getElementsByClassName:[dart.dynamic,[dart.dynamic,core.String]],getElementsByTagName:[dart.dynamic,[dart.dynamic,core.String]],getEventKey:[core.String,[dart.dynamic]],getGlobalEventTarget:[dart.dynamic,[core.String]],getHistory:[dart.dynamic,[]],getHost:[dart.dynamic,[dart.dynamic]],getHref:[core.String,[dart.dynamic]],getInnerHTML:[core.String,[dart.dynamic]],getLocation:[dart.dynamic,[]],getOuterHTML:[core.String,[dart.dynamic]],getProperty:[dart.dynamic,[dart.dynamic,core.String]],getShadowRoot:[dart.dynamic,[dart.dynamic]],getStyle:[core.String,[dart.dynamic,core.String]],getText:[core.String,[dart.dynamic]],getTitle:[core.String,[]],getUserAgent:[core.String,[]],getValue:[core.String,[dart.dynamic]],hasAttribute:[core.bool,[dart.dynamic,core.String]],hasClass:[core.bool,[dart.dynamic,core.String]],hasProperty:[core.bool,[dart.dynamic,core.String]],hasShadowRoot:[core.bool,[dart.dynamic]],importIntoDoc:[dart.dynamic,[dart.dynamic]],insertAfter:[dart.dynamic,[dart.dynamic,dart.dynamic]],insertAllBefore:[dart.dynamic,[dart.dynamic,dart.dynamic]],insertBefore:[dart.dynamic,[dart.dynamic,dart.dynamic]],invoke:[dart.dynamic,[dart.dynamic,core.String,core.List]],isCommentNode:[core.bool,[dart.dynamic]],isElementNode:[core.bool,[dart.dynamic]],isKeyframesRule:[core.bool,[dart.dynamic]],isMediaRule:[core.bool,[dart.dynamic]],isPageRule:[core.bool,[dart.dynamic]],isShadowRoot:[core.bool,[dart.dynamic]],isStyleRule:[core.bool,[dart.dynamic]],isTemplateElement:[core.bool,[dart.dynamic]],isTextNode:[core.bool,[dart.dynamic]],logError:[dart.dynamic,[dart.dynamic]],nextSibling:[dart.dynamic,[dart.dynamic]],nodeName:[core.String,[dart.dynamic]],nodeValue:[core.String,[dart.dynamic]],on:[dart.dynamic,[dart.dynamic,dart.dynamic,dart.dynamic]],onAndCancel:[core.Function,[dart.dynamic,dart.dynamic,dart.dynamic]],parentElement:[dart.dynamic,[dart.dynamic]],parse:[dart.dynamic,[core.String]],preventDefault:[dart.dynamic,[dart.dynamic]],query:[dart.dynamic,[core.String]],querySelector:[dart.dynamic,[dart.dynamic,core.String]],querySelectorAll:[core.List,[dart.dynamic,core.String]],remove:[dart.dynamic,[dart.dynamic]],removeAttribute:[dart.dynamic,[dart.dynamic,core.String]],removeChild:[dart.dynamic,[dart.dynamic,dart.dynamic]],removeClass:[dart.dynamic,[dart.dynamic,core.String]],removeStyle:[dart.dynamic,[dart.dynamic,core.String]],replaceChild:[dart.dynamic,[dart.dynamic,dart.dynamic,dart.dynamic]],resolveAndSetHref:[dart.dynamic,[dart.dynamic,core.String,core.String]],setAttribute:[dart.dynamic,[dart.dynamic,core.String,core.String]],setChecked:[dart.dynamic,[dart.dynamic,core.bool]],setData:[dart.dynamic,[dart.dynamic,core.String,core.String]],setGlobalVar:[dart.dynamic,[core.String,dart.dynamic]],setInnerHTML:[dart.dynamic,[dart.dynamic,dart.dynamic]],setProperty:[dart.dynamic,[dart.dynamic,core.String,dart.dynamic]],setStyle:[dart.dynamic,[dart.dynamic,core.String,core.String]],setText:[dart.dynamic,[dart.dynamic,core.String]],setTitle:[dart.dynamic,[core.String]],setValue:[dart.dynamic,[dart.dynamic,core.String]],supportsDOMEvents:[core.bool,[]],supportsNativeShadowDOM:[core.bool,[]],tagName:[core.String,[dart.dynamic]],templateAwareRoot:[dart.dynamic,[dart.dynamic]],type:[core.String,[dart.dynamic]]})});exports.setRootDomAdapter=setRootDomAdapter;exports.DomAdapter=DomAdapter});dart_library.library('angular2/src/dom/generic_browser_adapter',null,["dart_runtime/dart",'angular2/src/dom/dom_adapter','dart/core','angular2/src/facade/lang','angular2/src/facade/collection'],[],function(exports,dart,dom_adapter,core,lang,collection){'use strict';let dartx=dart.dartx;class GenericBrowserDomAdapter extends dom_adapter.DomAdapter{getDistributedNodes(el){return dart.as(dart.dsend(el,'getDistributedNodes'),core.List)}resolveAndSetHref(el,baseUrl,href){dart.dput(el,'href',href==null?baseUrl:dart.notNull(baseUrl)+"/../"+dart.notNull(href))}cssToRules(css){let style=this.createStyleElement(css);this.appendChild(dart.dload(this.defaultDoc(),'head'),style);let rules=[];if(dart.notNull(lang.isPresent(dart.dload(style,'sheet')))){try{let rawRules=dart.dload(dart.as(dart.dload(style,'sheet'),dart.dynamic),'cssRules');rules=collection.ListWrapper.createFixedSize(dart.as(dart.dload(rawRules,'length'),core.int));for(let i=0;dart.notNull(i)<dart.notNull(dart.as(dart.dload(rawRules,'length'),core.num));i=dart.notNull(i)+1){rules[dartx.set](i,dart.dindex(rawRules,i))}}catch(e){let e_stack=dart.stackTrace(e)}}else{}this.remove(style);return rules}supportsDOMEvents(){return true}supportsNativeShadowDOM(){return lang.isFunction(dart.dload(dart.as(dart.dload(this.defaultDoc(),'body'),dart.dynamic),'createShadowRoot'))}};exports.GenericBrowserDomAdapter=GenericBrowserDomAdapter});dart_library.library('angular2/src/facade/async',null,["dart_runtime/dart",'dart/core','dart/async'],[],function(exports,dart,core,async){'use strict';let dartx=dart.dartx;class PromiseWrapper extends core.Object{static resolve(obj){return async.Future.value(obj)}static reject(obj,stackTrace){return async.Future.error(obj,stackTrace!=null?dart.as(stackTrace,core.StackTrace):dart.is(obj,core.Error)?dart.as(dart.dload(obj,'stackTrace'),core.StackTrace):null)}static all(promises){return async.Future.wait(dart.as(promises[dartx.map](dart.fn(p=>dart.is(p,async.Future)?p:async.Future.value(p))),core.Iterable$(async.Future)))}static then(promise,success,onError){if(onError===void 0)onError=null;if(success==null)return promise.catchError(onError);return promise.then(success,{onError:onError})}static wrap(fn){return async.Future.new(dart.as(fn,__CastType0))}static catchError(promise,onError){return promise.catchError(onError)}static completer(){return new CompleterWrapper(async.Completer.new())}};dart.setSignature(PromiseWrapper,{names:['resolve','reject','all','then','wrap','catchError','completer'],statics:()=>({all:[async.Future$(core.List),[core.List]],catchError:[async.Future,[async.Future,core.Function]],completer:[CompleterWrapper,[]],reject:[async.Future,[dart.dynamic,dart.dynamic]],resolve:[async.Future,[dart.dynamic]],then:[async.Future,[async.Future,dart.functionType(dart.dynamic,[dart.dynamic])],[core.Function]],wrap:[async.Future,[core.Function]]})});class TimerWrapper extends core.Object{static setTimeout(fn,millis){return async.Timer.new(new core.Duration({milliseconds:millis}),fn)}static clearTimeout(timer){timer.cancel()}static setInterval(fn,millis){let interval=new core.Duration({milliseconds:millis});return async.Timer.periodic(interval,dart.fn(timer=>{fn()},dart.dynamic,[async.Timer]))}static clearInterval(timer){timer.cancel()}};dart.setSignature(TimerWrapper,{names:['setTimeout','clearTimeout','setInterval','clearInterval'],statics:()=>({clearInterval:[dart.void,[async.Timer]],clearTimeout:[dart.void,[async.Timer]],setInterval:[async.Timer,[dart.functionType(dart.dynamic,[]),core.int]],setTimeout:[async.Timer,[dart.functionType(dart.dynamic,[]),core.int]]})});class ObservableWrapper extends core.Object{static subscribe(s,onNext,onError,onComplete){if(onError===void 0)onError=null;if(onComplete===void 0)onComplete=null;return s.listen(dart.as(onNext,__CastType1),{cancelOnError:true,onDone:dart.as(onComplete,__CastType3),onError:dart.as(onError,core.Function)})}static isObservable(obs){return dart.is(obs,async.Stream)}static dispose(s){s.cancel()}static callNext(emitter,value){emitter.add(value)}static callThrow(emitter,error){emitter.addError(error)}static callReturn(emitter){emitter.close()}};dart.setSignature(ObservableWrapper,{names:['subscribe','isObservable','dispose','callNext','callThrow','callReturn'],statics:()=>({callNext:[dart.void,[EventEmitter,dart.dynamic]],callReturn:[dart.void,[EventEmitter]],callThrow:[dart.void,[EventEmitter,dart.dynamic]],dispose:[dart.void,[async.StreamSubscription]],isObservable:[core.bool,[dart.dynamic]],subscribe:[async.StreamSubscription,[async.Stream,core.Function],[dart.dynamic,dart.dynamic]]})});let _controller=Symbol('_controller');class EventEmitter extends async.Stream{EventEmitter(){this[_controller]=null;super.Stream();this[_controller]=async.StreamController$(core.String).broadcast()}listen(onData,opts){let onError=opts&&'onError'in opts?opts.onError:null;let onDone=opts&&'onDone'in opts?opts.onDone:null;let cancelOnError=opts&&'cancelOnError'in opts?opts.cancelOnError:null;return this[_controller].stream.listen(onData,{cancelOnError:cancelOnError,onDone:onDone,onError:onError})}add(value){this[_controller].add(dart.as(value,core.String))}addError(error){this[_controller].addError(error)}close(){this[_controller].close()}};dart.setSignature(EventEmitter,{constructors:()=>({EventEmitter:[EventEmitter,[]]}),methods:()=>({add:[dart.void,[dart.dynamic]],addError:[dart.void,[dart.dynamic]],close:[dart.void,[]],listen:[async.StreamSubscription,[dart.functionType(dart.void,[core.String])],{cancelOnError:core.bool,onDone:dart.functionType(dart.void,[]),onError:dart.functionType(dart.void,[core.Error])}]})});class CompleterWrapper extends core.Object{CompleterWrapper(c){this.c=c}get promise(){return this.c.future}resolve(v){this.c.complete(v)}reject(error,stack){if(stack==null&&dart.is(error,core.Error)){stack=dart.dload(error,'stackTrace')}this.c.completeError(error,dart.as(stack,core.StackTrace))}};dart.setSignature(CompleterWrapper,{constructors:()=>({CompleterWrapper:[CompleterWrapper,[async.Completer]]}),methods:()=>({reject:[dart.void,[dart.dynamic,dart.dynamic]],resolve:[dart.void,[dart.dynamic]]})});let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(dart.dynamic,[]));let __CastType1=dart.typedef('__CastType1',()=>dart.functionType(dart.void,[dart.dynamic]));let __CastType3=dart.typedef('__CastType3',()=>dart.functionType(dart.void,[]));exports.PromiseWrapper=PromiseWrapper;exports.TimerWrapper=TimerWrapper;exports.ObservableWrapper=ObservableWrapper;exports.EventEmitter=EventEmitter;exports.CompleterWrapper=CompleterWrapper});dart_library.library('angular2/src/facade/browser',window,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx;function gc(){if(exports._gc!=null){dart.dcall(exports._gc)}}dart.fn(gc,dart.void,[]);exports.gc=gc});dart_library.library('angular2/src/facade/collection',null,["dart_runtime/dart",'dart/convert','dart/core','dart/collection','dart/math'],[],function(exports,dart,convert,core,collection,math){'use strict';let dartx=dart.dartx;dart.defineLazyProperties(exports,{get jsonEncoder(){return new convert.JsonEncoder()},set jsonEncoder(_){}});let _map=Symbol('_map');let _iterator=Symbol('_iterator');class MapIterator extends core.Iterator$(core.List){MapIterator(map){this[_map]=map;this[_iterator]=map.keys[dartx.iterator]}moveNext(){return this[_iterator].moveNext()}get current(){return this[_iterator].current!=null?[this[_iterator].current,this[_map].get(this[_iterator].current)]:null}}dart.setSignature(MapIterator,{constructors:()=>({MapIterator:[MapIterator,[core.Map]]}),methods:()=>({moveNext:[core.bool,[]]})});class IterableMap extends collection.IterableBase$(core.List){IterableMap(map){this[_map]=map;super.IterableBase()}get iterator(){return new MapIterator(this[_map])}}dart.setSignature(IterableMap,{constructors:()=>({IterableMap:[IterableMap,[core.Map]]})});dart.defineExtensionMembers(IterableMap,['iterator']);class MapWrapper extends core.Object{static clone(m){return core.Map.from(m)}static createFromStringMap(m){return m}static createFromPairs(pairs){return dart.as(pairs[dartx.fold](dart.map(),dart.fn((m,p)=>{dart.dsetindex(m,dart.dindex(p,0),dart.dindex(p,1));return m})),core.Map)}static forEach(m,fn){m.forEach(dart.fn((k,v)=>dart.dcall(fn,v,k)))}static size(m){return m.length}static delete(m,k){m.remove(k)}static clearValues(m){for(let k of m.keys){m.set(k,null)}}static iterable(m){return new IterableMap(m)}static keys(m){return m.keys[dartx.toList]()}static values(m){return m.values[dartx.toList]()}};dart.setSignature(MapWrapper,{names:['clone','createFromStringMap','createFromPairs','forEach','size','delete','clearValues','iterable','keys','values'],statics:()=>({clearValues:[dart.void,[core.Map]],clone:[core.Map,[core.Map]],createFromPairs:[core.Map,[core.List]],createFromStringMap:[core.Map,[core.Map]],delete:[dart.void,[core.Map,dart.dynamic]],forEach:[dart.dynamic,[core.Map,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])]],iterable:[core.Iterable,[core.Map]],keys:[core.List,[core.Map]],size:[core.int,[core.Map]],values:[core.List,[core.Map]]})});class StringMapWrapper extends core.Object{static create(){return dart.map()}static contains(map,key){return map.containsKey(key)}static get(map,key){return map.get(key)}static set(map,key,value){map.set(key,value)}static delete(m,k){m.remove(k)}static forEach(m,fn){m.forEach(dart.fn((k,v)=>dart.dcall(fn,v,k)))}static merge(a,b){let m=core.Map.from(a);if(b!=null){b.forEach(dart.fn((k,v)=>m.set(k,v)))}return m}static keys(a){return a.keys[dartx.toList]()}static isEmpty(m){return m.isEmpty}static equals(m1,m2){if(m1.length!=m2.length){return false}for(let key of m1.keys){if(!dart.equals(m1.get(key),m2.get(key))){return false}}return true}};dart.setSignature(StringMapWrapper,{names:['create','contains','get','set','delete','forEach','merge','keys','isEmpty','equals'],statics:()=>({contains:[core.bool,[core.Map,dart.dynamic]],create:[core.Map,[]],delete:[dart.void,[core.Map,dart.dynamic]],equals:[core.bool,[core.Map,core.Map]],forEach:[dart.void,[core.Map,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])]],get:[dart.dynamic,[core.Map,dart.dynamic]],isEmpty:[core.bool,[core.Map]],keys:[core.List$(core.String),[core.Map$(core.String,dart.dynamic)]],merge:[core.Map,[core.Map,core.Map]],set:[dart.void,[core.Map,dart.dynamic,dart.dynamic]]})});let Predicate$=dart.generic(function(T){let Predicate=dart.typedef('Predicate',()=>dart.functionType(core.bool,[T]));return Predicate});let Predicate=Predicate$();class ListWrapper extends core.Object{static clone(l){return core.List.from(l)}static createFixedSize(size){return core.List.new(size)}static createGrowableSize(size){return core.List.generate(size,dart.fn(_=>null,dart.bottom,[dart.dynamic]),{growable:true})}static get(m,k){return m[dartx.get](k)}static set(m,k,v){m[dartx.set](k,v)}static contains(m,k){return m[dartx.contains](k)}static map(list,fn){return dart.as(dart.dsend(dart.dsend(list,'map',fn),'toList'),core.List)}static filter(list,fn){return list[dartx.where](fn)[dartx.toList]()}static indexOf(list,value,startIndex){if(startIndex===void 0)startIndex=0;return list[dartx.indexOf](value,startIndex)}static lastIndexOf(list,value,startIndex){if(startIndex===void 0)startIndex=null;return list[dartx.lastIndexOf](value,startIndex==null?list[dartx.length]:startIndex)}static find(list,fn){return list[dartx.firstWhere](fn,{orElse:dart.fn(()=>null,dart.bottom,[])})}static any(list,fn){return list[dartx.any](fn)}static forEach(list,fn){list[dartx.forEach](fn)}static reduce(list,fn,init){return list[dartx.fold](init,fn)}static first(list){return dart.notNull(list[dartx.isEmpty])?null:list[dartx.first]}static last(list){return dart.notNull(list[dartx.isEmpty])?null:list[dartx.last]}static reversed(list){return list[dartx.reversed][dartx.toList]()}static concat(a,b){let _=core.List.new();_[dartx.length]=dart.notNull(a[dartx.length])+dart.notNull(b[dartx.length]);_[dartx.setRange](0,a[dartx.length],a);_[dartx.setRange](a[dartx.length],dart.notNull(a[dartx.length])+dart.notNull(b[dartx.length]),b);return _}static insert(l,index,value){l[dartx.insert](index,value)}static removeAt(l,index){return l[dartx.removeAt](index)}static removeAll(list,items){for(let i=0;dart.notNull(i)<dart.notNull(items[dartx.length]);i=dart.notNull(i)+1){list[dartx.remove](items[dartx.get](i))}}static removeLast(list){return list[dartx.removeLast]()}static remove(list,item){return list[dartx.remove](item)}static clear(l){l[dartx.clear]()}static join(l,s){return l[dartx.join](s)}static isEmpty(list){return list[dartx.isEmpty]}static fill(l,value,start,end){if(start===void 0)start=0;if(end===void 0)end=null;l[dartx.fillRange](ListWrapper._startOffset(l,start),ListWrapper._endOffset(l,end),value)}static equals(a,b){if(a[dartx.length]!=b[dartx.length])return false;for(let i=0;dart.notNull(i)<dart.notNull(a[dartx.length]);i=dart.notNull(i)+1){if(!dart.equals(a[dartx.get](i),b[dartx.get](i)))return false;}return true}static slice(l,from,to){if(from===void 0)from=0;if(to===void 0)to=null;return l[dartx.sublist](ListWrapper._startOffset(l,from),ListWrapper._endOffset(l,to))}static splice(l,from,length){from=ListWrapper._startOffset(l,from);let to=dart.notNull(from)+dart.notNull(length);let sub=l[dartx.sublist](from,to);l[dartx.removeRange](from,to);return sub}static sort(l,compareFn){if(compareFn===void 0)compareFn=null;if(compareFn==null){l[dartx.sort]()}else{l[dartx.sort](dart.as(compareFn,__CastType0))}}static toJSON(l){return exports.jsonEncoder.convert(l)}static _startOffset(l,start){let len=l[dartx.length];return start=dart.notNull(start)<0?math.max(dart.notNull(len)+dart.notNull(start),0):math.min(start,len)}static _endOffset(l,end){let len=l[dartx.length];if(end==null)return len;return dart.notNull(end)<0?math.max(dart.notNull(len)+dart.notNull(end),0):math.min(end,len)}};dart.setSignature(ListWrapper,{names:['clone','createFixedSize','createGrowableSize','get','set','contains','map','filter','indexOf','lastIndexOf','find','any','forEach','reduce','first','last','reversed','concat','insert','removeAt','removeAll','removeLast','remove','clear','join','isEmpty','fill','equals','slice','splice','sort','toJSON','_startOffset','_endOffset'],statics:()=>({_endOffset:[core.int,[core.List,core.int]],_startOffset:[core.int,[core.List,core.int]],any:[core.bool,[core.List,dart.functionType(core.bool,[dart.dynamic])]],clear:[dart.void,[core.List]],clone:[core.List,[core.Iterable]],concat:[core.List,[core.List,core.List]],contains:[core.bool,[core.List,dart.dynamic]],createFixedSize:[core.List,[core.int]],createGrowableSize:[core.List,[core.int]],equals:[core.bool,[core.List,core.List]],fill:[dart.void,[core.List,dart.dynamic],[core.int,core.int]],filter:[core.List,[core.List,dart.functionType(core.bool,[dart.dynamic])]],find:[dart.dynamic,[core.List,dart.functionType(core.bool,[dart.dynamic])]],first:[dart.dynamic,[core.List]],forEach:[dart.void,[core.Iterable,dart.functionType(dart.dynamic,[dart.dynamic])]],get:[dart.dynamic,[core.List,core.int]],indexOf:[core.int,[core.List,dart.dynamic],[core.int]],insert:[dart.void,[core.List,core.int,dart.dynamic]],isEmpty:[core.bool,[core.Iterable]],join:[core.String,[core.List,core.String]],last:[dart.dynamic,[core.List]],lastIndexOf:[core.int,[core.List,dart.dynamic],[core.int]],map:[core.List,[dart.dynamic,dart.functionType(dart.dynamic,[dart.dynamic])]],reduce:[dart.dynamic,[core.List,dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]),dart.dynamic]],remove:[core.bool,[core.List,dart.dynamic]],removeAll:[dart.void,[core.List,core.List]],removeAt:[dart.dynamic,[core.List,core.int]],removeLast:[dart.dynamic,[core.List]],reversed:[core.List,[core.List]],set:[dart.void,[core.List,core.int,dart.dynamic]],slice:[core.List,[core.List],[core.int,core.int]],sort:[dart.void,[core.List],[dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic])]],splice:[core.List,[core.List,core.int,core.int]],toJSON:[core.String,[core.List]]})});function isListLikeIterable(obj){return dart.is(obj,core.Iterable)}dart.fn(isListLikeIterable,core.bool,[dart.dynamic]);function iterableToList(ii){return ii[dartx.toList]()}dart.fn(iterableToList,core.List,[core.Iterable]);function iterateListLike(iter,fn){dart.assert(dart.is(iter,core.Iterable));for(let item of dart.as(iter,core.Iterable)){dart.dcall(fn,item)}}dart.fn(iterateListLike,dart.void,[dart.dynamic,dart.functionType(dart.dynamic,[dart.dynamic])]);class SetWrapper extends core.Object{static createFromList(l){return core.Set.from(l)}static has(s,key){return s.contains(key)}};dart.setSignature(SetWrapper,{names:['createFromList','has'],statics:()=>({createFromList:[core.Set,[core.List]],has:[core.bool,[core.Set,dart.dynamic]]})});let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(core.int,[dart.dynamic,dart.dynamic]));exports.MapIterator=MapIterator;exports.IterableMap=IterableMap;exports.MapWrapper=MapWrapper;exports.StringMapWrapper=StringMapWrapper;exports.Predicate$=Predicate$;exports.Predicate=Predicate;exports.ListWrapper=ListWrapper;exports.isListLikeIterable=isListLikeIterable;exports.iterableToList=iterableToList;exports.iterateListLike=iterateListLike;exports.SetWrapper=SetWrapper});dart_library.library('angular2/src/facade/lang',null,["dart_runtime/dart",'dart/core','dart/math','dart/async','dart/convert'],[],function(exports,dart,core,math,async,convert){'use strict';let dartx=dart.dartx;class Math extends core.Object{static floor(n){return n[dartx.floor]()}static random(){return Math._random.nextDouble()}};dart.setSignature(Math,{names:['floor','random'],statics:()=>({floor:[core.int,[core.num]],random:[core.double,[]]})});dart.defineLazyProperties(Math,{get _random(){return math.Random.new()}});function ENUM_INDEX(value){return dart.as(dart.dload(value,'index'),core.int)}dart.fn(ENUM_INDEX,core.int,[dart.dynamic]);class CONST extends core.Object{CONST(){}};dart.setSignature(CONST,{constructors:()=>({CONST:[CONST,[]]})});class ABSTRACT extends core.Object{ABSTRACT(){}};dart.setSignature(ABSTRACT,{constructors:()=>({ABSTRACT:[ABSTRACT,[]]})});class IMPLEMENTS extends core.Object{IMPLEMENTS(interfaceClass){this.interfaceClass=interfaceClass}};dart.setSignature(IMPLEMENTS,{constructors:()=>({IMPLEMENTS:[IMPLEMENTS,[dart.dynamic]]})});function isPresent(obj){return obj!=null}dart.fn(isPresent,core.bool,[dart.dynamic]);function isBlank(obj){return obj==null}dart.fn(isBlank,core.bool,[dart.dynamic]);function isString(obj){return typeof obj=='string'}dart.fn(isString,core.bool,[dart.dynamic]);function isFunction(obj){return dart.is(obj,core.Function)}dart.fn(isFunction,core.bool,[dart.dynamic]);function isType(obj){return dart.is(obj,core.Type)}dart.fn(isType,core.bool,[dart.dynamic]);function isStringMap(obj){return dart.is(obj,core.Map)}dart.fn(isStringMap,core.bool,[dart.dynamic]);function isArray(obj){return dart.is(obj,core.List)}dart.fn(isArray,core.bool,[dart.dynamic]);function isPromise(obj){return dart.is(obj,async.Future)}dart.fn(isPromise,core.bool,[dart.dynamic]);function stringify(obj){return dart.toString(obj)}dart.fn(stringify,core.String,[dart.dynamic]);class StringWrapper extends core.Object{static fromCharCode(code){return core.String.fromCharCode(code)}static charCodeAt(s,index){return s[dartx.codeUnitAt](index)}static split(s,regExp){let parts=dart.list([],core.String);let lastEnd=0;regExp.allMatches(s)[dartx.forEach](dart.fn(match=>{parts[dartx.add](s[dartx.substring](lastEnd,dart.as(dart.dload(match,'start'),core.int)));lastEnd=dart.as(dart.dload(match,'end'),core.int);for(let i=0;dart.notNull(i)<dart.notNull(dart.as(dart.dload(match,'groupCount'),core.num));i=dart.notNull(i)+1){parts[dartx.add](dart.as(dart.dsend(match,'group',dart.notNull(i)+1),core.String))}}));parts[dartx.add](s[dartx.substring](lastEnd));return parts}static equals(s,s2){return s==s2}static replace(s,from,replace){return s[dartx.replaceFirst](from,replace)}static replaceAll(s,from,replace){return s[dartx.replaceAll](from,replace)}static toUpperCase(s){return s[dartx.toUpperCase]()}static toLowerCase(s){return s[dartx.toLowerCase]()}static startsWith(s,start){return s[dartx.startsWith](start)}static substring(s,start,end){if(end===void 0)end=null;return s[dartx.substring](start,end)}static replaceAllMapped(s,from,cb){return s[dartx.replaceAllMapped](from,dart.as(cb,__CastType0))}static contains(s,substr){return s[dartx.contains](substr)}};dart.setSignature(StringWrapper,{names:['fromCharCode','charCodeAt','split','equals','replace','replaceAll','toUpperCase','toLowerCase','startsWith','substring','replaceAllMapped','contains'],statics:()=>({charCodeAt:[core.int,[core.String,core.int]],contains:[core.bool,[core.String,core.String]],equals:[core.bool,[core.String,core.String]],fromCharCode:[core.String,[core.int]],replace:[core.String,[core.String,core.Pattern,core.String]],replaceAll:[core.String,[core.String,core.RegExp,core.String]],replaceAllMapped:[core.String,[core.String,core.RegExp,core.Function]],split:[core.List$(core.String),[core.String,core.RegExp]],startsWith:[dart.dynamic,[core.String,core.String]],substring:[core.String,[core.String,core.int],[core.int]],toLowerCase:[core.String,[core.String]],toUpperCase:[core.String,[core.String]]})});let _parts=Symbol('_parts');class StringJoiner extends core.Object{StringJoiner(){this[_parts]=dart.list([],core.String)}add(part){this[_parts][dartx.add](part)}toString(){return this[_parts][dartx.join]("")}};dart.setSignature(StringJoiner,{methods:()=>({add:[dart.void,[core.String]]})});class NumberWrapper extends core.Object{static toFixed(n,fractionDigits){return n[dartx.toStringAsFixed](fractionDigits)}static equal(a,b){return a==b}static parseIntAutoRadix(text){return core.int.parse(text)}static parseInt(text,radix){return core.int.parse(text,{radix:radix})}static parseFloat(text){return core.double.parse(text)}static get NaN(){return core.double.NAN}static isNaN(value){return value[dartx.isNaN]}static isInteger(value){return typeof value=='number'}};dart.setSignature(NumberWrapper,{names:['toFixed','equal','parseIntAutoRadix','parseInt','parseFloat','isNaN','isInteger'],statics:()=>({equal:[core.bool,[core.num,core.num]],isInteger:[core.bool,[dart.dynamic]],isNaN:[core.bool,[core.num]],parseFloat:[core.double,[core.String]],parseInt:[core.int,[core.String,core.int]],parseIntAutoRadix:[core.int,[core.String]],toFixed:[core.String,[core.num,core.int]]})});class RegExpWrapper extends core.Object{static create(regExpStr,flags){if(flags===void 0)flags='';let multiLine=flags[dartx.contains]('m');let caseSensitive= !dart.notNull(flags[dartx.contains]('i'));return core.RegExp.new(dart.as(regExpStr,core.String),{caseSensitive:caseSensitive,multiLine:multiLine})}static firstMatch(regExp,input){return regExp.firstMatch(input)}static test(regExp,input){return regExp.hasMatch(input)}static matcher(regExp,input){return regExp.allMatches(input)[dartx.iterator]}};dart.setSignature(RegExpWrapper,{names:['create','firstMatch','test','matcher'],statics:()=>({create:[core.RegExp,[dart.dynamic],[core.String]],firstMatch:[core.Match,[core.RegExp,core.String]],matcher:[core.Iterator$(core.Match),[core.RegExp,core.String]],test:[core.bool,[core.RegExp,core.String]]})});class RegExpMatcherWrapper extends core.Object{static next(matcher){if(dart.notNull(matcher.moveNext())){return new _JSLikeMatch(matcher.current)}return null}};dart.setSignature(RegExpMatcherWrapper,{names:['next'],statics:()=>({next:[_JSLikeMatch,[core.Iterator$(core.Match)]]})});let _m=Symbol('_m');class _JSLikeMatch extends core.Object{_JSLikeMatch(m){this[_m]=m}get(index){return this[_m].get(dart.as(index,core.int))}get index(){return this[_m].start}get length(){return dart.notNull(this[_m].groupCount)+1}};dart.setSignature(_JSLikeMatch,{constructors:()=>({_JSLikeMatch:[_JSLikeMatch,[core.Match]]}),methods:()=>({get:[core.String,[dart.dynamic]]})});class FunctionWrapper extends core.Object{static apply(fn,posArgs){return core.Function.apply(fn,dart.as(posArgs,core.List))}};dart.setSignature(FunctionWrapper,{names:['apply'],statics:()=>({apply:[dart.dynamic,[core.Function,dart.dynamic]]})});class BaseException extends core.Error{BaseException(message,originalException,originalStack){if(message===void 0)message=null;if(originalException===void 0)originalException=null;if(originalStack===void 0)originalStack=null;this.message=message;this.originalException=originalException;this.originalStack=originalStack;super.Error()}toString(){return this.message}};dart.setSignature(BaseException,{constructors:()=>({BaseException:[BaseException,[],[core.String,dart.dynamic,dart.dynamic]]})});let _NAN_KEY=dart.const(new core.Object());function looseIdentical(a,b){return typeof a=='string'&&typeof b=='string'?dart.equals(a,b):core.identical(a,b)}dart.fn(looseIdentical,core.bool,[dart.dynamic,dart.dynamic]);function getMapKey(value){if(!dart.is(value,core.num))return value;return dart.notNull(dart.as(dart.dload(value,'isNaN'),core.bool))?_NAN_KEY:value}dart.fn(getMapKey);function normalizeBlank(obj){return dart.notNull(isBlank(obj))?null:obj}dart.fn(normalizeBlank);function normalizeBool(obj){return dart.notNull(isBlank(obj))?false:obj}dart.fn(normalizeBool,core.bool,[core.bool]);function isJsObject(o){return false}dart.fn(isJsObject,core.bool,[dart.dynamic]);function assertionsEnabled(){try{dart.assert(false);return false}catch(e){return true}}dart.fn(assertionsEnabled,core.bool,[]);class Json extends core.Object{static parse(s){return convert.JSON.decode(s)}static stringify(data){let encoder=new convert.JsonEncoder.withIndent(" ");return encoder.convert(data)}};dart.setSignature(Json,{names:['parse','stringify'],statics:()=>({parse:[dart.dynamic,[core.String]],stringify:[core.String,[dart.dynamic]]})});class DateWrapper extends core.Object{static fromMillis(ms){return new core.DateTime.fromMillisecondsSinceEpoch(ms)}static toMillis(date){return date.millisecondsSinceEpoch}static now(){return new core.DateTime.now()}static toJson(date){return date.toUtc().toIso8601String()}};dart.setSignature(DateWrapper,{names:['fromMillis','toMillis','now','toJson'],statics:()=>({fromMillis:[core.DateTime,[core.int]],now:[core.DateTime,[]],toJson:[dart.dynamic,[core.DateTime]],toMillis:[core.int,[core.DateTime]]})});exports.global=null;let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(core.String,[core.Match]));exports.Math=Math;exports.ENUM_INDEX=ENUM_INDEX;exports.CONST=CONST;exports.ABSTRACT=ABSTRACT;exports.IMPLEMENTS=IMPLEMENTS;exports.isPresent=isPresent;exports.isBlank=isBlank;exports.isString=isString;exports.isFunction=isFunction;exports.isType=isType;exports.isStringMap=isStringMap;exports.isArray=isArray;exports.isPromise=isPromise;exports.stringify=stringify;exports.StringWrapper=StringWrapper;exports.StringJoiner=StringJoiner;exports.NumberWrapper=NumberWrapper;exports.RegExpWrapper=RegExpWrapper;exports.RegExpMatcherWrapper=RegExpMatcherWrapper;exports.FunctionWrapper=FunctionWrapper;exports.BaseException=BaseException;exports.looseIdentical=looseIdentical;exports.getMapKey=getMapKey;exports.normalizeBlank=normalizeBlank;exports.normalizeBool=normalizeBool;exports.isJsObject=isJsObject;exports.assertionsEnabled=assertionsEnabled;exports.Json=Json;exports.DateWrapper=DateWrapper});dart_library.library('angular2/src/facade/math',null,["dart_runtime/dart",'dart/core','dart/math'],[],function(exports,dart,core,math){'use strict';let dartx=dart.dartx;let NaN=core.double.NAN;class Math extends core.Object{static pow(x,exponent){return math.pow(x,exponent)}static max(a,b){return math.max(a,b)}static min(a,b){return math.min(a,b)}static floor(a){return a[dartx.floor]()}static ceil(a){return a[dartx.ceil]()}static sqrt(x){return math.sqrt(x)}};dart.setSignature(Math,{names:['pow','max','min','floor','ceil','sqrt'],statics:()=>({ceil:[core.num,[core.num]],floor:[core.num,[core.num]],max:[core.num,[core.num,core.num]],min:[core.num,[core.num,core.num]],pow:[core.num,[core.num,core.num]],sqrt:[core.num,[core.num]]})});exports.NaN=NaN;exports.Math=Math});dart_library.library('angular2/src/forms/directives/checkbox_value_accessor',null,["dart_runtime/dart",'dart/core','angular2/src/forms/directives/shared','angular2/src/facade/lang','angular2/src/forms/directives/control_value_accessor','angular2/src/forms/directives/ng_control','angular2/src/render/api','angular2/src/core/compiler/element_ref','angular2/src/core/annotations_impl/annotations'],[],function(exports,dart,core,shared,lang,control_value_accessor,ng_control,api,element_ref,annotations){'use strict';let dartx=dart.dartx;class CheckboxControlValueAccessor extends core.Object{CheckboxControlValueAccessor(cd,renderer,elementRef){this.onChange=dart.fn(_=>{});this.onTouched=dart.fn(()=>{});this.cd=cd;this.renderer=renderer;this.elementRef=elementRef;this.checked=null;this.cd.valueAccessor=this}writeValue(value){this.checked=dart.as(value,core.bool);shared.setProperty(this.renderer,this.elementRef,"checked",value)}get ngClassUntouched(){return dart.notNull(lang.isPresent(this.cd.control))?this.cd.control.untouched:false}get ngClassTouched(){return dart.notNull(lang.isPresent(this.cd.control))?this.cd.control.touched:false}get ngClassPristine(){return dart.notNull(lang.isPresent(this.cd.control))?this.cd.control.pristine:false}get ngClassDirty(){return dart.notNull(lang.isPresent(this.cd.control))?this.cd.control.dirty:false}get ngClassValid(){return dart.notNull(lang.isPresent(this.cd.control))?this.cd.control.valid:false}get ngClassInvalid(){return dart.notNull(lang.isPresent(this.cd.control))? !dart.notNull(this.cd.control.valid):false}registerOnChange(fn){this.onChange=dart.as(fn,__CastType0)}registerOnTouched(fn){this.onTouched=dart.as(fn,__CastType2)}};CheckboxControlValueAccessor[dart.implements]=()=>[control_value_accessor.ControlValueAccessor];dart.setSignature(CheckboxControlValueAccessor,{constructors:()=>({CheckboxControlValueAccessor:[CheckboxControlValueAccessor,[ng_control.NgControl,api.Renderer,element_ref.ElementRef]]}),methods:()=>({registerOnChange:[dart.void,[dart.dynamic]],registerOnTouched:[dart.void,[dart.dynamic]],writeValue:[dart.void,[dart.dynamic]]})});CheckboxControlValueAccessor[dart.metadata]=()=>[dart.const(new annotations.Directive({host:dart.const(dart.map({"(blur)":"onTouched()","(change)":"onChange($event.target.checked)","[checked]":"checked","[class.ng-dirty]":"ngClassDirty","[class.ng-invalid]":"ngClassInvalid","[class.ng-pristine]":"ngClassPristine","[class.ng-touched]":"ngClassTouched","[class.ng-untouched]":"ngClassUntouched","[class.ng-valid]":"ngClassValid"})),selector:"input[type=checkbox][ng-control],input[type=checkbox][ng-form-control],input[type=checkbox][ng-model]"}))];let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(dart.dynamic,[dart.dynamic]));let __CastType2=dart.typedef('__CastType2',()=>dart.functionType(dart.dynamic,[]));exports.CheckboxControlValueAccessor=CheckboxControlValueAccessor});dart_library.library('angular2/src/forms/directives/control_container',null,["dart_runtime/dart",'dart/core'],[],function(exports,dart,core){'use strict';let dartx=dart.dartx;class ControlContainer extends core.Object{ControlContainer(){this.name=null}get formDirective(){return null}get path(){return null}};exports.ControlContainer=ControlContainer});dart_library.library('angular2/src/forms/directives/control_value_accessor',null,["dart_runtime/dart",'dart/core'],[],function(exports,dart,core){'use strict';let dartx=dart.dartx;class ControlValueAccessor extends core.Object{};exports.ControlValueAccessor=ControlValueAccessor});dart_library.library('angular2/src/forms/directives/default_value_accessor',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/forms/directives/shared','angular2/src/forms/directives/control_value_accessor','angular2/src/forms/directives/ng_control','angular2/src/render/api','angular2/src/core/compiler/element_ref','angular2/src/core/annotations_impl/annotations'],[],function(exports,dart,core,lang,shared,control_value_accessor,ng_control,api,element_ref,annotations){'use strict';let dartx=dart.dartx;class DefaultValueAccessor extends core.Object{DefaultValueAccessor(cd,renderer,elementRef){this.onChange=dart.fn(_=>{});this.onTouched=dart.fn(()=>{});this.cd=cd;this.renderer=renderer;this.elementRef=elementRef;this.value=null;this.cd.valueAccessor=this}writeValue(value){this.value=dart.notNull(lang.isBlank(value))?"":dart.as(value,core.String);shared.setProperty(this.renderer,this.elementRef,"value",this.value)}get ngClassUntouched(){return dart.notNull(lang.isPresent(this.cd.control))?this.cd.control.untouched:false}get ngClassTouched(){return dart.notNull(lang.isPresent(this.cd.control))?this.cd.control.touched:false}get ngClassPristine(){return dart.notNull(lang.isPresent(this.cd.control))?this.cd.control.pristine:false}get ngClassDirty(){return dart.notNull(lang.isPresent(this.cd.control))?this.cd.control.dirty:false}get ngClassValid(){return dart.notNull(lang.isPresent(this.cd.control))?this.cd.control.valid:false}get ngClassInvalid(){return dart.notNull(lang.isPresent(this.cd.control))? !dart.notNull(this.cd.control.valid):false}registerOnChange(fn){this.onChange=dart.as(fn,__CastType0)}registerOnTouched(fn){this.onTouched=dart.as(fn,__CastType2)}};DefaultValueAccessor[dart.implements]=()=>[control_value_accessor.ControlValueAccessor];dart.setSignature(DefaultValueAccessor,{constructors:()=>({DefaultValueAccessor:[DefaultValueAccessor,[ng_control.NgControl,api.Renderer,element_ref.ElementRef]]}),methods:()=>({registerOnChange:[dart.void,[dart.dynamic]],registerOnTouched:[dart.void,[dart.dynamic]],writeValue:[dart.void,[dart.dynamic]]})});DefaultValueAccessor[dart.metadata]=()=>[dart.const(new annotations.Directive({host:dart.const(dart.map({"(blur)":"onTouched()","(change)":"onChange($event.target.value)","(input)":"onChange($event.target.value)","[class.ng-dirty]":"ngClassDirty","[class.ng-invalid]":"ngClassInvalid","[class.ng-pristine]":"ngClassPristine","[class.ng-touched]":"ngClassTouched","[class.ng-untouched]":"ngClassUntouched","[class.ng-valid]":"ngClassValid","[value]":"value"})),selector:"input:not([type=checkbox])[ng-control],textarea[ng-control],input:not([type=checkbox])[ng-form-control],textarea[ng-form-control],input:not([type=checkbox])[ng-model],textarea[ng-model]"}))];let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(dart.dynamic,[dart.dynamic]));let __CastType2=dart.typedef('__CastType2',()=>dart.functionType(dart.dynamic,[]));exports.DefaultValueAccessor=DefaultValueAccessor});dart_library.library('angular2/src/forms/directives/form_interface',null,["dart_runtime/dart",'dart/core'],[],function(exports,dart,core){'use strict';let dartx=dart.dartx;class Form extends core.Object{};exports.Form=Form});dart_library.library('angular2/src/forms/directives/ng_control',null,["dart_runtime/dart",'dart/core'],[],function(exports,dart,core){'use strict';let dartx=dart.dartx;class NgControl extends core.Object{NgControl(){this.name=null;this.valueAccessor=null}get validator(){return null}get path(){return null}get control(){return null}viewToModelUpdate(newValue){}};dart.setSignature(NgControl,{methods:()=>({viewToModelUpdate:[dart.void,[dart.dynamic]]})});exports.NgControl=NgControl});dart_library.library('angular2/src/forms/directives/ng_control_group',null,["dart_runtime/dart",'angular2/src/di/binding','angular2/src/di/annotations_impl','angular2/src/core/annotations_impl/annotations'],['angular2/src/forms/directives/control_container','angular2/src/forms/directives/shared'],function(exports,dart,binding,annotations_impl,annotations,control_container,shared){'use strict';let dartx=dart.dartx;let _parent$=Symbol('_parent');dart.defineLazyClass(exports,{get NgControlGroup(){class NgControlGroup extends control_container.ControlContainer{NgControlGroup(_parent){this[_parent$]=null;super.ControlContainer();;this[_parent$]=_parent}onInit(){dart.dsend(this.formDirective,'addControlGroup',this)}onDestroy(){dart.dsend(this.formDirective,'removeControlGroup',this)}get path(){return shared.controlPath(this.name,this[_parent$])}get formDirective(){return this[_parent$].formDirective}}dart.setSignature(NgControlGroup,{constructors:()=>({NgControlGroup:[exports.NgControlGroup,[[control_container.ControlContainer,dart.const(new annotations_impl.Ancestor())]]]}),methods:()=>({onDestroy:[dart.dynamic,[]],onInit:[dart.dynamic,[]]})});NgControlGroup[dart.metadata]=()=>[dart.const(new annotations.Directive({exportAs:"form",hostInjector:dart.const([exports.controlGroupBinding]),lifecycle:dart.const([annotations.onInit,annotations.onDestroy]),properties:dart.const(["name: ng-control-group"]),selector:"[ng-control-group]"}))];return NgControlGroup}});dart.defineLazyProperties(exports,{get controlGroupBinding(){return dart.const(new binding.Binding(control_container.ControlContainer,{toAlias:exports.NgControlGroup}))},set controlGroupBinding(_){}})});dart_library.library('angular2/src/forms/directives/ng_control_name',null,["dart_runtime/dart",'angular2/src/di/binding','angular2/src/forms/directives/ng_control','angular2/src/facade/async','angular2/src/facade/collection','angular2/src/forms/directives/shared','angular2/src/forms/model','dart/core','angular2/src/forms/directives/control_container','angular2/src/di/annotations_impl','angular2/src/core/compiler/query_list','angular2/src/forms/directives/validators','angular2/src/core/annotations_impl/di','angular2/src/core/annotations_impl/annotations'],[],function(exports,dart,binding,ng_control,async,collection,shared,model,core,control_container,annotations_impl,query_list,validators,di,annotations){'use strict';let dartx=dart.dartx;let _parent=Symbol('_parent');let _added=Symbol('_added');class NgControlName extends ng_control.NgControl{NgControlName(parent,ngValidators){this.update=new async.EventEmitter();this[_parent]=null;this.model=null;this.ngValidators=null;this[_added]=false;super.NgControl();;this[_parent]=parent;this.ngValidators=ngValidators}onChange(c){if(!dart.notNull(this[_added])){dart.dsend(this.formDirective,'addControl',this);this[_added]=true}if(dart.notNull(collection.StringMapWrapper.contains(c,"model"))){dart.dsend(this.formDirective,'updateModel',this,this.model)}}onDestroy(){dart.dsend(this.formDirective,'removeControl',this)}viewToModelUpdate(newValue){async.ObservableWrapper.callNext(this.update,newValue)}get path(){return shared.controlPath(this.name,this[_parent])}get formDirective(){return this[_parent].formDirective}get control(){return dart.as(dart.dsend(this.formDirective,'getControl',this),model.Control)}get validator(){return shared.composeNgValidator(this.ngValidators)}};dart.setSignature(NgControlName,{constructors:()=>({NgControlName:[NgControlName,[[control_container.ControlContainer,dart.const(new annotations_impl.Ancestor())],[query_list.QueryList$(validators.NgValidator),dart.const(new di.Query(validators.NgValidator))]]]}),methods:()=>({onChange:[dart.dynamic,[core.Map$(core.String,dart.dynamic)]],onDestroy:[dart.dynamic,[]]})});NgControlName[dart.metadata]=()=>[dart.const(new annotations.Directive({events:dart.const(["update: ngModel"]),exportAs:"form",hostInjector:dart.const([controlNameBinding]),lifecycle:dart.const([annotations.onDestroy,annotations.onChange]),properties:dart.const(["name: ngControl","model: ngModel"]),selector:"[ng-control]"}))];let controlNameBinding=dart.const(new binding.Binding(ng_control.NgControl,{toAlias:NgControlName}));exports.NgControlName=NgControlName;exports.controlNameBinding=controlNameBinding});dart_library.library('angular2/src/forms/directives/ng_form',null,["dart_runtime/dart",'angular2/src/di/binding','angular2/src/forms/directives/control_container','angular2/src/facade/async','angular2/src/forms/model','dart/core','angular2/src/forms/directives/shared','angular2/src/facade/lang','angular2/src/facade/collection','angular2/src/forms/directives/form_interface','angular2/src/forms/directives/ng_control','angular2/src/forms/directives/ng_control_group','angular2/src/core/annotations_impl/annotations'],[],function(exports,dart,binding,control_container,async,model,core,shared,lang,collection,form_interface,ng_control,ng_control_group,annotations){'use strict';let dartx=dart.dartx;let _later=Symbol('_later');let _findContainer=Symbol('_findContainer');class NgForm extends control_container.ControlContainer{NgForm(){this.ngSubmit=new async.EventEmitter();this.form=null;super.ControlContainer();;this.form=new model.ControlGroup(dart.map())}get formDirective(){return this}get path(){return dart.list([],core.String)}get controls(){return this.form.controls}get value(){return this.form.value}get errors(){return this.form.errors}addControl(dir){this[_later](dart.fn(_=>{let container=this[_findContainer](dir.path);let c=new model.Control("");shared.setUpControl(c,dir);container.addControl(dir.name,c);c.updateValidity()}))}getControl(dir){return dart.as(this.form.find(dir.path),model.Control)}removeControl(dir){this[_later](dart.fn(_=>{let container=this[_findContainer](dir.path);if(dart.notNull(lang.isPresent(container))){container.removeControl(dir.name);container.updateValidity()}}))}addControlGroup(dir){this[_later](dart.fn(_=>{let container=this[_findContainer](dir.path);let c=new model.ControlGroup(dart.map());container.addControl(dir.name,c);c.updateValidity()}))}removeControlGroup(dir){this[_later](dart.fn(_=>{let container=this[_findContainer](dir.path);if(dart.notNull(lang.isPresent(container))){container.removeControl(dir.name);container.updateValidity()}}))}updateModel(dir,value){this[_later](dart.fn(_=>{let c=dart.as(this.form.find(dir.path),model.Control);c.updateValue(value)}))}onSubmit(){async.ObservableWrapper.callNext(this.ngSubmit,null);return false}[_findContainer](path){collection.ListWrapper.removeLast(path);return dart.notNull(collection.ListWrapper.isEmpty(path))?this.form:dart.as(this.form.find(path),model.ControlGroup)}[_later](fn){let c=async.PromiseWrapper.completer();async.PromiseWrapper.then(c.promise,dart.as(fn,__CastType0),dart.fn(_=>{}));c.resolve(null)}};NgForm[dart.implements]=()=>[form_interface.Form];dart.setSignature(NgForm,{constructors:()=>({NgForm:[NgForm,[]]}),methods:()=>({[_later]:[dart.dynamic,[dart.dynamic]],[_findContainer]:[model.ControlGroup,[core.List$(core.String)]],addControl:[dart.void,[ng_control.NgControl]],addControlGroup:[dart.void,[ng_control_group.NgControlGroup]],getControl:[model.Control,[ng_control.NgControl]],onSubmit:[core.bool,[]],removeControl:[dart.void,[ng_control.NgControl]],removeControlGroup:[dart.void,[ng_control_group.NgControlGroup]],updateModel:[dart.void,[ng_control.NgControl,dart.dynamic]]})});NgForm[dart.metadata]=()=>[dart.const(new annotations.Directive({events:dart.const(["ngSubmit"]),exportAs:"form",host:dart.const(dart.map({"(submit)":"onSubmit()"})),hostInjector:dart.const([formDirectiveBinding]),selector:"form:not([ng-no-form]):not([ng-form-model]),ng-form,[ng-form]"}))];let formDirectiveBinding=dart.const(new binding.Binding(control_container.ControlContainer,{toAlias:NgForm}));let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(dart.dynamic,[dart.dynamic]));exports.NgForm=NgForm;exports.formDirectiveBinding=formDirectiveBinding});dart_library.library('angular2/src/forms/directives/ng_form_control',null,["dart_runtime/dart",'angular2/src/di/binding','angular2/src/forms/directives/ng_control','angular2/src/facade/async','angular2/src/forms/directives/shared','angular2/src/facade/collection','dart/core','angular2/src/core/compiler/query_list','angular2/src/forms/directives/validators','angular2/src/core/annotations_impl/di','angular2/src/core/annotations_impl/annotations'],[],function(exports,dart,binding,ng_control,async,shared,collection,core,query_list,validators,di,annotations){'use strict';let dartx=dart.dartx;let _added=Symbol('_added');class NgFormControl extends ng_control.NgControl{NgFormControl(ngValidators){this.update=new async.EventEmitter();this.form=null;this[_added]=false;this.model=null;this.ngValidators=null;super.NgControl();;this.ngValidators=ngValidators}onChange(c){if(!dart.notNull(this[_added])){shared.setUpControl(this.form,this);this.form.updateValidity();this[_added]=true}if(dart.notNull(collection.StringMapWrapper.contains(dart.as(c,core.Map),"model"))){this.form.updateValue(this.model)}}get path(){return dart.list([],core.String)}get control(){return this.form}get validator(){return shared.composeNgValidator(this.ngValidators)}viewToModelUpdate(newValue){async.ObservableWrapper.callNext(this.update,newValue)}};dart.setSignature(NgFormControl,{constructors:()=>({NgFormControl:[NgFormControl,[[query_list.QueryList$(validators.NgValidator),dart.const(new di.Query(validators.NgValidator))]]]}),methods:()=>({onChange:[dart.dynamic,[dart.dynamic]]})});NgFormControl[dart.metadata]=()=>[dart.const(new annotations.Directive({events:dart.const(["update: ngModel"]),exportAs:"form",hostInjector:dart.const([formControlBinding]),lifecycle:dart.const([annotations.onChange]),properties:dart.const(["form: ngFormControl","model: ngModel"]),selector:"[ng-form-control]"}))];let formControlBinding=dart.const(new binding.Binding(ng_control.NgControl,{toAlias:NgFormControl}));exports.NgFormControl=NgFormControl;exports.formControlBinding=formControlBinding});dart_library.library('angular2/src/forms/directives/ng_form_model',null,["dart_runtime/dart",'angular2/src/di/binding','angular2/src/forms/directives/control_container','angular2/src/forms/directives/ng_control','angular2/src/facade/async','dart/core','angular2/src/forms/directives/shared','angular2/src/forms/model','angular2/src/facade/collection','angular2/src/forms/directives/form_interface','angular2/src/forms/directives/ng_control_group','angular2/src/core/annotations_impl/annotations'],[],function(exports,dart,binding,control_container,ng_control,async,core,shared,model,collection,form_interface,ng_control_group,annotations){'use strict';let dartx=dart.dartx;let _updateDomValue=Symbol('_updateDomValue');class NgFormModel extends control_container.ControlContainer{NgFormModel(){this.directives=dart.list([],ng_control.NgControl);this.ngSubmit=new async.EventEmitter();this.form=null;super.ControlContainer()}onChange(_){this[_updateDomValue]()}get formDirective(){return this}get path(){return dart.list([],core.String)}addControl(dir){let c=this.form.find(dir.path);shared.setUpControl(dart.as(c,model.Control),dir);dart.dsend(c,'updateValidity');this.directives[dartx.add](dir)}getControl(dir){return dart.as(this.form.find(dir.path),model.Control)}removeControl(dir){collection.ListWrapper.remove(this.directives,dir)}addControlGroup(dir){}removeControlGroup(dir){}updateModel(dir,value){let c=dart.as(this.form.find(dir.path),model.Control);c.updateValue(value)}onSubmit(){async.ObservableWrapper.callNext(this.ngSubmit,null);return false}[_updateDomValue](){collection.ListWrapper.forEach(this.directives,dart.fn(dir=>{let c=this.form.find(dart.dload(dir,'path'));dart.dsend(dart.dload(dir,'valueAccessor'),'writeValue',dart.dload(c,'value'))}))}};NgFormModel[dart.implements]=()=>[form_interface.Form];dart.setSignature(NgFormModel,{methods:()=>({[_updateDomValue]:[dart.dynamic,[]],addControl:[dart.void,[ng_control.NgControl]],addControlGroup:[dart.void,[ng_control_group.NgControlGroup]],getControl:[model.Control,[ng_control.NgControl]],onChange:[dart.dynamic,[dart.dynamic]],onSubmit:[core.bool,[]],removeControl:[dart.void,[ng_control.NgControl]],removeControlGroup:[dart.void,[ng_control_group.NgControlGroup]],updateModel:[dart.void,[ng_control.NgControl,dart.dynamic]]})});NgFormModel[dart.metadata]=()=>[dart.const(new annotations.Directive({events:dart.const(["ngSubmit"]),exportAs:"form",host:dart.const(dart.map({"(submit)":"onSubmit()"})),hostInjector:dart.const([formDirectiveBinding]),lifecycle:dart.const([annotations.onChange]),properties:dart.const(["form: ng-form-model"]),selector:"[ng-form-model]"}))];let formDirectiveBinding=dart.const(new binding.Binding(control_container.ControlContainer,{toAlias:NgFormModel}));exports.NgFormModel=NgFormModel;exports.formDirectiveBinding=formDirectiveBinding});dart_library.library('angular2/src/forms/directives/ng_model',null,["dart_runtime/dart",'angular2/src/di/binding','angular2/src/forms/directives/ng_control','angular2/src/forms/model','angular2/src/facade/async','angular2/src/forms/directives/shared','angular2/src/facade/collection','dart/core','angular2/src/core/compiler/query_list','angular2/src/forms/directives/validators','angular2/src/core/annotations_impl/di','angular2/src/core/annotations_impl/annotations'],[],function(exports,dart,binding,ng_control,model,async,shared,collection,core,query_list,validators,di,annotations){'use strict';let dartx=dart.dartx;let _control=Symbol('_control');let _added=Symbol('_added');class NgModel extends ng_control.NgControl{NgModel(ngValidators){this[_control]=new model.Control("");this.update=new async.EventEmitter();this[_added]=false;this.model=null;this.ngValidators=null;super.NgControl();;this.ngValidators=ngValidators}onChange(c){if(!dart.notNull(this[_added])){shared.setUpControl(this[_control],this);this[_control].updateValidity();this[_added]=true}if(dart.notNull(collection.StringMapWrapper.contains(dart.as(c,core.Map),"model"))){this[_control].updateValue(this.model)}}get control(){return this[_control]}get path(){return dart.list([],core.String)}get validator(){return shared.composeNgValidator(this.ngValidators)}viewToModelUpdate(newValue){async.ObservableWrapper.callNext(this.update,newValue)}};dart.setSignature(NgModel,{constructors:()=>({NgModel:[NgModel,[[query_list.QueryList$(validators.NgValidator),dart.const(new di.Query(validators.NgValidator))]]]}),methods:()=>({onChange:[dart.dynamic,[dart.dynamic]]})});NgModel[dart.metadata]=()=>[dart.const(new annotations.Directive({events:dart.const(["update: ngModel"]),exportAs:"form",hostInjector:dart.const([formControlBinding]),lifecycle:dart.const([annotations.onChange]),properties:dart.const(["model: ngModel"]),selector:"[ng-model]:not([ng-control]):not([ng-form-control])"}))];let formControlBinding=dart.const(new binding.Binding(ng_control.NgControl,{toAlias:NgModel}));exports.NgModel=NgModel;exports.formControlBinding=formControlBinding});dart_library.library('angular2/src/forms/directives/select_control_value_accessor',null,["dart_runtime/dart",'dart/core','angular2/src/core/annotations_impl/annotations','angular2/src/forms/directives/shared','angular2/src/facade/lang','angular2/src/forms/directives/control_value_accessor','angular2/src/core/compiler/query_list','angular2/src/forms/directives/ng_control','angular2/src/render/api','angular2/src/core/compiler/element_ref','angular2/src/core/annotations_impl/di'],[],function(exports,dart,core,annotations,shared,lang,control_value_accessor,query_list,ng_control,api,element_ref,di){'use strict';let dartx=dart.dartx;class NgSelectOption extends core.Object{};NgSelectOption[dart.metadata]=()=>[dart.const(new annotations.Directive({selector:"option"}))];let _updateValueWhenListOfOptionsChanges=Symbol('_updateValueWhenListOfOptionsChanges');class SelectControlValueAccessor extends core.Object{SelectControlValueAccessor(cd,renderer,elementRef,query){this.onChange=dart.fn(_=>{});this.onTouched=dart.fn(()=>{});this.cd=cd;this.renderer=renderer;this.elementRef=elementRef;this.value="";this.cd.valueAccessor=this;this[_updateValueWhenListOfOptionsChanges](query)}writeValue(value){this.value=dart.as(value,core.String);shared.setProperty(this.renderer,this.elementRef,"value",value)}get ngClassUntouched(){return dart.notNull(lang.isPresent(this.cd.control))?this.cd.control.untouched:false}get ngClassTouched(){return dart.notNull(lang.isPresent(this.cd.control))?this.cd.control.touched:false}get ngClassPristine(){return dart.notNull(lang.isPresent(this.cd.control))?this.cd.control.pristine:false}get ngClassDirty(){return dart.notNull(lang.isPresent(this.cd.control))?this.cd.control.dirty:false}get ngClassValid(){return dart.notNull(lang.isPresent(this.cd.control))?this.cd.control.valid:false}get ngClassInvalid(){return dart.notNull(lang.isPresent(this.cd.control))? !dart.notNull(this.cd.control.valid):false}registerOnChange(fn){this.onChange=dart.as(fn,__CastType0)}registerOnTouched(fn){this.onTouched=dart.as(fn,__CastType2)}[_updateValueWhenListOfOptionsChanges](query){query.onChange(dart.fn(()=>this.writeValue(this.value),dart.void,[]))}};SelectControlValueAccessor[dart.implements]=()=>[control_value_accessor.ControlValueAccessor];dart.setSignature(SelectControlValueAccessor,{constructors:()=>({SelectControlValueAccessor:[SelectControlValueAccessor,[ng_control.NgControl,api.Renderer,element_ref.ElementRef,[query_list.QueryList$(NgSelectOption),dart.const(new di.Query(NgSelectOption,{descendants:true}))]]]}),methods:()=>({[_updateValueWhenListOfOptionsChanges]:[dart.dynamic,[query_list.QueryList$(NgSelectOption)]],registerOnChange:[dart.void,[dart.dynamic]],registerOnTouched:[dart.void,[dart.dynamic]],writeValue:[dart.void,[dart.dynamic]]})});SelectControlValueAccessor[dart.metadata]=()=>[dart.const(new annotations.Directive({host:dart.const(dart.map({"(blur)":"onTouched()","(change)":"onChange($event.target.value)","(input)":"onChange($event.target.value)","[class.ng-dirty]":"ngClassDirty","[class.ng-invalid]":"ngClassInvalid","[class.ng-pristine]":"ngClassPristine","[class.ng-touched]":"ngClassTouched","[class.ng-untouched]":"ngClassUntouched","[class.ng-valid]":"ngClassValid","[value]":"value"})),selector:"select[ng-control],select[ng-form-control],select[ng-model]"}))];let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(dart.dynamic,[dart.dynamic]));let __CastType2=dart.typedef('__CastType2',()=>dart.functionType(dart.dynamic,[]));exports.NgSelectOption=NgSelectOption;exports.SelectControlValueAccessor=SelectControlValueAccessor});dart_library.library('angular2/src/forms/directives/shared',null,["dart_runtime/dart",'angular2/src/facade/collection','dart/core','angular2/src/facade/lang','angular2/src/forms/validators','angular2/src/forms/model','angular2/src/forms/directives/ng_control','angular2/src/forms/directives/validators','angular2/src/core/compiler/query_list','angular2/src/render/api','angular2/src/core/compiler/element_ref'],['angular2/src/forms/directives/control_container'],function(exports,dart,collection,core,lang,validators,model,ng_control,validators$,query_list,api,element_ref,control_container){'use strict';let dartx=dart.dartx;function controlPath(name,parent){let p=collection.ListWrapper.clone(parent.path);p[dartx.add](name);return dart.as(p,core.List$(core.String))}dart.fn(controlPath,()=>dart.definiteFunctionType(core.List$(core.String),[core.String,control_container.ControlContainer]));function setUpControl(c,dir){if(dart.notNull(lang.isBlank(c)))_throwError(dir,"Cannot find control");if(dart.notNull(lang.isBlank(dir.valueAccessor)))_throwError(dir,"No value accessor for");c.validator=validators.Validators.compose(dart.list([c.validator,dir.validator],core.Function));dir.valueAccessor.writeValue(c.value);dir.valueAccessor.registerOnChange(dart.fn(newValue=>{dir.viewToModelUpdate(newValue);c.updateValue(newValue);c.markAsDirty()}));c.registerOnChange(dart.fn(newValue=>dir.valueAccessor.writeValue(newValue),dart.void,[dart.dynamic]));dir.valueAccessor.registerOnTouched(dart.fn(()=>c.markAsTouched(),dart.void,[]))}dart.fn(setUpControl,dart.dynamic,[model.Control,ng_control.NgControl]);function composeNgValidator(ngValidators){if(dart.notNull(lang.isBlank(ngValidators)))return validators.Validators.nullValidator;return validators.Validators.compose(dart.as(dart.as(collection.iterableToList(ngValidators),core.List$(validators$.NgValidator))[dartx.map](dart.fn(v=>dart.dload(v,'validator')))[dartx.toList](),core.List$(core.Function)))}dart.fn(composeNgValidator,core.Function,[query_list.QueryList$(validators$.NgValidator)]);function _throwError(dir,message){let path=collection.ListWrapper.join(dir.path," -> ");dart.throw(new lang.BaseException(`${message } '${path }'`))}dart.fn(_throwError,dart.void,[ng_control.NgControl,core.String]);function setProperty(renderer,elementRef,propName,propValue){renderer.setElementProperty(elementRef,propName,propValue)}dart.fn(setProperty,dart.dynamic,[api.Renderer,element_ref.ElementRef,core.String,dart.dynamic]);exports.controlPath=controlPath;exports.setUpControl=setUpControl;exports.composeNgValidator=composeNgValidator;exports.setProperty=setProperty});dart_library.library('angular2/src/forms/directives/validators',null,["dart_runtime/dart",'dart/core','angular2/src/di/binding','angular2/src/forms/validators','angular2/src/core/annotations_impl/annotations'],[],function(exports,dart,core,binding,validators,annotations){'use strict';let dartx=dart.dartx;class NgValidator extends core.Object{get validator(){dart.throw("Is not implemented")}};class NgRequiredValidator extends NgValidator{get validator(){return validators.Validators.required}};NgRequiredValidator[dart.metadata]=()=>[dart.const(new annotations.Directive({hostInjector:dart.const([requiredValidatorBinding]),selector:"[required][ng-control],[required][ng-form-control],[required][ng-model]"}))];let requiredValidatorBinding=dart.const(new binding.Binding(NgValidator,{toAlias:NgRequiredValidator}));exports.NgValidator=NgValidator;exports.NgRequiredValidator=NgRequiredValidator;exports.requiredValidatorBinding=requiredValidatorBinding});dart_library.library('angular2/src/forms/directives',null,["dart_runtime/dart",'angular2/src/forms/directives/ng_control_name','angular2/src/forms/directives/ng_control_group','angular2/src/forms/directives/ng_form_control','angular2/src/forms/directives/ng_model','angular2/src/forms/directives/ng_form_model','angular2/src/forms/directives/ng_form','angular2/src/forms/directives/select_control_value_accessor','angular2/src/forms/directives/default_value_accessor','angular2/src/forms/directives/checkbox_value_accessor','angular2/src/forms/directives/validators','dart/core'],[],function(exports,dart,ng_control_name,ng_control_group,ng_form_control,ng_model,ng_form_model,ng_form,select_control_value_accessor,default_value_accessor,checkbox_value_accessor,validators,core){'use strict';let dartx=dart.dartx;let formDirectives=dart.const(dart.list([ng_control_name.NgControlName,ng_control_group.NgControlGroup,ng_form_control.NgFormControl,ng_model.NgModel,ng_form_model.NgFormModel,ng_form.NgForm,select_control_value_accessor.NgSelectOption,default_value_accessor.DefaultValueAccessor,checkbox_value_accessor.CheckboxControlValueAccessor,select_control_value_accessor.SelectControlValueAccessor,validators.NgRequiredValidator],core.Type));exports.formDirectives=formDirectives});dart_library.library('angular2/src/forms/form_builder',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/facade/collection','angular2/src/forms/model'],[],function(exports,dart,core,lang,collection,model){'use strict';let dartx=dart.dartx;let _reduceControls=Symbol('_reduceControls');let _createControl=Symbol('_createControl');class FormBuilder extends core.Object{group(controlsConfig,extra){if(extra===void 0)extra=null;let controls=this[_reduceControls](controlsConfig);let optionals=dart.notNull(lang.isPresent(extra))?collection.StringMapWrapper.get(extra,"optionals"):null;let validator=dart.notNull(lang.isPresent(extra))?collection.StringMapWrapper.get(extra,"validator"):null;if(dart.notNull(lang.isPresent(validator))){return new model.ControlGroup(controls,dart.as(optionals,core.Map$(core.String,core.bool)),dart.as(validator,core.Function))}else{return new model.ControlGroup(controls,dart.as(optionals,core.Map$(core.String,core.bool)))}}control(value,validator){if(validator===void 0)validator=null;if(dart.notNull(lang.isPresent(validator))){return new model.Control(value,validator)}else{return new model.Control(value)}}array(controlsConfig,validator){if(validator===void 0)validator=null;let controls=collection.ListWrapper.map(controlsConfig,dart.fn(c=>this[_createControl](c),model.AbstractControl,[dart.dynamic]));if(dart.notNull(lang.isPresent(validator))){return new model.ControlArray(dart.as(controls,core.List$(model.AbstractControl)),validator)}else{return new model.ControlArray(dart.as(controls,core.List$(model.AbstractControl)))}}[_reduceControls](controlsConfig){let controls=dart.map();collection.StringMapWrapper.forEach(dart.as(controlsConfig,core.Map),dart.fn((controlConfig,controlName)=>{controls.set(controlName,this[_createControl](controlConfig))}));return dart.as(controls,core.Map$(core.String,model.AbstractControl))}[_createControl](controlConfig){if(dart.is(controlConfig,model.Control)||dart.is(controlConfig,model.ControlGroup)||dart.is(controlConfig,model.ControlArray)){return dart.as(controlConfig,model.AbstractControl)}else if(dart.notNull(lang.isArray(controlConfig))){let value=collection.ListWrapper.get(dart.as(controlConfig,core.List),0);let validator=dart.notNull(dart.as(dart.dsend(dart.dload(controlConfig,'length'),'>',1),core.bool))?dart.dindex(controlConfig,1):null;return this.control(value,dart.as(validator,core.Function))}else{return this.control(controlConfig)}}};dart.setSignature(FormBuilder,{methods:()=>({[_createControl]:[model.AbstractControl,[dart.dynamic]],[_reduceControls]:[core.Map$(core.String,model.AbstractControl),[dart.dynamic]],array:[model.ControlArray,[core.List],[core.Function]],control:[model.Control,[core.Object],[core.Function]],group:[model.ControlGroup,[core.Map$(core.String,dart.dynamic)],[core.Map$(core.String,dart.dynamic)]]})});exports.FormBuilder=FormBuilder});dart_library.library('angular2/src/forms/model',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/facade/collection','angular2/src/facade/async'],['angular2/src/forms/validators'],function(exports,dart,core,lang,collection,async,validators){'use strict';let dartx=dart.dartx;let VALID="VALID";let INVALID="INVALID";function isControl(c){return dart.is(c,AbstractControl)}dart.fn(isControl,core.bool,[core.Object]);function _find(c,path){if(dart.notNull(lang.isBlank(path)))return null;if(!dart.is(path,core.List)){path=lang.StringWrapper.split(dart.as(path,core.String),core.RegExp.new("/"))}if(dart.notNull(collection.ListWrapper.isEmpty(dart.as(path,core.Iterable))))return null;return collection.ListWrapper.reduce(dart.as(path,core.List),dart.fn((v,name)=>{if(dart.is(v,ControlGroup)){return dart.notNull(lang.isPresent(dart.dindex(dart.dload(v,'controls'),name)))?dart.dindex(dart.dload(v,'controls'),name):null}else if(dart.is(v,ControlArray)){let index=dart.as(name,core.num);return dart.notNull(lang.isPresent(dart.dsend(v,'at',index)))?dart.dsend(v,'at',index):null}else{return null}}),c)}dart.fn(_find,()=>dart.definiteFunctionType(dart.dynamic,[AbstractControl,dart.dynamic]));let _value=Symbol('_value');let _status=Symbol('_status');let _errors=Symbol('_errors');let _pristine=Symbol('_pristine');let _touched=Symbol('_touched');let _parent=Symbol('_parent');let _valueChanges=Symbol('_valueChanges');let _updateValue=Symbol('_updateValue');class AbstractControl extends core.Object{AbstractControl(validator){this[_value]=null;this[_status]=null;this[_errors]=null;this[_pristine]=null;this[_touched]=null;this[_parent]=null;this.validator=null;this[_valueChanges]=null;this.validator=validator;this[_pristine]=true;this[_touched]=false}get value(){return this[_value]}get status(){return this[_status]}get valid(){return core.identical(this[_status],VALID)}get errors(){return this[_errors]}get pristine(){return this[_pristine]}get dirty(){return!dart.notNull(this.pristine)}get touched(){return this[_touched]}get untouched(){return!dart.notNull(this[_touched])}get valueChanges(){return this[_valueChanges]}markAsTouched(){this[_touched]=true}markAsDirty(opts){let onlySelf=opts&&'onlySelf'in opts?opts.onlySelf:null;onlySelf=dart.notNull(lang.isPresent(onlySelf))?onlySelf:false;this[_pristine]=false;if(dart.notNull(lang.isPresent(this[_parent]))&& !dart.notNull(dart.as(onlySelf,core.bool))){dart.dsend(this[_parent],'markAsDirty',{onlySelf:onlySelf})}}setParent(parent){this[_parent]=parent}updateValidity(opts){let onlySelf=opts&&'onlySelf'in opts?opts.onlySelf:null;onlySelf=dart.notNull(lang.isPresent(onlySelf))?onlySelf:false;this[_errors]=dart.as(dart.dcall(this.validator,this),core.Map$(core.String,dart.dynamic));this[_status]=dart.notNull(lang.isPresent(this[_errors]))?INVALID:VALID;if(dart.notNull(lang.isPresent(this[_parent]))&& !dart.notNull(dart.as(onlySelf,core.bool))){dart.dsend(this[_parent],'updateValidity',{onlySelf:onlySelf})}}updateValueAndValidity(opts){let onlySelf=opts&&'onlySelf'in opts?opts.onlySelf:null;let emitEvent=opts&&'emitEvent'in opts?opts.emitEvent:null;onlySelf=dart.notNull(lang.isPresent(onlySelf))?onlySelf:false;emitEvent=dart.notNull(lang.isPresent(emitEvent))?emitEvent:true;this[_updateValue]();if(dart.notNull(dart.as(emitEvent,core.bool))){async.ObservableWrapper.callNext(this[_valueChanges],this[_value])}this[_errors]=dart.as(dart.dcall(this.validator,this),core.Map$(core.String,dart.dynamic));this[_status]=dart.notNull(lang.isPresent(this[_errors]))?INVALID:VALID;if(dart.notNull(lang.isPresent(this[_parent]))&& !dart.notNull(dart.as(onlySelf,core.bool))){dart.dsend(this[_parent],'updateValueAndValidity',{emitEvent:emitEvent,onlySelf:onlySelf})}}find(path){return dart.as(_find(this,path),AbstractControl)}getError(errorCode,path){if(path===void 0)path=null;let c=dart.notNull(lang.isPresent(path))&& !dart.notNull(collection.ListWrapper.isEmpty(path))?this.find(path):this;if(dart.notNull(lang.isPresent(c))&&dart.notNull(lang.isPresent(c[_errors]))){return collection.StringMapWrapper.get(c[_errors],errorCode)}else{return null}}hasError(errorCode,path){if(path===void 0)path=null;return lang.isPresent(this.getError(errorCode,path))}[_updateValue](){}};dart.setSignature(AbstractControl,{constructors:()=>({AbstractControl:[AbstractControl,[core.Function]]}),methods:()=>({[_updateValue]:[dart.void,[]],find:[AbstractControl,[dart.dynamic]],getError:[dart.dynamic,[core.String],[core.List$(core.String)]],hasError:[core.bool,[core.String],[core.List$(core.String)]],markAsDirty:[dart.void,[],{onlySelf:dart.dynamic}],markAsTouched:[dart.void,[]],setParent:[dart.dynamic,[dart.dynamic]],updateValidity:[dart.void,[],{onlySelf:dart.dynamic}],updateValueAndValidity:[dart.void,[],{emitEvent:dart.dynamic,onlySelf:dart.dynamic}]})});let _onChange=Symbol('_onChange');class Control extends AbstractControl{Control(value,validator){if(validator===void 0)validator=validators.Validators.nullValidator;this[_onChange]=null;super.AbstractControl(validator);;this[_value]=value;this.updateValidity({onlySelf:true});this[_valueChanges]=new async.EventEmitter()}updateValue(value,opts){let onlySelf=opts&&'onlySelf'in opts?opts.onlySelf:null;let emitEvent=opts&&'emitEvent'in opts?opts.emitEvent:null;this[_value]=value;if(dart.notNull(lang.isPresent(this[_onChange])))dart.dcall(this[_onChange],this[_value]);this.updateValueAndValidity({emitEvent:emitEvent,onlySelf:onlySelf})}registerOnChange(fn){this[_onChange]=fn}};dart.setSignature(Control,{constructors:()=>({Control:[Control,[dart.dynamic],[core.Function]]}),methods:()=>({registerOnChange:[dart.void,[core.Function]],updateValue:[dart.void,[dart.dynamic],{emitEvent:dart.dynamic,onlySelf:dart.dynamic}]})});let _optionals=Symbol('_optionals');let _setParentForControls=Symbol('_setParentForControls');let _reduceValue=Symbol('_reduceValue');let _included=Symbol('_included');let _reduceChildren=Symbol('_reduceChildren');class ControlGroup extends AbstractControl{ControlGroup(controls,optionals,validator){if(optionals===void 0)optionals=null;if(validator===void 0)validator=validators.Validators.group;this.controls=null;this[_optionals]=null;super.AbstractControl(validator);;this.controls=controls;this[_optionals]=dart.notNull(lang.isPresent(optionals))?optionals:dart.map();this[_valueChanges]=new async.EventEmitter();this[_setParentForControls]();this[_value]=this[_reduceValue]();this.updateValidity({onlySelf:true})}addControl(name,c){this.controls.set(name,c);c.setParent(this)}removeControl(name){collection.StringMapWrapper.delete(this.controls,name)}include(controlName){collection.StringMapWrapper.set(this[_optionals],controlName,true);this.updateValueAndValidity()}exclude(controlName){collection.StringMapWrapper.set(this[_optionals],controlName,false);this.updateValueAndValidity()}contains(controlName){let c=collection.StringMapWrapper.contains(this.controls,controlName);return dart.notNull(c)&&dart.notNull(this[_included](controlName))}[_setParentForControls](){collection.StringMapWrapper.forEach(this.controls,dart.fn((control,name)=>{dart.dsend(control,'setParent',this)}))}[_updateValue](){this[_value]=this[_reduceValue]()}[_reduceValue](){return this[_reduceChildren](dart.map(),dart.fn((acc,control,name)=>{dart.dsetindex(acc,name,dart.dload(control,'value'));return acc}))}[_reduceChildren](initValue,fn){let res=initValue;collection.StringMapWrapper.forEach(this.controls,dart.fn((control,name)=>{if(dart.notNull(this[_included](dart.as(name,core.String)))){res=dart.dcall(fn,res,control,name)}}));return res}[_included](controlName){let isOptional=collection.StringMapWrapper.contains(this[_optionals],controlName);return!dart.notNull(isOptional)||dart.notNull(dart.as(collection.StringMapWrapper.get(this[_optionals],controlName),core.bool))}};dart.setSignature(ControlGroup,{constructors:()=>({ControlGroup:[ControlGroup,[core.Map$(core.String,AbstractControl)],[core.Map$(core.String,core.bool),core.Function]]}),methods:()=>({[_included]:[core.bool,[core.String]],[_reduceChildren]:[dart.dynamic,[dart.dynamic,core.Function]],[_reduceValue]:[dart.dynamic,[]],[_setParentForControls]:[dart.dynamic,[]],addControl:[dart.dynamic,[core.String,AbstractControl]],contains:[core.bool,[core.String]],exclude:[dart.void,[core.String]],include:[dart.void,[core.String]],removeControl:[dart.dynamic,[core.String]]})});class ControlArray extends AbstractControl{ControlArray(controls,validator){if(validator===void 0)validator=validators.Validators.array;this.controls=null;super.AbstractControl(validator);;this.controls=controls;this[_valueChanges]=new async.EventEmitter();this[_setParentForControls]();this[_updateValue]();this.updateValidity({onlySelf:true})}at(index){return this.controls[dartx.get](index)}push(control){this.controls[dartx.add](control);control.setParent(this);this.updateValueAndValidity()}insert(index,control){collection.ListWrapper.insert(this.controls,index,control);control.setParent(this);this.updateValueAndValidity()}removeAt(index){collection.ListWrapper.removeAt(this.controls,index);this.updateValueAndValidity()}get length(){return this.controls[dartx.length]}[_updateValue](){this[_value]=collection.ListWrapper.map(this.controls,dart.fn(c=>dart.dload(c,'value')))}[_setParentForControls](){collection.ListWrapper.forEach(this.controls,dart.fn(control=>{dart.dsend(control,'setParent',this)}))}};dart.setSignature(ControlArray,{constructors:()=>({ControlArray:[ControlArray,[core.List$(AbstractControl)],[core.Function]]}),methods:()=>({[_setParentForControls]:[dart.dynamic,[]],at:[AbstractControl,[core.num]],insert:[dart.void,[core.num,AbstractControl]],push:[dart.void,[AbstractControl]],removeAt:[dart.void,[core.num]]})});exports.VALID=VALID;exports.INVALID=INVALID;exports.isControl=isControl;exports.AbstractControl=AbstractControl;exports.Control=Control;exports.ControlGroup=ControlGroup;exports.ControlArray=ControlArray});dart_library.library('angular2/src/forms/validators',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/facade/collection'],['angular2/src/forms/model'],function(exports,dart,core,lang,collection,model){'use strict';let dartx=dart.dartx;class Validators extends core.Object{static required(c){return dart.notNull(lang.isBlank(c.value))||dart.equals(c.value,"")?dart.map({required:true}):null}static nullValidator(c){return null}static compose(validators){return dart.fn(c=>{let res=collection.ListWrapper.reduce(validators,dart.fn((res,validator)=>{let errors=dart.dcall(validator,c);return dart.notNull(lang.isPresent(errors))?collection.StringMapWrapper.merge(dart.as(res,core.Map),dart.as(errors,core.Map)):res}),dart.map());return dart.notNull(collection.StringMapWrapper.isEmpty(dart.as(res,core.Map)))?null:res},dart.dynamic,[model.Control])}static group(c){let res=dart.map();collection.StringMapWrapper.forEach(c.controls,dart.fn((control,name)=>{if(dart.notNull(c.contains(dart.as(name,core.String)))&&dart.notNull(lang.isPresent(dart.dload(control,'errors')))){Validators._mergeErrors(dart.as(control,model.AbstractControl),dart.as(res,core.Map$(core.String,core.List)))}}));return dart.as(dart.notNull(collection.StringMapWrapper.isEmpty(res))?null:res,core.Map$(core.String,core.bool))}static array(c){let res=dart.map();collection.ListWrapper.forEach(c.controls,dart.fn(control=>{if(dart.notNull(lang.isPresent(dart.dload(control,'errors')))){Validators._mergeErrors(dart.as(control,model.AbstractControl),dart.as(res,core.Map$(core.String,core.List)))}}));return dart.as(dart.notNull(collection.StringMapWrapper.isEmpty(res))?null:res,core.Map$(core.String,core.bool))}static _mergeErrors(control,res){collection.StringMapWrapper.forEach(control.errors,dart.fn((value,error)=>{if(!dart.notNull(collection.StringMapWrapper.contains(res,error))){res.set(dart.as(error,core.String),[])}let current=res.get(error);current[dartx.add](control)}))}};dart.setSignature(Validators,{names:['required','nullValidator','compose','group','array','_mergeErrors'],statics:()=>({_mergeErrors:[dart.void,[model.AbstractControl,core.Map$(core.String,core.List)]],array:[core.Map$(core.String,core.bool),[model.ControlArray]],compose:[core.Function,[core.List$(core.Function)]],group:[core.Map$(core.String,core.bool),[model.ControlGroup]],nullValidator:[core.Map$(core.String,core.bool),[dart.dynamic]],required:[core.Map$(core.String,core.bool),[model.Control]]})});exports.Validators=Validators});dart_library.library('angular2/src/http/backends/browser_xhr',null,["dart_runtime/dart",'dart/core','dart/html','angular2/src/di/annotations_impl'],[],function(exports,dart,core,html,annotations_impl){'use strict';let dartx=dart.dartx;class BrowserXhr extends core.Object{build(){return html.HttpRequest.new()}};dart.setSignature(BrowserXhr,{methods:()=>({build:[html.HttpRequest,[]]})});BrowserXhr[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.BrowserXhr=BrowserXhr});dart_library.library('angular2/src/http/backends/mock_backend',null,["dart_runtime/dart",'dart/core','angular2/src/facade/async','angular2/src/http/enums','angular2/src/facade/lang','angular2/src/http/interfaces','angular2/src/http/static_response','angular2/src/http/static_request','angular2/src/di/annotations_impl'],[],function(exports,dart,core,async,enums,lang,interfaces,static_response,static_request,annotations_impl){'use strict';let dartx=dart.dartx;class MockConnection extends core.Object{MockConnection(req){this.readyState=null;this.request=null;this.response=null;this.response=new async.EventEmitter();this.readyState=enums.ReadyStates.OPEN;this.request=req}dispose(){if(!dart.notNull(core.identical(this.readyState,enums.ReadyStates.DONE))){this.readyState=enums.ReadyStates.CANCELLED}}mockRespond(res){if(dart.notNull(core.identical(this.readyState,enums.ReadyStates.DONE))||dart.notNull(core.identical(this.readyState,enums.ReadyStates.CANCELLED))){dart.throw(new lang.BaseException("Connection has already been resolved"))}this.readyState=enums.ReadyStates.DONE;async.ObservableWrapper.callNext(this.response,res);async.ObservableWrapper.callReturn(this.response)}mockDownload(res){}mockError(err){if(err===void 0)err=null;this.readyState=enums.ReadyStates.DONE;async.ObservableWrapper.callThrow(this.response,err);async.ObservableWrapper.callReturn(this.response)}};MockConnection[dart.implements]=()=>[interfaces.Connection];dart.setSignature(MockConnection,{constructors:()=>({MockConnection:[MockConnection,[static_request.Request]]}),methods:()=>({dispose:[dart.void,[]],mockDownload:[dart.dynamic,[static_response.Response]],mockError:[dart.dynamic,[],[dart.dynamic]],mockRespond:[dart.dynamic,[static_response.Response]]})});class MockBackend extends core.Object{MockBackend(){this.connections=null;this.connectionsArray=null;this.pendingConnections=null;this.connectionsArray=dart.list([],MockConnection);this.connections=new async.EventEmitter();async.ObservableWrapper.subscribe(this.connections,dart.fn(connection=>this.connectionsArray[dartx.add](dart.as(connection,MockConnection)),dart.void,[dart.dynamic]));this.pendingConnections=new async.EventEmitter()}verifyNoPendingRequests(){let pending=0;async.ObservableWrapper.subscribe(this.pendingConnections,dart.fn(c=>(()=>{let x=pending;pending=dart.notNull(x)+1;return x})(),core.int,[dart.dynamic]));if(dart.notNull(pending)>0)dart.throw(new lang.BaseException(`${pending } pending connections to be resolved`));}resolveAllConnections(){async.ObservableWrapper.subscribe(this.connections,dart.fn(c=>dart.dput(c,'readyState',4),core.int,[dart.dynamic]))}createConnection(req){if(!dart.notNull(lang.isPresent(req))|| !dart.is(req,static_request.Request)){dart.throw(new lang.BaseException(`createConnection requires an instance of Request, got ${req }`))}let connection=new MockConnection(req);async.ObservableWrapper.callNext(this.connections,connection);return connection}};MockBackend[dart.implements]=()=>[interfaces.ConnectionBackend];dart.setSignature(MockBackend,{constructors:()=>({MockBackend:[MockBackend,[]]}),methods:()=>({createConnection:[interfaces.Connection,[static_request.Request]],resolveAllConnections:[dart.dynamic,[]],verifyNoPendingRequests:[dart.dynamic,[]]})});MockBackend[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.MockConnection=MockConnection;exports.MockBackend=MockBackend});dart_library.library('angular2/src/http/backends/xhr_backend',null,["dart_runtime/dart",'dart/core','angular2/src/http/enums','angular2/src/facade/async','angular2/src/facade/lang','angular2/src/http/base_response_options','angular2/src/http/static_response','angular2/src/http/interfaces','angular2/src/http/static_request','angular2/src/http/backends/browser_xhr','angular2/src/di/annotations_impl'],[],function(exports,dart,core,enums,async,lang,base_response_options,static_response,interfaces,static_request,browser_xhr,annotations_impl){'use strict';let dartx=dart.dartx;let _xhr=Symbol('_xhr');class XHRConnection extends core.Object{XHRConnection(req,browserXHR,baseResponseOptions){if(baseResponseOptions===void 0)baseResponseOptions=null;this.request=null;this.response=null;this.readyState=null;this[_xhr]=null;let requestMethodsMap=new enums.RequestMethodsMap();this.request=req;this.response=new async.EventEmitter();this[_xhr]=browserXHR.build();dart.dsend(this[_xhr],'open',requestMethodsMap.getMethod(lang.ENUM_INDEX(req.method)),req.url);dart.dsend(this[_xhr],'addEventListener',"load",dart.fn(_=>{let responseOptions=new base_response_options.ResponseOptions({body:dart.notNull(lang.isPresent(dart.dload(this[_xhr],'response')))?dart.dload(this[_xhr],'response'):dart.dload(this[_xhr],'responseText')});if(dart.notNull(lang.isPresent(baseResponseOptions))){responseOptions=baseResponseOptions.merge(responseOptions)}async.ObservableWrapper.callNext(this.response,new static_response.Response(responseOptions))}));if(dart.notNull(lang.isPresent(req.headers))){req.headers.forEach(dart.fn((value,name)=>{dart.dsend(this[_xhr],'setRequestHeader',name,value)}))}dart.dsend(this[_xhr],'send',this.request.text())}dispose(){dart.dsend(this[_xhr],'abort')}};XHRConnection[dart.implements]=()=>[interfaces.Connection];dart.setSignature(XHRConnection,{constructors:()=>({XHRConnection:[XHRConnection,[static_request.Request,browser_xhr.BrowserXhr],[base_response_options.ResponseOptions]]}),methods:()=>({dispose:[dart.void,[]]})});let _browserXHR=Symbol('_browserXHR');let _baseResponseOptions=Symbol('_baseResponseOptions');class XHRBackend extends core.Object{XHRBackend(browserXHR,baseResponseOptions){this[_browserXHR]=browserXHR;this[_baseResponseOptions]=baseResponseOptions}createConnection(request){return new XHRConnection(request,this[_browserXHR],this[_baseResponseOptions])}};XHRBackend[dart.implements]=()=>[interfaces.ConnectionBackend];dart.setSignature(XHRBackend,{constructors:()=>({XHRBackend:[XHRBackend,[browser_xhr.BrowserXhr,base_response_options.ResponseOptions]]}),methods:()=>({createConnection:[XHRConnection,[static_request.Request]]})});XHRBackend[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.XHRConnection=XHRConnection;exports.XHRBackend=XHRBackend});dart_library.library('angular2/src/http/base_request_options',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/http/enums','angular2/src/http/headers','angular2/src/di/annotations_impl'],['angular2/src/http/interfaces'],function(exports,dart,core,lang,enums,headers$,annotations_impl,interfaces){'use strict';let dartx=dart.dartx;class RequestOptions extends core.Object{RequestOptions(opts){let method=opts&&'method'in opts?opts.method:null;let headers=opts&&'headers'in opts?opts.headers:null;let body=opts&&'body'in opts?opts.body:null;let mode=opts&&'mode'in opts?opts.mode:null;let credentials=opts&&'credentials'in opts?opts.credentials:null;let cache=opts&&'cache'in opts?opts.cache:null;let url=opts&&'url'in opts?opts.url:null;this.method=null;this.headers=null;this.body=null;this.mode=null;this.credentials=null;this.cache=null;this.url=null;this.method=dart.notNull(lang.isPresent(method))?dart.as(method,enums.RequestMethods):null;this.headers=dart.notNull(lang.isPresent(headers))?dart.as(headers,headers$.Headers):null;this.body=dart.notNull(lang.isPresent(body))?dart.as(body,core.String):null;this.mode=dart.notNull(lang.isPresent(mode))?dart.as(mode,enums.RequestModesOpts):null;this.credentials=dart.notNull(lang.isPresent(credentials))?dart.as(credentials,enums.RequestCredentialsOpts):null;this.cache=dart.notNull(lang.isPresent(cache))?dart.as(cache,enums.RequestCacheOpts):null;this.url=dart.notNull(lang.isPresent(url))?dart.as(url,core.String):null}merge(options){if(options===void 0)options=null;return new RequestOptions({body:dart.notNull(lang.isPresent(options))&&dart.notNull(lang.isPresent(options.body))?options.body:this.body,cache:dart.notNull(lang.isPresent(options))&&dart.notNull(lang.isPresent(options.cache))?options.cache:this.cache,credentials:dart.notNull(lang.isPresent(options))&&dart.notNull(lang.isPresent(options.credentials))?options.credentials:this.credentials,headers:dart.notNull(lang.isPresent(options))&&dart.notNull(lang.isPresent(options.headers))?options.headers:this.headers,method:dart.notNull(lang.isPresent(options))&&dart.notNull(lang.isPresent(options.method))?options.method:this.method,mode:dart.notNull(lang.isPresent(options))&&dart.notNull(lang.isPresent(options.mode))?options.mode:this.mode,url:dart.notNull(lang.isPresent(options))&&dart.notNull(lang.isPresent(options.url))?options.url:this.url})}};RequestOptions[dart.implements]=()=>[interfaces.IRequestOptions];dart.setSignature(RequestOptions,{constructors:()=>({RequestOptions:[RequestOptions,[],{body:dart.dynamic,cache:dart.dynamic,credentials:dart.dynamic,headers:dart.dynamic,method:dart.dynamic,mode:dart.dynamic,url:dart.dynamic}]}),methods:()=>({merge:[RequestOptions,[],[interfaces.IRequestOptions]]})});class BaseRequestOptions extends RequestOptions{BaseRequestOptions(){super.RequestOptions({headers:new headers$.Headers(),method:enums.RequestMethods.GET,mode:enums.RequestModesOpts.Cors});}};dart.setSignature(BaseRequestOptions,{constructors:()=>({BaseRequestOptions:[BaseRequestOptions,[]]})});BaseRequestOptions[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.RequestOptions=RequestOptions;exports.BaseRequestOptions=BaseRequestOptions});dart_library.library('angular2/src/http/base_response_options',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/http/headers','angular2/src/http/enums','angular2/src/http/interfaces','angular2/src/di/annotations_impl'],[],function(exports,dart,core,lang,headers$,enums,interfaces,annotations_impl){'use strict';let dartx=dart.dartx;class ResponseOptions extends core.Object{ResponseOptions(opts){let body=opts&&'body'in opts?opts.body:null;let status=opts&&'status'in opts?opts.status:null;let headers=opts&&'headers'in opts?opts.headers:null;let statusText=opts&&'statusText'in opts?opts.statusText:null;let type=opts&&'type'in opts?opts.type:null;let url=opts&&'url'in opts?opts.url:null;this.body=null;this.status=null;this.headers=null;this.statusText=null;this.type=null;this.url=null;this.body=dart.notNull(lang.isPresent(body))?body:null;this.status=dart.notNull(lang.isPresent(status))?dart.as(status,core.num):null;this.headers=dart.notNull(lang.isPresent(headers))?dart.as(headers,headers$.Headers):null;this.statusText=dart.notNull(lang.isPresent(statusText))?dart.as(statusText,core.String):null;this.type=dart.notNull(lang.isPresent(type))?dart.as(type,enums.ResponseTypes):null;this.url=dart.notNull(lang.isPresent(url))?dart.as(url,core.String):null}merge(options){if(options===void 0)options=null;return new ResponseOptions({body:dart.notNull(lang.isPresent(options))&&dart.notNull(lang.isPresent(options.body))?options.body:this.body,headers:dart.notNull(lang.isPresent(options))&&dart.notNull(lang.isPresent(options.headers))?options.headers:this.headers,status:dart.notNull(lang.isPresent(options))&&dart.notNull(lang.isPresent(options.status))?options.status:this.status,statusText:dart.notNull(lang.isPresent(options))&&dart.notNull(lang.isPresent(options.statusText))?options.statusText:this.statusText,type:dart.notNull(lang.isPresent(options))&&dart.notNull(lang.isPresent(options.type))?options.type:this.type,url:dart.notNull(lang.isPresent(options))&&dart.notNull(lang.isPresent(options.url))?options.url:this.url})}};ResponseOptions[dart.implements]=()=>[interfaces.IResponseOptions];dart.virtualField(ResponseOptions,'body');dart.virtualField(ResponseOptions,'status');dart.virtualField(ResponseOptions,'headers');dart.virtualField(ResponseOptions,'statusText');dart.virtualField(ResponseOptions,'type');dart.virtualField(ResponseOptions,'url');dart.setSignature(ResponseOptions,{constructors:()=>({ResponseOptions:[ResponseOptions,[],{body:dart.dynamic,headers:dart.dynamic,status:dart.dynamic,statusText:dart.dynamic,type:dart.dynamic,url:dart.dynamic}]}),methods:()=>({merge:[ResponseOptions,[],[interfaces.IResponseOptions]]})});class BaseResponseOptions extends ResponseOptions{BaseResponseOptions(){this.body=null;this.status=null;this.headers=null;this.statusText=null;this.type=null;this.url=null;super.ResponseOptions({headers:new headers$.Headers(),status:200,statusText:"Ok",type:enums.ResponseTypes.Default});}};dart.virtualField(BaseResponseOptions,'body');dart.virtualField(BaseResponseOptions,'status');dart.virtualField(BaseResponseOptions,'headers');dart.virtualField(BaseResponseOptions,'statusText');dart.virtualField(BaseResponseOptions,'type');dart.virtualField(BaseResponseOptions,'url');dart.setSignature(BaseResponseOptions,{constructors:()=>({BaseResponseOptions:[BaseResponseOptions,[]]})});BaseResponseOptions[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.ResponseOptions=ResponseOptions;exports.BaseResponseOptions=BaseResponseOptions});dart_library.library('angular2/src/http/enums',null,["dart_runtime/dart",'dart/core'],[],function(exports,dart,core){'use strict';let dartx=dart.dartx;class RequestModesOpts extends core.Object{RequestModesOpts(index){this.index=index}toString(){return{0:"RequestModesOpts.Cors",1:"RequestModesOpts.NoCors",2:"RequestModesOpts.SameOrigin"}[this.index]}};RequestModesOpts.Cors=dart.const(new RequestModesOpts(0));RequestModesOpts.NoCors=dart.const(new RequestModesOpts(1));RequestModesOpts.SameOrigin=dart.const(new RequestModesOpts(2));RequestModesOpts.values=dart.const(dart.list([RequestModesOpts.Cors,RequestModesOpts.NoCors,RequestModesOpts.SameOrigin],RequestModesOpts));class RequestCacheOpts extends core.Object{RequestCacheOpts(index){this.index=index}toString(){return{0:"RequestCacheOpts.Default",1:"RequestCacheOpts.NoStore",2:"RequestCacheOpts.Reload",3:"RequestCacheOpts.NoCache",4:"RequestCacheOpts.ForceCache",5:"RequestCacheOpts.OnlyIfCached"}[this.index]}};RequestCacheOpts.Default=dart.const(new RequestCacheOpts(0));RequestCacheOpts.NoStore=dart.const(new RequestCacheOpts(1));RequestCacheOpts.Reload=dart.const(new RequestCacheOpts(2));RequestCacheOpts.NoCache=dart.const(new RequestCacheOpts(3));RequestCacheOpts.ForceCache=dart.const(new RequestCacheOpts(4));RequestCacheOpts.OnlyIfCached=dart.const(new RequestCacheOpts(5));RequestCacheOpts.values=dart.const(dart.list([RequestCacheOpts.Default,RequestCacheOpts.NoStore,RequestCacheOpts.Reload,RequestCacheOpts.NoCache,RequestCacheOpts.ForceCache,RequestCacheOpts.OnlyIfCached],RequestCacheOpts));class RequestCredentialsOpts extends core.Object{RequestCredentialsOpts(index){this.index=index}toString(){return{0:"RequestCredentialsOpts.Omit",1:"RequestCredentialsOpts.SameOrigin",2:"RequestCredentialsOpts.Include"}[this.index]}};RequestCredentialsOpts.Omit=dart.const(new RequestCredentialsOpts(0));RequestCredentialsOpts.SameOrigin=dart.const(new RequestCredentialsOpts(1));RequestCredentialsOpts.Include=dart.const(new RequestCredentialsOpts(2));RequestCredentialsOpts.values=dart.const(dart.list([RequestCredentialsOpts.Omit,RequestCredentialsOpts.SameOrigin,RequestCredentialsOpts.Include],RequestCredentialsOpts));class RequestMethods extends core.Object{RequestMethods(index){this.index=index}toString(){return{0:"RequestMethods.GET",1:"RequestMethods.POST",2:"RequestMethods.PUT",3:"RequestMethods.DELETE",4:"RequestMethods.OPTIONS",5:"RequestMethods.HEAD",6:"RequestMethods.PATCH"}[this.index]}};RequestMethods.GET=dart.const(new RequestMethods(0));RequestMethods.POST=dart.const(new RequestMethods(1));RequestMethods.PUT=dart.const(new RequestMethods(2));RequestMethods.DELETE=dart.const(new RequestMethods(3));RequestMethods.OPTIONS=dart.const(new RequestMethods(4));RequestMethods.HEAD=dart.const(new RequestMethods(5));RequestMethods.PATCH=dart.const(new RequestMethods(6));RequestMethods.values=dart.const(dart.list([RequestMethods.GET,RequestMethods.POST,RequestMethods.PUT,RequestMethods.DELETE,RequestMethods.OPTIONS,RequestMethods.HEAD,RequestMethods.PATCH],RequestMethods));let _methods=Symbol('_methods');class RequestMethodsMap extends core.Object{RequestMethodsMap(){this[_methods]=null;this[_methods]=dart.list(["GET","POST","PUT","DELETE","OPTIONS","HEAD","PATCH"],core.String)}getMethod(method){return this[_methods][dartx.get](method)}};dart.setSignature(RequestMethodsMap,{constructors:()=>({RequestMethodsMap:[RequestMethodsMap,[]]}),methods:()=>({getMethod:[core.String,[core.int]]})});class ReadyStates extends core.Object{ReadyStates(index){this.index=index}toString(){return{0:"ReadyStates.UNSENT",1:"ReadyStates.OPEN",2:"ReadyStates.HEADERS_RECEIVED",3:"ReadyStates.LOADING",4:"ReadyStates.DONE",5:"ReadyStates.CANCELLED"}[this.index]}};ReadyStates.UNSENT=dart.const(new ReadyStates(0));ReadyStates.OPEN=dart.const(new ReadyStates(1));ReadyStates.HEADERS_RECEIVED=dart.const(new ReadyStates(2));ReadyStates.LOADING=dart.const(new ReadyStates(3));ReadyStates.DONE=dart.const(new ReadyStates(4));ReadyStates.CANCELLED=dart.const(new ReadyStates(5));ReadyStates.values=dart.const(dart.list([ReadyStates.UNSENT,ReadyStates.OPEN,ReadyStates.HEADERS_RECEIVED,ReadyStates.LOADING,ReadyStates.DONE,ReadyStates.CANCELLED],ReadyStates));class ResponseTypes extends core.Object{ResponseTypes(index){this.index=index}toString(){return{0:"ResponseTypes.Basic",1:"ResponseTypes.Cors",2:"ResponseTypes.Default",3:"ResponseTypes.Error",4:"ResponseTypes.Opaque"}[this.index]}};ResponseTypes.Basic=dart.const(new ResponseTypes(0));ResponseTypes.Cors=dart.const(new ResponseTypes(1));ResponseTypes.Default=dart.const(new ResponseTypes(2));ResponseTypes.Error=dart.const(new ResponseTypes(3));ResponseTypes.Opaque=dart.const(new ResponseTypes(4));ResponseTypes.values=dart.const(dart.list([ResponseTypes.Basic,ResponseTypes.Cors,ResponseTypes.Default,ResponseTypes.Error,ResponseTypes.Opaque],ResponseTypes));exports.RequestModesOpts=RequestModesOpts;exports.RequestCacheOpts=RequestCacheOpts;exports.RequestCredentialsOpts=RequestCredentialsOpts;exports.RequestMethods=RequestMethods;exports.RequestMethodsMap=RequestMethodsMap;exports.ReadyStates=ReadyStates;exports.ResponseTypes=ResponseTypes});dart_library.library('angular2/src/http/headers',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/facade/collection'],[],function(exports,dart,core,lang,collection){'use strict';let dartx=dart.dartx;let _headersMap=Symbol('_headersMap');class Headers extends core.Object{Headers(headers){if(headers===void 0)headers=null;this[_headersMap]=null;if(dart.notNull(lang.isBlank(headers))){this[_headersMap]=core.Map$(core.String,core.List$(core.String)).new();return}if(dart.is(headers,Headers)){this[_headersMap]=dart.as(headers,Headers)[_headersMap]}else if(dart.is(headers,core.Map)){this[_headersMap]=dart.as(collection.MapWrapper.createFromStringMap(dart.as(headers,core.Map)),core.Map$(core.String,core.List$(core.String)));collection.MapWrapper.forEach(this[_headersMap],dart.fn((v,k)=>{if(!dart.notNull(collection.isListLikeIterable(v))){let list=[];list[dartx.add](v);this[_headersMap].set(dart.as(k,core.String),dart.as(list,core.List$(core.String)))}}))}}append(name,value){let mapName=this[_headersMap].get(name);let list=dart.notNull(collection.isListLikeIterable(mapName))?mapName:[];dart.dcall(list[dartx.add],value);this[_headersMap].set(name,dart.as(list,core.List$(core.String)))}delete(name){collection.MapWrapper.delete(this[_headersMap],name)}forEach(fn){collection.MapWrapper.forEach(this[_headersMap],dart.as(fn,__CastType0))}get(header){return dart.as(collection.ListWrapper.first(this[_headersMap].get(header)),core.String)}has(header){return this[_headersMap].containsKey(header)}keys(){return dart.as(collection.MapWrapper.keys(this[_headersMap]),core.List$(core.String))}set(header,value){let list=[];if(dart.notNull(collection.isListLikeIterable(value))){let pushValue=dart.as(value,core.List$(core.String))[dartx.join](",");list[dartx.add](pushValue)}else{list[dartx.add](value)}this[_headersMap].set(header,dart.as(list,core.List$(core.String)))}values(){return dart.as(collection.MapWrapper.values(this[_headersMap]),core.List$(core.List$(core.String)))}getAll(header){let headers=this[_headersMap].get(header);return dart.notNull(collection.isListLikeIterable(headers))?headers:dart.list([],core.String)}entries(){dart.throw(new lang.BaseException("\"entries\" method is not implemented on Headers class"))}};dart.setSignature(Headers,{constructors:()=>({Headers:[Headers,[],[dart.dynamic]]}),methods:()=>({append:[dart.void,[core.String,core.String]],delete:[dart.void,[core.String]],entries:[dart.dynamic,[]],forEach:[dart.dynamic,[core.Function]],get:[core.String,[core.String]],getAll:[core.List$(core.String),[core.String]],has:[core.bool,[core.String]],keys:[core.List$(core.String),[]],set:[dart.void,[core.String,dart.dynamic]],values:[core.List$(core.List$(core.String)),[]]})});let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(dart.dynamic,[dart.dynamic,dart.dynamic]));exports.Headers=Headers});dart_library.library('angular2/src/http/http',null,["dart_runtime/dart",'angular2/src/facade/async','angular2/src/http/interfaces','angular2/src/http/static_request','angular2/src/facade/lang','angular2/src/http/base_request_options','dart/core','angular2/src/http/enums','angular2/src/di/annotations_impl'],[],function(exports,dart,async,interfaces,static_request,lang,base_request_options,core,enums,annotations_impl){'use strict';let dartx=dart.dartx;function httpRequest(backend,request){return backend.createConnection(request).response}dart.fn(httpRequest,async.EventEmitter,[interfaces.ConnectionBackend,static_request.Request]);function mergeOptions(defaultOpts,providedOpts,method,url){let newOptions=defaultOpts;if(dart.notNull(lang.isPresent(providedOpts))){newOptions=dart.dsend(newOptions,'merge',new base_request_options.RequestOptions({body:dart.dload(providedOpts,'body'),cache:dart.dload(providedOpts,'cache'),credentials:dart.dload(providedOpts,'credentials'),headers:dart.dload(providedOpts,'headers'),method:dart.dload(providedOpts,'method'),mode:dart.dload(providedOpts,'mode'),url:dart.dload(providedOpts,'url')}))}if(dart.notNull(lang.isPresent(method))){return dart.as(dart.dsend(newOptions,'merge',new base_request_options.RequestOptions({method:method,url:url})),base_request_options.RequestOptions)}else{return dart.as(dart.dsend(newOptions,'merge',new base_request_options.RequestOptions({url:url})),base_request_options.RequestOptions)}}dart.fn(mergeOptions,base_request_options.RequestOptions,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]);let _backend=Symbol('_backend');let _defaultOptions=Symbol('_defaultOptions');class Http extends core.Object{Http(backend,defaultOptions){this[_backend]=backend;this[_defaultOptions]=defaultOptions}request(url,options){if(options===void 0)options=null;let responseObservable=null;if(dart.notNull(lang.isString(url))){responseObservable=httpRequest(this[_backend],new static_request.Request(mergeOptions(this[_defaultOptions],options,enums.RequestMethods.GET,url)))}else if(dart.is(url,static_request.Request)){responseObservable=httpRequest(this[_backend],dart.as(url,static_request.Request))}return responseObservable}get(url,options){if(options===void 0)options=null;return httpRequest(this[_backend],new static_request.Request(mergeOptions(this[_defaultOptions],options,enums.RequestMethods.GET,url)))}post(url,body,options){if(options===void 0)options=null;return httpRequest(this[_backend],new static_request.Request(mergeOptions(this[_defaultOptions].merge(new base_request_options.RequestOptions({body:body})),options,enums.RequestMethods.POST,url)))}put(url,body,options){if(options===void 0)options=null;return httpRequest(this[_backend],new static_request.Request(mergeOptions(this[_defaultOptions].merge(new base_request_options.RequestOptions({body:body})),options,enums.RequestMethods.PUT,url)))}delete(url,options){if(options===void 0)options=null;return httpRequest(this[_backend],new static_request.Request(mergeOptions(this[_defaultOptions],options,enums.RequestMethods.DELETE,url)))}patch(url,body,options){if(options===void 0)options=null;return httpRequest(this[_backend],new static_request.Request(mergeOptions(this[_defaultOptions].merge(new base_request_options.RequestOptions({body:body})),options,enums.RequestMethods.PATCH,url)))}head(url,options){if(options===void 0)options=null;return httpRequest(this[_backend],new static_request.Request(mergeOptions(this[_defaultOptions],options,enums.RequestMethods.HEAD,url)))}};dart.setSignature(Http,{constructors:()=>({Http:[Http,[interfaces.ConnectionBackend,base_request_options.RequestOptions]]}),methods:()=>({delete:[async.EventEmitter,[core.String],[interfaces.IRequestOptions]],get:[async.EventEmitter,[core.String],[interfaces.IRequestOptions]],head:[async.EventEmitter,[core.String],[interfaces.IRequestOptions]],patch:[async.EventEmitter,[core.String,core.String],[interfaces.IRequestOptions]],post:[async.EventEmitter,[core.String,core.String],[interfaces.IRequestOptions]],put:[async.EventEmitter,[core.String,core.String],[interfaces.IRequestOptions]],request:[async.EventEmitter,[dart.dynamic],[interfaces.IRequestOptions]]})});Http[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.httpRequest=httpRequest;exports.mergeOptions=mergeOptions;exports.Http=Http});dart_library.library('angular2/src/http/interfaces',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang'],[],function(exports,dart,core,lang){'use strict';let dartx=dart.dartx;class ConnectionBackend extends core.Object{ConnectionBackend(){}createConnection(request){dart.throw(new lang.BaseException("Abstract!"))}};dart.setSignature(ConnectionBackend,{constructors:()=>({ConnectionBackend:[ConnectionBackend,[]]}),methods:()=>({createConnection:[Connection,[dart.dynamic]]})});class Connection extends core.Object{Connection(){this.readyState=null;this.request=null;this.response=null}dispose(){dart.throw(new lang.BaseException("Abstract!"))}};dart.setSignature(Connection,{methods:()=>({dispose:[dart.void,[]]})});class IRequestOptions extends core.Object{IRequestOptions(){this.url=null;this.method=null;this.headers=null;this.body=null;this.mode=null;this.credentials=null;this.cache=null}};class IResponseOptions extends core.Object{IResponseOptions(){this.body=null;this.status=null;this.statusText=null;this.headers=null;this.type=null;this.url=null}};exports.ConnectionBackend=ConnectionBackend;exports.Connection=Connection;exports.IRequestOptions=IRequestOptions;exports.IResponseOptions=IResponseOptions});dart_library.library('angular2/src/http/static_request',null,["dart_runtime/dart",'dart/core','angular2/src/http/headers','angular2/src/facade/lang'],['angular2/src/http/base_request_options'],function(exports,dart,core,headers,lang,base_request_options){'use strict';let dartx=dart.dartx;let _body=Symbol('_body');class Request extends core.Object{Request(requestOptions){this.method=null;this.mode=null;this.credentials=null;this.headers=null;this.url=null;this[_body]=null;this.cache=null;this.url=requestOptions.url;this[_body]=requestOptions.body;this.method=requestOptions.method;this.mode=requestOptions.mode;this.credentials=requestOptions.credentials;this.headers=new headers.Headers(requestOptions.headers);this.cache=requestOptions.cache}text(){return dart.notNull(lang.isPresent(this[_body]))?dart.toString(this[_body]):""}};dart.setSignature(Request,{constructors:()=>({Request:[Request,[base_request_options.RequestOptions]]}),methods:()=>({text:[core.String,[]]})});exports.Request=Request});dart_library.library('angular2/src/http/static_response',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/http/base_response_options'],[],function(exports,dart,core,lang,base_response_options){'use strict';let dartx=dart.dartx;let _body=Symbol('_body');class Response extends core.Object{Response(responseOptions){this.type=null;this.ok=null;this.url=null;this.status=null;this.statusText=null;this.bytesLoaded=null;this.totalBytes=null;this.headers=null;this[_body]=null;this[_body]=responseOptions.body;this.status=responseOptions.status;this.statusText=responseOptions.statusText;this.headers=responseOptions.headers;this.type=responseOptions.type;this.url=responseOptions.url}blob(){dart.throw(new lang.BaseException("\"blob()\" method not implemented on Response superclass"))}json(){let jsonResponse=null;if(dart.notNull(lang.isJsObject(this[_body]))){jsonResponse=this[_body]}else if(dart.notNull(lang.isString(this[_body]))){jsonResponse=lang.Json.parse(dart.as(this[_body],core.String))}return jsonResponse}text(){return dart.toString(this[_body])}arrayBuffer(){dart.throw(new lang.BaseException("\"arrayBuffer()\" method not implemented on Response superclass"))}};dart.setSignature(Response,{constructors:()=>({Response:[Response,[base_response_options.ResponseOptions]]}),methods:()=>({arrayBuffer:[dart.dynamic,[]],blob:[dart.dynamic,[]],json:[core.Object,[]],text:[core.String,[]]})});exports.Response=Response});dart_library.library('angular2/src/http/url_search_params',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/facade/collection'],[],function(exports,dart,core,lang,collection){'use strict';let dartx=dart.dartx;function paramParser(rawParams){let map=core.Map$(core.String,core.List$(core.String)).new();let params=lang.StringWrapper.split(rawParams,core.RegExp.new("&"));collection.ListWrapper.forEach(params,dart.fn(param=>{let split=lang.StringWrapper.split(param,core.RegExp.new("="));let key=collection.ListWrapper.get(split,0);let val=collection.ListWrapper.get(split,1);let list=dart.notNull(lang.isPresent(map.get(key)))?map.get(key):[];dart.dcall(list[dartx.add],val);map.set(dart.as(key,core.String),dart.as(list,core.List$(core.String)))},dart.dynamic,[core.String]));return map}dart.fn(paramParser,core.Map$(core.String,core.List$(core.String)),[core.String]);class URLSearchParams extends core.Object{URLSearchParams(rawParams){this.rawParams=rawParams;this.paramsMap=null;this.paramsMap=paramParser(this.rawParams)}has(param){return this.paramsMap.containsKey(param)}get(param){let storedParam=this.paramsMap.get(param);if(dart.notNull(collection.isListLikeIterable(storedParam))){return dart.as(collection.ListWrapper.first(storedParam),core.String)}else{return null}}getAll(param){let mapParam=this.paramsMap.get(param);return dart.notNull(lang.isPresent(mapParam))?mapParam:dart.list([],core.String)}append(param,val){let mapParam=this.paramsMap.get(param);let list=dart.notNull(lang.isPresent(mapParam))?mapParam:[];dart.dcall(list[dartx.add],val);this.paramsMap.set(param,dart.as(list,core.List$(core.String)))}toString(){let paramsList=[];collection.MapWrapper.forEach(this.paramsMap,dart.fn((values,k)=>{collection.ListWrapper.forEach(dart.as(values,core.Iterable),dart.fn(v=>{paramsList[dartx.add](dart.dsend(dart.dsend(k,'+',"="),'+',v))}))}));return collection.ListWrapper.join(paramsList,"&")}delete(param){collection.MapWrapper.delete(this.paramsMap,param)}};dart.setSignature(URLSearchParams,{constructors:()=>({URLSearchParams:[URLSearchParams,[core.String]]}),methods:()=>({append:[dart.void,[core.String,core.String]],delete:[dart.void,[dart.dynamic]],get:[core.String,[core.String]],getAll:[core.List$(core.String),[core.String]],has:[core.bool,[core.String]]})});exports.paramParser=paramParser;exports.URLSearchParams=URLSearchParams});dart_library.library('angular2/src/reflection/platform_reflection_capabilities',null,["dart_runtime/dart",'dart/core'],[],function(exports,dart,core){'use strict';let dartx=dart.dartx;class PlatformReflectionCapabilities extends core.Object{};exports.PlatformReflectionCapabilities=PlatformReflectionCapabilities});dart_library.library('angular2/src/reflection/reflection',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/reflection/platform_reflection_capabilities','angular2/src/reflection/types','angular2/src/reflection/reflector'],[],function(exports,dart,core,lang,platform_reflection_capabilities,types,reflector){'use strict';let dartx=dart.dartx;class NoReflectionCapabilities extends core.Object{factory(type){dart.throw(`Cannot find reflection information on ${lang.stringify(type)}`)}interfaces(type){dart.throw(`Cannot find reflection information on ${lang.stringify(type)}`)}parameters(type){dart.throw(`Cannot find reflection information on ${lang.stringify(type)}`)}annotations(type){dart.throw(`Cannot find reflection information on ${lang.stringify(type)}`)}getter(name){dart.throw(`Cannot find getter ${name }`)}setter(name){dart.throw(`Cannot find setter ${name }`)}method(name){dart.throw(`Cannot find method ${name }`)}};NoReflectionCapabilities[dart.implements]=()=>[platform_reflection_capabilities.PlatformReflectionCapabilities];dart.setSignature(NoReflectionCapabilities,{methods:()=>({annotations:[core.List,[core.Type]],factory:[core.Function,[core.Type]],getter:[types.GetterFn,[core.String]],interfaces:[core.List,[core.Type]],method:[types.MethodFn,[core.String]],parameters:[core.List,[core.Type]],setter:[types.SetterFn,[core.String]]})});dart.defineLazyProperties(exports,{get reflector(){return new reflector.Reflector(new NoReflectionCapabilities())}});exports.NoReflectionCapabilities=NoReflectionCapabilities});dart_library.library('angular2/src/reflection/reflection_capabilities',null,["dart_runtime/dart",'dart/core','dart/mirrors','angular2/src/facade/lang','angular2/src/reflection/platform_reflection_capabilities','angular2/src/reflection/types'],[],function(exports,dart,core,mirrors,lang,platform_reflection_capabilities,types){'use strict';let dartx=dart.dartx;let _constructorParameters=Symbol('_constructorParameters');let _functionParameters=Symbol('_functionParameters');let _convertParameter=Symbol('_convertParameter');let _constructorMetadata=Symbol('_constructorMetadata');let _functionMetadata=Symbol('_functionMetadata');class ReflectionCapabilities extends core.Object{ReflectionCapabilities(metadataReader){if(metadataReader===void 0)metadataReader=null;}factory(type){let classMirror=dart.as(mirrors.reflectType(type),mirrors.ClassMirror);let ctor=dart.as(classMirror.declarations.get(classMirror.simpleName),mirrors.MethodMirror);let create=dart.bind(classMirror,'newInstance');let name=ctor.constructorName;let length=ctor.parameters[dartx.length];switch(length){case 0:{return dart.fn(()=>dart.dload(dart.dcall(create,name,[]),'reflectee'))}case 1:{return dart.fn(a1=>dart.dload(dart.dcall(create,name,[a1]),'reflectee'))}case 2:{return dart.fn((a1,a2)=>dart.dload(dart.dcall(create,name,[a1,a2]),'reflectee'))}case 3:{return dart.fn((a1,a2,a3)=>dart.dload(dart.dcall(create,name,[a1,a2,a3]),'reflectee'))}case 4:{return dart.fn((a1,a2,a3,a4)=>dart.dload(dart.dcall(create,name,[a1,a2,a3,a4]),'reflectee'))}case 5:{return dart.fn((a1,a2,a3,a4,a5)=>dart.dload(dart.dcall(create,name,[a1,a2,a3,a4,a5]),'reflectee'))}case 6:{return dart.fn((a1,a2,a3,a4,a5,a6)=>dart.dload(dart.dcall(create,name,[a1,a2,a3,a4,a5,a6]),'reflectee'))}case 7:{return dart.fn((a1,a2,a3,a4,a5,a6,a7)=>dart.dload(dart.dcall(create,name,[a1,a2,a3,a4,a5,a6,a7]),'reflectee'))}case 8:{return dart.fn((a1,a2,a3,a4,a5,a6,a7,a8)=>dart.dload(dart.dcall(create,name,[a1,a2,a3,a4,a5,a6,a7,a8]),'reflectee'))}case 9:{return dart.fn((a1,a2,a3,a4,a5,a6,a7,a8,a9)=>dart.dload(dart.dcall(create,name,[a1,a2,a3,a4,a5,a6,a7,a8,a9]),'reflectee'))}case 10:{return dart.fn((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)=>dart.dload(dart.dcall(create,name,[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10]),'reflectee'))}case 11:{return dart.fn((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)=>dart.dload(dart.dcall(create,name,[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11]),'reflectee'))}case 12:{return dart.fn((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)=>dart.dload(dart.dcall(create,name,[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12]),'reflectee'))}case 13:{return dart.fn((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)=>dart.dload(dart.dcall(create,name,[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13]),'reflectee'))}case 14:{return dart.fn((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)=>dart.dload(dart.dcall(create,name,[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14]),'reflectee'))}case 15:{return dart.fn((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)=>dart.dload(dart.dcall(create,name,[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15]),'reflectee'))}case 16:{return dart.fn((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16)=>dart.dload(dart.dcall(create,name,[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16]),'reflectee'))}case 17:{return dart.fn((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17)=>dart.dload(dart.dcall(create,name,[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17]),'reflectee'))}case 18:{return dart.fn((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18)=>dart.dload(dart.dcall(create,name,[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18]),'reflectee'))}case 19:{return dart.fn((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19)=>dart.dload(dart.dcall(create,name,[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19]),'reflectee'))}case 20:{return dart.fn((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20)=>dart.dload(dart.dcall(create,name,[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20]),'reflectee'))}}dart.throw(`Cannot create a factory for '${lang.stringify(type)}' because its constructor has more than 20 arguments`)}parameters(typeOrFunc){let parameters=dart.is(typeOrFunc,core.Type)?this[_constructorParameters](dart.as(typeOrFunc,core.Type)):this[_functionParameters](dart.as(typeOrFunc,core.Function));return dart.as(parameters[dartx.map](dart.bind(this,_convertParameter))[dartx.toList](),core.List$(core.List))}[_convertParameter](p){let t=p.type;let res= !dart.notNull(t.hasReflectedType)||dart.equals(t.reflectedType,dart.dynamic)?[]:[t.reflectedType];res[dartx.addAll](p.metadata[dartx.map](dart.fn(m=>dart.dload(m,'reflectee'))));return res}annotations(typeOrFunc){let meta=dart.is(typeOrFunc,core.Type)?this[_constructorMetadata](dart.as(typeOrFunc,core.Type)):this[_functionMetadata](dart.as(typeOrFunc,core.Function));return meta[dartx.map](dart.fn(m=>dart.dload(m,'reflectee')))[dartx.toList]()}interfaces(type){let classMirror=dart.as(mirrors.reflectType(dart.as(type,core.Type)),mirrors.ClassMirror);return classMirror.superinterfaces[dartx.map](dart.fn(si=>dart.dload(si,'reflectedType')))[dartx.toList]()}getter(name){let symbol=core.Symbol.new(name);return dart.fn(receiver=>mirrors.reflect(receiver).getField(symbol).reflectee)}setter(name){let symbol=core.Symbol.new(name);return dart.fn((receiver,value)=>mirrors.reflect(receiver).setField(symbol,value).reflectee)}method(name){let symbol=core.Symbol.new(name);return dart.fn((receiver,posArgs)=>mirrors.reflect(receiver).invoke(symbol,dart.as(posArgs,core.List)).reflectee)}[_functionParameters](func){let closureMirror=mirrors.reflect(func);return dart.as(dart.dload(closureMirror.function,'parameters'),core.List)}[_constructorParameters](type){let classMirror=dart.as(mirrors.reflectType(type),mirrors.ClassMirror);let ctor=dart.as(classMirror.declarations.get(classMirror.simpleName),mirrors.MethodMirror);return ctor.parameters}[_functionMetadata](func){let closureMirror=mirrors.reflect(func);return dart.as(dart.dload(closureMirror.function,'metadata'),core.List)}[_constructorMetadata](type){let classMirror=dart.as(mirrors.reflectType(type),mirrors.ClassMirror);return classMirror.metadata}};ReflectionCapabilities[dart.implements]=()=>[platform_reflection_capabilities.PlatformReflectionCapabilities];dart.setSignature(ReflectionCapabilities,{constructors:()=>({ReflectionCapabilities:[ReflectionCapabilities,[],[dart.dynamic]]}),methods:()=>({[_constructorMetadata]:[core.List,[core.Type]],[_constructorParameters]:[core.List,[core.Type]],[_functionParameters]:[core.List,[core.Function]],[_convertParameter]:[core.List,[mirrors.ParameterMirror]],[_functionMetadata]:[core.List,[core.Function]],annotations:[core.List,[dart.dynamic]],factory:[core.Function,[core.Type]],getter:[types.GetterFn,[core.String]],interfaces:[core.List,[dart.dynamic]],method:[types.MethodFn,[core.String]],parameters:[core.List$(core.List),[dart.dynamic]],setter:[types.SetterFn,[core.String]]})});exports.ReflectionCapabilities=ReflectionCapabilities});dart_library.library('angular2/src/reflection/reflector',null,["dart_runtime/dart",'dart/core','angular2/src/reflection/types','angular2/src/facade/lang','angular2/src/reflection/platform_reflection_capabilities','angular2/src/facade/collection'],[],function(exports,dart,core,types,lang,platform_reflection_capabilities,collection){'use strict';let dartx=dart.dartx;let _injectableInfo=Symbol('_injectableInfo');let _getters=Symbol('_getters');let _setters=Symbol('_setters');let _methods=Symbol('_methods');let _containsTypeInfo=Symbol('_containsTypeInfo');let _getTypeInfoField=Symbol('_getTypeInfoField');class Reflector extends core.Object{Reflector(reflectionCapabilities){this[_injectableInfo]=null;this[_getters]=null;this[_setters]=null;this[_methods]=null;this.reflectionCapabilities=null;this[_injectableInfo]=core.Map$(dart.dynamic,core.Map$(core.String,dart.dynamic)).new();this[_getters]=core.Map$(core.String,types.GetterFn).new();this[_setters]=core.Map$(core.String,types.SetterFn).new();this[_methods]=core.Map$(core.String,types.MethodFn).new();this.reflectionCapabilities=reflectionCapabilities}registerFunction(func,funcInfo){this[_injectableInfo].set(func,funcInfo)}registerType(type,typeInfo){this[_injectableInfo].set(type,typeInfo)}registerGetters(getters){_mergeMaps(this[_getters],getters)}registerSetters(setters){_mergeMaps(this[_setters],setters)}registerMethods(methods){_mergeMaps(this[_methods],methods)}factory(type){if(dart.notNull(dart.as(this[_containsTypeInfo](type),core.bool))){return dart.as(this[_getTypeInfoField](type,"factory",null),core.Function)}else{return this.reflectionCapabilities.factory(type)}}parameters(typeOrFunc){if(dart.notNull(this[_injectableInfo].containsKey(typeOrFunc))){return dart.as(this[_getTypeInfoField](typeOrFunc,"parameters",[]),core.List)}else{return this.reflectionCapabilities.parameters(dart.as(typeOrFunc,core.Type))}}annotations(typeOrFunc){if(dart.notNull(this[_injectableInfo].containsKey(typeOrFunc))){return dart.as(this[_getTypeInfoField](typeOrFunc,"annotations",[]),core.List)}else{return this.reflectionCapabilities.annotations(dart.as(typeOrFunc,core.Type))}}interfaces(type){if(dart.notNull(this[_injectableInfo].containsKey(type))){return dart.as(this[_getTypeInfoField](type,"interfaces",[]),core.List)}else{return this.reflectionCapabilities.interfaces(dart.as(type,core.Type))}}getter(name){if(dart.notNull(this[_getters].containsKey(name))){return this[_getters].get(name)}else{return this.reflectionCapabilities.getter(name)}}setter(name){if(dart.notNull(this[_setters].containsKey(name))){return this[_setters].get(name)}else{return this.reflectionCapabilities.setter(name)}}method(name){if(dart.notNull(this[_methods].containsKey(name))){return this[_methods].get(name)}else{return this.reflectionCapabilities.method(name)}}[_getTypeInfoField](typeOrFunc,key,defaultValue){let res=this[_injectableInfo].get(typeOrFunc).get(key);return dart.notNull(lang.isPresent(res))?res:defaultValue}[_containsTypeInfo](typeOrFunc){return this[_injectableInfo].containsKey(typeOrFunc)}};dart.setSignature(Reflector,{constructors:()=>({Reflector:[Reflector,[platform_reflection_capabilities.PlatformReflectionCapabilities]]}),methods:()=>({[_containsTypeInfo]:[dart.dynamic,[dart.dynamic]],[_getTypeInfoField]:[dart.dynamic,[dart.dynamic,dart.dynamic,dart.dynamic]],annotations:[core.List,[dart.dynamic]],factory:[core.Function,[core.Type]],getter:[types.GetterFn,[core.String]],interfaces:[core.List,[dart.dynamic]],method:[types.MethodFn,[core.String]],parameters:[core.List,[dart.dynamic]],registerFunction:[dart.void,[core.Function,core.Map$(core.String,dart.dynamic)]],registerGetters:[dart.void,[core.Map$(core.String,types.GetterFn)]],registerMethods:[dart.void,[core.Map$(core.String,types.MethodFn)]],registerSetters:[dart.void,[core.Map$(core.String,types.SetterFn)]],registerType:[dart.void,[core.Type,core.Map$(core.String,dart.dynamic)]],setter:[types.SetterFn,[core.String]]})});function _mergeMaps(target,config){collection.StringMapWrapper.forEach(config,dart.fn((v,k)=>target.set(k,v)))}dart.fn(_mergeMaps,dart.void,[core.Map,core.Map$(core.String,core.Function)]);exports.Reflector=Reflector});dart_library.library('angular2/src/reflection/types',null,["dart_runtime/dart",'dart/core'],[],function(exports,dart,core){'use strict';let dartx=dart.dartx;let SetterFn=dart.typedef('SetterFn',()=>dart.functionType(dart.dynamic,[core.Object,dart.dynamic]));let GetterFn=dart.typedef('GetterFn',()=>dart.functionType(dart.dynamic,[core.Object]));let MethodFn=dart.typedef('MethodFn',()=>dart.functionType(dart.dynamic,[core.Object,core.List]));exports.SetterFn=SetterFn;exports.GetterFn=GetterFn;exports.MethodFn=MethodFn});dart_library.library('angular2/src/render/api',null,["dart_runtime/dart",'dart/core','angular2/src/change_detection/parser/ast','angular2/src/facade/lang','angular2/src/facade/collection','dart/async'],[],function(exports,dart,core,ast,lang,collection,async){'use strict';let dartx=dart.dartx;class EventBinding extends core.Object{EventBinding(fullName,source){this.fullName=fullName;this.source=source}};dart.setSignature(EventBinding,{constructors:()=>({EventBinding:[EventBinding,[core.String,ast.ASTWithSource]]})});class PropertyBindingType extends core.Object{PropertyBindingType(index){this.index=index}toString(){return{0:"PropertyBindingType.PROPERTY",1:"PropertyBindingType.ATTRIBUTE",2:"PropertyBindingType.CLASS",3:"PropertyBindingType.STYLE"}[this.index]}};PropertyBindingType.PROPERTY=dart.const(new PropertyBindingType(0));PropertyBindingType.ATTRIBUTE=dart.const(new PropertyBindingType(1));PropertyBindingType.CLASS=dart.const(new PropertyBindingType(2));PropertyBindingType.STYLE=dart.const(new PropertyBindingType(3));PropertyBindingType.values=dart.const(dart.list([PropertyBindingType.PROPERTY,PropertyBindingType.ATTRIBUTE,PropertyBindingType.CLASS,PropertyBindingType.STYLE],PropertyBindingType));class ElementPropertyBinding extends core.Object{ElementPropertyBinding(type,astWithSource,property,unit){if(unit===void 0)unit=null;this.type=type;this.astWithSource=astWithSource;this.property=property;this.unit=unit}};dart.setSignature(ElementPropertyBinding,{constructors:()=>({ElementPropertyBinding:[ElementPropertyBinding,[PropertyBindingType,ast.ASTWithSource,core.String],[core.String]]})});class ElementBinder extends core.Object{ElementBinder(opts){let index=opts&&'index'in opts?opts.index:null;let parentIndex=opts&&'parentIndex'in opts?opts.parentIndex:null;let distanceToParent=opts&&'distanceToParent'in opts?opts.distanceToParent:null;let directives=opts&&'directives'in opts?opts.directives:null;let nestedProtoView=opts&&'nestedProtoView'in opts?opts.nestedProtoView:null;let propertyBindings=opts&&'propertyBindings'in opts?opts.propertyBindings:null;let variableBindings=opts&&'variableBindings'in opts?opts.variableBindings:null;let eventBindings=opts&&'eventBindings'in opts?opts.eventBindings:null;let textBindings=opts&&'textBindings'in opts?opts.textBindings:null;let readAttributes=opts&&'readAttributes'in opts?opts.readAttributes:null;this.index=null;this.parentIndex=null;this.distanceToParent=null;this.directives=null;this.nestedProtoView=null;this.propertyBindings=null;this.variableBindings=null;this.eventBindings=null;this.textBindings=null;this.readAttributes=null;this.index=dart.as(index,core.num);this.parentIndex=dart.as(parentIndex,core.num);this.distanceToParent=dart.as(distanceToParent,core.num);this.directives=dart.as(directives,core.List$(DirectiveBinder));this.nestedProtoView=dart.as(nestedProtoView,ProtoViewDto);this.propertyBindings=dart.as(propertyBindings,core.List$(ElementPropertyBinding));this.variableBindings=dart.as(variableBindings,core.Map$(core.String,core.String));this.eventBindings=dart.as(eventBindings,core.List$(EventBinding));this.textBindings=dart.as(textBindings,core.List$(ast.ASTWithSource));this.readAttributes=dart.as(readAttributes,core.Map$(core.String,core.String))}};dart.setSignature(ElementBinder,{constructors:()=>({ElementBinder:[ElementBinder,[],{directives:dart.dynamic,distanceToParent:dart.dynamic,eventBindings:dart.dynamic,index:dart.dynamic,nestedProtoView:dart.dynamic,parentIndex:dart.dynamic,propertyBindings:dart.dynamic,readAttributes:dart.dynamic,textBindings:dart.dynamic,variableBindings:dart.dynamic}]})});class DirectiveBinder extends core.Object{DirectiveBinder(opts){let directiveIndex=opts&&'directiveIndex'in opts?opts.directiveIndex:null;let propertyBindings=opts&&'propertyBindings'in opts?opts.propertyBindings:null;let eventBindings=opts&&'eventBindings'in opts?opts.eventBindings:null;let hostPropertyBindings=opts&&'hostPropertyBindings'in opts?opts.hostPropertyBindings:null;this.directiveIndex=null;this.propertyBindings=null;this.eventBindings=null;this.hostPropertyBindings=null;this.directiveIndex=dart.as(directiveIndex,core.num);this.propertyBindings=dart.as(propertyBindings,core.Map$(core.String,ast.ASTWithSource));this.eventBindings=dart.as(eventBindings,core.List$(EventBinding));this.hostPropertyBindings=dart.as(hostPropertyBindings,core.List$(ElementPropertyBinding))}};dart.setSignature(DirectiveBinder,{constructors:()=>({DirectiveBinder:[DirectiveBinder,[],{directiveIndex:dart.dynamic,eventBindings:dart.dynamic,hostPropertyBindings:dart.dynamic,propertyBindings:dart.dynamic}]})});class ViewType extends core.Object{ViewType(index){this.index=index}toString(){return{0:"ViewType.HOST",1:"ViewType.COMPONENT",2:"ViewType.EMBEDDED"}[this.index]}};ViewType.HOST=dart.const(new ViewType(0));ViewType.COMPONENT=dart.const(new ViewType(1));ViewType.EMBEDDED=dart.const(new ViewType(2));ViewType.values=dart.const(dart.list([ViewType.HOST,ViewType.COMPONENT,ViewType.EMBEDDED],ViewType));class ProtoViewDto extends core.Object{ProtoViewDto(opts){let render=opts&&'render'in opts?opts.render:null;let elementBinders=opts&&'elementBinders'in opts?opts.elementBinders:null;let variableBindings=opts&&'variableBindings'in opts?opts.variableBindings:null;let type=opts&&'type'in opts?opts.type:null;this.render=null;this.elementBinders=null;this.variableBindings=null;this.type=null;this.render=dart.as(render,RenderProtoViewRef);this.elementBinders=dart.as(elementBinders,core.List$(ElementBinder));this.variableBindings=dart.as(variableBindings,core.Map$(core.String,core.String));this.type=dart.as(type,ViewType)}};dart.setSignature(ProtoViewDto,{constructors:()=>({ProtoViewDto:[ProtoViewDto,[],{elementBinders:dart.dynamic,render:dart.dynamic,type:dart.dynamic,variableBindings:dart.dynamic}]})});dart.defineLazyProperties(exports,{get hostRegExp(){return lang.RegExpWrapper.create("^(?:(?:\\[([^\\]]+)\\])|(?:\\(([^\\)]+)\\))|(?:@(.+)))$")},set hostRegExp(_){}});class DirectiveMetadata extends core.Object{static get DIRECTIVE_TYPE(){return 0}static get COMPONENT_TYPE(){return 1}DirectiveMetadata(opts){let id=opts&&'id'in opts?opts.id:null;let selector=opts&&'selector'in opts?opts.selector:null;let compileChildren=opts&&'compileChildren'in opts?opts.compileChildren:null;let events=opts&&'events'in opts?opts.events:null;let hostListeners=opts&&'hostListeners'in opts?opts.hostListeners:null;let hostProperties=opts&&'hostProperties'in opts?opts.hostProperties:null;let hostAttributes=opts&&'hostAttributes'in opts?opts.hostAttributes:null;let hostActions=opts&&'hostActions'in opts?opts.hostActions:null;let properties=opts&&'properties'in opts?opts.properties:null;let readAttributes=opts&&'readAttributes'in opts?opts.readAttributes:null;let type=opts&&'type'in opts?opts.type:null;let callOnDestroy=opts&&'callOnDestroy'in opts?opts.callOnDestroy:null;let callOnChange=opts&&'callOnChange'in opts?opts.callOnChange:null;let callOnCheck=opts&&'callOnCheck'in opts?opts.callOnCheck:null;let callOnInit=opts&&'callOnInit'in opts?opts.callOnInit:null;let callOnAllChangesDone=opts&&'callOnAllChangesDone'in opts?opts.callOnAllChangesDone:null;let changeDetection=opts&&'changeDetection'in opts?opts.changeDetection:null;let exportAs=opts&&'exportAs'in opts?opts.exportAs:null;this.id=null;this.selector=null;this.compileChildren=null;this.events=null;this.properties=null;this.readAttributes=null;this.type=null;this.callOnDestroy=null;this.callOnChange=null;this.callOnCheck=null;this.callOnInit=null;this.callOnAllChangesDone=null;this.changeDetection=null;this.exportAs=null;this.hostListeners=null;this.hostProperties=null;this.hostAttributes=null;this.hostActions=null;this.id=id;this.selector=dart.as(selector,core.String);this.compileChildren=dart.notNull(lang.isPresent(compileChildren))?dart.as(compileChildren,core.bool):true;this.events=dart.as(events,core.List$(core.String));this.hostListeners=dart.as(hostListeners,core.Map$(core.String,core.String));this.hostAttributes=dart.as(hostAttributes,core.Map$(core.String,core.String));this.hostProperties=dart.as(hostProperties,core.Map$(core.String,core.String));this.hostActions=dart.as(hostActions,core.Map$(core.String,core.String));this.properties=dart.as(properties,core.List$(core.String));this.readAttributes=dart.as(readAttributes,core.List$(core.String));this.type=dart.as(type,core.num);this.callOnDestroy=dart.as(callOnDestroy,core.bool);this.callOnChange=dart.as(callOnChange,core.bool);this.callOnCheck=dart.as(callOnCheck,core.bool);this.callOnInit=dart.as(callOnInit,core.bool);this.callOnAllChangesDone=dart.as(callOnAllChangesDone,core.bool);this.changeDetection=dart.as(changeDetection,core.String);this.exportAs=dart.as(exportAs,core.String)}static create(opts){let id=opts&&'id'in opts?opts.id:null;let selector=opts&&'selector'in opts?opts.selector:null;let compileChildren=opts&&'compileChildren'in opts?opts.compileChildren:null;let events=opts&&'events'in opts?opts.events:null;let host=opts&&'host'in opts?opts.host:null;let properties=opts&&'properties'in opts?opts.properties:null;let readAttributes=opts&&'readAttributes'in opts?opts.readAttributes:null;let type=opts&&'type'in opts?opts.type:null;let callOnDestroy=opts&&'callOnDestroy'in opts?opts.callOnDestroy:null;let callOnChange=opts&&'callOnChange'in opts?opts.callOnChange:null;let callOnCheck=opts&&'callOnCheck'in opts?opts.callOnCheck:null;let callOnInit=opts&&'callOnInit'in opts?opts.callOnInit:null;let callOnAllChangesDone=opts&&'callOnAllChangesDone'in opts?opts.callOnAllChangesDone:null;let changeDetection=opts&&'changeDetection'in opts?opts.changeDetection:null;let exportAs=opts&&'exportAs'in opts?opts.exportAs:null;let hostListeners=core.Map.new();let hostProperties=core.Map.new();let hostAttributes=core.Map.new();let hostActions=core.Map.new();if(dart.notNull(lang.isPresent(host))){collection.MapWrapper.forEach(dart.as(host,core.Map),dart.fn((value,key)=>{let matches=lang.RegExpWrapper.firstMatch(exports.hostRegExp,key);if(dart.notNull(lang.isBlank(matches))){hostAttributes.set(key,value)}else if(dart.notNull(lang.isPresent(matches.get(1)))){hostProperties.set(matches.get(1),value)}else if(dart.notNull(lang.isPresent(matches.get(2)))){hostListeners.set(matches.get(2),value)}else if(dart.notNull(lang.isPresent(matches.get(3)))){hostActions.set(matches.get(3),value)}},dart.dynamic,[core.String,core.String]))}return new DirectiveMetadata({callOnAllChangesDone:callOnAllChangesDone,callOnChange:callOnChange,callOnCheck:callOnCheck,callOnDestroy:callOnDestroy,callOnInit:callOnInit,changeDetection:changeDetection,compileChildren:compileChildren,events:events,exportAs:exportAs,hostActions:hostActions,hostAttributes:hostAttributes,hostListeners:hostListeners,hostProperties:hostProperties,id:id,properties:properties,readAttributes:readAttributes,selector:selector,type:type})}};dart.setSignature(DirectiveMetadata,{constructors:()=>({DirectiveMetadata:[DirectiveMetadata,[],{callOnAllChangesDone:dart.dynamic,callOnChange:dart.dynamic,callOnCheck:dart.dynamic,callOnDestroy:dart.dynamic,callOnInit:dart.dynamic,changeDetection:dart.dynamic,compileChildren:dart.dynamic,events:dart.dynamic,exportAs:dart.dynamic,hostActions:dart.dynamic,hostAttributes:dart.dynamic,hostListeners:dart.dynamic,hostProperties:dart.dynamic,id:dart.dynamic,properties:dart.dynamic,readAttributes:dart.dynamic,selector:dart.dynamic,type:dart.dynamic}]}),names:['create'],statics:()=>({create:[DirectiveMetadata,[],{callOnAllChangesDone:dart.dynamic,callOnChange:dart.dynamic,callOnCheck:dart.dynamic,callOnDestroy:dart.dynamic,callOnInit:dart.dynamic,changeDetection:dart.dynamic,compileChildren:dart.dynamic,events:dart.dynamic,exportAs:dart.dynamic,host:dart.dynamic,id:dart.dynamic,properties:dart.dynamic,readAttributes:dart.dynamic,selector:dart.dynamic,type:dart.dynamic}]})});class RenderProtoViewRef extends core.Object{};class RenderViewRef extends core.Object{};class ViewDefinition extends core.Object{ViewDefinition(opts){let componentId=opts&&'componentId'in opts?opts.componentId:null;let templateAbsUrl=opts&&'templateAbsUrl'in opts?opts.templateAbsUrl:null;let template=opts&&'template'in opts?opts.template:null;let styleAbsUrls=opts&&'styleAbsUrls'in opts?opts.styleAbsUrls:null;let styles=opts&&'styles'in opts?opts.styles:null;let directives=opts&&'directives'in opts?opts.directives:null;this.componentId=null;this.templateAbsUrl=null;this.template=null;this.directives=null;this.styleAbsUrls=null;this.styles=null;this.componentId=dart.as(componentId,core.String);this.templateAbsUrl=dart.as(templateAbsUrl,core.String);this.template=dart.as(template,core.String);this.styleAbsUrls=dart.as(styleAbsUrls,core.List$(core.String));this.styles=dart.as(styles,core.List$(core.String));this.directives=dart.as(directives,core.List$(DirectiveMetadata))}};dart.setSignature(ViewDefinition,{constructors:()=>({ViewDefinition:[ViewDefinition,[],{componentId:dart.dynamic,directives:dart.dynamic,styleAbsUrls:dart.dynamic,styles:dart.dynamic,template:dart.dynamic,templateAbsUrl:dart.dynamic}]})});class RenderCompiler extends core.Object{compileHost(directiveMetadata){return null}compile(view){return null}};dart.setSignature(RenderCompiler,{methods:()=>({compile:[async.Future$(ProtoViewDto),[ViewDefinition]],compileHost:[async.Future$(ProtoViewDto),[DirectiveMetadata]]})});class RenderElementRef extends core.Object{RenderElementRef(){this.renderView=null;this.boundElementIndex=null}};class Renderer extends core.Object{createRootHostView(hostProtoViewRef,hostElementSelector){return null}createView(protoViewRef){return null}destroyView(viewRef){}attachComponentView(location,componentViewRef){}detachComponentView(location,componentViewRef){}attachViewInContainer(location,atIndex,viewRef){}detachViewInContainer(location,atIndex,viewRef){}hydrateView(viewRef){}dehydrateView(viewRef){}getNativeElementSync(location){return null}setElementProperty(location,propertyName,propertyValue){}setElementAttribute(location,attributeName,attributeValue){}setElementClass(location,className,isAdd){}setElementStyle(location,styleName,styleValue){}invokeElementMethod(location,methodName,args){}setText(viewRef,textNodeIndex,text){}setEventDispatcher(viewRef,dispatcher){}};dart.setSignature(Renderer,{methods:()=>({attachComponentView:[dart.dynamic,[RenderElementRef,RenderViewRef]],attachViewInContainer:[dart.dynamic,[RenderElementRef,core.num,RenderViewRef]],createRootHostView:[RenderViewRef,[RenderProtoViewRef,core.String]],createView:[RenderViewRef,[RenderProtoViewRef]],dehydrateView:[dart.dynamic,[RenderViewRef]],destroyView:[dart.dynamic,[RenderViewRef]],detachComponentView:[dart.dynamic,[RenderElementRef,RenderViewRef]],detachViewInContainer:[dart.dynamic,[RenderElementRef,core.num,RenderViewRef]],getNativeElementSync:[dart.dynamic,[RenderElementRef]],hydrateView:[dart.dynamic,[RenderViewRef]],invokeElementMethod:[dart.dynamic,[RenderElementRef,core.String,core.List]],setElementAttribute:[dart.dynamic,[RenderElementRef,core.String,core.String]],setElementClass:[dart.dynamic,[RenderElementRef,core.String,core.bool]],setElementProperty:[dart.dynamic,[RenderElementRef,core.String,dart.dynamic]],setElementStyle:[dart.dynamic,[RenderElementRef,core.String,core.String]],setEventDispatcher:[dart.dynamic,[RenderViewRef,EventDispatcher]],setText:[dart.dynamic,[RenderViewRef,core.num,core.String]]})});class EventDispatcher extends core.Object{};exports.EventBinding=EventBinding;exports.PropertyBindingType=PropertyBindingType;exports.ElementPropertyBinding=ElementPropertyBinding;exports.ElementBinder=ElementBinder;exports.DirectiveBinder=DirectiveBinder;exports.ViewType=ViewType;exports.ProtoViewDto=ProtoViewDto;exports.DirectiveMetadata=DirectiveMetadata;exports.RenderProtoViewRef=RenderProtoViewRef;exports.RenderViewRef=RenderViewRef;exports.ViewDefinition=ViewDefinition;exports.RenderCompiler=RenderCompiler;exports.RenderElementRef=RenderElementRef;exports.Renderer=Renderer;exports.EventDispatcher=EventDispatcher});dart_library.library('angular2/src/render/dom/compiler/compile_control',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/render/dom/compiler/compile_element'],['angular2/src/render/dom/compiler/compile_step'],function(exports,dart,core,lang,compile_element,compile_step){'use strict';let dartx=dart.dartx;let _steps=Symbol('_steps');let _currentStepIndex=Symbol('_currentStepIndex');let _parent=Symbol('_parent');let _results=Symbol('_results');let _additionalChildren=Symbol('_additionalChildren');let _ignoreCurrentElement=Symbol('_ignoreCurrentElement');class CompileControl extends core.Object{CompileControl(steps){this[_steps]=steps;this[_currentStepIndex]=0;this[_parent]=null;this[_results]=null;this[_additionalChildren]=null;this[_ignoreCurrentElement]=null}internalProcess(results,startStepIndex,parent,current){this[_results]=results;let previousStepIndex=this[_currentStepIndex];let previousParent=this[_parent];this[_ignoreCurrentElement]=false;for(let i=startStepIndex;dart.notNull(dart.as(dart.dsend(i,'<',this[_steps][dartx.length]),core.bool))&& !dart.notNull(this[_ignoreCurrentElement]);i=dart.dsend(i,'+',1)){let step=this[_steps][dartx.get](dart.as(i,core.int));this[_parent]=parent;this[_currentStepIndex]=dart.as(i,core.num);step.process(parent,current,this);parent=this[_parent]}if(!dart.notNull(this[_ignoreCurrentElement])){results[dartx.add](current)}this[_currentStepIndex]=previousStepIndex;this[_parent]=previousParent;let localAdditionalChildren=this[_additionalChildren];this[_additionalChildren]=null;return localAdditionalChildren}addParent(newElement){this.internalProcess(this[_results],dart.notNull(this[_currentStepIndex])+1,this[_parent],newElement);this[_parent]=newElement}addChild(element){if(dart.notNull(lang.isBlank(this[_additionalChildren]))){this[_additionalChildren]=dart.list([],compile_element.CompileElement)}this[_additionalChildren][dartx.add](element)}ignoreCurrentElement(){this[_ignoreCurrentElement]=true}};dart.setSignature(CompileControl,{constructors:()=>({CompileControl:[CompileControl,[core.List$(compile_step.CompileStep)]]}),methods:()=>({addChild:[dart.dynamic,[compile_element.CompileElement]],addParent:[dart.dynamic,[compile_element.CompileElement]],ignoreCurrentElement:[dart.dynamic,[]],internalProcess:[core.List$(compile_element.CompileElement),[core.List,dart.dynamic,compile_element.CompileElement,compile_element.CompileElement]]})});exports.CompileControl=CompileControl});dart_library.library('angular2/src/render/dom/compiler/compile_element',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/dom/dom_adapter','angular2/src/render/dom/view/proto_view_builder','angular2/src/facade/collection'],[],function(exports,dart,core,lang,dom_adapter,proto_view_builder,collection){'use strict';let dartx=dart.dartx;let _attrs=Symbol('_attrs');let _classList=Symbol('_classList');class CompileElement extends core.Object{CompileElement(element,compilationUnit){if(compilationUnit===void 0)compilationUnit="";this.element=element;this[_attrs]=null;this[_classList]=null;this.isViewRoot=false;this.inheritedProtoView=null;this.distanceToInheritedBinder=0;this.inheritedElementBinder=null;this.compileChildren=true;this.elementDescription=null;let tplDesc=dart.notNull(lang.assertionsEnabled())?getElementDescription(this.element):null;if(!dart.notNull(core.identical(compilationUnit,""))){this.elementDescription=compilationUnit;if(dart.notNull(lang.isPresent(tplDesc))){this.elementDescription=dart.notNull(this.elementDescription)+(": "+dart.notNull(tplDesc))}}else{this.elementDescription=tplDesc}}isBound(){return dart.notNull(lang.isPresent(this.inheritedElementBinder))&&dart.notNull(core.identical(this.distanceToInheritedBinder,0))}bindElement(){if(!dart.notNull(this.isBound())){let parentBinder=this.inheritedElementBinder;this.inheritedElementBinder=this.inheritedProtoView.bindElement(this.element,this.elementDescription);if(dart.notNull(lang.isPresent(parentBinder))){this.inheritedElementBinder.setParent(parentBinder,this.distanceToInheritedBinder)}this.distanceToInheritedBinder=0}return this.inheritedElementBinder}refreshAttrs(){this[_attrs]=null}attrs(){if(dart.notNull(lang.isBlank(this[_attrs]))){this[_attrs]=dom_adapter.DOM.attributeMap(this.element)}return this[_attrs]}refreshClassList(){this[_classList]=null}classList(){if(dart.notNull(lang.isBlank(this[_classList]))){this[_classList]=dart.list([],core.String);let elClassList=dom_adapter.DOM.classList(this.element);for(let i=0;dart.notNull(i)<dart.notNull(elClassList[dartx.length]);i=dart.notNull(i)+1){this[_classList][dartx.add](dart.as(elClassList[dartx.get](i),core.String))}}return this[_classList]}};dart.setSignature(CompileElement,{constructors:()=>({CompileElement:[CompileElement,[dart.dynamic],[core.String]]}),methods:()=>({attrs:[core.Map$(core.String,core.String),[]],bindElement:[proto_view_builder.ElementBinderBuilder,[]],classList:[core.List$(core.String),[]],isBound:[core.bool,[]],refreshAttrs:[dart.dynamic,[]],refreshClassList:[dart.dynamic,[]]})});function getElementDescription(domElement){let buf=new lang.StringJoiner();let atts=dom_adapter.DOM.attributeMap(domElement);buf.add("<");buf.add(dom_adapter.DOM.tagName(domElement)[dartx.toLowerCase]());addDescriptionAttribute(buf,"id",atts.get("id"));addDescriptionAttribute(buf,"class",atts.get("class"));collection.MapWrapper.forEach(atts,dart.fn((attValue,attName)=>{if(!dart.notNull(core.identical(attName,"id"))&& !dart.notNull(core.identical(attName,"class"))){addDescriptionAttribute(buf,dart.as(attName,core.String),attValue)}}));buf.add(">");return dart.toString(buf)}dart.fn(getElementDescription,core.String,[dart.dynamic]);function addDescriptionAttribute(buffer,attName,attValue){if(dart.notNull(lang.isPresent(attValue))){if(dart.notNull(core.identical(dart.dload(attValue,'length'),0))){buffer.add(" "+dart.notNull(attName))}else{buffer.add(" "+dart.notNull(attName)+"=\""+dart.notNull(dart.as(attValue,core.String))+"\"")}}}dart.fn(addDescriptionAttribute,dart.dynamic,[lang.StringJoiner,core.String,dart.dynamic]);exports.CompileElement=CompileElement;exports.getElementDescription=getElementDescription;exports.addDescriptionAttribute=addDescriptionAttribute});dart_library.library('angular2/src/render/dom/compiler/compile_pipeline',null,["dart_runtime/dart",'dart/core','angular2/src/render/dom/compiler/compile_control','angular2/src/facade/lang','angular2/src/render/api','angular2/src/render/dom/compiler/compile_element','angular2/src/render/dom/view/proto_view_builder','angular2/src/dom/dom_adapter','angular2/src/render/dom/compiler/compile_step'],[],function(exports,dart,core,compile_control,lang,api,compile_element,proto_view_builder,dom_adapter,compile_step){'use strict';let dartx=dart.dartx;let _control=Symbol('_control');let _process=Symbol('_process');class CompilePipeline extends core.Object{CompilePipeline(steps){this[_control]=null;this[_control]=new compile_control.CompileControl(steps)}process(rootElement,protoViewType,compilationCtxtDescription){if(protoViewType===void 0)protoViewType=null;if(compilationCtxtDescription===void 0)compilationCtxtDescription="";if(dart.notNull(lang.isBlank(protoViewType))){protoViewType=api.ViewType.COMPONENT}let results=[];let rootCompileElement=new compile_element.CompileElement(rootElement,compilationCtxtDescription);rootCompileElement.inheritedProtoView=new proto_view_builder.ProtoViewBuilder(rootElement,protoViewType);rootCompileElement.isViewRoot=true;this[_process](results,null,rootCompileElement,compilationCtxtDescription);return dart.as(results,core.List$(compile_element.CompileElement))}[_process](results,parent,current,compilationCtxtDescription){if(compilationCtxtDescription===void 0)compilationCtxtDescription="";let additionalChildren=this[_control].internalProcess(dart.as(results,core.List),0,parent,current);if(dart.notNull(current.compileChildren)){let node=dom_adapter.DOM.firstChild(dom_adapter.DOM.templateAwareRoot(current.element));while(dart.notNull(lang.isPresent(node))){let nextNode=dom_adapter.DOM.nextSibling(node);if(dart.notNull(dom_adapter.DOM.isElementNode(node))){let childCompileElement=new compile_element.CompileElement(node,compilationCtxtDescription);childCompileElement.inheritedProtoView=current.inheritedProtoView;childCompileElement.inheritedElementBinder=current.inheritedElementBinder;childCompileElement.distanceToInheritedBinder=dart.notNull(current.distanceToInheritedBinder)+1;this[_process](results,current,childCompileElement)}node=nextNode}}if(dart.notNull(lang.isPresent(additionalChildren))){for(let i=0;dart.notNull(i)<dart.notNull(additionalChildren[dartx.length]);i=dart.notNull(i)+1){this[_process](results,current,additionalChildren[dartx.get](i))}}}};dart.setSignature(CompilePipeline,{constructors:()=>({CompilePipeline:[CompilePipeline,[core.List$(compile_step.CompileStep)]]}),methods:()=>({[_process]:[dart.dynamic,[dart.dynamic,compile_element.CompileElement,compile_element.CompileElement],[core.String]],process:[core.List$(compile_element.CompileElement),[dart.dynamic],[api.ViewType,core.String]]})});exports.CompilePipeline=CompilePipeline});dart_library.library('angular2/src/render/dom/compiler/compile_step',null,["dart_runtime/dart",'dart/core'],[],function(exports,dart,core){'use strict';let dartx=dart.dartx;class CompileStep extends core.Object{};exports.CompileStep=CompileStep});dart_library.library('angular2/src/render/dom/compiler/compile_step_factory',null,["dart_runtime/dart",'dart/core','angular2/src/render/dom/compiler/compile_step','angular2/src/render/api','angular2/src/render/dom/compiler/view_splitter','angular2/src/render/dom/compiler/property_binding_parser','angular2/src/render/dom/compiler/directive_parser','angular2/src/render/dom/compiler/text_interpolation_parser','angular2/src/render/dom/shadow_dom/shadow_dom_compile_step','angular2/src/change_detection/parser/parser','angular2/src/render/dom/shadow_dom/shadow_dom_strategy'],[],function(exports,dart,core,compile_step,api,view_splitter,property_binding_parser,directive_parser,text_interpolation_parser,shadow_dom_compile_step,parser,shadow_dom_strategy){'use strict';let dartx=dart.dartx;class CompileStepFactory extends core.Object{createSteps(view){return null}};dart.setSignature(CompileStepFactory,{methods:()=>({createSteps:[core.List$(compile_step.CompileStep),[api.ViewDefinition]]})});let _parser=Symbol('_parser');let _shadowDomStrategy=Symbol('_shadowDomStrategy');class DefaultStepFactory extends CompileStepFactory{DefaultStepFactory(parser,shadowDomStrategy){this[_parser]=parser;this[_shadowDomStrategy]=shadowDomStrategy;}createSteps(view){return dart.list([new view_splitter.ViewSplitter(this[_parser]),new property_binding_parser.PropertyBindingParser(this[_parser]),new directive_parser.DirectiveParser(this[_parser],view.directives),new text_interpolation_parser.TextInterpolationParser(this[_parser]),new shadow_dom_compile_step.ShadowDomCompileStep(this[_shadowDomStrategy],view)],compile_step.CompileStep)}};dart.setSignature(DefaultStepFactory,{constructors:()=>({DefaultStepFactory:[DefaultStepFactory,[parser.Parser,shadow_dom_strategy.ShadowDomStrategy]]})});exports.CompileStepFactory=CompileStepFactory;exports.DefaultStepFactory=DefaultStepFactory});dart_library.library('angular2/src/render/dom/compiler/compiler',null,["dart_runtime/dart",'angular2/src/render/api','angular2/src/facade/async','dart/async','angular2/src/facade/lang','angular2/src/dom/dom_adapter','angular2/src/render/dom/compiler/compile_pipeline','angular2/src/render/dom/compiler/compile_step_factory','angular2/src/render/dom/compiler/view_loader','angular2/src/change_detection/parser/parser','angular2/src/render/dom/shadow_dom/shadow_dom_strategy','angular2/src/di/annotations_impl'],[],function(exports,dart,api,async,async$,lang,dom_adapter,compile_pipeline,compile_step_factory,view_loader,parser,shadow_dom_strategy,annotations_impl){'use strict';let dartx=dart.dartx;let _stepFactory=Symbol('_stepFactory');let _viewLoader=Symbol('_viewLoader');let _compileTemplate=Symbol('_compileTemplate');class DomCompiler extends api.RenderCompiler{DomCompiler(stepFactory,viewLoader){this[_stepFactory]=stepFactory;this[_viewLoader]=viewLoader;}compile(view){let tplPromise=this[_viewLoader].load(view);return dart.as(async.PromiseWrapper.then(tplPromise,dart.fn(el=>this[_compileTemplate](view,el,api.ViewType.COMPONENT),async$.Future$(api.ProtoViewDto),[dart.dynamic]),dart.fn(e=>{dart.throw(new lang.BaseException(`Failed to load the template for "${view.componentId }" : ${e }`))})),async$.Future$(api.ProtoViewDto))}compileHost(directiveMetadata){let hostViewDef=new api.ViewDefinition({componentId:directiveMetadata.id,directives:[directiveMetadata],styleAbsUrls:null,styles:null,template:null,templateAbsUrl:null});let element=dom_adapter.DOM.createElement(directiveMetadata.selector);return this[_compileTemplate](hostViewDef,element,api.ViewType.HOST)}[_compileTemplate](viewDef,tplElement,protoViewType){let pipeline=new compile_pipeline.CompilePipeline(this[_stepFactory].createSteps(viewDef));let compileElements=pipeline.process(tplElement,protoViewType,viewDef.componentId);return dart.as(async.PromiseWrapper.resolve(compileElements[dartx.get](0).inheritedProtoView.build()),async$.Future$(api.ProtoViewDto))}};dart.setSignature(DomCompiler,{constructors:()=>({DomCompiler:[DomCompiler,[compile_step_factory.CompileStepFactory,view_loader.ViewLoader]]}),methods:()=>({[_compileTemplate]:[async$.Future$(api.ProtoViewDto),[api.ViewDefinition,dart.dynamic,api.ViewType]]})});class DefaultDomCompiler extends DomCompiler{DefaultDomCompiler(parser,shadowDomStrategy,viewLoader){super.DomCompiler(new compile_step_factory.DefaultStepFactory(parser,shadowDomStrategy),viewLoader);}};dart.setSignature(DefaultDomCompiler,{constructors:()=>({DefaultDomCompiler:[DefaultDomCompiler,[parser.Parser,shadow_dom_strategy.ShadowDomStrategy,view_loader.ViewLoader]]})});DefaultDomCompiler[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.DomCompiler=DomCompiler;exports.DefaultDomCompiler=DefaultDomCompiler});dart_library.library('angular2/src/render/dom/compiler/directive_parser',null,["dart_runtime/dart",'dart/core','angular2/src/render/dom/compiler/selector','angular2/src/render/api','angular2/src/facade/lang','angular2/src/dom/dom_adapter','angular2/src/facade/collection','angular2/src/render/dom/util','angular2/src/render/dom/compiler/compile_step','angular2/src/render/dom/compiler/compile_element','angular2/src/render/dom/compiler/compile_control','angular2/src/render/dom/view/proto_view_builder','angular2/src/change_detection/parser/parser'],[],function(exports,dart,core,selector$,api,lang,dom_adapter,collection,util,compile_step,compile_element,compile_control,proto_view_builder,parser){'use strict';let dartx=dart.dartx;let _selectorMatcher=Symbol('_selectorMatcher');let _parser=Symbol('_parser');let _directives=Symbol('_directives');let _ensureComponentOnlyHasElementSelector=Symbol('_ensureComponentOnlyHasElementSelector');let _ensureHasOnlyOneComponent=Symbol('_ensureHasOnlyOneComponent');let _bindDirectiveProperty=Symbol('_bindDirectiveProperty');let _bindDirectiveEvent=Symbol('_bindDirectiveEvent');let _bindHostProperty=Symbol('_bindHostProperty');let _addHostAttribute=Symbol('_addHostAttribute');let _splitBindConfig=Symbol('_splitBindConfig');class DirectiveParser extends core.Object{DirectiveParser(parser,directives){this[_selectorMatcher]=new selector$.SelectorMatcher();this[_parser]=parser;this[_directives]=directives;for(let i=0;dart.notNull(i)<dart.notNull(this[_directives][dartx.length]);i=dart.notNull(i)+1){let directive=this[_directives][dartx.get](i);let selector=selector$.CssSelector.parse(directive.selector);this[_ensureComponentOnlyHasElementSelector](selector,directive);this[_selectorMatcher].addSelectables(selector,i)}}[_ensureComponentOnlyHasElementSelector](selector,directive){let isElementSelector=dart.notNull(core.identical(dart.dload(selector,'length'),1))&&dart.notNull(dart.as(dart.dsend(dart.dindex(selector,0),'isElementSelector'),core.bool));if(!dart.notNull(isElementSelector)&&dart.notNull(core.identical(dart.dload(directive,'type'),api.DirectiveMetadata.COMPONENT_TYPE))){dart.throw(new lang.BaseException(`Component '${dart.dload(directive,'id')}' can only have an element selector, but had '${dart.dload(directive,'selector')}'`))}}process(parent,current,control){let attrs=current.attrs();let classList=current.classList();let cssSelector=new selector$.CssSelector();let foundDirectiveIndices=[];let elementBinder=null;cssSelector.setElement(dom_adapter.DOM.nodeName(current.element));for(let i=0;dart.notNull(i)<dart.notNull(classList[dartx.length]);i=dart.notNull(i)+1){cssSelector.addClassName(classList[dartx.get](i))}collection.MapWrapper.forEach(attrs,dart.fn((attrValue,attrName)=>{cssSelector.addAttribute(dart.as(attrName,core.String),dart.as(attrValue,core.String))}));this[_selectorMatcher].match(cssSelector,dart.fn((selector,directiveIndex)=>{let directive=this[_directives][dartx.get](dart.as(directiveIndex,core.int));elementBinder=current.bindElement();if(dart.notNull(core.identical(directive.type,api.DirectiveMetadata.COMPONENT_TYPE))){this[_ensureHasOnlyOneComponent](elementBinder,current.elementDescription);collection.ListWrapper.insert(foundDirectiveIndices,0,directiveIndex);elementBinder.setComponentId(dart.as(directive.id,core.String))}else{foundDirectiveIndices[dartx.add](directiveIndex)}}));collection.ListWrapper.forEach(foundDirectiveIndices,dart.fn(directiveIndex=>{let dirMetadata=this[_directives][dartx.get](dart.as(directiveIndex,core.int));let directiveBinderBuilder=elementBinder.bindDirective(dart.as(directiveIndex,core.num));current.compileChildren=dart.notNull(current.compileChildren)&&dart.notNull(dirMetadata.compileChildren);if(dart.notNull(lang.isPresent(dirMetadata.properties))){collection.ListWrapper.forEach(dirMetadata.properties,dart.fn(bindConfig=>{this[_bindDirectiveProperty](dart.as(bindConfig,core.String),current,directiveBinderBuilder)}))}if(dart.notNull(lang.isPresent(dirMetadata.hostListeners))){collection.MapWrapper.forEach(dirMetadata.hostListeners,dart.fn((action,eventName)=>{this[_bindDirectiveEvent](eventName,action,current,directiveBinderBuilder)}))}if(dart.notNull(lang.isPresent(dirMetadata.hostProperties))){collection.MapWrapper.forEach(dirMetadata.hostProperties,dart.fn((expression,hostPropertyName)=>{this[_bindHostProperty](hostPropertyName,expression,current,directiveBinderBuilder)}))}if(dart.notNull(lang.isPresent(dirMetadata.hostAttributes))){collection.MapWrapper.forEach(dirMetadata.hostAttributes,dart.fn((hostAttrValue,hostAttrName)=>{this[_addHostAttribute](hostAttrName,hostAttrValue,current)}))}if(dart.notNull(lang.isPresent(dirMetadata.readAttributes))){collection.ListWrapper.forEach(dirMetadata.readAttributes,dart.fn(attrName=>{elementBinder.readAttribute(dart.as(attrName,core.String))}))}}))}[_ensureHasOnlyOneComponent](elementBinder,elDescription){if(dart.notNull(lang.isPresent(elementBinder.componentId))){dart.throw(new lang.BaseException(`Only one component directive is allowed per element - check ${elDescription }`))}}[_bindDirectiveProperty](bindConfig,compileElement,directiveBinderBuilder){let dirProperty=null;let elProp=null;let pipes=null;let assignIndex=bindConfig[dartx.indexOf](":");if(dart.notNull(assignIndex)>-1){dirProperty=lang.StringWrapper.substring(bindConfig,0,assignIndex)[dartx.trim]();pipes=dart.as(this[_splitBindConfig](lang.StringWrapper.substring(bindConfig,dart.notNull(assignIndex)+1)),core.List$(core.String));elProp=dart.as(collection.ListWrapper.removeAt(pipes,0),core.String)}else{dirProperty=bindConfig;elProp=bindConfig;pipes=dart.list([],core.String)}elProp=util.dashCaseToCamelCase(elProp);let bindingAst=compileElement.bindElement().propertyBindings.get(elProp);if(dart.notNull(lang.isBlank(bindingAst))){let attributeValue=compileElement.attrs().get(util.camelCaseToDashCase(elProp));if(dart.notNull(lang.isPresent(attributeValue))){bindingAst=this[_parser].wrapLiteralPrimitive(attributeValue,compileElement.elementDescription)}}if(dart.notNull(lang.isPresent(bindingAst))){directiveBinderBuilder.bindProperty(dirProperty,bindingAst,elProp)}}[_bindDirectiveEvent](eventName,action,compileElement,directiveBinderBuilder){let ast=this[_parser].parseAction(dart.as(action,core.String),dart.dload(compileElement,'elementDescription'));if(dart.notNull(lang.StringWrapper.contains(dart.as(eventName,core.String),util.EVENT_TARGET_SEPARATOR))){let parts=dart.dsend(eventName,'split',util.EVENT_TARGET_SEPARATOR);dart.dsend(directiveBinderBuilder,'bindEvent',dart.dindex(parts,1),ast,dart.dindex(parts,0))}else{dart.dsend(directiveBinderBuilder,'bindEvent',eventName,ast)}}[_bindHostProperty](hostPropertyName,expression,compileElement,directiveBinderBuilder){let ast=this[_parser].parseSimpleBinding(dart.as(expression,core.String),`hostProperties of ${dart.dload(compileElement,'elementDescription')}`);dart.dsend(directiveBinderBuilder,'bindHostProperty',hostPropertyName,ast)}[_addHostAttribute](attrName,attrValue,compileElement){if(dart.notNull(lang.StringWrapper.equals(dart.as(attrName,core.String),"class"))){collection.ListWrapper.forEach(dart.as(dart.dsend(attrValue,'split'," "),core.Iterable),dart.fn(className=>{dom_adapter.DOM.addClass(dart.dload(compileElement,'element'),dart.as(className,core.String))}))}else if(!dart.notNull(dom_adapter.DOM.hasAttribute(dart.dload(compileElement,'element'),dart.as(attrName,core.String)))){dom_adapter.DOM.setAttribute(dart.dload(compileElement,'element'),dart.as(attrName,core.String),dart.as(attrValue,core.String))}}[_splitBindConfig](bindConfig){return collection.ListWrapper.map(bindConfig[dartx.split]("|"),dart.fn(s=>dart.dsend(s,'trim')))}};DirectiveParser[dart.implements]=()=>[compile_step.CompileStep];dart.setSignature(DirectiveParser,{constructors:()=>({DirectiveParser:[DirectiveParser,[parser.Parser,core.List$(api.DirectiveMetadata)]]}),methods:()=>({[_splitBindConfig]:[dart.dynamic,[core.String]],[_addHostAttribute]:[dart.dynamic,[dart.dynamic,dart.dynamic,dart.dynamic]],[_bindHostProperty]:[dart.dynamic,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]],[_bindDirectiveEvent]:[dart.dynamic,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]],[_bindDirectiveProperty]:[dart.dynamic,[core.String,compile_element.CompileElement,proto_view_builder.DirectiveBuilder]],[_ensureHasOnlyOneComponent]:[dart.void,[proto_view_builder.ElementBinderBuilder,core.String]],[_ensureComponentOnlyHasElementSelector]:[dart.dynamic,[dart.dynamic,dart.dynamic]],process:[dart.void,[compile_element.CompileElement,compile_element.CompileElement,compile_control.CompileControl]]})});exports.DirectiveParser=DirectiveParser});dart_library.library('angular2/src/render/dom/compiler/property_binding_parser',null,["dart_runtime/dart",'angular2/src/facade/lang','dart/core','angular2/src/facade/collection','angular2/src/render/dom/util','angular2/src/change_detection/parser/ast','angular2/src/render/dom/compiler/compile_step','angular2/src/render/dom/compiler/compile_element','angular2/src/render/dom/compiler/compile_control','angular2/src/change_detection/parser/parser'],[],function(exports,dart,lang,core,collection,util,ast$,compile_step,compile_element,compile_control,parser){'use strict';let dartx=dart.dartx;dart.defineLazyProperties(exports,{get BIND_NAME_REGEXP(){return lang.RegExpWrapper.create("^(?:(?:(?:(bind-)|(var-|#)|(on-)|(bindon-))(.+))|\\[\\(([^\\)]+)\\)\\]|\\[([^\\]]+)\\]|\\(([^\\)]+)\\))$")},set BIND_NAME_REGEXP(_){}});let _parser=Symbol('_parser');let _normalizeAttributeName=Symbol('_normalizeAttributeName');let _bindProperty=Symbol('_bindProperty');let _bindVariable=Symbol('_bindVariable');let _bindEvent=Symbol('_bindEvent');let _bindAssignmentEvent=Symbol('_bindAssignmentEvent');let _bindPropertyAst=Symbol('_bindPropertyAst');class PropertyBindingParser extends core.Object{PropertyBindingParser(parser){this[_parser]=parser}process(parent,current,control){let attrs=current.attrs();let newAttrs=core.Map.new();collection.MapWrapper.forEach(attrs,dart.fn((attrValue,attrName)=>{attrName=this[_normalizeAttributeName](dart.as(attrName,core.String));let bindParts=lang.RegExpWrapper.firstMatch(exports.BIND_NAME_REGEXP,dart.as(attrName,core.String));if(dart.notNull(lang.isPresent(bindParts))){if(dart.notNull(lang.isPresent(bindParts.get(1)))){this[_bindProperty](bindParts.get(5),attrValue,current,newAttrs)}else if(dart.notNull(lang.isPresent(bindParts.get(2)))){let identifier=bindParts.get(5);let value=dart.equals(attrValue,"")?"$implicit":attrValue;this[_bindVariable](identifier,value,current,newAttrs)}else if(dart.notNull(lang.isPresent(bindParts.get(3)))){this[_bindEvent](bindParts.get(5),attrValue,current,newAttrs)}else if(dart.notNull(lang.isPresent(bindParts.get(4)))){this[_bindProperty](bindParts.get(5),attrValue,current,newAttrs);this[_bindAssignmentEvent](bindParts.get(5),attrValue,current,newAttrs)}else if(dart.notNull(lang.isPresent(bindParts.get(6)))){this[_bindProperty](bindParts.get(6),attrValue,current,newAttrs);this[_bindAssignmentEvent](bindParts.get(6),attrValue,current,newAttrs)}else if(dart.notNull(lang.isPresent(bindParts.get(7)))){this[_bindProperty](bindParts.get(7),attrValue,current,newAttrs)}else if(dart.notNull(lang.isPresent(bindParts.get(8)))){this[_bindEvent](bindParts.get(8),attrValue,current,newAttrs)}}else{let expr=this[_parser].parseInterpolation(dart.as(attrValue,core.String),current.elementDescription);if(dart.notNull(lang.isPresent(expr))){this[_bindPropertyAst](attrName,expr,current,newAttrs)}}}));collection.MapWrapper.forEach(newAttrs,dart.fn((attrValue,attrName)=>{attrs.set(dart.as(attrName,core.String),dart.as(attrValue,core.String))}))}[_normalizeAttributeName](attrName){return dart.notNull(dart.as(lang.StringWrapper.startsWith(attrName,"data-"),core.bool))?lang.StringWrapper.substring(attrName,5):attrName}[_bindVariable](identifier,value,current,newAttrs){current.bindElement().bindVariable(util.dashCaseToCamelCase(dart.as(identifier,core.String)),value);newAttrs.set(identifier,value)}[_bindProperty](name,expression,current,newAttrs){this[_bindPropertyAst](name,this[_parser].parseBinding(dart.as(expression,core.String),current.elementDescription),current,dart.as(newAttrs,core.Map))}[_bindPropertyAst](name,ast,current,newAttrs){let binder=current.bindElement();binder.bindProperty(util.dashCaseToCamelCase(dart.as(name,core.String)),dart.as(ast,ast$.ASTWithSource));newAttrs.set(name,dart.dload(ast,'source'))}[_bindAssignmentEvent](name,expression,current,newAttrs){this[_bindEvent](name,`${expression }=$event`,current,newAttrs)}[_bindEvent](name,expression,current,newAttrs){current.bindElement().bindEvent(util.dashCaseToCamelCase(dart.as(name,core.String)),this[_parser].parseAction(dart.as(expression,core.String),current.elementDescription))}};PropertyBindingParser[dart.implements]=()=>[compile_step.CompileStep];dart.setSignature(PropertyBindingParser,{constructors:()=>({PropertyBindingParser:[PropertyBindingParser,[parser.Parser]]}),methods:()=>({[_bindEvent]:[dart.dynamic,[dart.dynamic,dart.dynamic,compile_element.CompileElement,dart.dynamic]],[_bindAssignmentEvent]:[dart.dynamic,[dart.dynamic,dart.dynamic,compile_element.CompileElement,dart.dynamic]],[_bindPropertyAst]:[dart.dynamic,[dart.dynamic,dart.dynamic,compile_element.CompileElement,core.Map]],[_bindProperty]:[dart.dynamic,[dart.dynamic,dart.dynamic,compile_element.CompileElement,dart.dynamic]],[_bindVariable]:[dart.dynamic,[dart.dynamic,dart.dynamic,compile_element.CompileElement,core.Map]],[_normalizeAttributeName]:[core.String,[core.String]],process:[dart.void,[compile_element.CompileElement,compile_element.CompileElement,compile_control.CompileControl]]})});exports.PropertyBindingParser=PropertyBindingParser});dart_library.library('angular2/src/render/dom/compiler/selector',null,["dart_runtime/dart",'angular2/src/facade/lang','dart/core','angular2/src/facade/collection'],[],function(exports,dart,lang,core,collection){'use strict';let dartx=dart.dartx;let _EMPTY_ATTR_VALUE="";dart.defineLazyProperties(exports,{get _SELECTOR_REGEXP(){return lang.RegExpWrapper.create("(\\:not\\()|([-\\w]+)|(?:\\.([-\\w]+))|(?:\\[([-\\w*]+)(?:=([^\\]]*))?\\])|(\\))|(\\s*,\\s*)")},set _SELECTOR_REGEXP(_){}});class CssSelector extends core.Object{CssSelector(){this.classNames=dart.list([],core.String);this.attrs=dart.list([],core.String);this.notSelectors=dart.list([],CssSelector);this.element=null}static parse(selector){let results=dart.list([],CssSelector);let _addResult=dart.fn((res,cssSel)=>{if(dart.notNull(dart.as(dart.dsend(dart.dload(dart.dload(cssSel,'notSelectors'),'length'),'>',0),core.bool))&&dart.notNull(lang.isBlank(dart.dload(cssSel,'element')))&&dart.notNull(collection.ListWrapper.isEmpty(dart.as(dart.dload(cssSel,'classNames'),core.Iterable)))&&dart.notNull(collection.ListWrapper.isEmpty(dart.as(dart.dload(cssSel,'attrs'),core.Iterable)))){dart.dput(cssSel,'element',"*")}res[dartx.add](dart.as(cssSel,CssSelector))},dart.dynamic,[core.List$(CssSelector),dart.dynamic]);let cssSelector=new CssSelector();let matcher=lang.RegExpWrapper.matcher(exports._SELECTOR_REGEXP,selector);let match=null;let current=cssSelector;let inNot=false;while(dart.notNull(lang.isPresent(match=lang.RegExpMatcherWrapper.next(matcher)))){if(dart.notNull(lang.isPresent(dart.dindex(match,1)))){if(dart.notNull(inNot)){dart.throw(new lang.BaseException("Nesting :not is not allowed in a selector"))}inNot=true;current=new CssSelector();cssSelector.notSelectors[dartx.add](current)}if(dart.notNull(lang.isPresent(dart.dindex(match,2)))){current.setElement(dart.as(dart.dindex(match,2),core.String))}if(dart.notNull(lang.isPresent(dart.dindex(match,3)))){current.addClassName(dart.as(dart.dindex(match,3),core.String))}if(dart.notNull(lang.isPresent(dart.dindex(match,4)))){current.addAttribute(dart.as(dart.dindex(match,4),core.String),dart.as(dart.dindex(match,5),core.String))}if(dart.notNull(lang.isPresent(dart.dindex(match,6)))){inNot=false;current=cssSelector}if(dart.notNull(lang.isPresent(dart.dindex(match,7)))){if(dart.notNull(inNot)){dart.throw(new lang.BaseException("Multiple selectors in :not are not supported"))}dart.dcall(_addResult,results,cssSelector);cssSelector=current=new CssSelector()}}dart.dcall(_addResult,results,cssSelector);return results}isElementSelector(){return dart.notNull(lang.isPresent(this.element))&&dart.notNull(collection.ListWrapper.isEmpty(this.classNames))&&dart.notNull(collection.ListWrapper.isEmpty(this.attrs))&&dart.notNull(core.identical(this.notSelectors[dartx.length],0))}setElement(element){if(element===void 0)element=null;if(dart.notNull(lang.isPresent(element))){element=element[dartx.toLowerCase]()}this.element=element}addAttribute(name,value){if(value===void 0)value=_EMPTY_ATTR_VALUE;this.attrs[dartx.add](name[dartx.toLowerCase]());if(dart.notNull(lang.isPresent(value))){value=value[dartx.toLowerCase]()}else{value=_EMPTY_ATTR_VALUE}this.attrs[dartx.add](value)}addClassName(name){this.classNames[dartx.add](name[dartx.toLowerCase]())}toString(){let res="";if(dart.notNull(lang.isPresent(this.element))){res=dart.notNull(res)+dart.notNull(this.element)}if(dart.notNull(lang.isPresent(this.classNames))){for(let i=0;dart.notNull(i)<dart.notNull(this.classNames[dartx.length]);i=dart.notNull(i)+1){res=dart.notNull(res)+("."+dart.notNull(this.classNames[dartx.get](i)))}}if(dart.notNull(lang.isPresent(this.attrs))){for(let i=0;dart.notNull(i)<dart.notNull(this.attrs[dartx.length]);){let attrName=this.attrs[dartx.get]((()=>{let x=i;i=dart.notNull(x)+1;return x})());let attrValue=this.attrs[dartx.get]((()=>{let x=i;i=dart.notNull(x)+1;return x})());res=dart.notNull(res)+("["+dart.notNull(attrName));if(dart.notNull(attrValue[dartx.length])>0){res=dart.notNull(res)+("="+dart.notNull(attrValue))}res=dart.notNull(res)+"]"}}collection.ListWrapper.forEach(this.notSelectors,dart.fn(notSelector=>{res=dart.notNull(res)+(":not("+dart.notNull(dart.toString(notSelector))+")")}));return res}};dart.setSignature(CssSelector,{methods:()=>({addAttribute:[dart.dynamic,[core.String],[core.String]],addClassName:[dart.dynamic,[core.String]],isElementSelector:[core.bool,[]],setElement:[dart.dynamic,[],[core.String]]}),names:['parse'],statics:()=>({parse:[core.List$(CssSelector),[core.String]]})});let _elementMap=Symbol('_elementMap');let _elementPartialMap=Symbol('_elementPartialMap');let _classMap=Symbol('_classMap');let _classPartialMap=Symbol('_classPartialMap');let _attrValueMap=Symbol('_attrValueMap');let _attrValuePartialMap=Symbol('_attrValuePartialMap');let _listContexts=Symbol('_listContexts');let _addSelectable=Symbol('_addSelectable');let _addTerminal=Symbol('_addTerminal');let _addPartial=Symbol('_addPartial');let _matchTerminal=Symbol('_matchTerminal');let _matchPartial=Symbol('_matchPartial');class SelectorMatcher extends core.Object{SelectorMatcher(){this[_elementMap]=core.Map$(core.String,core.List$(SelectorContext)).new();this[_elementPartialMap]=core.Map$(core.String,SelectorMatcher).new();this[_classMap]=core.Map$(core.String,core.List$(SelectorContext)).new();this[_classPartialMap]=core.Map$(core.String,SelectorMatcher).new();this[_attrValueMap]=core.Map$(core.String,core.Map$(core.String,core.List$(SelectorContext))).new();this[_attrValuePartialMap]=core.Map$(core.String,core.Map$(core.String,SelectorMatcher)).new();this[_listContexts]=dart.list([],SelectorListContext)}static createNotMatcher(notSelectors){let notMatcher=new SelectorMatcher();notMatcher.addSelectables(notSelectors,null);return notMatcher}addSelectables(cssSelectors,callbackCtxt){if(callbackCtxt===void 0)callbackCtxt=null;let listContext=null;if(dart.notNull(cssSelectors[dartx.length])>1){listContext=new SelectorListContext(cssSelectors);this[_listContexts][dartx.add](dart.as(listContext,SelectorListContext))}for(let i=0;dart.notNull(i)<dart.notNull(cssSelectors[dartx.length]);i=dart.notNull(i)+1){this[_addSelectable](cssSelectors[dartx.get](i),callbackCtxt,dart.as(listContext,SelectorListContext))}}[_addSelectable](cssSelector,callbackCtxt,listContext){let matcher=this;let element=cssSelector.element;let classNames=cssSelector.classNames;let attrs=cssSelector.attrs;let selectable=new SelectorContext(cssSelector,callbackCtxt,listContext);if(dart.notNull(lang.isPresent(element))){let isTerminal=dart.notNull(core.identical(attrs[dartx.length],0))&&dart.notNull(core.identical(classNames[dartx.length],0));if(dart.notNull(isTerminal)){this[_addTerminal](matcher[_elementMap],element,selectable)}else{matcher=this[_addPartial](matcher[_elementPartialMap],element)}}if(dart.notNull(lang.isPresent(classNames))){for(let index=0;dart.notNull(index)<dart.notNull(classNames[dartx.length]);index=dart.notNull(index)+1){let isTerminal=dart.notNull(core.identical(attrs[dartx.length],0))&&dart.notNull(core.identical(index,dart.notNull(classNames[dartx.length])-1));let className=classNames[dartx.get](index);if(dart.notNull(isTerminal)){this[_addTerminal](matcher[_classMap],className,selectable)}else{matcher=this[_addPartial](matcher[_classPartialMap],className)}}}if(dart.notNull(lang.isPresent(attrs))){for(let index=0;dart.notNull(index)<dart.notNull(attrs[dartx.length]);){let isTerminal=core.identical(index,dart.notNull(attrs[dartx.length])-2);let attrName=attrs[dartx.get]((()=>{let x=index;index=dart.notNull(x)+1;return x})());let attrValue=attrs[dartx.get]((()=>{let x=index;index=dart.notNull(x)+1;return x})());if(dart.notNull(isTerminal)){let terminalMap=matcher[_attrValueMap];let terminalValuesMap=terminalMap.get(attrName);if(dart.notNull(lang.isBlank(terminalValuesMap))){terminalValuesMap=core.Map$(core.String,core.List$(SelectorContext)).new();terminalMap.set(attrName,terminalValuesMap)}this[_addTerminal](terminalValuesMap,attrValue,selectable)}else{let parttialMap=matcher[_attrValuePartialMap];let partialValuesMap=parttialMap.get(attrName);if(dart.notNull(lang.isBlank(partialValuesMap))){partialValuesMap=core.Map$(core.String,SelectorMatcher).new();parttialMap.set(attrName,partialValuesMap)}matcher=this[_addPartial](partialValuesMap,attrValue)}}}}[_addTerminal](map,name,selectable){let terminalList=map.get(name);if(dart.notNull(lang.isBlank(terminalList))){terminalList=dart.list([],SelectorContext);map.set(name,terminalList)}terminalList[dartx.add](selectable)}[_addPartial](map,name){let matcher=map.get(name);if(dart.notNull(lang.isBlank(matcher))){matcher=new SelectorMatcher();map.set(name,matcher)}return matcher}match(cssSelector,matchedCallback){let result=false;let element=cssSelector.element;let classNames=cssSelector.classNames;let attrs=cssSelector.attrs;for(let i=0;dart.notNull(i)<dart.notNull(this[_listContexts][dartx.length]);i=dart.notNull(i)+1){this[_listContexts][dartx.get](i).alreadyMatched=false}result=dart.notNull(this[_matchTerminal](this[_elementMap],element,cssSelector,matchedCallback))||dart.notNull(result);result=dart.notNull(this[_matchPartial](this[_elementPartialMap],element,cssSelector,matchedCallback))||dart.notNull(result);if(dart.notNull(lang.isPresent(classNames))){for(let index=0;dart.notNull(index)<dart.notNull(classNames[dartx.length]);index=dart.notNull(index)+1){let className=classNames[dartx.get](index);result=dart.notNull(this[_matchTerminal](this[_classMap],className,cssSelector,matchedCallback))||dart.notNull(result);result=dart.notNull(this[_matchPartial](this[_classPartialMap],className,cssSelector,matchedCallback))||dart.notNull(result)}}if(dart.notNull(lang.isPresent(attrs))){for(let index=0;dart.notNull(index)<dart.notNull(attrs[dartx.length]);){let attrName=attrs[dartx.get]((()=>{let x=index;index=dart.notNull(x)+1;return x})());let attrValue=attrs[dartx.get]((()=>{let x=index;index=dart.notNull(x)+1;return x})());let terminalValuesMap=this[_attrValueMap].get(attrName);if(!dart.notNull(lang.StringWrapper.equals(attrValue,_EMPTY_ATTR_VALUE))){result=dart.notNull(this[_matchTerminal](terminalValuesMap,_EMPTY_ATTR_VALUE,cssSelector,matchedCallback))||dart.notNull(result)}result=dart.notNull(this[_matchTerminal](terminalValuesMap,attrValue,cssSelector,matchedCallback))||dart.notNull(result);let partialValuesMap=this[_attrValuePartialMap].get(attrName);if(!dart.notNull(lang.StringWrapper.equals(attrValue,_EMPTY_ATTR_VALUE))){result=dart.notNull(this[_matchPartial](partialValuesMap,_EMPTY_ATTR_VALUE,cssSelector,matchedCallback))||dart.notNull(result)}result=dart.notNull(this[_matchPartial](partialValuesMap,attrValue,cssSelector,matchedCallback))||dart.notNull(result)}}return result}[_matchTerminal](map,name,cssSelector,matchedCallback){if(dart.notNull(lang.isBlank(map))||dart.notNull(lang.isBlank(name))){return false}let selectables=map.get(name);let starSelectables=map.get("*");if(dart.notNull(lang.isPresent(starSelectables))){selectables=dart.as(collection.ListWrapper.concat(selectables,starSelectables),core.List$(SelectorContext))}if(dart.notNull(lang.isBlank(selectables))){return false}let selectable=null;let result=false;for(let index=0;dart.notNull(index)<dart.notNull(selectables[dartx.length]);index=dart.notNull(index)+1){selectable=selectables[dartx.get](index);result=dart.notNull(dart.as(dart.dsend(selectable,'finalize',cssSelector,matchedCallback),core.bool))||dart.notNull(result)}return result}[_matchPartial](map,name,cssSelector,matchedCallback){if(dart.notNull(lang.isBlank(map))||dart.notNull(lang.isBlank(name))){return false}let nestedSelector=map.get(name);if(dart.notNull(lang.isBlank(nestedSelector))){return false}return nestedSelector.match(cssSelector,matchedCallback)}};dart.setSignature(SelectorMatcher,{methods:()=>({[_matchPartial]:[core.bool,[core.Map$(core.String,SelectorMatcher),dart.dynamic,CssSelector,dart.dynamic]],[_matchTerminal]:[core.bool,[core.Map$(core.String,core.List$(SelectorContext)),dart.dynamic,CssSelector,dart.dynamic]],[_addPartial]:[SelectorMatcher,[core.Map$(core.String,SelectorMatcher),core.String]],[_addTerminal]:[dart.dynamic,[core.Map$(core.String,core.List$(SelectorContext)),core.String,SelectorContext]],[_addSelectable]:[dart.dynamic,[CssSelector,dart.dynamic,SelectorListContext]],addSelectables:[dart.dynamic,[core.List$(CssSelector)],[dart.dynamic]],match:[core.bool,[CssSelector,dart.dynamic]]}),names:['createNotMatcher'],statics:()=>({createNotMatcher:[SelectorMatcher,[core.List$(CssSelector)]]})});class SelectorListContext extends core.Object{SelectorListContext(selectors){this.selectors=selectors;this.alreadyMatched=false}};dart.setSignature(SelectorListContext,{constructors:()=>({SelectorListContext:[SelectorListContext,[core.List$(CssSelector)]]})});class SelectorContext extends core.Object{SelectorContext(selector,cbContext,listContext){this.selector=selector;this.cbContext=cbContext;this.listContext=listContext;this.notSelectors=null;this.notSelectors=this.selector.notSelectors}finalize(cssSelector,callback){let result=true;if(dart.notNull(this.notSelectors[dartx.length])>0&&(dart.notNull(lang.isBlank(this.listContext))|| !dart.notNull(this.listContext.alreadyMatched))){let notMatcher=SelectorMatcher.createNotMatcher(this.notSelectors);result= !dart.notNull(notMatcher.match(cssSelector,null))}if(dart.notNull(result)&&dart.notNull(lang.isPresent(callback))&&(dart.notNull(lang.isBlank(this.listContext))|| !dart.notNull(this.listContext.alreadyMatched))){if(dart.notNull(lang.isPresent(this.listContext))){this.listContext.alreadyMatched=true}dart.dcall(callback,this.selector,this.cbContext)}return result}};dart.setSignature(SelectorContext,{constructors:()=>({SelectorContext:[SelectorContext,[CssSelector,dart.dynamic,SelectorListContext]]}),methods:()=>({finalize:[core.bool,[CssSelector,dart.dynamic]]})});exports.CssSelector=CssSelector;exports.SelectorMatcher=SelectorMatcher;exports.SelectorListContext=SelectorListContext;exports.SelectorContext=SelectorContext});dart_library.library('angular2/src/render/dom/compiler/style_inliner',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/facade/async','angular2/src/facade/collection','dart/async','angular2/src/render/xhr','angular2/src/render/dom/compiler/style_url_resolver','angular2/src/services/url_resolver','angular2/src/di/annotations_impl'],[],function(exports,dart,core,lang,async,collection,async$,xhr,style_url_resolver,url_resolver,annotations_impl){'use strict';let dartx=dart.dartx;let _xhr=Symbol('_xhr');let _styleUrlResolver=Symbol('_styleUrlResolver');let _urlResolver=Symbol('_urlResolver');let _inlineImports=Symbol('_inlineImports');let _transformImportedCss=Symbol('_transformImportedCss');class StyleInliner extends core.Object{StyleInliner(xhr,styleUrlResolver,urlResolver){this[_xhr]=xhr;this[_styleUrlResolver]=styleUrlResolver;this[_urlResolver]=urlResolver}inlineImports(cssText,baseUrl){return this[_inlineImports](cssText,baseUrl,dart.list([],core.String))}[_inlineImports](cssText,baseUrl,inlinedUrls){let partIndex=0;let parts=lang.StringWrapper.split(cssText,exports._importRe);if(dart.notNull(core.identical(parts[dartx.length],1))){return cssText}let promises=[];while(dart.notNull(partIndex)<dart.notNull(parts[dartx.length])-1){let prefix=parts[dartx.get](partIndex);let rule=parts[dartx.get](dart.notNull(partIndex)+1);let url=_extractUrl(rule);if(dart.notNull(lang.isPresent(url))){url=this[_urlResolver].resolve(baseUrl,url)}let mediaQuery=_extractMediaQuery(rule);let promise=null;if(dart.notNull(lang.isBlank(url))){promise=async.PromiseWrapper.resolve(`/* Invalid import rule: "@import ${rule };" */`)}else if(dart.notNull(collection.ListWrapper.contains(inlinedUrls,url))){promise=async.PromiseWrapper.resolve(prefix)}else{inlinedUrls[dartx.add](url);promise=async.PromiseWrapper.then(this[_xhr].get(url),dart.fn(rawCss=>{let inlinedCss=this[_inlineImports](dart.as(rawCss,core.String),url,inlinedUrls);if(dart.notNull(lang.isPromise(inlinedCss))){return dart.as(inlinedCss,async$.Future$(core.String)).then(dart.fn(css=>{return dart.notNull(prefix)+dart.notNull(this[_transformImportedCss](dart.as(css,core.String),mediaQuery,url))+"\n"}))}else{return dart.notNull(prefix)+dart.notNull(this[_transformImportedCss](dart.as(inlinedCss,core.String),mediaQuery,url))+"\n"}}),dart.fn(error=>`/* failed to import ${url } */\n`,core.String,[dart.dynamic]))}promises[dartx.add](promise);partIndex=dart.notNull(partIndex)+2}return async.PromiseWrapper.all(promises).then(dart.fn(cssParts=>{let cssText=dart.dsend(cssParts,'join',"");if(dart.notNull(partIndex)<dart.notNull(parts[dartx.length])){cssText=dart.dsend(cssText,'+',parts[dartx.get](partIndex))}return cssText}))}[_transformImportedCss](css,mediaQuery,url){css=this[_styleUrlResolver].resolveUrls(css,url);return _wrapInMediaRule(css,mediaQuery)}};dart.setSignature(StyleInliner,{constructors:()=>({StyleInliner:[StyleInliner,[xhr.XHR,style_url_resolver.StyleUrlResolver,url_resolver.UrlResolver]]}),methods:()=>({[_transformImportedCss]:[core.String,[core.String,core.String,core.String]],[_inlineImports]:[dart.dynamic,[core.String,core.String,core.List$(core.String)]],inlineImports:[dart.dynamic,[core.String,core.String]]})});StyleInliner[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];function _extractUrl(importRule){let match=lang.RegExpWrapper.firstMatch(exports._urlRe,importRule);if(dart.notNull(lang.isBlank(match)))return null;return dart.notNull(lang.isPresent(match.get(1)))?match.get(1):match.get(2)}dart.fn(_extractUrl,core.String,[core.String]);function _extractMediaQuery(importRule){let match=lang.RegExpWrapper.firstMatch(exports._mediaQueryRe,importRule);if(dart.notNull(lang.isBlank(match)))return null;let mediaQuery=match.get(1)[dartx.trim]();return dart.notNull(mediaQuery[dartx.length])>0?mediaQuery:null}dart.fn(_extractMediaQuery,core.String,[core.String]);function _wrapInMediaRule(css,query){return dart.notNull(lang.isBlank(query))?css:`@media ${query } {\n${css }\n}`}dart.fn(_wrapInMediaRule,core.String,[core.String,core.String]);dart.defineLazyProperties(exports,{get _mediaQueryRe(){return lang.RegExpWrapper.create("['\"][^'\"]+['\"]\\s*\\)?\\s*(.*)")},get _urlRe(){return lang.RegExpWrapper.create("url\\(\\s*?['\"]?([^'\")]+)['\"]?|['\"]([^'\")]+)['\"]")},get _importRe(){return lang.RegExpWrapper.create("@import\\s+([^;]+);")},set _mediaQueryRe(_){},set _urlRe(_){},set _importRe(_){}});exports.StyleInliner=StyleInliner});dart_library.library('angular2/src/render/dom/compiler/style_url_resolver',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/services/url_resolver','angular2/src/di/annotations_impl'],[],function(exports,dart,core,lang,url_resolver,annotations_impl){'use strict';let dartx=dart.dartx;let _resolver=Symbol('_resolver');let _replaceUrls=Symbol('_replaceUrls');class StyleUrlResolver extends core.Object{StyleUrlResolver(resolver){this[_resolver]=resolver}resolveUrls(cssText,baseUrl){cssText=dart.as(this[_replaceUrls](cssText,exports._cssUrlRe,baseUrl),core.String);cssText=dart.as(this[_replaceUrls](cssText,exports._cssImportRe,baseUrl),core.String);return cssText}[_replaceUrls](cssText,re,baseUrl){return lang.StringWrapper.replaceAllMapped(cssText,re,dart.fn(m=>{let pre=dart.dindex(m,1);let url=lang.StringWrapper.replaceAll(dart.as(dart.dindex(m,2),core.String),exports._quoteRe,"");let post=dart.dindex(m,3);let resolvedUrl=this[_resolver].resolve(baseUrl,url);return dart.dsend(dart.dsend(dart.dsend(dart.dsend(pre,'+',"'"),'+',resolvedUrl),'+',"'"),'+',post)}))}};dart.setSignature(StyleUrlResolver,{constructors:()=>({StyleUrlResolver:[StyleUrlResolver,[url_resolver.UrlResolver]]}),methods:()=>({[_replaceUrls]:[dart.dynamic,[core.String,core.RegExp,core.String]],resolveUrls:[core.String,[core.String,core.String]]})});StyleUrlResolver[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];dart.defineLazyProperties(exports,{get _quoteRe(){return lang.RegExpWrapper.create("['\"]")},get _cssImportRe(){return lang.RegExpWrapper.create("(@import[\\s]+(?!url\\())['\"]([^'\"]*)['\"](.*;)")},get _cssUrlRe(){return lang.RegExpWrapper.create("(url\\()([^)]*)(\\))")},set _quoteRe(_){},set _cssImportRe(_){},set _cssUrlRe(_){}});exports.StyleUrlResolver=StyleUrlResolver});dart_library.library('angular2/src/render/dom/compiler/text_interpolation_parser',null,["dart_runtime/dart",'dart/core','angular2/src/dom/dom_adapter','angular2/src/facade/lang','angular2/src/render/dom/compiler/compile_step','angular2/src/render/dom/compiler/compile_element','angular2/src/render/dom/compiler/compile_control','angular2/src/change_detection/parser/parser'],[],function(exports,dart,core,dom_adapter,lang,compile_step,compile_element,compile_control,parser){'use strict';let dartx=dart.dartx;let _parser=Symbol('_parser');class TextInterpolationParser extends core.Object{TextInterpolationParser(parser){this[_parser]=parser}process(parent,current,control){if(!dart.notNull(current.compileChildren)){return}let element=current.element;let childNodes=dom_adapter.DOM.childNodes(dom_adapter.DOM.templateAwareRoot(element));for(let i=0;dart.notNull(i)<dart.notNull(childNodes[dartx.length]);i=dart.notNull(i)+1){let node=childNodes[dartx.get](i);if(dart.notNull(dom_adapter.DOM.isTextNode(node))){let text=dom_adapter.DOM.nodeValue(node);let expr=this[_parser].parseInterpolation(text,current.elementDescription);if(dart.notNull(lang.isPresent(expr))){dom_adapter.DOM.setText(node," ");current.bindElement().bindText(node,expr)}}}}};TextInterpolationParser[dart.implements]=()=>[compile_step.CompileStep];dart.setSignature(TextInterpolationParser,{constructors:()=>({TextInterpolationParser:[TextInterpolationParser,[parser.Parser]]}),methods:()=>({process:[dart.void,[compile_element.CompileElement,compile_element.CompileElement,compile_control.CompileControl]]})});exports.TextInterpolationParser=TextInterpolationParser});dart_library.library('angular2/src/render/dom/compiler/view_loader',null,["dart_runtime/dart",'dart/core','dart/async','angular2/src/facade/lang','angular2/src/facade/async','angular2/src/facade/collection','angular2/src/dom/dom_adapter','angular2/src/render/api','angular2/src/render/xhr','angular2/src/render/dom/compiler/style_inliner','angular2/src/render/dom/compiler/style_url_resolver','angular2/src/di/annotations_impl'],[],function(exports,dart,core,async,lang,async$,collection,dom_adapter,api,xhr,style_inliner,style_url_resolver,annotations_impl){'use strict';let dartx=dart.dartx;let _cache=Symbol('_cache');let _xhr=Symbol('_xhr');let _styleInliner=Symbol('_styleInliner');let _styleUrlResolver=Symbol('_styleUrlResolver');let _loadHtml=Symbol('_loadHtml');let _resolveAndInlineCssText=Symbol('_resolveAndInlineCssText');let _loadText=Symbol('_loadText');let _resolveAndInlineElement=Symbol('_resolveAndInlineElement');class ViewLoader extends core.Object{ViewLoader(xhr,styleInliner,styleUrlResolver){this[_cache]=core.Map$(core.String,async.Future$(core.String)).new();this[_xhr]=xhr;this[_styleInliner]=styleInliner;this[_styleUrlResolver]=styleUrlResolver}load(view){let tplElAndStyles=[this[_loadHtml](view)];if(dart.notNull(lang.isPresent(view.styles))){view.styles[dartx.forEach](dart.fn(cssText=>{let textOrPromise=this[_resolveAndInlineCssText](cssText,view.templateAbsUrl);tplElAndStyles[dartx.add](textOrPromise)},dart.dynamic,[core.String]))}if(dart.notNull(lang.isPresent(view.styleAbsUrls))){view.styleAbsUrls[dartx.forEach](dart.fn(url=>{let promise=this[_loadText](dart.as(url,core.String)).then(dart.fn(cssText=>this[_resolveAndInlineCssText](dart.as(cssText,core.String),view.templateAbsUrl)));tplElAndStyles[dartx.add](promise)}))}return async$.PromiseWrapper.all(tplElAndStyles).then(dart.as(dart.fn(res=>{let tplEl=res[dartx.get](0);let cssTexts=collection.ListWrapper.slice(res,1);_insertCssTexts(dom_adapter.DOM.content(tplEl),dart.as(cssTexts,core.List$(core.String)));return tplEl},dart.dynamic,[core.List$(core.String)]),__CastType0))}[_loadText](url){let response=this[_cache].get(url);if(dart.notNull(lang.isBlank(response))){response=dart.as(async$.PromiseWrapper.catchError(this[_xhr].get(url),dart.fn(_=>async$.PromiseWrapper.reject(new lang.BaseException(`Failed to fetch url "${url }"`),null),async.Future,[dart.dynamic])),async.Future$(core.String));this[_cache].set(url,response)}return response}[_loadHtml](view){let html=null;if(dart.notNull(lang.isPresent(view.template))){html=async$.PromiseWrapper.resolve(view.template)}else if(dart.notNull(lang.isPresent(view.templateAbsUrl))){html=this[_loadText](view.templateAbsUrl)}else{dart.throw(new lang.BaseException("View should have either the templateUrl or template property set"))}return dart.as(dart.dsend(html,'then',dart.fn(html=>{let tplEl=dom_adapter.DOM.createTemplate(html);let styleEls=dom_adapter.DOM.querySelectorAll(dom_adapter.DOM.content(tplEl),"STYLE");let promises=dart.list([],async.Future$(core.String));for(let i=0;dart.notNull(i)<dart.notNull(styleEls[dartx.length]);i=dart.notNull(i)+1){let promise=this[_resolveAndInlineElement](styleEls[dartx.get](i),view.templateAbsUrl);if(dart.notNull(lang.isPromise(promise))){promises[dartx.add](dart.as(promise,async.Future$(core.String)))}}return dart.notNull(promises[dartx.length])>0?async$.PromiseWrapper.all(promises).then(dart.fn(_=>tplEl)):tplEl})),async.Future)}[_resolveAndInlineElement](styleEl,baseUrl){let textOrPromise=this[_resolveAndInlineCssText](dom_adapter.DOM.getText(styleEl),baseUrl);if(dart.notNull(lang.isPromise(textOrPromise))){return dart.as(textOrPromise,async.Future$(core.String)).then(dart.fn(css=>{dom_adapter.DOM.setText(styleEl,dart.as(css,core.String))}))}else{dom_adapter.DOM.setText(styleEl,dart.as(textOrPromise,core.String));return null}}[_resolveAndInlineCssText](cssText,baseUrl){cssText=this[_styleUrlResolver].resolveUrls(cssText,baseUrl);return this[_styleInliner].inlineImports(cssText,baseUrl)}};dart.setSignature(ViewLoader,{constructors:()=>({ViewLoader:[ViewLoader,[xhr.XHR,style_inliner.StyleInliner,style_url_resolver.StyleUrlResolver]]}),methods:()=>({[_resolveAndInlineCssText]:[dart.dynamic,[core.String,core.String]],[_resolveAndInlineElement]:[async.Future,[dart.dynamic,core.String]],[_loadHtml]:[async.Future,[api.ViewDefinition]],[_loadText]:[async.Future$(core.String),[core.String]],load:[async.Future,[api.ViewDefinition]]})});ViewLoader[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];function _insertCssTexts(element,cssTexts){if(cssTexts[dartx.length]==0)return;let insertBefore=dom_adapter.DOM.firstChild(element);for(let i=dart.notNull(cssTexts[dartx.length])-1;dart.notNull(i)>=0;i=dart.notNull(i)-1){let styleEl=dom_adapter.DOM.createStyleElement(cssTexts[dartx.get](i));if(dart.notNull(lang.isPresent(insertBefore))){dom_adapter.DOM.insertBefore(insertBefore,styleEl)}else{dom_adapter.DOM.appendChild(element,styleEl)}insertBefore=styleEl}}dart.fn(_insertCssTexts,dart.void,[dart.dynamic,core.List$(core.String)]);let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(dart.dynamic,[core.List]));exports.ViewLoader=ViewLoader});dart_library.library('angular2/src/render/dom/compiler/view_splitter',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/facade/collection','angular2/src/dom/dom_adapter','angular2/src/render/dom/compiler/compile_element','angular2/src/render/dom/util','angular2/src/render/dom/compiler/compile_step','angular2/src/render/dom/compiler/compile_control','angular2/src/change_detection/parser/parser'],[],function(exports,dart,core,lang,collection,dom_adapter,compile_element,util,compile_step,compile_control,parser){'use strict';let dartx=dart.dartx;let _parser=Symbol('_parser');let _moveChildNodes=Symbol('_moveChildNodes');let _parseTemplateBindings=Symbol('_parseTemplateBindings');let _addParentElement=Symbol('_addParentElement');class ViewSplitter extends core.Object{ViewSplitter(parser){this[_parser]=parser}process(parent,current,control){let attrs=current.attrs();let templateBindings=attrs.get("template");let hasTemplateBinding=lang.isPresent(templateBindings);collection.MapWrapper.forEach(attrs,dart.fn((attrValue,attrName)=>{if(dart.notNull(dart.as(lang.StringWrapper.startsWith(dart.as(attrName,core.String),"*"),core.bool))){let key=lang.StringWrapper.substring(dart.as(attrName,core.String),1);if(dart.notNull(hasTemplateBinding)){dart.throw(new lang.BaseException('Only one template directive per element is allowed: '+`${templateBindings } and ${key } cannot be used simultaneously `+`in ${current.elementDescription }`))}else{templateBindings=dart.equals(dart.dload(attrValue,'length'),0)?key:dart.notNull(key)+" "+dart.notNull(dart.as(attrValue,core.String));hasTemplateBinding=true}}}));if(dart.notNull(lang.isPresent(parent))){if(dart.notNull(dom_adapter.DOM.isTemplateElement(current.element))){if(!dart.notNull(current.isViewRoot)){let viewRoot=new compile_element.CompileElement(dom_adapter.DOM.createTemplate(""));viewRoot.inheritedProtoView=current.bindElement().bindNestedProtoView(viewRoot.element);viewRoot.elementDescription=current.elementDescription;viewRoot.isViewRoot=true;this[_moveChildNodes](dom_adapter.DOM.content(current.element),dom_adapter.DOM.content(viewRoot.element));control.addChild(viewRoot)}}if(dart.notNull(hasTemplateBinding)){let newParent=new compile_element.CompileElement(dom_adapter.DOM.createTemplate(""));newParent.inheritedProtoView=current.inheritedProtoView;newParent.inheritedElementBinder=current.inheritedElementBinder;newParent.distanceToInheritedBinder=current.distanceToInheritedBinder;newParent.elementDescription=current.elementDescription;current.inheritedProtoView=newParent.bindElement().bindNestedProtoView(current.element);current.inheritedElementBinder=null;current.distanceToInheritedBinder=0;current.isViewRoot=true;this[_parseTemplateBindings](templateBindings,newParent);this[_addParentElement](current.element,newParent.element);control.addParent(newParent);dom_adapter.DOM.remove(current.element)}}}[_moveChildNodes](source,target){let next=dom_adapter.DOM.firstChild(source);while(dart.notNull(lang.isPresent(next))){dom_adapter.DOM.appendChild(target,next);next=dom_adapter.DOM.firstChild(source)}}[_addParentElement](currentElement,newParentElement){dom_adapter.DOM.insertBefore(currentElement,newParentElement);dom_adapter.DOM.appendChild(newParentElement,currentElement)}[_parseTemplateBindings](templateBindings,compileElement){let bindings=this[_parser].parseTemplateBindings(templateBindings,compileElement.elementDescription);for(let i=0;dart.notNull(i)<dart.notNull(bindings[dartx.length]);i=dart.notNull(i)+1){let binding=bindings[dartx.get](i);if(dart.notNull(binding.keyIsVar)){compileElement.bindElement().bindVariable(util.dashCaseToCamelCase(binding.key),binding.name);compileElement.attrs().set(binding.key,binding.name)}else if(dart.notNull(lang.isPresent(binding.expression))){compileElement.bindElement().bindProperty(util.dashCaseToCamelCase(binding.key),binding.expression);compileElement.attrs().set(binding.key,binding.expression.source)}else{dom_adapter.DOM.setAttribute(compileElement.element,binding.key,"")}}}};ViewSplitter[dart.implements]=()=>[compile_step.CompileStep];dart.setSignature(ViewSplitter,{constructors:()=>({ViewSplitter:[ViewSplitter,[parser.Parser]]}),methods:()=>({[_parseTemplateBindings]:[dart.dynamic,[core.String,compile_element.CompileElement]],[_addParentElement]:[dart.dynamic,[dart.dynamic,dart.dynamic]],[_moveChildNodes]:[dart.dynamic,[dart.dynamic,dart.dynamic]],process:[dart.void,[compile_element.CompileElement,compile_element.CompileElement,compile_control.CompileControl]]})});exports.ViewSplitter=ViewSplitter});dart_library.library('angular2/src/render/dom/dom_renderer',null,["dart_runtime/dart",'angular2/src/di/opaque_token','angular2/src/render/api','angular2/src/render/dom/view/proto_view','angular2/src/dom/dom_adapter','angular2/src/facade/lang','angular2/src/render/dom/view/view','angular2/src/facade/collection','dart/core','angular2/src/render/dom/util','angular2/src/render/dom/shadow_dom/content_tag','angular2/src/render/dom/view/element','angular2/src/render/dom/view/view_container','angular2/src/render/dom/events/event_manager','angular2/src/render/dom/shadow_dom/shadow_dom_strategy','angular2/src/di/annotations_impl'],[],function(exports,dart,opaque_token,api,proto_view,dom_adapter,lang,view$,collection,core,util,content_tag,element$,view_container,event_manager,shadow_dom_strategy,annotations_impl){'use strict';let dartx=dart.dartx;let DOCUMENT_TOKEN=dart.const(new opaque_token.OpaqueToken("DocumentToken"));let _eventManager=Symbol('_eventManager');let _shadowDomStrategy=Symbol('_shadowDomStrategy');let _document=Symbol('_document');let _createView=Symbol('_createView');let _moveViewNodesIntoParent=Symbol('_moveViewNodesIntoParent');let _removeViewNodes=Symbol('_removeViewNodes');let _getOrCreateViewContainer=Symbol('_getOrCreateViewContainer');let _directParentLightDom=Symbol('_directParentLightDom');let _moveViewNodesAfterSibling=Symbol('_moveViewNodesAfterSibling');let _createGlobalEventListener=Symbol('_createGlobalEventListener');let _createEventListener=Symbol('_createEventListener');class DomRenderer extends api.Renderer{DomRenderer(eventManager,shadowDomStrategy,document){this[_eventManager]=eventManager;this[_shadowDomStrategy]=shadowDomStrategy;this[_document]=null;;this[_document]=document}createRootHostView(hostProtoViewRef,hostElementSelector){let hostProtoView=proto_view.resolveInternalDomProtoView(hostProtoViewRef);let element=dom_adapter.DOM.querySelector(this[_document],hostElementSelector);if(dart.notNull(lang.isBlank(element))){dart.throw(new lang.BaseException(`The selector "${hostElementSelector }" did not match any elements`))}return new view$.DomViewRef(this[_createView](hostProtoView,element))}createView(protoViewRef){let protoView=proto_view.resolveInternalDomProtoView(protoViewRef);return new view$.DomViewRef(this[_createView](protoView,null))}destroyView(view){}getNativeElementSync(location){return view$.resolveInternalDomView(location.renderView).boundElements[dartx.get](location.boundElementIndex).element}attachComponentView(location,componentViewRef){let hostView=view$.resolveInternalDomView(location.renderView);let componentView=view$.resolveInternalDomView(componentViewRef);let element=hostView.boundElements[dartx.get](location.boundElementIndex).element;let lightDom=hostView.boundElements[dartx.get](location.boundElementIndex).lightDom;if(dart.notNull(lang.isPresent(lightDom))){lightDom.attachShadowDomView(componentView)}let shadowRoot=this[_shadowDomStrategy].prepareShadowRoot(element);this[_moveViewNodesIntoParent](shadowRoot,componentView);componentView.hostLightDom=lightDom;componentView.shadowRoot=shadowRoot}setComponentViewRootNodes(componentViewRef,rootNodes){let componentView=view$.resolveInternalDomView(componentViewRef);this[_removeViewNodes](componentView);componentView.rootNodes=rootNodes;this[_moveViewNodesIntoParent](componentView.shadowRoot,componentView)}getRootNodes(viewRef){return view$.resolveInternalDomView(viewRef).rootNodes}detachComponentView(location,componentViewRef){let hostView=view$.resolveInternalDomView(location.renderView);let componentView=view$.resolveInternalDomView(componentViewRef);this[_removeViewNodes](componentView);let lightDom=hostView.boundElements[dartx.get](location.boundElementIndex).lightDom;if(dart.notNull(lang.isPresent(lightDom))){lightDom.detachShadowDomView()}componentView.hostLightDom=null;componentView.shadowRoot=null}attachViewInContainer(location,atIndex,viewRef){let parentView=view$.resolveInternalDomView(location.renderView);let view=view$.resolveInternalDomView(viewRef);let viewContainer=this[_getOrCreateViewContainer](parentView,location.boundElementIndex);collection.ListWrapper.insert(dart.as(dart.dload(viewContainer,'views'),core.List),atIndex,view);view.hostLightDom=parentView.hostLightDom;let directParentLightDom=this[_directParentLightDom](parentView,location.boundElementIndex);if(dart.notNull(lang.isBlank(directParentLightDom))){let siblingToInsertAfter=null;if(atIndex==0){siblingToInsertAfter=parentView.boundElements[dartx.get](location.boundElementIndex).element}else{siblingToInsertAfter=collection.ListWrapper.last(dart.as(dart.dload(dart.dindex(dart.dload(viewContainer,'views'),dart.notNull(atIndex)-1),'rootNodes'),core.List))}this[_moveViewNodesAfterSibling](siblingToInsertAfter,view)}else{dart.dsend(directParentLightDom,'redistribute')}if(dart.notNull(lang.isPresent(parentView.hostLightDom))){parentView.hostLightDom.redistribute()}}detachViewInContainer(location,atIndex,viewRef){let parentView=view$.resolveInternalDomView(location.renderView);let view=view$.resolveInternalDomView(viewRef);let viewContainer=parentView.boundElements[dartx.get](location.boundElementIndex).viewContainer;let detachedView=viewContainer.views[dartx.get](atIndex);collection.ListWrapper.removeAt(viewContainer.views,atIndex);let directParentLightDom=this[_directParentLightDom](parentView,location.boundElementIndex);if(dart.notNull(lang.isBlank(directParentLightDom))){this[_removeViewNodes](detachedView)}else{dart.dsend(directParentLightDom,'redistribute')}view.hostLightDom=null;if(dart.notNull(lang.isPresent(parentView.hostLightDom))){parentView.hostLightDom.redistribute()}}hydrateView(viewRef){let view=view$.resolveInternalDomView(viewRef);if(dart.notNull(view.hydrated))dart.throw(new lang.BaseException("The view is already hydrated."));view.hydrated=true;for(let i=0;dart.notNull(i)<dart.notNull(view.boundElements[dartx.length]);i=dart.notNull(i)+1){let lightDom=view.boundElements[dartx.get](i).lightDom;if(dart.notNull(lang.isPresent(lightDom))){lightDom.redistribute()}}view.eventHandlerRemovers=dart.list([],core.Function);let binders=view.proto.elementBinders;for(let binderIdx=0;dart.notNull(binderIdx)<dart.notNull(binders[dartx.length]);binderIdx=dart.notNull(binderIdx)+1){let binder=binders[dartx.get](binderIdx);if(dart.notNull(lang.isPresent(binder.globalEvents))){for(let i=0;dart.notNull(i)<dart.notNull(binder.globalEvents[dartx.length]);i=dart.notNull(i)+1){let globalEvent=binder.globalEvents[dartx.get](i);let remover=this[_createGlobalEventListener](view,binderIdx,globalEvent.name,globalEvent.target,globalEvent.fullName);view.eventHandlerRemovers[dartx.add](remover)}}}if(dart.notNull(lang.isPresent(view.hostLightDom))){view.hostLightDom.redistribute()}}dehydrateView(viewRef){let view=view$.resolveInternalDomView(viewRef);for(let i=0;dart.notNull(i)<dart.notNull(view.eventHandlerRemovers[dartx.length]);i=dart.notNull(i)+1){dart.dcall(view.eventHandlerRemovers[dartx.get](i))}view.eventHandlerRemovers=null;view.hydrated=false}setElementProperty(location,propertyName,propertyValue){let view=view$.resolveInternalDomView(location.renderView);view.setElementProperty(location.boundElementIndex,propertyName,propertyValue)}setElementAttribute(location,attributeName,attributeValue){let view=view$.resolveInternalDomView(location.renderView);view.setElementAttribute(location.boundElementIndex,attributeName,attributeValue)}setElementClass(location,className,isAdd){let view=view$.resolveInternalDomView(location.renderView);view.setElementClass(location.boundElementIndex,className,isAdd)}setElementStyle(location,styleName,styleValue){let view=view$.resolveInternalDomView(location.renderView);view.setElementStyle(location.boundElementIndex,styleName,styleValue)}invokeElementMethod(location,methodName,args){let view=view$.resolveInternalDomView(location.renderView);view.invokeElementMethod(location.boundElementIndex,methodName,args)}setText(viewRef,textNodeIndex,text){let view=view$.resolveInternalDomView(viewRef);dom_adapter.DOM.setText(view.boundTextNodes[dartx.get](textNodeIndex),text)}setEventDispatcher(viewRef,dispatcher){let view=view$.resolveInternalDomView(viewRef);view.eventDispatcher=dart.as(dispatcher,api.EventDispatcher)}[_createView](protoView,inplaceElement){let rootElementClone=null;let elementsWithBindingsDynamic=null;let viewRootNodes=null;if(dart.notNull(lang.isPresent(inplaceElement))){rootElementClone=inplaceElement;elementsWithBindingsDynamic=[];viewRootNodes=[inplaceElement]}else if(dart.notNull(protoView.isTemplateElement)){rootElementClone=dom_adapter.DOM.importIntoDoc(dom_adapter.DOM.content(protoView.element));elementsWithBindingsDynamic=dom_adapter.DOM.querySelectorAll(rootElementClone,util.NG_BINDING_CLASS_SELECTOR);viewRootNodes=collection.ListWrapper.createFixedSize(protoView.rootNodeCount);let childNode=dom_adapter.DOM.firstChild(rootElementClone);for(let i=0;dart.notNull(i)<dart.notNull(protoView.rootNodeCount);i=dart.notNull(i)+1,childNode=dom_adapter.DOM.nextSibling(childNode)){dart.dsetindex(viewRootNodes,i,childNode)}}else{rootElementClone=dom_adapter.DOM.importIntoDoc(protoView.element);elementsWithBindingsDynamic=dom_adapter.DOM.getElementsByClassName(rootElementClone,util.NG_BINDING_CLASS);viewRootNodes=[rootElementClone]}let binders=protoView.elementBinders;let boundTextNodes=collection.ListWrapper.createFixedSize(protoView.boundTextNodeCount);let boundElements=collection.ListWrapper.createFixedSize(binders[dartx.length]);let boundTextNodeIdx=0;for(let binderIdx=0;dart.notNull(binderIdx)<dart.notNull(binders[dartx.length]);binderIdx=dart.notNull(binderIdx)+1){let binder=binders[dartx.get](binderIdx);let element=null;let childNodes=null;if(dart.notNull(core.identical(binderIdx,0))&&dart.notNull(core.identical(protoView.rootBindingOffset,1))){element=dart.notNull(protoView.isTemplateElement)?null:rootElementClone;childNodes=dom_adapter.DOM.childNodes(rootElementClone)}else{element=dart.dindex(elementsWithBindingsDynamic,dart.notNull(binderIdx)-dart.notNull(protoView.rootBindingOffset));childNodes=dom_adapter.DOM.childNodes(element)}let textNodeIndices=binder.textNodeIndices;for(let i=0;dart.notNull(i)<dart.notNull(textNodeIndices[dartx.length]);i=dart.notNull(i)+1){boundTextNodes[dartx.set]((()=>{let x=boundTextNodeIdx;boundTextNodeIdx=dart.notNull(x)+1;return x})(),dart.dindex(childNodes,textNodeIndices[dartx.get](i)))}let contentTag=null;if(dart.notNull(lang.isPresent(binder.contentTagSelector))){contentTag=new content_tag.Content(element,binder.contentTagSelector)}boundElements[dartx.set](binderIdx,new element$.DomElement(binder,element,dart.as(contentTag,content_tag.Content)))}let view=new view$.DomView(protoView,dart.as(viewRootNodes,core.List),boundTextNodes,dart.as(boundElements,core.List$(element$.DomElement)));for(let binderIdx=0;dart.notNull(binderIdx)<dart.notNull(binders[dartx.length]);binderIdx=dart.notNull(binderIdx)+1){let binder=binders[dartx.get](binderIdx);let element=boundElements[dartx.get](binderIdx);let domEl=dart.dload(element,'element');let lightDom=null;if(dart.notNull(lang.isPresent(binder.componentId))&&(!dart.notNull(binder.elementIsEmpty)||dart.notNull(lang.isPresent(inplaceElement)))){lightDom=this[_shadowDomStrategy].constructLightDom(view,domEl)}dart.dput(element,'lightDom',lightDom);let contentTag=dart.dload(element,'contentTag');if(dart.notNull(lang.isPresent(contentTag))){let directParentLightDom=this[_directParentLightDom](view,binderIdx);dart.dsend(contentTag,'init',directParentLightDom)}if(dart.notNull(lang.isPresent(binder.eventLocals))&&dart.notNull(lang.isPresent(binder.localEvents))){for(let i=0;dart.notNull(i)<dart.notNull(binder.localEvents[dartx.length]);i=dart.notNull(i)+1){this[_createEventListener](view,domEl,binderIdx,binder.localEvents[dartx.get](i).name,binder.eventLocals)}}}return view}[_createEventListener](view,element,elementIndex,eventName,eventLocals){this[_eventManager].addEventListener(element,dart.as(eventName,core.String),dart.fn(event=>{dart.dsend(view,'dispatchEvent',elementIndex,eventName,event)}))}[_moveViewNodesAfterSibling](sibling,view){for(let i=dart.dsend(dart.dload(dart.dload(view,'rootNodes'),'length'),'-',1);dart.notNull(dart.as(dart.dsend(i,'>=',0),core.bool));i=dart.dsend(i,'-',1)){dom_adapter.DOM.insertAfter(sibling,dart.dindex(dart.dload(view,'rootNodes'),i))}}[_moveViewNodesIntoParent](parent,view){for(let i=0;dart.notNull(i)<dart.notNull(dart.as(dart.dload(dart.dload(view,'rootNodes'),'length'),core.num));i=dart.notNull(i)+1){dom_adapter.DOM.appendChild(parent,dart.dindex(dart.dload(view,'rootNodes'),i))}}[_removeViewNodes](view){let len=dart.dload(dart.dload(view,'rootNodes'),'length');if(dart.equals(len,0))return;let parent=dart.dload(dart.dindex(dart.dload(view,'rootNodes'),0),'parentNode');for(let i=dart.dsend(len,'-',1);dart.notNull(dart.as(dart.dsend(i,'>=',0),core.bool));i=dart.dsend(i,'-',1)){dom_adapter.DOM.removeChild(parent,dart.dindex(dart.dload(view,'rootNodes'),i))}}[_getOrCreateViewContainer](parentView,boundElementIndex){let el=parentView.boundElements[dartx.get](dart.as(boundElementIndex,core.int));let vc=el.viewContainer;if(dart.notNull(lang.isBlank(vc))){vc=new view_container.DomViewContainer();el.viewContainer=vc}return vc}[_directParentLightDom](view,boundElementIndex){let directParentEl=view.getDirectParentElement(boundElementIndex);return dart.notNull(lang.isPresent(directParentEl))?directParentEl.lightDom:null}[_createGlobalEventListener](view,elementIndex,eventName,eventTarget,fullName){return this[_eventManager].addGlobalEventListener(dart.as(eventTarget,core.String),dart.as(eventName,core.String),dart.fn(event=>{dart.dsend(view,'dispatchEvent',elementIndex,fullName,event)}))}};dart.setSignature(DomRenderer,{constructors:()=>({DomRenderer:[DomRenderer,[event_manager.EventManager,shadow_dom_strategy.ShadowDomStrategy,[dart.dynamic,dart.const(new annotations_impl.Inject(DOCUMENT_TOKEN))]]]}),methods:()=>({[_createGlobalEventListener]:[core.Function,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]],[_getOrCreateViewContainer]:[dart.dynamic,[view$.DomView,dart.dynamic]],[_removeViewNodes]:[dart.dynamic,[dart.dynamic]],[_moveViewNodesIntoParent]:[dart.dynamic,[dart.dynamic,dart.dynamic]],[_moveViewNodesAfterSibling]:[dart.dynamic,[dart.dynamic,dart.dynamic]],[_createEventListener]:[dart.dynamic,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]],[_createView]:[view$.DomView,[proto_view.DomProtoView,dart.dynamic]],[_directParentLightDom]:[dart.dynamic,[view$.DomView,core.num]],getRootNodes:[core.List,[api.RenderViewRef]],invokeElementMethod:[dart.void,[api.RenderElementRef,core.String,core.List]],setComponentViewRootNodes:[dart.dynamic,[api.RenderViewRef,core.List]],setElementAttribute:[dart.void,[api.RenderElementRef,core.String,core.String]],setElementClass:[dart.void,[api.RenderElementRef,core.String,core.bool]],setElementProperty:[dart.void,[api.RenderElementRef,core.String,dart.dynamic]],setElementStyle:[dart.void,[api.RenderElementRef,core.String,core.String]],setEventDispatcher:[dart.void,[api.RenderViewRef,dart.dynamic]],setText:[dart.void,[api.RenderViewRef,core.num,core.String]]})});DomRenderer[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.DOCUMENT_TOKEN=DOCUMENT_TOKEN;exports.DomRenderer=DomRenderer});dart_library.library('angular2/src/render/dom/events/event_manager',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/core/zone/ng_zone','angular2/src/dom/dom_adapter'],[],function(exports,dart,core,lang,ng_zone,dom_adapter){'use strict';let dartx=dart.dartx;exports.BUBBLE_SYMBOL="^";let _plugins=Symbol('_plugins');let _zone=Symbol('_zone');let _removeBubbleSymbol=Symbol('_removeBubbleSymbol');let _findPluginFor=Symbol('_findPluginFor');class EventManager extends core.Object{EventManager(plugins,zone){this[_plugins]=plugins;this[_zone]=zone;for(let i=0;dart.notNull(i)<dart.notNull(this[_plugins][dartx.length]);i=dart.notNull(i)+1){this[_plugins][dartx.get](i).manager=this}}addEventListener(element,eventName,handler){let withoutBubbleSymbol=this[_removeBubbleSymbol](eventName);let plugin=this[_findPluginFor](withoutBubbleSymbol);plugin.addEventListener(element,withoutBubbleSymbol,handler,withoutBubbleSymbol!=eventName)}addGlobalEventListener(target,eventName,handler){let withoutBubbleSymbol=this[_removeBubbleSymbol](eventName);let plugin=this[_findPluginFor](withoutBubbleSymbol);return plugin.addGlobalEventListener(target,withoutBubbleSymbol,handler,withoutBubbleSymbol!=eventName)}getZone(){return this[_zone]}[_findPluginFor](eventName){let plugins=this[_plugins];for(let i=0;dart.notNull(i)<dart.notNull(plugins[dartx.length]);i=dart.notNull(i)+1){let plugin=plugins[dartx.get](i);if(dart.notNull(plugin.supports(eventName))){return plugin}}dart.throw(new lang.BaseException(`No event manager plugin found for event ${eventName }`))}[_removeBubbleSymbol](eventName){return eventName[dartx.get](0)==exports.BUBBLE_SYMBOL?lang.StringWrapper.substring(eventName,1):eventName}};dart.setSignature(EventManager,{constructors:()=>({EventManager:[EventManager,[core.List$(EventManagerPlugin),ng_zone.NgZone]]}),methods:()=>({[_removeBubbleSymbol]:[core.String,[core.String]],[_findPluginFor]:[EventManagerPlugin,[core.String]],addEventListener:[dart.dynamic,[dart.dynamic,core.String,core.Function]],addGlobalEventListener:[core.Function,[core.String,core.String,core.Function]],getZone:[ng_zone.NgZone,[]]})});class EventManagerPlugin extends core.Object{EventManagerPlugin(){this.manager=null}supports(eventName){return false}addEventListener(element,eventName,handler,shouldSupportBubble){dart.throw("not implemented")}addGlobalEventListener(element,eventName,handler,shouldSupportBubble){dart.throw("not implemented")}};dart.virtualField(EventManagerPlugin,'manager');dart.setSignature(EventManagerPlugin,{methods:()=>({addEventListener:[dart.dynamic,[dart.dynamic,core.String,core.Function,core.bool]],addGlobalEventListener:[core.Function,[dart.dynamic,core.String,core.Function,core.bool]],supports:[core.bool,[core.String]]})});let _getOutsideHandler=Symbol('_getOutsideHandler');class DomEventsPlugin extends EventManagerPlugin{DomEventsPlugin(){this.manager=null;super.EventManagerPlugin()}supports(eventName){return true}addEventListener(element,eventName,handler,shouldSupportBubble){let outsideHandler=this[_getOutsideHandler](shouldSupportBubble,element,handler,this.manager[_zone]);this.manager[_zone].runOutsideAngular(dart.fn(()=>{dom_adapter.DOM.on(element,eventName,outsideHandler)}))}addGlobalEventListener(target,eventName,handler,shouldSupportBubble){let element=dom_adapter.DOM.getGlobalEventTarget(target);let outsideHandler=this[_getOutsideHandler](shouldSupportBubble,element,handler,this.manager[_zone]);return dart.as(this.manager[_zone].runOutsideAngular(dart.fn(()=>{return dom_adapter.DOM.onAndCancel(element,eventName,outsideHandler)})),core.Function)}[_getOutsideHandler](shouldSupportBubble,element,handler,zone){return dart.notNull(shouldSupportBubble)?DomEventsPlugin.bubbleCallback(element,handler,zone):DomEventsPlugin.sameElementCallback(element,handler,zone)}static sameElementCallback(element,handler,zone){return dart.fn(event=>{if(dart.notNull(core.identical(dart.dload(event,'target'),element))){dart.dsend(zone,'run',dart.fn(()=>dart.dcall(handler,event)))}})}static bubbleCallback(element,handler,zone){return dart.fn(event=>dart.dsend(zone,'run',dart.fn(()=>dart.dcall(handler,event))))}};dart.virtualField(DomEventsPlugin,'manager');dart.setSignature(DomEventsPlugin,{methods:()=>({[_getOutsideHandler]:[dart.dynamic,[core.bool,dart.dynamic,core.Function,ng_zone.NgZone]],addGlobalEventListener:[core.Function,[core.String,core.String,core.Function,core.bool]]}),names:['sameElementCallback','bubbleCallback'],statics:()=>({bubbleCallback:[dart.dynamic,[dart.dynamic,dart.dynamic,dart.dynamic]],sameElementCallback:[dart.dynamic,[dart.dynamic,dart.dynamic,dart.dynamic]]})});exports.EventManager=EventManager;exports.EventManagerPlugin=EventManagerPlugin;exports.DomEventsPlugin=DomEventsPlugin});dart_library.library('angular2/src/render/dom/events/hammer_common',null,["dart_runtime/dart",'angular2/src/render/dom/events/event_manager','angular2/src/facade/collection'],[],function(exports,dart,event_manager,collection){'use strict';let dartx=dart.dartx;dart.defineLazyProperties(exports,{get _eventNames(){return dart.map({pan:true,pancancel:true,pandown:true,panend:true,panleft:true,panmove:true,panright:true,panstart:true,panup:true,pinch:true,pinchcancel:true,pinchend:true,pinchin:true,pinchmove:true,pinchout:true,pinchstart:true,press:true,pressup:true,rotate:true,rotatecancel:true,rotateend:true,rotatemove:true,rotatestart:true,swipe:true,swipedown:true,swipeleft:true,swiperight:true,swipeup:true,tap:true})},set _eventNames(_){}});class HammerGesturesPluginCommon extends event_manager.EventManagerPlugin{HammerGesturesPluginCommon(){super.EventManagerPlugin();}supports(eventName){eventName=eventName[dartx.toLowerCase]();return collection.StringMapWrapper.contains(exports._eventNames,eventName)}};dart.setSignature(HammerGesturesPluginCommon,{constructors:()=>({HammerGesturesPluginCommon:[HammerGesturesPluginCommon,[]]})});exports.HammerGesturesPluginCommon=HammerGesturesPluginCommon});dart_library.library('angular2/src/render/dom/events/hammer_gestures',null,["dart_runtime/dart",'angular2/src/render/dom/events/hammer_common','dom_experimental/dom','dart/core','angular2/src/facade/lang'],[],function(exports,dart,hammer_common,dom,core,lang){'use strict';let dartx=dart.dartx;class HammerGesturesPlugin extends hammer_common.HammerGesturesPluginCommon{HammerGesturesPlugin(){super.HammerGesturesPluginCommon()}supports(eventName){if(!dart.notNull(super.supports(eventName)))return false;if(!dart.notNull(dart.as(dart.dsend(dart.as(dom.window,dart.dynamic),'hasOwnProperty','Hammer'),core.bool))){dart.throw(new lang.BaseException(`Hammer.js is not loaded, can not bind ${eventName } event`))}return true}addEventListener(element,eventName,handler,shouldSupportBubble){if(dart.notNull(shouldSupportBubble))dart.throw(new lang.BaseException('Hammer.js plugin does not support bubbling gestures.'));let zone=this.manager.getZone();eventName=eventName[dartx.toLowerCase]();zone.runOutsideAngular(dart.fn(()=>{let mc=new Hammer(element);dart.dsend(mc.get('pinch'),'set',{enable:true});dart.dsend(mc.get('rotate'),'set',{enable:true});mc.on(eventName,dart.fn(eventObj=>{zone.run(dart.fn(()=>{dart.dcall(handler,eventObj)}))},dart.dynamic,[HammerEvent]))}))}};dart.setSignature(HammerGesturesPlugin,{methods:()=>({addEventListener:[dart.dynamic,[dom.Element,core.String,core.Function,core.bool]]})});exports.HammerGesturesPlugin=HammerGesturesPlugin});dart_library.library('angular2/src/render/dom/events/key_events',null,["dart_runtime/dart",'angular2/src/render/dom/events/event_manager','angular2/src/facade/lang','angular2/src/facade/collection','angular2/src/dom/dom_adapter','dart/core'],[],function(exports,dart,event_manager,lang,collection,dom_adapter,core){'use strict';let dartx=dart.dartx;dart.defineLazyProperties(exports,{get modifierKeyGetters(){return dart.map({alt:dart.fn(event=>dart.dload(event,'altKey')),control:dart.fn(event=>dart.dload(event,'ctrlKey')),meta:dart.fn(event=>dart.dload(event,'metaKey')),shift:dart.fn(event=>dart.dload(event,'shiftKey'))})},get modifierKeys(){return["alt","control","meta","shift"]},set modifierKeyGetters(_){},set modifierKeys(_){}});class KeyEventsPlugin extends event_manager.EventManagerPlugin{KeyEventsPlugin(){super.EventManagerPlugin();}supports(eventName){return lang.isPresent(KeyEventsPlugin.parseEventName(eventName))}addEventListener(element,eventName,handler,shouldSupportBubble){let parsedEvent=KeyEventsPlugin.parseEventName(eventName);let outsideHandler=KeyEventsPlugin.eventCallback(element,shouldSupportBubble,collection.StringMapWrapper.get(parsedEvent,"fullKey"),handler,this.manager.getZone());this.manager.getZone().runOutsideAngular(dart.fn(()=>{dom_adapter.DOM.on(element,collection.StringMapWrapper.get(parsedEvent,"domEventName"),outsideHandler)}))}static parseEventName(eventName){let parts=eventName[dartx.toLowerCase]()[dartx.split](".");let domEventName=collection.ListWrapper.removeAt(parts,0);if(dart.notNull(core.identical(parts[dartx.length],0))|| !(dart.notNull(lang.StringWrapper.equals(dart.as(domEventName,core.String),"keydown"))||dart.notNull(lang.StringWrapper.equals(dart.as(domEventName,core.String),"keyup")))){return null}let key=KeyEventsPlugin._normalizeKey(dart.as(collection.ListWrapper.removeLast(parts),core.String));let fullKey="";collection.ListWrapper.forEach(exports.modifierKeys,dart.fn(modifierName=>{if(dart.notNull(collection.ListWrapper.contains(parts,modifierName))){collection.ListWrapper.remove(parts,modifierName);fullKey=dart.notNull(fullKey)+dart.notNull(dart.as(dart.dsend(modifierName,'+',"."),core.String))}}));fullKey=dart.notNull(fullKey)+dart.notNull(key);if(parts[dartx.length]!=0||dart.notNull(core.identical(key[dartx.length],0))){return null}let result=collection.StringMapWrapper.create();collection.StringMapWrapper.set(result,"domEventName",domEventName);collection.StringMapWrapper.set(result,"fullKey",fullKey);return dart.as(result,core.Map$(core.String,core.String))}static getEventFullKey(event){let fullKey="";let key=dom_adapter.DOM.getEventKey(event);key=key[dartx.toLowerCase]();if(dart.notNull(lang.StringWrapper.equals(key," "))){key="space"}else if(dart.notNull(lang.StringWrapper.equals(key,"."))){key="dot"}collection.ListWrapper.forEach(exports.modifierKeys,dart.fn(modifierName=>{if(!dart.equals(modifierName,key)){let modifierGetter=collection.StringMapWrapper.get(exports.modifierKeyGetters,modifierName);if(dart.notNull(dart.as(dart.dcall(modifierGetter,event),core.bool))){fullKey=dart.notNull(fullKey)+dart.notNull(dart.as(dart.dsend(modifierName,'+',"."),core.String))}}}));fullKey=dart.notNull(fullKey)+dart.notNull(key);return fullKey}static eventCallback(element,shouldSupportBubble,fullKey,handler,zone){return dart.fn(event=>{let correctElement=dart.notNull(dart.as(shouldSupportBubble,core.bool))||dart.notNull(core.identical(dart.dload(event,'target'),element));if(dart.notNull(correctElement)&&dart.notNull(lang.StringWrapper.equals(KeyEventsPlugin.getEventFullKey(event),dart.as(fullKey,core.String)))){dart.dsend(zone,'run',dart.fn(()=>dart.dcall(handler,event)))}})}static _normalizeKey(keyName){switch(keyName){case "esc":{return "escape"}default:{return keyName}}}};dart.setSignature(KeyEventsPlugin,{constructors:()=>({KeyEventsPlugin:[KeyEventsPlugin,[]]}),names:['parseEventName','getEventFullKey','eventCallback','_normalizeKey'],statics:()=>({_normalizeKey:[core.String,[core.String]],eventCallback:[dart.dynamic,[dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic,dart.dynamic]],getEventFullKey:[core.String,[dart.dynamic]],parseEventName:[core.Map$(core.String,core.String),[core.String]]})});exports.KeyEventsPlugin=KeyEventsPlugin});dart_library.library('angular2/src/render/dom/shadow_dom/content_tag',null,["dart_runtime/dart",'dart/core','angular2/src/dom/dom_adapter','angular2/src/facade/collection','angular2/src/facade/lang'],['angular2/src/render/dom/shadow_dom/light_dom'],function(exports,dart,core,dom_adapter,collection,lang,light_dom){'use strict';let dartx=dart.dartx;class ContentStrategy extends core.Object{ContentStrategy(){this.nodes=null}insert(nodes){}};dart.setSignature(ContentStrategy,{methods:()=>({insert:[dart.dynamic,[core.List]]})});let _removeNodesUntil=Symbol('_removeNodesUntil');class RenderedContent extends ContentStrategy{RenderedContent(contentEl){this.beginScript=null;this.endScript=null;super.ContentStrategy();;this.beginScript=contentEl;this.endScript=dom_adapter.DOM.nextSibling(this.beginScript);this.nodes=[]}insert(nodes){this.nodes=nodes;dom_adapter.DOM.insertAllBefore(this.endScript,nodes);this[_removeNodesUntil](dart.notNull(collection.ListWrapper.isEmpty(nodes))?this.endScript:nodes[dartx.get](0))}[_removeNodesUntil](node){let p=dom_adapter.DOM.parentElement(this.beginScript);for(let next=dom_adapter.DOM.nextSibling(this.beginScript);!dart.notNull(core.identical(next,node));next=dom_adapter.DOM.nextSibling(this.beginScript)){dom_adapter.DOM.removeChild(p,next)}}};dart.setSignature(RenderedContent,{constructors:()=>({RenderedContent:[RenderedContent,[dart.dynamic]]}),methods:()=>({[_removeNodesUntil]:[dart.dynamic,[dart.dynamic]]})});class IntermediateContent extends ContentStrategy{IntermediateContent(destinationLightDom){this.destinationLightDom=destinationLightDom;super.ContentStrategy();;this.nodes=[]}insert(nodes){this.nodes=nodes;this.destinationLightDom.redistribute()}};dart.setSignature(IntermediateContent,{constructors:()=>({IntermediateContent:[IntermediateContent,[light_dom.LightDom]]})});let _strategy=Symbol('_strategy');class Content extends core.Object{Content(contentStartElement,select){this.contentStartElement=contentStartElement;this.select=select;this[_strategy]=null}init(destinationLightDom){this[_strategy]=dart.notNull(lang.isPresent(destinationLightDom))?new IntermediateContent(destinationLightDom):new RenderedContent(this.contentStartElement)}nodes(){return this[_strategy].nodes}insert(nodes){this[_strategy].insert(nodes)}};dart.setSignature(Content,{constructors:()=>({Content:[Content,[dart.dynamic,core.String]]}),methods:()=>({init:[dart.dynamic,[light_dom.LightDom]],insert:[dart.dynamic,[core.List]],nodes:[core.List,[]]})});exports.ContentStrategy=ContentStrategy;exports.RenderedContent=RenderedContent;exports.IntermediateContent=IntermediateContent;exports.Content=Content});dart_library.library('angular2/src/render/dom/shadow_dom/emulated_scoped_shadow_dom_strategy',null,["dart_runtime/dart",'angular2/src/render/dom/shadow_dom/emulated_unscoped_shadow_dom_strategy','angular2/src/dom/dom_adapter','angular2/src/render/dom/shadow_dom/util','angular2/src/facade/lang'],[],function(exports,dart,emulated_unscoped_shadow_dom_strategy,dom_adapter,util,lang){'use strict';let dartx=dart.dartx;let _moveToStyleHost=Symbol('_moveToStyleHost');class EmulatedScopedShadowDomStrategy extends emulated_unscoped_shadow_dom_strategy.EmulatedUnscopedShadowDomStrategy{EmulatedScopedShadowDomStrategy(styleHost){super.EmulatedUnscopedShadowDomStrategy(styleHost);}processStyleElement(hostComponentId,templateUrl,styleEl){let cssText=dom_adapter.DOM.getText(styleEl);cssText=util.shimCssForComponent(cssText,hostComponentId);dom_adapter.DOM.setText(styleEl,cssText);this[_moveToStyleHost](styleEl)}[_moveToStyleHost](styleEl){dom_adapter.DOM.remove(styleEl);util.insertStyleElement(this.styleHost,styleEl)}processElement(hostComponentId,elementComponentId,element){if(dart.notNull(lang.isPresent(hostComponentId))){let contentAttribute=util.getContentAttribute(util.getComponentId(hostComponentId));dom_adapter.DOM.setAttribute(element,contentAttribute,"")}if(dart.notNull(lang.isPresent(elementComponentId))){let hostAttribute=util.getHostAttribute(util.getComponentId(elementComponentId));dom_adapter.DOM.setAttribute(element,hostAttribute,"")}}};dart.setSignature(EmulatedScopedShadowDomStrategy,{constructors:()=>({EmulatedScopedShadowDomStrategy:[EmulatedScopedShadowDomStrategy,[dart.dynamic]]}),methods:()=>({[_moveToStyleHost]:[dart.void,[dart.dynamic]]})});exports.EmulatedScopedShadowDomStrategy=EmulatedScopedShadowDomStrategy});dart_library.library('angular2/src/render/dom/shadow_dom/emulated_unscoped_shadow_dom_strategy',null,["dart_runtime/dart",'angular2/src/render/dom/shadow_dom/shadow_dom_strategy','angular2/src/render/dom/shadow_dom/light_dom','angular2/src/dom/dom_adapter','angular2/src/render/dom/shadow_dom/util'],[],function(exports,dart,shadow_dom_strategy,light_dom,dom_adapter,util){'use strict';let dartx=dart.dartx;class EmulatedUnscopedShadowDomStrategy extends shadow_dom_strategy.ShadowDomStrategy{EmulatedUnscopedShadowDomStrategy(styleHost){this.styleHost=styleHost;}hasNativeContentElement(){return false}prepareShadowRoot(el){return el}constructLightDom(lightDomView,el){return new light_dom.LightDom(lightDomView,el)}processStyleElement(hostComponentId,templateUrl,styleEl){let cssText=dom_adapter.DOM.getText(styleEl);util.insertSharedStyleText(cssText,this.styleHost,styleEl)}};dart.setSignature(EmulatedUnscopedShadowDomStrategy,{constructors:()=>({EmulatedUnscopedShadowDomStrategy:[EmulatedUnscopedShadowDomStrategy,[dart.dynamic]]})});exports.EmulatedUnscopedShadowDomStrategy=EmulatedUnscopedShadowDomStrategy});dart_library.library('angular2/src/render/dom/shadow_dom/light_dom',null,["dart_runtime/dart",'dart/core','angular2/src/dom/dom_adapter','angular2/src/facade/lang','angular2/src/facade/collection'],['angular2/src/render/dom/view/element','angular2/src/render/dom/shadow_dom/content_tag','angular2/src/render/dom/view/view'],function(exports,dart,core,dom_adapter,lang,collection,element,content_tag,view$){'use strict';let dartx=dart.dartx;class DestinationLightDom extends core.Object{};class _Root extends core.Object{_Root(node,boundElement){this.node=node;this.boundElement=boundElement}};dart.setSignature(_Root,{constructors:()=>({_Root:[_Root,[dart.dynamic,element.DomElement]]})});let _roots=Symbol('_roots');let _collectAllContentTags=Symbol('_collectAllContentTags');let _findRoots=Symbol('_findRoots');class LightDom extends core.Object{LightDom(lightDomView,element){this.lightDomView=null;this.shadowDomView=null;this.nodes=null;this[_roots]=null;this.lightDomView=lightDomView;this.nodes=dom_adapter.DOM.childNodesAsList(element)}attachShadowDomView(shadowDomView){this.shadowDomView=shadowDomView}detachShadowDomView(){this.shadowDomView=null}redistribute(){redistributeNodes(this.contentTags(),this.expandedDomNodes())}contentTags(){if(dart.notNull(lang.isPresent(this.shadowDomView))){return this[_collectAllContentTags](this.shadowDomView,dart.list([],content_tag.Content))}else{return dart.list([],content_tag.Content)}}[_collectAllContentTags](view,acc){if(dart.notNull(core.identical(view.proto.transitiveContentTagCount,0))){return acc}let els=view.boundElements;for(let i=0;dart.notNull(i)<dart.notNull(els[dartx.length]);i=dart.notNull(i)+1){let el=els[dartx.get](i);if(dart.notNull(lang.isPresent(el.contentTag))){acc[dartx.add](el.contentTag)}if(dart.notNull(lang.isPresent(el.viewContainer))){collection.ListWrapper.forEach(el.viewContainer.contentTagContainers(),dart.fn(view=>{this[_collectAllContentTags](dart.as(view,view$.DomView),acc)}))}}return acc}expandedDomNodes(){let res=[];let roots=this[_findRoots]();for(let i=0;dart.notNull(i)<dart.notNull(dart.as(dart.dload(roots,'length'),core.num));i=dart.notNull(i)+1){let root=dart.dindex(roots,i);if(dart.notNull(lang.isPresent(dart.dload(root,'boundElement')))){let vc=dart.dload(dart.dload(root,'boundElement'),'viewContainer');let content=dart.dload(dart.dload(root,'boundElement'),'contentTag');if(dart.notNull(lang.isPresent(vc))){res=collection.ListWrapper.concat(res,dart.as(dart.dsend(vc,'nodes'),core.List))}else if(dart.notNull(lang.isPresent(content))){res=collection.ListWrapper.concat(res,dart.as(dart.dsend(content,'nodes'),core.List))}else{res[dartx.add](dart.dload(root,'node'))}}else{res[dartx.add](dart.dload(root,'node'))}}return res}[_findRoots](){if(dart.notNull(lang.isPresent(this[_roots])))return this[_roots];let boundElements=this.lightDomView.boundElements;this[_roots]=dart.as(collection.ListWrapper.map(this.nodes,dart.fn(n=>{let boundElement=null;for(let i=0;dart.notNull(i)<dart.notNull(boundElements[dartx.length]);i=dart.notNull(i)+1){let boundEl=boundElements[dartx.get](i);if(dart.notNull(lang.isPresent(boundEl))&&dart.notNull(core.identical(boundEl.element,n))){boundElement=boundEl;break}}return new _Root(n,dart.as(boundElement,element.DomElement))})),core.List$(_Root));return this[_roots]}};dart.setSignature(LightDom,{constructors:()=>({LightDom:[LightDom,[view$.DomView,dart.dynamic]]}),methods:()=>({[_findRoots]:[dart.dynamic,[]],[_collectAllContentTags]:[core.List$(content_tag.Content),[view$.DomView,core.List$(content_tag.Content)]],attachShadowDomView:[dart.dynamic,[view$.DomView]],contentTags:[core.List$(content_tag.Content),[]],detachShadowDomView:[dart.dynamic,[]],expandedDomNodes:[core.List,[]],redistribute:[dart.dynamic,[]]})});function redistributeNodes(contents,nodes){for(let i=0;dart.notNull(i)<dart.notNull(contents[dartx.length]);i=dart.notNull(i)+1){let content=contents[dartx.get](i);let select=content.select;if(dart.notNull(core.identical(select[dartx.length],0))){content.insert(collection.ListWrapper.clone(nodes));collection.ListWrapper.clear(nodes)}else{let matchSelector=dart.fn(n=>dom_adapter.DOM.elementMatches(n,select),core.bool,[dart.dynamic]);let matchingNodes=collection.ListWrapper.filter(nodes,matchSelector);content.insert(matchingNodes);collection.ListWrapper.removeAll(nodes,matchingNodes)}}for(let i=0;dart.notNull(i)<dart.notNull(nodes[dartx.length]);i=dart.notNull(i)+1){let node=nodes[dartx.get](i);if(dart.notNull(lang.isPresent(dart.dload(node,'parentNode')))){dom_adapter.DOM.remove(nodes[dartx.get](i))}}}dart.fn(redistributeNodes,()=>dart.definiteFunctionType(dart.dynamic,[core.List$(content_tag.Content),core.List]));exports.DestinationLightDom=DestinationLightDom;exports.LightDom=LightDom;exports.redistributeNodes=redistributeNodes});dart_library.library('angular2/src/render/dom/shadow_dom/native_shadow_dom_strategy',null,["dart_runtime/dart",'angular2/src/render/dom/shadow_dom/shadow_dom_strategy','angular2/src/dom/dom_adapter','angular2/src/di/annotations_impl'],[],function(exports,dart,shadow_dom_strategy,dom_adapter,annotations_impl){'use strict';let dartx=dart.dartx;class NativeShadowDomStrategy extends shadow_dom_strategy.ShadowDomStrategy{prepareShadowRoot(el){return dom_adapter.DOM.createShadowRoot(el)}};NativeShadowDomStrategy[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.NativeShadowDomStrategy=NativeShadowDomStrategy});dart_library.library('angular2/src/render/dom/shadow_dom/shadow_css',null,["dart_runtime/dart",'dart/core','angular2/src/dom/dom_adapter','angular2/src/facade/lang','angular2/src/facade/collection'],[],function(exports,dart,core,dom_adapter,lang,collection){'use strict';let dartx=dart.dartx;let _insertDirectives=Symbol('_insertDirectives');let _scopeCssText=Symbol('_scopeCssText');let _insertPolyfillDirectivesInCssText=Symbol('_insertPolyfillDirectivesInCssText');let _insertPolyfillRulesInCssText=Symbol('_insertPolyfillRulesInCssText');let _extractUnscopedRulesFromCssText=Symbol('_extractUnscopedRulesFromCssText');let _insertPolyfillHostInCssText=Symbol('_insertPolyfillHostInCssText');let _convertColonHost=Symbol('_convertColonHost');let _convertColonHostContext=Symbol('_convertColonHostContext');let _convertShadowDOMSelectors=Symbol('_convertShadowDOMSelectors');let _scopeRules=Symbol('_scopeRules');let _convertColonRule=Symbol('_convertColonRule');let _colonHostPartReplacer=Symbol('_colonHostPartReplacer');let _colonHostContextPartReplacer=Symbol('_colonHostContextPartReplacer');let _scopeSelector=Symbol('_scopeSelector');let _propertiesFromRule=Symbol('_propertiesFromRule');let _ieSafeCssTextFromKeyFrameRule=Symbol('_ieSafeCssTextFromKeyFrameRule');let _selectorNeedsScoping=Symbol('_selectorNeedsScoping');let _applyStrictSelectorScope=Symbol('_applyStrictSelectorScope');let _applySelectorScope=Symbol('_applySelectorScope');let _makeScopeMatcher=Symbol('_makeScopeMatcher');let _applySimpleSelectorScope=Symbol('_applySimpleSelectorScope');class ShadowCss extends core.Object{ShadowCss(){this.strictStyling=true}shimStyle(style,selector,hostSelector){if(hostSelector===void 0)hostSelector="";let cssText=dom_adapter.DOM.getText(style);return this.shimCssText(cssText,selector,hostSelector)}shimCssText(cssText,selector,hostSelector){if(hostSelector===void 0)hostSelector="";cssText=this[_insertDirectives](cssText);return this[_scopeCssText](cssText,selector,hostSelector)}[_insertDirectives](cssText){cssText=this[_insertPolyfillDirectivesInCssText](cssText);return this[_insertPolyfillRulesInCssText](cssText)}[_insertPolyfillDirectivesInCssText](cssText){return lang.StringWrapper.replaceAllMapped(cssText,exports._cssContentNextSelectorRe,dart.fn(m=>{return dart.dsend(dart.dindex(m,1),'+',"{")}))}[_insertPolyfillRulesInCssText](cssText){return lang.StringWrapper.replaceAllMapped(cssText,exports._cssContentRuleRe,dart.fn(m=>{let rule=dart.dindex(m,0);rule=lang.StringWrapper.replace(dart.as(rule,core.String),dart.as(dart.dindex(m,1),core.Pattern),"");rule=lang.StringWrapper.replace(dart.as(rule,core.String),dart.as(dart.dindex(m,2),core.Pattern),"");return dart.dsend(dart.dindex(m,3),'+',rule)}))}[_scopeCssText](cssText,scopeSelector,hostSelector){let unscoped=this[_extractUnscopedRulesFromCssText](cssText);cssText=this[_insertPolyfillHostInCssText](cssText);cssText=this[_convertColonHost](cssText);cssText=this[_convertColonHostContext](cssText);cssText=this[_convertShadowDOMSelectors](cssText);if(dart.notNull(lang.isPresent(scopeSelector))){_withCssRules(cssText,dart.fn(rules=>{cssText=this[_scopeRules](rules,scopeSelector,hostSelector)}))}cssText=dart.notNull(cssText)+"\n"+dart.notNull(unscoped);return cssText[dartx.trim]()}[_extractUnscopedRulesFromCssText](cssText){let r="",m=null;let matcher=lang.RegExpWrapper.matcher(exports._cssContentUnscopedRuleRe,cssText);while(dart.notNull(lang.isPresent(m=lang.RegExpMatcherWrapper.next(matcher)))){let rule=dart.dindex(m,0);rule=lang.StringWrapper.replace(dart.as(rule,core.String),dart.as(dart.dindex(m,2),core.Pattern),"");rule=lang.StringWrapper.replace(dart.as(rule,core.String),dart.as(dart.dindex(m,1),core.Pattern),dart.as(dart.dindex(m,3),core.String));r=dart.as(dart.dsend(rule,'+',"\n\n"),core.String)}return r}[_convertColonHost](cssText){return this[_convertColonRule](cssText,exports._cssColonHostRe,dart.bind(this,_colonHostPartReplacer))}[_convertColonHostContext](cssText){return this[_convertColonRule](cssText,exports._cssColonHostContextRe,dart.bind(this,_colonHostContextPartReplacer))}[_convertColonRule](cssText,regExp,partReplacer){return lang.StringWrapper.replaceAllMapped(cssText,regExp,dart.fn(m=>{if(dart.notNull(lang.isPresent(dart.dindex(m,2)))){let parts=dart.dsend(dart.dindex(m,2),'split',","),r=[];for(let i=0;dart.notNull(i)<dart.notNull(dart.as(dart.dload(parts,'length'),core.num));i=dart.notNull(i)+1){let p=dart.dindex(parts,i);if(dart.notNull(lang.isBlank(p)))break;p=dart.dsend(p,'trim');r[dartx.add](dart.dcall(partReplacer,exports._polyfillHostNoCombinator,p,dart.dindex(m,3)))}return r[dartx.join](",")}else{return dart.notNull(exports._polyfillHostNoCombinator)+dart.notNull(dart.as(dart.dindex(m,3),core.String))}}))}[_colonHostContextPartReplacer](host,part,suffix){if(dart.notNull(lang.StringWrapper.contains(part,exports._polyfillHost))){return this[_colonHostPartReplacer](host,part,suffix)}else{return dart.notNull(host)+dart.notNull(part)+dart.notNull(suffix)+", "+dart.notNull(part)+" "+dart.notNull(host)+dart.notNull(suffix)}}[_colonHostPartReplacer](host,part,suffix){return dart.notNull(host)+dart.notNull(lang.StringWrapper.replace(part,exports._polyfillHost,""))+dart.notNull(suffix)}[_convertShadowDOMSelectors](cssText){for(let i=0;dart.notNull(i)<dart.notNull(exports._shadowDOMSelectorsRe[dartx.length]);i=dart.notNull(i)+1){cssText=lang.StringWrapper.replaceAll(cssText,dart.as(exports._shadowDOMSelectorsRe[dartx.get](i),core.RegExp)," ")}return cssText}[_scopeRules](cssRules,scopeSelector,hostSelector){let cssText="";if(dart.notNull(lang.isPresent(cssRules))){for(let i=0;dart.notNull(i)<dart.notNull(dart.as(dart.dload(cssRules,'length'),core.num));i=dart.notNull(i)+1){let rule=dart.dindex(cssRules,i);if(dart.notNull(dom_adapter.DOM.isStyleRule(rule))||dart.notNull(dom_adapter.DOM.isPageRule(rule))){cssText=dart.notNull(cssText)+(dart.notNull(this[_scopeSelector](dart.as(dart.dload(rule,'selectorText'),core.String),scopeSelector,hostSelector,this.strictStyling))+" {\n");cssText=dart.notNull(cssText)+(dart.notNull(this[_propertiesFromRule](rule))+"\n}\n\n")}else if(dart.notNull(dom_adapter.DOM.isMediaRule(rule))){cssText=dart.notNull(cssText)+("@media "+dart.notNull(dart.as(dart.dload(dart.dload(rule,'media'),'mediaText'),core.String))+" {\n");cssText=dart.notNull(cssText)+dart.notNull(this[_scopeRules](dart.dload(rule,'cssRules'),scopeSelector,hostSelector));cssText=dart.notNull(cssText)+"\n}\n\n"}else{try{if(dart.notNull(lang.isPresent(dart.dload(rule,'cssText')))){cssText=dart.notNull(cssText)+dart.notNull(dart.as(dart.dsend(dart.dload(rule,'cssText'),'+',"\n\n"),core.String))}}catch(x){let x_stack=dart.stackTrace(x);if(dart.notNull(dom_adapter.DOM.isKeyframesRule(rule))&&dart.notNull(lang.isPresent(dart.dload(rule,'cssRules')))){cssText=dart.notNull(cssText)+dart.notNull(this[_ieSafeCssTextFromKeyFrameRule](rule))}}}}}return cssText}[_ieSafeCssTextFromKeyFrameRule](rule){let cssText="@keyframes "+dart.notNull(dart.as(dart.dload(rule,'name'),core.String))+" {";for(let i=0;dart.notNull(i)<dart.notNull(dart.as(dart.dload(dart.dload(rule,'cssRules'),'length'),core.num));i=dart.notNull(i)+1){let r=dart.dindex(dart.dload(rule,'cssRules'),i);cssText=dart.notNull(cssText)+(" "+dart.notNull(dart.as(dart.dload(r,'keyText'),core.String))+" {"+dart.notNull(dart.as(dart.dload(dart.dload(r,'style'),'cssText'),core.String))+"}")}cssText=dart.notNull(cssText)+" }";return cssText}[_scopeSelector](selector,scopeSelector,hostSelector,strict){let r=[],parts=selector[dartx.split](",");for(let i=0;dart.notNull(i)<dart.notNull(parts[dartx.length]);i=dart.notNull(i)+1){let p=parts[dartx.get](i);p=p[dartx.trim]();if(dart.notNull(this[_selectorNeedsScoping](p,scopeSelector))){p=dart.notNull(strict)&& !dart.notNull(lang.StringWrapper.contains(p,exports._polyfillHostNoCombinator))?this[_applyStrictSelectorScope](p,scopeSelector):this[_applySelectorScope](p,scopeSelector,hostSelector)}r[dartx.add](p)}return r[dartx.join](", ")}[_selectorNeedsScoping](selector,scopeSelector){let re=this[_makeScopeMatcher](scopeSelector);return!dart.notNull(lang.isPresent(lang.RegExpWrapper.firstMatch(re,selector)))}[_makeScopeMatcher](scopeSelector){let lre=lang.RegExpWrapper.create("\\[");let rre=lang.RegExpWrapper.create("\\]");scopeSelector=lang.StringWrapper.replaceAll(scopeSelector,lre,"\\[");scopeSelector=lang.StringWrapper.replaceAll(scopeSelector,rre,"\\]");return lang.RegExpWrapper.create("^("+dart.notNull(scopeSelector)+")"+dart.notNull(exports._selectorReSuffix),"m")}[_applySelectorScope](selector,scopeSelector,hostSelector){return this[_applySimpleSelectorScope](selector,scopeSelector,hostSelector)}[_applySimpleSelectorScope](selector,scopeSelector,hostSelector){if(dart.notNull(lang.isPresent(lang.RegExpWrapper.firstMatch(exports._polyfillHostRe,selector)))){let replaceBy=dart.notNull(this.strictStyling)?`[${hostSelector }]`:scopeSelector;selector=lang.StringWrapper.replace(selector,exports._polyfillHostNoCombinator,replaceBy);return lang.StringWrapper.replaceAll(selector,exports._polyfillHostRe,dart.notNull(replaceBy)+" ")}else{return dart.notNull(scopeSelector)+" "+dart.notNull(selector)}}[_applyStrictSelectorScope](selector,scopeSelector){let isRe=lang.RegExpWrapper.create("\\[is=([^\\]]*)\\]");scopeSelector=lang.StringWrapper.replaceAllMapped(scopeSelector,isRe,dart.fn(m=>dart.dindex(m,1)));let splits=[" ",">","+","~"],scoped=selector,attrName="["+dart.notNull(scopeSelector)+"]";for(let i=0;dart.notNull(i)<dart.notNull(splits[dartx.length]);i=dart.notNull(i)+1){let sep=splits[dartx.get](i);let parts=scoped[dartx.split](dart.as(sep,core.Pattern));scoped=collection.ListWrapper.map(parts,dart.fn(p=>{let t=lang.StringWrapper.replaceAll(dart.as(dart.dsend(p,'trim'),core.String),exports._polyfillHostRe,"");if(dart.notNull(t[dartx.length])>0&& !dart.notNull(collection.ListWrapper.contains(splits,t))&& !dart.notNull(lang.StringWrapper.contains(t,attrName))){let re=lang.RegExpWrapper.create("([^:]*)(:*)(.*)");let m=lang.RegExpWrapper.firstMatch(re,t);if(dart.notNull(lang.isPresent(m))){p=dart.notNull(m.get(1))+dart.notNull(attrName)+dart.notNull(m.get(2))+dart.notNull(m.get(3))}}return p}))[dartx.join](dart.as(sep,core.String))}return scoped}[_insertPolyfillHostInCssText](selector){selector=lang.StringWrapper.replaceAll(selector,exports._colonHostContextRe,exports._polyfillHostContext);selector=lang.StringWrapper.replaceAll(selector,exports._colonHostRe,exports._polyfillHost);return selector}[_propertiesFromRule](rule){let cssText=dart.dload(dart.dload(rule,'style'),'cssText');let attrRe=lang.RegExpWrapper.create("['\"]+|attr");if(dart.notNull(dart.as(dart.dsend(dart.dload(dart.dload(dart.dload(rule,'style'),'content'),'length'),'>',0),core.bool))&& !dart.notNull(lang.isPresent(lang.RegExpWrapper.firstMatch(attrRe,dart.as(dart.dload(dart.dload(rule,'style'),'content'),core.String))))){let contentRe=lang.RegExpWrapper.create("content:[^;]*;");cssText=lang.StringWrapper.replaceAll(dart.as(cssText,core.String),contentRe,"content: '"+dart.notNull(dart.as(dart.dload(dart.dload(rule,'style'),'content'),core.String))+"';")}return dart.as(cssText,core.String)}};dart.setSignature(ShadowCss,{constructors:()=>({ShadowCss:[ShadowCss,[]]}),methods:()=>({[_propertiesFromRule]:[core.String,[dart.dynamic]],[_scopeSelector]:[core.String,[core.String,core.String,core.String,core.bool]],[_ieSafeCssTextFromKeyFrameRule]:[core.String,[dart.dynamic]],[_scopeRules]:[core.String,[dart.dynamic,core.String,core.String]],[_convertShadowDOMSelectors]:[core.String,[core.String]],[_selectorNeedsScoping]:[core.bool,[core.String,core.String]],[_colonHostContextPartReplacer]:[core.String,[core.String,core.String,core.String]],[_convertColonRule]:[core.String,[core.String,core.RegExp,core.Function]],[_convertColonHostContext]:[core.String,[core.String]],[_convertColonHost]:[core.String,[core.String]],[_extractUnscopedRulesFromCssText]:[core.String,[core.String]],[_makeScopeMatcher]:[core.RegExp,[core.String]],[_scopeCssText]:[core.String,[core.String,core.String,core.String]],[_applySelectorScope]:[core.String,[core.String,core.String,core.String]],[_insertPolyfillRulesInCssText]:[core.String,[core.String]],[_applySimpleSelectorScope]:[core.String,[core.String,core.String,core.String]],[_insertPolyfillDirectivesInCssText]:[core.String,[core.String]],[_applyStrictSelectorScope]:[core.String,[core.String,core.String]],[_insertDirectives]:[core.String,[core.String]],[_insertPolyfillHostInCssText]:[core.String,[core.String]],[_colonHostPartReplacer]:[core.String,[core.String,core.String,core.String]],shimCssText:[core.String,[core.String,core.String],[core.String]],shimStyle:[core.String,[dart.dynamic,core.String],[core.String]]})});exports._polyfillHost="-shadowcsshost";exports._polyfillHostContext="-shadowcsscontext";exports._parenSuffix=")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)";exports._selectorReSuffix="([>\\s~+[.,{:][\\s\\S]*)?$";dart.defineLazyProperties(exports,{get _cssContentNextSelectorRe(){return lang.RegExpWrapper.create("polyfill-next-selector[^}]*content:[\\s]*?['\"](.*?)['\"][;\\s]*}([^{]*?){","im")},get _colonHostRe(){return lang.RegExpWrapper.create(":host","im")},get _cssContentRuleRe(){return lang.RegExpWrapper.create("(polyfill-rule)[^}]*(content:[\\s]*['\"](.*?)['\"])[;\\s]*[^}]*}","im")},get _polyfillHostRe(){return lang.RegExpWrapper.create(exports._polyfillHost,"im")},get _cssContentUnscopedRuleRe(){return lang.RegExpWrapper.create("(polyfill-unscoped-rule)[^}]*(content:[\\s]*['\"](.*?)['\"])[;\\s]*[^}]*}","im")},get _shadowDOMSelectorsRe(){return[lang.RegExpWrapper.create(">>>"),lang.RegExpWrapper.create("::shadow"),lang.RegExpWrapper.create("::content"),lang.RegExpWrapper.create("/deep/"),lang.RegExpWrapper.create("/shadow-deep/"),lang.RegExpWrapper.create("/shadow/")]},get _cssColonHostRe(){return lang.RegExpWrapper.create("("+dart.notNull(exports._polyfillHost)+dart.notNull(exports._parenSuffix),"im")},get _polyfillHostNoCombinator(){return dart.notNull(exports._polyfillHost)+"-no-combinator"},get _cssColonHostContextRe(){return lang.RegExpWrapper.create("("+dart.notNull(exports._polyfillHostContext)+dart.notNull(exports._parenSuffix),"im")},get _colonHostContextRe(){return lang.RegExpWrapper.create(":host-context","im")},set _colonHostRe(_){},set _cssColonHostRe(_){},set _polyfillHostNoCombinator(_){},set _cssContentUnscopedRuleRe(_){},set _shadowDOMSelectorsRe(_){},set _cssContentRuleRe(_){},set _polyfillHostRe(_){},set _cssContentNextSelectorRe(_){},set _colonHostContextRe(_){},set _cssColonHostContextRe(_){}});function _cssToRules(cssText){return dom_adapter.DOM.cssToRules(cssText)}dart.fn(_cssToRules,dart.dynamic,[core.String]);function _withCssRules(cssText,callback){if(dart.notNull(lang.isBlank(callback)))return;let rules=_cssToRules(cssText);dart.dcall(callback,rules)}dart.fn(_withCssRules,dart.dynamic,[core.String,core.Function]);exports.ShadowCss=ShadowCss});dart_library.library('angular2/src/render/dom/shadow_dom/shadow_dom_compile_step',null,["dart_runtime/dart",'dart/core','angular2/src/dom/dom_adapter','angular2/src/facade/lang','angular2/src/render/dom/compiler/compile_step','angular2/src/render/dom/compiler/compile_element','angular2/src/render/dom/compiler/compile_control','angular2/src/render/dom/shadow_dom/shadow_dom_strategy','angular2/src/render/api'],[],function(exports,dart,core,dom_adapter,lang,compile_step,compile_element,compile_control,shadow_dom_strategy,api){'use strict';let dartx=dart.dartx;let _shadowDomStrategy=Symbol('_shadowDomStrategy');let _view=Symbol('_view');let _processStyleElement=Symbol('_processStyleElement');let _processContentElement=Symbol('_processContentElement');class ShadowDomCompileStep extends core.Object{ShadowDomCompileStep(shadowDomStrategy,view){this[_shadowDomStrategy]=shadowDomStrategy;this[_view]=view}process(parent,current,control){let tagName=dom_adapter.DOM.tagName(current.element)[dartx.toUpperCase]();if(tagName=="STYLE"){this[_processStyleElement](current,control)}else if(tagName=="CONTENT"){this[_processContentElement](current)}else{let componentId=dart.notNull(current.isBound())?current.inheritedElementBinder.componentId:null;this[_shadowDomStrategy].processElement(this[_view].componentId,componentId,current.element)}}[_processStyleElement](current,control){this[_shadowDomStrategy].processStyleElement(this[_view].componentId,this[_view].templateAbsUrl,current.element);control.ignoreCurrentElement()}[_processContentElement](current){if(dart.notNull(this[_shadowDomStrategy].hasNativeContentElement())){return}let attrs=current.attrs();let selector=attrs.get("select");selector=dart.notNull(lang.isPresent(selector))?selector:"";let contentStart=dom_adapter.DOM.createScriptTag("type","ng/contentStart");if(dart.notNull(lang.assertionsEnabled())){dom_adapter.DOM.setAttribute(contentStart,"select",selector)}let contentEnd=dom_adapter.DOM.createScriptTag("type","ng/contentEnd");dom_adapter.DOM.insertBefore(current.element,contentStart);dom_adapter.DOM.insertBefore(current.element,contentEnd);dom_adapter.DOM.remove(current.element);current.element=contentStart;current.bindElement().setContentTagSelector(selector)}};ShadowDomCompileStep[dart.implements]=()=>[compile_step.CompileStep];dart.setSignature(ShadowDomCompileStep,{constructors:()=>({ShadowDomCompileStep:[ShadowDomCompileStep,[shadow_dom_strategy.ShadowDomStrategy,api.ViewDefinition]]}),methods:()=>({[_processContentElement]:[dart.dynamic,[compile_element.CompileElement]],[_processStyleElement]:[dart.dynamic,[compile_element.CompileElement,compile_control.CompileControl]],process:[dart.void,[compile_element.CompileElement,compile_element.CompileElement,compile_control.CompileControl]]})});exports.ShadowDomCompileStep=ShadowDomCompileStep});dart_library.library('angular2/src/render/dom/shadow_dom/shadow_dom_strategy',null,["dart_runtime/dart",'dart/core','angular2/src/render/dom/shadow_dom/light_dom','angular2/src/render/dom/view/view'],[],function(exports,dart,core,light_dom,view){'use strict';let dartx=dart.dartx;class ShadowDomStrategy extends core.Object{hasNativeContentElement(){return true}prepareShadowRoot(el){return null}constructLightDom(lightDomView,el){return null}processStyleElement(hostComponentId,templateUrl,styleElement){}processElement(hostComponentId,elementComponentId,element){}};dart.setSignature(ShadowDomStrategy,{methods:()=>({constructLightDom:[light_dom.LightDom,[view.DomView,dart.dynamic]],hasNativeContentElement:[core.bool,[]],prepareShadowRoot:[dart.dynamic,[dart.dynamic]],processElement:[dart.void,[core.String,core.String,dart.dynamic]],processStyleElement:[dart.void,[core.String,core.String,dart.dynamic]]})});exports.ShadowDomStrategy=ShadowDomStrategy});dart_library.library('angular2/src/render/dom/shadow_dom/util',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/dom/dom_adapter','angular2/src/render/dom/shadow_dom/shadow_css'],[],function(exports,dart,core,lang,dom_adapter,shadow_css){'use strict';let dartx=dart.dartx;exports._nextComponentUID=0;exports._lastInsertedStyleEl=null;dart.defineLazyProperties(exports,{get _sharedStyleTexts(){return core.Map$(core.String,core.bool).new()},get _componentUIDs(){return core.Map$(core.String,core.int).new()},set _sharedStyleTexts(_){},set _componentUIDs(_){}});function getComponentId(componentStringId){let id=exports._componentUIDs.get(componentStringId);if(dart.notNull(lang.isBlank(id))){id=exports._nextComponentUID;exports._nextComponentUID=dart.notNull(id)+1;exports._componentUIDs.set(componentStringId,id)}return id}dart.fn(getComponentId,core.num,[core.String]);function insertSharedStyleText(cssText,styleHost,styleEl){if(!dart.notNull(exports._sharedStyleTexts.containsKey(cssText))){exports._sharedStyleTexts.set(dart.as(cssText,core.String),true);insertStyleElement(styleHost,styleEl)}}dart.fn(insertSharedStyleText);function insertStyleElement(host,styleEl){if(dart.notNull(lang.isBlank(exports._lastInsertedStyleEl))){let firstChild=dom_adapter.DOM.firstChild(host);if(dart.notNull(lang.isPresent(firstChild))){dom_adapter.DOM.insertBefore(firstChild,styleEl)}else{dom_adapter.DOM.appendChild(host,styleEl)}}else{dom_adapter.DOM.insertAfter(exports._lastInsertedStyleEl,styleEl)}exports._lastInsertedStyleEl=styleEl}dart.fn(insertStyleElement);function getHostAttribute(id){return `_nghost-${id }`}dart.fn(getHostAttribute,core.String,[core.int]);function getContentAttribute(id){return `_ngcontent-${id }`}dart.fn(getContentAttribute,core.String,[core.int]);function shimCssForComponent(cssText,componentId){let id=getComponentId(componentId);let shadowCss=new shadow_css.ShadowCss();return shadowCss.shimCssText(cssText,getContentAttribute(id),getHostAttribute(id))}dart.fn(shimCssForComponent,core.String,[core.String,core.String]);function resetShadowDomCache(){exports._componentUIDs.clear();exports._nextComponentUID=0;exports._sharedStyleTexts.clear();exports._lastInsertedStyleEl=null}dart.fn(resetShadowDomCache);exports.getComponentId=getComponentId;exports.insertSharedStyleText=insertSharedStyleText;exports.insertStyleElement=insertStyleElement;exports.getHostAttribute=getHostAttribute;exports.getContentAttribute=getContentAttribute;exports.shimCssForComponent=shimCssForComponent;exports.resetShadowDomCache=resetShadowDomCache});dart_library.library('angular2/src/render/dom/util',null,["dart_runtime/dart",'angular2/src/facade/lang','dart/core'],[],function(exports,dart,lang,core){'use strict';let dartx=dart.dartx;let NG_BINDING_CLASS_SELECTOR=".ng-binding";let NG_BINDING_CLASS="ng-binding";let EVENT_TARGET_SEPARATOR=":";dart.defineLazyProperties(exports,{get DASH_CASE_REGEXP(){return lang.RegExpWrapper.create("-([a-z])")},get CAMEL_CASE_REGEXP(){return lang.RegExpWrapper.create("([A-Z])")},set DASH_CASE_REGEXP(_){},set CAMEL_CASE_REGEXP(_){}});function camelCaseToDashCase(input){return lang.StringWrapper.replaceAllMapped(input,exports.CAMEL_CASE_REGEXP,dart.fn(m=>{return "-"+dart.notNull(dart.as(dart.dsend(dart.dindex(m,1),'toLowerCase'),core.String))}))}dart.fn(camelCaseToDashCase,core.String,[core.String]);function dashCaseToCamelCase(input){return lang.StringWrapper.replaceAllMapped(input,exports.DASH_CASE_REGEXP,dart.fn(m=>{return dart.dsend(dart.dindex(m,1),'toUpperCase')}))}dart.fn(dashCaseToCamelCase,core.String,[core.String]);exports.NG_BINDING_CLASS_SELECTOR=NG_BINDING_CLASS_SELECTOR;exports.NG_BINDING_CLASS=NG_BINDING_CLASS;exports.EVENT_TARGET_SEPARATOR=EVENT_TARGET_SEPARATOR;exports.camelCaseToDashCase=camelCaseToDashCase;exports.dashCaseToCamelCase=dashCaseToCamelCase});dart_library.library('angular2/src/render/dom/view/element',null,["dart_runtime/dart",'dart/core','angular2/src/render/dom/view/element_binder'],['angular2/src/render/dom/shadow_dom/content_tag'],function(exports,dart,core,element_binder,content_tag){'use strict';let dartx=dart.dartx;class DomElement extends core.Object{DomElement(proto,element,contentTag){this.proto=proto;this.element=element;this.contentTag=contentTag;this.viewContainer=null;this.lightDom=null}};dart.setSignature(DomElement,{constructors:()=>({DomElement:[DomElement,[element_binder.ElementBinder,dart.dynamic,content_tag.Content]]})});exports.DomElement=DomElement});dart_library.library('angular2/src/render/dom/view/element_binder',null,["dart_runtime/dart",'dart/core','angular2/src/change_detection/parser/ast'],['angular2/src/render/dom/view/proto_view'],function(exports,dart,core,ast,proto_view){'use strict';let dartx=dart.dartx;class ElementBinder extends core.Object{ElementBinder(opts){let textNodeIndices=opts&&'textNodeIndices'in opts?opts.textNodeIndices:null;let contentTagSelector=opts&&'contentTagSelector'in opts?opts.contentTagSelector:null;let nestedProtoView=opts&&'nestedProtoView'in opts?opts.nestedProtoView:null;let componentId=opts&&'componentId'in opts?opts.componentId:null;let eventLocals=opts&&'eventLocals'in opts?opts.eventLocals:null;let localEvents=opts&&'localEvents'in opts?opts.localEvents:null;let globalEvents=opts&&'globalEvents'in opts?opts.globalEvents:null;let parentIndex=opts&&'parentIndex'in opts?opts.parentIndex:null;let distanceToParent=opts&&'distanceToParent'in opts?opts.distanceToParent:null;let elementIsEmpty=opts&&'elementIsEmpty'in opts?opts.elementIsEmpty:null;this.contentTagSelector=null;this.textNodeIndices=null;this.nestedProtoView=null;this.eventLocals=null;this.localEvents=null;this.globalEvents=null;this.componentId=null;this.parentIndex=null;this.distanceToParent=null;this.elementIsEmpty=null;this.textNodeIndices=dart.as(textNodeIndices,core.List$(core.num));this.contentTagSelector=dart.as(contentTagSelector,core.String);this.nestedProtoView=dart.as(nestedProtoView,proto_view.DomProtoView);this.componentId=dart.as(componentId,core.String);this.eventLocals=dart.as(eventLocals,ast.AST);this.localEvents=dart.as(localEvents,core.List$(Event));this.globalEvents=dart.as(globalEvents,core.List$(Event));this.parentIndex=dart.as(parentIndex,core.num);this.distanceToParent=dart.as(distanceToParent,core.num);this.elementIsEmpty=dart.as(elementIsEmpty,core.bool)}};dart.setSignature(ElementBinder,{constructors:()=>({ElementBinder:[ElementBinder,[],{componentId:dart.dynamic,contentTagSelector:dart.dynamic,distanceToParent:dart.dynamic,elementIsEmpty:dart.dynamic,eventLocals:dart.dynamic,globalEvents:dart.dynamic,localEvents:dart.dynamic,nestedProtoView:dart.dynamic,parentIndex:dart.dynamic,textNodeIndices:dart.dynamic}]})});class Event extends core.Object{Event(name,target,fullName){this.name=name;this.target=target;this.fullName=fullName}};dart.setSignature(Event,{constructors:()=>({Event:[Event,[core.String,core.String,core.String]]})});class HostAction extends core.Object{HostAction(actionName,actionExpression,expression){this.actionName=actionName;this.actionExpression=actionExpression;this.expression=expression}};dart.setSignature(HostAction,{constructors:()=>({HostAction:[HostAction,[core.String,core.String,ast.AST]]})});exports.ElementBinder=ElementBinder;exports.Event=Event;exports.HostAction=HostAction});dart_library.library('angular2/src/render/dom/view/proto_view',null,["dart_runtime/dart",'angular2/src/render/api','dart/core','angular2/src/dom/dom_adapter','angular2/src/facade/lang','angular2/src/render/dom/util'],['angular2/src/render/dom/view/element_binder'],function(exports,dart,api,core,dom_adapter,lang,util,element_binder){'use strict';let dartx=dart.dartx;let _protoView=Symbol('_protoView');function resolveInternalDomProtoView(protoViewRef){return dart.as(protoViewRef,DomProtoViewRef)[_protoView]}dart.fn(resolveInternalDomProtoView,()=>dart.definiteFunctionType(DomProtoView,[api.RenderProtoViewRef]));class DomProtoViewRef extends api.RenderProtoViewRef{DomProtoViewRef(protoView){this[_protoView]=protoView;}};dart.setSignature(DomProtoViewRef,{constructors:()=>({DomProtoViewRef:[DomProtoViewRef,[DomProtoView]]})});class DomProtoView extends core.Object{DomProtoView(opts){let elementBinders=opts&&'elementBinders'in opts?opts.elementBinders:null;let element=opts&&'element'in opts?opts.element:null;let transitiveContentTagCount=opts&&'transitiveContentTagCount'in opts?opts.transitiveContentTagCount:null;let boundTextNodeCount=opts&&'boundTextNodeCount'in opts?opts.boundTextNodeCount:null;this.element=null;this.elementBinders=null;this.isTemplateElement=null;this.rootBindingOffset=null;this.transitiveContentTagCount=null;this.boundTextNodeCount=null;this.rootNodeCount=null;this.element=element;this.elementBinders=dart.as(elementBinders,core.List$(element_binder.ElementBinder));this.transitiveContentTagCount=dart.as(transitiveContentTagCount,core.num);this.isTemplateElement=dom_adapter.DOM.isTemplateElement(this.element);this.rootBindingOffset=dart.notNull(lang.isPresent(this.element))&&dart.notNull(dom_adapter.DOM.hasClass(this.element,util.NG_BINDING_CLASS))?1:0;this.boundTextNodeCount=dart.as(boundTextNodeCount,core.num);this.rootNodeCount=dart.notNull(this.isTemplateElement)?dom_adapter.DOM.childNodes(dom_adapter.DOM.content(this.element))[dartx.length]:1}};dart.setSignature(DomProtoView,{constructors:()=>({DomProtoView:[DomProtoView,[],{boundTextNodeCount:dart.dynamic,element:dart.dynamic,elementBinders:dart.dynamic,transitiveContentTagCount:dart.dynamic}]})});exports.resolveInternalDomProtoView=resolveInternalDomProtoView;exports.DomProtoViewRef=DomProtoViewRef;exports.DomProtoView=DomProtoView});dart_library.library('angular2/src/render/dom/view/proto_view_builder',null,["dart_runtime/dart",'dart/core','angular2/src/dom/dom_adapter','angular2/src/render/dom/util','angular2/src/facade/collection','angular2/src/render/api','angular2/src/facade/lang','angular2/src/render/dom/view/proto_view','angular2/src/render/dom/view/element_binder','angular2/src/change_detection/parser/ast'],[],function(exports,dart,core,dom_adapter,util,collection,api,lang,proto_view,element_binder,ast$){'use strict';let dartx=dart.dartx;let _analyzeChildNodes=Symbol('_analyzeChildNodes');class ProtoViewBuilder extends core.Object{ProtoViewBuilder(rootElement,type){this.variableBindings=core.Map$(core.String,core.String).new();this.elements=dart.list([],ElementBinderBuilder);this.rootElement=rootElement;this.type=type}bindElement(element,description){if(description===void 0)description=null;let builder=new ElementBinderBuilder(this.elements[dartx.length],element,dart.as(description,core.String));this.elements[dartx.add](builder);dom_adapter.DOM.addClass(element,util.NG_BINDING_CLASS);return builder}bindVariable(name,value){this.variableBindings.set(dart.as(value,core.String),dart.as(name,core.String))}build(){let renderElementBinders=[];let apiElementBinders=[];let transitiveContentTagCount=0;let boundTextNodeCount=0;collection.ListWrapper.forEach(this.elements,dart.fn(ebb=>{let directiveTemplatePropertyNames=core.Set.new();let apiDirectiveBinders=collection.ListWrapper.map(ebb.directives,dart.fn(dbb=>{ebb.eventBuilder.merge(dbb.eventBuilder);collection.ListWrapper.forEach(dbb.templatePropertyNames,dart.fn(name=>directiveTemplatePropertyNames.add(name),core.bool,[dart.dynamic]));return new api.DirectiveBinder({directiveIndex:dbb.directiveIndex,eventBindings:dbb.eventBindings,hostPropertyBindings:buildElementPropertyBindings(ebb.element,lang.isPresent(ebb.componentId),dbb.hostPropertyBindings,dart.as(directiveTemplatePropertyNames,core.Set$(core.String))),propertyBindings:dbb.propertyBindings})},dart.dynamic,[DirectiveBuilder]));let nestedProtoView=dart.notNull(lang.isPresent(ebb.nestedProtoView))?ebb.nestedProtoView.build():null;let nestedRenderProtoView=dart.notNull(lang.isPresent(nestedProtoView))?proto_view.resolveInternalDomProtoView(nestedProtoView.render):null;if(dart.notNull(lang.isPresent(nestedRenderProtoView))){transitiveContentTagCount=dart.notNull(transitiveContentTagCount)+dart.notNull(nestedRenderProtoView.transitiveContentTagCount)}if(dart.notNull(lang.isPresent(ebb.contentTagSelector))){transitiveContentTagCount=dart.notNull(transitiveContentTagCount)+1}let parentIndex=dart.notNull(lang.isPresent(ebb.parent))?ebb.parent.index:-1;apiElementBinders[dartx.add](new api.ElementBinder({directives:apiDirectiveBinders,distanceToParent:ebb.distanceToParent,eventBindings:ebb.eventBindings,index:ebb.index,nestedProtoView:nestedProtoView,parentIndex:parentIndex,propertyBindings:buildElementPropertyBindings(ebb.element,lang.isPresent(ebb.componentId),ebb.propertyBindings,dart.as(directiveTemplatePropertyNames,core.Set$(core.String))),readAttributes:ebb.readAttributes,textBindings:ebb.textBindings,variableBindings:ebb.variableBindings}));let childNodeInfo=this[_analyzeChildNodes](ebb.element,ebb.textBindingNodes);boundTextNodeCount=dart.notNull(boundTextNodeCount)+dart.notNull(ebb.textBindingNodes[dartx.length]);renderElementBinders[dartx.add](new element_binder.ElementBinder({componentId:ebb.componentId,contentTagSelector:ebb.contentTagSelector,distanceToParent:ebb.distanceToParent,elementIsEmpty:childNodeInfo.elementIsEmpty,eventLocals:new ast$.LiteralArray(ebb.eventBuilder.buildEventLocals()),globalEvents:ebb.eventBuilder.buildGlobalEvents(),localEvents:ebb.eventBuilder.buildLocalEvents(),nestedProtoView:dart.notNull(lang.isPresent(nestedProtoView))?proto_view.resolveInternalDomProtoView(nestedProtoView.render):null,parentIndex:parentIndex,textNodeIndices:childNodeInfo.boundTextNodeIndices}))},dart.dynamic,[ElementBinderBuilder]));return new api.ProtoViewDto({elementBinders:apiElementBinders,render:new proto_view.DomProtoViewRef(new proto_view.DomProtoView({boundTextNodeCount:boundTextNodeCount,element:this.rootElement,elementBinders:renderElementBinders,transitiveContentTagCount:transitiveContentTagCount})),type:this.type,variableBindings:this.variableBindings})}[_analyzeChildNodes](parentElement,boundTextNodes){let childNodes=dom_adapter.DOM.childNodes(dom_adapter.DOM.templateAwareRoot(parentElement));let boundTextNodeIndices=[];let indexInBoundTextNodes=0;let elementIsEmpty=true;for(let i=0;dart.notNull(i)<dart.notNull(childNodes[dartx.length]);i=dart.notNull(i)+1){let node=childNodes[dartx.get](i);if(dart.notNull(indexInBoundTextNodes)<dart.notNull(boundTextNodes[dartx.length])&&dart.notNull(core.identical(node,boundTextNodes[dartx.get](indexInBoundTextNodes)))){boundTextNodeIndices[dartx.add](i);indexInBoundTextNodes=dart.notNull(indexInBoundTextNodes)+1;elementIsEmpty=false}else if(dart.notNull(dom_adapter.DOM.isTextNode(node))&&dart.notNull(dom_adapter.DOM.getText(node)[dartx.trim]()[dartx.length])>0||dart.notNull(dom_adapter.DOM.isElementNode(node))){elementIsEmpty=false}}return new _ChildNodesInfo(dart.as(boundTextNodeIndices,core.List$(core.num)),elementIsEmpty)}};dart.setSignature(ProtoViewBuilder,{constructors:()=>({ProtoViewBuilder:[ProtoViewBuilder,[dart.dynamic,api.ViewType]]}),methods:()=>({[_analyzeChildNodes]:[_ChildNodesInfo,[dart.dynamic,core.List]],bindElement:[ElementBinderBuilder,[dart.dynamic],[dart.dynamic]],bindVariable:[dart.dynamic,[dart.dynamic,dart.dynamic]],build:[api.ProtoViewDto,[]]})});class _ChildNodesInfo extends core.Object{_ChildNodesInfo(boundTextNodeIndices,elementIsEmpty){this.boundTextNodeIndices=boundTextNodeIndices;this.elementIsEmpty=elementIsEmpty}};dart.setSignature(_ChildNodesInfo,{constructors:()=>({_ChildNodesInfo:[_ChildNodesInfo,[core.List$(core.num),core.bool]]})});class ElementBinderBuilder extends core.Object{ElementBinderBuilder(index,element,description){this.directives=dart.list([],DirectiveBuilder);this.propertyBindings=core.Map$(core.String,ast$.ASTWithSource).new();this.variableBindings=core.Map$(core.String,core.String).new();this.propertyBindingsToDirectives=core.Set$(core.String).new();this.eventBindings=dart.list([],api.EventBinding);this.eventBuilder=new EventBuilder();this.textBindingNodes=[];this.textBindings=dart.list([],ast$.ASTWithSource);this.readAttributes=core.Map$(core.String,core.String).new();this.index=index;this.element=element;this.parent=null;this.distanceToParent=0;this.nestedProtoView=null;this.contentTagSelector=null;this.componentId=null}setParent(parent,distanceToParent){this.parent=parent;if(dart.notNull(lang.isPresent(parent))){this.distanceToParent=dart.as(distanceToParent,core.num)}return this}readAttribute(attrName){if(dart.notNull(lang.isBlank(this.readAttributes.get(attrName)))){this.readAttributes.set(attrName,dom_adapter.DOM.getAttribute(this.element,attrName))}}bindDirective(directiveIndex){let directive=new DirectiveBuilder(directiveIndex);this.directives[dartx.add](directive);return directive}bindNestedProtoView(rootElement){if(dart.notNull(lang.isPresent(this.nestedProtoView))){dart.throw(new lang.BaseException("Only one nested view per element is allowed"))}this.nestedProtoView=new ProtoViewBuilder(rootElement,api.ViewType.EMBEDDED);return this.nestedProtoView}bindProperty(name,expression){this.propertyBindings.set(name,expression)}bindPropertyToDirective(name){this.propertyBindingsToDirectives.add(name)}bindVariable(name,value){if(dart.notNull(lang.isPresent(this.nestedProtoView))){this.nestedProtoView.bindVariable(name,value)}else{this.variableBindings.set(dart.as(value,core.String),dart.as(name,core.String))}}bindEvent(name,expression,target){if(target===void 0)target=null;this.eventBindings[dartx.add](this.eventBuilder.add(dart.as(name,core.String),dart.as(expression,ast$.ASTWithSource),dart.as(target,core.String)))}bindText(textNode,expression){this.textBindingNodes[dartx.add](textNode);this.textBindings[dartx.add](dart.as(expression,ast$.ASTWithSource))}setContentTagSelector(value){this.contentTagSelector=value}setComponentId(componentId){this.componentId=componentId}};dart.setSignature(ElementBinderBuilder,{constructors:()=>({ElementBinderBuilder:[ElementBinderBuilder,[core.num,dart.dynamic,core.String]]}),methods:()=>({bindDirective:[DirectiveBuilder,[core.num]],bindEvent:[dart.dynamic,[dart.dynamic,dart.dynamic],[dart.dynamic]],bindNestedProtoView:[ProtoViewBuilder,[dart.dynamic]],bindProperty:[dart.dynamic,[core.String,ast$.ASTWithSource]],bindPropertyToDirective:[dart.dynamic,[core.String]],bindText:[dart.dynamic,[dart.dynamic,dart.dynamic]],bindVariable:[dart.dynamic,[dart.dynamic,dart.dynamic]],readAttribute:[dart.dynamic,[core.String]],setComponentId:[dart.dynamic,[core.String]],setContentTagSelector:[dart.dynamic,[core.String]],setParent:[ElementBinderBuilder,[ElementBinderBuilder,dart.dynamic]]})});class DirectiveBuilder extends core.Object{DirectiveBuilder(directiveIndex){this.propertyBindings=core.Map$(core.String,ast$.ASTWithSource).new();this.templatePropertyNames=dart.list([],core.String);this.hostPropertyBindings=core.Map$(core.String,ast$.ASTWithSource).new();this.eventBindings=dart.list([],api.EventBinding);this.eventBuilder=new EventBuilder();this.directiveIndex=directiveIndex}bindProperty(name,expression,elProp){this.propertyBindings.set(name,expression);if(dart.notNull(lang.isPresent(elProp))){this.templatePropertyNames[dartx.add](elProp)}}bindHostProperty(name,expression){this.hostPropertyBindings.set(name,expression)}bindEvent(name,expression,target){if(target===void 0)target=null;this.eventBindings[dartx.add](this.eventBuilder.add(dart.as(name,core.String),dart.as(expression,ast$.ASTWithSource),dart.as(target,core.String)))}};dart.setSignature(DirectiveBuilder,{constructors:()=>({DirectiveBuilder:[DirectiveBuilder,[core.num]]}),methods:()=>({bindEvent:[dart.dynamic,[dart.dynamic,dart.dynamic],[dart.dynamic]],bindHostProperty:[dart.dynamic,[core.String,ast$.ASTWithSource]],bindProperty:[dart.dynamic,[core.String,ast$.ASTWithSource,core.String]]})});let _implicitReceiver=Symbol('_implicitReceiver');let _merge=Symbol('_merge');class EventBuilder extends ast$.AstTransformer{EventBuilder(){this.locals=dart.list([],ast$.AST);this.localEvents=dart.list([],element_binder.Event);this.globalEvents=dart.list([],element_binder.Event);this[_implicitReceiver]=new ast$.ImplicitReceiver();}add(name,source,target){let adjustedAst=source.ast;let fullName=dart.notNull(lang.isPresent(target))?dart.notNull(target)+dart.notNull(util.EVENT_TARGET_SEPARATOR)+dart.notNull(name):name;let result=new api.EventBinding(fullName,new ast$.ASTWithSource(adjustedAst,source.source,source.location));let event=new element_binder.Event(name,target,fullName);if(dart.notNull(lang.isBlank(target))){this.localEvents[dartx.add](event)}else{this.globalEvents[dartx.add](event)}return result}visitAccessMember(ast){let isEventAccess=false;let current=ast;while(!dart.notNull(isEventAccess)&&dart.is(current,ast$.AccessMember)){let am=dart.as(current,ast$.AccessMember);if(am.name=="$event"){isEventAccess=true}current=am.receiver}if(dart.notNull(isEventAccess)){this.locals[dartx.add](ast);let index=dart.notNull(this.locals[dartx.length])-1;return new ast$.AccessMember(this[_implicitReceiver],`${index }`,dart.fn(arr=>dart.dindex(arr,index)),null)}else{return ast}}buildEventLocals(){return this.locals}buildLocalEvents(){return this.localEvents}buildGlobalEvents(){return this.globalEvents}merge(eventBuilder){this[_merge](this.localEvents,eventBuilder.localEvents);this[_merge](this.globalEvents,eventBuilder.globalEvents);collection.ListWrapper.concat(this.locals,eventBuilder.locals)}[_merge](host,tobeAdded){let names=[];for(let i=0;dart.notNull(i)<dart.notNull(host[dartx.length]);i=dart.notNull(i)+1){names[dartx.add](host[dartx.get](i).fullName)}for(let j=0;dart.notNull(j)<dart.notNull(tobeAdded[dartx.length]);j=dart.notNull(j)+1){if(!dart.notNull(collection.ListWrapper.contains(names,tobeAdded[dartx.get](j).fullName))){host[dartx.add](tobeAdded[dartx.get](j))}}}};dart.setSignature(EventBuilder,{constructors:()=>({EventBuilder:[EventBuilder,[]]}),methods:()=>({[_merge]:[dart.dynamic,[core.List$(element_binder.Event),core.List$(element_binder.Event)]],add:[api.EventBinding,[core.String,ast$.ASTWithSource,core.String]],buildEventLocals:[core.List$(ast$.AST),[]],buildGlobalEvents:[core.List$(element_binder.Event),[]],buildLocalEvents:[core.List$(element_binder.Event),[]],merge:[dart.dynamic,[EventBuilder]]})});let ATTRIBUTE_PREFIX="attr";let CLASS_PREFIX="class";let STYLE_PREFIX="style";dart.defineLazyProperties(exports,{get PROPERTY_PARTS_SEPARATOR(){return core.RegExp.new("\\.")},set PROPERTY_PARTS_SEPARATOR(_){}});function buildElementPropertyBindings(protoElement,isNgComponent,bindingsInTemplate,directiveTempaltePropertyNames){let propertyBindings=[];collection.MapWrapper.forEach(bindingsInTemplate,dart.fn((ast,propertyNameInTemplate)=>{let propertyBinding=createElementPropertyBinding(dart.as(ast,ast$.ASTWithSource),dart.as(propertyNameInTemplate,core.String));if(dart.notNull(isValidElementPropertyBinding(protoElement,isNgComponent,propertyBinding))){propertyBindings[dartx.add](propertyBinding)}else if(!dart.notNull(collection.SetWrapper.has(directiveTempaltePropertyNames,propertyNameInTemplate))){dart.throw(new lang.BaseException(`Can't bind to '${propertyNameInTemplate }' since it isn't a know property of the '${dom_adapter.DOM.tagName(protoElement)[dartx.toLowerCase]()}' element and there are no matching directives with a corresponding property`))}}));return dart.as(propertyBindings,core.List$(api.ElementPropertyBinding))}dart.fn(buildElementPropertyBindings,core.List$(api.ElementPropertyBinding),[dart.dynamic,core.bool,core.Map$(core.String,ast$.ASTWithSource),core.Set$(core.String)]);function isValidElementPropertyBinding(protoElement,isNgComponent,binding){if(dart.notNull(core.identical(binding.type,api.PropertyBindingType.PROPERTY))){let tagName=dom_adapter.DOM.tagName(protoElement);let possibleCustomElement= !dart.notNull(core.identical(tagName[dartx.indexOf]("-"),-1));if(dart.notNull(possibleCustomElement)&& !dart.notNull(isNgComponent)){return true}else{return dom_adapter.DOM.hasProperty(protoElement,binding.property)}}return true}dart.fn(isValidElementPropertyBinding,core.bool,[dart.dynamic,core.bool,api.ElementPropertyBinding]);function createElementPropertyBinding(ast,propertyNameInTemplate){let parts=lang.StringWrapper.split(propertyNameInTemplate,exports.PROPERTY_PARTS_SEPARATOR);if(dart.notNull(core.identical(parts[dartx.length],1))){let propName=parts[dartx.get](0);let mappedPropName=collection.StringMapWrapper.get(dom_adapter.DOM.attrToPropMap,propName);propName=dart.notNull(lang.isPresent(mappedPropName))?dart.as(mappedPropName,core.String):propName;return new api.ElementPropertyBinding(api.PropertyBindingType.PROPERTY,ast,propName)}else if(parts[dartx.get](0)==ATTRIBUTE_PREFIX){return new api.ElementPropertyBinding(api.PropertyBindingType.ATTRIBUTE,ast,parts[dartx.get](1))}else if(parts[dartx.get](0)==CLASS_PREFIX){return new api.ElementPropertyBinding(api.PropertyBindingType.CLASS,ast,parts[dartx.get](1))}else if(parts[dartx.get](0)==STYLE_PREFIX){let unit=dart.notNull(parts[dartx.length])>2?parts[dartx.get](2):null;return new api.ElementPropertyBinding(api.PropertyBindingType.STYLE,ast,parts[dartx.get](1),unit)}else{dart.throw(new lang.BaseException(`Invalid property name ${propertyNameInTemplate }`))}}dart.fn(createElementPropertyBinding,api.ElementPropertyBinding,[ast$.ASTWithSource,core.String]);exports.ProtoViewBuilder=ProtoViewBuilder;exports.ElementBinderBuilder=ElementBinderBuilder;exports.DirectiveBuilder=DirectiveBuilder;exports.EventBuilder=EventBuilder;exports.ATTRIBUTE_PREFIX=ATTRIBUTE_PREFIX;exports.CLASS_PREFIX=CLASS_PREFIX;exports.STYLE_PREFIX=STYLE_PREFIX;exports.buildElementPropertyBindings=buildElementPropertyBindings;exports.isValidElementPropertyBinding=isValidElementPropertyBinding;exports.createElementPropertyBinding=createElementPropertyBinding});dart_library.library('angular2/src/render/dom/view/view',null,["dart_runtime/dart",'angular2/src/render/api','dart/core','angular2/src/dom/dom_adapter','angular2/src/render/dom/util','angular2/src/facade/lang','angular2/src/render/dom/view/proto_view'],['angular2/src/render/dom/view/element'],function(exports,dart,api,core,dom_adapter,util,lang,proto_view,element){'use strict';let dartx=dart.dartx;let _view=Symbol('_view');function resolveInternalDomView(viewRef){return dart.as(viewRef,DomViewRef)[_view]}dart.fn(resolveInternalDomView,()=>dart.definiteFunctionType(DomView,[api.RenderViewRef]));class DomViewRef extends api.RenderViewRef{DomViewRef(view){this[_view]=view;}};dart.setSignature(DomViewRef,{constructors:()=>({DomViewRef:[DomViewRef,[DomView]]})});class DomView extends core.Object{DomView(proto,rootNodes,boundTextNodes,boundElements){this.eventHandlerRemovers=dart.list([],core.Function);this.proto=proto;this.rootNodes=rootNodes;this.boundTextNodes=boundTextNodes;this.boundElements=boundElements;this.hostLightDom=null;this.shadowRoot=null;this.hydrated=false;this.eventDispatcher=null}getDirectParentElement(boundElementIndex){let binder=this.proto.elementBinders[dartx.get](boundElementIndex);let parent=null;if(!dart.notNull(core.identical(binder.parentIndex,-1))&&dart.notNull(core.identical(binder.distanceToParent,1))){parent=this.boundElements[dartx.get](binder.parentIndex)}return dart.as(parent,element.DomElement)}setElementProperty(elementIndex,propertyName,value){dom_adapter.DOM.setProperty(this.boundElements[dartx.get](elementIndex).element,propertyName,value)}setElementAttribute(elementIndex,attributeName,value){let element=this.boundElements[dartx.get](elementIndex).element;let dashCasedAttributeName=util.camelCaseToDashCase(attributeName);if(dart.notNull(lang.isPresent(value))){dom_adapter.DOM.setAttribute(element,dashCasedAttributeName,lang.stringify(value))}else{dom_adapter.DOM.removeAttribute(element,dashCasedAttributeName)}}setElementClass(elementIndex,className,isAdd){let element=this.boundElements[dartx.get](elementIndex).element;let dashCasedClassName=util.camelCaseToDashCase(className);if(dart.notNull(isAdd)){dom_adapter.DOM.addClass(element,dashCasedClassName)}else{dom_adapter.DOM.removeClass(element,dashCasedClassName)}}setElementStyle(elementIndex,styleName,value){let element=this.boundElements[dartx.get](elementIndex).element;let dashCasedStyleName=util.camelCaseToDashCase(styleName);if(dart.notNull(lang.isPresent(value))){dom_adapter.DOM.setStyle(element,dashCasedStyleName,lang.stringify(value))}else{dom_adapter.DOM.removeStyle(element,dashCasedStyleName)}}invokeElementMethod(elementIndex,methodName,args){let element=this.boundElements[dartx.get](elementIndex).element;dom_adapter.DOM.invoke(element,methodName,args)}setText(textIndex,value){dom_adapter.DOM.setText(this.boundTextNodes[dartx.get](textIndex),value)}dispatchEvent(elementIndex,eventName,event){let allowDefaultBehavior=true;if(dart.notNull(lang.isPresent(this.eventDispatcher))){let evalLocals=core.Map.new();evalLocals.set("$event",event);allowDefaultBehavior=dart.as(this.eventDispatcher.dispatchEvent(dart.as(elementIndex,core.num),dart.as(eventName,core.String),dart.as(evalLocals,core.Map$(core.String,dart.dynamic))),core.bool);if(!dart.notNull(allowDefaultBehavior)){dart.dsend(event,'preventDefault')}}return allowDefaultBehavior}};dart.setSignature(DomView,{constructors:()=>({DomView:[DomView,[proto_view.DomProtoView,core.List,core.List,core.List$(element.DomElement)]]}),methods:()=>({dispatchEvent:[core.bool,[dart.dynamic,dart.dynamic,dart.dynamic]],getDirectParentElement:[element.DomElement,[core.num]],invokeElementMethod:[dart.dynamic,[core.num,core.String,core.List]],setElementAttribute:[dart.dynamic,[core.num,core.String,core.String]],setElementClass:[dart.dynamic,[core.num,core.String,core.bool]],setElementProperty:[dart.dynamic,[core.num,core.String,dart.dynamic]],setElementStyle:[dart.dynamic,[core.num,core.String,core.String]],setText:[dart.dynamic,[core.num,core.String]]})});exports.resolveInternalDomView=resolveInternalDomView;exports.DomViewRef=DomViewRef;exports.DomView=DomView});dart_library.library('angular2/src/render/dom/view/view_container',null,["dart_runtime/dart",'dart/core','angular2/src/facade/collection'],['angular2/src/render/dom/view/view'],function(exports,dart,core,collection,view){'use strict';let dartx=dart.dartx;class DomViewContainer extends core.Object{DomViewContainer(){this.views=dart.list([],view.DomView)}contentTagContainers(){return this.views}nodes(){let r=[];for(let i=0;dart.notNull(i)<dart.notNull(this.views[dartx.length]);i=dart.notNull(i)+1){r=collection.ListWrapper.concat(r,this.views[dartx.get](i).rootNodes)}return r}};dart.setSignature(DomViewContainer,{methods:()=>({contentTagContainers:[core.List$(view.DomView),[]],nodes:[core.List,[]]})});exports.DomViewContainer=DomViewContainer});dart_library.library('angular2/src/render/xhr',null,["dart_runtime/dart",'dart/core','dart/async'],[],function(exports,dart,core,async){'use strict';let dartx=dart.dartx;class XHR extends core.Object{get(url){return null}};dart.setSignature(XHR,{methods:()=>({get:[async.Future$(core.String),[core.String]]})});exports.XHR=XHR});dart_library.library('angular2/src/render/xhr_impl',null,["dart_runtime/dart",'angular2/src/render/xhr','dart/async','dart/core','dom_experimental/dom','angular2/src/di/annotations_impl'],[],function(exports,dart,xhr,async,core,dom,annotations_impl){'use strict';let dartx=dart.dartx;class XHRImpl extends xhr.XHR{get(url){let completer=async.Completer$(core.String).new();let xhr=new dom.XMLHttpRequest();xhr.open('GET',url,true);xhr.responseType='text';xhr.onload=dart.fn(_=>{let status=xhr.status;if(200<=dart.notNull(status)&&dart.notNull(status)<=300){completer.complete(xhr.responseText)}else{completer.completeError(`Failed to load ${url }`)}});xhr.onerror=dart.fn(_=>{completer.completeError(`Failed to load ${url }`)});xhr.send();return completer.future}};XHRImpl[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.XHRImpl=XHRImpl});dart_library.library('angular2/src/services/app_root_url',null,["dart_runtime/dart",'dart/core','angular2/src/facade/lang','angular2/src/dom/dom_adapter','angular2/src/di/annotations_impl'],[],function(exports,dart,core,lang,dom_adapter,annotations_impl){'use strict';let dartx=dart.dartx;let _value=Symbol('_value');class AppRootUrl extends core.Object{AppRootUrl(){this[_value]=null}get value(){if(dart.notNull(lang.isBlank(this[_value]))){let a=dom_adapter.DOM.createElement("a");dom_adapter.DOM.resolveAndSetHref(a,"./",null);this[_value]=dom_adapter.DOM.getHref(a)}return this[_value]}};AppRootUrl[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.AppRootUrl=AppRootUrl});dart_library.library('angular2/src/services/url_resolver',null,["dart_runtime/dart",'dart/core','angular2/src/di/annotations_impl'],[],function(exports,dart,core,annotations_impl){'use strict';let dartx=dart.dartx;class UrlResolver extends core.Object{resolve(baseUrl,url){let uri=core.Uri.parse(url);if(dart.notNull(uri.isAbsolute))return dart.toString(uri);let baseUri=core.Uri.parse(baseUrl);return dart.toString(baseUri.resolveUri(uri))}};dart.setSignature(UrlResolver,{methods:()=>({resolve:[core.String,[core.String,core.String]]})});UrlResolver[dart.metadata]=()=>[dart.const(new annotations_impl.Injectable())];exports.UrlResolver=UrlResolver});dart_library.library('angular2/src/util/decorators',null,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx});dart_library.library('path/path',null,["dart_runtime/dart",'path/src/style','dart/core'],['path/src/context'],function(exports,dart,style,core,context){'use strict';let dartx=dart.dartx;dart.defineLazyProperties(exports,{get context(){return context.createInternal()},get url(){return context.Context.new({style:style.Style.url})},get windows(){return context.Context.new({style:style.Style.windows})},get posix(){return context.Context.new({style:style.Style.posix})}});dart.copyProperties(exports,{get separator(){return exports.context.separator},get current(){let uri=core.Uri.base;if(dart.equals(style.Style.platform,style.Style.url)){return dart.toString(uri.resolve('.'))}else{let path=uri.toFilePath();let lastIndex=dart.notNull(path[dartx.length])-1;dart.assert(path[dartx.get](lastIndex)=='/'||path[dartx.get](lastIndex)=='\\');return path[dartx.substring](0,lastIndex)}},get style(){return exports.context.style}});function absolute(part1,part2,part3,part4,part5,part6,part7){if(part2===void 0)part2=null;if(part3===void 0)part3=null;if(part4===void 0)part4=null;if(part5===void 0)part5=null;if(part6===void 0)part6=null;if(part7===void 0)part7=null;return exports.context.absolute(part1,part2,part3,part4,part5,part6,part7)}dart.fn(absolute,core.String,[core.String],[core.String,core.String,core.String,core.String,core.String,core.String]);function basename(path){return exports.context.basename(path)}dart.fn(basename,core.String,[core.String]);function basenameWithoutExtension(path){return exports.context.basenameWithoutExtension(path)}dart.fn(basenameWithoutExtension,core.String,[core.String]);function dirname(path){return exports.context.dirname(path)}dart.fn(dirname,core.String,[core.String]);function extension(path){return exports.context.extension(path)}dart.fn(extension,core.String,[core.String]);function rootPrefix(path){return exports.context.rootPrefix(path)}dart.fn(rootPrefix,core.String,[core.String]);function isAbsolute(path){return exports.context.isAbsolute(path)}dart.fn(isAbsolute,core.bool,[core.String]);function isRelative(path){return exports.context.isRelative(path)}dart.fn(isRelative,core.bool,[core.String]);function isRootRelative(path){return exports.context.isRootRelative(path)}dart.fn(isRootRelative,core.bool,[core.String]);function join(part1,part2,part3,part4,part5,part6,part7,part8){if(part2===void 0)part2=null;if(part3===void 0)part3=null;if(part4===void 0)part4=null;if(part5===void 0)part5=null;if(part6===void 0)part6=null;if(part7===void 0)part7=null;if(part8===void 0)part8=null;return exports.context.join(part1,part2,part3,part4,part5,part6,part7,part8)}dart.fn(join,core.String,[core.String],[core.String,core.String,core.String,core.String,core.String,core.String,core.String]);function joinAll(parts){return exports.context.joinAll(parts)}dart.fn(joinAll,core.String,[core.Iterable$(core.String)]);function split(path){return exports.context.split(path)}dart.fn(split,core.List$(core.String),[core.String]);function normalize(path){return exports.context.normalize(path)}dart.fn(normalize,core.String,[core.String]);function relative(path,opts){let from=opts&&'from'in opts?opts.from:null;return exports.context.relative(path,{from:from})}dart.fn(relative,core.String,[core.String],{from:core.String});function isWithin(parent,child){return exports.context.isWithin(parent,child)}dart.fn(isWithin,core.bool,[core.String,core.String]);function withoutExtension(path){return exports.context.withoutExtension(path)}dart.fn(withoutExtension,core.String,[core.String]);function fromUri(uri){return exports.context.fromUri(uri)}dart.fn(fromUri,core.String,[dart.dynamic]);function toUri(path){return exports.context.toUri(path)}dart.fn(toUri,core.Uri,[core.String]);function prettyUri(uri){return exports.context.prettyUri(uri)}dart.fn(prettyUri,core.String,[dart.dynamic]);exports.absolute=absolute;exports.basename=basename;exports.basenameWithoutExtension=basenameWithoutExtension;exports.dirname=dirname;exports.extension=extension;exports.rootPrefix=rootPrefix;exports.isAbsolute=isAbsolute;exports.isRelative=isRelative;exports.isRootRelative=isRootRelative;exports.join=join;exports.joinAll=joinAll;exports.split=split;exports.normalize=normalize;exports.relative=relative;exports.isWithin=isWithin;exports.withoutExtension=withoutExtension;exports.fromUri=fromUri;exports.toUri=toUri;exports.prettyUri=prettyUri});dart_library.library('path/src/characters',null,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx;let PLUS=43;let MINUS=45;let PERIOD=46;let SLASH=47;let ZERO=48;let NINE=57;let COLON=58;let UPPER_A=65;let UPPER_Z=90;let LOWER_A=97;let LOWER_Z=122;let BACKSLASH=92;exports.PLUS=PLUS;exports.MINUS=MINUS;exports.PERIOD=PERIOD;exports.SLASH=SLASH;exports.ZERO=ZERO;exports.NINE=NINE;exports.COLON=COLON;exports.UPPER_A=UPPER_A;exports.UPPER_Z=UPPER_Z;exports.LOWER_A=LOWER_A;exports.LOWER_Z=LOWER_Z;exports.BACKSLASH=BACKSLASH});dart_library.library('path/src/context',null,["dart_runtime/dart",'dart/core','path/src/path_exception'],['path/path','path/src/style','path/src/internal_style','path/src/parsed_path'],function(exports,dart,core,path_exception,path,style$,internal_style,parsed_path){'use strict';let dartx=dart.dartx;function createInternal(){return new Context._internal()}dart.fn(createInternal,()=>dart.definiteFunctionType(Context,[]));let _current=Symbol('_current');let _parse=Symbol('_parse');class Context extends core.Object{static new(opts){let style=opts&&'style'in opts?opts.style:null;let current=opts&&'current'in opts?opts.current:null;if(current==null){if(style==null){current=path.current}else{current="."}}if(style==null){style=style$.Style.platform}else if(!dart.is(style,internal_style.InternalStyle)){dart.throw(new core.ArgumentError("Only styles defined by the path package are allowed."))}return new Context._(dart.as(style,internal_style.InternalStyle),current)}_internal(){this.style=dart.as(style$.Style.platform,internal_style.InternalStyle);this[_current]=null}_(style,current){this.style=style;this[_current]=current}get current(){return this[_current]!=null?this[_current]:path.current}get separator(){return this.style.separator}absolute(part1,part2,part3,part4,part5,part6,part7){if(part2===void 0)part2=null;if(part3===void 0)part3=null;if(part4===void 0)part4=null;if(part5===void 0)part5=null;if(part6===void 0)part6=null;if(part7===void 0)part7=null;return this.join(this.current,part1,part2,part3,part4,part5,part6,part7)}basename(path){return this[_parse](path).basename}basenameWithoutExtension(path){return this[_parse](path).basenameWithoutExtension}dirname(path){let parsed=this[_parse](path);parsed.removeTrailingSeparators();if(dart.notNull(parsed.parts[dartx.isEmpty]))return parsed.root==null?'.':parsed.root;if(parsed.parts[dartx.length]==1){return parsed.root==null?'.':parsed.root}parsed.parts[dartx.removeLast]();parsed.separators[dartx.removeLast]();parsed.removeTrailingSeparators();return dart.toString(parsed)}extension(path){return this[_parse](path).extension}rootPrefix(path){return path[dartx.substring](0,this.style.rootLength(path))}isAbsolute(path){return dart.notNull(this.style.rootLength(path))>0}isRelative(path){return!dart.notNull(this.isAbsolute(path))}isRootRelative(path){return this.style.isRootRelative(path)}join(part1,part2,part3,part4,part5,part6,part7,part8){if(part2===void 0)part2=null;if(part3===void 0)part3=null;if(part4===void 0)part4=null;if(part5===void 0)part5=null;if(part6===void 0)part6=null;if(part7===void 0)part7=null;if(part8===void 0)part8=null;let parts=dart.list([part1,part2,part3,part4,part5,part6,part7,part8],core.String);_validateArgList("join",parts);return this.joinAll(parts[dartx.where](dart.fn(part=>part!=null,core.bool,[dart.dynamic])))}joinAll(parts){let buffer=new core.StringBuffer();let needsSeparator=false;let isAbsoluteAndNotRootRelative=false;for(let part of parts[dartx.where](dart.fn(part=> !dart.equals(part,''),core.bool,[dart.dynamic]))){if(dart.notNull(this.isRootRelative(part))&&dart.notNull(isAbsoluteAndNotRootRelative)){let parsed=this[_parse](part);parsed.root=this.rootPrefix(dart.toString(buffer));if(dart.notNull(this.style.needsSeparator(parsed.root))){parsed.separators[dartx.set](0,this.style.separator)}buffer.clear();buffer.write(dart.toString(parsed))}else if(dart.notNull(this.isAbsolute(part))){isAbsoluteAndNotRootRelative= !dart.notNull(this.isRootRelative(part));buffer.clear();buffer.write(part)}else{if(dart.notNull(part[dartx.length])>0&&dart.notNull(this.style.containsSeparator(part[dartx.get](0)))){}else if(dart.notNull(needsSeparator)){buffer.write(this.separator)}buffer.write(part)}needsSeparator=this.style.needsSeparator(part)}return dart.toString(buffer)}split(path){let parsed=this[_parse](path);parsed.parts=parsed.parts[dartx.where](dart.fn(part=> !dart.notNull(dart.as(dart.dload(part,'isEmpty'),core.bool)),core.bool,[dart.dynamic]))[dartx.toList]();if(parsed.root!=null)parsed.parts[dartx.insert](0,parsed.root);return parsed.parts}normalize(path){let parsed=this[_parse](path);parsed.normalize();return dart.toString(parsed)}relative(path,opts){let from=opts&&'from'in opts?opts.from:null;if(from==null){from=this.current}else if(dart.notNull(this.isRelative(from))||dart.notNull(this.isRootRelative(from))){from=this.join(this.current,from)}if(dart.notNull(this.isRelative(from))&&dart.notNull(this.isAbsolute(path))){return this.normalize(path)}if(dart.notNull(this.isRelative(path))||dart.notNull(this.isRootRelative(path))){path=this.absolute(path)}if(dart.notNull(this.isRelative(path))&&dart.notNull(this.isAbsolute(from))){dart.throw(new path_exception.PathException(`Unable to find a path to "${path }" from "${from }".`))}let fromParsed=this[_parse](from);fromParsed.normalize();let pathParsed=this[_parse](path);pathParsed.normalize();if(dart.notNull(fromParsed.parts[dartx.length])>0&&fromParsed.parts[dartx.get](0)=='.'){return dart.toString(pathParsed)}if(fromParsed.root!=pathParsed.root&&(fromParsed.root==null||pathParsed.root==null||fromParsed.root[dartx.toLowerCase]()[dartx.replaceAll]('/','\\')!=pathParsed.root[dartx.toLowerCase]()[dartx.replaceAll]('/','\\'))){return dart.toString(pathParsed)}while(dart.notNull(fromParsed.parts[dartx.length])>0&&dart.notNull(pathParsed.parts[dartx.length])>0&&fromParsed.parts[dartx.get](0)==pathParsed.parts[dartx.get](0)){fromParsed.parts[dartx.removeAt](0);fromParsed.separators[dartx.removeAt](1);pathParsed.parts[dartx.removeAt](0);pathParsed.separators[dartx.removeAt](1)}if(dart.notNull(fromParsed.parts[dartx.length])>0&&fromParsed.parts[dartx.get](0)=='..'){dart.throw(new path_exception.PathException(`Unable to find a path to "${path }" from "${from }".`))}pathParsed.parts[dartx.insertAll](0,core.List$(core.String).filled(fromParsed.parts[dartx.length],'..'));pathParsed.separators[dartx.set](0,'');pathParsed.separators[dartx.insertAll](1,core.List$(core.String).filled(fromParsed.parts[dartx.length],this.style.separator));if(pathParsed.parts[dartx.length]==0)return '.';if(dart.notNull(pathParsed.parts[dartx.length])>1&&pathParsed.parts[dartx.last]=='.'){pathParsed.parts[dartx.removeLast]();let _=pathParsed.separators;_[dartx.removeLast]();_[dartx.removeLast]();_[dartx.add]('')}pathParsed.root='';pathParsed.removeTrailingSeparators();return dart.toString(pathParsed)}isWithin(parent,child){let relative=null;try{relative=this.relative(child,{from:parent})}catch(_){if(dart.is(_,path_exception.PathException)){return false}else throw _;}let parts=this.split(dart.as(relative,core.String));return dart.notNull(this.isRelative(dart.as(relative,core.String)))&&parts[dartx.first]!='..'&&parts[dartx.first]!='.'}withoutExtension(path){let parsed=this[_parse](path);for(let i=dart.notNull(parsed.parts[dartx.length])-1;dart.notNull(i)>=0;i=dart.notNull(i)-1){if(!dart.notNull(parsed.parts[dartx.get](i)[dartx.isEmpty])){parsed.parts[dartx.set](i,parsed.basenameWithoutExtension);break}}return dart.toString(parsed)}fromUri(uri){if(typeof uri=='string')uri=core.Uri.parse(dart.as(uri,core.String));return this.style.pathFromUri(dart.as(uri,core.Uri))}toUri(path){if(dart.notNull(this.isRelative(path))){return this.style.relativePathToUri(path)}else{return this.style.absolutePathToUri(this.join(this.current,path))}}prettyUri(uri){if(typeof uri=='string')uri=core.Uri.parse(dart.as(uri,core.String));if(dart.equals(dart.dload(uri,'scheme'),'file')&&dart.equals(this.style,style$.Style.url))return dart.toString(uri);if(!dart.equals(dart.dload(uri,'scheme'),'file')&& !dart.equals(dart.dload(uri,'scheme'),'')&& !dart.equals(this.style,style$.Style.url)){return dart.toString(uri)}let path=this.normalize(this.fromUri(uri));let rel=this.relative(path);return dart.notNull(this.split(rel)[dartx.length])>dart.notNull(this.split(path)[dartx.length])?path:rel}[_parse](path){return parsed_path.ParsedPath.parse(path,this.style)}};dart.defineNamedConstructor(Context,'_internal');dart.defineNamedConstructor(Context,'_');dart.setSignature(Context,{constructors:()=>({_:[Context,[internal_style.InternalStyle,core.String]],_internal:[Context,[]],new:[Context,[],{current:core.String,style:style$.Style}]}),methods:()=>({[_parse]:[parsed_path.ParsedPath,[core.String]],absolute:[core.String,[core.String],[core.String,core.String,core.String,core.String,core.String,core.String]],basename:[core.String,[core.String]],basenameWithoutExtension:[core.String,[core.String]],dirname:[core.String,[core.String]],extension:[core.String,[core.String]],fromUri:[core.String,[dart.dynamic]],isAbsolute:[core.bool,[core.String]],isRelative:[core.bool,[core.String]],isRootRelative:[core.bool,[core.String]],isWithin:[core.bool,[core.String,core.String]],join:[core.String,[core.String],[core.String,core.String,core.String,core.String,core.String,core.String,core.String]],joinAll:[core.String,[core.Iterable$(core.String)]],normalize:[core.String,[core.String]],prettyUri:[core.String,[dart.dynamic]],relative:[core.String,[core.String],{from:core.String}],rootPrefix:[core.String,[core.String]],split:[core.List$(core.String),[core.String]],toUri:[core.Uri,[core.String]],withoutExtension:[core.String,[core.String]]})});function _validateArgList(method,args){for(let i=1;dart.notNull(i)<dart.notNull(args[dartx.length]);i=dart.notNull(i)+1){if(args[dartx.get](i)==null||args[dartx.get](dart.notNull(i)-1)!=null)continue;let numArgs=null;for(numArgs=args[dartx.length];dart.notNull(dart.as(dart.dsend(numArgs,'>=',1),core.bool));numArgs=dart.dsend(numArgs,'-',1)){if(args[dartx.get](dart.as(dart.dsend(numArgs,'-',1),core.int))!=null)break;}let message=new core.StringBuffer();message.write(`${method }(`);message.write(args[dartx.take](dart.as(numArgs,core.int))[dartx.map](dart.fn(arg=>arg==null?"null":`"${arg }"`,core.String,[dart.dynamic]))[dartx.join](", "));message.write(`): part ${dart.notNull(i)-1} was null, but part ${i } was not.`);dart.throw(new core.ArgumentError(dart.toString(message)))}}dart.fn(_validateArgList,dart.dynamic,[core.String,core.List$(core.String)]);exports.createInternal=createInternal;exports.Context=Context});dart_library.library('path/src/internal_style',null,["dart_runtime/dart",'dart/core'],['path/src/style'],function(exports,dart,core,style){'use strict';let dartx=dart.dartx;dart.defineLazyClass(exports,{get InternalStyle(){class InternalStyle extends style.Style{getRoot(path){let length=this.rootLength(path);if(dart.notNull(length)>0)return path[dartx.substring](0,length);return dart.notNull(this.isRootRelative(path))?path[dartx.get](0):null}relativePathToUri(path){let segments=this.context.split(path);if(dart.notNull(this.isSeparator(path[dartx.codeUnitAt](dart.notNull(path[dartx.length])-1))))segments[dartx.add]('');return core.Uri.new({pathSegments:segments})}}dart.setSignature(InternalStyle,{methods:()=>({getRoot:[core.String,[core.String]],relativePathToUri:[core.Uri,[core.String]]})});return InternalStyle}})});dart_library.library('path/src/parsed_path',null,["dart_runtime/dart",'dart/core','path/src/internal_style'],['path/src/style'],function(exports,dart,core,internal_style,style){'use strict';let dartx=dart.dartx;let _splitExtension=Symbol('_splitExtension');class ParsedPath extends core.Object{get extension(){return this[_splitExtension]()[dartx.get](1)}get isAbsolute(){return this.root!=null}static parse(path,style){let root=style.getRoot(path);let isRootRelative=style.isRootRelative(path);if(root!=null)path=path[dartx.substring](root[dartx.length]);let parts=dart.list([],core.String);let separators=dart.list([],core.String);let start=0;if(dart.notNull(path[dartx.isNotEmpty])&&dart.notNull(style.isSeparator(path[dartx.codeUnitAt](0)))){separators[dartx.add](path[dartx.get](0));start=1}else{separators[dartx.add]('')}for(let i=start;dart.notNull(i)<dart.notNull(path[dartx.length]);i=dart.notNull(i)+1){if(dart.notNull(style.isSeparator(path[dartx.codeUnitAt](i)))){parts[dartx.add](path[dartx.substring](start,i));separators[dartx.add](path[dartx.get](i));start=dart.notNull(i)+1}}if(dart.notNull(start)<dart.notNull(path[dartx.length])){parts[dartx.add](path[dartx.substring](start));separators[dartx.add]('')}return new ParsedPath._(style,root,isRootRelative,parts,separators)}_(style,root,isRootRelative,parts,separators){this.style=style;this.root=root;this.isRootRelative=isRootRelative;this.parts=parts;this.separators=separators}get basename(){let copy=this.clone();copy.removeTrailingSeparators();if(dart.notNull(copy.parts[dartx.isEmpty]))return this.root==null?'':this.root;return copy.parts[dartx.last]}get basenameWithoutExtension(){return this[_splitExtension]()[dartx.get](0)}get hasTrailingSeparator(){return!dart.notNull(this.parts[dartx.isEmpty])&&(this.parts[dartx.last]==''||this.separators[dartx.last]!='')}removeTrailingSeparators(){while(!dart.notNull(this.parts[dartx.isEmpty])&&this.parts[dartx.last]==''){this.parts[dartx.removeLast]();this.separators[dartx.removeLast]()}if(dart.notNull(this.separators[dartx.length])>0)this.separators[dartx.set](dart.notNull(this.separators[dartx.length])-1,'');}normalize(){let leadingDoubles=0;let newParts=dart.list([],core.String);for(let part of this.parts){if(part=='.'||part==''){}else if(part=='..'){if(dart.notNull(newParts[dartx.length])>0){newParts[dartx.removeLast]()}else{leadingDoubles=dart.notNull(leadingDoubles)+1}}else{newParts[dartx.add](part)}}if(!dart.notNull(this.isAbsolute)){newParts[dartx.insertAll](0,core.List$(core.String).filled(leadingDoubles,'..'))}if(newParts[dartx.length]==0&& !dart.notNull(this.isAbsolute)){newParts[dartx.add]('.')}let newSeparators=core.List$(core.String).generate(newParts[dartx.length],dart.fn(_=>this.style.separator,core.String,[dart.dynamic]),{growable:true});newSeparators[dartx.insert](0,dart.notNull(this.isAbsolute)&&dart.notNull(newParts[dartx.length])>0&&dart.notNull(this.style.needsSeparator(this.root))?this.style.separator:'');this.parts=newParts;this.separators=newSeparators;if(this.root!=null&&dart.equals(this.style,style.Style.windows)){this.root=this.root[dartx.replaceAll]('/','\\')}this.removeTrailingSeparators()}toString(){let builder=new core.StringBuffer();if(this.root!=null)builder.write(this.root);for(let i=0;dart.notNull(i)<dart.notNull(this.parts[dartx.length]);i=dart.notNull(i)+1){builder.write(this.separators[dartx.get](i));builder.write(this.parts[dartx.get](i))}builder.write(this.separators[dartx.last]);return dart.toString(builder)}[_splitExtension](){let file=this.parts[dartx.lastWhere](dart.fn(p=> !dart.equals(p,''),core.bool,[dart.dynamic]),{orElse:dart.fn(()=>null,dart.bottom,[])});if(file==null)return dart.list(['',''],core.String);if(file=='..')return dart.list(['..',''],core.String);let lastDot=file[dartx.lastIndexOf]('.');if(dart.notNull(lastDot)<=0)return dart.list([file,''],core.String);return dart.list([file[dartx.substring](0,lastDot),file[dartx.substring](lastDot)],core.String)}clone(){return new ParsedPath._(this.style,this.root,this.isRootRelative,core.List$(core.String).from(this.parts),core.List$(core.String).from(this.separators))}};dart.defineNamedConstructor(ParsedPath,'_');dart.setSignature(ParsedPath,{constructors:()=>({_:[ParsedPath,[internal_style.InternalStyle,core.String,core.bool,core.List$(core.String),core.List$(core.String)]],parse:[ParsedPath,[core.String,internal_style.InternalStyle]]}),methods:()=>({[_splitExtension]:[core.List$(core.String),[]],clone:[ParsedPath,[]],normalize:[dart.void,[]],removeTrailingSeparators:[dart.void,[]]})});exports.ParsedPath=ParsedPath});dart_library.library('path/src/path_exception',null,["dart_runtime/dart",'dart/core'],[],function(exports,dart,core){'use strict';let dartx=dart.dartx;class PathException extends core.Object{PathException(message){this.message=message}toString(){return `PathException: ${this.message }`}};PathException[dart.implements]=()=>[core.Exception];dart.setSignature(PathException,{constructors:()=>({PathException:[PathException,[core.String]]})});exports.PathException=PathException});dart_library.library('path/src/style/posix',null,["dart_runtime/dart",'dart/core','path/src/characters'],['path/src/internal_style','path/src/parsed_path'],function(exports,dart,core,characters,internal_style,parsed_path){'use strict';let dartx=dart.dartx;dart.defineLazyClass(exports,{get PosixStyle(){class PosixStyle extends internal_style.InternalStyle{PosixStyle(){this.separatorPattern=core.RegExp.new('/');this.needsSeparatorPattern=core.RegExp.new('[^/]$');this.rootPattern=core.RegExp.new('^/');this.name='posix';this.separator='/';this.separators=dart.const(['/']);this.relativeRootPattern=null}containsSeparator(path){return path[dartx.contains]('/')}isSeparator(codeUnit){return codeUnit==characters.SLASH}needsSeparator(path){return dart.notNull(path[dartx.isNotEmpty])&& !dart.notNull(this.isSeparator(path[dartx.codeUnitAt](dart.notNull(path[dartx.length])-1)))}rootLength(path){if(dart.notNull(path[dartx.isNotEmpty])&&dart.notNull(this.isSeparator(path[dartx.codeUnitAt](0))))return 1;return 0}isRootRelative(path){return false}getRelativeRoot(path){return null}pathFromUri(uri){if(uri.scheme==''||uri.scheme=='file'){return core.Uri.decodeComponent(uri.path)}dart.throw(new core.ArgumentError(`Uri ${uri } must have scheme 'file:'.`))}absolutePathToUri(path){let parsed=parsed_path.ParsedPath.parse(path,this);if(dart.notNull(parsed.parts[dartx.isEmpty])){parsed.parts[dartx.addAll](dart.list(["",""],core.String))}else if(dart.notNull(parsed.hasTrailingSeparator)){parsed.parts[dartx.add]("")}return core.Uri.new({pathSegments:parsed.parts,scheme:'file'})}}dart.setSignature(PosixStyle,{constructors:()=>({PosixStyle:[exports.PosixStyle,[]]}),methods:()=>({absolutePathToUri:[core.Uri,[core.String]],containsSeparator:[core.bool,[core.String]],getRelativeRoot:[core.String,[core.String]],isRootRelative:[core.bool,[core.String]],isSeparator:[core.bool,[core.int]],needsSeparator:[core.bool,[core.String]],pathFromUri:[core.String,[core.Uri]],rootLength:[core.int,[core.String]]})});return PosixStyle}})});dart_library.library('path/src/style/url',null,["dart_runtime/dart",'dart/core','path/src/characters'],['path/src/internal_style'],function(exports,dart,core,characters,internal_style){'use strict';let dartx=dart.dartx;dart.defineLazyClass(exports,{get UrlStyle(){class UrlStyle extends internal_style.InternalStyle{UrlStyle(){this.separatorPattern=core.RegExp.new('/');this.needsSeparatorPattern=core.RegExp.new("(^[a-zA-Z][-+.a-zA-Z\\d]*://|[^/])$");this.rootPattern=core.RegExp.new("[a-zA-Z][-+.a-zA-Z\\d]*://[^/]*");this.relativeRootPattern=core.RegExp.new("^/");this.name='url';this.separator='/';this.separators=dart.const(['/'])}containsSeparator(path){return path[dartx.contains]('/')}isSeparator(codeUnit){return codeUnit==characters.SLASH}needsSeparator(path){if(dart.notNull(path[dartx.isEmpty]))return false;if(!dart.notNull(this.isSeparator(path[dartx.codeUnitAt](dart.notNull(path[dartx.length])-1))))return true;return dart.notNull(path[dartx.endsWith]("://"))&&this.rootLength(path)==path[dartx.length]}rootLength(path){if(dart.notNull(path[dartx.isEmpty]))return 0;if(dart.notNull(this.isSeparator(path[dartx.codeUnitAt](0))))return 1;let index=path[dartx.indexOf]("/");if(dart.notNull(index)>0&&dart.notNull(path[dartx.startsWith]('://',dart.notNull(index)-1))){index=path[dartx.indexOf]('/',dart.notNull(index)+2);if(dart.notNull(index)>0)return index;return path[dartx.length]}return 0}isRootRelative(path){return dart.notNull(path[dartx.isNotEmpty])&&dart.notNull(this.isSeparator(path[dartx.codeUnitAt](0)))}getRelativeRoot(path){return dart.notNull(this.isRootRelative(path))?'/':null}pathFromUri(uri){return dart.toString(uri)}relativePathToUri(path){return core.Uri.parse(path)}absolutePathToUri(path){return core.Uri.parse(path)}}dart.setSignature(UrlStyle,{constructors:()=>({UrlStyle:[exports.UrlStyle,[]]}),methods:()=>({absolutePathToUri:[core.Uri,[core.String]],containsSeparator:[core.bool,[core.String]],getRelativeRoot:[core.String,[core.String]],isRootRelative:[core.bool,[core.String]],isSeparator:[core.bool,[core.int]],needsSeparator:[core.bool,[core.String]],pathFromUri:[core.String,[core.Uri]],rootLength:[core.int,[core.String]]})});return UrlStyle}})});dart_library.library('path/src/style/windows',null,["dart_runtime/dart",'dart/core','path/src/characters','path/src/utils','path/src/parsed_path'],['path/src/internal_style'],function(exports,dart,core,characters,utils,parsed_path,internal_style){'use strict';let dartx=dart.dartx;dart.defineLazyClass(exports,{get WindowsStyle(){class WindowsStyle extends internal_style.InternalStyle{WindowsStyle(){this.separatorPattern=core.RegExp.new('[/\\\\]');this.needsSeparatorPattern=core.RegExp.new('[^/\\\\]$');this.rootPattern=core.RegExp.new('^(\\\\\\\\[^\\\\]+\\\\[^\\\\/]+|[a-zA-Z]:[/\\\\])');this.relativeRootPattern=core.RegExp.new("^[/\\\\](?![/\\\\])");this.name='windows';this.separator='\\';this.separators=dart.const(['/','\\'])}containsSeparator(path){return path[dartx.contains]('/')}isSeparator(codeUnit){return codeUnit==characters.SLASH||codeUnit==characters.BACKSLASH}needsSeparator(path){if(dart.notNull(path[dartx.isEmpty]))return false;return!dart.notNull(this.isSeparator(path[dartx.codeUnitAt](dart.notNull(path[dartx.length])-1)))}rootLength(path){if(dart.notNull(path[dartx.isEmpty]))return 0;if(path[dartx.codeUnitAt](0)==characters.SLASH)return 1;if(path[dartx.codeUnitAt](0)==characters.BACKSLASH){if(dart.notNull(path[dartx.length])<2||path[dartx.codeUnitAt](1)!=characters.BACKSLASH)return 1;let index=path[dartx.indexOf]('\\',2);if(dart.notNull(index)>0){index=path[dartx.indexOf]('\\',dart.notNull(index)+1);if(dart.notNull(index)>0)return index;}return path[dartx.length]}if(dart.notNull(path[dartx.length])<3)return 0;if(!dart.notNull(utils.isAlphabetic(path[dartx.codeUnitAt](0))))return 0;if(path[dartx.codeUnitAt](1)!=characters.COLON)return 0;if(!dart.notNull(this.isSeparator(path[dartx.codeUnitAt](2))))return 0;return 3}isRootRelative(path){return this.rootLength(path)==1}getRelativeRoot(path){let length=this.rootLength(path);if(length==1)return path[dartx.get](0);return null}pathFromUri(uri){if(uri.scheme!=''&&uri.scheme!='file'){dart.throw(new core.ArgumentError(`Uri ${uri } must have scheme 'file:'.`))}let path=uri.path;if(uri.host==''){if(dart.notNull(path[dartx.startsWith]('/')))path=path[dartx.replaceFirst]("/","");}else{path=`\\\\${uri.host }${path }`}return core.Uri.decodeComponent(path[dartx.replaceAll]("/","\\"))}absolutePathToUri(path){let parsed=parsed_path.ParsedPath.parse(path,this);if(dart.notNull(parsed.root[dartx.startsWith]('\\\\'))){let rootParts=parsed.root[dartx.split]('\\')[dartx.where](dart.fn(part=> !dart.equals(part,''),core.bool,[dart.dynamic]));parsed.parts[dartx.insert](0,rootParts[dartx.last]);if(dart.notNull(parsed.hasTrailingSeparator)){parsed.parts[dartx.add]("")}return core.Uri.new({host:rootParts[dartx.first],pathSegments:parsed.parts,scheme:'file'})}else{if(parsed.parts[dartx.length]==0||dart.notNull(parsed.hasTrailingSeparator)){parsed.parts[dartx.add]("")}parsed.parts[dartx.insert](0,parsed.root[dartx.replaceAll]("/","")[dartx.replaceAll]("\\",""));return core.Uri.new({pathSegments:parsed.parts,scheme:'file'})}}}dart.setSignature(WindowsStyle,{constructors:()=>({WindowsStyle:[exports.WindowsStyle,[]]}),methods:()=>({absolutePathToUri:[core.Uri,[core.String]],containsSeparator:[core.bool,[core.String]],getRelativeRoot:[core.String,[core.String]],isRootRelative:[core.bool,[core.String]],isSeparator:[core.bool,[core.int]],needsSeparator:[core.bool,[core.String]],pathFromUri:[core.String,[core.Uri]],rootLength:[core.int,[core.String]]})});return WindowsStyle}})});dart_library.library('path/src/style',null,["dart_runtime/dart",'dart/core'],['path/src/context','path/src/style/posix','path/src/style/windows','path/src/style/url'],function(exports,dart,core,context,posix,windows,url){'use strict';let dartx=dart.dartx;class Style extends core.Object{static _getPlatformStyle(){if(core.Uri.base.scheme!='file')return Style.url;if(!dart.notNull(core.Uri.base.path[dartx.endsWith]('/')))return Style.url;if(core.Uri.new({path:'a/b'}).toFilePath()=='a\\b')return Style.windows;return Style.posix}get context(){return context.Context.new({style:this})}toString(){return this.name}};dart.setSignature(Style,{names:['_getPlatformStyle'],statics:()=>({_getPlatformStyle:[Style,[]]})});dart.defineLazyProperties(Style,{get platform(){return Style._getPlatformStyle()},get url(){return new url.UrlStyle()},get windows(){return new windows.WindowsStyle()},get posix(){return new posix.PosixStyle()}});exports.Style=Style});dart_library.library('path/src/utils',null,["dart_runtime/dart",'path/src/characters','dart/core'],[],function(exports,dart,characters,core){'use strict';let dartx=dart.dartx;function isAlphabetic(char){return dart.notNull(char)>=dart.notNull(characters.UPPER_A)&&dart.notNull(char)<=dart.notNull(characters.UPPER_Z)||dart.notNull(char)>=dart.notNull(characters.LOWER_A)&&dart.notNull(char)<=dart.notNull(characters.LOWER_Z)}dart.fn(isAlphabetic,core.bool,[core.int]);function isNumeric(char){return dart.notNull(char)>=dart.notNull(characters.ZERO)&&dart.notNull(char)<=dart.notNull(characters.NINE)}dart.fn(isNumeric,core.bool,[core.int]);exports.isAlphabetic=isAlphabetic;exports.isNumeric=isNumeric});dart_library.library('stack_trace/src/chain',null,["dart_runtime/dart",'dart/core','dart/async','dart/collection','stack_trace/src/utils','dart/math'],['stack_trace/src/stack_zone_specification','stack_trace/src/trace','stack_trace/src/frame'],function(exports,dart,core,async,collection,utils,math,stack_zone_specification,trace$,frame){'use strict';let dartx=dart.dartx;let ChainHandler=dart.typedef('ChainHandler',()=>dart.functionType(dart.void,[dart.dynamic,Chain]));let _gap='===== asynchronous gap ===========================\n';class Chain extends core.Object{static get _currentSpec(){return dart.as(async.Zone.current.get(dart.const(new core.Symbol('stack_trace.stack_zone.spec'))),stack_zone_specification.StackZoneSpecification)}static capture(callback,opts){let onError=opts&&'onError'in opts?opts.onError:null;let spec=new stack_zone_specification.StackZoneSpecification(onError);return async.runZoned(dart.fn(()=>{try{return callback()}catch(error){let stackTrace=dart.stackTrace(error);return async.Zone.current.handleUncaughtError(error,stackTrace)}}),{zoneSpecification:spec.toSpec(),zoneValues:dart.map([dart.const(new core.Symbol('stack_trace.stack_zone.spec')),spec])})}static track(futureOrStream){return futureOrStream}static current(level){if(level===void 0)level=0;if(Chain._currentSpec!=null)return Chain._currentSpec.currentChain(dart.notNull(level)+1);return new Chain(dart.list([trace$.Trace.current(dart.notNull(level)+1)],trace$.Trace))}static forTrace(trace){if(dart.is(trace,Chain))return trace;if(Chain._currentSpec==null)return new Chain(dart.list([trace$.Trace.from(trace)],trace$.Trace));return Chain._currentSpec.chainFor(trace)}static parse(chain){if(dart.notNull(chain[dartx.isEmpty]))return new Chain(dart.list([],trace$.Trace));return new Chain(dart.as(chain[dartx.split](_gap)[dartx.map](dart.fn(trace=>new trace$.Trace.parseFriendly(dart.as(trace,core.String)),trace$.Trace,[dart.dynamic])),core.Iterable$(trace$.Trace)))}Chain(traces){this.traces=new(collection.UnmodifiableListView$(trace$.Trace))(traces[dartx.toList]())}get terse(){return this.foldFrames(dart.fn(_=>false,core.bool,[dart.dynamic]),{terse:true})}foldFrames(predicate,opts){let terse=opts&&'terse'in opts?opts.terse:false;let foldedTraces=this.traces[dartx.map](dart.fn(trace=>dart.dsend(trace,'foldFrames',predicate,{terse:terse})));let nonEmptyTraces=foldedTraces[dartx.where](dart.as(dart.fn(trace=>{if(dart.notNull(dart.as(dart.dsend(dart.dload(dart.dload(trace,'frames'),'length'),'>',1),core.bool)))return true;if(!dart.notNull(terse))return false;return dart.dload(dart.dload(dart.dload(trace,'frames'),'single'),'line')!=null}),__CastType0));if(dart.notNull(nonEmptyTraces[dartx.isEmpty])&&dart.notNull(foldedTraces[dartx.isNotEmpty])){return new Chain(dart.list([dart.as(foldedTraces[dartx.last],trace$.Trace)],trace$.Trace))}return new Chain(dart.as(nonEmptyTraces,core.Iterable$(trace$.Trace)))}toTrace(){return new trace$.Trace(dart.as(utils.flatten(this.traces[dartx.map](dart.fn(trace=>dart.dload(trace,'frames')))),core.Iterable$(frame.Frame)))}toString(){let longest=this.traces[dartx.map](dart.fn(trace=>{return dart.dsend(dart.dsend(dart.dload(trace,'frames'),'map',dart.fn(frame=>dart.dload(dart.dload(frame,'location'),'length'))),'fold',0,math.max)}))[dartx.fold](0,math.max);return this.traces[dartx.map](dart.fn(trace=>{return dart.dsend(dart.dsend(dart.dload(trace,'frames'),'map',dart.fn(frame=>{return `${utils.padRight(dart.as(dart.dload(frame,'location'),core.String),dart.as(longest,core.int))} ${dart.dload(frame,'member')}\n`})),'join')}))[dartx.join](_gap)}};Chain[dart.implements]=()=>[core.StackTrace];dart.setSignature(Chain,{constructors:()=>({Chain:[Chain,[core.Iterable$(trace$.Trace)]],current:[Chain,[],[core.int]],forTrace:[Chain,[core.StackTrace]],parse:[Chain,[core.String]]}),methods:()=>({foldFrames:[Chain,[dart.functionType(core.bool,[frame.Frame])],{terse:core.bool}],toTrace:[trace$.Trace,[]]}),names:['capture','track'],statics:()=>({capture:[dart.dynamic,[dart.functionType(dart.dynamic,[])],{onError:ChainHandler}],track:[dart.dynamic,[dart.dynamic]]})});let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(core.bool,[dart.dynamic]));exports.ChainHandler=ChainHandler;exports.Chain=Chain});dart_library.library('stack_trace/src/frame',null,["dart_runtime/dart",'dart/core','path/path'],['stack_trace/src/trace'],function(exports,dart,core,path,trace){'use strict';let dartx=dart.dartx;dart.defineLazyProperties(exports,{get _initialDot(){return core.RegExp.new("^\\.")},get _asyncBody(){return core.RegExp.new('<(<anonymous closure>|[^>]+)_async_body>')},get _friendlyFrame(){return core.RegExp.new('^(\\S+)(?: (\\d+)(?::(\\d+))?)?\\s+([^\\d]\\S*)$')},get _firefoxSafariFrame(){return core.RegExp.new('^(?:([^@(/]*)(?:\\(.*\\))?((?:/[^/]*)*)(?:\\(.*\\))?@)?(.*?):(\\d*)(?::(\\d*))?$')},get _v8EvalLocation(){return core.RegExp.new('^eval at (?:\\S.*?) \\((.*)\\)(?:, .*?:\\d+:\\d+)?$')},get _v8UrlLocation(){return core.RegExp.new('^(.*):(\\d+):(\\d+)$')},get _v8Frame(){return core.RegExp.new('^\\s*at (?:(\\S.*?)(?: \\[as [^\\]]+\\])? \\((.*)\\)|(.*))$')},get _vmFrame(){return core.RegExp.new('^#\\d+\\s+(\\S.*) \\((.+?)((?::\\d+){0,2})\\)$')}});class Frame extends core.Object{get isCore(){return this.uri.scheme=='dart'}get library(){return path.prettyUri(this.uri)}get package(){if(this.uri.scheme!='package')return null;return this.uri.path[dartx.split]('/')[dartx.first]}get location(){if(this.line==null)return this.library;if(this.column==null)return `${this.library } ${this.line }`;return `${this.library } ${this.line }:${this.column }`}static caller(level){if(level===void 0)level=1;if(dart.notNull(level)<0){dart.throw(new core.ArgumentError("Argument [level] must be greater than or equal to 0."))}return trace.Trace.current(dart.notNull(level)+1).frames[dartx.first]}static parseVM(frame){if(frame=='...'){return new Frame(core.Uri.new(),null,null,'...')}let match=exports._vmFrame.firstMatch(frame);if(match==null){dart.throw(new core.FormatException(`Couldn't parse VM stack trace line '${frame }'.`))}let member=match.get(1)[dartx.replaceAll](exports._asyncBody,"<async>")[dartx.replaceAll]("<anonymous closure>","<fn>");let uri=core.Uri.parse(match.get(2));let lineAndColumn=match.get(3)[dartx.split](':');let line=dart.notNull(lineAndColumn[dartx.length])>1?core.int.parse(lineAndColumn[dartx.get](1)):null;let column=dart.notNull(lineAndColumn[dartx.length])>2?core.int.parse(lineAndColumn[dartx.get](2)):null;return new Frame(uri,line,column,member)}static parseV8(frame){let match=exports._v8Frame.firstMatch(frame);if(match==null){dart.throw(new core.FormatException(`Couldn't parse V8 stack trace line '${frame }'.`))}function parseLocation(location,member){let evalMatch=exports._v8EvalLocation.firstMatch(dart.as(location,core.String));while(evalMatch!=null){location=evalMatch.get(1);evalMatch=exports._v8EvalLocation.firstMatch(dart.as(location,core.String))}let urlMatch=exports._v8UrlLocation.firstMatch(dart.as(location,core.String));if(urlMatch==null){dart.throw(new core.FormatException(`Couldn't parse V8 stack trace line '${frame }'.`))}return new Frame(Frame._uriOrPathToUri(urlMatch.get(1)),core.int.parse(urlMatch.get(2)),core.int.parse(urlMatch.get(3)),dart.as(member,core.String))}dart.fn(parseLocation);if(match.get(2)!=null){return dart.as(parseLocation(match.get(2),match.get(1)[dartx.replaceAll]("<anonymous>","<fn>")[dartx.replaceAll]("Anonymous function","<fn>")),Frame)}else{return dart.as(parseLocation(match.get(3),"<fn>"),Frame)}}static parseJSCore(frame){return Frame.parseV8(frame)}static parseIE(frame){return Frame.parseV8(frame)}static parseFirefox(frame){let match=exports._firefoxSafariFrame.firstMatch(frame);if(match==null){dart.throw(new core.FormatException(`Couldn't parse Firefox/Safari stack trace line '${frame }'.`))}let uri=Frame._uriOrPathToUri(match.get(3));let member=null;if(match.get(1)!=null){member=match.get(1);member=dart.dsend(member,'+',core.List.filled('/'[dartx.allMatches](match.get(2))[dartx.length],".<fn>")[dartx.join]());if(dart.equals(member,''))member='<fn>';member=dart.dsend(member,'replaceFirst',exports._initialDot,'')}else{member='<fn>'}let line=match.get(4)==''?null:core.int.parse(match.get(4));let column=match.get(5)==null||match.get(5)==''?null:core.int.parse(match.get(5));return new Frame(uri,line,column,dart.as(member,core.String))}static parseSafari6_0(frame){return Frame.parseFirefox(frame)}static parseSafari6_1(frame){return Frame.parseFirefox(frame)}static parseSafari(frame){return Frame.parseFirefox(frame)}static parseFriendly(frame){let match=exports._friendlyFrame.firstMatch(frame);if(match==null){dart.throw(new core.FormatException(`Couldn't parse package:stack_trace stack trace line '${frame }'.`))}let uri=core.Uri.parse(match.get(1));if(uri.scheme==''){uri=path.toUri(path.absolute(path.fromUri(uri)))}let line=match.get(2)==null?null:core.int.parse(match.get(2));let column=match.get(3)==null?null:core.int.parse(match.get(3));return new Frame(uri,line,column,match.get(4))}static _uriOrPathToUri(uriOrPath){if(dart.notNull(uriOrPath[dartx.contains](Frame._uriRegExp))){return core.Uri.parse(uriOrPath)}else if(dart.notNull(uriOrPath[dartx.contains](Frame._windowsRegExp))){return core.Uri.file(uriOrPath,{windows:true})}else if(dart.notNull(uriOrPath[dartx.startsWith]('/'))){return core.Uri.file(uriOrPath,{windows:false})}if(dart.notNull(uriOrPath[dartx.contains]('\\')))return path.windows.toUri(uriOrPath);return core.Uri.parse(uriOrPath)}Frame(uri,line,column,member){this.uri=uri;this.line=line;this.column=column;this.member=member}toString(){return `${this.location } in ${this.member }`}};dart.setSignature(Frame,{constructors:()=>({caller:[Frame,[],[core.int]],Frame:[Frame,[core.Uri,core.int,core.int,core.String]],parseFirefox:[Frame,[core.String]],parseFriendly:[Frame,[core.String]],parseIE:[Frame,[core.String]],parseJSCore:[Frame,[core.String]],parseSafari:[Frame,[core.String]],parseSafari6_0:[Frame,[core.String]],parseSafari6_1:[Frame,[core.String]],parseV8:[Frame,[core.String]],parseVM:[Frame,[core.String]]}),names:['_uriOrPathToUri'],statics:()=>({_uriOrPathToUri:[core.Uri,[core.String]]})});dart.defineLazyProperties(Frame,{get _windowsRegExp(){return core.RegExp.new('^([a-zA-Z]:[\\\\/]|\\\\\\\\)')},get _uriRegExp(){return core.RegExp.new('^[a-zA-Z][-+.a-zA-Z\\d]*://')}});exports.Frame=Frame});dart_library.library('stack_trace/src/lazy_trace',null,["dart_runtime/dart",'dart/core','stack_trace/src/frame'],['stack_trace/src/trace'],function(exports,dart,core,frame,trace){'use strict';let dartx=dart.dartx;let TraceThunk=dart.typedef('TraceThunk',()=>dart.functionType(trace.Trace,[]));let _thunk=Symbol('_thunk');let _inner=Symbol('_inner');let _trace=Symbol('_trace');class LazyTrace extends core.Object{LazyTrace(thunk){this[_thunk]=thunk;this[_inner]=null}get[_trace](){if(this[_inner]==null)this[_inner]=this[_thunk]();return this[_inner]}get frames(){return this[_trace].frames}get vmTrace(){return this[_trace].vmTrace}get terse(){return new LazyTrace(dart.fn(()=>this[_trace].terse,trace.Trace,[]))}foldFrames(predicate,opts){let terse=opts&&'terse'in opts?opts.terse:false;return new LazyTrace(dart.fn(()=>this[_trace].foldFrames(predicate,{terse:terse}),trace.Trace,[]))}toString(){return dart.toString(this[_trace])}set frames(_){return dart.throw(new core.UnimplementedError())}};LazyTrace[dart.implements]=()=>[trace.Trace];dart.setSignature(LazyTrace,{constructors:()=>({LazyTrace:[LazyTrace,[TraceThunk]]}),methods:()=>({foldFrames:[trace.Trace,[dart.functionType(core.bool,[frame.Frame])],{terse:core.bool}]})});exports.TraceThunk=TraceThunk;exports.LazyTrace=LazyTrace});dart_library.library('stack_trace/src/stack_zone_specification',null,["dart_runtime/dart",'dart/core','dart/async','stack_trace/src/trace'],['stack_trace/src/chain'],function(exports,dart,core,async,trace$,chain){'use strict';let dartx=dart.dartx;let _chains=Symbol('_chains');let _onError=Symbol('_onError');let _currentNode=Symbol('_currentNode');let _createNode=Symbol('_createNode');let _run=Symbol('_run');class StackZoneSpecification extends core.Object{StackZoneSpecification(onError){if(onError===void 0)onError=null;this[_chains]=new(core.Expando$(_Node))("stack chains");this[_onError]=onError;this[_currentNode]=null}toSpec(){return async.ZoneSpecification.new({errorCallback:dart.bind(this,'errorCallback'),handleUncaughtError:dart.bind(this,'handleUncaughtError'),registerBinaryCallback:dart.bind(this,'registerBinaryCallback'),registerCallback:dart.bind(this,'registerCallback'),registerUnaryCallback:dart.bind(this,'registerUnaryCallback')})}currentChain(level){if(level===void 0)level=0;return this[_createNode](dart.notNull(level)+1).toChain()}chainFor(trace){if(dart.is(trace,chain.Chain))return trace;let previous=trace==null?null:this[_chains].get(trace);return new _Node(trace,previous).toChain()}trackFuture(future,level){if(level===void 0)level=0;let completer=async.Completer.sync();let node=this[_createNode](dart.notNull(level)+1);future.then(dart.bind(completer,'complete')).catchError(dart.fn((e,stackTrace)=>{if(stackTrace==null)stackTrace=trace$.Trace.current();if(!dart.is(stackTrace,chain.Chain)&&this[_chains].get(stackTrace)==null){this[_chains].set(stackTrace,node)}completer.completeError(e,dart.as(stackTrace,core.StackTrace))}));return completer.future}trackStream(stream,level){if(level===void 0)level=0;let node=this[_createNode](dart.notNull(level)+1);return stream.transform(async.StreamTransformer.fromHandlers({handleError:dart.fn((error,stackTrace,sink)=>{if(stackTrace==null)stackTrace=trace$.Trace.current();if(!dart.is(stackTrace,chain.Chain)&&this[_chains].get(stackTrace)==null){this[_chains].set(stackTrace,node)}dart.dsend(sink,'addError',error,stackTrace)})}))}registerCallback(self,parent,zone,f){if(f==null)return parent.registerCallback(zone,null);let node=this[_createNode](1);return parent.registerCallback(zone,dart.fn(()=>this[_run](f,node)))}registerUnaryCallback(self,parent,zone,f){if(f==null)return parent.registerUnaryCallback(zone,null);let node=this[_createNode](1);return parent.registerUnaryCallback(zone,dart.fn(arg=>{return this[_run](dart.fn(()=>dart.dcall(f,arg)),node)}))}registerBinaryCallback(self,parent,zone,f){if(f==null)return parent.registerBinaryCallback(zone,null);let node=this[_createNode](1);return parent.registerBinaryCallback(zone,dart.fn((arg1,arg2)=>{return this[_run](dart.fn(()=>dart.dcall(f,arg1,arg2)),node)}))}handleUncaughtError(self,parent,zone,error,stackTrace){let stackChain=this.chainFor(stackTrace);if(this[_onError]==null){return parent.handleUncaughtError(zone,error,stackChain)}try{return parent.runBinary(zone,this[_onError],error,stackChain)}catch(newError){let newStackTrace=dart.stackTrace(newError);if(dart.notNull(core.identical(newError,error))){return parent.handleUncaughtError(zone,error,stackChain)}else{return parent.handleUncaughtError(zone,newError,newStackTrace)}}}errorCallback(self,parent,zone,error,stackTrace){if(stackTrace==null){stackTrace=this[_createNode](2).toChain()}else{if(this[_chains].get(stackTrace)==null)this[_chains].set(stackTrace,this[_createNode](2));}let asyncError=parent.errorCallback(zone,error,stackTrace);return asyncError==null?new async.AsyncError(error,stackTrace):asyncError}[_createNode](level){if(level===void 0)level=0;return new _Node(trace$.Trace.current(dart.notNull(level)+1),this[_currentNode])}[_run](f,node){let previousNode=this[_currentNode];this[_currentNode]=node;try{return dart.dcall(f)}catch(e){let stackTrace=dart.stackTrace(e);this[_chains].set(stackTrace,node);throw e}finally{this[_currentNode]=previousNode}}};dart.setSignature(StackZoneSpecification,{constructors:()=>({StackZoneSpecification:[StackZoneSpecification,[],[chain.ChainHandler]]}),methods:()=>({[_run]:[dart.dynamic,[core.Function,_Node]],[_createNode]:[_Node,[],[core.int]],chainFor:[chain.Chain,[core.StackTrace]],currentChain:[chain.Chain,[],[core.int]],errorCallback:[async.AsyncError,[async.Zone,async.ZoneDelegate,async.Zone,core.Object,core.StackTrace]],handleUncaughtError:[dart.dynamic,[async.Zone,async.ZoneDelegate,async.Zone,dart.dynamic,core.StackTrace]],registerBinaryCallback:[async.ZoneBinaryCallback,[async.Zone,async.ZoneDelegate,async.Zone,core.Function]],registerCallback:[async.ZoneCallback,[async.Zone,async.ZoneDelegate,async.Zone,core.Function]],registerUnaryCallback:[async.ZoneUnaryCallback,[async.Zone,async.ZoneDelegate,async.Zone,core.Function]],toSpec:[async.ZoneSpecification,[]],trackFuture:[async.Future,[async.Future],[core.int]],trackStream:[async.Stream,[async.Stream],[core.int]]})});class _Node extends core.Object{_Node(trace,previous){if(previous===void 0)previous=null;this.previous=previous;this.trace=trace==null?trace$.Trace.current():trace$.Trace.from(trace)}toChain(){let nodes=dart.list([],trace$.Trace);let node=this;while(node!=null){nodes[dartx.add](node.trace);node=node.previous}return new chain.Chain(nodes)}};dart.setSignature(_Node,{constructors:()=>({_Node:[_Node,[core.StackTrace],[_Node]]}),methods:()=>({toChain:[chain.Chain,[]]})});exports.StackZoneSpecification=StackZoneSpecification});dart_library.library('stack_trace/src/trace',null,["dart_runtime/dart",'dart/core','dart/collection','dart/math','stack_trace/src/utils'],['stack_trace/src/lazy_trace','stack_trace/src/chain','stack_trace/src/frame','stack_trace/src/vm_trace'],function(exports,dart,core,collection,math,utils,lazy_trace,chain,frame$,vm_trace){'use strict';let dartx=dart.dartx;dart.defineLazyProperties(exports,{get _friendlyTrace(){return core.RegExp.new("^[^\\s]+( \\d+(:\\d+)?)?[ \\t]+[^\\s]+$",{multiLine:true})},get _firefoxSafariTrace(){return core.RegExp.new("^(([.0-9A-Za-z_$/<]|\\(.*\\))*@)?[^\\s]*:\\d*$",{multiLine:true})},get _v8TraceLine(){return core.RegExp.new(" ?at ")},get _v8Trace(){return core.RegExp.new("\\n ?at ")},get _terseRegExp(){return core.RegExp.new("(-patch)?(/.*)?$")}});class Trace extends core.Object{static format(stackTrace,opts){let terse=opts&&'terse'in opts?opts.terse:true;let trace=Trace.from(stackTrace);if(dart.notNull(terse))trace=trace.terse;return dart.toString(trace)}static current(level){if(level===void 0)level=0;if(dart.notNull(level)<0){dart.throw(new core.ArgumentError("Argument [level] must be greater than or equal to 0."))}try{dart.throw('')}catch(_){let nativeTrace=dart.stackTrace(_);let trace=Trace.from(nativeTrace);return new lazy_trace.LazyTrace(dart.fn(()=>new Trace(trace.frames[dartx.skip](dart.notNull(level)+1)),Trace,[]))}}static from(trace){if(trace==null){dart.throw(new core.ArgumentError("Cannot create a Trace from null."))}if(dart.is(trace,Trace))return trace;if(dart.is(trace,chain.Chain))return trace.toTrace();return new lazy_trace.LazyTrace(dart.fn(()=>Trace.parse(dart.toString(trace)),Trace,[]))}static parse(trace){try{if(dart.notNull(trace[dartx.isEmpty]))return new Trace(dart.list([],frame$.Frame));if(dart.notNull(trace[dartx.contains](exports._v8Trace)))return new Trace.parseV8(trace);if(dart.notNull(trace[dartx.startsWith]("\tat ")))return new Trace.parseJSCore(trace);if(dart.notNull(trace[dartx.contains](exports._firefoxSafariTrace))){return new Trace.parseFirefox(trace)}if(dart.notNull(trace[dartx.contains](exports._friendlyTrace))){return new Trace.parseFriendly(trace)}return new Trace.parseVM(trace)}catch(error){if(dart.is(error,core.FormatException)){dart.throw(new core.FormatException(`${error.message }\nStack trace:\n${trace }`))}else throw error;}}parseVM(trace){this.Trace(Trace._parseVM(trace))}static _parseVM(trace){let lines=trace[dartx.trim]()[dartx.split]("\n");let frames=lines[dartx.take](dart.notNull(lines[dartx.length])-1)[dartx.map](dart.fn(line=>frame$.Frame.parseVM(dart.as(line,core.String)),frame$.Frame,[dart.dynamic]))[dartx.toList]();if(!dart.notNull(lines[dartx.last][dartx.endsWith](".da"))){frames[dartx.add](frame$.Frame.parseVM(lines[dartx.last]))}return dart.as(frames,core.List$(frame$.Frame))}parseV8(trace){this.Trace(dart.as(trace[dartx.split]("\n")[dartx.skip](1)[dartx.skipWhile](dart.fn(line=> !dart.notNull(dart.as(dart.dsend(line,'startsWith',exports._v8TraceLine),core.bool)),core.bool,[dart.dynamic]))[dartx.map](dart.fn(line=>frame$.Frame.parseV8(dart.as(line,core.String)),frame$.Frame,[dart.dynamic])),core.Iterable$(frame$.Frame)))}parseJSCore(trace){this.Trace(dart.as(trace[dartx.split]("\n")[dartx.where](dart.fn(line=> !dart.equals(line,"\tat "),core.bool,[dart.dynamic]))[dartx.map](dart.fn(line=>frame$.Frame.parseV8(dart.as(line,core.String)),frame$.Frame,[dart.dynamic])),core.Iterable$(frame$.Frame)))}parseIE(trace){this.parseV8(trace)}parseFirefox(trace){this.Trace(dart.as(trace[dartx.trim]()[dartx.split]("\n")[dartx.where](dart.fn(line=>dart.notNull(dart.as(dart.dload(line,'isNotEmpty'),core.bool))&& !dart.equals(line,'[native code]'),core.bool,[dart.dynamic]))[dartx.map](dart.fn(line=>frame$.Frame.parseFirefox(dart.as(line,core.String)),frame$.Frame,[dart.dynamic])),core.Iterable$(frame$.Frame)))}parseSafari(trace){this.parseFirefox(trace)}parseSafari6_1(trace){this.parseSafari(trace)}parseSafari6_0(trace){this.Trace(dart.as(trace[dartx.trim]()[dartx.split]("\n")[dartx.where](dart.fn(line=> !dart.equals(line,'[native code]'),core.bool,[dart.dynamic]))[dartx.map](dart.fn(line=>frame$.Frame.parseFirefox(dart.as(line,core.String)),frame$.Frame,[dart.dynamic])),core.Iterable$(frame$.Frame)))}parseFriendly(trace){this.Trace(dart.as(dart.notNull(trace[dartx.isEmpty])?[]:trace[dartx.trim]()[dartx.split]("\n")[dartx.where](dart.fn(line=> !dart.notNull(dart.as(dart.dsend(line,'startsWith','====='),core.bool)),core.bool,[dart.dynamic]))[dartx.map](dart.fn(line=>frame$.Frame.parseFriendly(dart.as(line,core.String)),frame$.Frame,[dart.dynamic])),core.Iterable$(frame$.Frame)))}Trace(frames){this.frames=new(collection.UnmodifiableListView$(frame$.Frame))(frames[dartx.toList]())}get vmTrace(){return new vm_trace.VMTrace(this.frames)}get terse(){return this.foldFrames(dart.fn(_=>false,core.bool,[dart.dynamic]),{terse:true})}foldFrames(predicate,opts){let terse=opts&&'terse'in opts?opts.terse:false;if(dart.notNull(terse)){let oldPredicate=predicate;predicate=dart.as(dart.fn(frame=>{if(dart.notNull(oldPredicate(dart.as(frame,frame$.Frame))))return true;if(dart.notNull(dart.as(dart.dload(frame,'isCore'),core.bool)))return true;if(dart.equals(dart.dload(frame,'package'),'stack_trace'))return true;if(!dart.notNull(dart.as(dart.dsend(dart.dload(frame,'member'),'contains','<async>'),core.bool)))return false;return dart.dload(frame,'line')==null}),__CastType0)}let newFrames=[];for(let frame of this.frames[dartx.reversed]){if(!dart.notNull(predicate(frame))){newFrames[dartx.add](frame)}else if(dart.notNull(newFrames[dartx.isEmpty])|| !dart.notNull(predicate(dart.as(newFrames[dartx.last],frame$.Frame)))){newFrames[dartx.add](new frame$.Frame(frame.uri,frame.line,frame.column,frame.member))}}if(dart.notNull(terse)){newFrames=newFrames[dartx.map](dart.fn(frame=>{if(!dart.notNull(predicate(dart.as(frame,frame$.Frame))))return frame;let library=dart.dsend(dart.dload(frame,'library'),'replaceAll',exports._terseRegExp,'');return new frame$.Frame(core.Uri.parse(dart.as(library,core.String)),null,null,dart.as(dart.dload(frame,'member'),core.String))}))[dartx.toList]();if(dart.notNull(newFrames[dartx.length])>1&&dart.notNull(dart.as(dart.dload(newFrames[dartx.first],'isCore'),core.bool)))newFrames[dartx.removeAt](0);}return new Trace(dart.as(newFrames[dartx.reversed],core.Iterable$(frame$.Frame)))}toString(){let longest=this.frames[dartx.map](dart.fn(frame=>dart.dload(dart.dload(frame,'location'),'length')))[dartx.fold](0,math.max);return this.frames[dartx.map](dart.fn(frame=>{return `${utils.padRight(dart.as(dart.dload(frame,'location'),core.String),dart.as(longest,core.int))} ${dart.dload(frame,'member')}\n`}))[dartx.join]()}};Trace[dart.implements]=()=>[core.StackTrace];dart.defineNamedConstructor(Trace,'parseVM');dart.defineNamedConstructor(Trace,'parseV8');dart.defineNamedConstructor(Trace,'parseJSCore');dart.defineNamedConstructor(Trace,'parseIE');dart.defineNamedConstructor(Trace,'parseFirefox');dart.defineNamedConstructor(Trace,'parseSafari');dart.defineNamedConstructor(Trace,'parseSafari6_1');dart.defineNamedConstructor(Trace,'parseSafari6_0');dart.defineNamedConstructor(Trace,'parseFriendly');dart.setSignature(Trace,{constructors:()=>({current:[Trace,[],[core.int]],from:[Trace,[core.StackTrace]],parse:[Trace,[core.String]],parseFirefox:[Trace,[core.String]],parseFriendly:[Trace,[core.String]],parseIE:[Trace,[core.String]],parseJSCore:[Trace,[core.String]],parseSafari:[Trace,[core.String]],parseSafari6_0:[Trace,[core.String]],parseSafari6_1:[Trace,[core.String]],parseV8:[Trace,[core.String]],parseVM:[Trace,[core.String]],Trace:[Trace,[core.Iterable$(frame$.Frame)]]}),methods:()=>({foldFrames:[Trace,[dart.functionType(core.bool,[frame$.Frame])],{terse:core.bool}]}),names:['format','_parseVM'],statics:()=>({_parseVM:[core.List$(frame$.Frame),[core.String]],format:[core.String,[core.StackTrace],{terse:core.bool}]})});let __CastType0=dart.typedef('__CastType0',()=>dart.functionType(core.bool,[frame$.Frame]));exports.Trace=Trace});dart_library.library('stack_trace/src/utils',null,["dart_runtime/dart",'dart/core'],[],function(exports,dart,core){'use strict';let dartx=dart.dartx;function padRight(string,length){if(dart.notNull(string[dartx.length])>=dart.notNull(length))return string;let result=new core.StringBuffer();result.write(string);for(let i=0;dart.notNull(i)<dart.notNull(length)-dart.notNull(string[dartx.length]);i=dart.notNull(i)+1){result.write(' ')}return dart.toString(result)}dart.fn(padRight,core.String,[core.String,core.int]);function flatten(nested){let result=[];function helper(list){for(let element of dart.as(list,core.Iterable)){if(dart.is(element,core.List)){helper(element)}else{result[dartx.add](element)}}}dart.fn(helper);helper(nested);return result}dart.fn(flatten,core.List,[core.Iterable]);exports.padRight=padRight;exports.flatten=flatten});dart_library.library('stack_trace/src/vm_trace',null,["dart_runtime/dart",'dart/core','stack_trace/src/utils'],['stack_trace/src/frame'],function(exports,dart,core,utils,frame){'use strict';let dartx=dart.dartx;class VMTrace extends core.Object{VMTrace(frames){this.frames=frames}toString(){let i=1;return this.frames[dartx.map](dart.fn(frame=>{let number=utils.padRight(`#${(()=>{let x=i;i=dart.notNull(x)+1;return x;})()}`,8);let member=dart.dsend(dart.dsend(dart.dload(frame,'member'),'replaceAllMapped',core.RegExp.new("[^.]+\\.<async>"),dart.fn(match=>`${dart.dindex(match,1)}.<${dart.dindex(match,1)}_async_body>`,core.String,[dart.dynamic])),'replaceAll',"<fn>","<anonymous closure>");let line=dart.dload(frame,'line')==null?0:dart.dload(frame,'line');let column=dart.dload(frame,'column')==null?0:dart.dload(frame,'column');return `${number }${member } (${dart.dload(frame,'uri')}:${line }:${column })\n`}))[dartx.join]()}};VMTrace[dart.implements]=()=>[core.StackTrace];dart.setSignature(VMTrace,{constructors:()=>({VMTrace:[VMTrace,[core.List$(frame.Frame)]]})});exports.VMTrace=VMTrace});dart_library.library('stack_trace/stack_trace',null,["dart_runtime/dart"],[],function(exports,dart){'use strict';let dartx=dart.dartx});