diff --git a/CHANGELOG.md b/CHANGELOG.md index 5dd1d71ec..d9f714026 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ zombie.js-changelog(7) -- Changelog =================================== +Added element offset properties. Google Maps demand these. + + ## Version 0.12.11 2012-01-06 Maintenance update, mostly more test coverage, and updates to dependencies. diff --git a/lib/zombie/jsdom_patches.coffee b/lib/zombie/jsdom_patches.coffee index 0a3e9308b..b39337c88 100644 --- a/lib/zombie/jsdom_patches.coffee +++ b/lib/zombie/jsdom_patches.coffee @@ -3,6 +3,13 @@ HTML = require("jsdom").dom.level3.html URL = require("url") { raise } = require("./helpers") + +HTML.HTMLElement.prototype.__defineGetter__ "offsetLeft", -> 0 +HTML.HTMLElement.prototype.__defineGetter__ "offsetTop", -> 0 +HTML.HTMLElement.prototype.__defineGetter__ "offsetWidth", -> 100 +HTML.HTMLElement.prototype.__defineGetter__ "offsetHeight", -> 100 + + # Default behavior for clicking on links: navigate to new URL is specified. HTML.HTMLAnchorElement.prototype._eventDefaults = click: (event)-> diff --git a/package.json b/package.json index d40a42b72..be1a332a0 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "docco": "~0.3.0", "express": "~2.5.4", "highlight": "~0.2.0", + "replay": "~1.2.2", "ronn": "~0.3.8", "vows": "~0.6.1" }, diff --git a/spec/google_map_spec.coffee b/spec/google_map_spec.coffee new file mode 100644 index 000000000..79304ff34 --- /dev/null +++ b/spec/google_map_spec.coffee @@ -0,0 +1,41 @@ +{ Vows, assert, brains, Browser } = require("./helpers") + + +Vows.describe("Google map").addBatch + + "display": + topic: -> + brains.get "/browser/map", (req, res)-> + res.send """ + + + + + + +
+ + + """ + + brains.ready => + browser = new Browser + browser.visit "http://localhost:3003/browser/map" + browser.wait @callback + "should load map": (browser)-> + assert.ok browser.window.map + "should set bounds": (browser)-> + bounds = browser.window.map.getBounds() + assert.ok bounds, "No map bounds yet" + assert.equal bounds.toString(), "((-34.62332513513795, 150.369341796875), (-34.17006113241608, 150.918658203125))" + + +.export(module) diff --git a/spec/helpers.coffee b/spec/helpers.coffee index 142c2190f..776148297 100644 --- a/spec/helpers.coffee +++ b/spec/helpers.coffee @@ -3,6 +3,7 @@ Express = require("express") WebSocket = require("ws") File = require("fs") Path = require("path") +Replay = require("replay") Browser = require("../lib/zombie.js") @@ -12,8 +13,9 @@ Browser.silent = !Browser.debug # Redirect all HTTP requests to localhost -DNS.lookup = (domain, callback)-> - callback null, "127.0.0.1", 4 +Replay.fixtures = "#{__dirname}/replay" +Replay.networkAccess = true +Replay.ignore "mt0.googleapis.com", "mt1.googleapis.com" # An express server we use to test the browser. diff --git a/spec/replay/maps.googleapis.com/1326781231603 b/spec/replay/maps.googleapis.com/1326781231603 new file mode 100644 index 000000000..009376762 --- /dev/null +++ b/spec/replay/maps.googleapis.com/1326781231603 @@ -0,0 +1,40 @@ +GET /maps/api/js?v=3&sensor=false&callback=initialize +user-agent: Mozilla/5.0 Chrome/10.0.613.0 Safari/534.15 Zombie.js/0.12.11 +host: maps.googleapis.com + +200 HTTP/1.1 +content-type: text/javascript; charset=UTF-8 +date: Tue, 17 Jan 2012 06:20:31 GMT +expires: Tue, 17 Jan 2012 06:50:31 GMT +cache-control: public, max-age=1800 +vary: Accept-Language +server: mafe +x-xss-protection: 1; mode=block +x-frame-options: SAMEORIGIN +transfer-encoding: chunked + + + +window.google = window.google || {}; +google.maps = google.maps || {}; +(function() { + + function getScript(src) { + var s = document.createElement('script'); + + s.src = src; + document.body.appendChild(s); + } + + var modules = google.maps.modules = {}; + google.maps.__gjsload__ = function(name, text) { + modules[name] = text; + }; + + google.maps.Load = function(apiLoad) { + delete google.maps.Load; + apiLoad([null,[[["http://mt0.googleapis.com/vt?lyrs=m@169000000\u0026src=api\u0026hl=en-US\u0026","http://mt1.googleapis.com/vt?lyrs=m@169000000\u0026src=api\u0026hl=en-US\u0026"],null,null,null,null,"m@169000000"],[["http://khm0.googleapis.com/kh?v=102\u0026hl=en-US\u0026","http://khm1.googleapis.com/kh?v=102\u0026hl=en-US\u0026"],null,null,null,1,"102"],[["http://mt0.googleapis.com/vt?lyrs=h@169000000\u0026src=api\u0026hl=en-US\u0026","http://mt1.googleapis.com/vt?lyrs=h@169000000\u0026src=api\u0026hl=en-US\u0026"],null,null,"imgtp=png32\u0026",null,"h@169000000"],[["http://mt0.googleapis.com/vt?lyrs=t@128,r@169000000\u0026src=api\u0026hl=en-US\u0026","http://mt1.googleapis.com/vt?lyrs=t@128,r@169000000\u0026src=api\u0026hl=en-US\u0026"],null,null,null,null,"t@128,r@169000000"],null,[[null,0,7,7,[[[330000000,1246050000],[386200000,1293600000]],[[366500000,1297000000],[386200000,1320034790]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],[null,0,8,8,[[[330000000,1246050000],[386200000,1279600000]],[[345000000,1279600000],[386200000,1286700000]],[[354690000,1286700000],[386200000,1320035000]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],[null,0,9,9,[[[330000000,1246050000],[386200000,1279600000]],[[340000000,1279600000],[386200000,1286700000]],[[348900000,1286700000],[386200000,1302000000]],[[368300000,1302000000],[386200000,1320035000]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],[null,0,10,19,[[[329890840,1246055600],[386930130,1284960940]],[[344646740,1284960940],[386930130,1288476560]],[[350277470,1288476560],[386930130,1310531620]],[[370277730,1310531620],[386930130,1320034790]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],[null,3,7,7,[[[330000000,1246050000],[386200000,1293600000]],[[366500000,1297000000],[386200000,1320034790]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]],[null,3,8,8,[[[330000000,1246050000],[386200000,1279600000]],[[345000000,1279600000],[386200000,1286700000]],[[354690000,1286700000],[386200000,1320035000]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]],[null,3,9,9,[[[330000000,1246050000],[386200000,1279600000]],[[340000000,1279600000],[386200000,1286700000]],[[348900000,1286700000],[386200000,1302000000]],[[368300000,1302000000],[386200000,1320035000]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]],[null,3,10,null,[[[329890840,1246055600],[386930130,1284960940]],[[344646740,1284960940],[386930130,1288476560]],[[350277470,1288476560],[386930130,1310531620]],[[370277730,1310531620],[386930130,1320034790]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]]],[["http://cbk0.googleapis.com/cbk?","http://cbk1.googleapis.com/cbk?"]],[["http://khmdb0.googleapis.com/kh?v=49\u0026hl=en-US\u0026","http://khmdb1.googleapis.com/kh?v=49\u0026hl=en-US\u0026"],null,null,null,null,"49"],[["http://mt0.googleapis.com/mapslt?hl=en-US\u0026","http://mt1.googleapis.com/mapslt?hl=en-US\u0026"]],[["http://mt0.googleapis.com/mapslt/ft?hl=en-US\u0026","http://mt1.googleapis.com/mapslt/ft?hl=en-US\u0026"]],[["http://mt0.googleapis.com/vt?hl=en-US\u0026","http://mt1.googleapis.com/vt?hl=en-US\u0026"]]],["en-US","US",null,0,null,null,"http://maps.gstatic.com/mapfiles/","http://csi.gstatic.com","https://maps.googleapis.com","http://maps.googleapis.com"],["http://maps.gstatic.com/intl/en_us/mapfiles/api-3/7/7","3.7.7"],[2795959736],1.0,null,null,null,null,0,"initialize",null,null,0,"http://khm.googleapis.com/mz?v=102\u0026"], loadScriptTime); + }; + var loadScriptTime = (new Date).getTime(); + getScript("http://maps.gstatic.com/intl/en_us/mapfiles/api-3/7/7/main.js"); +})(); diff --git a/spec/replay/maps.gstatic.com/1326781231887 b/spec/replay/maps.gstatic.com/1326781231887 new file mode 100644 index 000000000..bc1ef088a --- /dev/null +++ b/spec/replay/maps.gstatic.com/1326781231887 @@ -0,0 +1,60 @@ +GET /intl/en_us/mapfiles/api-3/7/7/main.js +user-agent: Mozilla/5.0 Chrome/10.0.613.0 Safari/534.15 Zombie.js/0.12.11 +host: maps.gstatic.com + +200 HTTP/1.1 +vary: Accept-Encoding +content-type: text/javascript +last-modified: Tue, 10 Jan 2012 01:24:16 GMT +date: Thu, 12 Jan 2012 01:22:13 GMT +expires: Fri, 11 Jan 2013 01:22:13 GMT +x-content-type-options: nosniff +server: sffe +x-xss-protection: 1; mode=block +cache-control: public, max-age=31536000 +age: 449898 +transfer-encoding: chunked + +(function(){function aa(a){throw a;}var ba=void 0,i=!0,j=null,k=!1,ca=encodeURIComponent,l=window,da=Object,ea=Infinity,m=document,o=Math,fa=Array,ga=screen,ha=navigator,ia=Error,ja=parseInt,ka=RegExp;function ma(a,b){return a.onload=b}function oa(a,b){return a.center_changed=b}function pa(a,b){return a.isEmpty=b}function qa(a,b){return a.width=b}function ra(a,b){return a.extend=b}function sa(a,b){return a.onerror=b}function ta(a,b){return a.map_changed=b}function ua(a,b){return a.visible_changed=b} +function va(a,b){return a.minZoom=b}function wa(a,b){return a.remove=b}function xa(a,b){return a.equals=b}function ya(a,b){return a.setZoom=b}function za(a,b){return a.tileSize=b}function Ba(a,b){return a.getBounds=b}function Ca(a,b){return a.changed=b}function Da(a,b){return a.clear=b}function Ea(a,b){return a.name=b}function Fa(a,b){return a.overflow=b}function Ga(a,b){return a.getTile=b}function Ha(a,b){return a.toString=b}function Ia(a,b){return a.length=b} +function Ja(a,b){return a.getZoom=b}function Ka(a,b){return a.size=b}function La(a,b){return a.search=b}function Ma(a,b){return a.releaseTile=b}function Na(a,b){return a.controls=b}function Oa(a,b){return a.maxZoom=b}function Pa(a,b){return a.getUrl=b}function Qa(a,b){return a.contains=b}function Ra(a,b){return a.height=b}function Sa(a,b){return a.zoom=b} +var Ta="appendChild",p="push",Ua="isEmpty",Va="fillColor",Xa="deviceXDPI",q="trigger",s="bindTo",Ya="shift",Za="clearTimeout",$a="exec",bb="fromLatLngToPoint",t="width",v="round",cb="slice",db="replace",eb="nodeType",fb="ceil",gb="floor",hb="getVisible",ib="offsetWidth",jb="concat",kb="removeListener",lb="extend",mb="charAt",nb="unbind",ob="preventDefault",pb="getNorthEast",qb="minZoom",rb="indexOf",ub="strokeColor",vb="remove",wb="equals",xb="createElement",zb="atan2",Ab="firstChild",Bb="forEach", +Cb="setZoom",Db="sqrt",w="setAttribute",Eb="setValues",Fb="tileSize",Gb="toUrlValue",Hb="addListenerOnce",Ib="removeAt",Jb="changed",y="type",Kb="getTileUrl",Lb="clearInstanceListeners",z="bind",Mb="name",Nb="getElementsByTagName",Ob="substr",Pb="getTile",Qb="notify",Rb="strokeOpacity",Sb="toString",Tb="setVisible",B="length",Ub="fillOpacity",Vb="onRemove",C="prototype",Wb="setTimeout",Xb="intersects",Yb="document",Zb="split",D="forward",$b="from",bc="getLength",cc="getSouthWest",dc="getAt",ec="message", +fc="hasOwnProperty",E="style",gc="strokeWeight",F="addListener",hc="removeChild",ic="insertAt",jc="target",kc="releaseTile",lc="call",mc="getMap",nc="atan",oc="random",pc="returnValue",qc="charCodeAt",rc="getArray",sc="href",tc="maxZoom",uc="addDomListener",vc="setMap",wc="where",xc="contains",yc="apply",zc="setAt",Ac="tagName",Bc="parentNode",Cc="asin",Dc="label",H="height",Ec="splice",Fc="offsetHeight",Gc="join",Hc="toLowerCase",Ic="ERROR",Jc="INVALID_REQUEST",Kc="MAX_DIMENSIONS_EXCEEDED",Lc="MAX_ELEMENTS_EXCEEDED", +Mc="MAX_WAYPOINTS_EXCEEDED",Nc="OK",Oc="OVER_QUERY_LIMIT",Pc="REQUEST_DENIED",Qc="UNKNOWN_ERROR",Rc="ZERO_RESULTS";function Sc(){return function(a){return a}}function Tc(){return function(){}}function Uc(a){return function(){return this[a]}}var J,Vc=[];function Wc(a){return function(){return Vc[a][yc](this,arguments)}}var Xc={ROADMAP:"roadmap",SATELLITE:"satellite",HYBRID:"hybrid",TERRAIN:"terrain"};var Yc=this;o[gb](2147483648*o[oc]())[Sb](36);var Zc=ka("'","g");function $c(a,b){var c=[];ad(a,b,c,ba);return c[Gc]("&")[db](Zc,"%27")}function ad(a,b,c,d){for(var e=d?1:0;e=o.abs(a-b)}function Dd(a){return a*(o.PI/180)}function Ed(a){return a/(o.PI/180)}function Fd(a,b){for(var c=Gd(ba,K(b)),d=Gd(ba,0);da.d}J=ae[C];pa(J,function(){return 360==this.b-this.d});J.intersects=function(a){var b=this.b,c=this.d;return this[Ua]()||a[Ua]()?k:be(this)?be(a)||a.b<=this.d||a.d>=b:be(a)?a.b<=c||a.d>=b:a.b<=c&&a.d>=b};Qa(J,function(a){-180==a&&(a=180);var b=this.b,c=this.d;return be(this)?(a>=b||a<=c)&&!this[Ua]():a>=b&&a<=c}); +ra(J,function(a){this[xc](a)||(this[Ua]()?this.b=this.d=a:ce(a,this.b)=o.abs(a.b-this.b)%360+o.abs(a.d-this.d)%360});function ce(a,b){var c=b-a;return 0<=c?c:b+180-(a-180)}function de(a){return a[Ua]()?0:be(a)?360-(a.b-a.d):a.d-a.b}J.kb=function(){var a=(this.b+this.d)/2;be(this)&&(a=Bd(a+180,-180,180));return a};function ee(a,b){this.b=a;this.d=b}J=ee[C];pa(J,function(){return this.b>this.d}); +J.intersects=function(a){var b=this.b,c=this.d;return b<=a.b?a.b<=c&&a.b<=a.d:b<=a.d&&b<=c};Qa(J,function(a){return a>=this.b&&a<=this.d});ra(J,function(a){this[Ua]()?this.d=this.b=a:athis.d&&(this.d=a)});xa(J,function(a){return this[Ua]()?a[Ua]():1.0E-9>=o.abs(a.b-this.b)+o.abs(this.d-a.d)});J.kb=function(){return(this.d+this.b)/2};function fe(a,b){a&&!b&&(b=a);if(a){var c=Ad(a.lat(),-90,90),d=Ad(b.lat(),-90,90);this.Y=new ee(c,d);c=a.lng();d=b.lng();360<=d-c?this.$=new ae(-180,180):(c=Bd(c,-180,180),d=Bd(d,-180,180),this.$=new ae(c,d))}else this.Y=new ee(1,-1),this.$=new ae(180,-180)}J=fe[C];J.getCenter=function(){return new P(this.Y.kb(),this.$.kb())};Ha(J,function(){return"("+this[cc]()+", "+this[pb]()+")"});J.toUrlValue=function(a){var b=this[cc](),c=this[pb]();return[b[Gb](a),c[Gb](a)][Gc]()}; +xa(J,function(a){return!a?k:this.Y[wb](a.Y)&&this.$[wb](a.$)});Qa(J,function(a){return this.Y[xc](a.lat())&&this.$[xc](a.lng())});J.intersects=function(a){return this.Y[Xb](a.Y)&&this.$[Xb](a.$)};ra(J,function(a){this.Y[lb](a.lat());this.$[lb](a.lng());return this});J.union=function(a){this[lb](a[cc]());this[lb](a[pb]());return this};J.getSouthWest=function(){return new P(this.Y.b,this.$.b,i)};J.getNorthEast=function(){return new P(this.Y.d,this.$.d,i)}; +J.toSpan=function(){return new P(this.Y[Ua]()?0:this.Y.d-this.Y.b,de(this.$),i)};pa(J,function(){return this.Y[Ua]()||this.$[Ua]()});function ge(a,b){return function(c){if(!b)for(var d in c)a[d]||aa(ia("Unknown property <"+(d+">")));var e;for(d in a)try{var f=c[d];if(!a[d](f)){e="Invalid value for property <"+(d+(">: "+f));break}}catch(g){e="Error in property <"+(d+(">: ("+(g[ec]+")")));break}e&&aa(ia(e));return i}}function he(a){return a==j}function ie(a){try{return!!a.cloneNode}catch(b){return k}}function je(a,b){var c=Hd(b)?b:i;return function(b){return b==j&&c||b instanceof a}} +function ke(a){return function(b){for(var c in a)if(a[c]==b)return i;return k}}function le(a){return function(b){Rd(b)||aa(ia("Value is not an array"));var c;N(b,function(b,e){try{a(b)||(c="Invalid value at position "+(e+(": "+b)))}catch(f){c="Error in element at position "+(e+(": ("+(f[ec]+")")))}});c&&aa(ia(c));return i}} +function me(a){var b=arguments,c=b[B];return function(){for(var a=[],e=0;e: "+c))));this.set(a,c)}:function(b){this.set(a,b)}}function Kf(a,b){yd(b,function(b,d){var e=V(b);a["get"+vf(b)]=e;d&&(e=Jf(b,d),a["set"+vf(b)]=e)})};var Lf="set_at",Mf="insert_at",Nf="remove_at";function Of(a){this.b=a||[];Pf(this)}L(Of,U);J=Of[C];J.getAt=function(a){return this.b[a]};J.forEach=function(a){for(var b=0,c=this.b[B];bd&&(d=-90);var e=o.sin(b),f=o.cos(Dd(a.lat()));if(90==c||-90==d||1.0E-6>f)return new fe(new P(d,-180),new P(c,180));e=Ed(o[Cc](e/f));return new fe(new P(d,a.lng()-e),new P(c,a.lng()+e))};function Vg(a){this.sb=a||0;this.Nb=Q[z](this,Ne,this,this.D)}L(Vg,U);Vg[C].N=function(){var a=this;a.j||(a.j=l[Wb](function(){a.j=ba;a.W()},a.sb))};Vg[C].D=function(){this.j&&l[Za](this.j);this.j=ba;this.W()};Vg[C].W=Tc();Vg[C].Q=Wc(2);function Wg(a,b){var c=a[E];qa(c,b[t]+b.D);Ra(c,b[H]+b.A)}function Xg(a){return new T(a[ib],a[Fc])};function Yg(a){this.f=a||[]};function Zg(a){this.f=a||[]}function $g(a){this.f=a||[]};function ah(a){this.f=a||[]}Ja(ah[C],function(){var a=this.f[2];return a!=j?a:0});ya(ah[C],function(a){this.f[2]=a});function bh(a,b,c){Vg[lc](this);this.n=b;this.l=new Sg;this.A=c+"/maps/api/js/StaticMapService.GetMapImage";this.set("div",a)}L(bh,Vg);var ch={roadmap:0,satellite:2,hybrid:3,terrain:4},dh={"0":1,2:2,3:2,4:2};J=bh[C];J.Ke=V("center");J.Je=V("zoom");Ca(J,function(){var a=this.Ke(),b=this.Je(),c=this.get("tilt")?"":this.get("mapTypeId");if(a&&!a[wb](this.B)||this.d!=b||this.G!=c)eh(this.e),this.N(),this.d=b,this.G=c;this.B=a});function eh(a){a[Bc]&&a[Bc][hc](a)} +J.W=function(){var a="",b=this.Ke(),c=this.Je(),d=this.get("tilt")?"":this.get("mapTypeId"),e=this.get("size");if(b&&1c&&(l.devicePixelRatio||ga[Xa]&&ga[Xa]/96||1))?2:1,h;a.f[0]=a.f[0]||[];h=new Zg(a.f[0]);h.f[0]=f.F*g;h.f[1]=f.C*g;a.f[1]=b;a[Cb](c);a.f[3]=a.f[3]||[];c=new $g(a.f[3]);c.f[0]=(f.H-f.F)*g;c.f[1]= +(f.I-f.C)*g;1=c*d&&800>=c&&800>=d}Kf(ph[C],{bounds:j,streetView:je(Qf),center:je(P),zoom:ne,mapTypeId:oe,projection:j,heading:ne,tilt:ne});function rh(a){this[Eb](a);R(Ae,Jd)}L(rh,U);var sh=me(Ld,je(da));Kf(rh[C],{position:je(P),title:oe,icon:sh,shadow:sh,shape:vd,cursor:oe,clickable:pe,animation:vd,draggable:pe,visible:pe,flat:pe,zIndex:ne});rh[C].getVisible=function(){return this.get("visible")!=k};rh[C].getClickable=function(){return this.get("clickable")!=k};function th(a){rh[lc](this,a)}L(th,rh);ta(th[C],function(){this.b&&this.b.Ob[vb](this);(this.b=this.get("map"))&&this.b.Ob.X(this)});th.MAX_ZINDEX=1E6;Kf(th[C],{map:me(je(Wf),je(Qf))});function uh(){R(Be,Jd)}uh[C].getMaxZoomAtLatLng=function(a,b){R(Be,function(c){c.getMaxZoomAtLatLng(a,b)})};function vh(a,b){if(Ld(a)||ne(a))this.set("tableId",a),this[Eb](b);else this[Eb](a)}L(vh,U);Ca(vh[C],function(a){if(!("suppressInfoWindows"==a||"clickable"==a)){var b=this;R(Ce,function(a){a.jk(b)})}});Kf(vh[C],{map:je(Wf),tableId:ne,query:me(Ld,Id)});function wh(){}L(wh,U);ta(wh[C],function(){var a=this;R("overlay",function(b){b.b(a)})});Kf(wh[C],{panes:ba,projection:ba,map:me(je(Wf),je(Qf))});function zh(a){var b,c=k;if(a instanceof Of)if(0 to Object.prototype. Extending Object.prototype breaks JavaScript for..in loops, which are used heavily in Google Maps API v3.")} +l.google.maps.Load(function(a,b){Th();mf=new ug(a);o[oc]()f&&(b=new P(b.lat(),f+360,i));d=a[bb](d);a=a[bb](b);a=new qf([d,a]);return hk(a,o.pow(2,c))}\nfunction lk(a,b,c,d){c=o.pow(2,c);lk.tmp||(lk.tmp=new S(0,0));var e=lk.tmp;e.x=b.x/c;e.y=b.y/c;return a[cj](e,d)}function mk(a){var b=[];yd(a,function(a,d){b[p](a+":"+d)});return b[Gc](",")}function nk(a){return o.log(a)/o.LN2}function ok(a){this.f=a||[]}function pk(a){return(a=a.f[0])?new gd(a):hd}function qk(a){a.f[0]=a.f[0]||[];return new gd(a.f[0])}function rk(a){return(a=a.f[1])?new gd(a):id}function sk(a){a.f[1]=a.f[1]||[];return new gd(a.f[1])}\nfunction tk(a){(a=a.srcElement||a[jc])&&3==a[eb]&&(a=a[Bc]);return a}function uk(a,b){a[Bc]&&(a[Bc][hc](a),oh(a));b&&(mh[Ta](a),ni(mh,""))}function vk(a,b){var c=a[qj]?""+a[qj]:"";if(c){for(var c=c[Zb](/\\s+/),d=k,e=0;e=b.H||b.F>=a.H||a.C>=b.I||b.C>=a.I?k:i}\nvar yk={roadmap:"m",satellite:"k",hybrid:"h",terrain:"r"},zk="moveend",Ak="move",Bk="movestart",Ck="dragend",Dk="drag",Ek="dragstart",Fk="pantobounds",Gk="panbyfraction",Hk="panbynow",Ik="visibletilesloaded",Jk="resize",Kk="DOMMouseScroll",Lk="mousewheel",Mk="mouseup",Nk="mousemove",Ok="mousedown",Pk="dblclick",Qk="load";function Rk(a,b,c,d){return new fe(new P(a,b,i),new P(c,d,i))}function Sk(a){var b={};yd(a,function(a,d){var e=ca(a),f=ca(d)[db](/%7C/g,"|");b[e]=f});return mk(b)}\nfunction W(a){return qd(a)+"px"}function Tk(a){return a[pc]===k||typeof a[pc]==td||a.handled}function Uk(a){var b=[],c=j;return function(d){d=d||Jd;if(c)d[yc](this,c);else b[p](d),1==K(b)&&a[lc](this,function(){for(c=Nd(arguments);K(b);)b[Ya]()[yc](this,c)})}}function Vk(a,b,c){return l[Wb](function(){b[lc](a)},c)}function Wk(a){return ja(a,10)}var Xk;if(mf){var Yk=Fg().f[6];Xk=Yk!=j?Yk:""}else Xk="";var Zk=Xk;function $k(a,b,c){return(c||Zk)+a+(b?".gif":".png")}var al=$k("transparent");function bl(){}bl[C].qk=$k;var cl=new bl;ff[ue]=function(a){eval(a)};jf(ue,cl);function dl(){this.j=new S(0,0)}L(dl,U);J=dl[C];J.fromLatLngToContainerPixel=function(a){var b=this.get("projectionTopLeft");return b?jk(this.get("projection"),a,this.get("zoom"),this.get("center"),b.x,b.y,ba):j};J.fromLatLngToDivPixel=function(a){return el(this,a,j)};J.fromDivPixelToLatLng=function(a){var b=this.get("offset");return b?fl(this,a,b[t],b[H],"Div"):j};J.fromContainerPixelToLatLng=function(a){var b=this.get("projectionTopLeft");return b?fl(this,a,b.x,b.y,"Container"):j};\nJ.getWorldWidth=function(){return gk(this.get("projection"),this.get("zoom"))};function el(a,b,c){var d=a.get("offset");return d?jk(a.get("projection"),b,a.get("zoom"),a.get("center"),d[t],d[H],c):j}function fl(a,b,c,d,e){var f=a.get("projection"),g=a.get("zoom");return b&&f&&M(g)?((!M(b.x)||!M(b.y))&&aa(ia("from"+e+"PixelToLatLng: Point.x and Point.y must be of type number")),a=a.j,a.x=b.x+c,a.y=b.y+d,lk(f,a,g)):j};var gl={"0":"",1:"opera",2:"msie",3:"chrome",4:"applewebkit",5:"firefox",6:"camino",7:"mozilla"},hl={"0":"",1:"x11",2:"macintosh",3:"windows",4:"android",5:"iphone",6:"ipad",7:"blackberry",8:"bada",9:"playbook"};\nfunction il(){var a=ha.userAgent;this.l=a;ui(this,0);this.D=this.n=this.b=this.d=0;for(var a=a[Hc](),b=1;8>b;++b){var c=gl[b];if(-1!=a[rb](c)){ui(this,b);var d=ka(c+"[ /]?([0-9]+(.[0-9]+)?)")[$a](a);d&&(this.b=hi(d[1]));break}}if(7==this[y]&&(b=/^Mozilla\\/.*Gecko\\/.*(Minefield|Shiretoko)[ /]?([0-9]+(.[0-9]+)?)/,d=b[$a](this.l)))ui(this,5),this.b=hi(d[2]);if(1==this[y]&&(b=/^Opera\\/9.[89].*Version\\/?([0-9]+(.[0-9]+)?)/,b=b[$a](this.l)))this.b=hi(b[1]);for(b=1;10>b;++b)if(c=hl[b],-1!=a[rb](c)){this.d=\nb;break}if(5==this.d||6==this.d||2==this.d)if(b=/OS (?:X )?(\\d+[_.]\\d)/[$a](this.l))this.n=hi(b[1][db]("_","."));this.e=5==this[y]||6==this[y]||7==this[y];this.j=4==this[y]||3==this[y];if(this.e&&(d=/\\brv:\\s*(\\d+\\.\\d+)/[$a](a)))this.D=hi(d[1]);this.Te=2==this[y]&&8>=this.b;this.A=m.compatMode||""}var Z;"undefined"!=typeof ha&&(Z=new il);function jl(){this.b=Z}function kl(a){var b=m[xb]("div");b[w](a,"return;");return"function"==typeof b[a]||a in m[lj]};function ll(){var a=Z,b;b=new jl;b=3==b.b[y]&&5>=b.b.b?k:kl("ontouchstart")&&kl("ontouchmove")&&kl("ontouchend");this.b=a;this.d=b}function ml(){var a=nl;return 2==a.b[y]&&7>a.b.b}function ol(a){return 4==a.b[y]&&4==a.b.d}function pl(a){return 4==a.b[y]&&(5==a.b.d||6==a.b.d)}function ql(){var a=nl;return rl(a)||a.d}function rl(a){return pl(a)||8==a.b.d||9==a.b.d||ol(a)&&534<=a.b.b};function sl(){this.b=Z}function tl(){var a=ul;return 5==a.b[y]&&3.5<=a.b.b?"MozTransform":a.b.j?"WebkitTransform":j}function vl(a){var b=ul.b;if(6==b.d||5==b.d||2==b.d&&10.6<=b.n&&4==b[y]&&533.19<=b.b||4==b.d&&4==b[y]&&534<=b.b)a[E].WebkitTransform="translateZ(0)"};var nl,ul;Z&&(nl=new ll,ul=new sl);function $(a,b,c,d,e,f){var g,f=f||{};if(2==Z[y]&&9>m.documentMode&&("name"in f||"type"in f))a="<"+a,"name"in f&&(a+=\' name="\'+f[Mb]+\'"\',delete f[Mb]),"type"in f&&(a+=\' type="\'+f[y]+\'"\',delete f[y]),a+=">";a=wl(b)[xb](a);for(g in f)a[w](g,f[g]);c&&xl(a,c);d&&Wg(a,d);b&&!e&&b[Ta](a);return a}function yl(a,b,c){a=wl(b)[Ri](a);b&&!c&&b[Ta](a);return a}function wl(a){return a?9==a[eb]?a:a.ownerDocument||m:m}\nfunction xl(a,b,c,d){d||zl(a);a=a[E];c=c?"right":"left";d=W(b.x);a[c]!=d&&(a[c]=d);b=W(b.y);a.top!=b&&(a.top=b)}function Al(a){Ki(a[E],"")}function Bl(a){zi(a[E],"hidden")}function Cl(a){zi(a[E],"")}function zl(a){a=a[E];"absolute"!=a[pj]&&Ai(a,"absolute")}function Dl(a,b){b==j&&aa(ia("Undefined cursor style"));a[E].cursor=b}function El(a,b){xi(a[E],qd(b))}function Fl(a){var b;b=ul;(b=b.b.j?"KhtmlUserSelect":b.b.e?"MozUserSelect":j)?a[E][b]="none":a.unselectable="on";a.onselectstart=Td}\nfunction Gl(a,b){Hd(a[E][wj])?Ci(a[E],b):Hd(a[E].filter)&&ii(a[E],"alpha(opacity="+qd(100*b)+")")}function Hl(a,b){var c=$("div",b,of);El(c,a);return c}function Il(a){var b=wl(a);return a.currentStyle?a.currentStyle:b.defaultView&&b.defaultView.getComputedStyle?b.defaultView.getComputedStyle(a,"")||{}:a[E]}function Jl(a){var b=Wk(a);return!gi(b)&&(a==b||a==b+"px")?b:0};function Kl(a){this.mapPane=Ll(a,0);this.overlayLayer=Ll(a,1);this.overlayShadow=Ll(a,2);this.overlayImage=Ll(a,3);this.floatShadow=Ll(a,4);this.overlayMouseTarget=Ll(a,5);this.floatPane=Ll(a,6)}function Ll(a,b){var c=m[xb]("DIV");vl(c);El(c,100+b);xl(c,of);a[Ta](c);return c};function Ml(a,b){this.min=a;this.max=b}function Nl(a,b){return ba.max?a.max:b};function Ol(a){this.d=a}L(Ol,U);Ol[C].immutable_changed=function(){var a=this,b=a.get("immutable"),c=a.b;b!=c&&(yd(a.d,function(d){(c&&c[d])!==(b&&b[d])&&a.set(d,b&&b[d])}),a.b=b)};function Pl(a,b){var c=1<a.y||a.y>=c)return j;if(0<=a.x&&a.xc.e){for(var h in g)break;delete g[h];--c.b}b(a)})});ki(Sl[C],function(a){this.sa[Ni](a)});function Tl(a){this.sa=a;this.e={};this.b={};this.d={};this.j=0}mi(Tl[C],function(a,b){var c=""+ ++this.j,d=this.e,e=this.b,f=""+a,g;e[f]?g=i:(e[f]={},g=k);d[c]=f;e[f][c]=b;g||((d=this.sa[Qi](a,O(this,this.l,f)))?this.d[f]=d:c="");return c});Tl[C].l=function(a,b){delete this.d[a];var c=this.b[a],d=[],e;for(e in c)d[p](c[e]),delete c[e],delete this.e[e];delete this.b[a];for(c=0;e=d[c];++c)e(b)};\nki(Tl[C],function(a){var b=this.e,c=b[a];delete b[a];if(c){b=this.b;delete b[c][a];var a=b[c],d=i,e;for(e in a){d=k;break}d&&(delete b[c],b=this.d,e=b[c],delete b[c],this.sa[Ni](e))}});function Ul(a){return new Tl(new Sl(a,100))};function Vl(){var a=this;a.e=20;a.j=0;a.b=[];a.d=j;a.l=function(){for(var b=Pd()+a.e,c=a.b,d=0,e=c[B];dZ.b||5==Z[y]){if(c=sm(a),b){var d=sm(b);c.x-=d.x;c.y-=d.y}}else c=tm(a,b);!b&&c&&pl(nl)&&4.1>Z.n&&(c.x-=l[mj],c.y-=l[ij]);return c}var um=ka(/scale\\(([0-9.]+)\\)/),vm=ka(/translate\\((-?\\d+)px, *(-?\\d+)px\\)/);\nfunction sm(a){for(var b=new S(0,0),c=tl(),d=wl(a)[lj],e=a;a!=d;){for(;e&&e!=d&&!e[E][c];)e=e[Bc];if(!e)return new S(0,0);a=tm(a,e);b.x+=a.x;b.y+=a.y;if(a=e[E][c]){var f=um[$a](a);if(f&&(f=hi(f[1]),M(f))){var g=e[ib]/2,h=e[Fc]/2;b.x=(b.x-g)*f+g;b.y=(b.y-h)*f+h}if(f=vm[$a](a))b.x+=hi(f[1]),b.y+=hi(f[2])}a=e;e=e[Bc]}c=tm(d,j);b.x+=c.x;b.y+=c.y;return new S(nd(b.x),nd(b.y))}\nfunction tm(a,b){var c=new S(0,0);if(a==b)return c;var d=wl(a);if(a.getBoundingClientRect)return d=a.getBoundingClientRect(),c.x+=d.left,c.y+=d.top,wm(c,Il(a)),b&&(d=tm(b,j),c.x-=d.x,c.y-=d.y),c;if(d.getBoxObjectFor&&0==l[mj]&&0==l[ij]){if(b){var e=Il(b);c.x-=Jl(e.borderLeftWidth);c.y-=Jl(e.borderTopWidth)}else b=d[lj];e=d.getBoxObjectFor(a);d=d.getBoxObjectFor(b);c.x+=e[Xi]-d[Xi];c.y+=e[Yi]-d[Yi];wm(c,Il(a));return c}return xm(a,b)}\nfunction xm(a,b){var c=new S(0,0),d=Il(a),e=a,f=i;if(Z.j||1==Z[y]&&9<=Z.b)wm(c,d),f=k;for(;e&&e!=b;){c.x+=e[Bj];c.y+=e[Pj];f&&wm(c,d);if(e[Ui]==qm){var g=c,h=e,n=d,r=h[Bc],u=k;if(Z.e){var x=Il(r),u="visible"!=n[hj]&&"visible"!=x[hj],A="static"!=n[pj];if(A||u)g.x+=Jl(n.marginLeft),g.y+=Jl(n.marginTop),wm(g,x);A&&(g.x+=Jl(n.left),g.y+=Jl(n.top));g.x-=h[Bj];g.y-=h[Pj]}if((Z.e||2==Z[y])&&"BackCompat"!=m.compatMode||u)l[ij]?(g.x-=l[mj],g.y-=l[ij]):(g.x-=r[Ij],g.y-=r[oj])}if(g=e.offsetParent){var G=Il(g);\nZ.e&&1.8<=Z.D&&g[Ui]!=qm&&"visible"!=G[hj]&&wm(c,G);c.x-=g[Ij];c.y-=g[oj];if(h=2!=Z[y])e.offsetParent[Ui]==qm&&"static"==G[pj]?(d=d[pj],h=1==Z[y]?"static"!=d:"absolute"==d):h=k;if(h){if(Z.e){f=Il(g[Bc]);if("BackCompat"!=Z.A||"visible"!=f[hj])c.x-=l[mj],c.y-=l[ij];wm(c,f)}break}}e=g;d=G}2==Z[y]&&m[lj]&&(c.x+=m[lj].clientLeft,c.y+=m[lj].clientTop);b&&e==j&&(e=xm(b,j),c.x-=e.x,c.y-=e.y);return c}function wm(a,b){a.x+=Jl(b.borderLeftWidth);a.y+=Jl(b.borderTopWidth)}\nfunction ym(a,b){if(Hd(a.offsetX)&&!Z.j&&!(2==Z[y]&&8<=Z.b)){var c=rm(tk(a),b);return new S(c.x+a.offsetX,c.y+a.offsetY)}if(Hd(a[jj])){var c=Z.j?new S(a.pageX-l[mj],a.pageY-l[ij]):new S(a[jj],a[kj]),d=rm(b,j);return new S(c.x-d.x,c.y-d.y)}return of};function zm(a){Am();this.P=k;this.K=j;this.d=k;this.G=0;this.na=2!=Z[y]?0:7>Z.b?50:20;this.O=2==Z[y];this.S=[];this.e=[];this.B=k;this.b=a;Bm(this);this.Aa=a[E].cursor;Cm(this)}var Dm,Em,Fm;L(zm,U);function Am(){if(!Dm){var a,b;Z.j?(a="url("+Zk+"openhand_8_8.cur) 8 8, default",b="url("+Zk+"closedhand_8_8.cur) 8 8, move"):(a="url("+Zk+"openhand_8_8.cur), default",b="url("+Zk+"closedhand_8_8.cur), move");Em=a;Fm=b;Dm=i}}J=zm[C];\nJ.mi=function(a){if(!Tk(a)){this.P=k;Q[q](this,Ok,a);var b;b=0==a[Ti]||1==a[Ti];!Gm(this)||!b?(Vd(a),b=k):b=i;b&&(Vd(a),b=this.b,this.O&&b.setCapture(),this.d=i,Cm(this),this.A=a[jj],this.D=a[kj],this.U=this.b[Bj],this.ba=this.b[Pj],!this.e[B]&&!this.O&&(this.e=[Q.R(l,Mk,this,this.Md),Q.R(l,Nk,this,this.pf)]))}};J.pf=function(a){if(!Tk(a)){if(this.na){var b=Pd();if(b-this.G=o.abs(a.A-a.l)&&2>=o.abs(a.D-a.n))return;a.P=i;Q[q](a,Bk,Im(a))}Q[q](a,Ak,Jm(a))}}J.li=function(a){this.P?Wd(a):Tk(a)||Q[q](this,Le,a);this.P=k};J.Md=function(a){if(!Tk(a)||this.P)Q[q](this,Mk,a),this.d&&(Hm(this,a),Vd(a),m.releaseCapture&&m.releaseCapture(),this.d=k,Cm(this),N(this.e,Q[kb]),Ia(this.e,0),this.P&&Q[q](this,zk,Jm(this)))};\nJ.pi=function(a){if(!a.relatedTarget&&this.d){var b=l[Xi],c=l[Yi],d=b+l.innerWidth,e=c+l.innerHeight,f=a[Xi],g=a[Yi];(f<=b||f>=d||g<=c||g>=e)&&this.Md(a)}};J.oi=function(a){this.B||(this.B=i,Q[q](this,Zj,a))};J.ni=function(a){var b;b=this.b;var c=a.relatedTarget||a.toElement;if(!b||!c)b=k;else{try{for(;c!=b&&c[Bc];)c=c[Bc]}catch(d){}b=b==c}(this.B=b)||Q[q](this,Yj,a)};\nfunction Cm(a){var b;b=Gm(a)?a.d?a.get("draggingCursor")||Fm:a.get("draggableCursor")||Em:a.get("draggableCursor")||a.Aa;a.K!=b&&(Dl(a.b,b),a.K=b)}function Jm(a){var b=a.b,c=a.get("container");c&&(a.l=a.A+Ad(a.l-a.A,c[Bj]-a.U,c[Bj]-a.U+c[ib]-b[ib]),a.n=a.D+Ad(a.n-a.D,c[Pj]-a.ba,c[Pj]-a.ba+c[Fc]-b[Fc]));return new lm(1,new S(a.l-a.A,a.n-a.D),new S(a.l-a.j.x,a.n-a.j.y))}function Im(a){a.j=rm(a.b,j);return new lm(1,new S(0,0),new S(a.A-a.j.x,a.D-a.j.y))}function Gm(a){return a.get("draggable")!=k}\nJ.draggable_changed=function(){Km(this);Cm(this);Bm(this)};J.draggableCursor_changed=function(){Cm(this)};J.draggingCursor_changed=function(){Cm(this)};function Bm(a){var b=a.b,c=a.S;if(Gm(a))c[p](Q.R(b,Le,a,a.li)),Z.e&&c[p](Q.R(l,Yj,a,a.pi));else c[p](Q.pa(b,Le,a));c[p](Q.R(b,Mk,a,a.Md),Q.R(b,Ok,a,a.mi),Q.pa(b,Pk,a),Q.R(b,Zj,a,a.oi),Q.R(b,Yj,a,a.ni),Q.R(b,Nk,a,a.pf))}function Km(a){N(a.e,Q[kb]);Ia(a.e,0);N(a.S,Q[kb]);Ia(a.S,0)}J.Q=function(){Km(this)};function Lm(a){this.b=a;this.e=0}L(Lm,U);function Mm(a){if(Z.e){var b;b=1==Z.d&&3.6>Z.b?l:a.b;a.S=[Q.R(b,Kk,a,a.d),Q.R(b,Nk,a,function(a){this.Mh={clientX:a[jj],clientY:a[kj]}})]}else a.S=[Q.R(a.b,Lk,a,a.d)]}oi(Lm[C],function(){this.get("enabled")!=k?this.S||Mm(this):this.S&&(N(this.S,Q[kb]),this.S=j)});\nLm[C].d=function(a,b){var c,d=Z.e?this.Mh:a;if(d&&(d=ym(d,this.b))&&!(0>d.x||0>d.y||d.x>this.b[tj]||d.y>this.b.clientHeight))Td(a),c=Pd(),200>c-this.e||Z.e&&"HTML"==tk(a)[Ac]||(this.e=c,1==ld(b)?c=b:(c=M(a.wheelDeltaY)?a.wheelDeltaY:a.wheelDelta||a.detail,Z.e&&(c*=-1)),0!=c&&Q[q](this,Lk,d,0>c?-1:1))};function Nm(a,b,c){this.gb=this.sb=0;this.G=new S(0,0);this.e=new mm;this.b=new mm;this.Aa=new mm;this.D=new mm;this.l=new mm;this.n=new mm;this.d=new mm;this.B=0;this.S=[];this.K=a;this.S[p](Q.R(a,"touchstart",this,this.Eb));this.S[p](Q.R(a,"touchmove",this,this.Nb));this.S[p](Q.R(a,"touchend",this,this.ba));this.S[p](Q.R(a,"touchcancel",this,this.ba));this.set("scalable",b);this.U=c}L(Nm,U);\nNm[C].Eb=function(a){if(!Tk(a)){var b=a[Cj];this.O=j;1==b[B]&&(this.O=b[Si](0)[jc]);a[ob]();Om(this,Ok,a);this.U&&(this.sb=Pd(),a=b[Si](b[B]-1),this.na=!this.na&&500>=this.sb-this.gb&&50>=o.abs(this.G.x-a[jj])&&50>=o.abs(this.G.y-a[kj]),this.G.x=a[jj],this.G.y=a[kj],this.Tc=1==b[B]);Pm(this);Qm(this,b,this.e,this.b);this.A&&(this.B=Pd(),Rm(this)&&Q[q](this,Ak,Sm(this)))}};\nNm[C].Nb=function(a){if(!Tk(a))if(a[ob](),Om(this,Nk,a),Qm(this,a[Cj],this.b,this.Aa),a=Pd(),this.A)10this.Ra/3&&(this.Ga=o[v](this.Ra/3));this.b=(o.sin(o.PI*(this.Ga/this.Ra-0.5))+1)/2});function Wm(a){this.f=a||[]}function Xm(a){this.f=a||[]}Pa(Wm[C],function(){var a=this.f[0];return a!=j?a:""});Xm[C].ta=function(){var a=this.f[2];return a!=j?a:-1};function Ym(a){a=a.f[1];return a!=j?a:-1};function Zm(a){this.f=a||[]}function $m(a){this.f=a||[]}Pa(Zm[C],function(){var a=this.f[0];return a!=j?a:""});function an(a){var b=Pd()[Sb](36);a.f[6]=b[Ob](b[B]-6)}$m[C].ta=function(){var a=this.f[0];return a!=j?a:-1};function bn(a,b,c,d,e,f,g){this.e=Uk(function(d){var n=new Wm;n.f[0]=a;n.f[4]=1;e&&(n.f[1]=e,f&&(n.f[2]=f));g&&(n.f[3]=g);c(n,function(a){var c;c=a.f[0];c=c!=j?c:k;0!=a.ta()&&(c=i);if(!c)if(2==Ym(a))c=i,alert("The provided key is not a valid Google API Key, or it is not authorized for the Google Maps Javascript API v3 on this site. If you are the owner of this application, you can learn about obtaining a valid key here: http://code.google.com/apis/maps/documentation/javascript/tutorial.html#Obtaining_Key");\nelse{cn();var e="Google has disabled use of the Maps API for this application. ",e=0==Ym(a)?e+"This site is not authorized to use the Google Maps client id provided. If you are the owner of this application, you can learn more about registering URLs here: http://code.google.com/apis/maps/documentation/premier/guide.html#URLs":e+("See the Terms of Service for more information: http://www.google.com"+(b+"/help/terms_maps.html."));alert(e)}d(c)})});this.j=function(b,c){var f=new Zm;f.f[0]=a;e?f.f[1]=\ne:g&&(f.f[2]=g);f.f[3]=1;f.f[4]=b;f.f[5]=1;an(f);d(f,function(a){var b;b=a.f[2];b=b!=j?b:k;0!=a.ta()&&(b=i);c(b)})}}function dn(a,b){a.b();return function(){var c=this,d=arguments;a.e(function(a){a&&b[yc](c,d)})}}bn[C].b=function(){this.e(Jd)};bn[C].d=Wc(1);function cn(){function a(b){"object"==typeof b&&yd(b,function(b,d){"Size"!=b&&(yd(d[C],function(a){d[C][a]=Jd}),a(d))})}N(Xf,function(a){a[Bc][hc](a)});Q.mg();a(Yc.google.maps)};var en="_xdc_";function fn(a,b,c,d,e,f,g){l[en]||(l[en]={});e&&"&"==e[mb](e[B]-1)&&(e=e[Ob](0,e[B]-1));var h=c,c=c[mb](c[B]-1);"?"!=c&&"&"!=c&&(h+="?");h+=e;b="_"+b(h)[Sb](36);h+="&callback="+en+"."+b;d&&(h=d(h));d=l[Wb](gn(g),25E3);hn(b,f,d);f=h;if(h=a[Nb]("head")[0])a=a[xb]("script"),ui(a,"text/javascript"),a.charset="UTF-8",l[Wb](O(j,uk,a),25E3),a.src=f,h[Ta](a)}function gn(a){return function(){a&&a()}}\nfunction hn(a,b,c){var d=l[en];d[a]||(d[a]=function(b){var c=d[a].Lg[Ya]();l[Za](c[Kj]);c(b)},d[a].Lg=[]);Ii(b,c);d[a].Lg[p](b)};function jn(a){this.b=a}jn[C].setPosition=function(a,b){xl(a,b,this.b)};var kn;if(mf){var ln=Fg().f[3];kn=ln!=j?ln:k}else kn=k;var mn=new jn(kn),nn=mf?Hg():"",on;if(mf){var pn=Fg().f[8];on=pn!=j?pn:""}else on="";var qn=on,rn=mf?["/intl/",Eg(),"_",Gg()][Gc](""):"",sn;if(sn=mf){var tn=mf.f[9];sn=tn!=j?tn:""}var un=sn||"http://www.google.com"+rn+"/help/terms_maps.html",vn={};if(mf)for(var wn=0;wnb.y&&(f="&s=");return[a[e],"x=",b.x,f,"&y=",b.y,"&z=",c,"&s=",d][Gc]("")};function Dn(a,b,c,d,e,f,g,h){return function(n,r,u){var x=b&&b.b(n,r),A=!x&&f&&rb||e[tc]>g,n.C>>g),new S(1+(n.H>>g),1+(n.I>>g))]),a))return e.b}}}return j};function cs(a){this.f=a||[]}cs[C].b=function(){return fd(this.f,0)};cs[C].d=function(a){return new Wr(ed(this.f,0)[a])};\nfunction ds(a,b,c){a=a.b=$("div",a,of,b);b=a[E];li(b,"Arial,sans-serif");Ei(b,"x-small");Fi(b,"center");si(b,"6em");Fl(a);yl(c,a)}function es(a,b,c){var d=1<=e)return j;b=nd(d*c.F);c=md(d*c.H);if(a.x>=b&&a.x=o.abs(f.x-g.x)&&1.0E-10>=o.abs(f.y-g.y));g&&a.wf(f)}g=a.Rc();c=a.ec();if(g&&c&&(f=c.x-g[t]/2,g=c.y-g[H]/2,c=a.Qc(),!c||!(1.0E-10>=o.abs(c.x-f)&&1.0E-10>=o.abs(c.y-g))))c||(c=new S(0,0)),c.x=f,c.y=g,a.set("projectionTopLeft",\nc);ms(a);a.e=e;a.d=d}function js(a){var b=a.ec(),c=a.ie(),d=a.je();if(c&&M(d)&&b){if(c=b=lk(c,b,d,i))c=a.ne(),c=!(b&&c&&1.0E-10>=o.abs(b.lat()-c.lat())&&1.0E-10>=o.abs(b.lng()-c.lng()));c&&a.set("latLngCenter",b)}}function ms(a){var b=a.ne();b&&(b=18*qd(b.lng()/18),b!=a.Be&&(a.Be=b,a.set("projectionCenterQ",a.ec())))}\nfunction ks(a){var b=a.Rc(),c=a.Qc();if(b&&c){var d=c.x+b[t]/2,b=c.y+b[H]/2,c=a.ec();if(!c||!(1.0E-10>=o.abs(c.x-d)&&1.0E-10>=o.abs(c.y-b)))c||(c=new S(0,0)),c.x=d,c.y=b,a.wf(c)}var e=a.Rc(),f=a.Qc();if(e&&f){var d=a.Yf()||new qf,b=f.x,c=f.y,g=f.x+e[t],e=f.y+e[H];if(d.F!=b||d.C!=c||d.H!=g||d.I!=e)d.F=b,d.C=c,d.H=g,d.I=e,a.set("projectionBounds",d)}a.b||(js(a),ms(a))}function ls(a){var b=a.ie(),c=a.je(),d=a.Yf();b&&M(c)&&d&&(a.l=fs(b,d,c),l[Wb](function(){a[Qb]("latLngBounds")},0))}J.je=V("zoom");\nJ.Rc=V("size");J.Qc=V("projectionTopLeft");J.ec=V("center");J.wf=Jf("center");J.ne=V("latLngCenter");J.Yf=V("projectionBounds");J.ie=V("projection");J.getLatLngBounds=Uc("l");J.ck=V("fixedPoint");function ns(a,b,c){this.b={};this.e=Hl(c,a);this.d=b}Da(ns[C],function(){var a=this;yd(this.b,function(b,c){os(a,c)});delete this.d;delete this.b;uk(this.e,i)});ns[C].freeze=function(){if(this.d.mb){var a=this;yd(this.b,function(b,c){a.d.mb(c)})}};function os(a,b){delete a.b[b.ma];a.d[kc]&&a.d[kc](b);uk(b,i)};function ps(a,b){Vg[lc](this);this.b=Hl(1,a);this.n=new T(0,0);this.G=this.e=j;this.A={};this.B={};this.K=b;this.l=1;this.O=k}L(ps,Vg);J=ps[C];J.zIndex_changed=function(){El(this.b,this.get("zIndex")||0)};J.getDiv=Uc("b");J.fb=V("mapType");Ja(J,V("zoom"));yi(J,function(){var a=this[rj]();this.d!=a&&(this.d=a,this.qe())});ti(J,V("offset"));J.offset_changed=function(){this.N()};J.getProjection=V("projection");J.Og=Jf("projection");J.Ne=V("projectionBounds");J.projectionBounds_changed=function(){this.N()};\nri(J,function(){this.N()});J.mapType_changed=function(){var a=this.fb();this.U!=a&&(this.U=a,this.qe())};function qs(a){var b=a.fb();return!(!a.K||!b||!b.e)}J.qe=function(){rs(this);var a=this.fb();a&&(this.e=new ns(this.b,a,1),this.N())};J.W=function(){ss(this)};\nfunction ss(a){var b=a[rj](),c=a[bj](),d=a.Ne(),e=a.get("size"),f=a.fb(),g=a.e;if(e&&c&&d&&f&&g&&!a.O){var e=new T(qd(c[t]),qd(c[H])),h=!a.n[wb](e);a.n=e;var e=a.G,n=a.G=ts(a,d);if(n[wb](e))h&&us(a);else{yd(g.b,function(b,c){Xj(n,c.ma)||(vs(a,c),os(g,c))});for(var e=[],r=n.F;rd.F-c[t]-A[t]&&e.yd.C-c[H]-A[H]&&(a.B[f.ma]=1))});Al(g.e)}Q[q](a,"tilesloading")}}wa(J,function(){rs(this);uk(this.b)});function us(a){yd(a.e.b,function(b,c){xs(a,c,c.ma)})}\nfunction xs(a,b,c){var d=a.fb()[Fb],d=new S(c.x*d[t]-a.n[t],c.y*d[H]-a.n[H]),e=a[Wi]();if(e&&e[zj]){var f=a.fb()[Fb],a=a[rj]();if((e=e[zj]()||Tf)&&45==e.wa()&&0!=e[gj]()%180)a=Xr(f,a),c=nd((c.y-a.j)/a.l),d=new S(d.x,d.y-c*a.e)}xl(b,d,ba,i);return d}\nfunction ts(a,b){var c=a.fb()[Fb],d=0.25*c[t],e=0.25*c[H],d=rf(b.F-d,b.C-e,b.H+d,b.I+e);if((e=a[Wi]())&&e[zj]){var f=a[rj]();if((e=e[zj]()||Tf)&&45==e.wa()&&0!=e[gj]()%180)var e=Xr(c,f),f=nd((d.C-e.b)/e.d),g=nd((d.I-e.b)/e.d),d=rf(d.F,d.C+f*e.e,d.H,d.I+g*e.e)}e=new qf;e.F=nd(d.F/c[t]);e.C=nd(d.C/c[H]);e.H=md(d.H/c[t]);e.I=md(d.I/c[H]);return e}function ys(a){yd(a.e.b,function(b,c){vs(a,c)})}function rs(a){a.e&&(ys(a),a.e[ej](),a.e=j,a.G=j)}J.freeze=function(){this.O=i;this.e&&(ys(this),this.e.freeze())};\nfunction ws(a){var b=0,c=0,d=0;N(a,function(a){++b;c+=a.x;d+=a.y});if(!b)return[];var c=c/b,d=d/b,e=fa(b),f=0;N(a,function(a){var b=a.x-c,n=a.y-d;a.Ng=b*b+n*n;e[f++]=a});e[Jj](function(a,b){return a.Ng-b.Ng});return e}function vs(a,b){b.vd&&Q[kb](b.vd);b.vd=ba;var c=b.ma;if(a.A[c]){var d=!!a.B[c];delete a.B[c];d&&zd(a.B)&&Q[q](a,Ik);delete a.A[c];zd(a.A)&&Q[q](a,"tilesloaded")}};function zs(a,b){this.B=b;this.e=new S(0,0);this.l=new S(0,0);As(this);Q[F](a,Ok,O(this,this.gj));Q[F](a,Bk,O(this,this.ij));Q[F](a,Ak,O(this,this.jj));Q[F](a,zk,O(this,this.hj))}L(zs,U);function As(a){a.j=j;a.d=j;a.n=j;a.l.x=0;a.l.y=0;a.b=j;a.e.x=0;a.e.y=0;a.D=j;a.A=j}J=zs[C];J.gj=function(){Bs(this);Cs(this)};J.ij=function(a){Bs(this);Cs(this);Ds(this,a);Q[q](this,Bk,a)};J.jj=function(a){Ds(this,a);Q[q](this,Ak,a)};\nJ.hj=function(a){Ds(this,a);if(this.get("disabled")==i)Q[q](this,zk,a);else if(this.d){var b=this.l,c=this.e;this.b=b.Lc();c.x=b.x/this.b;c.y=b.y/this.b;b.x=b.y=0;this.b=o.min(this.b,500);50<=this.b?this.j=l[yj](O(this,this.th),1E3/(2==nl.b[y]?20:50)):(As(this),Q[q](this,zk,a))}else Q[q](this,zk,a)};function Cs(a){a.j&&(l[Mj](a.j),a.j=j,Q[q](a,zk,a.A));As(a)}\nfunction Bs(a){var b=a.d;if(b){var c=(Pd()-a.n)/1E3,d=c*a.B;a.D=a.b-d;var e=c*d/2,d=o[v]((a.b*c-e)*a.e.x),c=o[v]((a.b*c-e)*a.e.y);a.A=new lm(b[Nj],new S(b.b.x+d,b.b.y+c),new S(b.xa.x+d,b.xa.y+c))}}J.th=function(){Bs(this);50<=this.D?Q[q](this,Ak,this.A):Cs(this)};function Ds(a,b){var c=Pd();if(a.d){var d=(c-a.n)/1E3;if(0g&&(h.x+=(1-d)*e,h.y+=(1-d)*f)}}a.d=b;a.n=c};var Es=nl.b.d,Fs=1==Es||2==Es||3==Es?2E3:500;function Gs(a,b){this.b=b;this.d=a;this.j=this.e=0;Q.R(this.d,Me,this,this.hf);if(!ql()){var c=new zm(this.b);c[s]("draggingCursor",this);c[s]("draggableCursor",this);c[s]("draggable",this);Hs(this,c);Is(this,c)}ql()||(c=new Lm(this.d),Q[z](c,Lk,this,this.tf),Q[z](this,Lk,this,this.tf),c[s]("enabled",this,"scrollwheel"));ql()&&(c=new Nm(this.d,i,i),Hs(this,c),Is(this,c),c[s]("draggable",this),c[s]("scalable",this,"draggable"))}L(Gs,U);J=Gs[C];J.Ig=Jf("zoom");\nJ.Hg=V("zoom");yi(J,Gs[C].zoomRange_changed=function(){var a=this.Hg(),b=Js(this,a);a!=b&&this.Ig(b)});function Hs(a,b){Q[z](b,Le,a,a.Vj);Q[z](b,Pk,a,a.Xj);Q[z](b,Ok,a,a.Wj);N([Zj,Nk,Yj,Ok,Mk],function(c){Q[F](b,c,O(a,a.bd,c))});var c=new zs(b,Fs);Q[D](c,Bk,a);Q[D](c,Ak,a);Q[D](c,zk,a);c[s]("disabled",a,"disablePanMomentum")}function Is(a,b){Q[F](b,Bk,function(){Q[q](a,Ek)});Q[F](b,Ak,function(){Q[q](a,Dk)});Q[F](b,zk,function(){Q[q](a,Ck)})}\nfunction Js(a,b){var c=a.get("zoomRange");c&&(b=Nl(c,b));return b}J.hf=function(a){var b=Pd();250>=b-this.j?(this.j=0,this.get("disableDoubleClickZoom")||Ks(this,-1)):(this.j=b,this.bd("rightclick",a));Td(a);this.l=i};J.Xj=function(a){1=b-this.e?this.e=0:(this.e=b,this.bd(Le,a))}};\nJ.bd=function(a,b){var c=ym(b,this.b),d=ym(b,this.d);Q[q](this,a,c,d,b)};J.Wj=function(a){this.l=k;5==Z[y]&&2==Z.d&&2==a[Ti]&&!a.ctrlKey&&this.hf(a)};J.tf=function(a,b){var c=o.pow(2,b),d=new mm(0,0,c);nm(d,new S(-a.x,-a.y));c=new lm(c,new S(d.x,d.y),a);Q[q](this,Bk);Q[q](this,Ak,c);Q[q](this,zk,c)};function Ks(a,b,c){if(c){var d=a.get("size"),e=a.get("projectionTopLeft");e.x+=c.x-d[t]/2;e.y+=c.y-d[H]/2;a.set("projectionTopLeft",e)}c=a.Hg();b=Js(a,c+b);c!=b&&a.Ig(b)};function Ls(a,b,c){var d=this;d.L=a;d.d=b;Q[z](b,Mf,d,d.j);Q[z](b,Nf,d,d.l);Q[z](b,Lf,d,d.n);d.b=[];d.e=j;c&&(d.e=Ms(d,c));d.d[Bb](function(a){a=Ms(d,a);d.b[p](a)});Ns(d)}L(Ls,U);Ls[C].j=function(a){var b=this.b,c=Ms(this,this.d[dc](a));b[Ec](a,0,c);Ns(this)};Ls[C].l=function(a){var b=this.b;Os(b[a]);b[Ec](a,1);Ns(this)};Ls[C].n=function(a){Os(this.b[a]);var b=Ms(this,this.d[dc](a));b.set("zIndex",a);this.b[a]=b};\nfunction Ns(a){N(a.b,function(a,c){a.set("zIndex",c)});a.e&&a.e.set("zIndex",a.b[B])}function Ms(a,b){var c=new ps(a.L,j);c[s]("size",a);c[s]("zoom",a);c[s]("offset",a);c[s]("projectionBounds",a);c.set("mapType",b);return c}function Os(a){a[vb]();a[nb]("size");a[nb]("zoom");a[nb]("offset");a[nb]("projectionBounds");a.set("mapType",j)};function Ps(a,b){this.d=b;this.b=360/b[B];this.e=a;Qs(this)}L(Ps,U);wi(Ps[C],function(){var a=this.get("heading");if(M(a)){var b;b=Bd(a,0,360);b=this.b*o[v](b/this.b);a!==b?this.set("heading",b):Qs(this)}});Hi(Ps[C],function(){Qs(this)});function Qs(a){var b=a.get("heading")||0,c=a.e,d=a.get("tilt");d?c=a.d[b/a.b]:0==d&&0!=b&&a.set("heading",0);c!=a.get("mapType")&&a.set("mapType",c)};function Rs(a){this.b=a}L(Rs,U);Gi(Rs[C],function(){this.d(this.get("mapTypeId"))});Rs[C].setMapTypeId=function(a){this.d(a);this.set("mapTypeId",a)};\nRs[C].d=function(a){var b=this.b.get(a);if(!(b&&b==this.j)){this.e&&(Q[kb](this.e),this.e=j);var c=O(this,this.d,a);a&&(this.e=Q[F](this.b,a[Hc]()+"_changed",c));b&&b instanceof Jh&&(a=b.D);c=this.j;a=this.b.get(a);a&&a==c||(c&&c.dc&&(c.dc[$i](),this[nb]("mapType")),a&&a.dc?(a=a.dc,a[s]("heading",this),a[s]("tilt",this),this[s]("mapType",a)):this.set("mapType",a));this.set("styles",b&&b.n);this.set("maxZoom",b&&b[tc]);this.set("minZoom",b&&b[qb]);this.j=b}};function Ss(a,b,c,d,e,f,g,h){this.x=a;this.y=b;this.b=c;this.e=d;this.l=e;this.j=f;this.n=g;this.A=h;a=1/o.cos(Dd(this.l));b=1/o.cos(Dd(this.j));d=Dd(this.e);c=o.cos(d);d=o.sin(d);e=this.b;this.d=[c*e,d*e/a,-d*e*b,c*e*b/a];a=this.x;b=this.y;this.x=this.d[0]*a+this.d[2]*b;this.y=this.d[1]*a+this.d[3]*b}function Ts(a,b,c,d,e,f,g){c=o.pow(2,c)/o.pow(2,f);f=Bd(d[gj]()-a[gj](),-180,180);return new Ss(e.x-b.x,e.y-b.y,c,f,a.wa(),d.wa(),g.x,g.y)}function Us(){return 4==Z[y]&&526>=Z.b||5==Z[y]?k:!!tl()}\nvar Ws=new Ss(0,0,1,0,0,0,0,0);function Xs(){}L(Xs,U);function Ys(a){return!!a.e&&!!a.d&&0<=a.j}function Zs(a){if(!Ys(a))return Ws;var b=Tg(a.O,a.d,a.l),c=Tg(a.O,a.D,a.l);return Ts(a.e,b,a.j,a.B,c,a.l,a.ba)}function $s(a){a.e=a.n=a.B=j;a.d=a.G=a.D=j;a.j=a.K=a.l=-1;a.b=j;at(a)}function at(a){a.A&&(l[Za](a.A),a.A=j)}\nXs[C].U=function(){if(this.b){var a=this.b[uj](),b=this.n,c=this.B,d=Bd(c[gj]()-b[gj](),-180,180);this.e=new Sf(b[gj]()+a*d,(1-a)*b.wa()+a*c.wa());b=this.G;c=this.D;this.d=new P((1-a)*b.lat()+a*c.lat(),(1-a)*b.lng()+a*c.lng(),i);this.j=(1-a)*this.K+a*this.l;a=Zs(this);this.b.Gaf?e=f:0h?g=h:0c&&(e=f),g>d&&(g=h),this.fc(e,g)}};function mt(a,b,c){a=a.rb();a.x+=b;a.y+=c}\nfunction nt(a){a.U=i;a[Qb]("projectionTopLeft");a[Qb]("pixelBounds");a[Qb]("layoutPixelBounds");a.U=k;a.D()}\nJ.W=function(){var a=this.eb();if(this.qb()&&M(a)&&this.rb()&&!this.na){this.na=i;var b=this.get("mapType"),c=this.sd(),d=this.e,e=d&&d[bj](),f=!!d&&a!=d[rj]();if(!d||c!=d[Wi]())this.d.x=this.d.y=0;var g,h=k,n;n=this.e;if(!n||!(this.eb()==this.e[rj]()||Us()))n=i;else if(g=this.eb(),2(this.eb()e?0:45)),Hd(d)&&(e=a.get("desiredTilt"),b=d?e:0)):b=0,Hd(b)&&b!=a.get("tilt")&&a.set("tilt",b),a.set("aerialAvailable",c),a.set("aerialAvailableAtZoom",d),a.b=k)};function vt(a){this.b=a}L(vt,U);\nCa(vt[C],function(a){if("apistyle"!=a){var b=this.get("mapTypeStyles")||this.get("styles"),c=[],a=i;vn[13]&&(c[p]({featureType:"poi.business",elementType:"labels",stylers:[{visibility:"off"}]}),K(b)||(a=k));Fd(c,b);for(var b=[],d=0;d=c[B]?c:"";c!=this.get("apistyle")&&(c&&a&&this.b(Jd),this.set("apistyle",c))}});function wt(a){this.b=a}L(wt,U);Ca(wt[C],function(a){if("available"!=a){var a=this.get("viewport"),b=this.get("featureRects"),a=this.b(a,b);a!=j&&a!=this.get("available")&&this.set("available",a)}});function xt(a,b){if(a&&b){for(var c=0,d;d=b[c++];)if(d[Xb](a))return i;return k}};function yt(a){this.f=a||[]}function zt(a){this.f=a||[]}function At(a){this.f=a||[]}function Bt(a){this.f=a||[]}function Ct(){var a=[];a[0]={type:"m",label:1,V:ik()};a[1]={type:"u",label:1};a[4]={type:"e",label:1};a[3]={type:"s",label:1};a[5]={type:"s",label:1};a[6]={type:"b",label:1};a[7]={type:"e",label:1};return a}Ja(yt[C],function(){var a=this.f[1];return a!=j?a:0});ya(yt[C],function(a){this.f[1]=a});zt[C].ta=function(){var a=this.f[4];return a!=j?a:-1};\nfunction Dt(a){a=a.f[0];return a!=j?a:""}var Et=new cs;function Ft(a){return(a=a.f[3])?new cs(a):Et}function Gt(a){a=a.f[0];return a!=j?a:""}var Ht=new ok;function It(a){return(a=a.f[1])?new ok(a):Ht}At[C].clearRect=function(){delete this.f[1]};function Jt(a){a=a.f[0];return a!=j?a:0}var Kt=new ok;function Lt(a){return(a=a.f[1])?new ok(a):Kt}Bt[C].clearRect=function(){delete this.f[1]};var Mt={m:0,k:2,h:3,r:4,a:5};function Nt(a,b,c){Vg[lc](this,50);this.b=this.d=j;this.A=a;this.l=c;this.n=b}L(Nt,Vg);function Ot(a,b){function c(a){b(new zt(a))}var d=$c(a.f,Ct());R("util",function(a){a.j(l[Yb],eg,a.d+"/maps/api/js/ViewportInfoService.GetViewportInfo",dg,d,c)})}Ca(Nt[C],function(a){if(!("attributionText"==a||"epochs"==a)){"mapType"==a&&Pt(this);if("zoom"==a||"mapType"==a)this.d=this.b=j;this.N()}});function Pt(a){var b,c=Qt(a);if("k"==c||"h"==c)b=a.G;a.n.set("maxZoomRects",b)}\nNt[C].e=V("zoom");function Qt(a){return(a=a.get("mapType"))&&a.K}\nNt[C].W=function(){var a=this.l,b=this.d,c;c=this.e();var d=this.get("bounds"),e=Qt(this);if(!M(c)||!d||!e)c=j;else{var f=d[cc]();this.b||(this.b=f);var g=d[dj](),d=qd((f.lat()-this.b.lat())/g.lat()),f=qd((f.lng()-this.b.lng())/g.lng());c=e+"|"+d+"|"+f+"|"+c;45==this.get("tilt")&&(c+="|"+(this.get("heading")||0))}if(c=this.d=c){if(c!=b){for(var h in a)a[h].set("featureRects",ba);b=O(this,this.B,c);e=this.get("bounds");c=Qt(this);f=Mt[c];if(e&&M(f)){c=new yt;c.f[3]=this.A;c[Cb](this.e());c.f[4]=f;\nf=this.get("heading")||0;c.f[7]=f;f=45==this.get("tilt");c.f[6]=f;if((f=this.get("mapType"))&&f.Dc)c.f[5]=f.Dc;f=e[dj]();d=e[cc]();e=e[pb]();e=new fe(new P(d.lat()-f.lat(),d.lng()-f.lng()),new P(e.lat()+f.lat(),e.lng()+f.lng()));c.f[0]=c.f[0]||[];f=new ok(c.f[0]);d=qk(f);ck(d,e[cc]().lat());ak(d,e[cc]().lng());f=sk(f);ck(f,e[pb]().lat());ak(f,e[pb]().lng());Ot(c,b);Q[q](this,"viewport_requested")}}}else this.set("attributionText","");b=this.get("bounds");this.n.set("latLng",b&&b[Oi]());for(h in a)a[h].set("viewport",\nb)};Nt[C].B=function(a,b){if(a==this.d){this.set("attributionText",decodeURIComponent(Dt(b)));this.set("epochs",Ft(b));for(var c={},d=0,e=fd(b.f,1);d=x.Y.b&&a.Y.d<=x.Y.d){x=x.$;var I=a.$,X=x.b,Wa=x.d,I=be(x)?be(I)?I.b>=X&&I.d<=Wa:(I.b>=X||I.d<=Wa)&&!x[Ua]():be(I)?360==x.d-x.b||I[Ua]():I.b>=X&&I.d<=Wa}if(I){c=1;break a}I=e[xc](G.b)&&G[xc](e.b)&&!e[wb](G)?ce(G.b,e.d)+ce(e.b,G.d):ce(e[xc](G.b)?G.b:e.b,e[xc](G.d)?G.d:e.d);A=pd(d.d,A.d)-od(d.b,A.b);\nc+=I*A}c/=(d[Ua]()?0:d.d-d.b)*de(e)}c=0.9<=c}return c});a[s]("streetView",c,"available");a[s]("traffic",d,"available");a={};a.obliques=b;a.street_view=c;a.traffic=d;a.report_map_issue=e;return a};function qu(){}J=qu[C];\nJ.Lh=function(a,b,c){var d=ih;function e(a){hh(d,a);if(M(Or(d,"mb"))&&(M(Or(d,"vt"))||M(Or(d,"dm")))&&!M(Or(d,"prt")))a=hh(d,"prt"),hh(d,"plt",a-Or(d,"mc")+Or(d,"jl")),u()}var f=Eg(),g=a.M(),h=new St;g[s]("uniqueLayers",h,"output");h[s]("input",g,"layers");var n=new Bn,h=new Zt(a,n);iu(h,a[aj]);var r=a[vj](),u=Qd(2,function(){R(Ge,function(b){var c=Xg(r);b.Wa.We("apiboot",d,{size:c[t]+"x"+c[H],maptype:yk[a.get("mapTypeId")||"c"]})})}),x=new In(r,b),A=x.j;El(x.b,0);Q[D](a,Jk,r);g.set("panes",x.d);\ng.set("innerContainer",x.e);var G=new Gs(x.e,A);G[s]("draggingCursor",a);G[s]("size",x);Q[F](a,"zoom_changed",function(){G.get("zoom")!=a.get("zoom")&&G.set("zoom",a.get("zoom"))});G.set("zoom",a.get("zoom"));G[s]("disablePanMomentum",a);c&&(h=new gs(A),h[s]("center",a),h[s]("projectionBounds",g),h[s]("offset",g),c[s]("div",h),c[s]("center",h,"newCenter"),c[s]("zoom",G),c[s]("tilt",g),c[s]("size",g),Q[Hb](c,Oe,function(){e("dm")}));R(Ce,function(b){b.Ld(a,n,new Of)});var I;I=new ft(A);mu(I,G,a);I.set("panes",\nx.d);var X=pu(a[Gj]),Wa=new tt;Wa[s]("tilt",a);Wa[s]("zoom",a);Wa[s]("mapTypeId",a);Wa[s]("aerial",X.obliques,"available");g[s]("tilt",Wa);var c=new qt,ab=new Nt(f,c,X),na=ju(a);ab[s]("epochs",n);ab[s]("tilt",a);ab[s]("heading",a);ab[s]("bounds",a);ab[s]("zoom",a);ab[s]("mapType",na);f=new vt(Uk(function(a){R("util",function(b){b.b.d(1,a)})}));f[s]("styles",a);f[s]("mapTypeStyles",na,"styles");g[s]("apistyle",f);var Y=new hs;g.set("projectionController",Y);I[s]("zoom",G);I[s]("size",x);I[s]("projection",\nY);I[s]("projectionBounds",Y);I[s]("mapType",na);Y[s]("projectionTopLeft",I);Y[s]("offset",I);Y[s]("latLngCenter",a,"center");Y[s]("zoom",G);Y[s]("size",x);Y[s]("projection",a);I[s]("fixedPoint",Y);a[s]("bounds",Y,"latLngBounds",i);nu(Y,G,a,A);G[s]("projectionTopLeft",Y);g[s]("zoom",G);g[s]("center",a);g[s]("size",x);g[s]("mapType",na);g[s]("offset",I);g[s]("layoutPixelBounds",I);g[s]("pixelBounds",I);g[s]("projectionTopLeft",I);g[s]("projectionBounds",I,"viewProjectionBounds");g[s]("projectionCenterQ",\nY);f=new Ol({projection:1});f[s]("immutable",g,"mapType");h=new An({projection:new Sg});h[s]("projection",f);a[s]("projection",h);f={};g.set("mouseEventTarget",f);ou(Y,G,a,I);Q[D](f,Lk,G);Q[D](g,Pe,I);Q[D](g,Hk,I);Q[D](g,Gk,I);Q[F](g,Qe,function(a){a instanceof P?(a=Y.fromLatLngToDivPixel(a),Q[q](I,Qe,a.x,a.y)):aa(ia("panTo: latLng must be of type LatLng"))});Q[D](g,Fk,I);Q[F](g,"pantolatlngbounds",function(a){if(a instanceof fe)Q[q](I,Fk,wk(Y.get("projection"),a,Y.get("zoom"),Y.get("offset"),Y.get("center")));\nelse aa(ia("panToBounds: latLngBounds must be of type LatLngBounds"))});Q[F](G,"zoom_changed",function(){G.get("zoom")!=a.get("zoom")&&a.set("zoom",G.get("zoom"))});var la=new rt;la[s]("mapTypeMaxZoom",na,"maxZoom");la[s]("mapTypeMinZoom",na,"minZoom");la[s]("maxZoom",a);la[s]("minZoom",a);la[s]("trackerMaxZoom",c,"maxZoom");G[s]("zoomRange",la);I[s]("zoomRange",la);G[s]("draggable",a);G[s]("scrollwheel",a);G[s]("disableDoubleClickZoom",a);f=a.A;f[s]("scrollwheel",a);f[s]("disableDoubleClickZoom",\na);b.Se||(Q[Hb](I,"tilesloading",function(){R("controls",function(b){var c=new b.kf(x.b);g.set("layoutManager",c);I[s]("layoutBounds",c,"bounds");b.vh(c,a,na,x.b,ab,X.street_view,X.report_map_issue,la,Wa,Y);b.wh(a,A)})}),Q[Hb](I,Ik,function(){e("vt");R("util",function(b){b.b.b();l[Wb](O(b.b,b.b.d,0,Jd),5E3);b.e(a)})}),Q[Hb](I,"tilesloaded",function(){hh(d,"mt");u()}));ku(a);lu(a,x.d.mapPane);b.Se||e("mb")};J.bh=ps;\nJ.lc=function(a,b,c,d){function e(){var e=f.get("panes");if(!e)return k;e=new ps(e[c],j);e[s]("size",f);e[s]("zoom",f);e[s]("offset",f);e[s]("projectionBounds",f);e.set("mapType",b);b.projection||Q[z](a,"projection_changed",e,e.qe);M(d)&&e.set("zIndex",d);Q[D](a,Ne,e);return i}var f=a.M();if(f&&!e())var g=Q[F](f,"panes_changed",function(){e()&&Q[kb](g)})};J.Yj=Vt;\nJ.fitBounds=function(a,b){function c(){var c=Xg(a[vj]());qa(c,c[t]-2*d);qa(c,o.max(1,c[t]));Ra(c,c[H]-2*d);Ra(c,o.max(1,c[H]));var f=a[Wi]();var g=b,h=g[cc](),g=g[pb](),n=h.lng(),r=g.lng();n>r&&(h=new P(h.lat(),n-360,i));h=f[bb](h);n=f[bb](g);g=o.max(h.x,n.x)-o.min(h.x,n.x);h=o.max(h.y,n.y)-o.min(h.y,n.y);g>c[t]||h>c[H]?c=0:(g=nk(c[t]+1.0E-12)-nk(g+1.0E-12),c=nk(c[H]+1.0E-12)-nk(h+1.0E-12),c=o[gb](o.min(g,c)));h=kk(f,b,0);f=lk(f,new S((h.F+h.H)/2,(h.C+h.I)/2),0);M(c)&&(a.setCenter(f),a[Cb](c))}var d=\n40;a[Wi]()?c():Q[Hb](a,"projection_changed",c)};var ru=new qu;ff[ze]=function(a){eval(a)};jf(ze,ru);\n') \ No newline at end of file