You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2014/01/28 01:21:33 UTC

[22/58] [partial] updated to latest Angular-based admin portal

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/508ef2f7/portal/js/libs/angular-1.1.5/angular-merge.min.js
----------------------------------------------------------------------
diff --git a/portal/js/libs/angular-1.1.5/angular-merge.min.js b/portal/js/libs/angular-1.1.5/angular-merge.min.js
new file mode 100644
index 0000000..4271a83
--- /dev/null
+++ b/portal/js/libs/angular-1.1.5/angular-merge.min.js
@@ -0,0 +1,8 @@
+/*! apigee-usergrid@1.1.0 2013-11-25 */
+(function(window,document,undefined){"use strict";var lowercase=function(string){return isString(string)?string.toLowerCase():string};var uppercase=function(string){return isString(string)?string.toUpperCase():string};var manualLowercase=function(s){return isString(s)?s.replace(/[A-Z]/g,function(ch){return String.fromCharCode(ch.charCodeAt(0)|32)}):s};var manualUppercase=function(s){return isString(s)?s.replace(/[a-z]/g,function(ch){return String.fromCharCode(ch.charCodeAt(0)&~32)}):s};if("i"!=="I".toLowerCase()){lowercase=manualLowercase;uppercase=manualUppercase}var msie=int((/msie (\d+)/.exec(lowercase(navigator.userAgent))||[])[1]),jqLite,jQuery,slice=[].slice,push=[].push,toString=Object.prototype.toString,_angular=window.angular,angular=window.angular||(window.angular={}),angularModule,nodeName_,uid=["0","0","0"];function noConflict(){var a=window.angular;window.angular=_angular;return a}function isArrayLike(obj){if(!obj||typeof obj.length!=="number")return false;if(typeof obj
 .hasOwnProperty!="function"&&typeof obj.constructor!="function"){return true}else{return obj instanceof JQLite||jQuery&&obj instanceof jQuery||toString.call(obj)!=="[object Object]"||typeof obj.callee==="function"}}function forEach(obj,iterator,context){var key;if(obj){if(isFunction(obj)){for(key in obj){if(key!="prototype"&&key!="length"&&key!="name"&&obj.hasOwnProperty(key)){iterator.call(context,obj[key],key)}}}else if(obj.forEach&&obj.forEach!==forEach){obj.forEach(iterator,context)}else if(isArrayLike(obj)){for(key=0;key<obj.length;key++)iterator.call(context,obj[key],key)}else{for(key in obj){if(obj.hasOwnProperty(key)){iterator.call(context,obj[key],key)}}}}return obj}function sortedKeys(obj){var keys=[];for(var key in obj){if(obj.hasOwnProperty(key)){keys.push(key)}}return keys.sort()}function forEachSorted(obj,iterator,context){var keys=sortedKeys(obj);for(var i=0;i<keys.length;i++){iterator.call(context,obj[keys[i]],keys[i])}return keys}function reverseParams(iteratorFn){r
 eturn function(value,key){iteratorFn(key,value)}}function nextUid(){var index=uid.length;var digit;while(index){index--;digit=uid[index].charCodeAt(0);if(digit==57){uid[index]="A";return uid.join("")}if(digit==90){uid[index]="0"}else{uid[index]=String.fromCharCode(digit+1);return uid.join("")}}uid.unshift("0");return uid.join("")}function setHashKey(obj,h){if(h){obj.$$hashKey=h}else{delete obj.$$hashKey}}function extend(dst){var h=dst.$$hashKey;forEach(arguments,function(obj){if(obj!==dst){forEach(obj,function(value,key){dst[key]=value})}});setHashKey(dst,h);return dst}function int(str){return parseInt(str,10)}function inherit(parent,extra){return extend(new(extend(function(){},{prototype:parent})),extra)}var START_SPACE=/^\s*/;var END_SPACE=/\s*$/;function stripWhitespace(str){return isString(str)?str.replace(START_SPACE,"").replace(END_SPACE,""):str}function noop(){}noop.$inject=[];function identity($){return $}identity.$inject=[];function valueFn(value){return function(){return v
 alue}}function isUndefined(value){return typeof value=="undefined"}function isDefined(value){return typeof value!="undefined"}function isObject(value){return value!=null&&typeof value=="object"}function isString(value){return typeof value=="string"}function isNumber(value){return typeof value=="number"}function isDate(value){return toString.apply(value)=="[object Date]"}function isArray(value){return toString.apply(value)=="[object Array]"}function isFunction(value){return typeof value=="function"}function isWindow(obj){return obj&&obj.document&&obj.location&&obj.alert&&obj.setInterval}function isScope(obj){return obj&&obj.$evalAsync&&obj.$watch}function isFile(obj){return toString.apply(obj)==="[object File]"}function isBoolean(value){return typeof value=="boolean"}function trim(value){return isString(value)?value.replace(/^\s*/,"").replace(/\s*$/,""):value}function isElement(node){return node&&(node.nodeName||node.bind&&node.find)}function makeMap(str){var obj={},items=str.split("
 ,"),i;for(i=0;i<items.length;i++)obj[items[i]]=true;return obj}if(msie<9){nodeName_=function(element){element=element.nodeName?element:element[0];return element.scopeName&&element.scopeName!="HTML"?uppercase(element.scopeName+":"+element.nodeName):element.nodeName}}else{nodeName_=function(element){return element.nodeName?element.nodeName:element[0].nodeName}}function map(obj,iterator,context){var results=[];forEach(obj,function(value,index,list){results.push(iterator.call(context,value,index,list))});return results}function size(obj,ownPropsOnly){var size=0,key;if(isArray(obj)||isString(obj)){return obj.length}else if(isObject(obj)){for(key in obj)if(!ownPropsOnly||obj.hasOwnProperty(key))size++}return size}function includes(array,obj){return indexOf(array,obj)!=-1}function indexOf(array,obj){if(array.indexOf)return array.indexOf(obj);for(var i=0;i<array.length;i++){if(obj===array[i])return i}return-1}function arrayRemove(array,value){var index=indexOf(array,value);if(index>=0)array
 .splice(index,1);return value}function isLeafNode(node){if(node){switch(node.nodeName){case"OPTION":case"PRE":case"TITLE":return true}}return false}function copy(source,destination){if(isWindow(source)||isScope(source))throw Error("Can't copy Window or Scope");if(!destination){destination=source;if(source){if(isArray(source)){destination=copy(source,[])}else if(isDate(source)){destination=new Date(source.getTime())}else if(isObject(source)){destination=copy(source,{})}}}else{if(source===destination)throw Error("Can't copy equivalent objects or arrays");if(isArray(source)){destination.length=0;for(var i=0;i<source.length;i++){destination.push(copy(source[i]))}}else{var h=destination.$$hashKey;forEach(destination,function(value,key){delete destination[key]});for(var key in source){destination[key]=copy(source[key])}setHashKey(destination,h)}}return destination}function shallowCopy(src,dst){dst=dst||{};for(var key in src){if(src.hasOwnProperty(key)&&key.substr(0,2)!=="$$"){dst[key]=src
 [key]}}return dst}function equals(o1,o2){if(o1===o2)return true;if(o1===null||o2===null)return false;if(o1!==o1&&o2!==o2)return true;var t1=typeof o1,t2=typeof o2,length,key,keySet;if(t1==t2){if(t1=="object"){if(isArray(o1)){if((length=o1.length)==o2.length){for(key=0;key<length;key++){if(!equals(o1[key],o2[key]))return false}return true}}else if(isDate(o1)){return isDate(o2)&&o1.getTime()==o2.getTime()}else{if(isScope(o1)||isScope(o2)||isWindow(o1)||isWindow(o2))return false;keySet={};for(key in o1){if(key.charAt(0)==="$"||isFunction(o1[key]))continue;if(!equals(o1[key],o2[key]))return false;keySet[key]=true}for(key in o2){if(!keySet[key]&&key.charAt(0)!=="$"&&o2[key]!==undefined&&!isFunction(o2[key]))return false}return true}}}return false}function concat(array1,array2,index){return array1.concat(slice.call(array2,index))}function sliceArgs(args,startIndex){return slice.call(args,startIndex||0)}function bind(self,fn){var curryArgs=arguments.length>2?sliceArgs(arguments,2):[];if(is
 Function(fn)&&!(fn instanceof RegExp)){return curryArgs.length?function(){return arguments.length?fn.apply(self,curryArgs.concat(slice.call(arguments,0))):fn.apply(self,curryArgs)}:function(){return arguments.length?fn.apply(self,arguments):fn.call(self)}}else{return fn}}function toJsonReplacer(key,value){var val=value;if(/^\$+/.test(key)){val=undefined}else if(isWindow(value)){val="$WINDOW"}else if(value&&document===value){val="$DOCUMENT"}else if(isScope(value)){val="$SCOPE"}return val}function toJson(obj,pretty){return JSON.stringify(obj,toJsonReplacer,pretty?"  ":null)}function fromJson(json){return isString(json)?JSON.parse(json):json}function toBoolean(value){if(value&&value.length!==0){var v=lowercase(""+value);value=!(v=="f"||v=="0"||v=="false"||v=="no"||v=="n"||v=="[]")}else{value=false}return value}function startingTag(element){element=jqLite(element).clone();try{element.html("")}catch(e){}var TEXT_NODE=3;var elemHtml=jqLite("<div>").append(element).html();try{return elemen
 t[0].nodeType===TEXT_NODE?lowercase(elemHtml):elemHtml.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(match,nodeName){return"<"+lowercase(nodeName)})}catch(e){return lowercase(elemHtml)}}function parseKeyValue(keyValue){var obj={},key_value,key;forEach((keyValue||"").split("&"),function(keyValue){if(keyValue){key_value=keyValue.split("=");key=decodeURIComponent(key_value[0]);obj[key]=isDefined(key_value[1])?decodeURIComponent(key_value[1]):true}});return obj}function toKeyValue(obj){var parts=[];forEach(obj,function(value,key){parts.push(encodeUriQuery(key,true)+(value===true?"":"="+encodeUriQuery(value,true)))});return parts.length?parts.join("&"):""}function encodeUriSegment(val){return encodeUriQuery(val,true).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function encodeUriQuery(val,pctEncodeSpaces){return encodeURIComponent(val).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,pctEncodeSpaces?"%20":"+")}fun
 ction angularInit(element,bootstrap){var elements=[element],appElement,module,names=["ng:app","ng-app","x-ng-app","data-ng-app"],NG_APP_CLASS_REGEXP=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;function append(element){element&&elements.push(element)}forEach(names,function(name){names[name]=true;append(document.getElementById(name));name=name.replace(":","\\:");if(element.querySelectorAll){forEach(element.querySelectorAll("."+name),append);forEach(element.querySelectorAll("."+name+"\\:"),append);forEach(element.querySelectorAll("["+name+"]"),append)}});forEach(elements,function(element){if(!appElement){var className=" "+element.className+" ";var match=NG_APP_CLASS_REGEXP.exec(className);if(match){appElement=element;module=(match[2]||"").replace(/\s+/g,",")}else{forEach(element.attributes,function(attr){if(!appElement&&names[attr.name]){appElement=element;module=attr.value}})}}});if(appElement){bootstrap(appElement,module?[module]:[])}}function bootstrap(element,modules){var resumeBootstrapIn
 ternal=function(){element=jqLite(element);modules=modules||[];modules.unshift(["$provide",function($provide){$provide.value("$rootElement",element)}]);modules.unshift("ng");var injector=createInjector(modules);injector.invoke(["$rootScope","$rootElement","$compile","$injector","$animator",function(scope,element,compile,injector,animator){scope.$apply(function(){element.data("$injector",injector);compile(element)(scope)});animator.enabled(true)}]);return injector};var NG_DEFER_BOOTSTRAP=/^NG_DEFER_BOOTSTRAP!/;if(window&&!NG_DEFER_BOOTSTRAP.test(window.name)){return resumeBootstrapInternal()}window.name=window.name.replace(NG_DEFER_BOOTSTRAP,"");angular.resumeBootstrap=function(extraModules){forEach(extraModules,function(module){modules.push(module)});resumeBootstrapInternal()}}var SNAKE_CASE_REGEXP=/[A-Z]/g;function snake_case(name,separator){separator=separator||"_";return name.replace(SNAKE_CASE_REGEXP,function(letter,pos){return(pos?separator:"")+letter.toLowerCase()})}function bi
 ndJQuery(){jQuery=window.jQuery;if(jQuery){jqLite=jQuery;extend(jQuery.fn,{scope:JQLitePrototype.scope,controller:JQLitePrototype.controller,injector:JQLitePrototype.injector,inheritedData:JQLitePrototype.inheritedData});JQLitePatchJQueryRemove("remove",true);JQLitePatchJQueryRemove("empty");JQLitePatchJQueryRemove("html")}else{jqLite=JQLite}angular.element=jqLite}function assertArg(arg,name,reason){if(!arg){throw new Error("Argument '"+(name||"?")+"' is "+(reason||"required"))}return arg}function assertArgFn(arg,name,acceptArrayAnnotation){if(acceptArrayAnnotation&&isArray(arg)){arg=arg[arg.length-1]}assertArg(isFunction(arg),name,"not a function, got "+(arg&&typeof arg=="object"?arg.constructor.name||"Object":typeof arg));return arg}function setupModuleLoader(window){function ensure(obj,name,factory){return obj[name]||(obj[name]=factory())}return ensure(ensure(window,"angular",Object),"module",function(){var modules={};return function module(name,requires,configFn){if(requires&&mo
 dules.hasOwnProperty(name)){modules[name]=null}return ensure(modules,name,function(){if(!requires){throw Error("No module: "+name)}var invokeQueue=[];var runBlocks=[];var config=invokeLater("$injector","invoke");var moduleInstance={_invokeQueue:invokeQueue,_runBlocks:runBlocks,requires:requires,name:name,provider:invokeLater("$provide","provider"),factory:invokeLater("$provide","factory"),service:invokeLater("$provide","service"),value:invokeLater("$provide","value"),constant:invokeLater("$provide","constant","unshift"),animation:invokeLater("$animationProvider","register"),filter:invokeLater("$filterProvider","register"),controller:invokeLater("$controllerProvider","register"),directive:invokeLater("$compileProvider","directive"),config:config,run:function(block){runBlocks.push(block);return this}};if(configFn){config(configFn)}return moduleInstance;function invokeLater(provider,method,insertMethod){return function(){invokeQueue[insertMethod||"push"]([provider,method,arguments]);re
 turn moduleInstance}}})}})}var version={full:"1.1.5",major:1,minor:1,dot:5,codeName:"triangle-squarification"};function publishExternalAPI(angular){extend(angular,{bootstrap:bootstrap,copy:copy,extend:extend,equals:equals,element:jqLite,forEach:forEach,injector:createInjector,noop:noop,bind:bind,toJson:toJson,fromJson:fromJson,identity:identity,isUndefined:isUndefined,isDefined:isDefined,isString:isString,isFunction:isFunction,isObject:isObject,isNumber:isNumber,isElement:isElement,isArray:isArray,version:version,isDate:isDate,lowercase:lowercase,uppercase:uppercase,callbacks:{counter:0},noConflict:noConflict});angularModule=setupModuleLoader(window);try{angularModule("ngLocale")}catch(e){angularModule("ngLocale",[]).provider("$locale",$LocaleProvider)}angularModule("ng",["ngLocale"],["$provide",function ngModule($provide){$provide.provider("$compile",$CompileProvider).directive({a:htmlAnchorDirective,input:inputDirective,textarea:inputDirective,form:formDirective,script:scriptDirec
 tive,select:selectDirective,style:styleDirective,option:optionDirective,ngBind:ngBindDirective,ngBindHtmlUnsafe:ngBindHtmlUnsafeDirective,ngBindTemplate:ngBindTemplateDirective,ngClass:ngClassDirective,ngClassEven:ngClassEvenDirective,ngClassOdd:ngClassOddDirective,ngCsp:ngCspDirective,ngCloak:ngCloakDirective,ngController:ngControllerDirective,ngForm:ngFormDirective,ngHide:ngHideDirective,ngIf:ngIfDirective,ngInclude:ngIncludeDirective,ngInit:ngInitDirective,ngNonBindable:ngNonBindableDirective,ngPluralize:ngPluralizeDirective,ngRepeat:ngRepeatDirective,ngShow:ngShowDirective,ngSubmit:ngSubmitDirective,ngStyle:ngStyleDirective,ngSwitch:ngSwitchDirective,ngSwitchWhen:ngSwitchWhenDirective,ngSwitchDefault:ngSwitchDefaultDirective,ngOptions:ngOptionsDirective,ngView:ngViewDirective,ngTransclude:ngTranscludeDirective,ngModel:ngModelDirective,ngList:ngListDirective,ngChange:ngChangeDirective,required:requiredDirective,ngRequired:requiredDirective,ngValue:ngValueDirective}).directive(ngA
 ttributeAliasDirectives).directive(ngEventDirectives);$provide.provider({$anchorScroll:$AnchorScrollProvider,$animation:$AnimationProvider,$animator:$AnimatorProvider,$browser:$BrowserProvider,$cacheFactory:$CacheFactoryProvider,$controller:$ControllerProvider,$document:$DocumentProvider,$exceptionHandler:$ExceptionHandlerProvider,$filter:$FilterProvider,$interpolate:$InterpolateProvider,$http:$HttpProvider,$httpBackend:$HttpBackendProvider,$location:$LocationProvider,$log:$LogProvider,$parse:$ParseProvider,$route:$RouteProvider,$routeParams:$RouteParamsProvider,$rootScope:$RootScopeProvider,$q:$QProvider,$sniffer:$SnifferProvider,$templateCache:$TemplateCacheProvider,$timeout:$TimeoutProvider,$window:$WindowProvider})}])}var jqCache=JQLite.cache={},jqName=JQLite.expando="ng-"+(new Date).getTime(),jqId=1,addEventListenerFn=window.document.addEventListener?function(element,type,fn){element.addEventListener(type,fn,false)}:function(element,type,fn){element.attachEvent("on"+type,fn)},r
 emoveEventListenerFn=window.document.removeEventListener?function(element,type,fn){element.removeEventListener(type,fn,false)}:function(element,type,fn){element.detachEvent("on"+type,fn)};function jqNextId(){return++jqId}var SPECIAL_CHARS_REGEXP=/([\:\-\_]+(.))/g;var MOZ_HACK_REGEXP=/^moz([A-Z])/;function camelCase(name){return name.replace(SPECIAL_CHARS_REGEXP,function(_,separator,letter,offset){return offset?letter.toUpperCase():letter}).replace(MOZ_HACK_REGEXP,"Moz$1")}function JQLitePatchJQueryRemove(name,dispatchThis){var originalJqFn=jQuery.fn[name];originalJqFn=originalJqFn.$original||originalJqFn;removePatch.$original=originalJqFn;jQuery.fn[name]=removePatch;function removePatch(){var list=[this],fireEvent=dispatchThis,set,setIndex,setLength,element,childIndex,childLength,children,fns,events;while(list.length){set=list.shift();for(setIndex=0,setLength=set.length;setIndex<setLength;setIndex++){element=jqLite(set[setIndex]);if(fireEvent){element.triggerHandler("$destroy")}else
 {fireEvent=!fireEvent}for(childIndex=0,childLength=(children=element.children()).length;childIndex<childLength;childIndex++){list.push(jQuery(children[childIndex]))}}}return originalJqFn.apply(this,arguments)}}function JQLite(element){if(element instanceof JQLite){return element}if(!(this instanceof JQLite)){if(isString(element)&&element.charAt(0)!="<"){throw Error("selectors not implemented")}return new JQLite(element)}if(isString(element)){var div=document.createElement("div");div.innerHTML="<div>&#160;</div>"+element;div.removeChild(div.firstChild);JQLiteAddNodes(this,div.childNodes);this.remove()}else{JQLiteAddNodes(this,element)}}function JQLiteClone(element){return element.cloneNode(true)}function JQLiteDealoc(element){JQLiteRemoveData(element);for(var i=0,children=element.childNodes||[];i<children.length;i++){JQLiteDealoc(children[i])}}function JQLiteUnbind(element,type,fn){var events=JQLiteExpandoStore(element,"events"),handle=JQLiteExpandoStore(element,"handle");if(!handle)
 return;if(isUndefined(type)){forEach(events,function(eventHandler,type){removeEventListenerFn(element,type,eventHandler);delete events[type]})}else{if(isUndefined(fn)){removeEventListenerFn(element,type,events[type]);delete events[type]}else{arrayRemove(events[type],fn)}}}function JQLiteRemoveData(element){var expandoId=element[jqName],expandoStore=jqCache[expandoId];if(expandoStore){if(expandoStore.handle){expandoStore.events.$destroy&&expandoStore.handle({},"$destroy");JQLiteUnbind(element)}delete jqCache[expandoId];element[jqName]=undefined}}function JQLiteExpandoStore(element,key,value){var expandoId=element[jqName],expandoStore=jqCache[expandoId||-1];if(isDefined(value)){if(!expandoStore){element[jqName]=expandoId=jqNextId();expandoStore=jqCache[expandoId]={}}expandoStore[key]=value}else{return expandoStore&&expandoStore[key]}}function JQLiteData(element,key,value){var data=JQLiteExpandoStore(element,"data"),isSetter=isDefined(value),keyDefined=!isSetter&&isDefined(key),isSimpl
 eGetter=keyDefined&&!isObject(key);if(!data&&!isSimpleGetter){JQLiteExpandoStore(element,"data",data={})}if(isSetter){data[key]=value}else{if(keyDefined){if(isSimpleGetter){return data&&data[key]}else{extend(data,key)}}else{return data}}}function JQLiteHasClass(element,selector){return(" "+element.className+" ").replace(/[\n\t]/g," ").indexOf(" "+selector+" ")>-1}function JQLiteRemoveClass(element,cssClasses){if(cssClasses){forEach(cssClasses.split(" "),function(cssClass){element.className=trim((" "+element.className+" ").replace(/[\n\t]/g," ").replace(" "+trim(cssClass)+" "," "))})}}function JQLiteAddClass(element,cssClasses){if(cssClasses){forEach(cssClasses.split(" "),function(cssClass){if(!JQLiteHasClass(element,cssClass)){element.className=trim(element.className+" "+trim(cssClass))}})}}function JQLiteAddNodes(root,elements){if(elements){elements=!elements.nodeName&&isDefined(elements.length)&&!isWindow(elements)?elements:[elements];for(var i=0;i<elements.length;i++){root.push(e
 lements[i])}}}function JQLiteController(element,name){return JQLiteInheritedData(element,"$"+(name||"ngController")+"Controller")}function JQLiteInheritedData(element,name,value){element=jqLite(element);if(element[0].nodeType==9){element=element.find("html")}while(element.length){if(value=element.data(name))return value;element=element.parent()}}var JQLitePrototype=JQLite.prototype={ready:function(fn){var fired=false;function trigger(){if(fired)return;fired=true;fn()}if(document.readyState==="complete"){setTimeout(trigger)}else{this.bind("DOMContentLoaded",trigger);JQLite(window).bind("load",trigger)}},toString:function(){var value=[];forEach(this,function(e){value.push(""+e)});return"["+value.join(", ")+"]"},eq:function(index){return index>=0?jqLite(this[index]):jqLite(this[this.length+index])},length:0,push:push,sort:[].sort,splice:[].splice};var BOOLEAN_ATTR={};forEach("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(value){BOOLEAN_ATTR[lowercase(va
 lue)]=value});var BOOLEAN_ELEMENTS={};forEach("input,select,option,textarea,button,form,details".split(","),function(value){BOOLEAN_ELEMENTS[uppercase(value)]=true});function getBooleanAttrName(element,name){var booleanAttr=BOOLEAN_ATTR[name.toLowerCase()];return booleanAttr&&BOOLEAN_ELEMENTS[element.nodeName]&&booleanAttr}forEach({data:JQLiteData,inheritedData:JQLiteInheritedData,scope:function(element){return JQLiteInheritedData(element,"$scope")},controller:JQLiteController,injector:function(element){return JQLiteInheritedData(element,"$injector")},removeAttr:function(element,name){element.removeAttribute(name)},hasClass:JQLiteHasClass,css:function(element,name,value){name=camelCase(name);if(isDefined(value)){element.style[name]=value}else{var val;if(msie<=8){val=element.currentStyle&&element.currentStyle[name];if(val==="")val="auto"}val=val||element.style[name];if(msie<=8){val=val===""?undefined:val}return val}},attr:function(element,name,value){var lowercasedName=lowercase(name
 );if(BOOLEAN_ATTR[lowercasedName]){if(isDefined(value)){if(!!value){element[name]=true;element.setAttribute(name,lowercasedName)}else{element[name]=false;element.removeAttribute(lowercasedName)}}else{return element[name]||(element.attributes.getNamedItem(name)||noop).specified?lowercasedName:undefined}}else if(isDefined(value)){element.setAttribute(name,value)}else if(element.getAttribute){var ret=element.getAttribute(name,2);return ret===null?undefined:ret}},prop:function(element,name,value){if(isDefined(value)){element[name]=value}else{return element[name]}},text:extend(msie<9?function(element,value){if(element.nodeType==1){if(isUndefined(value))return element.innerText;element.innerText=value}else{if(isUndefined(value))return element.nodeValue;element.nodeValue=value}}:function(element,value){if(isUndefined(value)){return element.textContent}element.textContent=value},{$dv:""}),val:function(element,value){if(isUndefined(value)){return element.value}element.value=value},html:funct
 ion(element,value){if(isUndefined(value)){return element.innerHTML}for(var i=0,childNodes=element.childNodes;i<childNodes.length;i++){JQLiteDealoc(childNodes[i])}element.innerHTML=value}},function(fn,name){JQLite.prototype[name]=function(arg1,arg2){var i,key;if((fn.length==2&&(fn!==JQLiteHasClass&&fn!==JQLiteController)?arg1:arg2)===undefined){if(isObject(arg1)){for(i=0;i<this.length;i++){if(fn===JQLiteData){fn(this[i],arg1)}else{for(key in arg1){fn(this[i],key,arg1[key])}}}return this}else{if(this.length)return fn(this[0],arg1,arg2)}}else{for(i=0;i<this.length;i++){fn(this[i],arg1,arg2)}return this}return fn.$dv}});function createEventHandler(element,events){var eventHandler=function(event,type){if(!event.preventDefault){event.preventDefault=function(){event.returnValue=false}}if(!event.stopPropagation){event.stopPropagation=function(){event.cancelBubble=true}}if(!event.target){event.target=event.srcElement||document}if(isUndefined(event.defaultPrevented)){var prevent=event.prevent
 Default;event.preventDefault=function(){event.defaultPrevented=true;prevent.call(event)};event.defaultPrevented=false}event.isDefaultPrevented=function(){return event.defaultPrevented||event.returnValue==false};forEach(events[type||event.type],function(fn){fn.call(element,event)});if(msie<=8){event.preventDefault=null;event.stopPropagation=null;event.isDefaultPrevented=null}else{delete event.preventDefault;delete event.stopPropagation;delete event.isDefaultPrevented}};eventHandler.elem=element;return eventHandler}forEach({removeData:JQLiteRemoveData,dealoc:JQLiteDealoc,bind:function bindFn(element,type,fn){var events=JQLiteExpandoStore(element,"events"),handle=JQLiteExpandoStore(element,"handle");if(!events)JQLiteExpandoStore(element,"events",events={});if(!handle)JQLiteExpandoStore(element,"handle",handle=createEventHandler(element,events));forEach(type.split(" "),function(type){var eventFns=events[type];if(!eventFns){if(type=="mouseenter"||type=="mouseleave"){var contains=document
 .body.contains||document.body.compareDocumentPosition?function(a,b){var adown=a.nodeType===9?a.documentElement:a,bup=b&&b.parentNode;return a===bup||!!(bup&&bup.nodeType===1&&(adown.contains?adown.contains(bup):a.compareDocumentPosition&&a.compareDocumentPosition(bup)&16))}:function(a,b){if(b){while(b=b.parentNode){if(b===a){return true}}}return false};events[type]=[];var eventmap={mouseleave:"mouseout",mouseenter:"mouseover"};bindFn(element,eventmap[type],function(event){var ret,target=this,related=event.relatedTarget;if(!related||related!==target&&!contains(target,related)){handle(event,type)}})}else{addEventListenerFn(element,type,handle);events[type]=[]}eventFns=events[type]}eventFns.push(fn)})},unbind:JQLiteUnbind,replaceWith:function(element,replaceNode){var index,parent=element.parentNode;JQLiteDealoc(element);forEach(new JQLite(replaceNode),function(node){if(index){parent.insertBefore(node,index.nextSibling)}else{parent.replaceChild(node,element)}index=node})},children:funct
 ion(element){var children=[];forEach(element.childNodes,function(element){if(element.nodeType===1)children.push(element)});return children},contents:function(element){return element.childNodes||[]},append:function(element,node){forEach(new JQLite(node),function(child){if(element.nodeType===1||element.nodeType===11){element.appendChild(child)}})},prepend:function(element,node){if(element.nodeType===1){var index=element.firstChild;forEach(new JQLite(node),function(child){if(index){element.insertBefore(child,index)}else{element.appendChild(child);index=child}})}},wrap:function(element,wrapNode){wrapNode=jqLite(wrapNode)[0];var parent=element.parentNode;if(parent){parent.replaceChild(wrapNode,element)}wrapNode.appendChild(element)},remove:function(element){JQLiteDealoc(element);var parent=element.parentNode;if(parent)parent.removeChild(element)},after:function(element,newElement){var index=element,parent=element.parentNode;forEach(new JQLite(newElement),function(node){parent.insertBefor
 e(node,index.nextSibling);index=node})},addClass:JQLiteAddClass,removeClass:JQLiteRemoveClass,toggleClass:function(element,selector,condition){if(isUndefined(condition)){condition=!JQLiteHasClass(element,selector)}(condition?JQLiteAddClass:JQLiteRemoveClass)(element,selector)},parent:function(element){var parent=element.parentNode;return parent&&parent.nodeType!==11?parent:null},next:function(element){if(element.nextElementSibling){return element.nextElementSibling}var elm=element.nextSibling;while(elm!=null&&elm.nodeType!==1){elm=elm.nextSibling}return elm},find:function(element,selector){return element.getElementsByTagName(selector)},clone:JQLiteClone,triggerHandler:function(element,eventName){var eventFns=(JQLiteExpandoStore(element,"events")||{})[eventName];var event;forEach(eventFns,function(fn){fn.call(element,{preventDefault:noop})})}},function(fn,name){JQLite.prototype[name]=function(arg1,arg2){var value;for(var i=0;i<this.length;i++){if(value==undefined){value=fn(this[i],ar
 g1,arg2);if(value!==undefined){value=jqLite(value)}}else{JQLiteAddNodes(value,fn(this[i],arg1,arg2))}}return value==undefined?this:value}});function hashKey(obj){var objType=typeof obj,key;if(objType=="object"&&obj!==null){if(typeof(key=obj.$$hashKey)=="function"){key=obj.$$hashKey()}else if(key===undefined){key=obj.$$hashKey=nextUid()}}else{key=obj}return objType+":"+key}function HashMap(array){forEach(array,this.put,this)}HashMap.prototype={put:function(key,value){this[hashKey(key)]=value},get:function(key){return this[hashKey(key)]},remove:function(key){var value=this[key=hashKey(key)];delete this[key];return value}};var FN_ARGS=/^function\s*[^\(]*\(\s*([^\)]*)\)/m;var FN_ARG_SPLIT=/,/;var FN_ARG=/^\s*(_?)(\S+?)\1\s*$/;var STRIP_COMMENTS=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm;function annotate(fn){var $inject,fnText,argDecl,last;if(typeof fn=="function"){if(!($inject=fn.$inject)){$inject=[];fnText=fn.toString().replace(STRIP_COMMENTS,"");argDecl=fnText.match(FN_ARGS);forEach(argDecl[
 1].split(FN_ARG_SPLIT),function(arg){arg.replace(FN_ARG,function(all,underscore,name){$inject.push(name)})});fn.$inject=$inject}}else if(isArray(fn)){last=fn.length-1;assertArgFn(fn[last],"fn");$inject=fn.slice(0,last)}else{assertArgFn(fn,"fn",true)}return $inject}function createInjector(modulesToLoad){var INSTANTIATING={},providerSuffix="Provider",path=[],loadedModules=new HashMap,providerCache={$provide:{provider:supportObject(provider),factory:supportObject(factory),service:supportObject(service),value:supportObject(value),constant:supportObject(constant),decorator:decorator}},providerInjector=providerCache.$injector=createInternalInjector(providerCache,function(){throw Error("Unknown provider: "+path.join(" <- "))}),instanceCache={},instanceInjector=instanceCache.$injector=createInternalInjector(instanceCache,function(servicename){var provider=providerInjector.get(servicename+providerSuffix);return instanceInjector.invoke(provider.$get,provider)});forEach(loadModules(modulesToLo
 ad),function(fn){instanceInjector.invoke(fn||noop)});return instanceInjector;function supportObject(delegate){return function(key,value){if(isObject(key)){forEach(key,reverseParams(delegate))}else{return delegate(key,value)}}}function provider(name,provider_){if(isFunction(provider_)||isArray(provider_)){provider_=providerInjector.instantiate(provider_)}if(!provider_.$get){throw Error("Provider "+name+" must define $get factory method.")}return providerCache[name+providerSuffix]=provider_}function factory(name,factoryFn){return provider(name,{$get:factoryFn})}function service(name,constructor){return factory(name,["$injector",function($injector){return $injector.instantiate(constructor)}])}function value(name,value){return factory(name,valueFn(value))}function constant(name,value){providerCache[name]=value;instanceCache[name]=value}function decorator(serviceName,decorFn){var origProvider=providerInjector.get(serviceName+providerSuffix),orig$get=origProvider.$get;origProvider.$get=fu
 nction(){var origInstance=instanceInjector.invoke(orig$get,origProvider);return instanceInjector.invoke(decorFn,null,{$delegate:origInstance})}}function loadModules(modulesToLoad){var runBlocks=[];forEach(modulesToLoad,function(module){if(loadedModules.get(module))return;loadedModules.put(module,true);if(isString(module)){var moduleFn=angularModule(module);runBlocks=runBlocks.concat(loadModules(moduleFn.requires)).concat(moduleFn._runBlocks);try{for(var invokeQueue=moduleFn._invokeQueue,i=0,ii=invokeQueue.length;i<ii;i++){var invokeArgs=invokeQueue[i],provider=providerInjector.get(invokeArgs[0]);provider[invokeArgs[1]].apply(provider,invokeArgs[2])}}catch(e){if(e.message)e.message+=" from "+module;throw e}}else if(isFunction(module)){try{runBlocks.push(providerInjector.invoke(module))}catch(e){if(e.message)e.message+=" from "+module;throw e}}else if(isArray(module)){try{runBlocks.push(providerInjector.invoke(module))}catch(e){if(e.message)e.message+=" from "+String(module[module.len
 gth-1]);throw e}}else{assertArgFn(module,"module")}});return runBlocks}function createInternalInjector(cache,factory){function getService(serviceName){if(typeof serviceName!=="string"){throw Error("Service name expected")
+}if(cache.hasOwnProperty(serviceName)){if(cache[serviceName]===INSTANTIATING){throw Error("Circular dependency: "+path.join(" <- "))}return cache[serviceName]}else{try{path.unshift(serviceName);cache[serviceName]=INSTANTIATING;return cache[serviceName]=factory(serviceName)}finally{path.shift()}}}function invoke(fn,self,locals){var args=[],$inject=annotate(fn),length,i,key;for(i=0,length=$inject.length;i<length;i++){key=$inject[i];args.push(locals&&locals.hasOwnProperty(key)?locals[key]:getService(key))}if(!fn.$inject){fn=fn[length]}switch(self?-1:args.length){case 0:return fn();case 1:return fn(args[0]);case 2:return fn(args[0],args[1]);case 3:return fn(args[0],args[1],args[2]);case 4:return fn(args[0],args[1],args[2],args[3]);case 5:return fn(args[0],args[1],args[2],args[3],args[4]);case 6:return fn(args[0],args[1],args[2],args[3],args[4],args[5]);case 7:return fn(args[0],args[1],args[2],args[3],args[4],args[5],args[6]);case 8:return fn(args[0],args[1],args[2],args[3],args[4],args[
 5],args[6],args[7]);case 9:return fn(args[0],args[1],args[2],args[3],args[4],args[5],args[6],args[7],args[8]);case 10:return fn(args[0],args[1],args[2],args[3],args[4],args[5],args[6],args[7],args[8],args[9]);default:return fn.apply(self,args)}}function instantiate(Type,locals){var Constructor=function(){},instance,returnedValue;Constructor.prototype=(isArray(Type)?Type[Type.length-1]:Type).prototype;instance=new Constructor;returnedValue=invoke(Type,instance,locals);return isObject(returnedValue)?returnedValue:instance}return{invoke:invoke,instantiate:instantiate,get:getService,annotate:annotate,has:function(name){return providerCache.hasOwnProperty(name+providerSuffix)||cache.hasOwnProperty(name)}}}}function $AnchorScrollProvider(){var autoScrollingEnabled=true;this.disableAutoScrolling=function(){autoScrollingEnabled=false};this.$get=["$window","$location","$rootScope",function($window,$location,$rootScope){var document=$window.document;function getFirstAnchor(list){var result=nu
 ll;forEach(list,function(element){if(!result&&lowercase(element.nodeName)==="a")result=element});return result}function scroll(){var hash=$location.hash(),elm;if(!hash)$window.scrollTo(0,0);else if(elm=document.getElementById(hash))elm.scrollIntoView();else if(elm=getFirstAnchor(document.getElementsByName(hash)))elm.scrollIntoView();else if(hash==="top")$window.scrollTo(0,0)}if(autoScrollingEnabled){$rootScope.$watch(function autoScrollWatch(){return $location.hash()},function autoScrollWatchAction(){$rootScope.$evalAsync(scroll)})}return scroll}]}$AnimationProvider.$inject=["$provide"];function $AnimationProvider($provide){var suffix="Animation";this.register=function(name,factory){$provide.factory(camelCase(name)+suffix,factory)};this.$get=["$injector",function($injector){return function $animation(name){if(name){var animationName=camelCase(name)+suffix;if($injector.has(animationName)){return $injector.get(animationName)}}}}]}var $AnimatorProvider=function(){var NG_ANIMATE_CONTROL
 LER="$ngAnimateController";var rootAnimateController={running:true};this.$get=["$animation","$window","$sniffer","$rootElement","$rootScope",function($animation,$window,$sniffer,$rootElement,$rootScope){$rootElement.data(NG_ANIMATE_CONTROLLER,rootAnimateController);var AnimatorService=function(scope,attrs){var animator={};animator.enter=animateActionFactory("enter",insert,noop);animator.leave=animateActionFactory("leave",noop,remove);animator.move=animateActionFactory("move",move,noop);animator.show=animateActionFactory("show",show,noop);animator.hide=animateActionFactory("hide",noop,hide);animator.animate=function(event,element){animateActionFactory(event,noop,noop)(element)};return animator;function animateActionFactory(type,beforeFn,afterFn){return function(element,parent,after){var ngAnimateValue=scope.$eval(attrs.ngAnimate);var className=ngAnimateValue?isObject(ngAnimateValue)?ngAnimateValue[type]:ngAnimateValue+"-"+type:"";var animationPolyfill=$animation(className);var polyfi
 llSetup=animationPolyfill&&animationPolyfill.setup;var polyfillStart=animationPolyfill&&animationPolyfill.start;var polyfillCancel=animationPolyfill&&animationPolyfill.cancel;if(!className){beforeFn(element,parent,after);afterFn(element,parent,after)}else{var activeClassName=className+"-active";if(!parent){parent=after?after.parent():element.parent()}if(!$sniffer.transitions&&!polyfillSetup&&!polyfillStart||(parent.inheritedData(NG_ANIMATE_CONTROLLER)||noop).running){beforeFn(element,parent,after);afterFn(element,parent,after);return}var animationData=element.data(NG_ANIMATE_CONTROLLER)||{};if(animationData.running){(polyfillCancel||noop)(element);animationData.done()}element.data(NG_ANIMATE_CONTROLLER,{running:true,done:done});element.addClass(className);beforeFn(element,parent,after);if(element.length==0)return done();var memento=(polyfillSetup||noop)(element);$window.setTimeout(beginAnimation,1)}function parseMaxTime(str){var total=0,values=isString(str)?str.split(/\s*,\s*/):[];f
 orEach(values,function(value){total=Math.max(parseFloat(value)||0,total)});return total}function beginAnimation(){element.addClass(activeClassName);if(polyfillStart){polyfillStart(element,done,memento)}else if(isFunction($window.getComputedStyle)){var w3cAnimationProp="animation";var w3cTransitionProp="transition";var vendorAnimationProp=$sniffer.vendorPrefix+"Animation";var vendorTransitionProp=$sniffer.vendorPrefix+"Transition";var durationKey="Duration",delayKey="Delay",animationIterationCountKey="IterationCount",duration=0;var ELEMENT_NODE=1;forEach(element,function(element){if(element.nodeType==ELEMENT_NODE){var w3cProp=w3cTransitionProp,vendorProp=vendorTransitionProp,iterations=1,elementStyles=$window.getComputedStyle(element)||{};if(parseFloat(elementStyles[w3cAnimationProp+durationKey])>0||parseFloat(elementStyles[vendorAnimationProp+durationKey])>0){w3cProp=w3cAnimationProp;vendorProp=vendorAnimationProp;iterations=Math.max(parseInt(elementStyles[w3cProp+animationIteration
 CountKey])||0,parseInt(elementStyles[vendorProp+animationIterationCountKey])||0,iterations)}var parsedDelay=Math.max(parseMaxTime(elementStyles[w3cProp+delayKey]),parseMaxTime(elementStyles[vendorProp+delayKey]));var parsedDuration=Math.max(parseMaxTime(elementStyles[w3cProp+durationKey]),parseMaxTime(elementStyles[vendorProp+durationKey]));duration=Math.max(parsedDelay+iterations*parsedDuration,duration)}});$window.setTimeout(done,duration*1e3)}else{done()}}function done(){if(!done.run){done.run=true;afterFn(element,parent,after);element.removeClass(className);element.removeClass(activeClassName);element.removeData(NG_ANIMATE_CONTROLLER)}}}}function show(element){element.css("display","")}function hide(element){element.css("display","none")}function insert(element,parent,after){if(after){after.after(element)}else{parent.append(element)}}function remove(element){element.remove()}function move(element,parent,after){insert(element,parent,after)}};AnimatorService.enabled=function(value
 ){if(arguments.length){rootAnimateController.running=!value}return!rootAnimateController.running};return AnimatorService}]};function Browser(window,document,$log,$sniffer){var self=this,rawDocument=document[0],location=window.location,history=window.history,setTimeout=window.setTimeout,clearTimeout=window.clearTimeout,pendingDeferIds={};self.isMock=false;var outstandingRequestCount=0;var outstandingRequestCallbacks=[];self.$$completeOutstandingRequest=completeOutstandingRequest;self.$$incOutstandingRequestCount=function(){outstandingRequestCount++};function completeOutstandingRequest(fn){try{fn.apply(null,sliceArgs(arguments,1))}finally{outstandingRequestCount--;if(outstandingRequestCount===0){while(outstandingRequestCallbacks.length){try{outstandingRequestCallbacks.pop()()}catch(e){$log.error(e)}}}}}self.notifyWhenNoOutstandingRequests=function(callback){forEach(pollFns,function(pollFn){pollFn()});if(outstandingRequestCount===0){callback()}else{outstandingRequestCallbacks.push(call
 back)}};var pollFns=[],pollTimeout;self.addPollFn=function(fn){if(isUndefined(pollTimeout))startPoller(100,setTimeout);pollFns.push(fn);return fn};function startPoller(interval,setTimeout){(function check(){forEach(pollFns,function(pollFn){pollFn()});pollTimeout=setTimeout(check,interval)})()}var lastBrowserUrl=location.href,baseElement=document.find("base");self.url=function(url,replace){if(url){if(lastBrowserUrl==url)return;lastBrowserUrl=url;if($sniffer.history){if(replace)history.replaceState(null,"",url);else{history.pushState(null,"",url);baseElement.attr("href",baseElement.attr("href"))}}else{if(replace)location.replace(url);else location.href=url}return self}else{return location.href.replace(/%27/g,"'")}};var urlChangeListeners=[],urlChangeInit=false;function fireUrlChange(){if(lastBrowserUrl==self.url())return;lastBrowserUrl=self.url();forEach(urlChangeListeners,function(listener){listener(self.url())})}self.onUrlChange=function(callback){if(!urlChangeInit){if($sniffer.hist
 ory)jqLite(window).bind("popstate",fireUrlChange);if($sniffer.hashchange)jqLite(window).bind("hashchange",fireUrlChange);else self.addPollFn(fireUrlChange);urlChangeInit=true}urlChangeListeners.push(callback);return callback};self.baseHref=function(){var href=baseElement.attr("href");return href?href.replace(/^https?\:\/\/[^\/]*/,""):""};var lastCookies={};var lastCookieString="";var cookiePath=self.baseHref();self.cookies=function(name,value){var cookieLength,cookieArray,cookie,i,index;if(name){if(value===undefined){rawDocument.cookie=escape(name)+"=;path="+cookiePath+";expires=Thu, 01 Jan 1970 00:00:00 GMT"}else{if(isString(value)){cookieLength=(rawDocument.cookie=escape(name)+"="+escape(value)+";path="+cookiePath).length+1;if(cookieLength>4096){$log.warn("Cookie '"+name+"' possibly not set or overflowed because it was too large ("+cookieLength+" > 4096 bytes)!")}}}}else{if(rawDocument.cookie!==lastCookieString){lastCookieString=rawDocument.cookie;cookieArray=lastCookieString.spli
 t("; ");lastCookies={};for(i=0;i<cookieArray.length;i++){cookie=cookieArray[i];index=cookie.indexOf("=");if(index>0){var name=unescape(cookie.substring(0,index));if(lastCookies[name]===undefined){lastCookies[name]=unescape(cookie.substring(index+1))}}}}return lastCookies}};self.defer=function(fn,delay){var timeoutId;outstandingRequestCount++;timeoutId=setTimeout(function(){delete pendingDeferIds[timeoutId];completeOutstandingRequest(fn)},delay||0);pendingDeferIds[timeoutId]=true;return timeoutId};self.defer.cancel=function(deferId){if(pendingDeferIds[deferId]){delete pendingDeferIds[deferId];clearTimeout(deferId);completeOutstandingRequest(noop);return true}return false}}function $BrowserProvider(){this.$get=["$window","$log","$sniffer","$document",function($window,$log,$sniffer,$document){return new Browser($window,$document,$log,$sniffer)}]}function $CacheFactoryProvider(){this.$get=function(){var caches={};function cacheFactory(cacheId,options){if(cacheId in caches){throw Error("
 cacheId "+cacheId+" taken")}var size=0,stats=extend({},options,{id:cacheId}),data={},capacity=options&&options.capacity||Number.MAX_VALUE,lruHash={},freshEnd=null,staleEnd=null;return caches[cacheId]={put:function(key,value){var lruEntry=lruHash[key]||(lruHash[key]={key:key});refresh(lruEntry);if(isUndefined(value))return;if(!(key in data))size++;data[key]=value;if(size>capacity){this.remove(staleEnd.key)}return value},get:function(key){var lruEntry=lruHash[key];if(!lruEntry)return;refresh(lruEntry);return data[key]},remove:function(key){var lruEntry=lruHash[key];if(!lruEntry)return;if(lruEntry==freshEnd)freshEnd=lruEntry.p;if(lruEntry==staleEnd)staleEnd=lruEntry.n;link(lruEntry.n,lruEntry.p);delete lruHash[key];delete data[key];size--},removeAll:function(){data={};size=0;lruHash={};freshEnd=staleEnd=null},destroy:function(){data=null;stats=null;lruHash=null;delete caches[cacheId]},info:function(){return extend({},stats,{size:size})}};function refresh(entry){if(entry!=freshEnd){if(!
 staleEnd){staleEnd=entry}else if(staleEnd==entry){staleEnd=entry.n}link(entry.n,entry.p);link(entry,freshEnd);freshEnd=entry;freshEnd.n=null}}function link(nextEntry,prevEntry){if(nextEntry!=prevEntry){if(nextEntry)nextEntry.p=prevEntry;if(prevEntry)prevEntry.n=nextEntry}}}cacheFactory.info=function(){var info={};forEach(caches,function(cache,cacheId){info[cacheId]=cache.info()});return info};cacheFactory.get=function(cacheId){return caches[cacheId]};return cacheFactory}}function $TemplateCacheProvider(){this.$get=["$cacheFactory",function($cacheFactory){return $cacheFactory("templates")}]}var NON_ASSIGNABLE_MODEL_EXPRESSION="Non-assignable model expression: ";$CompileProvider.$inject=["$provide"];function $CompileProvider($provide){var hasDirectives={},Suffix="Directive",COMMENT_DIRECTIVE_REGEXP=/^\s*directive\:\s*([\d\w\-_]+)\s+(.*)$/,CLASS_DIRECTIVE_REGEXP=/(([\d\w\-_]+)(?:\:([^;]+))?;?)/,MULTI_ROOT_TEMPLATE_ERROR="Template must have exactly one root element. was: ",urlSanitizati
 onWhitelist=/^\s*(https?|ftp|mailto|file):/;this.directive=function registerDirective(name,directiveFactory){if(isString(name)){assertArg(directiveFactory,"directive");if(!hasDirectives.hasOwnProperty(name)){hasDirectives[name]=[];$provide.factory(name+Suffix,["$injector","$exceptionHandler",function($injector,$exceptionHandler){var directives=[];forEach(hasDirectives[name],function(directiveFactory){try{var directive=$injector.invoke(directiveFactory);if(isFunction(directive)){directive={compile:valueFn(directive)}}else if(!directive.compile&&directive.link){directive.compile=valueFn(directive.link)}directive.priority=directive.priority||0;directive.name=directive.name||name;directive.require=directive.require||directive.controller&&directive.name;directive.restrict=directive.restrict||"A";directives.push(directive)}catch(e){$exceptionHandler(e)}});return directives}])}hasDirectives[name].push(directiveFactory)}else{forEach(name,reverseParams(registerDirective))}return this};this.u
 rlSanitizationWhitelist=function(regexp){if(isDefined(regexp)){urlSanitizationWhitelist=regexp;return this}return urlSanitizationWhitelist};this.$get=["$injector","$interpolate","$exceptionHandler","$http","$templateCache","$parse","$controller","$rootScope","$document",function($injector,$interpolate,$exceptionHandler,$http,$templateCache,$parse,$controller,$rootScope,$document){var Attributes=function(element,attr){this.$$element=element;this.$attr=attr||{}};Attributes.prototype={$normalize:directiveNormalize,$set:function(key,value,writeAttr,attrName){var booleanKey=getBooleanAttrName(this.$$element[0],key),$$observers=this.$$observers,normalizedVal;if(booleanKey){this.$$element.prop(key,value);attrName=booleanKey}this[key]=value;if(attrName){this.$attr[key]=attrName}else{attrName=this.$attr[key];if(!attrName){this.$attr[key]=attrName=snake_case(key,"-")}}if(nodeName_(this.$$element[0])==="A"&&key==="href"){urlSanitizationNode.setAttribute("href",value);normalizedVal=urlSanitizat
 ionNode.href;if(!normalizedVal.match(urlSanitizationWhitelist)){this[key]=value="unsafe:"+normalizedVal}}if(writeAttr!==false){if(value===null||value===undefined){this.$$element.removeAttr(attrName)}else{this.$$element.attr(attrName,value)}}$$observers&&forEach($$observers[key],function(fn){try{fn(value)}catch(e){$exceptionHandler(e)}})},$observe:function(key,fn){var attrs=this,$$observers=attrs.$$observers||(attrs.$$observers={}),listeners=$$observers[key]||($$observers[key]=[]);listeners.push(fn);$rootScope.$evalAsync(function(){if(!listeners.$$inter){fn(attrs[key])}});return fn}};var urlSanitizationNode=$document[0].createElement("a"),startSymbol=$interpolate.startSymbol(),endSymbol=$interpolate.endSymbol(),denormalizeTemplate=startSymbol=="{{"||endSymbol=="}}"?identity:function denormalizeTemplate(template){return template.replace(/\{\{/g,startSymbol).replace(/}}/g,endSymbol)},NG_ATTR_BINDING=/^ngAttr[A-Z]/;return compile;function compile($compileNodes,transcludeFn,maxPriority){
 if(!($compileNodes instanceof jqLite)){$compileNodes=jqLite($compileNodes)}forEach($compileNodes,function(node,index){if(node.nodeType==3&&node.nodeValue.match(/\S+/)){$compileNodes[index]=jqLite(node).wrap("<span></span>").parent()[0]}});var compositeLinkFn=compileNodes($compileNodes,transcludeFn,$compileNodes,maxPriority);return function publicLinkFn(scope,cloneConnectFn){assertArg(scope,"scope");var $linkNode=cloneConnectFn?JQLitePrototype.clone.call($compileNodes):$compileNodes;for(var i=0,ii=$linkNode.length;i<ii;i++){var node=$linkNode[i];if(node.nodeType==1||node.nodeType==9){$linkNode.eq(i).data("$scope",scope)}}safeAddClass($linkNode,"ng-scope");if(cloneConnectFn)cloneConnectFn($linkNode,scope);if(compositeLinkFn)compositeLinkFn(scope,$linkNode,$linkNode);return $linkNode}}function wrongMode(localName,mode){throw Error("Unsupported '"+mode+"' for '"+localName+"'.")}function safeAddClass($element,className){try{$element.addClass(className)}catch(e){}}function compileNodes(no
 deList,transcludeFn,$rootElement,maxPriority){var linkFns=[],nodeLinkFn,childLinkFn,directives,attrs,linkFnFound;for(var i=0;i<nodeList.length;i++){attrs=new Attributes;directives=collectDirectives(nodeList[i],[],attrs,maxPriority);nodeLinkFn=directives.length?applyDirectivesToNode(directives,nodeList[i],attrs,transcludeFn,$rootElement):null;childLinkFn=nodeLinkFn&&nodeLinkFn.terminal||!nodeList[i].childNodes||!nodeList[i].childNodes.length?null:compileNodes(nodeList[i].childNodes,nodeLinkFn?nodeLinkFn.transclude:transcludeFn);linkFns.push(nodeLinkFn);linkFns.push(childLinkFn);linkFnFound=linkFnFound||nodeLinkFn||childLinkFn}return linkFnFound?compositeLinkFn:null;function compositeLinkFn(scope,nodeList,$rootElement,boundTranscludeFn){var nodeLinkFn,childLinkFn,node,childScope,childTranscludeFn,i,ii,n;var stableNodeList=[];for(i=0,ii=nodeList.length;i<ii;i++){stableNodeList.push(nodeList[i])}for(i=0,n=0,ii=linkFns.length;i<ii;n++){node=stableNodeList[n];nodeLinkFn=linkFns[i++];child
 LinkFn=linkFns[i++];if(nodeLinkFn){if(nodeLinkFn.scope){childScope=scope.$new(isObject(nodeLinkFn.scope));jqLite(node).data("$scope",childScope)}else{childScope=scope}childTranscludeFn=nodeLinkFn.transclude;if(childTranscludeFn||!boundTranscludeFn&&transcludeFn){nodeLinkFn(childLinkFn,childScope,node,$rootElement,function(transcludeFn){return function(cloneFn){var transcludeScope=scope.$new();transcludeScope.$$transcluded=true;return transcludeFn(transcludeScope,cloneFn).bind("$destroy",bind(transcludeScope,transcludeScope.$destroy))}}(childTranscludeFn||transcludeFn))}else{nodeLinkFn(childLinkFn,childScope,node,undefined,boundTranscludeFn)}}else if(childLinkFn){childLinkFn(scope,node.childNodes,undefined,boundTranscludeFn)}}}}function collectDirectives(node,directives,attrs,maxPriority){var nodeType=node.nodeType,attrsMap=attrs.$attr,match,className;switch(nodeType){case 1:addDirective(directives,directiveNormalize(nodeName_(node).toLowerCase()),"E",maxPriority);for(var attr,name,n
 Name,ngAttrName,value,nAttrs=node.attributes,j=0,jj=nAttrs&&nAttrs.length;j<jj;j++){attr=nAttrs[j];if(attr.specified){name=attr.name;ngAttrName=directiveNormalize(name);if(NG_ATTR_BINDING.test(ngAttrName)){name=ngAttrName.substr(6).toLowerCase()}nName=directiveNormalize(name.toLowerCase());attrsMap[nName]=name;attrs[nName]=value=trim(msie&&name=="href"?decodeURIComponent(node.getAttribute(name,2)):attr.value);if(getBooleanAttrName(node,nName)){attrs[nName]=true}addAttrInterpolateDirective(node,directives,value,nName);addDirective(directives,nName,"A",maxPriority)}}className=node.className;if(isString(className)&&className!==""){while(match=CLASS_DIRECTIVE_REGEXP.exec(className)){nName=directiveNormalize(match[2]);if(addDirective(directives,nName,"C",maxPriority)){attrs[nName]=trim(match[3])}className=className.substr(match.index+match[0].length)}}break;case 3:addTextInterpolateDirective(directives,node.nodeValue);break;case 8:try{match=COMMENT_DIRECTIVE_REGEXP.exec(node.nodeValue);i
 f(match){nName=directiveNormalize(match[1]);if(addDirective(directives,nName,"M",maxPriority)){attrs[nName]=trim(match[2])}}}catch(e){}break}directives.sort(byPriority);return directives}function applyDirectivesToNode(directives,compileNode,templateAttrs,transcludeFn,jqCollection){var terminalPriority=-Number.MAX_VALUE,preLinkFns=[],postLinkFns=[],newScopeDirective=null,newIsolateScopeDirective=null,templateDirective=null,$compileNode=templateAttrs.$$element=jqLite(compileNode),directive,directiveName,$template,transcludeDirective,childTranscludeFn=transcludeFn,controllerDirectives,linkFn,directiveValue;for(var i=0,ii=directives.length;i<ii;i++){directive=directives[i];$template=undefined;if(terminalPriority>directive.priority){break}if(directiveValue=directive.scope){assertNoDuplicate("isolated scope",newIsolateScopeDirective,directive,$compileNode);if(isObject(directiveValue)){safeAddClass($compileNode,"ng-isolate-scope");newIsolateScopeDirective=directive}safeAddClass($compileNod
 e,"ng-scope");newScopeDirective=newScopeDirective||directive}directiveName=directive.name;if(directiveValue=directive.controller){controllerDirectives=controllerDirectives||{};assertNoDuplicate("'"+directiveName+"' controller",controllerDirectives[directiveName],directive,$compileNode);controllerDirectives[directiveName]=directive}if(directiveValue=directive.transclude){assertNoDuplicate("transclusion",transcludeDirective,directive,$compileNode);transcludeDirective=directive;terminalPriority=directive.priority;if(directiveValue=="element"){$template=jqLite(compileNode);$compileNode=templateAttrs.$$element=jqLite(document.createComment(" "+directiveName+": "+templateAttrs[directiveName]+" "));compileNode=$compileNode[0];replaceWith(jqCollection,jqLite($template[0]),compileNode);childTranscludeFn=compile($template,transcludeFn,terminalPriority)}else{$template=jqLite(JQLiteClone(compileNode)).contents();$compileNode.html("");childTranscludeFn=compile($template,transcludeFn)}}if(directi
 ve.template){assertNoDuplicate("template",templateDirective,directive,$compileNode);templateDirective=directive;directiveValue=isFunction(directive.template)?directive.template($compileNode,templateAttrs):directive.template;directiveValue=denormalizeTemplate(directiveValue);if(directive.replace){$template=jqLite("<div>"+trim(directiveValue)+"</div>").contents();compileNode=$template[0];if($template.length!=1||compileNode.nodeType!==1){throw new Error(MULTI_ROOT_TEMPLATE_ERROR+directiveValue)}replaceWith(jqCollection,$compileNode,compileNode);var newTemplateAttrs={$attr:{}};directives=directives.concat(collectDirectives(compileNode,directives.splice(i+1,directives.length-(i+1)),newTemplateAttrs));mergeTemplateAttributes(templateAttrs,newTemplateAttrs);ii=directives.length}else{$compileNode.html(directiveValue)}}if(directive.templateUrl){assertNoDuplicate("template",templateDirective,directive,$compileNode);templateDirective=directive;nodeLinkFn=compileTemplateUrl(directives.splice(i,
 directives.length-i),nodeLinkFn,$compileNode,templateAttrs,jqCollection,directive.replace,childTranscludeFn);ii=directives.length}else if(directive.compile){try{linkFn=directive.compile($compileNode,templateAttrs,childTranscludeFn);if(isFunction(linkFn)){addLinkFns(null,linkFn)}else if(linkFn){addLinkFns(linkFn.pre,linkFn.post)}}catch(e){$exceptionHandler(e,startingTag($compileNode))}}if(directive.terminal){nodeLinkFn.terminal=true;terminalPriority=Math.max(terminalPriority,directive.priority)}}nodeLinkFn.scope=newScopeDirective&&newScopeDirective.scope;nodeLinkFn.transclude=transcludeDirective&&childTranscludeFn;return nodeLinkFn;function addLinkFns(pre,post){if(pre){pre.require=directive.require;preLinkFns.push(pre)}if(post){post.require=directive.require;postLinkFns.push(post)}}function getControllers(require,$element){var value,retrievalMethod="data",optional=false;if(isString(require)){while((value=require.charAt(0))=="^"||value=="?"){require=require.substr(1);if(value=="^"){re
 trievalMethod="inheritedData"}optional=optional||value=="?"}value=$element[retrievalMethod]("$"+require+"Controller");if(!value&&!optional){throw Error("No controller: "+require)}return value}else if(isArray(require)){value=[];forEach(require,function(require){value.push(getControllers(require,$element))})}return value}function nodeLinkFn(childLinkFn,scope,linkNode,$rootElement,boundTranscludeFn){var attrs,$element,i,ii,linkFn,controller;if(compileNode===linkNode){attrs=templateAttrs}else{attrs=shallowCopy(templateAttrs,new Attributes(jqLite(linkNode),templateAttrs.$attr))}$element=attrs.$$element;if(newIsolateScopeDirective){var LOCAL_REGEXP=/^\s*([@=&])(\??)\s*(\w*)\s*$/;var parentScope=scope.$parent||scope;forEach(newIsolateScopeDirective.scope,function(definiton,scopeName){var match=definiton.match(LOCAL_REGEXP)||[],attrName=match[3]||scopeName,optional=match[2]=="?",mode=match[1],lastValue,parentGet,parentSet;scope.$$isolateBindings[scopeName]=mode+attrName;switch(mode){case"@"
 :{attrs.$observe(attrName,function(value){scope[scopeName]=value});attrs.$$observers[attrName].$$scope=parentScope;if(attrs[attrName]){scope[scopeName]=$interpolate(attrs[attrName])(parentScope)}break}case"=":{if(optional&&!attrs[attrName]){return}parentGet=$parse(attrs[attrName]);parentSet=parentGet.assign||function(){lastValue=scope[scopeName]=parentGet(parentScope);throw Error(NON_ASSIGNABLE_MODEL_EXPRESSION+attrs[attrName]+" (directive: "+newIsolateScopeDirective.name+")")};lastValue=scope[scopeName]=parentGet(parentScope);scope.$watch(function parentValueWatch(){var parentValue=parentGet(parentScope);if(parentValue!==scope[scopeName]){if(parentValue!==lastValue){lastValue=scope[scopeName]=parentValue}else{parentSet(parentScope,parentValue=lastValue=scope[scopeName])}}return parentValue});break}case"&":{parentGet=$parse(attrs[attrName]);scope[scopeName]=function(locals){return parentGet(parentScope,locals)};break}default:{throw Error("Invalid isolate scope definition for directi
 ve "+newIsolateScopeDirective.name+": "+definiton)}}})}if(controllerDirectives){forEach(controllerDirectives,function(directive){var locals={$scope:scope,$element:$element,$attrs:attrs,$transclude:boundTranscludeFn};controller=directive.controller;if(controller=="@"){controller=attrs[directive.name]}$element.data("$"+directive.name+"Controller",$controller(controller,locals))})}for(i=0,ii=preLinkFns.length;i<ii;i++){try{linkFn=preLinkFns[i];linkFn(scope,$element,attrs,linkFn.require&&getControllers(linkFn.require,$element))}catch(e){$exceptionHandler(e,startingTag($element))}}childLinkFn&&childLinkFn(scope,linkNode.childNodes,undefined,boundTranscludeFn);for(i=0,ii=postLinkFns.length;i<ii;i++){try{linkFn=postLinkFns[i];linkFn(scope,$element,attrs,linkFn.require&&getControllers(linkFn.require,$element))}catch(e){$exceptionHandler(e,startingTag($element))}}}}function addDirective(tDirectives,name,location,maxPriority){var match=false;if(hasDirectives.hasOwnProperty(name)){for(var dire
 ctive,directives=$injector.get(name+Suffix),i=0,ii=directives.length;i<ii;i++){try{directive=directives[i];if((maxPriority===undefined||maxPriority>directive.priority)&&directive.restrict.indexOf(location)!=-1){tDirectives.push(directive);match=true}}catch(e){$exceptionHandler(e)}}}return match}function mergeTemplateAttributes(dst,src){var srcAttr=src.$attr,dstAttr=dst.$attr,$element=dst.$$element;forEach(dst,function(value,key){if(key.charAt(0)!="$"){if(src[key]){value+=(key==="style"?";":" ")+src[key]}dst.$set(key,value,true,srcAttr[key])}});forEach(src,function(value,key){if(key=="class"){safeAddClass($element,value);dst["class"]=(dst["class"]?dst["class"]+" ":"")+value}else if(key=="style"){$element.attr("style",$element.attr("style")+";"+value)}else if(key.charAt(0)!="$"&&!dst.hasOwnProperty(key)){dst[key]=value;dstAttr[key]=srcAttr[key]}})}function compileTemplateUrl(directives,beforeTemplateNodeLinkFn,$compileNode,tAttrs,$rootElement,replace,childTranscludeFn){var linkQueue=[
 ],afterTemplateNodeLinkFn,afterTemplateChildLinkFn,beforeTemplateCompileNode=$compileNode[0],origAsyncDirective=directives.shift(),derivedSyncDirective=extend({},origAsyncDirective,{controller:null,templateUrl:null,transclude:null,scope:null}),templateUrl=isFunction(origAsyncDirective.templateUrl)?origAsyncDirective.templateUrl($compileNode,tAttrs):origAsyncDirective.templateUrl;$compileNode.html("");$http.get(templateUrl,{cache:$templateCache}).success(function(content){var compileNode,tempTemplateAttrs,$template;content=denormalizeTemplate(content);if(replace){$template=jqLite("<div>"+trim(content)+"</div>").contents();compileNode=$template[0];if($template.length!=1||compileNode.nodeType!==1){throw new Error(MULTI_ROOT_TEMPLATE_ERROR+content)}tempTemplateAttrs={$attr:{}};replaceWith($rootElement,$compileNode,compileNode);collectDirectives(compileNode,directives,tempTemplateAttrs);mergeTemplateAttributes(tAttrs,tempTemplateAttrs)}else{compileNode=beforeTemplateCompileNode;$compileN
 ode.html(content)}directives.unshift(derivedSyncDirective);afterTemplateNodeLinkFn=applyDirectivesToNode(directives,compileNode,tAttrs,childTranscludeFn);afterTemplateChildLinkFn=compileNodes($compileNode[0].childNodes,childTranscludeFn);while(linkQueue.length){var scope=linkQueue.shift(),beforeTemplateLinkNode=linkQueue.shift(),linkRootElement=linkQueue.shift(),controller=linkQueue.shift(),linkNode=compileNode;if(beforeTemplateLinkNode!==beforeTemplateCompileNode){linkNode=JQLiteClone(compileNode);replaceWith(linkRootElement,jqLite(beforeTemplateLinkNode),linkNode)}afterTemplateNodeLinkFn(function(){beforeTemplateNodeLinkFn(afterTemplateChildLinkFn,scope,linkNode,$rootElement,controller)},scope,linkNode,$rootElement,controller)}linkQueue=null}).error(function(response,code,headers,config){throw Error("Failed to load template: "+config.url)});return function delayedNodeLinkFn(ignoreChildLinkFn,scope,node,rootElement,controller){if(linkQueue){linkQueue.push(scope);linkQueue.push(node
 );linkQueue.push(rootElement);linkQueue.push(controller)}else{afterTemplateNodeLinkFn(function(){beforeTemplateNodeLinkFn(afterTemplateChildLinkFn,scope,node,rootElement,controller)},scope,node,rootElement,controller)}}}function byPriority(a,b){return b.priority-a.priority}function assertNoDuplicate(what,previousDirective,directive,element){if(previousDirective){throw Error("Multiple directives ["+previousDirective.name+", "+directive.name+"] asking for "+what+" on: "+startingTag(element))}}function addTextInterpolateDirective(directives,text){var interpolateFn=$interpolate(text,true);if(interpolateFn){directives.push({priority:0,compile:valueFn(function textInterpolateLinkFn(scope,node){var parent=node.parent(),bindings=parent.data("$binding")||[];bindings.push(interpolateFn);safeAddClass(parent.data("$binding",bindings),"ng-binding");scope.$watch(interpolateFn,function interpolateFnWatchAction(value){node[0].nodeValue=value})})})}}function addAttrInterpolateDirective(node,directiv
 es,value,name){var interpolateFn=$interpolate(value,true);if(!interpolateFn)return;directives.push({priority:100,compile:valueFn(function attrInterpolateLinkFn(scope,element,attr){var $$observers=attr.$$observers||(attr.$$observers={});interpolateFn=$interpolate(attr[name],true);if(!interpolateFn)return;attr[name]=interpolateFn(scope);($$observers[name]||($$observers[name]=[])).$$inter=true;(attr.$$observers&&attr.$$observers[name].$$scope||scope).$watch(interpolateFn,function interpolateFnWatchAction(value){attr.$set(name,value)})})})}function replaceWith($rootElement,$element,newNode){var oldNode=$element[0],parent=oldNode.parentNode,i,ii;if($rootElement){for(i=0,ii=$rootElement.length;i<ii;i++){if($rootElement[i]==oldNode){$rootElement[i]=newNode;break}}}if(parent){parent.replaceChild(newNode,oldNode)}newNode[jqLite.expando]=oldNode[jqLite.expando];$element[0]=newNode}}]}var PREFIX_REGEXP=/^(x[\:\-_]|data[\:\-_])/i;function directiveNormalize(name){return camelCase(name.replace(P
 REFIX_REGEXP,""))}function nodesetLinkingFn(scope,nodeList,rootElement,boundTranscludeFn){}function directiveLinkingFn(nodesetLinkingFn,scope,node,rootElement,boundTranscludeFn){}function $ControllerProvider(){var controllers={},CNTRL_REG=/^(\S+)(\s+as\s+(\w+))?$/;
+this.register=function(name,constructor){if(isObject(name)){extend(controllers,name)}else{controllers[name]=constructor}};this.$get=["$injector","$window",function($injector,$window){return function(expression,locals){var instance,match,constructor,identifier;if(isString(expression)){match=expression.match(CNTRL_REG),constructor=match[1],identifier=match[3];expression=controllers.hasOwnProperty(constructor)?controllers[constructor]:getter(locals.$scope,constructor,true)||getter($window,constructor,true);assertArgFn(expression,constructor,true)}instance=$injector.instantiate(expression,locals);if(identifier){if(typeof locals.$scope!=="object"){throw new Error('Can not export controller as "'+identifier+'". '+"No scope object provided!")}locals.$scope[identifier]=instance}return instance}}]}function $DocumentProvider(){this.$get=["$window",function(window){return jqLite(window.document)}]}function $ExceptionHandlerProvider(){this.$get=["$log",function($log){return function(exception,c
 ause){$log.error.apply($log,arguments)}}]}function $InterpolateProvider(){var startSymbol="{{";var endSymbol="}}";this.startSymbol=function(value){if(value){startSymbol=value;return this}else{return startSymbol}};this.endSymbol=function(value){if(value){endSymbol=value;return this}else{return endSymbol}};this.$get=["$parse","$exceptionHandler",function($parse,$exceptionHandler){var startSymbolLength=startSymbol.length,endSymbolLength=endSymbol.length;function $interpolate(text,mustHaveExpression){var startIndex,endIndex,index=0,parts=[],length=text.length,hasInterpolation=false,fn,exp,concat=[];while(index<length){if((startIndex=text.indexOf(startSymbol,index))!=-1&&(endIndex=text.indexOf(endSymbol,startIndex+startSymbolLength))!=-1){index!=startIndex&&parts.push(text.substring(index,startIndex));parts.push(fn=$parse(exp=text.substring(startIndex+startSymbolLength,endIndex)));fn.exp=exp;index=endIndex+endSymbolLength;hasInterpolation=true}else{index!=length&&parts.push(text.substrin
 g(index));index=length}}if(!(length=parts.length)){parts.push("");length=1}if(!mustHaveExpression||hasInterpolation){concat.length=length;fn=function(context){try{for(var i=0,ii=length,part;i<ii;i++){if(typeof(part=parts[i])=="function"){part=part(context);if(part==null||part==undefined){part=""}else if(typeof part!="string"){part=toJson(part)}}concat[i]=part}return concat.join("")}catch(err){var newErr=new Error("Error while interpolating: "+text+"\n"+err.toString());$exceptionHandler(newErr)}};fn.exp=text;fn.parts=parts;return fn}}$interpolate.startSymbol=function(){return startSymbol};$interpolate.endSymbol=function(){return endSymbol};return $interpolate}]}var SERVER_MATCH=/^([^:]+):\/\/(\w+:{0,1}\w*@)?(\{?[\w\.-]*\}?)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/,PATH_MATCH=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,DEFAULT_PORTS={http:80,https:443,ftp:21};function encodePath(path){var segments=path.split("/"),i=segments.length;while(i--){segments[i]=encodeUriSegment(segments[i])}return
  segments.join("/")}function matchUrl(url,obj){var match=SERVER_MATCH.exec(url);obj.$$protocol=match[1];obj.$$host=match[3];obj.$$port=int(match[5])||DEFAULT_PORTS[match[1]]||null}function matchAppUrl(url,obj){var match=PATH_MATCH.exec(url);obj.$$path=decodeURIComponent(match[1]);obj.$$search=parseKeyValue(match[3]);obj.$$hash=decodeURIComponent(match[5]||"");if(obj.$$path&&obj.$$path.charAt(0)!="/")obj.$$path="/"+obj.$$path}function composeProtocolHostPort(protocol,host,port){return protocol+"://"+host+(port==DEFAULT_PORTS[protocol]?"":":"+port)}function beginsWith(begin,whole,otherwise){return whole.indexOf(begin)==0?whole.substr(begin.length):otherwise}function stripHash(url){var index=url.indexOf("#");return index==-1?url:url.substr(0,index)}function stripFile(url){return url.substr(0,stripHash(url).lastIndexOf("/")+1)}function serverBase(url){return url.substring(0,url.indexOf("/",url.indexOf("//")+2))}function LocationHtml5Url(appBase,basePrefix){basePrefix=basePrefix||"";var 
 appBaseNoFile=stripFile(appBase);this.$$parse=function(url){var parsed={};matchUrl(url,parsed);var pathUrl=beginsWith(appBaseNoFile,url);if(!isString(pathUrl)){throw Error('Invalid url "'+url+'", missing path prefix "'+appBaseNoFile+'".')}matchAppUrl(pathUrl,parsed);extend(this,parsed);if(!this.$$path){this.$$path="/"}this.$$compose()};this.$$compose=function(){var search=toKeyValue(this.$$search),hash=this.$$hash?"#"+encodeUriSegment(this.$$hash):"";this.$$url=encodePath(this.$$path)+(search?"?"+search:"")+hash;this.$$absUrl=appBaseNoFile+this.$$url.substr(1)};this.$$rewrite=function(url){var appUrl,prevAppUrl;if((appUrl=beginsWith(appBase,url))!==undefined){prevAppUrl=appUrl;if((appUrl=beginsWith(basePrefix,appUrl))!==undefined){return appBaseNoFile+(beginsWith("/",appUrl)||appUrl)}else{return appBase+prevAppUrl}}else if((appUrl=beginsWith(appBaseNoFile,url))!==undefined){return appBaseNoFile+appUrl}else if(appBaseNoFile==url+"/"){return appBaseNoFile}}}function LocationHashbangUr
 l(appBase,hashPrefix){var appBaseNoFile=stripFile(appBase);this.$$parse=function(url){matchUrl(url,this);var withoutBaseUrl=beginsWith(appBase,url)||beginsWith(appBaseNoFile,url);if(!isString(withoutBaseUrl)){throw new Error('Invalid url "'+url+'", does not start with "'+appBase+'".')}var withoutHashUrl=withoutBaseUrl.charAt(0)=="#"?beginsWith(hashPrefix,withoutBaseUrl):withoutBaseUrl;if(!isString(withoutHashUrl)){throw new Error('Invalid url "'+url+'", missing hash prefix "'+hashPrefix+'".')}matchAppUrl(withoutHashUrl,this);this.$$compose()};this.$$compose=function(){var search=toKeyValue(this.$$search),hash=this.$$hash?"#"+encodeUriSegment(this.$$hash):"";this.$$url=encodePath(this.$$path)+(search?"?"+search:"")+hash;this.$$absUrl=appBase+(this.$$url?hashPrefix+this.$$url:"")};this.$$rewrite=function(url){if(stripHash(appBase)==stripHash(url)){return url}}}function LocationHashbangInHtml5Url(appBase,hashPrefix){LocationHashbangUrl.apply(this,arguments);var appBaseNoFile=stripFile(
 appBase);this.$$rewrite=function(url){var appUrl;if(appBase==stripHash(url)){return url}else if(appUrl=beginsWith(appBaseNoFile,url)){return appBase+hashPrefix+appUrl}else if(appBaseNoFile===url+"/"){return appBaseNoFile}}}LocationHashbangInHtml5Url.prototype=LocationHashbangUrl.prototype=LocationHtml5Url.prototype={$$replace:false,absUrl:locationGetter("$$absUrl"),url:function(url,replace){if(isUndefined(url))return this.$$url;var match=PATH_MATCH.exec(url);if(match[1])this.path(decodeURIComponent(match[1]));if(match[2]||match[1])this.search(match[3]||"");this.hash(match[5]||"",replace);return this},protocol:locationGetter("$$protocol"),host:locationGetter("$$host"),port:locationGetter("$$port"),path:locationGetterSetter("$$path",function(path){return path.charAt(0)=="/"?path:"/"+path}),search:function(search,paramValue){if(isUndefined(search))return this.$$search;if(isDefined(paramValue)){if(paramValue===null){delete this.$$search[search]}else{this.$$search[search]=paramValue}}els
 e{this.$$search=isString(search)?parseKeyValue(search):search}this.$$compose();return this},hash:locationGetterSetter("$$hash",identity),replace:function(){this.$$replace=true;return this}};function locationGetter(property){return function(){return this[property]}}function locationGetterSetter(property,preprocess){return function(value){if(isUndefined(value))return this[property];this[property]=preprocess(value);this.$$compose();return this}}function $LocationProvider(){var hashPrefix="",html5Mode=false;this.hashPrefix=function(prefix){if(isDefined(prefix)){hashPrefix=prefix;return this}else{return hashPrefix}};this.html5Mode=function(mode){if(isDefined(mode)){html5Mode=mode;return this}else{return html5Mode}};this.$get=["$rootScope","$browser","$sniffer","$rootElement",function($rootScope,$browser,$sniffer,$rootElement){var $location,LocationMode,baseHref=$browser.baseHref(),initialUrl=$browser.url(),appBase;if(html5Mode){appBase=baseHref?serverBase(initialUrl)+baseHref:initialUrl;
 LocationMode=$sniffer.history?LocationHtml5Url:LocationHashbangInHtml5Url}else{appBase=stripHash(initialUrl);LocationMode=LocationHashbangUrl}$location=new LocationMode(appBase,"#"+hashPrefix);$location.$$parse($location.$$rewrite(initialUrl));$rootElement.bind("click",function(event){if(event.ctrlKey||event.metaKey||event.which==2)return;var elm=jqLite(event.target);while(lowercase(elm[0].nodeName)!=="a"){if(elm[0]===$rootElement[0]||!(elm=elm.parent())[0])return}var absHref=elm.prop("href");var rewrittenUrl=$location.$$rewrite(absHref);if(absHref&&!elm.attr("target")&&rewrittenUrl&&!event.isDefaultPrevented()){event.preventDefault();if(rewrittenUrl!=$browser.url()){$location.$$parse(rewrittenUrl);$rootScope.$apply();window.angular["ff-684208-preventDefault"]=true}}});if($location.absUrl()!=initialUrl){$browser.url($location.absUrl(),true)}$browser.onUrlChange(function(newUrl){if($location.absUrl()!=newUrl){if($rootScope.$broadcast("$locationChangeStart",newUrl,$location.absUrl()).
 defaultPrevented){$browser.url($location.absUrl());return}$rootScope.$evalAsync(function(){var oldUrl=$location.absUrl();$location.$$parse(newUrl);afterLocationChange(oldUrl)});if(!$rootScope.$$phase)$rootScope.$digest()}});var changeCounter=0;$rootScope.$watch(function $locationWatch(){var oldUrl=$browser.url();var currentReplace=$location.$$replace;if(!changeCounter||oldUrl!=$location.absUrl()){changeCounter++;$rootScope.$evalAsync(function(){if($rootScope.$broadcast("$locationChangeStart",$location.absUrl(),oldUrl).defaultPrevented){$location.$$parse(oldUrl)}else{$browser.url($location.absUrl(),currentReplace);afterLocationChange(oldUrl)}})}$location.$$replace=false;return changeCounter});return $location;function afterLocationChange(oldUrl){$rootScope.$broadcast("$locationChangeSuccess",$location.absUrl(),oldUrl)}}]}function $LogProvider(){var debug=true,self=this;this.debugEnabled=function(flag){if(isDefined(flag)){debug=flag;return this}else{return debug}};this.$get=["$window"
 ,function($window){return{log:consoleLog("log"),warn:consoleLog("warn"),info:consoleLog("info"),error:consoleLog("error"),debug:function(){var fn=consoleLog("debug");return function(){if(debug){fn.apply(self,arguments)}}}()};function formatError(arg){if(arg instanceof Error){if(arg.stack){arg=arg.message&&arg.stack.indexOf(arg.message)===-1?"Error: "+arg.message+"\n"+arg.stack:arg.stack}else if(arg.sourceURL){arg=arg.message+"\n"+arg.sourceURL+":"+arg.line}}return arg}function consoleLog(type){var console=$window.console||{},logFn=console[type]||console.log||noop;if(logFn.apply){return function(){var args=[];forEach(arguments,function(arg){args.push(formatError(arg))});return logFn.apply(console,args)}}return function(arg1,arg2){logFn(arg1,arg2)}}}]}var OPERATORS={"null":function(){return null},"true":function(){return true},"false":function(){return false},undefined:noop,"+":function(self,locals,a,b){a=a(self,locals);b=b(self,locals);if(isDefined(a)){if(isDefined(b)){return a+b}ret
 urn a}return isDefined(b)?b:undefined},"-":function(self,locals,a,b){a=a(self,locals);b=b(self,locals);return(isDefined(a)?a:0)-(isDefined(b)?b:0)},"*":function(self,locals,a,b){return a(self,locals)*b(self,locals)},"/":function(self,locals,a,b){return a(self,locals)/b(self,locals)},"%":function(self,locals,a,b){return a(self,locals)%b(self,locals)},"^":function(self,locals,a,b){return a(self,locals)^b(self,locals)},"=":noop,"===":function(self,locals,a,b){return a(self,locals)===b(self,locals)},"!==":function(self,locals,a,b){return a(self,locals)!==b(self,locals)},"==":function(self,locals,a,b){return a(self,locals)==b(self,locals)},"!=":function(self,locals,a,b){return a(self,locals)!=b(self,locals)},"<":function(self,locals,a,b){return a(self,locals)<b(self,locals)},">":function(self,locals,a,b){return a(self,locals)>b(self,locals)},"<=":function(self,locals,a,b){return a(self,locals)<=b(self,locals)},">=":function(self,locals,a,b){return a(self,locals)>=b(self,locals)},"&&":fun
 ction(self,locals,a,b){return a(self,locals)&&b(self,locals)},"||":function(self,locals,a,b){return a(self,locals)||b(self,locals)},"&":function(self,locals,a,b){return a(self,locals)&b(self,locals)},"|":function(self,locals,a,b){return b(self,locals)(self,locals,a(self,locals))},"!":function(self,locals,a){return!a(self,locals)}};var ESCAPE={n:"\n",f:"\f",r:"\r",t:"	",v:"","'":"'",'"':'"'};function lex(text,csp){var tokens=[],token,index=0,json=[],ch,lastCh=":";while(index<text.length){ch=text.charAt(index);if(is("\"'")){readString(ch)}else if(isNumber(ch)||is(".")&&isNumber(peek())){readNumber()}else if(isIdent(ch)){readIdent();if(was("{,")&&json[0]=="{"&&(token=tokens[tokens.length-1])){token.json=token.text.indexOf(".")==-1}}else if(is("(){}[].,;:?")){tokens.push({index:index,text:ch,json:was(":[,")&&is("{[")||is("}]:,")});if(is("{["))json.unshift(ch);if(is("}]"))json.shift();index++}else if(isWhitespace(ch)){index++;continue}else{var ch2=ch+peek(),ch3=ch2+peek(2),fn=OPERATORS[
 ch],fn2=OPERATORS[ch2],fn3=OPERATORS[ch3];if(fn3){tokens.push({index:index,text:ch3,fn:fn3});index+=3}else if(fn2){tokens.push({index:index,text:ch2,fn:fn2});index+=2}else if(fn){tokens.push({index:index,text:ch,fn:fn,json:was("[,:")&&is("+-")});index+=1}else{throwError("Unexpected next character ",index,index+1)}}lastCh=ch}return tokens;function is(chars){return chars.indexOf(ch)!=-1}function was(chars){return chars.indexOf(lastCh)!=-1}function peek(i){var num=i||1;return index+num<text.length?text.charAt(index+num):false}function isNumber(ch){return"0"<=ch&&ch<="9"}function isWhitespace(ch){return ch==" "||ch=="\r"||ch=="	"||ch=="\n"||ch==""||ch==" "}function isIdent(ch){return"a"<=ch&&ch<="z"||"A"<=ch&&ch<="Z"||"_"==ch||ch=="$"}function isExpOperator(ch){return ch=="-"||ch=="+"||isNumber(ch)}function throwError(error,start,end){end=end||index;throw Error("Lexer Error: "+error+" at column"+(isDefined(start)?"s "+start+"-"+index+" ["+text.substring(start,end)+"]":" "+end)+" in ex
 pression ["+text+"].")}function readNumber(){var number="";var start=index;while(index<text.length){var ch=lowercase(text.charAt(index));if(ch=="."||isNumber(ch)){number+=ch}else{var peekCh=peek();if(ch=="e"&&isExpOperator(peekCh)){number+=ch}else if(isExpOperator(ch)&&peekCh&&isNumber(peekCh)&&number.charAt(number.length-1)=="e"){number+=ch}else if(isExpOperator(ch)&&(!peekCh||!isNumber(peekCh))&&number.charAt(number.length-1)=="e"){throwError("Invalid exponent")}else{break}}index++}number=1*number;tokens.push({index:start,text:number,json:true,fn:function(){return number}})}function readIdent(){var ident="",start=index,lastDot,peekIndex,methodName,ch;while(index<text.length){ch=text.charAt(index);if(ch=="."||isIdent(ch)||isNumber(ch)){if(ch==".")lastDot=index;ident+=ch}else{break}index++}if(lastDot){peekIndex=index;while(peekIndex<text.length){ch=text.charAt(peekIndex);if(ch=="("){methodName=ident.substr(lastDot-start+1);ident=ident.substr(0,lastDot-start);index=peekIndex;break}if
 (isWhitespace(ch)){peekIndex++}else{break}}}var token={index:start,text:ident};if(OPERATORS.hasOwnProperty(ident)){token.fn=token.json=OPERATORS[ident]}else{var getter=getterFn(ident,csp);token.fn=extend(function(self,locals){return getter(self,locals)},{assign:function(self,value){return setter(self,ident,value)}})}tokens.push(token);if(methodName){tokens.push({index:lastDot,text:".",json:false});tokens.push({index:lastDot+1,text:methodName,json:false})}}function readString(quote){var start=index;index++;var string="";var rawString=quote;var escape=false;while(index<text.length){var ch=text.charAt(index);rawString+=ch;if(escape){if(ch=="u"){var hex=text.substring(index+1,index+5);if(!hex.match(/[\da-f]{4}/i))throwError("Invalid unicode escape [\\u"+hex+"]");index+=4;string+=String.fromCharCode(parseInt(hex,16))}else{var rep=ESCAPE[ch];if(rep){string+=rep}else{string+=ch}}escape=false}else if(ch=="\\"){escape=true}else if(ch==quote){index++;tokens.push({index:start,text:rawString,st
 ring:string,json:true,fn:function(){return string}});return}else{string+=ch}index++}throwError("Unterminated quote",start)}}function parser(text,json,$filter,csp){var ZERO=valueFn(0),value,tokens=lex(text,csp),assignment=_assignment,functionCall=_functionCall,fieldAccess=_fieldAccess,objectIndex=_objectIndex,filterChain=_filterChain;if(json){assignment=logicalOR;functionCall=fieldAccess=objectIndex=filterChain=function(){throwError("is not valid json",{text:text,index:0})};value=primary()}else{value=statements()}if(tokens.length!==0){throwError("is an unexpected token",tokens[0])}value.literal=!!value.literal;value.constant=!!value.constant;return value;function throwError(msg,token){throw Error("Syntax Error: Token '"+token.text+"' "+msg+" at column "+(token.index+1)+" of the expression ["+text+"] starting at ["+text.substring(token.index)+"].")}function peekToken(){if(tokens.length===0)throw Error("Unexpected end of expression: "+text);return tokens[0]}function peek(e1,e2,e3,e4){i
 f(tokens.length>0){var token=tokens[0];var t=token.text;if(t==e1||t==e2||t==e3||t==e4||!e1&&!e2&&!e3&&!e4){return token}}return false}function expect(e1,e2,e3,e4){var token=peek(e1,e2,e3,e4);if(token){if(json&&!token.json){throwError("is not valid json",token)}tokens.shift();return token}return false}function consume(e1){if(!expect(e1)){throwError("is unexpected, expecting ["+e1+"]",peek())}}function unaryFn(fn,right){return extend(function(self,locals){return fn(self,locals,right)},{constant:right.constant})}function ternaryFn(left,middle,right){return extend(function(self,locals){return left(self,locals)?middle(self,locals):right(self,locals)},{constant:left.constant&&middle.constant&&right.constant})}function binaryFn(left,fn,right){return extend(function(self,locals){return fn(self,locals,left,right)},{constant:left.constant&&right.constant})}function statements(){var statements=[];while(true){if(tokens.length>0&&!peek("}",")",";","]"))statements.push(filterChain());if(!expect("
 ;")){return statements.length==1?statements[0]:function(self,locals){var value;for(var i=0;i<statements.length;i++){var statement=statements[i];if(statement)value=statement(self,locals)}return value}}}}function _filterChain(){var left=expression();var token;while(true){if(token=expect("|")){left=binaryFn(left,token.fn,filter())}else{return left}}}function filter(){var token=expect();var fn=$filter(token.text);var argsFn=[];while(true){if(token=expect(":")){argsFn.push(expression())}else{var fnInvoke=function(self,locals,input){var args=[input];for(var i=0;i<argsFn.length;i++){args.push(argsFn[i](self,locals))}return fn.apply(self,args)};return function(){return fnInvoke}}}}function expression(){return assignment()}function _assignment(){var left=ternary();var right;var token;if(token=expect("=")){if(!left.assign){throwError("implies assignment but ["+text.substring(0,token.index)+"] can not be assigned to",token)}right=ternary();return function(scope,locals){return left.assign(scope
 ,right(scope,locals),locals)}}else{return left}}function ternary(){var left=logicalOR();var middle;var token;if(token=expect("?")){middle=ternary();if(token=expect(":")){return ternaryFn(left,middle,ternary())}else{throwError("expected :",token)}}else{return left}}function logicalOR(){var left=logicalAND();var token;while(true){if(token=expect("||")){left=binaryFn(left,token.fn,logicalAND())}else{return left}}}function logicalAND(){var left=equality();var token;if(token=expect("&&")){left=binaryFn(left,token.fn,logicalAND())}return left}function equality(){var left=relational();var token;if(token=expect("==","!=","===","!==")){left=binaryFn(left,token.fn,equality())}return left}function relational(){var left=additive();var token;if(token=expect("<",">","<=",">=")){left=binaryFn(left,token.fn,relational())}return left}function additive(){var left=multiplicative();var token;while(token=expect("+","-")){left=binaryFn(left,token.fn,multiplicative())}return left}function multiplicative()
 {var left=unary();var token;while(token=expect("*","/","%")){left=binaryFn(left,token.fn,unary())}return left}function unary(){var token;if(expect("+")){return primary()}else if(token=expect("-")){return binaryFn(ZERO,token.fn,unary())}else if(token=expect("!")){return unaryFn(token.fn,unary())}else{return primary()}}function primary(){var primary;if(expect("(")){primary=filterChain();consume(")")}else if(expect("[")){primary=arrayDeclaration()}else if(expect("{")){primary=object()}else{var token=expect();primary=token.fn;if(!primary){throwError("not a primary expression",token)}if(token.json){primary.constant=primary.literal=true}}var next,context;while(next=expect("(","[",".")){if(next.text==="("){primary=functionCall(primary,context);context=null}else if(next.text==="["){context=primary;primary=objectIndex(primary)}else if(next.text==="."){context=primary;primary=fieldAccess(primary)}else{throwError("IMPOSSIBLE")}}return primary}function _fieldAccess(object){var field=expect().te
 xt;var getter=getterFn(field,csp);return extend(function(scope,locals,self){return getter(self||object(scope,locals),locals)},{assign:function(scope,value,locals){return setter(object(scope,locals),field,value)}})}function _objectIndex(obj){var indexFn=expression();consume("]");return extend(function(self,locals){var o=obj(self,locals),i=indexFn(self,locals),v,p;if(!o)return undefined;v=o[i];if(v&&v.then){p=v;if(!("$$v"in v)){p.$$v=undefined;p.then(function(val){p.$$v=val})}v=v.$$v}return v},{assign:function(self,value,locals){return obj(self,locals)[indexFn(self,locals)]=value}})}function _functionCall(fn,contextGetter){var argsFn=[];if(peekToken().text!=")"){do{argsFn.push(expression())}while(expect(","))}consume(")");return function(scope,locals){var args=[],context=contextGetter?contextGetter(scope,locals):scope;for(var i=0;i<argsFn.length;i++){args.push(argsFn[i](scope,locals))}var fnPtr=fn(scope,locals,context)||noop;return fnPtr.apply?fnPtr.apply(context,args):fnPtr(args[0],a
 rgs[1],args[2],args[3],args[4])}}function arrayDeclaration(){var elementFns=[];var allConstant=true;if(peekToken().text!="]"){do{var elementFn=expression();elementFns.push(elementFn);if(!elementFn.constant){allConstant=false}}while(expect(","))}consume("]");return extend(function(self,locals){var array=[];for(var i=0;i<elementFns.length;i++){array.push(elementFns[i](self,locals))}return array},{literal:true,constant:allConstant})}function object(){var keyValues=[];var allConstant=true;if(peekToken().text!="}"){do{var token=expect(),key=token.string||token.text;consume(":");var value=expression();keyValues.push({key:key,value:value});if(!value.constant){allConstant=false}}while(expect(","))}consume("}");return extend(function(self,locals){var object={};for(var i=0;i<keyValues.length;i++){var keyValue=keyValues[i];object[keyValue.key]=keyValue.value(self,locals)}return object},{literal:true,constant:allConstant})}}function setter(obj,path,setValue){var element=path.split(".");for(var 
 i=0;element.length>1;i++){var key=element.shift();var propertyObj=obj[key];if(!propertyObj){propertyObj={};obj[key]=propertyObj}obj=propertyObj}obj[element.shift()]=setValue;return setValue}function getter(obj,path,bindFnToScope){if(!path)return obj;var keys=path.split(".");var key;var lastInstance=obj;var len=keys.length;for(var i=0;i<len;i++){key=keys[i];if(obj){obj=(lastInstance=obj)[key]}}if(!bindFnToScope&&isFunction(obj)){return bind(lastInstance,obj)}return obj}var getterFnCache={};function cspSafeGetterFn(key0,key1,key2,key3,key4){return function(scope,locals){var pathVal=locals&&locals.hasOwnProperty(key0)?locals:scope,promise;if(pathVal===null||pathVal===undefined)return pathVal;pathVal=pathVal[key0];if(pathVal&&pathVal.then){if(!("$$v"in pathVal)){promise=pathVal;promise.$$v=undefined;promise.then(function(val){promise.$$v=val})}pathVal=pathVal.$$v}if(!key1||pathVal===null||pathVal===undefined)return pathVal;pathVal=pathVal[key1];if(pathVal&&pathVal.then){if(!("$$v"in pat
 hVal)){promise=pathVal;promise.$$v=undefined;promise.then(function(val){promise.$$v=val})}pathVal=pathVal.$$v}if(!key2||pathVal===null||pathVal===undefined)return pathVal;pathVal=pathVal[key2];if(pathVal&&pathVal.then){if(!("$$v"in pathVal)){promise=pathVal;promise.$$v=undefined;promise.then(function(val){promise.$$v=val})}pathVal=pathVal.$$v}if(!key3||pathVal===null||pathVal===undefined)return pathVal;pathVal=pathVal[key3];if(pathVal&&pathVal.then){if(!("$$v"in pathVal)){promise=pathVal;promise.$$v=undefined;promise.then(function(val){promise.$$v=val})}pathVal=pathVal.$$v}if(!key4||pathVal===null||pathVal===undefined)return pathVal;pathVal=pathVal[key4];if(pathVal&&pathVal.then){if(!("$$v"in pathVal)){promise=pathVal;promise.$$v=undefined;promise.then(function(val){promis

<TRUNCATED>