var a,COMPILED=true,goog=goog||{};goog.global=this;goog.DEBUG=true;goog.LOCALE="en";goog.evalWorksForGlobals_=null;goog.provide=function(b){if(!COMPILED){if(goog.getObjectByName(b)&&!goog.implicitNamespaces_[b])throw Error('Namespace "'+b+'" already declared.');for(var c=b;c=c.substring(0,c.lastIndexOf("."));)goog.implicitNamespaces_[c]=true}goog.exportPath_(b)};if(!COMPILED)goog.implicitNamespaces_={};
goog.exportPath_=function(b,c,d){b=b.split(".");d=d||goog.global;!(b[0]in d)&&d.execScript&&d.execScript("var "+b[0]);for(var e;b.length&&(e=b.shift());)if(!b.length&&goog.isDef(c))d[e]=c;else d=d[e]?d[e]:(d[e]={})};goog.getObjectByName=function(b,c){b=b.split(".");c=c||goog.global;for(var d;d=b.shift();)if(c[d])c=c[d];else return null;return c};goog.globalize=function(b,c){c=c||goog.global;for(var d in b)c[d]=b[d]};
goog.addDependency=function(b,c,d){if(!COMPILED){var e;b=b.replace(/\\/g,"/");for(var f=goog.dependencies_,g=0;e=c[g];g++){f.nameToPath[e]=b;b in f.pathToNames||(f.pathToNames[b]={});f.pathToNames[b][e]=true}for(e=0;c=d[e];e++){b in f.requires||(f.requires[b]={});f.requires[b][c]=true}}};
goog.require=function(b){if(!COMPILED)if(!goog.getObjectByName(b)){var c=goog.getPathFromDeps_(b);if(c){goog.included_[c]=true;goog.writeScripts_()}else{b="goog.require could not find: "+b;goog.global.console&&goog.global.console.error(b);throw Error(b);}}};goog.useStrictRequires=false;goog.basePath="";goog.nullFunction=function(){};goog.identityFunction=function(b){return b};goog.abstractMethod=function(){throw Error("unimplemented abstract method");};
goog.addSingletonGetter=function(b){b.getInstance=function(){return b.instance_||(b.instance_=new b)}};
if(!COMPILED){goog.included_={};goog.dependencies_={pathToNames:{},nameToPath:{},requires:{},visited:{},written:{}};goog.inHtmlDocument_=function(){var b=goog.global.document;return typeof b!="undefined"&&"write"in b};goog.findBasePath_=function(){if(goog.inHtmlDocument_()){var b=goog.global.document;if(goog.global.CLOSURE_BASE_PATH)goog.basePath=goog.global.CLOSURE_BASE_PATH;else{b=b.getElementsByTagName("script");for(var c=b.length-1;c>=0;--c){var d=b[c].src,e=d.length;if(d.substr(e-7)=="base.js"){goog.basePath=
d.substr(0,e-7);return}}}}};goog.writeScriptTag_=function(b){if(goog.inHtmlDocument_()&&!goog.dependencies_.written[b]){goog.dependencies_.written[b]=true;goog.global.document.write('<script type="text/javascript" src="'+b+'"><\/script>')}};goog.writeScripts_=function(){function b(g){if(!(g in e.written)){if(!(g in e.visited)){e.visited[g]=true;if(g in e.requires)for(var h in e.requires[g])if(h in e.nameToPath)b(e.nameToPath[h]);else if(!goog.getObjectByName(h))throw Error("Undefined nameToPath for "+
h);}if(!(g in d)){d[g]=true;c.push(g)}}}var c=[],d={},e=goog.dependencies_;for(var f in goog.included_)e.written[f]||b(f);for(f=0;f<c.length;f++)if(c[f])goog.writeScriptTag_(goog.basePath+c[f]);else throw Error("Undefined script input");};goog.getPathFromDeps_=function(b){return b in goog.dependencies_.nameToPath?goog.dependencies_.nameToPath[b]:null};goog.findBasePath_();goog.global.CLOSURE_NO_DEPS||goog.writeScriptTag_(goog.basePath+"deps.js")}
goog.typeOf=function(b){var c=typeof b;if(c=="object")if(b){if(b instanceof Array||!(b instanceof Object)&&Object.prototype.toString.call(b)=="[object Array]"||typeof b.length=="number"&&typeof b.splice!="undefined"&&typeof b.propertyIsEnumerable!="undefined"&&!b.propertyIsEnumerable("splice"))return"array";if(!(b instanceof Object)&&(Object.prototype.toString.call(b)=="[object Function]"||typeof b.call!="undefined"&&typeof b.propertyIsEnumerable!="undefined"&&!b.propertyIsEnumerable("call")))return"function"}else return"null";
else if(c=="function"&&typeof b.call=="undefined")return"object";return c};goog.propertyIsEnumerableCustom_=function(b,c){if(c in b)for(var d in b)if(d==c&&Object.prototype.hasOwnProperty.call(b,c))return true;return false};goog.propertyIsEnumerable_=function(b,c){return b instanceof Object?Object.prototype.propertyIsEnumerable.call(b,c):goog.propertyIsEnumerableCustom_(b,c)};goog.isDef=function(b){return b!==undefined};goog.isNull=function(b){return b===null};
goog.isDefAndNotNull=function(b){return b!=null};goog.isArray=function(b){return goog.typeOf(b)=="array"};goog.isArrayLike=function(b){var c=goog.typeOf(b);return c=="array"||c=="object"&&typeof b.length=="number"};goog.isDateLike=function(b){return goog.isObject(b)&&typeof b.getFullYear=="function"};goog.isString=function(b){return typeof b=="string"};goog.isBoolean=function(b){return typeof b=="boolean"};goog.isNumber=function(b){return typeof b=="number"};
goog.isFunction=function(b){return goog.typeOf(b)=="function"};goog.isObject=function(b){b=goog.typeOf(b);return b=="object"||b=="array"||b=="function"};goog.getHashCode=function(b){if(b.hasOwnProperty&&b.hasOwnProperty(goog.HASH_CODE_PROPERTY_))return b[goog.HASH_CODE_PROPERTY_];b[goog.HASH_CODE_PROPERTY_]||(b[goog.HASH_CODE_PROPERTY_]=++goog.hashCodeCounter_);return b[goog.HASH_CODE_PROPERTY_]};goog.removeHashCode=function(b){"removeAttribute"in b&&b.removeAttribute(goog.HASH_CODE_PROPERTY_);try{delete b[goog.HASH_CODE_PROPERTY_]}catch(c){}};
goog.HASH_CODE_PROPERTY_="closure_hashCode_"+Math.floor(Math.random()*2147483648).toString(36);goog.hashCodeCounter_=0;goog.cloneObject=function(b){var c=goog.typeOf(b);if(c=="object"||c=="array"){if(b.clone)return b.clone.call(b);c=c=="array"?[]:{};for(var d in b)c[d]=goog.cloneObject(b[d]);return c}return b};
goog.bind=function(b,c){var d=c||goog.global;if(arguments.length>2){var e=Array.prototype.slice.call(arguments,2);return function(){var f=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(f,e);return b.apply(d,f)}}else return function(){return b.apply(d,arguments)}};goog.partial=function(b){var c=Array.prototype.slice.call(arguments,1);return function(){var d=Array.prototype.slice.call(arguments);d.unshift.apply(d,c);return b.apply(this,d)}};
goog.mixin=function(b,c){for(var d in c)b[d]=c[d]};goog.now=Date.now||function(){return+new Date};
goog.globalEval=function(b){if(goog.global.execScript)goog.global.execScript(b,"JavaScript");else if(goog.global.eval){if(goog.evalWorksForGlobals_==null){goog.global.eval("var _et_ = 1;");if(typeof goog.global._et_!="undefined"){delete goog.global._et_;goog.evalWorksForGlobals_=true}else goog.evalWorksForGlobals_=false}if(goog.evalWorksForGlobals_)goog.global.eval(b);else{var c=goog.global.document,d=c.createElement("script");d.type="text/javascript";d.defer=false;d.appendChild(c.createTextNode(b));
c.body.appendChild(d);c.body.removeChild(d)}}else throw Error("goog.globalEval not available");};goog.typedef=true;goog.getCssName=function(b,c){b=b+(c?"-"+c:"");return goog.cssNameMapping_&&b in goog.cssNameMapping_?goog.cssNameMapping_[b]:b};goog.setCssNameMapping=function(b){goog.cssNameMapping_=b};goog.getMsg=function(b,c){c=c||{};for(var d in c)b=b.replace(new RegExp("\\{\\$"+d+"\\}","gi"),c[d]);return b};goog.exportSymbol=function(b,c,d){goog.exportPath_(b,c,d)};
goog.exportProperty=function(b,c,d){b[c]=d};goog.inherits=function(b,c){function d(){}d.prototype=c.prototype;b.superClass_=c.prototype;b.prototype=new d;b.prototype.constructor=b};
goog.base=function(b,c){var d=arguments.callee.caller;if(d.superClass_)return d.superClass_.constructor.apply(b,Array.prototype.slice.call(arguments,1));for(var e=Array.prototype.slice.call(arguments,2),f=false,g=b.constructor;g;g=g.superClass_&&g.superClass_.constructor)if(g.prototype[c]===d)f=true;else if(f)return g.prototype[c].apply(b,e);if(b[c]===d)return b.constructor.prototype[c].apply(b,e);else throw Error("goog.base called from a method of one name to a method of a different name");};goog.array={};goog.array.ArrayLike=goog.typedef;goog.array.peek=function(b){return b[b.length-1]};goog.array.ARRAY_PROTOTYPE_=Array.prototype;goog.array.indexOf=goog.array.ARRAY_PROTOTYPE_.indexOf?function(b,c,d){return goog.array.ARRAY_PROTOTYPE_.indexOf.call(b,c,d)}:function(b,c,d){d=d==null?0:d<0?Math.max(0,b.length+d):d;if(goog.isString(b)){if(!goog.isString(c)||c.length!=1)return-1;return b.indexOf(c,d)}for(d=d;d<b.length;d++)if(d in b&&b[d]===c)return d;return-1};
goog.array.lastIndexOf=goog.array.ARRAY_PROTOTYPE_.lastIndexOf?function(b,c,d){return goog.array.ARRAY_PROTOTYPE_.lastIndexOf.call(b,c,d==null?b.length-1:d)}:function(b,c,d){d=d==null?b.length-1:d;if(d<0)d=Math.max(0,b.length+d);if(goog.isString(b)){if(!goog.isString(c)||c.length!=1)return-1;return b.lastIndexOf(c,d)}for(d=d;d>=0;d--)if(d in b&&b[d]===c)return d;return-1};
goog.array.forEach=goog.array.ARRAY_PROTOTYPE_.forEach?function(b,c,d){goog.array.ARRAY_PROTOTYPE_.forEach.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=goog.isString(b)?b.split(""):b,g=0;g<e;g++)g in f&&c.call(d,f[g],g,b)};goog.array.forEachRight=function(b,c,d){var e=b.length,f=goog.isString(b)?b.split(""):b;for(e=e-1;e>=0;--e)e in f&&c.call(d,f[e],e,b)};
goog.array.filter=goog.array.ARRAY_PROTOTYPE_.filter?function(b,c,d){return goog.array.ARRAY_PROTOTYPE_.filter.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=[],g=0,h=goog.isString(b)?b.split(""):b,i=0;i<e;i++)if(i in h){var j=h[i];if(c.call(d,j,i,b))f[g++]=j}return f};
goog.array.map=goog.array.ARRAY_PROTOTYPE_.map?function(b,c,d){return goog.array.ARRAY_PROTOTYPE_.map.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=new Array(e),g=goog.isString(b)?b.split(""):b,h=0;h<e;h++)if(h in g)f[h]=c.call(d,g[h],h,b);return f};goog.array.reduce=function(b,c,d,e){if(b.reduce)return e?b.reduce(goog.bind(c,e),d):b.reduce(c,d);var f=d;goog.array.forEach(b,function(g,h){f=c.call(e,f,g,h,b)});return f};
goog.array.reduceRight=function(b,c,d,e){if(b.reduceRight)return e?b.reduceRight(goog.bind(c,e),d):b.reduceRight(c,d);var f=d;goog.array.forEachRight(b,function(g,h){f=c.call(e,f,g,h,b)});return f};goog.array.some=goog.array.ARRAY_PROTOTYPE_.some?function(b,c,d){return goog.array.ARRAY_PROTOTYPE_.some.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=goog.isString(b)?b.split(""):b,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,b))return true;return false};
goog.array.every=goog.array.ARRAY_PROTOTYPE_.every?function(b,c,d){return goog.array.ARRAY_PROTOTYPE_.every.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=goog.isString(b)?b.split(""):b,g=0;g<e;g++)if(g in f&&!c.call(d,f[g],g,b))return false;return true};goog.array.find=function(b,c,d){c=goog.array.findIndex(b,c,d);return c<0?null:goog.isString(b)?b.charAt(c):b[c]};
goog.array.findIndex=function(b,c,d){for(var e=b.length,f=goog.isString(b)?b.split(""):b,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,b))return g;return-1};goog.array.findRight=function(b,c,d){c=goog.array.findIndexRight(b,c,d);return c<0?null:goog.isString(b)?b.charAt(c):b[c]};goog.array.findIndexRight=function(b,c,d){var e=b.length,f=goog.isString(b)?b.split(""):b;for(e=e-1;e>=0;e--)if(e in f&&c.call(d,f[e],e,b))return e;return-1};goog.array.contains=function(b,c){return goog.array.indexOf(b,c)>=0};
goog.array.isEmpty=function(b){return b.length==0};goog.array.clear=function(b){if(!goog.isArray(b))for(var c=b.length-1;c>=0;c--)delete b[c];b.length=0};goog.array.insert=function(b,c){goog.array.contains(b,c)||b.push(c)};goog.array.insertAt=function(b,c,d){goog.array.splice(b,d,0,c)};goog.array.insertArrayAt=function(b,c,d){goog.partial(goog.array.splice,b,d,0).apply(null,c)};
goog.array.insertBefore=function(b,c,d){var e;arguments.length==2||(e=goog.array.indexOf(b,d))<0?b.push(c):goog.array.insertAt(b,c,e)};goog.array.remove=function(b,c){c=goog.array.indexOf(b,c);var d;if(d=c>=0)goog.array.removeAt(b,c);return d};goog.array.removeAt=function(b,c){return goog.array.ARRAY_PROTOTYPE_.splice.call(b,c,1).length==1};goog.array.removeIf=function(b,c,d){c=goog.array.findIndex(b,c,d);if(c>=0){goog.array.removeAt(b,c);return true}return false};
goog.array.concat=function(){return goog.array.ARRAY_PROTOTYPE_.concat.apply(goog.array.ARRAY_PROTOTYPE_,arguments)};goog.array.clone=function(b){if(goog.isArray(b))return goog.array.concat(b);else{for(var c=[],d=0,e=b.length;d<e;d++)c[d]=b[d];return c}};goog.array.toArray=function(b){if(goog.isArray(b))return goog.array.concat(b);return goog.array.clone(b)};
goog.array.extend=function(b){for(var c=1;c<arguments.length;c++){var d=arguments[c],e;if(goog.isArray(d)||(e=goog.isArrayLike(d))&&d.hasOwnProperty("callee"))b.push.apply(b,d);else if(e)for(var f=b.length,g=d.length,h=0;h<g;h++)b[f+h]=d[h];else b.push(d)}};goog.array.splice=function(b){return goog.array.ARRAY_PROTOTYPE_.splice.apply(b,goog.array.slice(arguments,1))};
goog.array.slice=function(b,c,d){return arguments.length<=2?goog.array.ARRAY_PROTOTYPE_.slice.call(b,c):goog.array.ARRAY_PROTOTYPE_.slice.call(b,c,d)};goog.array.removeDuplicates=function(b,c){c=c||b;for(var d={},e=0,f=0;f<b.length;){var g=b[f++],h=goog.isObject(g)?goog.getHashCode(g):g;if(!Object.prototype.hasOwnProperty.call(d,h)){d[h]=true;c[e++]=g}}c.length=e};
goog.array.binarySearch=function(b,c,d){var e=0,f=b.length-1;for(d=d||goog.array.defaultCompare;e<=f;){var g=e+f>>1,h=d(c,b[g]);if(h>0)e=g+1;else if(h<0)f=g-1;else return g}return-(e+1)};goog.array.sort=function(b,c){goog.array.ARRAY_PROTOTYPE_.sort.call(b,c||goog.array.defaultCompare)};
goog.array.stableSort=function(b,c){function d(g,h){return f(g.value,h.value)||g.index-h.index}for(var e=0;e<b.length;e++)b[e]={index:e,value:b[e]};var f=c||goog.array.defaultCompare;goog.array.sort(b,d);for(e=0;e<b.length;e++)b[e]=b[e].value};goog.array.sortObjectsByKey=function(b,c,d){var e=d||goog.array.defaultCompare;goog.array.sort(b,function(f,g){return e(f[c],g[c])})};
goog.array.equals=function(b,c,d){if(!goog.isArrayLike(b)||!goog.isArrayLike(c)||b.length!=c.length)return false;var e=b.length;d=d||goog.array.defaultCompareEquality;for(var f=0;f<e;f++)if(!d(b[f],c[f]))return false;return true};goog.array.compare=function(b,c,d){return goog.array.equals(b,c,d)};goog.array.defaultCompare=function(b,c){return b>c?1:b<c?-1:0};goog.array.defaultCompareEquality=function(b,c){return b===c};
goog.array.binaryInsert=function(b,c,d){d=goog.array.binarySearch(b,c,d);if(d<0){goog.array.insertAt(b,c,-(d+1));return true}return false};goog.array.binaryRemove=function(b,c,d){c=goog.array.binarySearch(b,c,d);return c>=0?goog.array.removeAt(b,c):false};goog.array.bucket=function(b,c){for(var d={},e=0;e<b.length;e++){var f=b[e],g=c(f,e,b);if(goog.isDef(g))(d[g]||(d[g]=[])).push(f)}return d};goog.array.repeat=function(b,c){for(var d=[],e=0;e<c;e++)d[e]=b;return d};
goog.array.flatten=function(){for(var b=[],c=0;c<arguments.length;c++){var d=arguments[c];goog.isArray(d)?b.push.apply(b,goog.array.flatten.apply(null,d)):b.push(d)}return b};goog.array.rotate=function(b,c){if(b.length){c%=b.length;if(c>0)goog.array.ARRAY_PROTOTYPE_.unshift.apply(b,b.splice(-c,c));else c<0&&goog.array.ARRAY_PROTOTYPE_.push.apply(b,b.splice(0,-c))}return b};goog.dom={};
goog.dom.TagName={A:"A",ABBR:"ABBR",ACRONYM:"ACRONYM",ADDRESS:"ADDRESS",APPLET:"APPLET",AREA:"AREA",B:"B",BASE:"BASE",BASEFONT:"BASEFONT",BDO:"BDO",BIG:"BIG",BLOCKQUOTE:"BLOCKQUOTE",BODY:"BODY",BR:"BR",BUTTON:"BUTTON",CAPTION:"CAPTION",CENTER:"CENTER",CITE:"CITE",CODE:"CODE",COL:"COL",COLGROUP:"COLGROUP",DD:"DD",DEL:"DEL",DFN:"DFN",DIR:"DIR",DIV:"DIV",DL:"DL",DT:"DT",EM:"EM",FIELDSET:"FIELDSET",FONT:"FONT",FORM:"FORM",FRAME:"FRAME",FRAMESET:"FRAMESET",H1:"H1",H2:"H2",H3:"H3",H4:"H4",H5:"H5",H6:"H6",
HEAD:"HEAD",HR:"HR",HTML:"HTML",I:"I",IFRAME:"IFRAME",IMG:"IMG",INPUT:"INPUT",INS:"INS",ISINDEX:"ISINDEX",KBD:"KBD",LABEL:"LABEL",LEGEND:"LEGEND",LI:"LI",LINK:"LINK",MAP:"MAP",MENU:"MENU",META:"META",NOFRAMES:"NOFRAMES",NOSCRIPT:"NOSCRIPT",OBJECT:"OBJECT",OL:"OL",OPTGROUP:"OPTGROUP",OPTION:"OPTION",P:"P",PARAM:"PARAM",PRE:"PRE",Q:"Q",S:"S",SAMP:"SAMP",SCRIPT:"SCRIPT",SELECT:"SELECT",SMALL:"SMALL",SPAN:"SPAN",STRIKE:"STRIKE",STRONG:"STRONG",STYLE:"STYLE",SUB:"SUB",SUP:"SUP",TABLE:"TABLE",TBODY:"TBODY",
TD:"TD",TEXTAREA:"TEXTAREA",TFOOT:"TFOOT",TH:"TH",THEAD:"THEAD",TITLE:"TITLE",TR:"TR",TT:"TT",U:"U",UL:"UL",VAR:"VAR"};goog.dom.classes={};goog.dom.classes.set=function(b,c){b.className=c};goog.dom.classes.get=function(b){return(b=b.className)&&typeof b.split=="function"?b.split(/\s+/):[]};goog.dom.classes.add=function(b){var c=goog.dom.classes.get(b),d=goog.array.slice(arguments,1);d=goog.dom.classes.add_(c,d);b.className=c.join(" ");return d};goog.dom.classes.remove=function(b){var c=goog.dom.classes.get(b),d=goog.array.slice(arguments,1);d=goog.dom.classes.remove_(c,d);b.className=c.join(" ");return d};
goog.dom.classes.add_=function(b,c){for(var d=0,e=0;e<c.length;e++)if(!goog.array.contains(b,c[e])){b.push(c[e]);d++}return d==c.length};goog.dom.classes.remove_=function(b,c){for(var d=0,e=0;e<b.length;e++)if(goog.array.contains(c,b[e])){goog.array.splice(b,e--,1);d++}return d==c.length};goog.dom.classes.swap=function(b,c,d){for(var e=goog.dom.classes.get(b),f=false,g=0;g<e.length;g++)if(e[g]==c){goog.array.splice(e,g--,1);f=true}if(f){e.push(d);b.className=e.join(" ")}return f};
goog.dom.classes.addRemove=function(b,c,d){var e=goog.dom.classes.get(b);if(goog.isString(c))goog.array.remove(e,c);else goog.isArray(c)&&goog.dom.classes.remove_(e,c);if(goog.isString(d)&&!goog.array.contains(e,d))e.push(d);else goog.isArray(d)&&goog.dom.classes.add_(e,d);b.className=e.join(" ")};goog.dom.classes.has=function(b,c){return goog.array.contains(goog.dom.classes.get(b),c)};goog.dom.classes.enable=function(b,c,d){d?goog.dom.classes.add(b,c):goog.dom.classes.remove(b,c)};
goog.dom.classes.toggle=function(b,c){var d=!goog.dom.classes.has(b,c);goog.dom.classes.enable(b,c,d);return d};goog.math={};goog.math.Coordinate=function(b,c){this.x=goog.isDef(b)?b:0;this.y=goog.isDef(c)?c:0};goog.math.Coordinate.prototype.clone=function(){return new goog.math.Coordinate(this.x,this.y)};if(goog.DEBUG)goog.math.Coordinate.prototype.toString=function(){return"("+this.x+", "+this.y+")"};goog.math.Coordinate.equals=function(b,c){if(b==c)return true;if(!b||!c)return false;return b.x==c.x&&b.y==c.y};goog.math.Coordinate.distance=function(b,c){var d=b.x-c.x;b=b.y-c.y;return Math.sqrt(d*d+b*b)};
goog.math.Coordinate.squaredDistance=function(b,c){var d=b.x-c.x;b=b.y-c.y;return d*d+b*b};goog.math.Coordinate.difference=function(b,c){return new goog.math.Coordinate(b.x-c.x,b.y-c.y)};goog.math.Coordinate.sum=function(b,c){return new goog.math.Coordinate(b.x+c.x,b.y+c.y)};goog.math.Size=function(b,c){this.width=b;this.height=c};goog.math.Size.equals=function(b,c){if(b==c)return true;if(!b||!c)return false;return b.width==c.width&&b.height==c.height};goog.math.Size.prototype.clone=function(){return new goog.math.Size(this.width,this.height)};if(goog.DEBUG)goog.math.Size.prototype.toString=function(){return"("+this.width+" x "+this.height+")"};a=goog.math.Size.prototype;a.getLongest=function(){return Math.max(this.width,this.height)};
a.getShortest=function(){return Math.min(this.width,this.height)};a.area=function(){return this.width*this.height};a.aspectRatio=function(){return this.width/this.height};a.isEmpty=function(){return!this.area()};a.ceil=function(){this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};a.fitsInside=function(b){return this.width<=b.width&&this.height<=b.height};a.floor=function(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};
a.round=function(){this.width=Math.round(this.width);this.height=Math.round(this.height);return this};a.scale=function(b){this.width*=b;this.height*=b;return this};a.scaleToFit=function(b){return this.scale(this.aspectRatio()>b.aspectRatio()?b.width/this.width:b.height/this.height)};goog.object={};goog.object.forEach=function(b,c,d){for(var e in b)c.call(d,b[e],e,b)};goog.object.filter=function(b,c,d){var e={};for(var f in b)if(c.call(d,b[f],f,b))e[f]=b[f];return e};goog.object.map=function(b,c,d){var e={};for(var f in b)e[f]=c.call(d,b[f],f,b);return e};goog.object.some=function(b,c,d){for(var e in b)if(c.call(d,b[e],e,b))return true;return false};goog.object.every=function(b,c,d){for(var e in b)if(!c.call(d,b[e],e,b))return false;return true};
goog.object.getCount=function(b){var c=0;for(var d in b)c++;return c};goog.object.getAnyKey=function(b){for(var c in b)return c};goog.object.getAnyValue=function(b){for(var c in b)return b[c]};goog.object.contains=function(b,c){return goog.object.containsValue(b,c)};goog.object.getValues=function(b){var c=[],d=0;for(var e in b)c[d++]=b[e];return c};goog.object.getKeys=function(b){var c=[],d=0;for(var e in b)c[d++]=e;return c};goog.object.containsKey=function(b,c){return c in b};
goog.object.containsValue=function(b,c){for(var d in b)if(b[d]==c)return true;return false};goog.object.findKey=function(b,c,d){for(var e in b)if(c.call(d,b[e],e,b))return e};goog.object.findValue=function(b,c,d){return(c=goog.object.findKey(b,c,d))&&b[c]};goog.object.isEmpty=function(b){for(var c in b)return false;return true};goog.object.clear=function(b){for(var c=goog.object.getKeys(b),d=c.length-1;d>=0;d--)goog.object.remove(b,c[d])};
goog.object.remove=function(b,c){var d;if(d=c in b)delete b[c];return d};goog.object.add=function(b,c,d){if(c in b)throw Error('The object already contains the key "'+c+'"');goog.object.set(b,c,d)};goog.object.get=function(b,c,d){if(c in b)return b[c];return d};goog.object.set=function(b,c,d){b[c]=d};goog.object.setIfUndefined=function(b,c,d){return c in b?b[c]:(b[c]=d)};goog.object.clone=function(b){var c={};for(var d in b)c[d]=b[d];return c};
goog.object.transpose=function(b){var c={};for(var d in b)c[b[d]]=d;return c};goog.object.PROTOTYPE_FIELDS_=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"];goog.object.extend=function(b){for(var c,d,e=1;e<arguments.length;e++){d=arguments[e];for(c in d)b[c]=d[c];for(var f=0;f<goog.object.PROTOTYPE_FIELDS_.length;f++){c=goog.object.PROTOTYPE_FIELDS_[f];if(Object.prototype.hasOwnProperty.call(d,c))b[c]=d[c]}}};
goog.object.create=function(){var b=arguments.length;if(b==1&&goog.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(b%2)throw Error("Uneven number of arguments");for(var c={},d=0;d<b;d+=2)c[arguments[d]]=arguments[d+1];return c};goog.object.createSet=function(){var b=arguments.length;if(b==1&&goog.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var c={},d=0;d<b;d++)c[arguments[d]]=true;return c};goog.string={};goog.string.Unicode={NBSP:"\u00a0"};goog.string.startsWith=function(b,c){return b.indexOf(c)==0};goog.string.endsWith=function(b,c){var d=b.length-c.length;return d>=0&&b.lastIndexOf(c,d)==d};goog.string.caseInsensitiveStartsWith=function(b,c){return goog.string.caseInsensitiveCompare(c,b.substr(0,c.length))==0};goog.string.caseInsensitiveEndsWith=function(b,c){return goog.string.caseInsensitiveCompare(c,b.substr(b.length-c.length,c.length))==0};
goog.string.subs=function(b){for(var c=1;c<arguments.length;c++){var d=String(arguments[c]).replace(/\$/g,"$$$$");b=b.replace(/\%s/,d)}return b};goog.string.collapseWhitespace=function(b){return b.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")};goog.string.isEmpty=function(b){return/^[\s\xa0]*$/.test(b)};goog.string.isEmptySafe=function(b){return goog.string.isEmpty(goog.string.makeSafe(b))};goog.string.isBreakingWhitespace=function(b){return!/[^\t\n\r ]/.test(b)};goog.string.isAlpha=function(b){return!/[^a-zA-Z]/.test(b)};
goog.string.isNumeric=function(b){return!/[^0-9]/.test(b)};goog.string.isAlphaNumeric=function(b){return!/[^a-zA-Z0-9]/.test(b)};goog.string.isSpace=function(b){return b==" "};goog.string.isUnicodeChar=function(b){return b.length==1&&b>=" "&&b<="~"||b>="\u0080"&&b<="\ufffd"};goog.string.stripNewlines=function(b){return b.replace(/(\r\n|\r|\n)+/g," ")};goog.string.canonicalizeNewlines=function(b){return b.replace(/(\r\n|\r|\n)/g,"\n")};
goog.string.normalizeWhitespace=function(b){return b.replace(/\xa0|\s/g," ")};goog.string.normalizeSpaces=function(b){return b.replace(/\xa0|[ \t]+/g," ")};goog.string.trim=function(b){return b.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};goog.string.trimLeft=function(b){return b.replace(/^[\s\xa0]+/,"")};goog.string.trimRight=function(b){return b.replace(/[\s\xa0]+$/,"")};goog.string.caseInsensitiveCompare=function(b,c){b=String(b).toLowerCase();c=String(c).toLowerCase();return b<c?-1:b==c?0:1};
goog.string.numerateCompareRegExp_=/(\.\d+)|(\d+)|(\D+)/g;goog.string.numerateCompare=function(b,c){if(b==c)return 0;if(!b)return-1;if(!c)return 1;for(var d=b.toLowerCase().match(goog.string.numerateCompareRegExp_),e=c.toLowerCase().match(goog.string.numerateCompareRegExp_),f=Math.min(d.length,e.length),g=0;g<f;g++){var h=d[g],i=e[g];if(h!=i){b=parseInt(h,10);if(!isNaN(b)){c=parseInt(i,10);if(!isNaN(c)&&b-c)return b-c}return h<i?-1:1}}if(d.length!=e.length)return d.length-e.length;return b<c?-1:1};
goog.string.encodeUriRegExp_=/^[a-zA-Z0-9\-_.!~*'()]*$/;goog.string.urlEncode=function(b){b=String(b);if(!goog.string.encodeUriRegExp_.test(b))return encodeURIComponent(b);return b};goog.string.urlDecode=function(b){return decodeURIComponent(b.replace(/\+/g," "))};goog.string.newLineToBr=function(b,c){return b.replace(/(\r\n|\r|\n)/g,c?"<br />":"<br>")};
goog.string.htmlEscape=function(b,c){if(c)return b.replace(goog.string.amperRe_,"&amp;").replace(goog.string.ltRe_,"&lt;").replace(goog.string.gtRe_,"&gt;").replace(goog.string.quotRe_,"&quot;");else{if(!goog.string.allRe_.test(b))return b;if(b.indexOf("&")!=-1)b=b.replace(goog.string.amperRe_,"&amp;");if(b.indexOf("<")!=-1)b=b.replace(goog.string.ltRe_,"&lt;");if(b.indexOf(">")!=-1)b=b.replace(goog.string.gtRe_,"&gt;");if(b.indexOf('"')!=-1)b=b.replace(goog.string.quotRe_,"&quot;");return b}};
goog.string.amperRe_=/&/g;goog.string.ltRe_=/</g;goog.string.gtRe_=/>/g;goog.string.quotRe_=/\"/g;goog.string.allRe_=/[&<>\"]/;goog.string.unescapeEntities=function(b){if(goog.string.contains(b,"&"))return"document"in goog.global&&!goog.string.contains(b,"<")?goog.string.unescapeEntitiesUsingDom_(b):goog.string.unescapePureXmlEntities_(b);return b};
goog.string.unescapeEntitiesUsingDom_=function(b){var c=goog.global.document.createElement("a");c.innerHTML=b;c[goog.string.NORMALIZE_FN_]&&c[goog.string.NORMALIZE_FN_]();b=c.firstChild.nodeValue;c.innerHTML="";return b};goog.string.unescapePureXmlEntities_=function(b){return b.replace(/&([^;]+);/g,function(c,d){switch(d){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:if(d.charAt(0)=="#"){d=Number("0"+d.substr(1));if(!isNaN(d))return String.fromCharCode(d)}return c}})};
goog.string.NORMALIZE_FN_="normalize";goog.string.whitespaceEscape=function(b,c){return goog.string.newLineToBr(b.replace(/  /g," &#160;"),c)};goog.string.stripQuotes=function(b,c){for(var d=c.length,e=0;e<d;e++){var f=d==1?c:c.charAt(e);if(b.charAt(0)==f&&b.charAt(b.length-1)==f)return b.substring(1,b.length-1)}return b};goog.string.truncate=function(b,c,d){if(d)b=goog.string.unescapeEntities(b);if(b.length>c)b=b.substring(0,c-3)+"...";if(d)b=goog.string.htmlEscape(b);return b};
goog.string.truncateMiddle=function(b,c,d){if(d)b=goog.string.unescapeEntities(b);if(b.length>c){var e=Math.floor(c/2),f=b.length-e;e+=c%2;b=b.substring(0,e)+"..."+b.substring(f)}if(d)b=goog.string.htmlEscape(b);return b};goog.string.jsEscapeCache_={"\u0008":"\\b","\u000c":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\u000b":"\\x0B",'"':'\\"',"'":"\\'","\\":"\\\\"};
goog.string.quote=function(b){b=String(b);if(b.quote)return b.quote();else{for(var c=['"'],d=0;d<b.length;d++)c[d+1]=goog.string.escapeChar(b.charAt(d));c.push('"');return c.join("")}};goog.string.escapeChar=function(b){if(b in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[b];var c=b,d=b.charCodeAt(0);if(d>31&&d<127)c=b;else{if(d<256){c="\\x";if(d<16||d>256)c+="0"}else{c="\\u";if(d<4096)c+="0"}c+=d.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[b]=c};
goog.string.toMap=function(b){for(var c={},d=0;d<b.length;d++)c[b.charAt(d)]=true;return c};goog.string.contains=function(b,c){return b.indexOf(c)!=-1};goog.string.removeAt=function(b,c,d){var e=b;if(c>=0&&c<b.length&&d>0)e=b.substr(0,c)+b.substr(c+d,b.length-c-d);return e};goog.string.remove=function(b,c){c=new RegExp(goog.string.regExpEscape(c),"");return b.replace(c,"")};goog.string.removeAll=function(b,c){c=new RegExp(goog.string.regExpEscape(c),"g");return b.replace(c,"")};
goog.string.regExpEscape=function(b){return String(b).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};goog.string.repeat=function(b,c){return(new Array(c+1)).join(b)};goog.string.padNumber=function(b,c,d){b=goog.isDef(d)?b.toFixed(d):String(b);d=b.indexOf(".");if(d==-1)d=b.length;return goog.string.repeat("0",Math.max(0,c-d))+b};goog.string.makeSafe=function(b){return b==null?"":String(b)};goog.string.buildString=function(){return Array.prototype.join.call(arguments,"")};
goog.string.getRandomString=function(){return Math.floor(Math.random()*2147483648).toString(36)+(Math.floor(Math.random()*2147483648)^goog.now()).toString(36)};
goog.string.compareVersions=function(b,c){var d=0;b=goog.string.trim(String(b)).split(".");c=goog.string.trim(String(c)).split(".");for(var e=Math.max(b.length,c.length),f=0;d==0&&f<e;f++){var g=b[f]||"",h=c[f]||"",i=new RegExp("(\\d*)(\\D*)","g"),j=new RegExp("(\\d*)(\\D*)","g");do{var l=i.exec(g)||["","",""],k=j.exec(h)||["","",""];if(l[0].length==0&&k[0].length==0)break;d=l[1].length==0?0:parseInt(l[1],10);var n=k[1].length==0?0:parseInt(k[1],10);d=goog.string.compareElements_(d,n)||goog.string.compareElements_(l[2].length==
0,k[2].length==0)||goog.string.compareElements_(l[2],k[2])}while(d==0)}return d};goog.string.compareElements_=function(b,c){if(b<c)return-1;else if(b>c)return 1;return 0};goog.string.HASHCODE_MAX_=4294967296;goog.string.hashCode=function(b){for(var c=0,d=0;d<b.length;++d){c=31*c+b.charCodeAt(d);c%=goog.string.HASHCODE_MAX_}return c};goog.string.uniqueStringCounter_=goog.now();goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++};
goog.string.toNumber=function(b){var c=Number(b);if(c==0&&goog.string.isEmpty(b))return NaN;return c};goog.userAgent={};goog.userAgent.ASSUME_IE=false;goog.userAgent.ASSUME_GECKO=false;goog.userAgent.ASSUME_WEBKIT=false;goog.userAgent.ASSUME_MOBILE_WEBKIT=false;goog.userAgent.ASSUME_OPERA=false;goog.userAgent.BROWSER_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_GECKO||goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_OPERA;goog.userAgent.getUserAgentString=function(){return goog.global.navigator?goog.global.navigator.userAgent:null};
goog.userAgent.getNavigator=function(){return goog.global.navigator};
goog.userAgent.init_=function(){goog.userAgent.detectedOpera_=false;goog.userAgent.detectedIe_=false;goog.userAgent.detectedWebkit_=false;goog.userAgent.detectedMobile_=false;goog.userAgent.detectedGecko_=false;var b;if(!goog.userAgent.BROWSER_KNOWN_&&(b=goog.userAgent.getUserAgentString())){var c=goog.userAgent.getNavigator();goog.userAgent.detectedOpera_=b.indexOf("Opera")==0;goog.userAgent.detectedIe_=!goog.userAgent.detectedOpera_&&b.indexOf("MSIE")!=-1;goog.userAgent.detectedWebkit_=!goog.userAgent.detectedOpera_&&
b.indexOf("WebKit")!=-1;goog.userAgent.detectedMobile_=goog.userAgent.detectedWebkit_&&b.indexOf("Mobile")!=-1;goog.userAgent.detectedGecko_=!goog.userAgent.detectedOpera_&&!goog.userAgent.detectedWebkit_&&c.product=="Gecko"}};goog.userAgent.BROWSER_KNOWN_||goog.userAgent.init_();goog.userAgent.OPERA=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_OPERA:goog.userAgent.detectedOpera_;goog.userAgent.IE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_IE:goog.userAgent.detectedIe_;
goog.userAgent.GECKO=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_GECKO:goog.userAgent.detectedGecko_;goog.userAgent.WEBKIT=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_MOBILE_WEBKIT:goog.userAgent.detectedWebkit_;goog.userAgent.MOBILE=goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.detectedMobile_;goog.userAgent.SAFARI=goog.userAgent.WEBKIT;goog.userAgent.determinePlatform_=function(){var b=goog.userAgent.getNavigator();return b&&b.platform||""};
goog.userAgent.PLATFORM=goog.userAgent.determinePlatform_();goog.userAgent.ASSUME_MAC=false;goog.userAgent.ASSUME_WINDOWS=false;goog.userAgent.ASSUME_LINUX=false;goog.userAgent.ASSUME_X11=false;goog.userAgent.PLATFORM_KNOWN_=goog.userAgent.ASSUME_MAC||goog.userAgent.ASSUME_WINDOWS||goog.userAgent.ASSUME_LINUX||goog.userAgent.ASSUME_X11;
goog.userAgent.initPlatform_=function(){goog.userAgent.detectedMac_=goog.string.contains(goog.userAgent.PLATFORM,"Mac");goog.userAgent.detectedWindows_=goog.string.contains(goog.userAgent.PLATFORM,"Win");goog.userAgent.detectedLinux_=goog.string.contains(goog.userAgent.PLATFORM,"Linux");goog.userAgent.detectedX11_=!!goog.userAgent.getNavigator()&&goog.string.contains(goog.userAgent.getNavigator().appVersion||"","X11")};goog.userAgent.PLATFORM_KNOWN_||goog.userAgent.initPlatform_();
goog.userAgent.MAC=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_MAC:goog.userAgent.detectedMac_;goog.userAgent.WINDOWS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_WINDOWS:goog.userAgent.detectedWindows_;goog.userAgent.LINUX=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_LINUX:goog.userAgent.detectedLinux_;goog.userAgent.X11=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_X11:goog.userAgent.detectedX11_;
goog.userAgent.determineVersion_=function(){var b="",c;if(goog.userAgent.OPERA&&goog.global.opera){b=goog.global.opera.version;b=typeof b=="function"?b():b}else{if(goog.userAgent.GECKO)c=/rv\:([^\);]+)(\)|;)/;else if(goog.userAgent.IE)c=/MSIE\s+([^\);]+)(\)|;)/;else if(goog.userAgent.WEBKIT)c=/WebKit\/(\S+)/;if(c)b=(b=c.exec(goog.userAgent.getUserAgentString()))?b[1]:""}return b};goog.userAgent.VERSION=goog.userAgent.determineVersion_();
goog.userAgent.compare=function(b,c){return goog.string.compareVersions(b,c)};goog.userAgent.isVersionCache_={};goog.userAgent.isVersion=function(b){return goog.userAgent.isVersionCache_[b]||(goog.userAgent.isVersionCache_[b]=goog.string.compareVersions(goog.userAgent.VERSION,b)>=0)};goog.dom.ASSUME_QUIRKS_MODE=false;goog.dom.ASSUME_STANDARDS_MODE=false;goog.dom.COMPAT_MODE_KNOWN_=goog.dom.ASSUME_QUIRKS_MODE||goog.dom.ASSUME_STANDARDS_MODE;goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};goog.dom.getDomHelper=function(b){return b?new goog.dom.DomHelper(goog.dom.getOwnerDocument(b)):goog.dom.defaultDomHelper_||(goog.dom.defaultDomHelper_=new goog.dom.DomHelper)};
goog.dom.getDocument=function(){return document};goog.dom.getElement=function(b){return goog.isString(b)?document.getElementById(b):b};goog.dom.$=goog.dom.getElement;goog.dom.getElementsByTagNameAndClass=function(b,c,d){return goog.dom.getElementsByTagNameAndClass_(document,b,c,d)};
goog.dom.getElementsByTagNameAndClass_=function(b,c,d,e){e=e||b;c=c&&c!="*"?c.toUpperCase():"";if(e.querySelectorAll&&(c||d)&&(!goog.userAgent.WEBKIT||goog.dom.isCss1CompatMode_(b)||goog.userAgent.isVersion("528")))return e.querySelectorAll(c+(d?"."+d:""));if(d&&e.getElementsByClassName){b=e.getElementsByClassName(d);if(c){e={};for(var f=0,g=0,h;h=b[g];g++)if(c==h.nodeName)e[f++]=h;e.length=f;return e}else return b}b=e.getElementsByTagName(c||"*");if(d){e={};for(g=f=0;h=b[g];g++){c=h.className;if(typeof c.split==
"function"&&goog.array.contains(c.split(/\s+/),d))e[f++]=h}e.length=f;return e}else return b};goog.dom.$$=goog.dom.getElementsByTagNameAndClass;goog.dom.setProperties=function(b,c){goog.object.forEach(c,function(d,e){if(e=="style")b.style.cssText=d;else if(e=="class")b.className=d;else if(e=="for")b.htmlFor=d;else if(e in goog.dom.DIRECT_ATTRIBUTE_MAP_)b.setAttribute(goog.dom.DIRECT_ATTRIBUTE_MAP_[e],d);else b[e]=d})};
goog.dom.DIRECT_ATTRIBUTE_MAP_={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",rowspan:"rowSpan",valign:"vAlign",height:"height",width:"width",usemap:"useMap",frameborder:"frameBorder",type:"type"};goog.dom.getViewportSize=function(b){return goog.dom.getViewportSize_(b||window)};
goog.dom.getViewportSize_=function(b){var c=b.document;if(goog.userAgent.WEBKIT&&!goog.userAgent.isVersion("500")&&!goog.userAgent.MOBILE){if(typeof b.innerHeight=="undefined")b=window;c=b.innerHeight;var d=b.document.documentElement.scrollHeight;if(b==b.top)if(d<c)c-=15;return new goog.math.Size(b.innerWidth,c)}b=goog.dom.isCss1CompatMode_(c)&&(!goog.userAgent.OPERA||goog.userAgent.OPERA&&goog.userAgent.isVersion("9.50"))?c.documentElement:c.body;return new goog.math.Size(b.clientWidth,b.clientHeight)};
goog.dom.getDocumentHeight=function(){return goog.dom.getDocumentHeight_(window)};goog.dom.getDocumentHeight_=function(b){var c=b.document,d=0;if(c){b=goog.dom.getViewportSize_(b).height;d=c.body;var e=c.documentElement;if(goog.dom.isCss1CompatMode_(c)&&e.scrollHeight)d=e.scrollHeight!=b?e.scrollHeight:e.offsetHeight;else{c=e.scrollHeight;var f=e.offsetHeight;if(e.clientHeight!=f){c=d.scrollHeight;f=d.offsetHeight}d=c>b?c>f?c:f:c<f?c:f}}return d};
goog.dom.getPageScroll=function(b){return goog.dom.getDomHelper((b||goog.global||window).document).getDocumentScroll()};goog.dom.getDocumentScroll=function(){return goog.dom.getDocumentScroll_(document)};goog.dom.getDocumentScroll_=function(b){b=goog.dom.getDocumentScrollElement_(b);return new goog.math.Coordinate(b.scrollLeft,b.scrollTop)};goog.dom.getDocumentScrollElement=function(){return goog.dom.getDocumentScrollElement_(document)};
goog.dom.getDocumentScrollElement_=function(b){return!goog.userAgent.WEBKIT&&goog.dom.isCss1CompatMode_(b)?b.documentElement:b.body};goog.dom.getWindow=function(b){return b?goog.dom.getWindow_(b):window};goog.dom.getWindow_=function(b){return b.parentWindow||b.defaultView};goog.dom.createDom=function(){return goog.dom.createDom_(document,arguments)};
goog.dom.createDom_=function(b,c){var d=c[0],e=c[1];if(goog.userAgent.IE&&e&&(e.name||e.type)){d=["<",d];e.name&&d.push(' name="',goog.string.htmlEscape(e.name),'"');if(e.type){d.push(' type="',goog.string.htmlEscape(e.type),'"');e=goog.cloneObject(e);delete e.type}d.push(">");d=d.join("")}var f=b.createElement(d);if(e)if(goog.isString(e))f.className=e;else goog.dom.setProperties(f,e);if(c.length>2){e=function(h){if(h)f.appendChild(goog.isString(h)?b.createTextNode(h):h)};for(d=2;d<c.length;d++){var g=
c[d];goog.isArrayLike(g)&&!goog.dom.isNodeLike(g)?goog.array.forEach(goog.dom.isNodeList(g)?goog.array.clone(g):g,e):e(g)}}return f};goog.dom.$dom=goog.dom.createDom;goog.dom.createElement=function(b){return document.createElement(b)};goog.dom.createTextNode=function(b){return document.createTextNode(b)};goog.dom.htmlToDocumentFragment=function(b){return goog.dom.htmlToDocumentFragment_(document,b)};
goog.dom.htmlToDocumentFragment_=function(b,c){var d=b.createElement("div");d.innerHTML=c;if(d.childNodes.length==1)return d.firstChild;else{for(b=b.createDocumentFragment();d.firstChild;)b.appendChild(d.firstChild);return b}};goog.dom.getCompatMode=function(){return goog.dom.isCss1CompatMode()?"CSS1Compat":"BackCompat"};goog.dom.isCss1CompatMode=function(){return goog.dom.isCss1CompatMode_(document)};
goog.dom.isCss1CompatMode_=function(b){if(goog.dom.COMPAT_MODE_KNOWN_)return goog.dom.ASSUME_STANDARDS_MODE;return b.compatMode=="CSS1Compat"};goog.dom.canHaveChildren=function(b){if(b.nodeType!=goog.dom.NodeType.ELEMENT)return false;if("canHaveChildren"in b)return b.canHaveChildren;switch(b.tagName){case goog.dom.TagName.APPLET:case goog.dom.TagName.AREA:case goog.dom.TagName.BASE:case goog.dom.TagName.BR:case goog.dom.TagName.COL:case goog.dom.TagName.FRAME:case goog.dom.TagName.HR:case goog.dom.TagName.IMG:case goog.dom.TagName.INPUT:case goog.dom.TagName.IFRAME:case goog.dom.TagName.ISINDEX:case goog.dom.TagName.LINK:case goog.dom.TagName.NOFRAMES:case goog.dom.TagName.NOSCRIPT:case goog.dom.TagName.META:case goog.dom.TagName.OBJECT:case goog.dom.TagName.PARAM:case goog.dom.TagName.SCRIPT:case goog.dom.TagName.STYLE:return false}return true};
goog.dom.appendChild=function(b,c){b.appendChild(c)};goog.dom.removeChildren=function(b){for(var c;c=b.firstChild;)b.removeChild(c)};goog.dom.insertSiblingBefore=function(b,c){c.parentNode&&c.parentNode.insertBefore(b,c)};goog.dom.insertSiblingAfter=function(b,c){c.parentNode&&c.parentNode.insertBefore(b,c.nextSibling)};goog.dom.removeNode=function(b){return b&&b.parentNode?b.parentNode.removeChild(b):null};goog.dom.replaceNode=function(b,c){var d=c.parentNode;d&&d.replaceChild(b,c)};
goog.dom.flattenElement=function(b){var c,d=b.parentNode;if(d&&d.nodeType!=goog.dom.NodeType.DOCUMENT_FRAGMENT)if(b.removeNode)return b.removeNode(false);else{for(;c=b.firstChild;)d.insertBefore(c,b);return goog.dom.removeNode(b)}};goog.dom.getFirstElementChild=function(b){return goog.dom.getNextElementNode_(b.firstChild,true)};goog.dom.getLastElementChild=function(b){return goog.dom.getNextElementNode_(b.lastChild,false)};
goog.dom.getNextElementSibling=function(b){return goog.dom.getNextElementNode_(b.nextSibling,true)};goog.dom.getPreviousElementSibling=function(b){return goog.dom.getNextElementNode_(b.previousSibling,false)};goog.dom.getNextElementNode_=function(b,c){for(;b&&b.nodeType!=goog.dom.NodeType.ELEMENT;)b=c?b.nextSibling:b.previousSibling;return b};goog.dom.isNodeLike=function(b){return goog.isObject(b)&&b.nodeType>0};
goog.dom.contains=function(b,c){if(b.contains&&c.nodeType==goog.dom.NodeType.ELEMENT)return b==c||b.contains(c);if(typeof b.compareDocumentPosition!="undefined")return b==c||Boolean(b.compareDocumentPosition(c)&16);for(;c&&b!=c;)c=c.parentNode;return c==b};
goog.dom.compareNodeOrder=function(b,c){if(b==c)return 0;if(b.compareDocumentPosition)return b.compareDocumentPosition(c)&2?1:-1;if("sourceIndex"in b||b.parentNode&&"sourceIndex"in b.parentNode){var d=b.nodeType==goog.dom.NodeType.ELEMENT,e=c.nodeType==goog.dom.NodeType.ELEMENT;if(d&&e)return b.sourceIndex-c.sourceIndex;else{var f=b.parentNode,g=c.parentNode;if(f==g)return goog.dom.compareSiblingOrder_(b,c);if(!d&&goog.dom.contains(f,c))return-1*goog.dom.compareParentsDescendantNodeIe_(b,c);if(!e&&
goog.dom.contains(g,b))return goog.dom.compareParentsDescendantNodeIe_(c,b);return(d?b.sourceIndex:f.sourceIndex)-(e?c.sourceIndex:g.sourceIndex)}}e=goog.dom.getOwnerDocument(b);d=e.createRange();d.selectNode(b);d.collapse(true);b=e.createRange();b.selectNode(c);b.collapse(true);return d.compareBoundaryPoints(goog.global.Range.START_TO_END,b)};
goog.dom.compareParentsDescendantNodeIe_=function(b,c){var d=b.parentNode;if(d==c)return-1;for(c=c;c.parentNode!=d;)c=c.parentNode;return goog.dom.compareSiblingOrder_(c,b)};goog.dom.compareSiblingOrder_=function(b,c){for(c=c;c=c.previousSibling;)if(c==b)return-1;return 1};
goog.dom.findCommonAncestor=function(){var b,c=arguments.length;if(c){if(c==1)return arguments[0]}else return null;var d=[],e=Infinity;for(b=0;b<c;b++){for(var f=[],g=arguments[b];g;){f.unshift(g);g=g.parentNode}d.push(f);e=Math.min(e,f.length)}f=null;for(b=0;b<e;b++){g=d[0][b];for(var h=1;h<c;h++)if(g!=d[h][b])return f;f=g}return f};goog.dom.getOwnerDocument=function(b){return b.nodeType==goog.dom.NodeType.DOCUMENT?b:b.ownerDocument||b.document};
goog.dom.getFrameContentDocument=function(b){return goog.userAgent.WEBKIT?b.document||b.contentWindow.document:b.contentDocument||b.contentWindow.document};goog.dom.getFrameContentWindow=function(b){return b.contentWindow||goog.dom.getWindow_(goog.dom.getFrameContentDocument(b))};
goog.dom.setTextContent=function(b,c){if("textContent"in b)b.textContent=c;else if(b.firstChild&&b.firstChild.nodeType==goog.dom.NodeType.TEXT){for(;b.lastChild!=b.firstChild;)b.removeChild(b.lastChild);b.firstChild.data=c}else{goog.dom.removeChildren(b);var d=goog.dom.getOwnerDocument(b);b.appendChild(d.createTextNode(c))}};goog.dom.getOuterHtml=function(b){if("outerHTML"in b)return b.outerHTML;else{var c=goog.dom.getOwnerDocument(b).createElement("div");c.appendChild(b.cloneNode(true));return c.innerHTML}};
goog.dom.findNode=function(b,c){var d=[];return goog.dom.findNodes_(b,c,d,true)?d[0]:undefined};goog.dom.findNodes=function(b,c){var d=[];goog.dom.findNodes_(b,c,d,false);return d};goog.dom.findNodes_=function(b,c,d,e){if(b!=null)for(var f=0,g;g=b.childNodes[f];f++){if(c(g)){d.push(g);if(e)return true}if(goog.dom.findNodes_(g,c,d,e))return true}return false};goog.dom.TAGS_TO_IGNORE_={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1};goog.dom.PREDEFINED_TAG_VALUES_={IMG:" ",BR:"\n"};
goog.dom.isFocusableTabIndex=function(b){var c=b.getAttributeNode("tabindex");if(c&&c.specified){b=b.tabIndex;return goog.isNumber(b)&&b>=0}return false};goog.dom.setFocusableTabIndex=function(b,c){if(c)b.tabIndex=0;else b.removeAttribute("tabIndex")};
goog.dom.getTextContent=function(b){if(goog.userAgent.IE&&"innerText"in b)b=goog.string.canonicalizeNewlines(b.innerText);else{var c=[];goog.dom.getTextContent_(b,c,true);b=c.join("")}b=b.replace(/\xAD/g,"");b=b.replace(/ +/g," ");if(b!=" ")b=b.replace(/^\s*/,"");return b};goog.dom.getRawTextContent=function(b){var c=[];goog.dom.getTextContent_(b,c,false);return c.join("")};
goog.dom.getTextContent_=function(b,c,d){if(!(b.nodeName in goog.dom.TAGS_TO_IGNORE_))if(b.nodeType==goog.dom.NodeType.TEXT)d?c.push(String(b.nodeValue).replace(/(\r\n|\r|\n)/g,"")):c.push(b.nodeValue);else if(b.nodeName in goog.dom.PREDEFINED_TAG_VALUES_)c.push(goog.dom.PREDEFINED_TAG_VALUES_[b.nodeName]);else for(b=b.firstChild;b;){goog.dom.getTextContent_(b,c,d);b=b.nextSibling}};goog.dom.getNodeTextLength=function(b){return goog.dom.getTextContent(b).length};
goog.dom.getNodeTextOffset=function(b,c){c=c||goog.dom.getOwnerDocument(b).body;for(var d=[];b&&b!=c;){for(var e=b;e=e.previousSibling;)d.unshift(goog.dom.getTextContent(e));b=b.parentNode}return goog.string.trimLeft(d.join("")).replace(/ +/g," ").length};
goog.dom.getNodeAtOffset=function(b,c,d){b=[b];for(var e=0,f;b.length>0&&e<c;){f=b.pop();if(!(f.nodeName in goog.dom.TAGS_TO_IGNORE_))if(f.nodeType==goog.dom.NodeType.TEXT){var g=f.nodeValue.replace(/(\r\n|\r|\n)/g,"").replace(/ +/g," ");e+=g.length}else if(f.nodeName in goog.dom.PREDEFINED_TAG_VALUES_)e+=goog.dom.PREDEFINED_TAG_VALUES_[f.nodeName].length;else for(g=f.childNodes.length-1;g>=0;g--)b.push(f.childNodes[g])}if(goog.isObject(d)){d.remainder=f?f.nodeValue.length+c-e-1:0;d.node=f}return f};
goog.dom.isNodeList=function(b){if(b&&typeof b.length=="number")if(goog.isObject(b))return typeof b.item=="function"||typeof b.item=="string";else if(goog.isFunction(b))return typeof b.item=="function";return false};goog.dom.getAncestorByTagNameAndClass=function(b,c,d){var e=c?c.toUpperCase():null;return goog.dom.getAncestor(b,function(f){return(!e||f.nodeName==e)&&(!d||goog.dom.classes.has(f,d))},true)};
goog.dom.getAncestor=function(b,c,d,e){if(!d)b=b.parentNode;d=e==null;for(var f=0;b&&(d||f<=e);){if(c(b))return b;b=b.parentNode;f++}return null};goog.dom.DomHelper=function(b){this.document_=b||goog.global.document||document};a=goog.dom.DomHelper.prototype;a.getDomHelper=goog.dom.getDomHelper;a.setDocument=function(b){this.document_=b};a.getDocument=function(){return this.document_};a.getElement=function(b){return goog.isString(b)?this.document_.getElementById(b):b};a.$=goog.dom.DomHelper.prototype.getElement;
a.getElementsByTagNameAndClass=function(b,c,d){return goog.dom.getElementsByTagNameAndClass_(this.document_,b,c,d)};a.$$=goog.dom.DomHelper.prototype.getElementsByTagNameAndClass;a.setProperties=goog.dom.setProperties;a.getViewportSize=function(b){return goog.dom.getViewportSize(b||this.getWindow())};a.getDocumentHeight=function(){return goog.dom.getDocumentHeight_(this.getWindow())};a.createDom=function(){return goog.dom.createDom_(this.document_,arguments)};a.$dom=goog.dom.DomHelper.prototype.createDom;
a.createElement=function(b){return this.document_.createElement(b)};a.createTextNode=function(b){return this.document_.createTextNode(b)};a.htmlToDocumentFragment=function(b){return goog.dom.htmlToDocumentFragment_(this.document_,b)};a.getCompatMode=function(){return this.isCss1CompatMode()?"CSS1Compat":"BackCompat"};a.isCss1CompatMode=function(){return goog.dom.isCss1CompatMode_(this.document_)};a.getWindow=function(){return goog.dom.getWindow_(this.document_)};a.getDocumentScrollElement=function(){return goog.dom.getDocumentScrollElement_(this.document_)};
a.getDocumentScroll=function(){return goog.dom.getDocumentScroll_(this.document_)};a.appendChild=goog.dom.appendChild;a.removeChildren=goog.dom.removeChildren;a.insertSiblingBefore=goog.dom.insertSiblingBefore;a.insertSiblingAfter=goog.dom.insertSiblingAfter;a.removeNode=goog.dom.removeNode;a.replaceNode=goog.dom.replaceNode;a.flattenElement=goog.dom.flattenElement;a.getFirstElementChild=goog.dom.getFirstElementChild;a.getLastElementChild=goog.dom.getLastElementChild;a.getNextElementSibling=goog.dom.getNextElementSibling;
a.getPreviousElementSibling=goog.dom.getPreviousElementSibling;a.isNodeLike=goog.dom.isNodeLike;a.contains=goog.dom.contains;a.getOwnerDocument=goog.dom.getOwnerDocument;a.getFrameContentDocument=goog.dom.getFrameContentDocument;a.getFrameContentWindow=goog.dom.getFrameContentWindow;a.setTextContent=goog.dom.setTextContent;a.findNode=goog.dom.findNode;a.findNodes=goog.dom.findNodes;a.getTextContent=goog.dom.getTextContent;a.getNodeTextLength=goog.dom.getNodeTextLength;a.getNodeTextOffset=goog.dom.getNodeTextOffset;
a.getAncestorByTagNameAndClass=goog.dom.getAncestorByTagNameAndClass;a.getAncestor=goog.dom.getAncestor;goog.color={};
goog.color.names={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",
darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",
ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",
lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",
moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",
seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};goog.math.Box=function(b,c,d,e){this.top=b;this.right=c;this.bottom=d;this.left=e};goog.math.Box.boundingBox=function(){for(var b=new goog.math.Box(arguments[0].y,arguments[0].x,arguments[0].y,arguments[0].x),c=1;c<arguments.length;c++){var d=arguments[c];b.top=Math.min(b.top,d.y);b.right=Math.max(b.right,d.x);b.bottom=Math.max(b.bottom,d.y);b.left=Math.min(b.left,d.x)}return b};goog.math.Box.prototype.clone=function(){return new goog.math.Box(this.top,this.right,this.bottom,this.left)};
if(goog.DEBUG)goog.math.Box.prototype.toString=function(){return"("+this.top+"t, "+this.right+"r, "+this.bottom+"b, "+this.left+"l)"};goog.math.Box.prototype.contains=function(b){return goog.math.Box.contains(this,b)};goog.math.Box.prototype.expand=function(b,c,d,e){if(goog.isObject(b)){this.top-=b.top;this.right+=b.right;this.bottom+=b.bottom;this.left-=b.left}else{this.top-=b;this.right+=c;this.bottom+=d;this.left-=e}return this};
goog.math.Box.equals=function(b,c){if(b==c)return true;if(!b||!c)return false;return b.top==c.top&&b.right==c.right&&b.bottom==c.bottom&&b.left==c.left};goog.math.Box.contains=function(b,c){if(!b||!c)return false;if(c instanceof goog.math.Box)return c.left>=b.left&&c.right<=b.right&&c.top>=b.top&&c.bottom<=b.bottom;return c.x>=b.left&&c.x<=b.right&&c.y>=b.top&&c.y<=b.bottom};
goog.math.Box.distance=function(b,c){if(c.x>=b.left&&c.x<=b.right){if(c.y>=b.top&&c.y<=b.bottom)return 0;return c.y<b.top?b.top-c.y:c.y-b.bottom}if(c.y>=b.top&&c.y<=b.bottom)return c.x<b.left?b.left-c.x:c.x-b.right;return goog.math.Coordinate.distance(c,new goog.math.Coordinate(c.x<b.left?b.left:b.right,c.y<b.top?b.top:b.bottom))};goog.math.Box.intersects=function(b,c){return b.left<=c.right&&c.left<=b.right&&b.top<=c.bottom&&c.top<=b.bottom};goog.math.Range=function(b,c){b=Number(b);c=Number(c);this.start=b<c?b:c;this.end=b<c?c:b};goog.math.Range.prototype.clone=function(){return new goog.math.Range(this.start,this.end)};if(goog.DEBUG)goog.math.Range.prototype.toString=function(){return"["+this.start+", "+this.end+"]"};goog.math.Range.equals=function(b,c){if(b==c)return true;if(!b||!c)return false;return b.start==c.start&&b.end==c.end};
goog.math.Range.intersection=function(b,c){var d=Math.max(b.start,c.start);b=Math.min(b.end,c.end);return d<=b?new goog.math.Range(d,b):null};goog.math.Range.hasIntersection=function(b,c){return Math.max(b.start,c.start)<=Math.min(b.end,c.end)};goog.math.Range.boundingRange=function(b,c){return new goog.math.Range(Math.min(b.start,c.start),Math.max(b.end,c.end))};goog.math.Range.contains=function(b,c){return b.start<=c.start&&b.end>=c.end};
goog.math.Range.containsPoint=function(b,c){return b.start<=c&&b.end>=c};goog.math.Rect=function(b,c,d,e){this.left=b;this.top=c;this.width=d;this.height=e};goog.math.Rect.prototype.clone=function(){return new goog.math.Rect(this.left,this.top,this.width,this.height)};goog.math.Rect.prototype.toBox=function(){return new goog.math.Box(this.top,this.left+this.width,this.top+this.height,this.left)};goog.math.Rect.createFromBox=function(b){return new goog.math.Rect(b.left,b.top,b.right-b.left,b.bottom-b.top)};
if(goog.DEBUG)goog.math.Rect.prototype.toString=function(){return"("+this.left+", "+this.top+" - "+this.width+"w x "+this.height+"h)"};goog.math.Rect.equals=function(b,c){if(b==c)return true;if(!b||!c)return false;return b.left==c.left&&b.width==c.width&&b.top==c.top&&b.height==c.height};
goog.math.Rect.prototype.intersection=function(b){var c=Math.max(this.left,b.left),d=Math.min(this.left+this.width,b.left+b.width);if(c<=d){var e=Math.max(this.top,b.top);b=Math.min(this.top+this.height,b.top+b.height);if(e<=b){this.left=c;this.top=e;this.width=d-c;this.height=b-e;return true}}return false};
goog.math.Rect.intersection=function(b,c){var d=Math.max(b.left,c.left),e=Math.min(b.left+b.width,c.left+c.width);if(d<=e){var f=Math.max(b.top,c.top);b=Math.min(b.top+b.height,c.top+c.height);if(f<=b)return new goog.math.Rect(d,f,e-d,b-f)}return null};goog.math.Rect.intersects=function(b,c){return b.left<=c.left+c.width&&c.left<=b.left+b.width&&b.top<=c.top+c.height&&c.top<=b.top+b.height};goog.math.Rect.prototype.intersects=function(b){return goog.math.Rect.intersects(this,b)};
goog.math.Rect.difference=function(b,c){var d=goog.math.Rect.intersection(b,c);if(!d||!d.height||!d.width)return[b.clone()];d=[];var e=b.top,f=b.height,g=b.left+b.width,h=b.top+b.height,i=c.left+c.width,j=c.top+c.height;if(c.top>b.top){d.push(new goog.math.Rect(b.left,b.top,b.width,c.top-b.top));e=c.top;f-=c.top-b.top}if(j<h){d.push(new goog.math.Rect(b.left,j,b.width,h-j));f=j-e}c.left>b.left&&d.push(new goog.math.Rect(b.left,e,c.left-b.left,f));i<g&&d.push(new goog.math.Rect(i,e,g-i,f));return d};
goog.math.Rect.prototype.difference=function(b){return goog.math.Rect.difference(this,b)};goog.math.Rect.prototype.boundingRect=function(b){var c=Math.max(this.left+this.width,b.left+b.width),d=Math.max(this.top+this.height,b.top+b.height);this.left=Math.min(this.left,b.left);this.top=Math.min(this.top,b.top);this.width=c-this.left;this.height=d-this.top};goog.math.Rect.boundingRect=function(b,c){if(!b||!c)return null;b=b.clone();b.boundingRect(c);return b};
goog.math.Rect.prototype.contains=function(b){return b instanceof goog.math.Rect?this.left<=b.left&&this.left+this.width>=b.left+b.width&&this.top<=b.top&&this.top+this.height>=b.top+b.height:b.x>=this.left&&b.x<=this.left+this.width&&b.y>=this.top&&b.y<=this.top+this.height};goog.math.Rect.prototype.getSize=function(){return new goog.math.Size(this.width,this.height)};goog.math.randomInt=function(b){return Math.floor(Math.random()*b)};goog.math.uniformRandom=function(b,c){return b+Math.random()*(c-b)};goog.math.clamp=function(b,c,d){return Math.min(Math.max(b,c),d)};goog.math.modulo=function(b,c){b=b%c;return b*c<0?b+c:b};goog.math.lerp=function(b,c,d){return b+d*(c-b)};goog.math.nearlyEquals=function(b,c,d){return Math.abs(b-c)<=(d||1.0E-6)};goog.math.standardAngle=function(b){return goog.math.modulo(b,360)};goog.math.toRadians=function(b){return b*Math.PI/180};
goog.math.toDegrees=function(b){return b*180/Math.PI};goog.math.angleDx=function(b,c){return c*Math.cos(goog.math.toRadians(b))};goog.math.angleDy=function(b,c){return c*Math.sin(goog.math.toRadians(b))};goog.math.angle=function(b,c,d,e){return goog.math.standardAngle(goog.math.toDegrees(Math.atan2(e-c,d-b)))};goog.math.angleDifference=function(b,c){b=goog.math.standardAngle(c)-goog.math.standardAngle(b);if(b>180)b-=360;else if(b<=-180)b=360+b;return b};
goog.math.sign=function(b){return b==0?0:b<0?-1:1};goog.math.longestCommonSubsequence=function(b,c,d,e){d=d||function(k,n){return k==n};e=e||function(k){return b[k]};for(var f=b.length,g=c.length,h=[],i=0;i<f+1;i++){h[i]=[];h[i][0]=0}for(var j=0;j<g+1;j++)h[0][j]=0;for(i=1;i<=f;i++)for(j=1;j<=f;j++)h[i][j]=d(b[i-1],c[j-1])?h[i-1][j-1]+1:Math.max(h[i-1][j],h[i][j-1]);var l=[];i=f;for(j=g;i>0&&j>0;)if(d(b[i-1],c[j-1])){l.unshift(e(i-1,j-1));i--;j--}else if(h[i-1][j]>h[i][j-1])i--;else j--;return l};
goog.math.sum=function(){return goog.array.reduce(arguments,function(b,c){return b+c},0)};goog.math.average=function(){return goog.math.sum.apply(null,arguments)/arguments.length};goog.math.standardDeviation=function(){var b=arguments.length;if(b<2)return 0;var c=goog.math.average.apply(null,arguments);b=goog.math.sum.apply(null,goog.array.map(arguments,function(d){return Math.pow(d-c,2)}))/(b-1);return Math.sqrt(b)};goog.math.isInt=function(b){return isFinite(b)&&b%1==0};
goog.math.isFiniteNumber=function(b){return isFinite(b)&&!isNaN(b)};goog.color.parse=function(b){var c={};b=String(b);var d=goog.color.prependPoundIfNecessary_(b);if(goog.color.isValidHexColor_(d)){c.hex=goog.color.normalizeHex(d);c.type="hex";return c}else{d=goog.color.isValidRgbColor_(b);if(d.length){c.hex=goog.color.rgbArrayToHex(d);c.type="rgb";return c}else if(goog.color.names)if(d=goog.color.names[b.toLowerCase()]){c.hex=d;c.type="named";return c}}throw Error(b+" is not a valid color string");};
goog.color.parseRgb=function(b){var c=goog.color.isValidRgbColor_(b);if(!c.length)throw Error(b+" is not a valid RGB color");return c};goog.color.hexToRgbStyle=function(b){return goog.color.rgbStyle_(goog.color.hexToRgb(b))};goog.color.hexTripletRe_=/#(.)(.)(.)/;goog.color.normalizeHex=function(b){if(!goog.color.isValidHexColor_(b))throw Error("'"+b+"' is not a valid hex color");if(b.length==4)b=b.replace(goog.color.hexTripletRe_,"#$1$1$2$2$3$3");return b.toLowerCase()};
goog.color.hexToRgb=function(b){b=goog.color.normalizeHex(b);var c=parseInt(b.substr(1,2),16),d=parseInt(b.substr(3,2),16);b=parseInt(b.substr(5,2),16);return[c,d,b]};
goog.color.rgbToHex=function(b,c,d){b=Number(b);c=Number(c);d=Number(d);if(isNaN(b)||b<0||b>255||isNaN(c)||c<0||c>255||isNaN(d)||d<0||d>255)throw Error('"('+b+","+c+","+d+'") is not a valid RGB color');b=goog.color.prependZeroIfNecessary_(b.toString(16));c=goog.color.prependZeroIfNecessary_(c.toString(16));d=goog.color.prependZeroIfNecessary_(d.toString(16));return"#"+b+c+d};goog.color.rgbArrayToHex=function(b){return goog.color.rgbToHex(b[0],b[1],b[2])};
goog.color.rgbToHsl=function(b,c,d){b=b/255;c=c/255;d=d/255;var e=Math.max(b,c,d),f=Math.min(b,c,d),g=0,h=0,i=0.5*(e+f);if(e!=f){if(e==b)g=60*(c-d)/(e-f);else if(e==c)g=60*(d-b)/(e-f)+120;else if(e==d)g=60*(b-c)/(e-f)+240;h=0<i&&i<=0.5?(e-f)/(2*i):(e-f)/(2-2*i)}return[Math.round(g+360)%360,h,i]};goog.color.rgbArrayToHsl=function(b){return goog.color.rgbToHsl(b[0],b[1],b[2])};
goog.color.hueToRgb_=function(b,c,d){if(d<0)d+=1;else if(d>1)d-=1;if(6*d<1)return b+(c-b)*6*d;else if(2*d<1)return c;else if(3*d<2)return b+(c-b)*(2/3-d)*6;return b};goog.color.hslToRgb=function(b,c,d){var e=0,f=0,g=0;b=b/360;if(c==0)e=f=g=d*255;else{var h=g=0;h=d<0.5?d*(1+c):d+c-c*d;g=2*d-h;e=255*goog.color.hueToRgb_(g,h,b+1/3);f=255*goog.color.hueToRgb_(g,h,b);g=255*goog.color.hueToRgb_(g,h,b-1/3)}return[Math.round(e),Math.round(f),Math.round(g)]};
goog.color.hslArrayToRgb=function(b){return goog.color.hslToRgb(b[0],b[1],b[2])};goog.color.validHexColorRe_=/^#(?:[0-9a-f]{3}){1,2}$/i;goog.color.isValidHexColor_=function(b){return goog.color.validHexColorRe_.test(b)};goog.color.normalizedHexColorRe_=/^#[0-9a-f]{6}$/;goog.color.isNormalizedHexColor_=function(b){return goog.color.normalizedHexColorRe_.test(b)};goog.color.rgbColorRe_=/^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i;
goog.color.isValidRgbColor_=function(b){var c=b.match(goog.color.rgbColorRe_);if(c){b=Number(c[1]);var d=Number(c[2]);c=Number(c[3]);if(b>=0&&b<=255&&d>=0&&d<=255&&c>=0&&c<=255)return[b,d,c]}return[]};goog.color.prependZeroIfNecessary_=function(b){return b.length==1?"0"+b:b};goog.color.prependPoundIfNecessary_=function(b){return b.charAt(0)=="#"?b:"#"+b};goog.color.rgbStyle_=function(b){return"rgb("+b.join(",")+")"};
goog.color.hsvToRgb=function(b,c,d){var e=0,f=0,g=0;if(c==0)g=f=e=d;else{var h=Math.floor(b/60),i=b/60-h;b=d*(1-c);var j=d*(1-c*i);c=d*(1-c*(1-i));switch(h){case 1:e=j;f=d;g=b;break;case 2:e=b;f=d;g=c;break;case 3:e=b;f=j;g=d;break;case 4:e=c;f=b;g=d;break;case 5:e=d;f=b;g=j;break;case 6:case 0:e=d;f=c;g=b;break}}return[Math.floor(e),Math.floor(f),Math.floor(g)]};
goog.color.rgbToHsv=function(b,c,d){var e=Math.max(Math.max(b,c),d),f=Math.min(Math.min(b,c),d);if(f==e)f=b=0;else{var g=e-f;f=g/e;b=b==e?(c-d)/g:c==e?2+(d-b)/g:4+(b-c)/g;b*=60;if(b<0)b+=360;if(b>360)b-=360}return[b,f,e]};goog.color.rgbArrayToHsv=function(b){return goog.color.rgbToHsv(b[0],b[1],b[2])};goog.color.hsvArrayToRgb=function(b){return goog.color.hsvToRgb(b[0],b[1],b[2])};goog.color.hexToHsl=function(b){b=goog.color.hexToRgb(b);return goog.color.rgbToHsl(b[0],b[1],b[2])};
goog.color.hslToHex=function(b,c,d){return goog.color.rgbArrayToHex(goog.color.hslToRgb(b,c,d))};goog.color.hslArrayToHex=function(b){return goog.color.rgbArrayToHex(goog.color.hslToRgb(b[0],b[1],b[2]))};goog.color.hexToHsv=function(b){return goog.color.rgbArrayToHsv(goog.color.hexToRgb(b))};goog.color.hsvToHex=function(b,c,d){return goog.color.rgbArrayToHex(goog.color.hsvToRgb(b,c,d))};goog.color.hsvArrayToHex=function(b){return goog.color.hsvToHex(b[0],b[1],b[2])};
goog.color.hslDistance=function(b,c){var d,e;d=b[2]<=0.5?b[1]*b[2]:b[1]*(1-b[2]);e=c[2]<=0.5?c[1]*c[2]:c[1]*(1-c[2]);return(b[2]-c[2])*(b[2]-c[2])+d*d+e*e-2*d*e*Math.cos((b[0]/360-c[0]/360)*2*Math.PI)};goog.color.blend=function(b,c,d){d=goog.math.clamp(d,0,1);return[Math.round(d*b[0]+(1-d)*c[0]),Math.round(d*b[1]+(1-d)*c[1]),Math.round(d*b[2]+(1-d)*c[2])]};goog.color.darken=function(b,c){return goog.color.blend([0,0,0],b,c)};
goog.color.lighten=function(b,c){return goog.color.blend([255,255,255],b,c)};goog.color.highContrast=function(b,c){for(var d=[],e=0;e<c.length;e++)d.push({color:c[e],diff:goog.color.yiqBrightnessDiff_(c[e],b)+goog.color.colorDiff_(c[e],b)});d.sort(function(f,g){return g.diff-f.diff});return d[0].color};goog.color.yiqBrightness_=function(b){return Math.round((b[0]*299+b[1]*587+b[2]*114)/1E3)};goog.color.yiqBrightnessDiff_=function(b,c){return Math.abs(goog.color.yiqBrightness_(b)-goog.color.yiqBrightness_(c))};
goog.color.colorDiff_=function(b,c){return Math.abs(b[0]-c[0])+Math.abs(b[1]-c[1])+Math.abs(b[2]-c[2])};goog.debug={};goog.debug.errorHandlerWeakDep={protectEntryPoint:function(b){return b}};goog.Disposable=function(){};a=goog.Disposable.prototype;a.disposed_=false;a.isDisposed=function(){return this.disposed_};a.getDisposed=goog.Disposable.prototype.isDisposed;a.dispose=function(){if(!this.disposed_){this.disposed_=true;this.disposeInternal()}};a.disposeInternal=function(){};goog.dispose=function(b){b&&typeof b.dispose=="function"&&b.dispose()};goog.events={};goog.events.Event=function(b,c){goog.Disposable.call(this);this.type=b;this.currentTarget=this.target=c};goog.inherits(goog.events.Event,goog.Disposable);a=goog.events.Event.prototype;a.disposeInternal=function(){delete this.type;delete this.target;delete this.currentTarget};a.propagationStopped_=false;a.returnValue_=true;a.stopPropagation=function(){this.propagationStopped_=true};a.preventDefault=function(){this.returnValue_=false};goog.events.BrowserEvent=function(b,c){b&&this.init(b,c)};goog.inherits(goog.events.BrowserEvent,goog.events.Event);goog.events.BrowserEvent.MouseButton={LEFT:0,MIDDLE:1,RIGHT:2};goog.events.BrowserEvent.IEButtonMap_=[1,4,2];a=goog.events.BrowserEvent.prototype;a.target=null;a.relatedTarget=null;a.offsetX=0;a.offsetY=0;a.clientX=0;a.clientY=0;a.screenX=0;a.screenY=0;a.button=0;a.keyCode=0;a.charCode=0;a.ctrlKey=false;a.altKey=false;a.shiftKey=false;a.metaKey=false;a.event_=null;
a.init=function(b,c){var d=this.type=b.type;this.target=b.target||b.srcElement;this.currentTarget=c;if(c=b.relatedTarget){if(goog.userAgent.GECKO)try{c=c.nodeName&&c}catch(e){c=null}}else if(d=="mouseover")c=b.fromElement;else if(d=="mouseout")c=b.toElement;this.relatedTarget=c;this.offsetX=b.offsetX!==undefined?b.offsetX:b.layerX;this.offsetY=b.offsetY!==undefined?b.offsetY:b.layerY;this.clientX=b.clientX!==undefined?b.clientX:b.pageX;this.clientY=b.clientY!==undefined?b.clientY:b.pageY;this.screenX=
b.screenX||0;this.screenY=b.screenY||0;this.button=b.button;this.keyCode=b.keyCode||0;this.charCode=b.charCode||(d=="keypress"?b.keyCode:0);this.ctrlKey=b.ctrlKey;this.altKey=b.altKey;this.shiftKey=b.shiftKey;this.metaKey=b.metaKey;this.event_=b;delete this.returnValue_;delete this.propagationStopped_};a.isButton=function(b){return goog.userAgent.IE?this.type=="click"?b==goog.events.BrowserEvent.MouseButton.LEFT:!!(this.event_.button&goog.events.BrowserEvent.IEButtonMap_[b]):this.event_.button==b};
a.stopPropagation=function(){this.propagationStopped_=true;if(this.event_.stopPropagation)this.event_.stopPropagation();else this.event_.cancelBubble=true};goog.events.BrowserEvent.IE7_SET_KEY_CODE_TO_PREVENT_DEFAULT_=goog.userAgent.IE&&!goog.userAgent.isVersion("8");
goog.events.BrowserEvent.prototype.preventDefault=function(){this.returnValue_=false;var b=this.event_;if(b.preventDefault)b.preventDefault();else{b.returnValue=false;if(goog.events.BrowserEvent.IE7_SET_KEY_CODE_TO_PREVENT_DEFAULT_)try{if(b.ctrlKey||b.keyCode>=112&&b.keyCode<=123)b.keyCode=-1}catch(c){}}};goog.events.BrowserEvent.prototype.getBrowserEvent=function(){return this.event_};
goog.events.BrowserEvent.prototype.disposeInternal=function(){goog.events.BrowserEvent.superClass_.disposeInternal.call(this);this.relatedTarget=this.currentTarget=this.target=this.event_=null};goog.events.EventWrapper=function(){};goog.events.EventWrapper.prototype.listen=function(){};goog.events.EventWrapper.prototype.unlisten=function(){};goog.events.Listener=function(){};goog.events.Listener.counter_=0;a=goog.events.Listener.prototype;a.key=0;a.removed=false;a.callOnce=false;
a.init=function(b,c,d,e,f,g){if(goog.isFunction(b))this.isFunctionListener_=true;else if(b&&b.handleEvent&&goog.isFunction(b.handleEvent))this.isFunctionListener_=false;else throw Error("Invalid listener argument");this.listener=b;this.proxy=c;this.src=d;this.type=e;this.capture=!!f;this.handler=g;this.callOnce=false;this.key=++goog.events.Listener.counter_;this.removed=false};
a.handleEvent=function(b){if(this.isFunctionListener_)return this.listener.call(this.handler||this.src,b);return this.listener.handleEvent.call(this.listener,b)};goog.structs={};goog.structs.SimplePool=function(b,c){goog.Disposable.call(this);this.maxCount_=c;this.freeQueue_=[];this.createInitial_(b)};goog.inherits(goog.structs.SimplePool,goog.Disposable);a=goog.structs.SimplePool.prototype;a.createObjectFn_=null;a.disposeObjectFn_=null;a.setCreateObjectFn=function(b){this.createObjectFn_=b};a.setDisposeObjectFn=function(b){this.disposeObjectFn_=b};a.getObject=function(){if(this.freeQueue_.length)return this.freeQueue_.pop();return this.createObject()};
a.releaseObject=function(b){this.freeQueue_.length<this.maxCount_?this.freeQueue_.push(b):this.disposeObject(b)};a.createInitial_=function(b){if(b>this.maxCount_)throw Error("[goog.structs.SimplePool] Initial cannot be greater than max");for(var c=0;c<b;c++)this.freeQueue_.push(this.createObject())};a.createObject=function(){return this.createObjectFn_?this.createObjectFn_():{}};
a.disposeObject=function(b){if(this.disposeObjectFn_)this.disposeObjectFn_(b);else if(goog.isFunction(b.dispose))b.dispose();else for(var c in b)delete b[c]};a.disposeInternal=function(){goog.structs.SimplePool.superClass_.disposeInternal.call(this);for(var b=this.freeQueue_;b.length;)this.disposeObject(b.pop());delete this.freeQueue_};goog.userAgent.jscript={};goog.userAgent.jscript.ASSUME_NO_JSCRIPT=false;goog.userAgent.jscript.init_=function(){goog.userAgent.jscript.DETECTED_HAS_JSCRIPT_="ScriptEngine"in goog.global&&goog.global.ScriptEngine()=="JScript";goog.userAgent.jscript.DETECTED_VERSION_=goog.userAgent.jscript.DETECTED_HAS_JSCRIPT_?goog.global.ScriptEngineMajorVersion()+"."+goog.global.ScriptEngineMinorVersion()+"."+goog.global.ScriptEngineBuildVersion():"0"};goog.userAgent.jscript.ASSUME_NO_JSCRIPT||goog.userAgent.jscript.init_();
goog.userAgent.jscript.HAS_JSCRIPT=goog.userAgent.jscript.ASSUME_NO_JSCRIPT?false:goog.userAgent.jscript.DETECTED_HAS_JSCRIPT_;goog.userAgent.jscript.VERSION=goog.userAgent.jscript.ASSUME_NO_JSCRIPT?"0":goog.userAgent.jscript.DETECTED_VERSION_;goog.userAgent.jscript.isVersion=function(b){return goog.string.compareVersions(goog.userAgent.jscript.VERSION,b)>=0};goog.events.pools={};
(function(){function b(){return{count_:0,remaining_:0}}function c(){return[]}function d(){var m=function(o){return h.call(m.src,m.key,o)};return m}function e(){return new goog.events.Listener}function f(){return new goog.events.BrowserEvent}var g=goog.userAgent.jscript.HAS_JSCRIPT&&!goog.userAgent.jscript.isVersion("5.7"),h;goog.events.pools.setProxyCallbackFunction=function(m){h=m};if(g){goog.events.pools.getObject=function(){return i.getObject()};goog.events.pools.releaseObject=function(m){i.releaseObject(m)};
goog.events.pools.getArray=function(){return j.getObject()};goog.events.pools.releaseArray=function(m){j.releaseObject(m)};goog.events.pools.getProxy=function(){return l.getObject()};goog.events.pools.releaseProxy=function(){l.releaseObject(d())};goog.events.pools.getListener=function(){return k.getObject()};goog.events.pools.releaseListener=function(m){k.releaseObject(m)};goog.events.pools.getEvent=function(){return n.getObject()};goog.events.pools.releaseEvent=function(m){n.releaseObject(m)};var i=
new goog.structs.SimplePool(0,600);i.setCreateObjectFn(b);var j=new goog.structs.SimplePool(0,600);j.setCreateObjectFn(c);var l=new goog.structs.SimplePool(0,600);l.setCreateObjectFn(d);var k=new goog.structs.SimplePool(0,600);k.setCreateObjectFn(e);var n=new goog.structs.SimplePool(0,600);n.setCreateObjectFn(f)}else{goog.events.pools.getObject=b;goog.events.pools.releaseObject=goog.nullFunction;goog.events.pools.getArray=c;goog.events.pools.releaseArray=goog.nullFunction;goog.events.pools.getProxy=
d;goog.events.pools.releaseProxy=goog.nullFunction;goog.events.pools.getListener=e;goog.events.pools.releaseListener=goog.nullFunction;goog.events.pools.getEvent=f;goog.events.pools.releaseEvent=goog.nullFunction}})();goog.events.listeners_={};goog.events.listenerTree_={};goog.events.sources_={};goog.events.onString_="on";goog.events.onStringMap_={};goog.events.keySeparator_="_";
goog.events.listen=function(b,c,d,e,f){if(c)if(goog.isArray(c)){for(var g=0;g<c.length;g++)goog.events.listen(b,c[g],d,e,f);return null}else{e=!!e;var h=goog.events.listenerTree_;c in h||(h[c]=goog.events.pools.getObject());h=h[c];if(!(e in h)){h[e]=goog.events.pools.getObject();h.count_++}h=h[e];var i=goog.getHashCode(b),j;h.remaining_++;if(h[i]){j=h[i];for(g=0;g<j.length;g++){h=j[g];if(h.listener==d&&h.handler==f){if(h.removed)break;return j[g].key}}}else{j=h[i]=goog.events.pools.getArray();h.count_++}g=
goog.events.pools.getProxy();g.src=b;h=goog.events.pools.getListener();h.init(d,g,b,c,e,f);d=h.key;g.key=d;j.push(h);goog.events.listeners_[d]=h;goog.events.sources_[i]||(goog.events.sources_[i]=goog.events.pools.getArray());goog.events.sources_[i].push(h);if(b.addEventListener){if(b==goog.global||!b.customEvent_)b.addEventListener(c,g,e)}else b.attachEvent(goog.events.getOnString_(c),g);return d}else throw Error("Invalid event type");};
goog.events.listenOnce=function(b,c,d,e,f){if(goog.isArray(c)){for(var g=0;g<c.length;g++)goog.events.listenOnce(b,c[g],d,e,f);return null}b=goog.events.listen(b,c,d,e,f);goog.events.listeners_[b].callOnce=true;return b};goog.events.listenWithWrapper=function(b,c,d,e,f){c.listen(b,d,e,f)};
goog.events.unlisten=function(b,c,d,e,f){if(goog.isArray(c)){for(var g=0;g<c.length;g++)goog.events.unlisten(b,c[g],d,e,f);return null}e=!!e;b=goog.events.getListeners_(b,c,e);if(!b)return false;for(g=0;g<b.length;g++)if(b[g].listener==d&&b[g].capture==e&&b[g].handler==f)return goog.events.unlistenByKey(b[g].key);return false};
goog.events.unlistenByKey=function(b){if(!goog.events.listeners_[b])return false;var c=goog.events.listeners_[b];if(c.removed)return false;var d=c.src,e=c.type,f=c.proxy,g=c.capture;if(d.removeEventListener){if(d==goog.global||!d.customEvent_)d.removeEventListener(e,f,g)}else d.detachEvent&&d.detachEvent(goog.events.getOnString_(e),f);d=goog.getHashCode(d);f=goog.events.listenerTree_[e][g][d];if(goog.events.sources_[d]){var h=goog.events.sources_[d];goog.array.remove(h,c);h.length==0&&delete goog.events.sources_[d]}c.removed=
true;f.needsCleanup_=true;goog.events.cleanUp_(e,g,d,f);delete goog.events.listeners_[b];return true};goog.events.unlistenWithWrapper=function(b,c,d,e,f){c.unlisten(b,d,e,f)};
goog.events.cleanUp_=function(b,c,d,e){if(!e.locked_)if(e.needsCleanup_){for(var f=0,g=0;f<e.length;f++)if(e[f].removed){var h=e[f].proxy;h.src=null;goog.events.pools.releaseProxy(h);goog.events.pools.releaseListener(e[f])}else{if(f!=g)e[g]=e[f];g++}e.length=g;e.needsCleanup_=false;if(g==0){goog.events.pools.releaseArray(e);delete goog.events.listenerTree_[b][c][d];goog.events.listenerTree_[b][c].count_--;if(goog.events.listenerTree_[b][c].count_==0){goog.events.pools.releaseObject(goog.events.listenerTree_[b][c]);
delete goog.events.listenerTree_[b][c];goog.events.listenerTree_[b].count_--}if(goog.events.listenerTree_[b].count_==0){goog.events.pools.releaseObject(goog.events.listenerTree_[b]);delete goog.events.listenerTree_[b]}}}};
goog.events.removeAll=function(b,c,d){var e=0,f=b==null,g=c==null,h=d==null;d=!!d;if(f)goog.object.forEach(goog.events.sources_,function(j){for(var l=j.length-1;l>=0;l--){var k=j[l];if((g||c==k.type)&&(h||d==k.capture)){goog.events.unlistenByKey(k.key);e++}}});else{b=goog.getHashCode(b);if(goog.events.sources_[b]){b=goog.events.sources_[b];for(f=b.length-1;f>=0;f--){var i=b[f];if((g||c==i.type)&&(h||d==i.capture)){goog.events.unlistenByKey(i.key);e++}}}}return e};
goog.events.getListeners=function(b,c,d){return goog.events.getListeners_(b,c,d)||[]};goog.events.getListeners_=function(b,c,d){var e=goog.events.listenerTree_;if(c in e){e=e[c];if(d in e){e=e[d];b=goog.getHashCode(b);if(e[b])return e[b]}}return null};goog.events.getListener=function(b,c,d,e,f){e=!!e;if(b=goog.events.getListeners_(b,c,e))for(c=0;c<b.length;c++)if(b[c].listener==d&&b[c].capture==e&&b[c].handler==f)return b[c];return null};
goog.events.hasListener=function(b,c,d){b=goog.getHashCode(b);var e=goog.events.sources_[b];if(e){var f=goog.isDef(c),g=goog.isDef(d);if(f&&g){e=goog.events.listenerTree_[c];return!!e&&!!e[d]&&b in e[d]}else return f||g?goog.array.some(e,function(h){return f&&h.type==c||g&&h.capture==d}):true}return false};goog.events.expose=function(b){var c=[];for(var d in b)b[d]&&b[d].id?c.push(d+" = "+b[d]+" ("+b[d].id+")"):c.push(d+" = "+b[d]);return c.join("\n")};
goog.events.EventType={CLICK:"click",DBLCLICK:"dblclick",MOUSEDOWN:"mousedown",MOUSEUP:"mouseup",MOUSEOVER:"mouseover",MOUSEOUT:"mouseout",MOUSEMOVE:"mousemove",SELECTSTART:"selectstart",KEYPRESS:"keypress",KEYDOWN:"keydown",KEYUP:"keyup",BLUR:"blur",FOCUS:"focus",DEACTIVATE:"deactivate",FOCUSIN:goog.userAgent.IE?"focusin":"DOMFocusIn",FOCUSOUT:goog.userAgent.IE?"focusout":"DOMFocusOut",CHANGE:"change",SELECT:"select",SUBMIT:"submit",CONTEXTMENU:"contextmenu",DRAGSTART:"dragstart",ERROR:"error",HASHCHANGE:"hashchange",
HELP:"help",LOAD:"load",LOSECAPTURE:"losecapture",READYSTATECHANGE:"readystatechange",RESIZE:"resize",SCROLL:"scroll",UNLOAD:"unload"};goog.events.getOnString_=function(b){if(b in goog.events.onStringMap_)return goog.events.onStringMap_[b];return goog.events.onStringMap_[b]=goog.events.onString_+b};goog.events.fireListeners=function(b,c,d,e){var f=goog.events.listenerTree_;if(c in f){f=f[c];if(d in f)return goog.events.fireListeners_(f[d],b,c,d,e)}return true};
goog.events.fireListeners_=function(b,c,d,e,f){var g=1;c=goog.getHashCode(c);if(b[c]){b.remaining_--;b=b[c];if(b.locked_)b.locked_++;else b.locked_=1;try{for(var h=b.length,i=0;i<h;i++){var j=b[i];if(j&&!j.removed)g&=goog.events.fireListener(j,f)!==false}}finally{b.locked_--;goog.events.cleanUp_(d,e,c,b)}}return Boolean(g)};goog.events.fireListener=function(b,c){c=b.handleEvent(c);b.callOnce&&goog.events.unlistenByKey(b.key);return c};goog.events.getTotalListenerCount=function(){return goog.object.getCount(goog.events.listeners_)};
goog.events.dispatchEvent=function(b,c){if(goog.isString(c))c=new goog.events.Event(c,b);else if(c instanceof goog.events.Event)c.target=c.target||b;else{var d=c;c=new goog.events.Event(c.type,b);goog.object.extend(c,d)}d=1;var e,f=c.type,g=goog.events.listenerTree_;if(!(f in g))return true;g=g[f];f=true in g;var h;if(f){e=[];for(h=b;h;h=h.getParentEventTarget())e.push(h);h=g[true];h.remaining_=h.count_;for(var i=e.length-1;!c.propagationStopped_&&i>=0&&h.remaining_;i--){c.currentTarget=e[i];d&=goog.events.fireListeners_(h,
e[i],c.type,true,c)&&c.returnValue_!=false}}if(false in g){h=g[false];h.remaining_=h.count_;if(f)for(i=0;!c.propagationStopped_&&i<e.length&&h.remaining_;i++){c.currentTarget=e[i];d&=goog.events.fireListeners_(h,e[i],c.type,false,c)&&c.returnValue_!=false}else for(b=b;!c.propagationStopped_&&b&&h.remaining_;b=b.getParentEventTarget()){c.currentTarget=b;d&=goog.events.fireListeners_(h,b,c.type,false,c)&&c.returnValue_!=false}}return Boolean(d)};
goog.events.protectBrowserEventEntryPoint=function(b,c){goog.events.handleBrowserEvent_=b.protectEntryPoint(goog.events.handleBrowserEvent_,c);goog.events.pools.setProxyCallbackFunction(goog.events.handleBrowserEvent_)};
goog.events.handleBrowserEvent_=function(b,c){if(!goog.events.listeners_[b])return true;b=goog.events.listeners_[b];var d=b.type,e=goog.events.listenerTree_;if(!(d in e))return true;e=e[d];var f,g;if(goog.userAgent.IE){f=c||goog.getObjectByName("window.event");c=true in e;var h=false in e;if(c){if(goog.events.isMarkedIeEvent_(f))return true;goog.events.markIeEvent_(f)}var i=goog.events.pools.getEvent();i.init(f,this);f=true;try{if(c){for(var j=goog.events.pools.getArray(),l=i.currentTarget;l;l=l.parentNode)j.push(l);
g=e[true];g.remaining_=g.count_;for(var k=j.length-1;!i.propagationStopped_&&k>=0&&g.remaining_;k--){i.currentTarget=j[k];f&=goog.events.fireListeners_(g,j[k],d,true,i)}if(h){g=e[false];g.remaining_=g.count_;for(k=0;!i.propagationStopped_&&k<j.length&&g.remaining_;k++){i.currentTarget=j[k];f&=goog.events.fireListeners_(g,j[k],d,false,i)}}}else f=goog.events.fireListener(b,i)}finally{if(j){j.length=0;goog.events.pools.releaseArray(j)}i.dispose();goog.events.pools.releaseEvent(i)}return f}g=new goog.events.BrowserEvent(c,
this);try{f=goog.events.fireListener(b,g)}finally{g.dispose()}return f};goog.events.pools.setProxyCallbackFunction(goog.events.handleBrowserEvent_);goog.events.markIeEvent_=function(b){var c=false;if(b.keyCode==0)try{b.keyCode=-1;return}catch(d){c=true}if(c||b.returnValue==undefined)b.returnValue=true};goog.events.isMarkedIeEvent_=function(b){return b.keyCode<0||b.returnValue!=undefined};goog.events.uniqueIdCounter_=0;goog.events.getUniqueId=function(b){return b+"_"+goog.events.uniqueIdCounter_++};goog.events.EventTarget=function(){goog.Disposable.call(this)};goog.inherits(goog.events.EventTarget,goog.Disposable);a=goog.events.EventTarget.prototype;a.customEvent_=true;a.parentEventTarget_=null;a.getParentEventTarget=function(){return this.parentEventTarget_};a.setParentEventTarget=function(b){this.parentEventTarget_=b};a.addEventListener=function(b,c,d,e){goog.events.listen(this,b,c,d,e)};a.removeEventListener=function(b,c,d,e){goog.events.unlisten(this,b,c,d,e)};
a.dispatchEvent=function(b){return goog.events.dispatchEvent(this,b)};a.disposeInternal=function(){goog.events.EventTarget.superClass_.disposeInternal.call(this);goog.events.removeAll(this);this.parentEventTarget_=null};goog.Timer=function(b,c){goog.events.EventTarget.call(this);this.interval_=b||1;this.timerObject_=c||goog.Timer.defaultTimerObject;this.boundTick_=goog.bind(this.tick_,this);this.last_=goog.now()};goog.inherits(goog.Timer,goog.events.EventTarget);goog.Timer.MAX_TIMEOUT_=2147483647;goog.Timer.prototype.enabled=false;goog.Timer.defaultTimerObject=goog.global.window;goog.Timer.intervalScale=0.8;a=goog.Timer.prototype;a.timer_=null;a.getInterval=function(){return this.interval_};
a.setInterval=function(b){this.interval_=b;if(this.timer_&&this.enabled){this.stop();this.start()}else this.timer_&&this.stop()};a.tick_=function(){if(this.enabled){var b=goog.now()-this.last_;if(b>0&&b<this.interval_*goog.Timer.intervalScale)this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_-b);else{this.dispatchTick();if(this.enabled){this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_);this.last_=goog.now()}}}};a.dispatchTick=function(){this.dispatchEvent(goog.Timer.TICK)};
a.start=function(){this.enabled=true;if(!this.timer_){this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_);this.last_=goog.now()}};a.stop=function(){this.enabled=false;if(this.timer_){this.timerObject_.clearTimeout(this.timer_);this.timer_=null}};a.disposeInternal=function(){goog.Timer.superClass_.disposeInternal.call(this);this.stop();delete this.timerObject_};goog.Timer.TICK="tick";
goog.Timer.callOnce=function(b,c,d){if(goog.isFunction(b)){if(d)b=goog.bind(b,d)}else if(b&&typeof b.handleEvent=="function")b=goog.bind(b.handleEvent,b);else throw Error("Invalid listener argument");return c>goog.Timer.MAX_TIMEOUT_?-1:goog.Timer.defaultTimerObject.setTimeout(b,c||0)};goog.Timer.clear=function(b){goog.Timer.defaultTimerObject.clearTimeout(b)};goog.fx={};goog.fx.easing={};goog.fx.TIMEOUT=20;goog.fx.easing.easeIn=function(b){return b*b*b};goog.fx.easing.easeOut=function(b){return 1-Math.pow(1-b,3)};goog.fx.easing.inAndOut=function(b){return 3*b*b-2*b*b*b};
goog.fx.Animation=function(b,c,d,e){goog.events.EventTarget.call(this);if(!goog.isArray(b)||!goog.isArray(c))throw Error("Start and end parameters must be arrays");if(b.length!=c.length)throw Error("Start and end points must be the same length");this.startPoint=b;this.endPoint=c;this.duration=d;this.accel_=e;this.coords=[]};goog.inherits(goog.fx.Animation,goog.events.EventTarget);
goog.fx.Animation.EventType={PLAY:"play",BEGIN:"begin",RESUME:"resume",END:"end",STOP:"stop",FINISH:"finish",PAUSE:"pause",ANIMATE:"animate",DESTROY:"destroy"};goog.fx.Animation.State={STOPPED:0,PAUSED:-1,PLAYING:1};goog.fx.Animation.activeAnimations_={};goog.fx.Animation.globalTimer_=null;
goog.fx.Animation.cycleAnimations_=function(){goog.Timer.defaultTimerObject.clearTimeout(goog.fx.Animation.globalTimer_);var b=goog.now();for(var c in goog.fx.Animation.activeAnimations_)goog.fx.Animation.activeAnimations_[c].cycle(b);goog.fx.Animation.globalTimer_=goog.object.isEmpty(goog.fx.Animation.activeAnimations_)?null:goog.Timer.defaultTimerObject.setTimeout(goog.fx.Animation.cycleAnimations_,goog.fx.TIMEOUT)};
goog.fx.Animation.registerAnimation=function(b){var c=goog.getHashCode(b);c in goog.fx.Animation.activeAnimations_||(goog.fx.Animation.activeAnimations_[c]=b);if(!goog.fx.Animation.globalTimer_)goog.fx.Animation.globalTimer_=goog.Timer.defaultTimerObject.setTimeout(goog.fx.Animation.cycleAnimations_,goog.fx.TIMEOUT)};
goog.fx.Animation.unregisterAnimation=function(b){b=goog.getHashCode(b);delete goog.fx.Animation.activeAnimations_[b];if(goog.fx.Animation.globalTimer_&&goog.object.isEmpty(goog.fx.Animation.activeAnimations_)){goog.Timer.defaultTimerObject.clearTimeout(goog.fx.Animation.globalTimer_);goog.fx.Animation.globalTimer_=null}};a=goog.fx.Animation.prototype;a.state_=goog.fx.Animation.State.STOPPED;a.fps_=0;a.progress=0;a.startTime=null;a.endTime=null;a.lastFrame=null;
a.play=function(b){if(b||this.state_==goog.fx.Animation.State.STOPPED){this.progress=0;this.coords=this.startPoint}else if(this.state_==goog.fx.Animation.State.PLAYING)return false;goog.fx.Animation.unregisterAnimation(this);this.startTime=goog.now();if(this.state_==goog.fx.Animation.State.PAUSED)this.startTime-=this.duration*this.progress;this.endTime=this.startTime+this.duration;this.lastFrame=this.startTime;this.progress||this.onBegin();this.onPlay();this.state_==goog.fx.Animation.State.PAUSED&&
this.onResume();this.state_=goog.fx.Animation.State.PLAYING;goog.fx.Animation.registerAnimation(this);this.cycle(this.startTime);return true};a.stop=function(b){goog.fx.Animation.unregisterAnimation(this);this.state_=goog.fx.Animation.State.STOPPED;if(b)this.progress=1;this.updateCoords_(this.progress);this.onStop();this.onEnd()};a.pause=function(){if(this.state_==goog.fx.Animation.State.PLAYING){goog.fx.Animation.unregisterAnimation(this);this.state_=goog.fx.Animation.State.PAUSED;this.onPause()}};
a.disposeInternal=function(){this.state_!=goog.fx.Animation.State.STOPPED&&this.stop(false);this.onDestroy();goog.fx.Animation.superClass_.disposeInternal.call(this)};a.destroy=function(){this.dispose()};
a.cycle=function(b){this.progress=(b-this.startTime)/(this.endTime-this.startTime);if(this.progress>=1)this.progress=1;this.fps_=1E3/(b-this.lastFrame);this.lastFrame=b;goog.isFunction(this.accel_)?this.updateCoords_(this.accel_(this.progress)):this.updateCoords_(this.progress);if(this.progress==1){this.state_=goog.fx.Animation.State.STOPPED;goog.fx.Animation.unregisterAnimation(this);this.onFinish();this.onEnd()}else this.state_==goog.fx.Animation.State.PLAYING&&this.onAnimate()};
a.updateCoords_=function(b){this.coords=new Array(this.startPoint.length);for(var c=0;c<this.startPoint.length;c++)this.coords[c]=(this.endPoint[c]-this.startPoint[c])*b+this.startPoint[c]};a.onAnimate=function(){this.dispatchAnimationEvent_(goog.fx.Animation.EventType.ANIMATE)};a.onBegin=function(){this.dispatchAnimationEvent_(goog.fx.Animation.EventType.BEGIN)};a.onDestroy=function(){this.dispatchAnimationEvent_(goog.fx.Animation.EventType.DESTROY)};a.onEnd=function(){this.dispatchAnimationEvent_(goog.fx.Animation.EventType.END)};
a.onFinish=function(){this.dispatchAnimationEvent_(goog.fx.Animation.EventType.FINISH)};a.onPause=function(){this.dispatchAnimationEvent_(goog.fx.Animation.EventType.PAUSE)};a.onPlay=function(){this.dispatchAnimationEvent_(goog.fx.Animation.EventType.PLAY)};a.onResume=function(){this.dispatchAnimationEvent_(goog.fx.Animation.EventType.RESUME)};a.onStop=function(){this.dispatchAnimationEvent_(goog.fx.Animation.EventType.STOP)};
a.dispatchAnimationEvent_=function(b){this.dispatchEvent(new goog.fx.AnimationEvent(b,this))};goog.fx.AnimationEvent=function(b,c){goog.events.Event.call(this,b);this.coords=c.coords;this.x=c.coords[0];this.y=c.coords[1];this.z=c.coords[2];this.duration=c.duration;this.progress=c.progress;this.fps=c.fps_;this.state=c.state_;this.anim=c};goog.inherits(goog.fx.AnimationEvent,goog.events.Event);goog.fx.AnimationEvent.prototype.coordsAsInts=function(){return goog.array.map(this.coords,Math.round)};goog.style={};goog.style.setStyle=function(b,c,d){goog.isString(c)?goog.style.setStyle_(b,d,c):goog.object.forEach(c,goog.partial(goog.style.setStyle_,b))};goog.style.setStyle_=function(b,c,d){b.style[goog.style.toCamelCase(d)]=c};goog.style.getStyle=function(b,c){return b.style[goog.style.toCamelCase(c)]};goog.style.getComputedStyle=function(b,c){var d=goog.dom.getOwnerDocument(b);if(d.defaultView&&d.defaultView.getComputedStyle)if(b=d.defaultView.getComputedStyle(b,""))return b[c];return null};
goog.style.getCascadedStyle=function(b,c){return b.currentStyle?b.currentStyle[c]:null};goog.style.getStyle_=function(b,c){return goog.style.getComputedStyle(b,c)||goog.style.getCascadedStyle(b,c)||b.style[c]};goog.style.getComputedPosition=function(b){return goog.style.getStyle_(b,"position")};goog.style.getBackgroundColor=function(b){return goog.style.getStyle_(b,"backgroundColor")};goog.style.getComputedOverflowX=function(b){return goog.style.getStyle_(b,"overflowX")};
goog.style.getComputedOverflowY=function(b){return goog.style.getStyle_(b,"overflowY")};goog.style.getComputedZIndex=function(b){return goog.style.getStyle_(b,"zIndex")};goog.style.getComputedTextAlign=function(b){return goog.style.getStyle_(b,"textAlign")};goog.style.getComputedCursor=function(b){return goog.style.getStyle_(b,"cursor")};
goog.style.setPosition=function(b,c,d){var e,f=goog.userAgent.GECKO&&(goog.userAgent.MAC||goog.userAgent.X11)&&goog.userAgent.isVersion("1.9");if(c instanceof goog.math.Coordinate){e=c.x;c=c.y}else{e=c;c=d}b.style.left=typeof e=="number"?(f?Math.round(e):e)+"px":e;b.style.top=typeof c=="number"?(f?Math.round(c):c)+"px":c};goog.style.getPosition=function(b){return new goog.math.Coordinate(b.offsetLeft,b.offsetTop)};
goog.style.getClientViewportElement=function(b){b=b?b.nodeType==goog.dom.NodeType.DOCUMENT?b:goog.dom.getOwnerDocument(b):goog.dom.getDocument();if(goog.userAgent.IE&&!goog.dom.getDomHelper(b).isCss1CompatMode())return b.body;return b.documentElement};goog.style.getBoundingClientRect_=function(b){var c=b.getBoundingClientRect();if(goog.userAgent.IE){b=b.ownerDocument;c.left-=b.documentElement.clientLeft+b.body.clientLeft;c.top-=b.documentElement.clientTop+b.body.clientTop}return c};
goog.style.getOffsetParent=function(b){if(goog.userAgent.IE)return b.offsetParent;var c=goog.dom.getOwnerDocument(b),d=goog.style.getStyle_(b,"position"),e=d=="fixed"||d=="absolute";for(b=b.parentNode;b&&b!=c;b=b.parentNode){d=goog.style.getStyle_(b,"position");e=e&&d=="static"&&b!=c.documentElement&&b!=c.body;if(!e&&(b.scrollWidth>b.clientWidth||b.scrollHeight>b.clientHeight||d=="fixed"||d=="absolute"))return b}return null};
goog.style.getVisibleRectForElement=function(b){var c=new goog.math.Box(0,Infinity,Infinity,0),d=goog.dom.getDomHelper(b),e=d.getDocument().body,f=d.getDocumentScrollElement(),g;for(b=b;b=goog.style.getOffsetParent(b);)if((!goog.userAgent.IE||b.clientWidth!=0)&&(!goog.userAgent.WEBKIT||b.clientHeight!=0||b!=e)&&(b.scrollWidth!=b.clientWidth||b.scrollHeight!=b.clientHeight)&&goog.style.getStyle_(b,"overflow")!="visible"){var h=goog.style.getPageOffset(b),i=goog.style.getClientLeftTop(b);h.x+=i.x;h.y+=
i.y;c.top=Math.max(c.top,h.y);c.right=Math.min(c.right,h.x+b.clientWidth);c.bottom=Math.min(c.bottom,h.y+b.clientHeight);c.left=Math.max(c.left,h.x);g=g||b!=f}e=f.scrollLeft;f=f.scrollTop;if(goog.userAgent.WEBKIT){c.left+=e;c.top+=f}else{c.left=Math.max(c.left,e);c.top=Math.max(c.top,f)}if(!g||goog.userAgent.WEBKIT){c.right+=e;c.bottom+=f}d=d.getViewportSize();c.right=Math.min(c.right,e+d.width);c.bottom=Math.min(c.bottom,f+d.height);return c.top>=0&&c.left>=0&&c.bottom>c.top&&c.right>c.left?c:null};
goog.style.scrollIntoContainerView=function(b,c,d){var e=goog.style.getPageOffset(b),f=goog.style.getPageOffset(c),g=goog.style.getBorderBox(c),h=e.x-f.x-g.left;e=e.y-f.y-g.top;f=c.clientWidth-b.offsetWidth;b=c.clientHeight-b.offsetHeight;if(d){c.scrollLeft+=h-f/2;c.scrollTop+=e-b/2}else{c.scrollLeft+=Math.min(h,Math.max(h-f,0));c.scrollTop+=Math.min(e,Math.max(e-b,0))}};
goog.style.getClientLeftTop=function(b){if(goog.userAgent.GECKO&&!goog.userAgent.isVersion("1.9")){var c=parseFloat(goog.style.getComputedStyle(b,"borderLeftWidth"));if(goog.style.isRightToLeft(b)){var d=b.offsetWidth-b.clientWidth-c-parseFloat(goog.style.getComputedStyle(b,"borderRightWidth"));c+=d}return new goog.math.Coordinate(c,parseFloat(goog.style.getComputedStyle(b,"borderTopWidth")))}return new goog.math.Coordinate(b.clientLeft,b.clientTop)};
goog.style.getPageOffset=function(b){var c,d=goog.dom.getOwnerDocument(b),e=goog.style.getStyle_(b,"position"),f=goog.userAgent.GECKO&&d.getBoxObjectFor&&!b.getBoundingClientRect&&e=="absolute"&&(c=d.getBoxObjectFor(b))&&(c.screenX<0||c.screenY<0),g=new goog.math.Coordinate(0,0),h=goog.style.getClientViewportElement(d);if(b==h)return g;if(b.getBoundingClientRect){c=goog.style.getBoundingClientRect_(b);b=goog.dom.getDomHelper(d).getDocumentScroll();g.x=c.left+b.x;g.y=c.top+b.y}else if(d.getBoxObjectFor&&
!f){c=d.getBoxObjectFor(b);b=d.getBoxObjectFor(h);g.x=c.screenX-b.screenX;g.y=c.screenY-b.screenY}else{c=b;do{g.x+=c.offsetLeft;g.y+=c.offsetTop;if(c!=b){g.x+=c.clientLeft||0;g.y+=c.clientTop||0}if(goog.userAgent.WEBKIT&&goog.style.getComputedPosition(c)=="fixed"){g.x+=d.body.scrollLeft;g.y+=d.body.scrollTop;break}c=c.offsetParent}while(c&&c!=b);if(goog.userAgent.OPERA||goog.userAgent.WEBKIT&&e=="absolute")g.y-=d.body.offsetTop;for(c=b;(c=goog.style.getOffsetParent(c))&&c!=d.body&&c!=h;){g.x-=c.scrollLeft;
if(!goog.userAgent.OPERA||c.tagName!="TR")g.y-=c.scrollTop}}return g};goog.style.getPageOffsetLeft=function(b){return goog.style.getPageOffset(b).x};goog.style.getPageOffsetTop=function(b){return goog.style.getPageOffset(b).y};
goog.style.getFramedPageOffset=function(b,c){var d=new goog.math.Coordinate(0,0),e=goog.dom.getWindow(goog.dom.getOwnerDocument(b));b=b;do{var f=e==c?goog.style.getPageOffset(b):goog.style.getClientPosition(b);d.x+=f.x;d.y+=f.y}while(e&&e!=c&&(b=e.frameElement)&&(e=e.parent));return d};
goog.style.translateRectForAnotherFrame=function(b,c,d){if(c.getDocument()!=d.getDocument()){var e=c.getDocument().body;d=goog.style.getFramedPageOffset(e,d.getWindow());d=goog.math.Coordinate.difference(d,goog.style.getPageOffset(e));if(goog.userAgent.IE&&!c.isCss1CompatMode())d=goog.math.Coordinate.difference(d,c.getDocumentScroll());b.left+=d.x;b.top+=d.y}};
goog.style.getRelativePosition=function(b,c){b=goog.style.getClientPosition(b);c=goog.style.getClientPosition(c);return new goog.math.Coordinate(b.x-c.x,b.y-c.y)};goog.style.getClientPosition=function(b){var c=new goog.math.Coordinate;if(b.nodeType==goog.dom.NodeType.ELEMENT)if(b.getBoundingClientRect){var d=goog.style.getBoundingClientRect_(b);c.x=d.left;c.y=d.top}else{d=goog.dom.getDomHelper(b).getDocumentScroll();b=goog.style.getPageOffset(b);c.x=b.x-d.x;c.y=b.y-d.y}else{c.x=b.clientX;c.y=b.clientY}return c};
goog.style.setPageOffset=function(b,c,d){var e=goog.style.getPageOffset(b);if(c instanceof goog.math.Coordinate){d=c.y;c=c.x}goog.style.setPosition(b,b.offsetLeft+(c-e.x),b.offsetTop+(d-e.y))};goog.style.setSize=function(b,c,d){if(c instanceof goog.math.Size){d=c.height;c=c.width}else{if(d==undefined)throw Error("missing height argument");d=d}b.style.width=typeof c=="number"?Math.round(c)+"px":c;b.style.height=typeof d=="number"?Math.round(d)+"px":d};
goog.style.getSize=function(b){var c=goog.userAgent.OPERA&&!goog.userAgent.isVersion("10");if(goog.style.getStyle_(b,"display")!="none")return c?new goog.math.Size(b.offsetWidth||b.clientWidth,b.offsetHeight||b.clientHeight):new goog.math.Size(b.offsetWidth,b.offsetHeight);var d=b.style,e=d.display,f=d.visibility,g=d.position;d.visibility="hidden";d.position="absolute";d.display="inline";if(c){c=b.offsetWidth||b.clientWidth;b=b.offsetHeight||b.clientHeight}else{c=b.offsetWidth;b=b.offsetHeight}d.display=
e;d.position=g;d.visibility=f;return new goog.math.Size(c,b)};goog.style.getBounds=function(b){var c=goog.style.getPageOffset(b);b=goog.style.getSize(b);return new goog.math.Rect(c.x,c.y,b.width,b.height)};goog.style.toCamelCaseCache_={};goog.style.toCamelCase=function(b){return goog.style.toCamelCaseCache_[b]||(goog.style.toCamelCaseCache_[b]=String(b).replace(/\-([a-z])/g,function(c,d){return d.toUpperCase()}))};goog.style.toSelectorCase=function(b){return b.replace(/([A-Z])/g,"-$1").toLowerCase()};
goog.style.getOpacity=function(b){var c=b.style;b="";if("opacity"in c)b=c.opacity;else if("MozOpacity"in c)b=c.MozOpacity;else if("filter"in c)if(c=c.filter.match(/alpha\(opacity=([\d.]+)\)/))b=String(c[1]/100);return b==""?b:Number(b)};goog.style.setOpacity=function(b,c){b=b.style;if("opacity"in b)b.opacity=c;else if("MozOpacity"in b)b.MozOpacity=c;else if("filter"in b)b.filter=c===""?"":"alpha(opacity="+c*100+")"};
goog.style.setTransparentBackgroundImage=function(b,c){b=b.style;if(goog.userAgent.IE&&!goog.userAgent.isVersion("8"))b.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+c+'", sizingMethod="crop")';else{b.backgroundImage="url("+c+")";b.backgroundPosition="top left";b.backgroundRepeat="no-repeat"}};goog.style.clearTransparentBackgroundImage=function(b){b=b.style;if("filter"in b)b.filter="";else b.backgroundImage="none"};goog.style.showElement=function(b,c){b.style.display=c?"":"none"};
goog.style.isElementShown=function(b){return b.style.display!="none"};goog.style.installStyles=function(b,c){c=goog.dom.getDomHelper(c);var d=null;if(goog.userAgent.IE){d=c.getDocument().createStyleSheet();goog.style.setStyles(d,b)}else{var e=c.getElementsByTagNameAndClass("head")[0];if(!e){d=c.getElementsByTagNameAndClass("body")[0];e=c.createDom("head");d.parentNode.insertBefore(e,d)}d=c.createDom("style");goog.style.setStyles(d,b);c.appendChild(e,d)}return d};
goog.style.uninstallStyles=function(b){goog.dom.removeNode(b.ownerNode||b.owningElement||b)};goog.style.setStyles=function(b,c){if(goog.userAgent.IE)b.cssText=c;else b[goog.userAgent.WEBKIT?"innerText":"innerHTML"]=c};goog.style.setPreWrap=function(b){b=b.style;if(goog.userAgent.IE&&!goog.userAgent.isVersion("8")){b.whiteSpace="pre";b.wordWrap="break-word"}else b.whiteSpace=goog.userAgent.GECKO?"-moz-pre-wrap":goog.userAgent.OPERA?"-o-pre-wrap":"pre-wrap"};
goog.style.setInlineBlock=function(b){b=b.style;b.position="relative";if(goog.userAgent.IE&&!goog.userAgent.isVersion("8")){b.zoom="1";b.display="inline"}else b.display=goog.userAgent.GECKO?goog.userAgent.isVersion("1.9a")?"inline-block":"-moz-inline-box":"inline-block"};goog.style.isRightToLeft=function(b){return"rtl"==goog.style.getStyle_(b,"direction")};goog.style.unselectableStyle_=goog.userAgent.GECKO?"MozUserSelect":goog.userAgent.WEBKIT?"WebkitUserSelect":null;
goog.style.isUnselectable=function(b){if(goog.style.unselectableStyle_)return b.style[goog.style.unselectableStyle_].toLowerCase()=="none";else if(goog.userAgent.IE||goog.userAgent.OPERA)return b.getAttribute("unselectable")=="on";return false};
goog.style.setUnselectable=function(b,c,d){d=!d?b.getElementsByTagName("*"):null;var e=goog.style.unselectableStyle_;if(e){c=c?"none":"";b.style[e]=c;if(d){b=0;for(var f;f=d[b];b++)f.style[e]=c}}else if(goog.userAgent.IE||goog.userAgent.OPERA){c=c?"on":"";b.setAttribute("unselectable",c);if(d)for(b=0;f=d[b];b++)f.setAttribute("unselectable",c)}};goog.style.getBorderBoxSize=function(b){return new goog.math.Size(b.offsetWidth,b.offsetHeight)};
goog.style.setBorderBoxSize=function(b,c){var d=goog.dom.getOwnerDocument(b),e=goog.dom.getDomHelper(d).isCss1CompatMode();if(goog.userAgent.IE&&(!e||!goog.userAgent.isVersion("8"))){d=b.style;if(e){e=goog.style.getPaddingBox(b);b=goog.style.getBorderBox(b);d.pixelWidth=c.width-b.left-e.left-e.right-b.right;d.pixelHeight=c.height-b.top-e.top-e.bottom-b.bottom}else{d.pixelWidth=c.width;d.pixelHeight=c.height}}else goog.style.setBoxSizingSize_(b,c,"border-box")};
goog.style.getContentBoxSize=function(b){var c=goog.dom.getOwnerDocument(b),d=goog.userAgent.IE&&b.currentStyle;if(d&&goog.dom.getDomHelper(c).isCss1CompatMode()&&d.width!="auto"&&d.height!="auto"&&!d.boxSizing){c=goog.style.getIePixelValue_(b,d.width,"width","pixelWidth");b=goog.style.getIePixelValue_(b,d.height,"height","pixelHeight");return new goog.math.Size(c,b)}else{d=goog.style.getBorderBoxSize(b);c=goog.style.getPaddingBox(b);b=goog.style.getBorderBox(b);return new goog.math.Size(d.width-
b.left-c.left-c.right-b.right,d.height-b.top-c.top-c.bottom-b.bottom)}};
goog.style.setContentBoxSize=function(b,c){var d=goog.dom.getOwnerDocument(b),e=goog.dom.getDomHelper(d).isCss1CompatMode();if(goog.userAgent.IE&&(!e||!goog.userAgent.isVersion("8"))){d=b.style;if(e){d.pixelWidth=c.width;d.pixelHeight=c.height}else{e=goog.style.getPaddingBox(b);b=goog.style.getBorderBox(b);d.pixelWidth=c.width+b.left+e.left+e.right+b.right;d.pixelHeight=c.height+b.top+e.top+e.bottom+b.bottom}}else goog.style.setBoxSizingSize_(b,c,"content-box")};
goog.style.setBoxSizingSize_=function(b,c,d){b=b.style;if(goog.userAgent.GECKO)b.MozBoxSizing=d;else if(goog.userAgent.WEBKIT)b.WebkitBoxSizing=d;else if(goog.userAgent.OPERA&&!goog.userAgent.isVersion("9.50"))d?b.setProperty("box-sizing",d):b.removeProperty("box-sizing");else b.boxSizing=d;b.width=c.width+"px";b.height=c.height+"px"};
goog.style.getIePixelValue_=function(b,c,d,e){if(/^\d+px?$/.test(c))return parseInt(c,10);else{var f=b.style[d],g=b.runtimeStyle[d];b.runtimeStyle[d]=b.currentStyle[d];b.style[d]=c;c=b.style[e];b.style[d]=f;b.runtimeStyle[d]=g;return c}};goog.style.getIePixelDistance_=function(b,c){return goog.style.getIePixelValue_(b,goog.style.getCascadedStyle(b,c),"left","pixelLeft")};
goog.style.getBox_=function(b,c){if(goog.userAgent.IE){var d=goog.style.getIePixelDistance_(b,c+"Left"),e=goog.style.getIePixelDistance_(b,c+"Right"),f=goog.style.getIePixelDistance_(b,c+"Top");b=goog.style.getIePixelDistance_(b,c+"Bottom");return new goog.math.Box(f,e,b,d)}else{d=goog.style.getComputedStyle(b,c+"Left");e=goog.style.getComputedStyle(b,c+"Right");f=goog.style.getComputedStyle(b,c+"Top");b=goog.style.getComputedStyle(b,c+"Bottom");return new goog.math.Box(parseFloat(f),parseFloat(e),
parseFloat(b),parseFloat(d))}};goog.style.getPaddingBox=function(b){return goog.style.getBox_(b,"padding")};goog.style.getMarginBox=function(b){return goog.style.getBox_(b,"margin")};goog.style.ieBorderWidthKeywords_={thin:2,medium:4,thick:6};
goog.style.getIePixelBorder_=function(b,c){if(goog.style.getCascadedStyle(b,c+"Style")=="none")return 0;c=goog.style.getCascadedStyle(b,c+"Width");if(c in goog.style.ieBorderWidthKeywords_)return goog.style.ieBorderWidthKeywords_[c];return goog.style.getIePixelValue_(b,c,"left","pixelLeft")};
goog.style.getBorderBox=function(b){if(goog.userAgent.IE){var c=goog.style.getIePixelBorder_(b,"borderLeft"),d=goog.style.getIePixelBorder_(b,"borderRight"),e=goog.style.getIePixelBorder_(b,"borderTop");b=goog.style.getIePixelBorder_(b,"borderBottom");return new goog.math.Box(e,d,b,c)}else{c=goog.style.getComputedStyle(b,"borderLeftWidth");d=goog.style.getComputedStyle(b,"borderRightWidth");e=goog.style.getComputedStyle(b,"borderTopWidth");b=goog.style.getComputedStyle(b,"borderBottomWidth");return new goog.math.Box(parseFloat(e),
parseFloat(d),parseFloat(b),parseFloat(c))}};goog.style.getFontFamily=function(b){var c=goog.dom.getOwnerDocument(b),d="";if(c.createTextRange){d=c.body.createTextRange();d.moveToElementText(b);d=d.queryCommandValue("FontName")}if(!d){d=goog.style.getStyle_(b,"fontFamily");if(goog.userAgent.OPERA&&goog.userAgent.LINUX)d=d.replace(/ \[[^\]]*\]/,"")}b=d.split(",");if(b.length>1)d=b[0];return goog.string.stripQuotes(d,"\"'")};goog.style.lengthUnitRegex_=/[^\d]+$/;
goog.style.getLengthUnits=function(b){return(b=b.match(goog.style.lengthUnitRegex_))&&b[0]||null};goog.style.ABSOLUTE_CSS_LENGTH_UNITS_={cm:1,"in":1,mm:1,pc:1,pt:1};goog.style.CONVERTIBLE_RELATIVE_CSS_UNITS_={em:1,ex:1};
goog.style.getFontSize=function(b){var c=goog.style.getStyle_(b,"fontSize"),d=goog.style.getLengthUnits(c);if(c&&"px"==d)return parseInt(c,10);if(goog.userAgent.IE)if(d in goog.style.ABSOLUTE_CSS_LENGTH_UNITS_)return goog.style.getIePixelValue_(b,c,"left","pixelLeft");else if(b.parentNode&&b.parentNode.nodeType==goog.dom.NodeType.ELEMENT&&d in goog.style.CONVERTIBLE_RELATIVE_CSS_UNITS_){b=b.parentNode;d=goog.style.getStyle_(b,"fontSize");return goog.style.getIePixelValue_(b,c==d?"1em":c,"left","pixelLeft")}d=
goog.dom.createDom("span",{style:"visibility:hidden;position:absolute;line-height:0;padding:0;margin:0;border:0;height:1em;"});goog.dom.appendChild(b,d);c=d.offsetHeight;goog.dom.removeNode(d);return c};goog.style.parseStyleAttribute=function(b){var c={};goog.array.forEach(b.split(/\s*;\s*/),function(d){d=d.split(/\s*:\s*/);if(d.length==2)c[goog.style.toCamelCase(d[0].toLowerCase())]=d[1]});return c};
goog.style.toStyleAttribute=function(b){var c=[];goog.object.forEach(b,function(d,e){c.push(goog.style.toSelectorCase(e),":",d,";")});return c.join("")};goog.style.setFloat=function(b,c){b.style[goog.userAgent.IE?"styleFloat":"cssFloat"]=c};goog.style.getFloat=function(b){return b.style[goog.userAgent.IE?"styleFloat":"cssFloat"]||""};
goog.style.getScrollbarWidth=function(){var b=goog.dom.createElement("div");b.style.cssText="visibility:hidden;overflow:scroll;position:absolute;top:0;width:100px;height:100px";goog.dom.appendChild(goog.dom.getDocument().body,b);var c=b.offsetWidth-b.clientWidth;goog.dom.removeNode(b);return c};goog.fx.dom={};goog.fx.dom.PredefinedEffect=function(b,c,d,e,f){goog.fx.Animation.call(this,c,d,e,f);this.element=b};goog.inherits(goog.fx.dom.PredefinedEffect,goog.fx.Animation);goog.fx.dom.PredefinedEffect.prototype.updateStyle=goog.nullFunction;goog.fx.dom.PredefinedEffect.prototype.onAnimate=function(){this.updateStyle();goog.fx.dom.PredefinedEffect.superClass_.onAnimate.call(this)};goog.fx.dom.PredefinedEffect.prototype.onEnd=function(){this.updateStyle();goog.fx.dom.PredefinedEffect.superClass_.onEnd.call(this)};
goog.fx.dom.PredefinedEffect.prototype.onBegin=function(){this.updateStyle();goog.fx.dom.PredefinedEffect.superClass_.onBegin.call(this)};goog.fx.dom.Slide=function(b,c,d){if(c.length!=2||d.length!=2)throw Error("Start and end points must be 2D");goog.fx.dom.PredefinedEffect.apply(this,arguments)};goog.inherits(goog.fx.dom.Slide,goog.fx.dom.PredefinedEffect);
goog.fx.dom.Slide.prototype.updateStyle=function(){this.element.style.left=Math.round(this.coords[0])+"px";this.element.style.top=Math.round(this.coords[1])+"px"};goog.fx.dom.SlideFrom=function(b,c,d,e){goog.fx.dom.Slide.call(this,b,[b.offsetLeft,b.offsetTop],c,d,e)};goog.inherits(goog.fx.dom.SlideFrom,goog.fx.dom.Slide);goog.fx.dom.SlideFrom.prototype.onBegin=function(){this.startPoint=[this.element.offsetLeft,this.element.offsetTop];goog.fx.dom.SlideFrom.superClass_.onBegin.call(this)};
goog.fx.dom.Swipe=function(b,c,d){if(c.length!=2||d.length!=2)throw Error("Start and end points must be 2D");goog.fx.dom.PredefinedEffect.apply(this,arguments);this.maxWidth_=Math.max(this.endPoint[0],this.startPoint[0]);this.maxHeight_=Math.max(this.endPoint[1],this.startPoint[1])};goog.inherits(goog.fx.dom.Swipe,goog.fx.dom.PredefinedEffect);
goog.fx.dom.Swipe.prototype.updateStyle=function(){var b=this.coords[0],c=this.coords[1];this.clip_(Math.round(b),Math.round(c),this.maxWidth_,this.maxHeight_);this.element.style.width=Math.round(b)+"px";this.element.style.marginLeft=Math.round(b)-this.maxWidth_+"px";this.element.style.marginTop=Math.round(c)-this.maxHeight_+"px"};goog.fx.dom.Swipe.prototype.clip_=function(b,c,d,e){this.element.style.clip="rect("+(e-c)+"px "+d+"px "+e+"px "+(d-b)+"px)"};
goog.fx.dom.Scroll=function(b,c,d){if(c.length!=2||d.length!=2)throw Error("Start and end points must be 2D");goog.fx.dom.PredefinedEffect.apply(this,arguments)};goog.inherits(goog.fx.dom.Scroll,goog.fx.dom.PredefinedEffect);goog.fx.dom.Scroll.prototype.updateStyle=function(){this.element.scrollLeft=Math.round(this.coords[0]);this.element.scrollTop=Math.round(this.coords[1])};
goog.fx.dom.Resize=function(b,c,d){if(c.length!=2||d.length!=2)throw Error("Start and end points must be 2D");goog.fx.dom.PredefinedEffect.apply(this,arguments)};goog.inherits(goog.fx.dom.Resize,goog.fx.dom.PredefinedEffect);goog.fx.dom.Resize.prototype.updateStyle=function(){this.element.style.width=Math.round(this.coords[0])+"px";this.element.style.height=Math.round(this.coords[1])+"px"};goog.fx.dom.ResizeWidth=function(b,c,d,e,f){goog.fx.dom.PredefinedEffect.call(this,b,[c],[d],e,f)};
goog.inherits(goog.fx.dom.ResizeWidth,goog.fx.dom.PredefinedEffect);goog.fx.dom.ResizeWidth.prototype.updateStyle=function(){this.element.style.width=Math.round(this.coords[0])+"px"};goog.fx.dom.ResizeHeight=function(b,c,d,e,f){goog.fx.dom.PredefinedEffect.call(this,b,[c],[d],e,f)};goog.inherits(goog.fx.dom.ResizeHeight,goog.fx.dom.PredefinedEffect);goog.fx.dom.ResizeHeight.prototype.updateStyle=function(){this.element.style.height=Math.round(this.coords[0])+"px"};
goog.fx.dom.Fade=function(b,c,d,e,f){if(goog.isNumber(c))c=[c];if(goog.isNumber(d))d=[d];goog.fx.dom.PredefinedEffect.call(this,b,c,d,e,f);if(c.length!=1||d.length!=1)throw Error("Start and end points must be 1D");};goog.inherits(goog.fx.dom.Fade,goog.fx.dom.PredefinedEffect);goog.fx.dom.Fade.prototype.updateStyle=function(){goog.style.setOpacity(this.element,this.coords[0])};goog.fx.dom.Fade.prototype.show=function(){this.element.style.display=""};
goog.fx.dom.Fade.prototype.hide=function(){this.element.style.display="none"};goog.fx.dom.FadeOut=function(b,c,d){goog.fx.dom.Fade.call(this,b,1,0,c,d)};goog.inherits(goog.fx.dom.FadeOut,goog.fx.dom.Fade);goog.fx.dom.FadeIn=function(b,c,d){goog.fx.dom.Fade.call(this,b,0,1,c,d)};goog.inherits(goog.fx.dom.FadeIn,goog.fx.dom.Fade);goog.fx.dom.FadeOutAndHide=function(b,c,d){goog.fx.dom.Fade.call(this,b,1,0,c,d)};goog.inherits(goog.fx.dom.FadeOutAndHide,goog.fx.dom.Fade);
goog.fx.dom.FadeOutAndHide.prototype.onBegin=function(){this.show();goog.fx.dom.FadeOutAndHide.superClass_.onBegin.call(this)};goog.fx.dom.FadeOutAndHide.prototype.onEnd=function(){this.hide();goog.fx.dom.FadeOutAndHide.superClass_.onEnd.call(this)};goog.fx.dom.FadeInAndShow=function(b,c,d){goog.fx.dom.Fade.call(this,b,0,1,c,d)};goog.inherits(goog.fx.dom.FadeInAndShow,goog.fx.dom.Fade);goog.fx.dom.FadeInAndShow.prototype.onBegin=function(){this.show();goog.fx.dom.FadeInAndShow.superClass_.onBegin.call(this)};
goog.fx.dom.BgColorTransform=function(b,c,d){if(c.length!=3||d.length!=3)throw Error("Start and end points must be 3D");goog.fx.dom.PredefinedEffect.apply(this,arguments)};goog.inherits(goog.fx.dom.BgColorTransform,goog.fx.dom.PredefinedEffect);goog.fx.dom.BgColorTransform.prototype.setColor=function(){for(var b=[],c=0;c<this.coords.length;c++)b[c]=Math.round(this.coords[c]);this.element.style.backgroundColor="rgb("+b.join(",")+")"};goog.fx.dom.BgColorTransform.prototype.updateStyle=function(){this.setColor()};
goog.fx.dom.bgColorFadeIn=function(b,c,d){var e=b.style.backgroundColor||"",f=goog.style.getBackgroundColor(b);f=f!="transparent"&&f!="rgba(0, 0, 0, 0)"?goog.color.hexToRgb(goog.color.parse(f).hex):[255,255,255];c=new goog.fx.dom.BgColorTransform(b,c,f,d);goog.events.listen(c,goog.fx.Animation.EventType.END,function(){b.style.backgroundColor=e});c.play()};
goog.fx.dom.ColorTransform=function(b,c,d){if(c.length!=3||d.length!=3)throw Error("Start and end points must be 3D");goog.fx.dom.PredefinedEffect.apply(this,arguments)};goog.inherits(goog.fx.dom.ColorTransform,goog.fx.dom.PredefinedEffect);goog.fx.dom.ColorTransform.prototype.updateStyle=function(){for(var b=[],c=0;c<this.coords.length;c++)b[c]=Math.round(this.coords[c]);this.element.style.color="rgb("+b.join(",")+")"};var Carousel=function(b){b=b||{};this.tabClass=b.tabClass||"tab";this.selectedTabClass=b.selectedTabClass||"tab-on";this.tabLinkContainer=b.tabLinkContainer||document;this.setTimer=b.setTimer||false;this.timerDuration=b.timerDuration||5E3;this.animInDuration=b.animInDuration||800;this.animOutDuration=b.animOutDuration||800;this.tabElms=gweb.dom.getElementsByTagNameAndClass("a",this.tabClass,this.tabLinkContainer);this.tabs=[];this.currentTab=false;this.timer=null;this.tickCount=0;gweb.array.forEach(this.tabElms,
function(c,d){c=new Carousel.Tab(c,this,d);this.tabs.push(c);c.targetElm.style.display="none"},this);this.isAnimating=false;this.setTimer&&this.doTimerStart();this.tabs[0].show()};
Carousel.prototype.doTimerStart=function(){if(goog.isNumber(this.timerDuration)){this.timer&&this.timer.dispose();this.timer=new goog.Timer(this.timerDuration);this.timer.start();var b=this;goog.events.listen(this.timer,goog.Timer.TICK,function(){b.tabs[b.tickCount].show();if(b.tickCount===b.tabs.length-1)b.tickCount=0;else b.tickCount++})}};Carousel.prototype.doTimerRestart=function(b){this.tickCount=b;this.timer.start()};Carousel.RE=/#tab-(.*?)$/;
Carousel.Tab=function(b,c,d){this.index=d;this.elm=b;this.parent=c;this.targetElm=gweb.dom.getElement(b.href.match(Carousel.RE)[1]);gweb.events.listen(this.elm,"click",this.show,false,this)};a=Carousel.Tab.prototype;
a.show=function(){if(!this.parent.isAnimating){if(this!=this.parent.currentTab){this.parent.currentTab&&this.parent.currentTab.hide();this.parent.setTimer&&this.parent.doTimerRestart(this.index);this.fadeIn();gweb.dom.classes.add(this.elm,this.parent.selectedTabClass);this.parent.currentTab=this}return false}};a.hide=function(){this.fadeOut();gweb.dom.classes.remove(this.elm,this.parent.selectedTabClass)};
a.fadeIn=function(){var b=new goog.fx.dom.FadeInAndShow(this.targetElm,this.parent.animInDuration);goog.events.listen(b,goog.fx.Animation.EventType.END,this.animationDone,false,this);b.play();this.parent.isAnimating=true};a.fadeOut=function(){this.parent.isAnimating=true;var b=new goog.fx.dom.FadeOutAndHide(this.targetElm,this.parent.animOutDuration);goog.events.listen(b,goog.fx.Animation.EventType.END,this.animationDone,false,this);b.play();this.parent.isAnimating=true};
a.animationDone=function(){this.parent.isAnimating=false};

